[Bug 1895632] Re: builds for libc 2.32 break all cross toolchains - missing libnss-nis-<arch>-cross

Matthias Klose 1895632 at bugs.launchpad.net
Wed Sep 16 16:04:41 UTC 2020


** Changed in: cross-toolchain-base-ports (Ubuntu)
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-10 in Ubuntu.
https://bugs.launchpad.net/bugs/1895632

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

Status in cross-toolchain-base-ports package in Ubuntu:
  Fix Released
Status in gcc-10 package in Ubuntu:
  Invalid
Status in glibc package in Ubuntu:
  Fix Committed

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cross-toolchain-base-ports/+bug/1895632/+subscriptions



More information about the foundations-bugs mailing list