remove libgcc1 for libc6 >= 2.30-2

The buildd variant of debootstrap will install libgcc-s1 *and* libgcc1
even though the former provides the latter. Remove the latter manually.

Since apt does not consider libgcc1 necessary, we have to download it
explicitly for debootstrap.

See Debian bug #953861
This commit is contained in:
Johannes 'josch' Schauer 2020-03-15 11:25:22 +01:00
parent 5fae5e83f9
commit a91d7440cb
Signed by untrusted user: josch
GPG key ID: F2CBA5C78FBD83E1
2 changed files with 10 additions and 1 deletions

View file

@ -131,6 +131,15 @@ tar --xattrs --xattrs-include='*' -C /tmp/debian-$dist-mm -xf /tmp/debian-$dist-
mkdir /tmp/debian-$dist-debootstrap
tar --xattrs --xattrs-include='*' -C /tmp/debian-$dist-debootstrap -xf "cache/debian-$dist-$variant.tar"
# The buildd variant of debootstrap will install libgcc-s1 *and* libgcc1 even
# though the former provides the latter. Remove the latter manually.
if [ "$variant" = "buildd" ] \
&& chroot /tmp/debian-$dist-debootstrap dpkg -s libgcc-s1 2>&1 | grep --quiet '^Status: install ok installed$' \
&& chroot /tmp/debian-$dist-debootstrap dpkg -s libgcc1 2>&1 | grep --quiet '^Status: install ok installed$' \
&& dpkg --compare-versions "\$(chroot /tmp/debian-$dist-debootstrap dpkg -s libc6 | grep '^Version:' | cut -d ' ' -f 2)" ge 2.30-2; then
chroot /tmp/debian-$dist-debootstrap dpkg --remove libgcc1
fi
# diff cannot compare device nodes, so we use tar to do that for us and then
# delete the directory
tar -C /tmp/debian-$dist-debootstrap -cf dev1.tar ./dev

View file

@ -239,7 +239,7 @@ END
--or --field=Priority important --or --field=Priority standard \
--or --field=Package build-essential \) )
pkgs="$(echo $pkgs) build-essential busybox gpg"
pkgs="$(echo $pkgs) build-essential busybox gpg libgcc1"
APT_CONFIG="$rootdir/etc/apt/apt.conf" apt-get --yes install $pkgs