Package: libboost1.74-dev Version: 1.74.0-8 Severity: serious Tags: patch User: [email protected] Usertags: piuparts
libstdc++-dev is not a good virtual package to depend upon, since it is provided by multiple packages: bullseye# apt-get install libstdc++-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package libstdc++-dev is a virtual package provided by: libstdc++-9-dev 9.3.0-22 libstdc++-10-dev 10.2.1-6 You should explicitly select one to install. E: Package 'libstdc++-dev' has no installation candidate If apt has to choose, it may select the wrong one: bullseye# apt-get install libboost1.74-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libstdc++-9-dev Suggested packages: libboost1.74-doc libboost-atomic1.74-dev libboost-chrono1.74-dev libboost-container1.74-dev libboost-context1.74-dev libboost-contract1.74-dev libboost-coroutine1.74-dev libboost-date-time1.74-dev libboost-exception1.74-dev libboost-fiber1.74-dev libboost-filesystem1.74-dev libboost-graph1.74-dev libboost-graph-parallel1.74-dev libboost-iostreams1.74-dev libboost-locale1.74-dev libboost-log1.74-dev libboost-math1.74-dev libboost-mpi1.74-dev libboost-mpi-python1.74-dev libboost-numpy1.74-dev libboost-program-options1.74-dev libboost-python1.74-dev libboost-random1.74-dev libboost-regex1.74-dev libboost-serialization1.74-dev libboost-stacktrace1.74-dev libboost-system1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libboost-timer1.74-dev libboost-type-erasure1.74-dev libboost-wave1.74-dev libboost1.74-tools-dev libmpfrc++-dev libntl-dev libboost-nowide1.74-dev libstdc++-9-doc The following NEW packages will be installed: libboost1.74-dev libstdc++-9-dev 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/11.2 MB of archives. After this operation, 159 MB of additional disk space will be used. Do you want to continue? [Y/n] n Abort. But worse, on upgrades from buster to bullseye libstdc++-8-dev would have to be removed and libstdc++-10-dev would have to be installed to perform a clean upgrade, but I've found with piuparts a few upgrade paths where apt prefers to keep libstdc++-8-dev installed since it provides libstdc++-dev. That causes the upgrade to fail, since apt cannot find a valid upgrade path at al in these cases. The attached patch exchanges this dependency to Upgrading to the packages with this patch applied fixes all the issues I observed. I also tried a Depends: libstdc++-10-dev | libstdc++-dev but that leaves us with the failure I initially observed Andreas
diff -Nru boost1.74-1.74.0/debian/changelog boost1.74-1.74.0/debian/changelog
--- boost1.74-1.74.0/debian/changelog 2021-01-23 20:00:18.000000000 +0100
+++ boost1.74-1.74.0/debian/changelog 2021-03-08 16:18:55.000000000 +0100
@@ -1,3 +1,13 @@
+boost1.74 (1.74.0-8.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * libboost1.74-dev: Smoothen upgrades from buster by depending on
+ libstdc++-${gxx:major}-dev using the build-time version of g++ instead of
+ the virtual libstdc++-dev provided by multiple packages.
+ (Closes: #xxxxxx)
+
+ -- Andreas Beckmann <[email protected]> Mon, 08 Mar 2021 16:18:55 +0100
+
boost1.74 (1.74.0-8) unstable; urgency=medium
* [85a2610] Fix compilation warnings. (Closes: #980497)
diff -Nru boost1.74-1.74.0/debian/control boost1.74-1.74.0/debian/control
--- boost1.74-1.74.0/debian/control 2021-01-23 19:37:38.000000000 +0100
+++ boost1.74-1.74.0/debian/control 2021-03-08 16:18:55.000000000 +0100
@@ -24,7 +24,7 @@
Architecture: any
Multi-Arch: same
Section: libdevel
-Depends: ${misc:Depends}, ${shlibs:Depends}, libstdc++-dev
+Depends: ${misc:Depends}, ${shlibs:Depends}, libstdc++-${gxx:major}-dev
Suggests: libboost1.74-doc,
libboost-atomic1.74-dev,
libboost-chrono1.74-dev,
diff -Nru boost1.74-1.74.0/debian/rules boost1.74-1.74.0/debian/rules
--- boost1.74-1.74.0/debian/rules 2020-12-25 23:26:58.000000000 +0100
+++ boost1.74-1.74.0/debian/rules 2021-03-08 16:18:55.000000000 +0100
@@ -343,6 +343,9 @@
sed -i -r 's/^(libboost_numpy([0-9]{2}) \S+ (\S+).*)$$/\1, \3-py\2/'
debian/libboost-numpy$(SOVERSION)/DEBIAN/shlibs
endif
+override_dh_gencontrol:
+ dh_gencontrol -- -V'gxx:major=$(shell dpkg-query -f '$${version}' -W
g++ | sed 's/.*://;s/\..*//')'
+
$(b2):
cd tools/build && bison -y -d -o src/engine/jamgram.cpp
src/engine/jamgram.y
./bootstrap.sh --with-icu=/usr --prefix=$(CURDIR)/debian/tmp/usr \
libkf5mailcommon-dev_4:20.08.3-1.log.gz
Description: application/gzip

