[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Planning for libidn shared library version transition



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


Reply to: