Bug#1125764: libasyncns0: NMU upload of only libasyncns0:amd64 breaks libasyncns0:i386
Bela Lubkin <[email protected]> Fri, 16 Jan 2026 19:56:34 -0800
| Newsgroups | gmane.linux.debian.ports.amd64 |
|---|---|
| Message-ID | <176862219471.23478.14963639279764051383.reportbug__15962.4090347037$1768622380$gmane$org@starlight.ranch101.com> |
Package: libasyncns0 Version: 0.8-7 Severity: serious Justification: Policy 7.3 X-Debbugs-Cc: [email protected], [email protected] User: [email protected] Usertags: i386 User: [email protected] Usertags: amd64 Dear Maintainer, After a routine `apt-get update; apt-get dist-upgrade`(*), several packages are 'kept back', including 'libasyncns0'. This package received an NMU of :amd64 only. The previous package had these headers: Package: libasyncns0 Version: 0.8-7 Architecture: amd64 Breaks: libasyncns0:i386 (!= 0.8-7) Replaces: libasyncns0:i386 (< 0.8-7) and the new one has: Package: libasyncns0 Version: 0.8-7+b1 Architecture: amd64 Breaks: libasyncns0:i386 (!= 0.8-7+b1) Replaces: libasyncns0:i386 (< 0.8-7+b1) However, since the NMU included only :amd64, it cannot be installed on a system which has 'libasyncns0:i386' installed, as it claims to break it. ===== It seems like this could be fixed by uploading the 0.8.7+b1:i386 package; or by changing :amd64's 'Breaks:' to '< 0.8-7' (*without* '+b1'). This seems to highlight a danger: uploading 'just one arch' of a package can have wild consequences, especially in the case of amd64/i386 (I imagine similar dangers might apply in other closely related arches like ARM 64 vs 32). The maintainer has to keep a careful eye on cross-arch dependencies -- OR, maybe, just upload all arches even for a change that 'only' affects one? Some terminal logs. Note in particular that if I insist it install 'libasyncns0:amd64=0.8-7+b1' -- merely by saying to install 'libasyncns0' (implying 'upgrade to current') -- it well *remove* 'libasyncns0:i386' and consequently 2 other packages which depend on it, as well as leaving an additional 69 packages in a to-be-removed state (auto-installed and nothing depends on them, as they were brought in by the 3 that are being removed). <<<<< $ apt-get -Vs dist-upgrade NOTE: This is only a simulation! apt-get needs root privileges for real execution. Keep also in mind that locking is deactivated, so don't depend on the relevance to the real current situation! Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following packages have been kept back: libasyncns0 (0.8-7 => 0.8-7+b1) libbsd0 (0.12.2-2 => 0.12.2-2+b1) libgmp10 (2:6.3.0+dfsg-5 => 2:6.3.0+dfsg-5+b1) libgraphite2-3 (1.3.14-11 => 1.3.14-11+b1) libjack-jackd2-0 (1.9.22~dfsg-5 => 1.9.22~dfsg-5+b1) libjbig0 (2.1-6.1+b2 => 2.1-6.1+b3) 0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded. $ apt-get -Vs install libasyncns0 NOTE: This is only a simulation! apt-get needs root privileges for real execution. Keep also in mind that locking is deactivated, so don't depend on the relevance to the real current situation! Reading package lists... Building dependency tree... Reading state information... Solving dependencies... The following packages were automatically installed and are no longer required: libaom3:i386 (3.13.1-2) libasound2t64:i386 (1.2.15.1-1) libavcodec62:i386 (7:8.0.1-3) libavutil60:i386 (7:8.0.1-3) libcairo-gobject2:i386 (1.18.4-3) libcairo2:i386 (1.18.4-3) libcodec2-1.2:i386 (1.2.0-4) libdatrie1:i386 (0.2.14-1) libdav1d7:i386 (1.5.3-1+b1) libdb5.3t64:i386 (5.3.28+dfsg2-11) libdbus-1-3:i386 (1.16.2-2+b1) libdeflate0:i386 (1.23-2) libflac14:i386 (1.5.0+ds-5) libfribidi0:i386 (1.0.16-5) libgdk-pixbuf-2.0-0:i386 (2.44.4+dfsg-1) libgomp1:i386 (15.2.0-12) libgraphite2-3:i386 (1.3.14-11) libgsm1:i386 (1.0.23-2) libharfbuzz0b:i386 (12.3.0-4) libhwy1t64:i386 (1.3.0-2) libjack-jackd2-0:i386 (1.9.22~dfsg-5) libjbig0:i386 (2.1-6.1+b2) libjpeg62-turbo:i386 (1:2.1.5-4) libjxl0.11:i386 (0.11.1-6) liblcms2-2:i386 (2.17-1) liblerc4:i386 (4.0.0+ds-5) liblzma5:i386 (5.8.2-2) libmp3lame0:i386 (3.100-6+b3) libmpg123-0t64:i386 (1.33.3-2) libnuma1:i386 (2.0.19-1) libogg0:i386 (1.3.6-2) libopenjp2-7:i386 (2.5.4-1) libopus0:i386 (1.6-1) libpango-1.0-0:i386 (1.57.0-1) libpangocairo-1.0-0:i386 (1.57.0-1) libpangoft2-1.0-0:i386 (1.57.0-1) libpixman-1-0:i386 (0.46.4-1) librav1e0.8:i386 (0.8.1-7) librsvg2-2:i386 (2.61.3+dfsg-3) librsvg2-common:i386 (2.61.3+dfsg-3) libsamplerate0:i386 (0.2.2-4+b2) libsharpyuv0:i386 (1.5.0-0.1) libshine3:i386 (3.1.1-3) libsnappy1v5:i386 (1.2.2-2) libsndfile1:i386 (1.2.2-3) libsoxr0:i386 (0.1.3-4.1) libspeex1:i386 (1.2.1-3) libspeexdsp1:i386 (1.2.1-3) libsvtav1enc2:i386 (2.3.0+dfsg-1) libswresample6:i386 (7:8.0.1-3) libsystemd0:i386 (259-1) libthai0:i386 (0.1.30-1) libtheoradec2:i386 (1.2.0+dfsg-6) libtheoraenc2:i386 (1.2.0+dfsg-6) libtiff6:i386 (4.7.1-1) libtwolame0:i386 (0.4.0-2+b2) libvdpau1:i386 (1.5-4) libvorbis0a:i386 (1.3.7-3) libvorbisenc2:i386 (1.3.7-3) libvpx11:i386 (1.15.2-2) libwebp7:i386 (1.5.0-0.1) libwebpmux3:i386 (1.5.0-0.1) libx264-165:i386 (2:0.165.3222+gitb35605ac-3+b1) libx265-215:i386 (4.1-4) libxcb-render0:i386 (1.17.0-2+b1) libxrender1:i386 (1:0.9.12-1) libxvidcore4:i386 (2:1.3.7-3) libzvbi0t64:i386 (0.2.44-1) ocl-icd-libopencl1:i386 (2.3.4-1) Use 'apt autoremove' to remove them. The following packages will be REMOVED: libasound2-plugins:i386 (1.2.12-2+b4) libasyncns0:i386 (0.8-7) libpulse0:i386 (17.0+dfsg1-2+b1) The following packages will be upgraded: libasyncns0 (0.8-7 => 0.8-7+b1) 1 upgraded, 0 newly installed, 3 to remove and 5 not upgraded. Remv libasound2-plugins:i386 [1.2.12-2+b4] Remv libpulse0:i386 [17.0+dfsg1-2+b1] Remv libasyncns0:i386 [0.8-7] Inst libasyncns0 [0.8-7] (0.8-7+b1 Debian:unstable [amd64]) Conf libasyncns0 (0.8-7+b1 Debian:unstable [amd64]) $ apt-get download libasyncns0 Get:1 https://deb.debian.org/debian unstable/main amd64 libasyncns0 amd64 0.8-7+b1 [12.4 kB] Fetched 12.4 kB in 0s (80.8 kB/s) $ apt-listchanges libasyncns0_0.8-7+b1_amd64.deb apt-listchanges: Reading changelogs... apt-listchanges: Changelogs --------------------------- --- Binary NMU of: libasyncns (0.8-7+b1) * Binary-only non-maintainer upload for amd64; no source changes. * Rebuild to enable GCS on arm64 $ aptitude show libasyncns0{,:i386}={0.8-7,0.8-7+b1} Package: libasyncns0 Version: 0.8-7 State: installed Automatically installed: yes Multi-Arch: same Priority: optional Section: libs Maintainer: Debian QA Group <[email protected]> Architecture: amd64 Uncompressed Size: 48.1 k Depends: libc6 (>= 2.34) Breaks: libasyncns0:i386 (!= 0.8-7) Replaces: libasyncns0:i386 (< 0.8-7) Description: Asynchronous name service query library libasyncns is a C library for Linux/Unix for executing name service queries asynchronously. It is an asynchronous wrapper around getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv. Homepage: https://0pointer.de/lennart/projects/libasyncns/ Tags: role::shared-lib Package: libasyncns0 Version: 0.8-7+b1 State: installed (0.8-7), upgrade available (0.8-7+b1) Automatically installed: yes Multi-Arch: same Priority: optional Section: libs Maintainer: Debian QA Group <[email protected]> Architecture: amd64 Uncompressed Size: 45.1 k Depends: libc6 (>= 2.34) Breaks: libasyncns0:i386 (!= 0.8-7+b1) Replaces: libasyncns0:i386 (< 0.8-7+b1) Description: Asynchronous name service query library libasyncns is a C library for Linux/Unix for executing name service queries asynchronously. It is an asynchronous wrapper around getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv. Homepage: https://0pointer.de/lennart/projects/libasyncns/ Tags: role::shared-lib Package: libasyncns0:i386 Version: 0.8-7 State: installed Automatically installed: yes Multi-Arch: same Priority: optional Section: libs Maintainer: Debian QA Group <[email protected]> Architecture: i386 Uncompressed Size: 44.0 k Depends: libc6:i386 (>= 2.34) Breaks: libasyncns0 (!= 0.8-7) Replaces: libasyncns0 (< 0.8-7) Description: Asynchronous name service query library libasyncns is a C library for Linux/Unix for executing name service queries asynchronously. It is an asynchronous wrapper around getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv. Homepage: https://0pointer.de/lennart/projects/libasyncns/ Tags: role::shared-lib Unable to find a version "0.8-7+b1" for the package "libasyncns0:i386" Package: libasyncns0:i386 Version: 0.8-7 State: installed Automatically installed: yes Multi-Arch: same Priority: optional Section: libs Maintainer: Debian QA Group <[email protected]> Architecture: i386 Uncompressed Size: 44.0 k Depends: libc6:i386 (>= 2.34) Breaks: libasyncns0 (!= 0.8-7) Replaces: libasyncns0 (< 0.8-7) Description: Asynchronous name service query library libasyncns is a C library for Linux/Unix for executing name service queries asynchronously. It is an asynchronous wrapper around getaddrinfo(3), getnameinfo(3), res_query(3) and res_search(3) from libc and libresolv. Homepage: https://0pointer.de/lennart/projects/libasyncns/ Tags: role::shared-lib >>>>> *** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? * What exactly did you do (or not do) that was effective (or ineffective)? * What was the outcome of this action? * What outcome did you expect instead? *** End of the template - remove these template lines *** -- System Information: Debian Release: forky/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.18.3+deb14-amd64 (SMP w/20 CPU threads; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libasyncns0 depends on: ii libc6 2.42-8 libasyncns0 recommends no packages. libasyncns0 suggests no packages. -- no debconf information