builds for libc 2.32 break all cross toolchains - missing libnss-nis-<arch>-cross

Bug #1895632 reported by Christian Ehrhardt 
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cross-toolchain-base-ports (Ubuntu)
Fix Released
Critical
Unassigned
gcc-10 (Ubuntu)
Invalid
Undecided
Unassigned
glibc (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

## TL;DR ##

cross-toolchain-base-ports 38ubuntu1 builds dependencies to
libnss-nis-<arch>-cross at version 2.32-0ubuntu2cross1, but misses to
build those packages themselve.
Most likely, but not surely yet, due to the split of libnss-nisplus from glibc.

## Detail ##

Hi,
I was first seeing this in a qemu build hanging as dependency wait which worked
a day before.
=> https://launchpad.net/ubuntu/+source/qemu/1:5.0-5ubuntu8/+build/19940985
But the build fails at
  Missing build dependencies: libnsl-dev-alpha-cross

At first it seemed the Problem came with new glibc:
 libc6.1-dev-alpha-cross | 2.31-0ubuntu9cross1 | groovy/universe | all
 libc6.1-dev-alpha-cross | 2.32-0ubuntu2cross1 | groovy-proposed/universe | all

Dependency tree - 2.31-0ubuntu9cross1 (worked)
libc6.1-dev-alpha-cross
 \- libc6.1-alpha-cross
 \- linux-libc-dev-alpha-cross

Dependency tree - 2.32-0ubuntu2cross1 (fails)
libc6.1-dev-alpha-cross
 \- libc6.1-alpha-cross
 \- linux-libc-dev-alpha-cross

In essence we use gcc-s390x-linux-gnu,gcc-alpha-linux-gnu,
gcc-powerpc64-linux-gnu,gcc-sparc64-linux-gnu,gcc-hppa-linux-gnu,
gcc-riscv64-linux-gnu for different ROM builds and
libc6.1-dev-alpha-cross for a corner case.
They will pull in their respective cross builds packages:
E.g.: gcc-s390x-linux-gnu
       \- gcc-10-s390x-linux-gnu
          \- libgcc-10-dev-s390x-cross
          \- libc6-dev-s390x-cross

It is not just libnsl-dev-alpha-cross, all such dependencies now explode:
Here from build logs:
The following packages have unmet dependencies:
 libc6-hppa-cross : Depends: libnss-nis-hppa-cross but it is not installable
                    Depends: libnss-nisplus-hppa-cross but it is not installable
 libc6-ppc64-cross : Depends: libnss-nis-ppc64-cross but it is not installable
                     Depends: libnss-nisplus-ppc64-cross but it is not installable
 libc6-riscv64-cross : Depends: libnss-nis-riscv64-cross but it is not installable
                       Depends: libnss-nisplus-riscv64-cross but it is not installable
 libc6-s390x-cross : Depends: libnss-nis-s390x-cross but it is not installable
                     Depends: libnss-nisplus-s390x-cross but it is not installable
 libc6-sparc64-cross : Depends: libnss-nis-sparc64-cross but it is not installable
                       Depends: libnss-nisplus-sparc64-cross but it is not installable
 libc6.1-alpha-cross : Depends: libnss-nis-alpha-cross but it is not installable
                       Depends: libnss-nisplus-alpha-cross but it is not installable
 libc6.1-dev-alpha-cross : Depends: rpcsvc-proto-alpha-cross but it is not installable
                           Depends: libtirpc-dev-alpha-cross but it is not installable
                           Depends: libnsl-dev-alpha-cross but it is not installable

This is reproducible as easy as going into groovy proposed (e.g. container)
$ apt install gcc-alpha-linux-gnu
...
The following packages have unmet dependencies:
 libc6.1-alpha-cross : Depends: libnss-nis-alpha-cross but it is not installable
                       Depends: libnss-nisplus-alpha-cross but it is not installable
E: Unable to correct problems, you have held broken packages.

This repeats for all arches cross toolchains as outlined above.

The dependency is new in the new version of the packages:

I wondered if I might look the wrong way, but then on IRC I saw:
  [09:25] <vorlon> doko: hmm so, Broken libc6-dev-i386-cross:amd64
  Depends on rpcsvc-proto-i386-cross:amd64
Which is part of the same scope.

Also clearly the new version is what adds the bad dependencies:

# apt-cache show libc6-riscv64-cross | grep -e ^Vers -e ^Dep
Version: 2.32-0ubuntu2cross1
Depends: libnss-nis-riscv64-cross, libnss-nisplus-riscv64-cross
Version: 2.31-0ubuntu9cross1

That is out of src cross-toolchain-base-ports:
  cross-toolchain-base-ports | 36ubuntu4 | groovy/universe | source
  cross-toolchain-base-ports | 38ubuntu1 | groovy-proposed/universe | source

Which seems to generate versions along glibc as the packages are then
versioned like: "2.32-0ubuntu2cross1"

I would assume that this is cross-toolchain-base-ports not yet considering
src:libnss-nisplus which is new in groovy and states:
Description-en: NSS module for using NIS+ as a naming service
 This package provides a Name Service Switch that allows your NIS+ server
 act as a name service. This means providing user account information,
 group id's, host information, aliases, netgroups, and basically anything
 else that you would normally get from /etc flat files.
 .
 This module was formerly part of glibc, but is now standalone to be able
 to link against TI-RPC for IPv6 support.

So maybe that needs to be considered somehow within cross-toolchain-base-ports?

P.S. also adding glibc and gcc-10 bug tasks, but mostly for tracking as those are tightly coupled

Related branches

CVE References

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Related Changelog entries from glibc 2.32:
   12 * Make libc-dev depend on libnsl-dev.
   13 It replaces the development files for the new libnsl library replacing the
   14 one shipped by glibc.
   15 * Don't check symbols of libnss_nis.so and libnss_nisplus.so libraries.
   16 They are not shipped in glibc 2.32
   17 * Depend on libnss-nis and libnss-nisplus shipping the libraries dropped
   18 in 2.32

Changed in gcc-10 (Ubuntu):
status: New → Incomplete
Changed in glibc (Ubuntu):
status: New → Incomplete
Balint Reczey (rbalint)
tags: added: update-excuse
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Given the amount of people immediately chiming in on #ubuntu-devel saying "arr this needs to be resolved fast" I think it is only fair to mark this prio-critical.

Also thanks for the update-excuse tag Rbalint - in the past in such cases we used to also add bug tasks for packages affected so they'd be shown in update-excuses. But in this particular case this list might grow out of control too quick. So let us just fix it soon.

Changed in cross-toolchain-base-ports (Ubuntu):
importance: Undecided → Critical
Matthias Klose (doko)
Changed in gcc-10 (Ubuntu):
status: Incomplete → Invalid
Matthias Klose (doko)
Changed in glibc (Ubuntu):
status: Incomplete → Fix Committed
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Download full text (9.2 KiB)

Builds of glibc and cross-toolchain-base-ports are in groovy proposed.
Therefore in proposed (where things build) one can already again install the dependencies:

# apt install gcc-alpha-linux-gnu
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libnvpair1linux libuutil1linux libzfs2linux libzpool2linux
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  binutils binutils-alpha-linux-gnu binutils-common binutils-x86-64-linux-gnu cpp-10-alpha-linux-gnu cpp-alpha-linux-gnu gcc-10-alpha-linux-gnu gcc-10-alpha-linux-gnu-base
  gcc-10-cross-base-ports libatomic1-alpha-cross libbinutils libc6.1-alpha-cross libc6.1-dev-alpha-cross libctf0 libgcc-10-dev-alpha-cross libgcc-s1-alpha-cross libgomp1-alpha-cross
  libitm1-alpha-cross linux-libc-dev-alpha-cross
Suggested packages:
  binutils-doc gcc-10-locales cpp-doc gcc-10-doc autoconf automake libtool flex bison gdb-alpha-linux-gnu gcc-doc
The following NEW packages will be installed:
  binutils-alpha-linux-gnu cpp-10-alpha-linux-gnu cpp-alpha-linux-gnu gcc-10-alpha-linux-gnu gcc-10-alpha-linux-gnu-base gcc-10-cross-base-ports gcc-alpha-linux-gnu libatomic1-alpha-cross
  libc6.1-alpha-cross libc6.1-dev-alpha-cross libgcc-10-dev-alpha-cross libgcc-s1-alpha-cross libgomp1-alpha-cross libitm1-alpha-cross linux-libc-dev-alpha-cross
The following packages will be upgraded:
  binutils binutils-common binutils-x86-64-linux-gnu libbinutils libctf0
5 upgraded, 15 newly installed, 0 to remove and 121 not upgraded.
Need to get 27.4 MB of archives.
After this operation, 71.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu groovy/main amd64 libctf0 amd64 2.35-3ubuntu1 [47.4 kB]
Get:2 http://archive.ubuntu.com/ubuntu groovy/main amd64 binutils-x86-64-linux-gnu amd64 2.35-3ubuntu1 [1644 kB]
Get:3 http://archive.ubuntu.com/ubuntu groovy/main amd64 libbinutils amd64 2.35-3ubuntu1 [481 kB]
Get:4 http://archive.ubuntu.com/ubuntu groovy/main amd64 binutils amd64 2.35-3ubuntu1 [3376 B]
Get:5 http://archive.ubuntu.com/ubuntu groovy/main amd64 binutils-common amd64 2.35-3ubuntu1 [212 kB]
Get:6 http://archive.ubuntu.com/ubuntu groovy/universe amd64 gcc-10-alpha-linux-gnu-base amd64 10.2.0-3ubuntu1cross1 [20.3 kB]
Get:7 http://archive.ubuntu.com/ubuntu groovy/universe amd64 cpp-10-alpha-linux-gnu amd64 10.2.0-3ubuntu1cross1 [6359 kB]
Get:8 http://archive.ubuntu.com/ubuntu groovy/universe amd64 cpp-alpha-linux-gnu amd64 4:10.1.0-1ubuntu1 [6136 B]
Get:9 http://archive.ubuntu.com/ubuntu groovy/universe amd64 binutils-alpha-linux-gnu amd64 2.35-3ubuntu1 [1129 kB]
Get:10 http://archive.ubuntu.com/ubuntu groovy/universe amd64 gcc-10-cross-base-ports all 10.2.0-3ubuntu1cross1 [15.4 kB]
Get:11 http://archive.ubuntu.com/ubuntu groovy-proposed/universe amd64 libc6.1-alpha-cross all 2.32-0ubuntu3cross2 [1189 kB]
Get:12 http://archive.ubuntu.com/ubuntu groovy/universe amd64 libgcc-s1-alpha-cross all 10.2.0-3ubuntu1cross1 [30.2 kB]
Get:13 http://archive.ubuntu.com/ubuntu groovy/universe amd64 libgomp1-alpha-cr...

Read more...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Well I see at least my formerly blocked build was retried so maybe someone or some automation already did - also the builds worked \o/.

Thanks!

Matthias Klose (doko)
Changed in cross-toolchain-base-ports (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (8.2 KiB)

This bug was fixed in the package glibc - 2.32-0ubuntu3

---------------
glibc (2.32-0ubuntu3) groovy; urgency=medium

  * Fix cross-toolchain-base.
    Use ${Depends:foo=foo} magic to not create cross packages for
    libnss-nis*, rpcsvc-proto, libtirpc-dev and libnsl-dev (LP: #1895632)
  * XFAIL time/tst-cpuclock1 (LP: #1895687)

glibc (2.32-0ubuntu2) groovy; urgency=medium

  * Merge from Debian unstable
  * Refresh patches
  * debian/watch: Use HTTPS and download xz-compressed tarball
  * debian/watch: Use upstream's signing key to verify the tarball
  * Don't build and ship libnsl.a and Sun RPC static library and header files
  * XFAIL stdlib/tst-getrandom (LP: #1891403)
  * debian/symbols.wildcards: Update versions
  * Make libc-dev depend on rpcsvc-proto and libtirpc-dev.
    They replace development files for the Sun RPC library removed in glibc 32.
  * Make libc-dev depend on libnsl-dev.
    It replaces the development files for the new libnsl library replacing the
    one shipped by glibc.
  * Don't check symbols of libnss_nis.so and libnss_nisplus.so libraries.
    They are not shipped in glibc 2.32
  * Depend on libnss-nis and libnss-nisplus shipping the libraries dropped
    in 2.32
  * debian/patches/git-updates.diff: update from upstream stable branch:
    - x86-64: Fix FMA4 detection in ifunc
  * debian/testsuite-xfail-debian.mk: XFAIL unsupported tests failing in autopkgtest

glibc (2.31-3) unstable; urgency=medium

  [ Aurelien Jarno ]
  * debian/control.in/libc: add a Breaks: against openarena (<< 0.8.8+dfsg-4~)
    due to bug#966150.
  * debian/control.in/libc: add a Breaks: against ioquake3
    (<< 1.36+u20200211.f2c61c1~dfsg-2~) as previous versions are not correctly
    linked with libm.
  * debian/patches/git-updates.diff: update from upstream stable branch:
    - Fix an infinite loop in the iconv program (CVE-2016-10228). Closes:
      #856503.
    - debian/patches/any/submitted-selinux-deprecations.diff: upstreamed.
    - debian/patches/x32/submitted-fix-nptl-setgroups-x32.diff: upstreamed.
  * debian/rules.d/build.mk: install <finclude/math-vector-fortran.h> in the
    multiarch path. Closes: #962457.

  [ Samuel Thibault ]
  * debian/libc0.3.symbols.hurd-i386: Fix dependency of __errno_location and
    __h_errno_location symbols in libpthread.
  * patches/hurd-i386/unsubmitted-sbrk-_end.diff: Fix _end symbol appearance
    by reworking sbrk.
  * patches/hurd-i386/unsubmitted-sched_sets.diff: Add sched_set/getscheduler.
  * patches/hurd-i386/git-pthread_atfork-hidden.diff: Hide pthread_atfork
    symbols imported to applications, to avoid leaking them.

glibc (2.31-2ubuntu1) groovy; urgency=medium

  [ Michael Hudson-Doyle ]
  * Mark tst-getpw as XFAIL on arm64. (LP: #1869364)

  [ Balint Reczey ]
  * Merge from Debian unstable
    - debian/patches/any/submitted-selinux-deprecations.diff: proposed patch to
      ignore the selinux deprecations introduced in libselinux (>= 3.1), fixing
      an FTBFS. (LP: #1887919)
    Remaining changes:
    - Enable libc6{,-dev}-armel on armhf and libc6{-dev}-armhf on armel.
    - Heavily mangle the way we do service restarting on major upgrades.
    - Build amd64 with -O3, and b...

Read more...

Changed in glibc (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.