Hi,

I applied the patch from #557322 (noting that $exclude should apparently be
$EXCLUDE now) but debootstrap still installs systemd even though nothing
depends on it and I'm excluding it explicitly.

My command line is:

debootstrap --arch=amd64 --components=main,contrib,non-free \
        --include=zsh,less,locales,sysvinit-core \
        --exclude=systemd,systemd-sysv sid \
        /t http://http.debian.net/debian \
        /usr/share/debootstrap/scripts/sid

I added set -x to the debootstrap script to see what it set $required to,
and it doesn't include systemd now:

+ required=base-files base-passwd bash bsdutils coreutils dash debconf 
debconf-i18n debianutils diffutils dpkg e2fslibs e2fsprogs findutils 
gcc-4.7-base gcc-4.8-base gcc-4.9-base grep gzip hostname init initscripts 
libacl1 libattr1 libblkid1 libc-bin libc6 libcomerr2 libgcc1 
liblocale-gettext-perl liblzma5 libmount1 libncurses5 libpam-modules 
libpam-modules-bin libpam-runtime libpam0g libpcre3 libselinux1 libsepol1 
libss2 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl 
libtinfo5 libuuid1 login lsb-base mawk mount multiarch-support ncurses-base 
ncurses-bin passwd perl-base sed sensible-utils startpar sysv-rc sysvinit-utils 
tar tzdata util-linux zlib1g 

$base doesn't contain it either:

+ base=adduser apt apt-utils bsdmainutils cpio cron debian-archive-keyring 
dmidecode gnupg gpgv groff-base ifupdown init-system-helpers iproute2 iptables 
iputils-ping isc-dhcp-client isc-dhcp-common kmod less libapt-inst1.5 
libapt-pkg4.12 libboost-iostreams1.54.0 libboost-iostreams1.55.0 libbz2-1.0 
libgdbm3 libkmod2 libncursesw5 libnewt0.52 libpipeline1 libpopt0 libprocps3 
libreadline6 libsigc++-2.0-0c2a libslang2 libssl1.0.0 libstdc++6 libudev1 
libusb-0.1-4 libxtables10 locales logrotate man-db manpages nano net-tools 
netbase netcat-traditional nfacct procps readline-common rsyslog sysvinit-core 
tasksel tasksel-data traceroute udev vim-common vim-tiny wget whiptail zsh

But still it creeps in somehow, and further output doesn't tell me how.
These are the occurrences of systemd in the debootstrap log:

Selecting previously unselected package init.
dpkg: regarding .../archives/init_1.21_amd64.deb containing init, 
pre-dependency problem:
 init pre-depends on systemd-sysv | sysvinit-core | upstart
  systemd-sysv is not installed.
  sysvinit-core is not installed.
  upstart is not installed.

Not a problem, we're installing sysvinit-core, right? Wrong:

Selecting previously unselected package systemd.
dpkg: regarding .../systemd_215-5+b1_amd64.deb containing systemd, 
pre-dependency problem:
 systemd pre-depends on libgcrypt20 (>= 1.6.1)
  libgcrypt20:amd64 is unpacked, but has never been configured.

So how does this happen? My guess is the dependency resolver gets confused by 
the dependencies of init:

Package: init
Pre-Depends: systemd-sysv | sysvinit-core | upstart

Specifically, this bit:

        if ($in and (/^Depends: (.*)$/ or /^Pre-Depends: (.*)$/)) {
                for $d (split /\s*,\s*/, $1) {
                        $d =~ s/\s*[|].*$//;
                        $d =~ s/\s*[(].*[)]\s*//;
                        push @d, $d;
                }
        }

I don't read perl very well, but it seems to me "$d =~ s/\s*[|].*$//;"
discards everything from the first pipe character to the end of the line;
i.e. as far as debootstrap is concerned, init (pre-)depends on systemd-sysv
only.

A possible way of fixing this would be to remove excluded packages from
depends and pre-depends lines before processing the lines.

Andras

-- 
                      CONgress (n) - Opposite of PROgress


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to