Hi! I'm now resuming work on the libidn shared library transition, and
I'm ready for the upload to experimental. I wanted to ping back here to
get more review. I'm following Andreas Metzler's outline, but included
some tweaks suggested by Simon McVittie. I decided to do some more
changes that are unrelated here (e.g., drop the would-be poorly named
libidn11-java package which nobody appears to use, and drop the no
longer working Emacs libraries).
The old package (1.33-3, in bullseye) looks like the following (yeah,
the 'Replaces: libidn11-dev' on the 'libidn11' package is confusing, and
could potentially cause problems here):
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
Package: libidn11-dev
Section: libdevel
Architecture: any
Depends: libidn11 (= ${binary:Version}), pkg-config, ${misc:Depends}
Conflicts: libidn9-dev
Multi-Arch: same
Description: Development files for GNU Libidn, an IDN library
The new package (1.38-1) that I'm planning to upload has this:
Package: libidn12
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same
Description: GNU Libidn library, implementation of IETF IDN specifications
Package: libidn-dev
Section: libdevel
Architecture: any
Depends: libidn12 (= ${binary:Version}), pkg-config, ${misc:Depends}
Breaks: libidn11-dev (<< 1.38-1~)
Replaces: libidn11-dev (<< 1.38-1~)
Suggests: idn
Multi-Arch: same
Description: Development files for GNU Libidn, an IDN library
Package: libidn11-dev
Section: oldlibs
Architecture: any
Depends: libidn-dev (>= 1.38-1~), ${misc:Depends}
Multi-Arch: same
Description: Transitional development package for GNU Libidn
Libidn11-dev's '>= 1.38-1~' dependency, and the '<< 1.38-1~' in
libidn12, came as a suggestion from Simon McVittie.
It builds fine, and reverse dependencies builds too (the two failures
are not libidn-issues):
https://salsa.debian.org/debian/libidn/-/pipelines/270968
I'm including more complete debdiff below.
What do you think?
I'm not only looking to catch fatal mistakes, but also want ideas on how
to improve this further, so all feedback is welcome.
Thanks,
/Simon
jas@latte:~/dpkg$ debdiff --show-moved libidn_1.33-3_amd64.changes libidn_1.38-1_amd64.changes
Warning: these package names were in the second list but not in the first:
--------------------------------------------------------------------------
libidn-dev
libidn12
libidn12-dbgsym
Warning: these package names were in the first list but not in the second:
--------------------------------------------------------------------------
libidn11
libidn11-dbgsym
libidn11-java
[The following lists of changes regard files as different if they have
different names, permissions or owners.]
Files only in first set of .debs, found in package idn
------------------------------------------------------
-rw-r--r-- root/root /usr/share/doc/idn/AUTHORS.gz
-rw-r--r-- root/root /usr/share/doc/idn/TODO
-rw-r--r-- root/root /usr/share/emacs/site-lisp/idna.el
-rw-r--r-- root/root /usr/share/emacs/site-lisp/punycode.el
Files only in first set of .debs, found in package idn-dbgsym
-------------------------------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/b8/51518b886fad3ef49ddda44ba667ac043e60c0.debug
Files only in first set of .debs, found in package libidn11
-----------------------------------------------------------
-rw-r--r-- root/root /lib/x86_64-linux-gnu/libidn.so.11.6.16
-rw-r--r-- root/root /usr/share/doc/libidn11/changelog.Debian.gz
-rw-r--r-- root/root /usr/share/doc/libidn11/changelog.gz
-rw-r--r-- root/root /usr/share/doc/libidn11/copyright
lrwxrwxrwx root/root /lib/x86_64-linux-gnu/libidn.so.11 -> libidn.so.11.6.16
Files moved from package libidn11 to package libidn12
-----------------------------------------------------
-rw-r--r-- root/root DEBIAN/shlibs
-rw-r--r-- root/root DEBIAN/symbols
-rw-r--r-- root/root DEBIAN/triggers
Files only in first set of .debs, found in package libidn11-dbgsym
------------------------------------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/14/d4bc0771a40445c675c5c4682d56465463ccc8.debug
lrwxrwxrwx root/root /usr/share/doc/libidn11-dbgsym -> libidn11
Files only in first set of .debs, found in package libidn11-dev
---------------------------------------------------------------
-rw-r--r-- root/root /usr/share/doc-base/libidn11
-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
-rw-r--r-- root/root /usr/share/doc/libidn11-dev/libidn.pdf.gz
lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/libidn.so -> /lib/x86_64-linux-gnu/libidn.so.11
Files moved from package libidn11-dev to package libidn-dev
-----------------------------------------------------------
-rw-r--r-- root/root /usr/include/idn-free.h
-rw-r--r-- root/root /usr/include/idn-int.h
-rw-r--r-- root/root /usr/include/idna.h
-rw-r--r-- root/root /usr/include/pr29.h
-rw-r--r-- root/root /usr/include/punycode.h
-rw-r--r-- root/root /usr/include/stringprep.h
-rw-r--r-- root/root /usr/include/tld.h
-rw-r--r-- root/root /usr/lib/x86_64-linux-gnu/libidn.a
-rw-r--r-- root/root /usr/lib/x86_64-linux-gnu/pkgconfig/libidn.pc
-rw-r--r-- root/root /usr/share/info/libidn-components.png
-rw-r--r-- root/root /usr/share/info/libidn.info.gz
-rw-r--r-- root/root /usr/share/man/man3/idn_free.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_strerror.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_ascii_4i.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_ascii_4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_ascii_8z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_ascii_lz.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_44i.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_4z4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_8z4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_8z8z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_8zlz.3.gz
-rw-r--r-- root/root /usr/share/man/man3/idna_to_unicode_lzlz.3.gz
-rw-r--r-- root/root /usr/share/man/man3/pr29_4.3.gz
-rw-r--r-- root/root /usr/share/man/man3/pr29_4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/pr29_8z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/pr29_strerror.3.gz
-rw-r--r-- root/root /usr/share/man/man3/punycode_decode.3.gz
-rw-r--r-- root/root /usr/share/man/man3/punycode_encode.3.gz
-rw-r--r-- root/root /usr/share/man/man3/punycode_strerror.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_4i.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_4zi.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_check_version.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_convert.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_locale_charset.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_locale_to_utf8.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_profile.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_strerror.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_ucs4_nfkc_normalize.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_ucs4_to_utf8.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_unichar_to_utf8.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_utf8_nfkc_normalize.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_utf8_to_locale.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_utf8_to_ucs4.3.gz
-rw-r--r-- root/root /usr/share/man/man3/stringprep_utf8_to_unichar.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_4.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_4t.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_4tz.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_8z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_check_lz.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_default_table.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_get_4.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_get_4z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_get_table.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_get_z.3.gz
-rw-r--r-- root/root /usr/share/man/man3/tld_strerror.3.gz
Files only in first set of .debs, found in package libidn11-java
----------------------------------------------------------------
-rw-r--r-- root/root /usr/share/doc-base/libidn11-java
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/Makefile.am
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/Makefile.in.gz
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/about.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/alphaindex.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/deprecated.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/CombiningClass.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/Composition.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/DecompositionKeys.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/DecompositionMappings.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/IDNA.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/IDNAException.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/NFKC.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/Punycode.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/PunycodeException.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/RFC3454.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/Stringprep.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/StringprepException.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/classes.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/package-summary.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/gnu/inet/encoding/tree.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/index.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/resources/gjdoc.js
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/resources/gjdochtml-clean-color1.css
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/resources/gjdochtml-clean-layout.css
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/resources/inherit.png
-rw-r--r-- root/root /usr/share/doc/libidn11-java/api/serialized-form.html
-rw-r--r-- root/root /usr/share/doc/libidn11-java/changelog.Debian.gz
-rw-r--r-- root/root /usr/share/doc/libidn11-java/changelog.gz
-rw-r--r-- root/root /usr/share/doc/libidn11-java/copyright
-rw-r--r-- root/root /usr/share/java/libidn-1.33.jar
lrwxrwxrwx root/root /usr/share/java/libidn.jar -> libidn-1.33.jar
New files in second set of .debs, found in package idn
------------------------------------------------------
-rw-r--r-- root/root /usr/share/doc/idn/AUTHORS
-rw-r--r-- root/root /usr/share/doc/idn/FAQ
New files in second set of .debs, found in package idn-dbgsym
-------------------------------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/84/f435e40f9c9b247e523b44a16c589e5b8324a4.debug
New files in second set of .debs, found in package libidn-dev
-------------------------------------------------------------
-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
lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/libidn.so -> libidn.so.12.6.3
New files in second set of .debs, found in package libidn12
-----------------------------------------------------------
-rw-r--r-- root/root /usr/lib/x86_64-linux-gnu/libidn.so.12.6.3
-rw-r--r-- root/root /usr/share/doc/libidn12/changelog.Debian.gz
-rw-r--r-- root/root /usr/share/doc/libidn12/changelog.gz
-rw-r--r-- root/root /usr/share/doc/libidn12/copyright
lrwxrwxrwx root/root /usr/lib/x86_64-linux-gnu/libidn.so.12 -> libidn.so.12.6.3
New files in second set of .debs, found in package libidn12-dbgsym
------------------------------------------------------------------
-rw-r--r-- root/root /usr/lib/debug/.build-id/16/41a7c7d9a44def884a10004ae8d0505152f537.debug
lrwxrwxrwx root/root /usr/share/doc/libidn12-dbgsym -> libidn12
Files moved or copied from at least TWO packages or to at least TWO packages
----------------------------------------------------------------------------
-rw-r--r-- root/root DEBIAN/control
From packages: idn-dbgsym, idn, libidn11-dbgsym, libidn11-dev, libidn11-java, libidn11
To packages: idn-dbgsym, idn, libidn-dev, libidn11-dev, libidn12-dbgsym, libidn12
-rw-r--r-- root/root DEBIAN/md5sums
From packages: idn-dbgsym, idn, libidn11-dbgsym, libidn11-dev, libidn11-java, libidn11
To packages: idn-dbgsym, idn, libidn-dev, libidn11-dev, libidn12-dbgsym, libidn12
Control files of package idn: lines which differ (wdiff format)
---------------------------------------------------------------
Depends: libc6 (>= 2.14), [-libidn11-] {+libidn12+} (>= 1.13)
Description: Command line [-and Emacs-] interface to GNU Libidn
This package contains the idn command-line [-tool and its Emacs lisp-]
[- interface.-] {+tool.+}
Installed-Size: [-213-] {+120+}
Version: [-1.33-3-] {+1.38-1+}
Control files of package idn-dbgsym: lines which differ (wdiff format)
----------------------------------------------------------------------
Build-Ids: [-b851518b886fad3ef49ddda44ba667ac043e60c0-] {+84f435e40f9c9b247e523b44a16c589e5b8324a4+}
Depends: idn (= [-1.33-3)-] {+1.38-1)+}
Installed-Size: [-42-] {+43+}
Version: [-1.33-3-] {+1.38-1+}
Control files of package libidn11-dev: lines which differ (wdiff format)
------------------------------------------------------------------------
[-Conflicts: libidn9-dev-]
Depends: [-libidn11 (= 1.33-3), pkg-config-] {+libidn-dev (>= 1.38-1~)+}
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-] {+49+}
Section: [-libdevel-] {+oldlibs+}
Version: [-1.33-3-] {+1.38-1+}
jas@latte:~/dpkg$
Attachment:
signature.asc
Description: PGP signature