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

Re: Bug#418637: Please consider a binNMU on reprepro due to libarchive transition.



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


Reply to: