jandelgado / lede-dockerbuilder

A (container based) LEDE/OpenWrt image builder.
Apache License 2.0
59 stars 20 forks source link

repositories.conf supported? #9

Closed wicadmin closed 4 years ago

wicadmin commented 4 years ago

Hi, Is the repositories.conf supported to build custom packages which are not in the releases?

jandelgado commented 4 years ago

Hi, have a look at the support_custom_repositories_conf branch. I added a new environment variable REPOSITORIES_CONF which can used to override the default repositories.conf file. Add it to your configuration or call the builder like e.g REPOSITORIES_CONF=./myrepos.conf ./builder.sh shell example-x86_64.conf

wicadmin commented 4 years ago

Hey @jandelgado - Thanks very much for this feature. I'm still not fully sure how to go about compiling the packages I need. E.g.: In 18.06.5, there is no modemmanager and its accompanying set of modules. I would like to get these into a build. The syntax (of how to structure the config file) of what to point where is a little confusing so far but I'm trying to figure it out.

wicadmin commented 4 years ago

Well, I go the ipks from the list above built and hosted on a web server. Now when I do the build I get this:

Building images for x86 - Generic x86/64
Packages: base-files bnx2-firmware busybox dropbear e2fsprogs firewall fstools fwtool getrandom ip6tables iptables jshn jsonfilter kernel kmod-bnx2 kmod-button-hotplug kmod-hwmon-core kmod-igb kmod-input-core kmod-ip6tables kmod-ipt-conntrack kmod-ipt-core kmod-ipt-nat kmod-ipt-offload kmod-lib-crc-ccitt kmod-libphy kmod-mii kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-flow kmod-nf-ipt kmod-nf-ipt6 kmod-nf-nat kmod-nf-reject kmod-nf-reject6 kmod-phy-realtek kmod-pps kmod-ptp kmod-r8169 kmod-slhc libblkid1 libblobmsg-json libc libcomerr0 libext2fs2 libf2fs6 libgcc1 libip4tc2 libip6tc2 libjson-c4 libjson-script libnl-tiny libpthread librt libsmartcols1 libss2 libubox20170601 libubus20170705 libuci20130104 libuclient20160123 libuuid1 libxtables12 logd mkf2fs mtd netifd odhcp6c odhcpd-ipv6only openwrt-keyring opkg partx-utils procd r8169-firmware ubox ubus ubusd uci uclient-fetch urandom-seed urngd usign dnsmasq-full lm-sensors-detect bash curl diffutils jq luci-app-openvpn luci-proto-qmi fdisk mosquitto-client-nossl mosquitto-nossl unzip usb-modeswitch adblock e2fsprogs jsonfilter luci-app-adblock partx-utils r8169-firmware iperf3 mbim-utils qmi-utils libmbim libqmi modemmanager luci-proto-modemmanager nano openvpn-openssl luci-ssl-openssl luci-app-commands ca-bundle ca-certificates pciutils usbutils rsync ipset mtr lscpu luci-proto-wireguard luci-app-wireguard wireguard-tools wireguard kmod-usb-hid kmod-usb3 kmod-usb2 kmod-r8169 kmod-hwmon-core kmod-lib-crc-itu-t kmod-libphy kmod-natsemi kmod-ne2k-pci usbutils pciutils kmod-usb-net-sierrawireless kmod-usb-serial-sierrawireless kmod-usb-serial-qualcomm kmod-usb-net-cdc-ether kmod-usb-net-cdc-mbim kmod-usb-net-cdc-ncm kmod-usb-net-hso kmod-usb-net-qmi-wwan kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan base-files busybox dropbear e2fsprogs firewall fstools ip6tables iptables kernel kmod-bnx2 kmod-button-hotplug kmod-igb kmod-ipt-offload kmod-r8169 libc libgcc logd mkf2fs mtd netifd odhcp6c odhcpd-ipv6only opkg partx-utils uci uclient-fetch urandom-seed urngd

Package list missing or not up-to-date, generating it.

Building package index...
Downloading http://192.168.1.150/releases/18.06.5/targets/x86/64/packages/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_custom
Downloading http://downloads.openwrt.org/releases/18.06.5/targets/x86/64/packages/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_core
Downloading http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/base/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_base
Downloading http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/luci/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_luci
Downloading http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/packages/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_packages
Downloading http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/routing/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_routing
Downloading http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/telephony/Packages.gz
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/openwrt_telephony
Downloading file:packages/Packages
Updated list of available packages in /lede/imagebuilder/build_dir/target-x86_64_musl/root-x86/../../../../../lede/imagebuilder/dl/imagebuilder

Installing packages...
Installing libc (1.1.24-2) to root...
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for libc:
 *  libgcc1
 * opkg_install_cmd: Cannot install package libc.
make[2]: *** [Makefile:155: package_install] Error 255
make[1]: *** [Makefile:118: _call_image] Error 2
make: *** [Makefile:197: image] Error 2

My repositories.conf file looks like this:


## Place your custom repositories here, they must match the architecture and version.
# src/gz %n http://downloads.openwrt.org/releases/18.06.5
# src custom file:///usr/src/openwrt/bin/x86/packages
#src custom file:///usr/src/openwrt/bin/x86_64/packages
# src custom file:///lede/imagebuilder/custom_repo
src/gz openwrt_custom http://192.168.1.150/releases/18.06.5/targets/x86/64/packages

## Remote package repositories
src/gz openwrt_core http://downloads.openwrt.org/releases/18.06.5/targets/x86/64/packages
src/gz openwrt_base http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/base
src/gz openwrt_luci http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/luci
src/gz openwrt_packages http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/packages
src/gz openwrt_routing http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/routing
src/gz openwrt_telephony http://downloads.openwrt.org/releases/18.06.5/packages/x86_64/telephony

## This is the local package repository, do not remove!
src imagebuilder file:packages

``

Any help is appreciated.
jandelgado commented 4 years ago

I'm not sure. perhaps the problem is that the pre-compiled OpenWrt packages use musl and your packages glibc? Have a look at my project lede-dockercompiler which allows to build the whole image from source. This might solve your problem.

wicadmin commented 4 years ago

That could be it. Since I am trying to build just single packages, I am using openwrt-vivarium. However, even if I remove my custom feed in the repositories.conf file, it is still given the error meaning that my compiled packages aren't involved,

I did use your compiler in the past and it works however, it builds everything from source so I'm trying to bridge the two and only compile from source those packages that aren't already in a release (and therefore have ipks already built and can use imagebuilder).

wicadmin commented 4 years ago

Hmm...seems to be using the branch (openwrt-18.06) correctly:

echo "src-git base https://github.com/openwrt/openwrt.git;$BRANCH" > feeds.conf
if [ "$CUSTOM_FEED" = y ]; then
    echo "src-git packages https://github.com/openwrt/packages.git;$BRANCH" >> feeds.conf
    echo "src-link custom $HOME/openwrt_packages" >> feeds.conf
else
    echo "src-link packages $HOME/openwrt_packages" >> feeds.conf
fi
echo "src-git luci https://github.com/openwrt/luci.git;$BRANCH" >> feeds.conf
wicadmin commented 4 years ago

OK, I believe it was using snapshots (from previous setup). I changed it to use 18.05.6 and got an image built with my packages included. Will test now. Thank you.