Hi Wookey (and others that might be interested)
With Mutlistrap and qemu we've gotten live-build to be able to cross build most of our images. The next step however in nano is to pull out a number of the packages and in some cases replace them with busybox components to get an even smaller rootfs. An important part of this is to not include recommends AND not take into account required packages. It would appear that multistrap is unable to ignore the required packages. There are a number of them.
You will also note in the log below a number of the busybox replacements explicitly conflict with their non-busybox brethren. In the Multistrap package list, the non-busybox versions are not listed yet Multistrap is pulling them in (as well as others I had removed).
Grepping through the Multistrap perl source I don't see a way forward but I know you're the expert here. I would appreciate your thoughts.
Here's the log :
multistrap 2.1.6ubuntu3 using config/multistrap.config Using foreign architecture: armel multistrap building armel multistrap on 'amd64' INF: Setting ./lib64 -> ./lib symbolic link. Getting package lists: apt-get -o Apt::Architecture=armel -o Dir::Etc::TrustedParts=/etc/apt/trusted.gpg.d -o Dir::Etc::Trusted=/etc/apt/trusted.gpg -o Apt::Get::Download-Only=true -o Apt::Install-Recommends=false -o Dir=/bld/nano-nano-cross/chroot/ -o Dir::Etc=/bld/nano-nano-cross/chroot/etc/apt/ -o Dir::State=/bld/nano-nano-cross/chroot/var/lib/apt/ -o Dir::State::Status=/bld/nano-nano-cross/chroot/var/lib/dpkg/status -o Dir::Cache=/bld/nano-nano-cross/chroot/var/cache/apt/ update [ERROR - 22.Aug.11 19:54:23]: Not on Blue network, aborting... Get:1 http://ppa.launchpad.net natty Release.gpg [316B] Ign http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu/ natty/main Translation-en Ign http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu/ natty/main Translation-en_US Get:2 http://ports.ubuntu.com natty Release.gpg [198B] Ign http://ports.ubuntu.com/ natty/main Translation-en Ign http://ports.ubuntu.com/ natty/main Translation-en_US Ign http://ports.ubuntu.com/ natty/universe Translation-en Ign http://ports.ubuntu.com/ natty/universe Translation-en_US Get:3 http://ports.ubuntu.com natty Release [39.8kB] Get:4 http://ppa.launchpad.net natty Release [9,753B] Get:5 http://ppa.launchpad.net natty/main armel Packages [42.8kB] Get:6 http://ports.ubuntu.com natty/main armel Packages [1,528kB] Get:7 http://ports.ubuntu.com natty/universe armel Packages [5,867kB] Fetched 7,488kB in 46s (162kB/s) Reading package lists... Done I: Calculating required packages. apt-get -y -o Apt::Architecture=armel -o Dir::Etc::TrustedParts=/etc/apt/trusted.gpg.d -o Dir::Etc::Trusted=/etc/apt/trusted.gpg -o Apt::Get::Download-Only=true -o Apt::Install-Recommends=false -o Dir=/bld/nano-nano-cross/chroot/ -o Dir::Etc=/bld/nano-nano-cross/chroot/etc/apt/ -o Dir::State=/bld/nano-nano-cross/chroot/var/lib/apt/ -o Dir::State::Status=/bld/nano-nano-cross/chroot/var/lib/dpkg/status -o Dir::Cache=/bld/nano-nano-cross/chroot/var/cache/apt/ install 2.7-minimal adduser apt apt-transport-https apt-utils base-files base-passwd bash bsdutils busybox-initramfs busybox-linaro-adduser busybox-linaro-findutils busybox-linaro-grep busybox-linaro-hostname busybox-linaro-mount busybox-linaro-nano busybox-linaro-tar busybox-linaro-udhcpc busybox-syslogd ca-certificates console-setup console-terminus coreutils cpio dash debconf debconf-i18n debianutils diffutils dpkg dropbear e2fslibs e2fsprogs findutils gcc-4.5-base gnupg gpgv grep gzip hostname ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute iputils-ping kbd keyboard-configuration klibc-utils libacl1 libattr1 libblkid1 libbz2-1.0 libc-bin libc6 libcap2 libcomerr2 libcurl3-gnutls libdb4.8 libdbus-1-3 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libgcc1 libgcrypt11 libglib2.0-0 libgnutls26 libgpg-error0 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2 liblocale-gettext-perl liblzma2 libncurses5 libncursesw5 libnih-dbus1 libnih1 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libplymouth2 libpng12-0 libpopt0 libreadline6 libsasl2-2 libselinux1 libsepol1 libslang2 libss2 libssl0.9.8 libstdc++6 libtasn1-3 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libudev0 libusb-0.1-4 libuuid1 linaro-overlay linaro-overlay-minimal locales login lsb-base makedev mawk module-init-tools mount mountall multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-openbsd passwd perl-base plymouth procps python python-minimal python2.7-minimal readline-common sed sensible-utils sudo sysv-rc sysvinit-utils tar tzdata ubuntu-keyring udev upstart util-linux xkb-data xz-utils zlib1g Reading package lists... Done Building dependency tree... Done Note, selecting 'python2.7-minimal' for regex '2.7-minimal' Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:
The following packages have unmet dependencies: busybox-linaro-adduser : Conflicts: adduser busybox-linaro-grep : Conflicts: grep busybox-linaro-hostname : Conflicts: hostname busybox-linaro-mount : Conflicts: mount busybox-linaro-tar : Conflicts: cpio Conflicts: tar
-- Regards, Tom
"We want great men who, when fortune frowns will not be discouraged." - Colonel Henry Knox Linaro.org │ Open source software for ARM SoCs w) tom.gall att linaro.org w) tom_gall att vnet.ibm.com h) tom_gall att mac.com
A little update and clarification.
omitrequired is the option to not consider the Priority: required packages.
However once added additional packages are getting pulled into the build. From the snippet below, we can see recommended and suggested aren't getting picked up which is good, but there's this extra packages list and that IS getting picked up. According to the docs, extra packages should be packages which are user listed however none of these are user listed. Is it Priority: important packages getting pulled in? (ref :http://wiki.debian.org/Multistrap Look at the debootstrap comparison section)
multistrap 2.1.6ubuntu3 using config/multistrap.config Using foreign architecture: armel multistrap building armel multistrap on 'amd64' INF: Setting ./lib64 -> ./lib symbolic link. Getting package lists: apt-get -o Apt::Architecture=armel -o Dir::Etc::TrustedParts=/etc/apt/trusted.gpg.d -o Dir::Etc::Trusted=/etc/apt/trusted.gpg -o Apt::Get::Download-Only=true -o Apt::Install-Recommends=false -o Dir=/bld/nano-nano-cross/chroot/ -o Dir::Etc=/bld/nano-nano-cross/chroot/etc/apt/ -o Dir::State=/bld/nano-nano-cross/chroot/var/lib/apt/ -o Dir::State::Status=/bld/nano-nano-cross/chroot/var/lib/dpkg/status -o Dir::Cache=/bld/nano-nano-cross/chroot/var/cache/apt/ update [ERROR - 22.Aug.11 22:17:40]: Not on Blue network, aborting... Get:1 http://ppa.launchpad.net natty Release.gpg [316B] Ign http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu/ natty/main Translation-en Ign http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu/ natty/main Translation-en_US Get:2 http://ports.ubuntu.com natty Release.gpg [198B] Ign http://ports.ubuntu.com/ natty/main Translation-en Ign http://ports.ubuntu.com/ natty/main Translation-en_US Get:3 http://ppa.launchpad.net natty Release [9,753B] Ign http://ports.ubuntu.com/ natty/universe Translation-en Ign http://ports.ubuntu.com/ natty/universe Translation-en_US Get:4 http://ports.ubuntu.com natty Release [39.8kB] Get:5 http://ppa.launchpad.net natty/main armel Packages [42.9kB] Get:6 http://ports.ubuntu.com natty/main armel Packages [1,528kB] Get:7 http://ports.ubuntu.com natty/universe armel Packages [5,867kB] Fetched 7,488kB in 22s (334kB/s) Reading package lists... Done apt-get -y -o Apt::Architecture=armel -o Dir::Etc::TrustedParts=/etc/apt/trusted.gpg.d -o Dir::Etc::Trusted=/etc/apt/trusted.gpg -o Apt::Get::Download-Only=true -o Apt::Install-Recommends=false -o Dir=/bld/nano-nano-cross/chroot/ -o Dir::Etc=/bld/nano-nano-cross/chroot/etc/apt/ -o Dir::State=/bld/nano-nano-cross/chroot/var/lib/apt/ -o Dir::State::Status=/bld/nano-nano-cross/chroot/var/lib/dpkg/status -o Dir::Cache=/bld/nano-nano-cross/chroot/var/cache/apt/ install 2.7-minimal apt apt-transport-https apt-utils base-files base-passwd bash bsdutils busybox-initramfs busybox-linaro-adduser busybox-linaro-findutils busybox-linaro-grep busybox-linaro-hostname busybox-linaro-mount busybox-linaro-nano busybox-linaro-tar busybox-linaro-udhcpc busybox-syslogd ca-certificates console-setup console-terminus coreutils dash debconf debianutils diffutils dpkg e2fslibs e2fsprogs gcc-4.5-base gnupg gpgv gzip ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute iputils-ping kbd keyboard-configuration klibc-utils libacl1 libattr1 libblkid1 libbz2-1.0 libc-bin libc6 libcap2 libcurl3-gnutls libdb4.8 libdbus-1-3 libgcc1 libgcrypt11 libglib2.0-0 libgnutls26 libgpg-error0 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2 liblocale-gettext-perl libncurses5 libncursesw5 libnih-dbus1 libnih1 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libpopt0 libreadline6 libsasl2-2 libss2 libstdc++6 libtasn1-3 libtext-charwidth-perl libtext-iconv-perl libudev0 libusb-0.1-4 libuuid1 linaro-overlay linaro-overlay-minimal login lsb-base makedev mawk module-init-tools mountall multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-openbsd passwd perl-base procps python python-minimal readline-common sed sensible-utils sudo sysv-rc sysvinit-utils ubuntu-keyring udev upstart util-linux xkb-data zlib1g Reading package lists... Done Building dependency tree... Done Note, selecting 'python2.7-minimal' for regex '2.7-minimal' The following extra packages will be installed: debconf-i18n findutils libcomerr2 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libexpat1 libidn11 liblzma2 libplymouth2 libpng12-0 libselinux1 libsepol1 libslang2 libsqlite3-0 libssl0.9.8 libtext-wrapi18n-perl mime-support openssl plymouth python2.7 python2.7-minimal tzdata xz-utils Suggested packages: aptitude synaptic wajig dpkg-dev apt-doc bzip2 lzma python-apt bash-doc locales debconf-doc debconf-utils whiptail dialog gnome-utils libterm-readline-gnu-perl libgtk2-perl libnet-ldap-perl libqtgui4-perl libqtcore4-perl diffutils-doc wdiff gpart parted e2fsck-static mlocate locate slocate gnupg-curl gnupg-doc xloadimage imagemagick eog libpcsclite1 less dhcp3-client dhcp-client ppp bootchart iproute-doc glibc-doc rng-tools gnutls-bin krb5-doc krb5-user libpam-doc openssl-doc python-doc python-tk python-profiler python2.7-doc python2.7-profiler binutils binfmt-support sysv-rc-conf bum sash watershed graphviz util-linux-locales dosfstools xz-lzma Recommended packages: gpg bash-completion bsdmainutils psmisc libatm1 dbus libglib2.0-data shared-mime-info libdconf0 libgpm2 libsasl2-modules uuid-runtime file plymouth-theme-ubuntu-text plymouth-theme The following NEW packages will be installed: apt apt-transport-https apt-utils base-files base-passwd bash bsdutils busybox-initramfs busybox-linaro-adduser busybox-linaro-findutils busybox-linaro-grep busybox-linaro-hostname busybox-linaro-mount busybox-linaro-nano busybox-linaro-tar busybox-linaro-udhcpc busybox-syslogd ca-certificates console-setup console-terminus coreutils dash debconf debconf-i18n debianutils diffutils dpkg e2fslibs e2fsprogs findutils gcc-4.5-base gnupg gpgv gzip ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute iputils-ping kbd keyboard-configuration klibc-utils libacl1 libattr1 libblkid1 libbz2-1.0 libc-bin libc6 libcap2 libcomerr2 libcurl3-gnutls libdb4.8 libdbus-1-3 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libexpat1 libgcc1 libgcrypt11 libglib2.0-0 libgnutls26 libgpg-error0 libgssapi-krb5-2 libidn11 libk5crypto3 libkeyutils1 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2 liblocale-gettext-perl liblzma2 libncurses5 libncursesw5 libnih-dbus1 libnih1 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libplymouth2 libpng12-0 libpopt0 libreadline6 libsasl2-2 libselinux1 libsepol1 libslang2 libsqlite3-0 libss2 libssl0.9.8 libstdc++6 libtasn1-3 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libudev0 libusb-0.1-4 libuuid1 linaro-overlay linaro-overlay-minimal login lsb-base makedev mawk mime-support module-init-tools mountall multiarch-support ncurses-base ncurses-bin net-tools netbase netcat-openbsd openssl passwd perl-base plymouth procps python python-minimal python2.7 python2.7-minimal readline-common sed sensible-utils sudo sysv-rc sysvinit-utils tzdata ubuntu-keyring udev upstart util-linux xkb-data xz-utils zlib1g 0 upgraded, 141 newly installed, 0 to remove and 0 not upgraded.
The other troubling part is once one issues a dist-upgrade the busybox versions of grep, hostname, mount and tar are up for being removed, never mind all are set as Priority: required and set as conflicting and replacement for their named package. I'd like to think once installed these kind of packages would stick especially if their are Priority: required. Here's a snippet:
+ COMMANDS=apt-get --yes --force-yes dist-upgrade + Echo_debug Executing: %s apt-get --yes --force-yes dist-upgrade + [ false = true ] + [ false != true ] + /usr/sbin/chroot chroot /usr/bin/env -i HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin TERM=xterm-color ftp_proxy= http_proxy= DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical DEBCONF_NOWARNINGS=yes XORG_CONFIG=custom apt-get --yes --force-yes dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be REMOVED: busybox-linaro-grep busybox-linaro-hostname busybox-linaro-mount busybox-linaro-tar console-setup e2fsprogs ifupdown initramfs-tools initscripts kbd keyboard-configuration module-init-tools mountall netbase plymouth procps udev upstart util-linux The following NEW packages will be installed: grep mount tar WARNING: The following essential packages will be removed. This should NOT be done unless you know exactly what you are doing! e2fsprogs util-linux (due to e2fsprogs) upstart (due to util-linux) 0 upgraded, 3 newly installed, 19 to remove and 0 not upgraded.