Your message dated Thu, 10 Oct 2024 10:06:12 +0000 with message-id <E1syq3g-00EfOC-WA@fasolo.debian.org> and subject line Bug#1082168: fixed in gcc-defaults 1.220 has caused the Debian Bug report #1082168, regarding *-for-host: violates Multi-Arch: same to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 1082168: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1082168 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: *-for-host: violates Multi-Arch: same
- From: Helmut Grohne <helmut@subdivi.de>
- Date: Thu, 19 Sep 2024 07:50:23 +0200
- Message-id: <20240919055023.GA22063@subdivi.de>
Source: gcc-defaults Version: 1.219 Tags: patch User: helmutg@debian.org Usertags: rebootstrap Hi Matthias, I am sorry for having introduced another problem into the gcc packaging. As it turns out the *-for-host packages are not actually coinstallable at present even though they should be. Attempting to do so results in an unpack error. The root cause for this is the way I implemented documentation linking where the TOOL-for-host package links to the TOOL-GNU_TRIPLET package and that triplet is architecture-dependent of course. For the cpp-for-host package, there is no more fundamental package that we could link documentation to, so I propose that it gains a real documentation directory (thus incurring a symlink_to_dir conversion). All other *-for-host packages transitively depend on cpp-for-host already, so I propose making that dependency explicit and linking there. Please find a patch implementing this conversion attached. I tested the upgrade path and noticed that after unpacking the documentation links are not updated reliably. This is due to a corner case in dpkg where it looks up the actual link targets and if both the old link and the new link refer to the same directory, it skips replacing the symbolic link on disk. In a typical upgrade, cpp-for-host is not the first package to be unpacked and therefore, some of the other *-for-host packages' documentation links are not updated. (Thanks to Guillem for pointing at https://git.dpkg.org/cgit/dpkg/dpkg.git/tree/src/main/archives.c#n793 for understanding the cause.) It is not clear to me whether this is worth mitigating. The old documentation symlinks will continue to be valid as we do not loosen any dependencies. Also dpkg --verify does not spot any issue as the dpkg database does not record link targets. If the *-for-host packages are upgraded another time, the links will be corrected. Since the *-for-host packages have not been part of bookworm and I expect that two more versions of gcc-defaults reach testing before we release trixie, this may be a fair compromise. The alternative likely is adding more maintainer scripts in a similar way to dpkg-maintscript-helper for doing a symlink_to_symlink conversion. Let me know if you prefer this route, but I note that we'd be adding 21 maintainer scripts. Helmutdiff --minimal -Nru gcc-defaults-1.219/debian/changelog gcc-defaults-1.219+nmu1/debian/changelog --- gcc-defaults-1.219/debian/changelog 2024-07-23 11:22:47.000000000 +0200 +++ gcc-defaults-1.219+nmu1/debian/changelog 2024-09-18 14:17:40.000000000 +0200 @@ -1,3 +1,10 @@ +gcc-defaults (1.219+nmu1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix Multi-Arch coinstallability of *-for-host packages. (Closes: #-1) + + -- Helmut Grohne <helmut@subdivi.de> Wed, 18 Sep 2024 14:17:40 +0200 + gcc-defaults (1.219) unstable; urgency=medium * Build gdc and gm2 packages for loong64. Closes: #1069714, diff --minimal -Nru gcc-defaults-1.219/debian/control gcc-defaults-1.219+nmu1/debian/control --- gcc-defaults-1.219/debian/control 2024-07-23 11:22:47.000000000 +0200 +++ gcc-defaults-1.219+nmu1/debian/control 2024-09-18 14:17:40.000000000 +0200 @@ -372,7 +372,7 @@ Architecture: any Multi-Arch: same Depends: g++${native:suffix} (= ${version:gpp}), cpp${native:suffix} (= ${version:cpp}), - gcc-for-host (= ${version:gcc}), g++-${pv:gpp}-for-host ${reqv:gpp}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), g++-${pv:gpp}-for-host ${reqv:gpp}, ${misc:Depends} Description: GNU C++ compiler for the host architecture This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. @@ -425,7 +425,7 @@ Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:cpp}), gobjc${native:suffix} (= ${version:gobjc}), - gcc-for-host (= ${version:gcc}), gobjc-${pv:gobjc}-for-host ${reqv:gobjc}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gobjc-${pv:gobjc}-for-host ${reqv:gobjc}, ${misc:Depends} Description: GNU Objective-C compiler for the host architecture This is the GNU Objective-C compiler, which compiles Objective-C on platforms @@ -482,7 +482,7 @@ Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:cpp}), gobjc++${native:suffix} (= ${version:gobjcxx}), - gobjc-for-host (= ${version:gobjc}), g++-for-host (= ${version:gpp}), + cpp-for-host (= ${version:cpp}), gobjc-for-host (= ${version:gobjc}), g++-for-host (= ${version:gpp}), gobjc++-${pv:gobjcxx}-for-host ${reqv:gobjcxx}, ${misc:Depends} Description: GNU Objective-C++ compiler for the host architecture This is the GNU Objective-C++ compiler, which compiles @@ -538,7 +538,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (= ${version:gcc}), - gcc-for-host (= ${version:gcc}), gfortran-${pv:gfort}-for-host ${reqv:gfort}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gfortran-${pv:gfort}-for-host ${reqv:gfort}, gfortran${native:suffix} (= ${version:gfort}), ${misc:Depends} Description: GNU Fortran 95 compiler for the host architecture This is the GNU Fortran 95 compiler, which compiles Fortran 95 on platforms @@ -592,7 +592,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:gcc}), - gcc-for-host (= ${version:gcc}), gccgo-${pv:ggo}-for-host ${reqv:ggo}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gccgo-${pv:ggo}-for-host ${reqv:ggo}, gccgo${native:suffix} (= ${version:ggo}), ${misc:Depends} Description: Go compiler, based on the GCC backend for the host architecture This is the GNU Go compiler, which compiles Go on platforms supported by @@ -644,7 +644,7 @@ Architecture: any Multi-Arch: same Depends: gdc${native:suffix} (= ${version:gdc}), ${dep:libgphobos}, - gcc-for-host (= ${version:gcc}), gdc-${pv:gdc}-for-host ${reqv:gdc}, ${misc:Depends} + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gdc-${pv:gdc}-for-host ${reqv:gdc}, ${misc:Depends} Description: D compiler (language version 2) for the host architecture This is a dependency package providing the default D compiler. Per policy, all packages that contain D sources must use this package @@ -701,7 +701,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gm2${native:suffix} (= ${version:gm2}), - gcc-for-host (= ${version:gcc}), gm2-${pv:gm2}-for-host ${reqv:gm2}, ${misc:Depends} + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gm2-${pv:gm2}-for-host ${reqv:gm2}, ${misc:Depends} Description: GNU Modula-2 compiler for the host architecture, based on the GCC backend This is a dependency package providing the default GNU Modula-2 compiler. . diff --minimal -Nru gcc-defaults-1.219/debian/control.native.in gcc-defaults-1.219+nmu1/debian/control.native.in --- gcc-defaults-1.219/debian/control.native.in 2024-01-27 18:41:19.000000000 +0100 +++ gcc-defaults-1.219+nmu1/debian/control.native.in 2024-09-18 14:17:40.000000000 +0200 @@ -361,7 +361,7 @@ Architecture: any Multi-Arch: same Depends: g++${native:suffix} (= ${version:gpp}), cpp${native:suffix} (= ${version:cpp}), - gcc-for-host (= ${version:gcc}), g++-${pv:gpp}-for-host ${reqv:gpp}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), g++-${pv:gpp}-for-host ${reqv:gpp}, ${misc:Depends} Description: GNU C++ compiler for the host architecture This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. @@ -414,7 +414,7 @@ Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:cpp}), gobjc${native:suffix} (= ${version:gobjc}), - gcc-for-host (= ${version:gcc}), gobjc-${pv:gobjc}-for-host ${reqv:gobjc}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gobjc-${pv:gobjc}-for-host ${reqv:gobjc}, ${misc:Depends} Description: GNU Objective-C compiler for the host architecture This is the GNU Objective-C compiler, which compiles Objective-C on platforms @@ -471,7 +471,7 @@ Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:cpp}), gobjc++${native:suffix} (= ${version:gobjcxx}), - gobjc-for-host (= ${version:gobjc}), g++-for-host (= ${version:gpp}), + cpp-for-host (= ${version:cpp}), gobjc-for-host (= ${version:gobjc}), g++-for-host (= ${version:gpp}), gobjc++-${pv:gobjcxx}-for-host ${reqv:gobjcxx}, ${misc:Depends} Description: GNU Objective-C++ compiler for the host architecture This is the GNU Objective-C++ compiler, which compiles @@ -528,7 +528,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (= ${version:gcc}), - gcc-for-host (= ${version:gcc}), gfortran-${pv:gfort}-for-host ${reqv:gfort}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gfortran-${pv:gfort}-for-host ${reqv:gfort}, gfortran${native:suffix} (= ${version:gfort}), ${misc:Depends} Description: GNU Fortran 95 compiler for the host architecture This is the GNU Fortran 95 compiler, which compiles Fortran 95 on platforms @@ -582,7 +582,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gcc${native:suffix} (>= ${version:gcc}), - gcc-for-host (= ${version:gcc}), gccgo-${pv:ggo}-for-host ${reqv:ggo}, + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gccgo-${pv:ggo}-for-host ${reqv:ggo}, gccgo${native:suffix} (= ${version:ggo}), ${misc:Depends} Description: Go compiler, based on the GCC backend for the host architecture This is the GNU Go compiler, which compiles Go on platforms supported by @@ -634,7 +634,7 @@ Architecture: any Multi-Arch: same Depends: gdc${native:suffix} (= ${version:gdc}), ${dep:libgphobos}, - gcc-for-host (= ${version:gcc}), gdc-${pv:gdc}-for-host ${reqv:gdc}, ${misc:Depends} + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gdc-${pv:gdc}-for-host ${reqv:gdc}, ${misc:Depends} Description: D compiler (language version 2) for the host architecture This is a dependency package providing the default D compiler. Per policy, all packages that contain D sources must use this package @@ -691,7 +691,7 @@ Architecture: any Multi-Arch: same Depends: cpp${native:suffix} (= ${version:cpp}), gm2${native:suffix} (= ${version:gm2}), - gcc-for-host (= ${version:gcc}), gm2-${pv:gm2}-for-host ${reqv:gm2}, ${misc:Depends} + cpp-for-host (= ${version:cpp}), gcc-for-host (= ${version:gcc}), gm2-${pv:gm2}-for-host ${reqv:gm2}, ${misc:Depends} Description: GNU Modula-2 compiler for the host architecture, based on the GCC backend This is a dependency package providing the default GNU Modula-2 compiler. . diff --minimal -Nru gcc-defaults-1.219/debian/cpp-for-host.maintscript.in gcc-defaults-1.219+nmu1/debian/cpp-for-host.maintscript.in --- gcc-defaults-1.219/debian/cpp-for-host.maintscript.in 1970-01-01 01:00:00.000000000 +0100 +++ gcc-defaults-1.219+nmu1/debian/cpp-for-host.maintscript.in 2024-09-18 14:17:40.000000000 +0200 @@ -0,0 +1 @@ +symlink_to_dir /usr/share/doc/cpp-for-host cpp@NATIVE_SUFFIX@ 4:14.1.0-2 diff --minimal -Nru gcc-defaults-1.219/debian/rules gcc-defaults-1.219+nmu1/debian/rules --- gcc-defaults-1.219/debian/rules 2024-07-23 11:22:47.000000000 +0200 +++ gcc-defaults-1.219+nmu1/debian/rules 2024-09-18 14:17:40.000000000 +0200 @@ -789,7 +789,7 @@ rm -rf build rm -f debian/control.tmp* rm -f debian/substvars.* - rm -f debian/cpp.maintscript debian/gcc.postinst debian/g++.postinst debian/gdc.maintscript debian/gfortran.postinst + rm -f debian/cpp.maintscript debian/gcc.postinst debian/g++.postinst debian/gdc.maintscript debian/gfortran.postinst debian/cpp-for-host.maintscript dh_clean pre-install: build substvars @@ -812,6 +812,8 @@ dh_link -pcpp \ /usr/bin/cpp-$(PV_CPP) /usr/bin/cpp \ /usr/share/doc/cpp$(NATIVE_SUFFIX) /usr/share/doc/cpp + sed -e 's/@NATIVE_SUFFIX@/$(NATIVE_SUFFIX)/g' \ + debian/cpp-for-host.maintscript.in > debian/cpp-for-host.maintscript ifeq ($(with_gfdl_docs),yes) for i in gfdl.7 gpl.7 fsf-funding.7; do \ @@ -964,7 +966,7 @@ ifneq (,$(filter gdc-for-host, $(packages))) : # gdc-for-host dh_installdirs -pgdc-for-host - dh_link -pgdc-for-host /usr/share/doc/gdc$(NATIVE_SUFFIX) /usr/share/doc/gdc-for-host + dh_link -pgdc-for-host /usr/share/doc/cpp-for-host /usr/share/doc/gdc-for-host endif ifneq (,$(filter gm2, $(packages))) @@ -1358,10 +1360,12 @@ dh_testroot # dh_installdebconf dh_installdocs -pcpp$(NATIVE_SUFFIX) - for p in `dh_listpackages -a $(nopkgs_native) -Ncpp$(NATIVE_SUFFIX) $(if $(filter yes,$(with_gfdl_docs)),-Ncpp-doc -Ngcc-doc -Ngfortran-doc -Ngccgo-doc) -Ngdc -Ngdc$(NATIVE_SUFFIX) -Ngdc-for-host -Nlibgphobos-dev`; do \ + dh_installdocs -pcpp-for-host + for p in `dh_listpackages -a $(nopkgs_native) -Ncpp$(NATIVE_SUFFIX) -Ncpp-for-host $(if $(filter yes,$(with_gfdl_docs)),-Ncpp-doc -Ngcc-doc -Ngfortran-doc -Ngccgo-doc) -Ngdc -Ngdc$(NATIVE_SUFFIX) -Ngdc-for-host -Nlibgphobos-dev`; do \ case "$$p" in \ *$(NATIVE_SUFFIX)) t=cpp$(NATIVE_SUFFIX) ;; \ *-gnu*|*-kfreebsd*|gcc-hppa64-linux-gnu) continue;; \ + *-for-host) t=cpp-for-host ;; \ *) t=cpp$(NATIVE_SUFFIX); \ esac; \ echo ln -sf $$t debian/$$p/usr/share/doc/$$p; \ @@ -1372,6 +1376,7 @@ for p in \ cpp$(NATIVE_SUFFIX) \ + cpp-for-host \ $(if $(filter $(DEB_HOST_ARCH), $(d_archs)), gdc$(NATIVE_SUFFIX)) \ $(if $(filter $(DEB_HOST_ARCH), $(phobos_archs)), libgphobos-dev); \ do \
--- End Message ---
--- Begin Message ---
- To: 1082168-close@bugs.debian.org
- Subject: Bug#1082168: fixed in gcc-defaults 1.220
- From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>
- Date: Thu, 10 Oct 2024 10:06:12 +0000
- Message-id: <E1syq3g-00EfOC-WA@fasolo.debian.org>
- Reply-to: Matthias Klose <doko@debian.org>
Source: gcc-defaults Source-Version: 1.220 Done: Matthias Klose <doko@debian.org> We believe that the bug you reported is fixed in the latest version of gcc-defaults, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 1082168@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Matthias Klose <doko@debian.org> (supplier of updated gcc-defaults package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 1.8 Date: Thu, 10 Oct 2024 09:53:47 +0200 Source: gcc-defaults Architecture: source Version: 1.220 Distribution: unstable Urgency: medium Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org> Changed-By: Matthias Klose <doko@debian.org> Closes: 1082168 Changes: gcc-defaults (1.220) unstable; urgency=medium . * Bump versions to 14.2. * Fix Multi-Arch coinstallability of *-for-host packages. (Helmut Grohne). Closes: #1082168. Checksums-Sha1: 6bdc071d91dbf58de5b449bf4b646c665d541d56 36895 gcc-defaults_1.220.dsc 252a358d8f95653f129bdf0f16df8d607eb493bf 54044 gcc-defaults_1.220.tar.xz 124a56090ef7af91e73fd046f0d93a5af177f8f9 5963 gcc-defaults_1.220_source.buildinfo Checksums-Sha256: abfa2d362033435385e733f97d0cace1fbc917fd4160c81cc89abac38d3cdc37 36895 gcc-defaults_1.220.dsc d40fbdb57f351a58e050c3e1037201853e88e3f673242b62357dc20030ad4805 54044 gcc-defaults_1.220.tar.xz e4b2b583b95b74ba71b8b2821a42d31270eced2f16da818e9d968fabd5a9c123 5963 gcc-defaults_1.220_source.buildinfo Files: dc805e6447c4351691b64c98787d8a63 36895 devel standard gcc-defaults_1.220.dsc 94e3313ba19e2f7c093892873d1ac076 54044 devel standard gcc-defaults_1.220.tar.xz 93001b888bbacc23161bf53dd7752288 5963 devel standard gcc-defaults_1.220_source.buildinfo -----BEGIN PGP SIGNATURE----- iQJEBAEBCgAuFiEE1WVxuIqLuvFAv2PWvX6qYHePpvUFAmcHlf4QHGRva29AZGVi aWFuLm9yZwAKCRC9fqpgd4+m9Rh7D/4jLdR5MJskXGgnpgjMWYWWKvIGuEMaoBy/ vF05lrCJLilhA3ZxrhlMy81I1KGA0CK12vR20G7qwdir5Wh3FhTK+wHlcenLoY0a 8bhvZSKM49odnaBewoeqPhlNGveqtx2cYSgRS0J5K1kMRgGxFath6jVNo5KwGlsd A+SSC3XZLY7St8KVTX1Z333HREfYJJdOvfNGrQ+JvLZl1D4iLLMVDjxXbTQcJul+ Gn2+0etqcZl3jJPiCSEUlQFzGfUZaDH/QF2Klo9IYOQIYGXuvYw65naOQ5QqlgSV uuTXH9rpEWS9sT8XQz4O9mB8ASrasLBgdhsARChwb5jA0cfRurUzMaA2nTGIIXpz TQW1Y5eDsZUP/GE9amOVjMZLpPvIdxovnJPRu8zfkLcKthbKQuvoF30n4p3KcmqT zlg4oBrxhNdyYxxwsSoaOL9m+jbcx+5GTmcypItZ6KyarpLnOhXoQAUxJQBwhvya aABpkrnbykmiF5UdewF1FO/uCDFvIojd2KX8iF4N4NUzKVBuoE1op9m2h6WsUyD4 t9rGSU8OXEM2EZK5+XQZJbFWCA06Rc5eNDWDT7xjRcW3gvRXaDgId3MIuVwGNr+r O+H8P6PY0Pc33AjIVjms7QO7PFBf53qKfc6BugSVqxb5NpzIs6Kf6LBEDRoQ1Vuo PVq2Y2SC2A== =SxbC -----END PGP SIGNATURE-----Attachment: pgpq5PDzMrIU6.pgp
Description: PGP signature
--- End Message ---