Hi! This is for post-bullseye, but I appreciate guidance if anyone has time. Shared library version transitions trigger uncertainty in me. I want to upload a new upstream libidn release into Debian, but upstream has done a shared library transition. Bullseye will ship with libidn11-dev instead of libidn-dev too. Is the first step on the transition to provide a libidn-dev package experimental (and after the release, unstable) and make all reverse build-dependencies use it? If so, I plan to upload a new libidn version to experimental with this libidn-dev package, and then start to file bugs to all build reverse-dependencies to make them use libidn-dev. Once all bugs have been addressed, I can upload the new upstream version into unstable to finish the transition. Is that correct? The reverse build dependencies needs to be rebuilt against the new version though, and I'm not sure how that happens. I have prepared what I want to upload into experimental here: https://salsa.debian.org/debian/libidn/-/tree/experimental and I have attempted to re-build all reverse dependencies [1] here: https://salsa.debian.org/debian/libidn/-/pipelines/255418 The failed tests looks harmless: echoping is FTFBS and broken for other reasons, clickhouse just takes too long to build (but no indication of problem), and systemd appear to failed for some other reason. A 'git diff' between the version in bullseye and what I want to upload to experimental is shown below, together with debdiff-output between the built packages. Generally, does things looks okay? Specifically, what about the Breaks/Replaces/Conflicts? The d/changelog entry? Will the confusing 'Replaces: libidn11-dev' for the libidn11 (!) package in bullseye cause any problem? Am I right to drop it here? Should I wait post release with the upload to experimental, and/or filing the bugs? /Simon [1] thanks to https://salsa.debian.org/bzed/reverse-dependency-ci
jas@latte:~/dpkg/libidn$ PAGER=cat git diff bullseye..experimental
diff --git a/debian/changelog b/debian/changelog
index 28965c1..ebab7e8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+libidn (1.33-4) UNRELEASED; urgency=low
+
+ * Prepare for soname bump in newer upstream releases.
+ - New libidn-dev package, contain what was in libidn11-dev before.
+ - Make libidn11-dev a dummy transitional package.
+ - Drop references to libidn9 and libidn9-dev, last seen in 2003
+ and didn't reach testing according to the tracker.
+ * For libidn11, drop confusing 'Replaces: libidn11-dev'.
+
+ -- Simon Josefsson <simon@josefsson.org> Sun, 16 May 2021 00:08:06 +0200
+
libidn (1.33-3) unstable; urgency=low
[ Simon Josefsson ]
diff --git a/debian/control b/debian/control
index b5996d7..65a58b6 100644
--- a/debian/control
+++ b/debian/control
@@ -26,10 +26,20 @@ Description: Command line and Emacs interface to GNU Libidn
interface.
Package: libidn11-dev
+Section: oldlibs
+Architecture: any
+Depends: libidn-dev, ${misc:Depends}
+Multi-Arch: same
+Description: Transitional development package for GNU Libidn
+ This is a transitional package. It can safely be removed.
+
+Package: libidn-dev
Section: libdevel
Architecture: any
Depends: libidn11 (= ${binary:Version}), pkg-config, ${misc:Depends}
-Conflicts: libidn9-dev
+Breaks: libidn11-dev (<< 1.33-4)
+Replaces: libidn11-dev (<< 1.33-4)
+Provides: libidn11-dev
Multi-Arch: same
Description: Development files for GNU Libidn, an IDN library
GNU Libidn is a fully documented implementation of the Stringprep,
@@ -43,8 +53,6 @@ Description: Development files for GNU Libidn, an IDN library
Package: libidn11
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
-Conflicts: libidn9-dev
-Replaces: libidn11-dev
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: GNU Libidn library, implementation of IETF IDN specifications
diff --git a/debian/gbp.conf b/debian/gbp.conf
index 5862fad..2861725 100644
--- a/debian/gbp.conf
+++ b/debian/gbp.conf
@@ -1,4 +1,4 @@
[DEFAULT]
pristine-tar = True
sign-tags = True
-debian-branch = bullseye
+debian-branch = experimental
diff --git a/debian/libidn11-dev.examples b/debian/libidn-dev.examples
similarity index 100%
rename from debian/libidn11-dev.examples
rename to debian/libidn-dev.examples
diff --git a/debian/libidn11-dev.info b/debian/libidn-dev.info
similarity index 100%
rename from debian/libidn11-dev.info
rename to debian/libidn-dev.info
diff --git a/debian/libidn11-dev.install b/debian/libidn-dev.install
similarity index 100%
rename from debian/libidn11-dev.install
rename to debian/libidn-dev.install
diff --git a/debian/libidn11-dev.manpages b/debian/libidn-dev.manpages
similarity index 100%
rename from debian/libidn11-dev.manpages
rename to debian/libidn-dev.manpages
diff --git a/debian/libidn11.symbols b/debian/libidn11.symbols
index a6f7a37..a5196d0 100644
--- a/debian/libidn11.symbols
+++ b/debian/libidn11.symbols
@@ -1,5 +1,5 @@
libidn.so.11 libidn11 #MINVER#
-* Build-Depends-Package: libidn11-dev
+* Build-Depends-Package: libidn-dev
LIBIDN_1.0@LIBIDN_1.0 1.13
idn_free@LIBIDN_1.0 1.13
idna_strerror@LIBIDN_1.0 1.13
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
index 892f3cd..7e8a7a8 100644
--- a/debian/salsa-ci.yml
+++ b/debian/salsa-ci.yml
@@ -1,3 +1,8 @@
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+ - https://jas.pages.debian.net/reverse-dependency-ci/libidn.yml
+
+# Enable reverse dependency builds with manual pipeline invoked from
+# https://salsa.debian.org/debian/libidn/-/pipelines/new with variable
+# SALSA_CI_ENABLE_REVERSE_DEPENDENCY_BUILD set to 1.
jas@latte:~/dpkg/libidn$ debdiff ../libidn_1.33-3_amd64.changes ../libidn_1.33-4_amd64.changes
[The following lists of changes regard files as different if they have
different names, permissions or owners.]
Files in second .changes but not in first
-----------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/fb/f45dfbc332a31df88c6486c891d26b77484f38.debug
-rw-r--r-- root/root /usr/share/doc/libidn-dev/changelog.Debian.gz
-rw-r--r-- root/root /usr/share/doc/libidn-dev/changelog.gz
-rw-r--r-- root/root /usr/share/doc/libidn-dev/copyright
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/README
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/example.c
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/example2.c
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/example3.c
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/example4.c
-rw-r--r-- root/root /usr/share/doc/libidn-dev/examples/example5.c
Files in first .changes but not in second
-----------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/b8/51518b886fad3ef49ddda44ba667ac043e60c0.debug
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/README
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/example.c
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/example2.c
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/example3.c
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/example4.c
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/examples/example5.c
Control files of package idn: lines which differ (wdiff format)
---------------------------------------------------------------
Version: [-1.33-3-] {+1.33-4+}
Control files of package idn-dbgsym: lines which differ (wdiff format)
----------------------------------------------------------------------
Build-Ids: [-b851518b886fad3ef49ddda44ba667ac043e60c0-] {+fbf45dfbc332a31df88c6486c891d26b77484f38+}
Depends: idn (= [-1.33-3)-] {+1.33-4)+}
Version: [-1.33-3-] {+1.33-4+}
Control files of package libidn11: lines which differ (wdiff format)
--------------------------------------------------------------------
[-Conflicts: libidn9-dev-]
[-Replaces: libidn11-dev-]
Version: [-1.33-3-] {+1.33-4+}
Control files of package libidn11-dbgsym: lines which differ (wdiff format)
---------------------------------------------------------------------------
Depends: libidn11 (= [-1.33-3)-] {+1.33-4)+}
Version: [-1.33-3-] {+1.33-4+}
Control files of package libidn11-dev: lines which differ (wdiff format)
------------------------------------------------------------------------
[-Conflicts: libidn9-dev-]
Depends: [-libidn11 (= 1.33-3), pkg-config-] {+libidn-dev+}
Description: [-Development files-] {+Transitional development package+} for GNU [-Libidn, an IDN library-]
[- GNU-] Libidn
{+This+} is a [-fully documented implementation of the Stringprep,-]
[- Punycode and IDNA specifications. Libidn's purpose is to encode and-]
[- decode internationalized domain names. The Nameprep, XMPP, SASLprep,-]
[- and iSCSI profiles are supported.-]
[- .-]
[- This package contains the header files, static library, pkg-config-]
[- information, API man pages, and the Libidn manual.-] {+transitional package. It can safely be removed.+}
Installed-Size: [-878-] {+453+}
Section: [-libdevel-] {+oldlibs+}
Version: [-1.33-3-] {+1.33-4+}
Control files of package libidn11-java: lines which differ (wdiff format)
-------------------------------------------------------------------------
Version: [-1.33-3-] {+1.33-4+}
jas@latte:~/dpkg/libidn$
Attachment:
signature.asc
Description: PGP signature