On Mon, 16 Apr 2007 08:41:49 -0500 John Goerzen <jgoerzen@complete.org> wrote: > On Mon, Apr 16, 2007 at 09:27:48AM +0200, Steve Langasek wrote: > > > patch that reverts the SONAME change in the autotools by breaking > > > the link between the upstream version string and the library > > > version info and setting version info directly. > > > > I would instead leave the upstream code alone, and provide > > libarchive.so.1 as a backwards-compatible symlink to > > libarchive.so.2, permitting the package name to be reverted to > > libarchive1. Doing it the other way has the downside that any > > binaries built on Debian will be incompatible with other systems. > > That sounds reasonable, and addresses my concern about binary > compatibility. I am still not sure why this hack is needed, but I > don't think it will break anything. > > -- John It's needed because there is no reason to require packages that depend on libarchive to be rebuilt for libarchive2 - the SONAME changed without due cause. Unless libarchive.so.2 was binary incompatible with libarchive.so.1 there was no reason to change to libarchive.so.2. It's not about not breaking things, it's about fixing what is already broken. ;-) (IMHO the {dirty} hack is upstream in the -version-info.) At least this way, the .diff.gz is much smaller than the first patch. I've attached the revised patch. It gives the intended solution: ii deb-gview 0.0.7 ii libarchive1 2.0.25-2.1 ii reprepro 1.3.1-1 deb-gview, in turn, has Build-Depends on libarchive-dev (>= 2.0.25-2.1) and the binary gives: Depends: libarchive1 (>= 2.0.25) The rebuilt deb-gview 0.1.0 can be installed without problems: ii deb-gview 0.1.0 ii libarchive1 2.0.25-2.1 ii reprepro 1.3.1-1 Contents of the patched libarchive: $ ls -l /usr/lib/libarchive* -rw-r--r-- 1 root root 258744 2007-04-16 14:34 /usr/lib/libarchive.a -rw-r--r-- 1 root root 866 2007-04-16 14:33 /usr/lib/libarchive.la lrwxrwxrwx 1 root root 20 2007-04-16 14:41 /usr/lib/libarchive.so -> libarchive.so.2.0.25 lrwxrwxrwx 1 root root 15 2007-04-16 14:41 /usr/lib/libarchive.so.1 -> libarchive.so.2 lrwxrwxrwx 1 root root 20 2007-04-16 14:41 /usr/lib/libarchive.so.2 -> libarchive.so.2.0.25 -rw-r--r-- 1 root root 131656 2007-04-16 14:34 /usr/lib/libarchive.so.2.0.25 John: are you able to upload libarchive with this patch to revert to libarchive1 or can I have your permission to upload the NMU to the delayed queue (or even direct to unstable) this week instead of next? -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
diff -u libarchive-2.0.25/debian/changelog libarchive-2.0.25/debian/changelog --- libarchive-2.0.25/debian/changelog +++ libarchive-2.0.25/debian/changelog @@ -1,3 +1,12 @@ +libarchive (2.0.25-2.1) unstable; urgency=low + + * Non-maintainer upload. + * SONAME should not be tied to the tarball version string + (Closes: #418637) Provide libarchive.so.1 as a backwards-compatible + symlink to libarchive.so.2, reverting the package name to libarchive1. + + -- Neil Williams <codehelp@debian.org> Mon, 16 Apr 2007 13:50:29 +0100 + libarchive (2.0.25-2) unstable; urgency=low * Remove build-dep on linux-kernel-headers for compatibility with BSD diff -u libarchive-2.0.25/debian/control libarchive-2.0.25/debian/control --- libarchive-2.0.25/debian/control +++ libarchive-2.0.25/debian/control @@ -9,7 +9,7 @@ Section: libdevel Architecture: any Conflicts: libarchive-doc -Depends: ${shlibs:Depends}, ${misc:Depends}, libbz2-dev, zlib1g-dev, libacl1-dev, e2fslibs-dev, libarchive2 (= ${Source-Version}), libattr1-dev +Depends: ${shlibs:Depends}, ${misc:Depends}, libbz2-dev, zlib1g-dev, libacl1-dev, e2fslibs-dev, libarchive1 (= ${Source-Version}), libattr1-dev Description: Single library to read/write tar, cpio, pax, zip, iso9660, etc. The libarchive library provides a flexible interface for reading and writing streaming archive files such as tar and cpio. The library is @@ -31,10 +31,12 @@ There is also a manpage, tar(5), in libarchive2 that provides an excellent description of the various tar file formats. -Package: libarchive2 +Package: libarchive1 Section: libs Architecture: any -Conflicts: libarchive-doc +Conflicts: libarchive-doc, libarchive2 +Replaces: libarchive2 +Provides: libarchive2 Depends: ${shlibs:Depends}, ${misc:Depends} Description: Single library to read/write tar, cpio, pax, zip, iso9660, etc. The libarchive library provides a flexible interface for reading and diff -u libarchive-2.0.25/debian/rules libarchive-2.0.25/debian/rules --- libarchive-2.0.25/debian/rules +++ libarchive-2.0.25/debian/rules @@ -79,6 +79,10 @@ # Add here commands to install the package into debian/tmp $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + ln -s -T libarchive.so.2 debian/tmp/usr/lib/libarchive.so.1 + install -d debian/tmp/usr/share/lintian/overrides/ + install -m 0644 debian/lintian-override debian/tmp/usr/share/lintian/overrides/libarchive1 + ${RM} -r debian/libarchive2/usr/share/ binary-indep: @@ -100,7 +104,7 @@ # dh_installcron # dh_installinfo dh_installman -plibarchive-dev libarchive/*.[0-4,7-9]* - dh_installman -plibarchive2 libarchive/*.5* + dh_installman -plibarchive1 libarchive/*.5* dh_installman -pbsdtar tar/*.[1-9] dh_link -a dh_strip -a reverted: --- libarchive-2.0.25/debian/libarchive2.dirs +++ libarchive-2.0.25.orig/debian/libarchive2.dirs @@ -1 +0,0 @@ -usr/lib reverted: --- libarchive-2.0.25/debian/libarchive2.install +++ libarchive-2.0.25.orig/debian/libarchive2.install @@ -1 +0,0 @@ -debian/tmp/usr/lib/lib*.so.* only in patch2: unchanged: --- libarchive-2.0.25.orig/debian/libarchive1.install +++ libarchive-2.0.25/debian/libarchive1.install @@ -0,0 +1,2 @@ +debian/tmp/usr/lib/lib*.so.* +debian/tmp/usr/share/lintian/overrides/libarchive1 only in patch2: unchanged: --- libarchive-2.0.25.orig/debian/libarchive1.dirs +++ libarchive-2.0.25/debian/libarchive1.dirs @@ -0,0 +1,2 @@ +usr/lib +usr/share/lintian/overrides only in patch2: unchanged: --- libarchive-2.0.25.orig/debian/lintian-override +++ libarchive-2.0.25/debian/lintian-override @@ -0,0 +1,2 @@ +# See 418637 for the history of this bug and the override +libarchive1 binary: package-name-doesnt-match-sonames libarchive2
Attachment:
pgpHEXCMud7jG.pgp
Description: PGP signature