Imagebuilder by default including packages not in snapshot

Hi,

I am trying to build a snapshot image for tplink_tl-wpa8630p-v2-eu with luci and some other packages using the Imagebuilder here. However Imagebuilder by default is adding some extra packages (e.g. procd-selinux) that aren't present in the snapshot images or images built from source. This results in image sizes that exceed the available space. Building from source and including the packages fit OK.

Here is the difference between the installed packages in imagebuilder output and snapshot/source builds when NO extra packages are selected.

--- snapshot_or_source.packages.txt	2020-09-05 11:47:41.439415599 +0100
+++ imagebuilder.packages.txt	2020-09-05 12:13:37.633907101 +0100
-iw
-iwinfo
+iw-full
-libiwinfo20200105
+libpcre
+libselinux
+libsepol
+musl-fts
-procd
+procd-selinux

You can see these packages with:

make manifest PROFILE="tplink_tl-wpa8630p-v2-eu"

Where are these different dependencies coming from? e.g. procd-selinux, iw-full ? I can't seem to de-select them or track down what is including them. Thanks!

1 Like

Mystery solved.

I tracked down those differences to 3 packages:

  • kmod-ath10k-ct and ath10k-firmware-qca9888-ct pull in iw
  • base-files pulls in procd-selinux
make manifest output
make manifest PROFILE="tplink_tl-wpa8630p-v2-eu" PACKAGES="base-files -busybox -ca-bundle -dropbear -fstools -libustream-wolfssl -logd -mtd -netifd -opkg -uci -uclient-fetch -urandom-seed -urngd -kmod-gpio-button-hotplug -swconfig -kmod-ath9k -uboot-envtools -wpad-basic-wolfssl -dnsmasq -firewall -ip6tables -iptables -kmod-ipt-offload -odhcp6c -odhcpd-ipv6only -ppp -ppp-mod-pppoe kmod-ath10k-ct ath10k-firmware-qca9888-ct"

ath10k-firmware-qca9888-ct - 2020-07-02-1
base-files - 228-r14394-252197f014
fstools - 2020-07-11-53453438-1
fwtool - 2019-11-12-8f7fe925-1
hostapd-common - 2020-06-08-5a8b3662-4
iw-full - 5.4-1
jshn - 2020-08-06-9e52171d-1
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 5.4.61-1-155548a0204c258c9d0b52a1a4b0578e
kmod-ath - 5.4.61+5.8-1-1
kmod-ath10k-ct - 5.4.61+2020-06-30-edfbf916-1
kmod-cfg80211 - 5.4.61+5.8-1-1
kmod-hwmon-core - 5.4.61-1
kmod-mac80211 - 5.4.61+5.8-1-1
libblobmsg-json - 2020-08-06-9e52171d-1
libc - 1.1.24-2
libgcc1 - 8.4.0-2
libjson-c5 - 0.14-2
libjson-script - 2020-08-06-9e52171d-1
libnl-tiny - 2019-10-29-0219008c-1
libpcre - 8.44-2
libpthread - 1.1.24-2
libselinux - 3.1-1
libsepol - 3.1-1
libubox20191228 - 2020-08-06-9e52171d-1
libubus20191227 - 2020-02-05-171469e3-1
libuci20130104 - 2020-04-24-ec8d3233-3
musl-fts - 1.2.7-1
netifd - 2020-06-06-51e9fb81-1
openwrt-keyring - 2019-07-25-8080ef34-1
procd-selinux - 2020-08-10-fad89976-1
ubox - 2019-12-31-0e34af14-4
ubus - 2020-02-05-171469e3-1
ubusd - 2020-02-05-171469e3-1
usign - 2020-05-23-f1f65026-1
wireless-regdb - 2020.04.29-1

These aren't included by default in the source builds:

$ make defconfig
$ grep "procd\|iw" .config
CONFIG_PACKAGE_procd=y
# CONFIG_PACKAGE_procd-selinux is not set
CONFIG_PACKAGE_iw=y
# CONFIG_PACKAGE_iw-full is not set

I realized this can be worked around by passing procd and iw to ImageBuilder. The resulting image contains the same packages as the default images built from source:

make manifest PROFILE="tplink_tl-wpa8630p-v2-eu" PACKAGES="procd iw"

My only remaining question is why procd-selinux and iw-full are being chosen by the Imagebuilder opkg dependency resolution instead of procd and iw which are the defaults in the build.

In the generated .targetinfo file, should procd iw be put into the ath79/generic Default-Packages section? Or is it up to the individual device profiles to specify them, depending on size constraints? That looks to be the case, e.g. iwinfo is commonly specified by a lot of other profiles, but procd isn't specified anywhere (maybe because procd-selinux is new?).

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.