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

Bug#319503: libapt-pkg should be in its own binary package

Package: apt
Version: 0.6.38
Severity: wishlist


I don't know if this has been discussed before in depth, but anyway I
believe that the libapt-pkg .so should be split in its own package.
This would have the benefit of making it possible to have two (or
more) abi-incompatible versions of the library on one system, which in
turn would make it possible to have e.g. apt-utils from one source
version of apt and software like aptitude compiled against another

In the least this would make hacking libapt-pkg a lot easier, as
making abi-breaking changes wouldn't either break or force to
uninstall everything that depends on the unmodified version.

I attached a patch of the modifications I made when hacking libapt-pkg
to support this; I'm sure there's still some work to do with them.
The library name libapt-pkg0 at least is perhaps not the best choice.
Rather I'd think that the soname would be better.

--- apt-0.6.38.sli.0/debian/control
+++ apt-0.6.38.sli.0/debian/control
@@ -9,10 +9,9 @@
 Package: apt
 Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${libapt-pkg:provides}
 Priority: important
 Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
-Provides: ${libapt-pkg:provides}
 Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, gnupg
 Section: base
 Description: Advanced front-end for dpkg
@@ -32,6 +31,16 @@
  This package contains the user guide and offline guide, for APT, an
  Advanced Package Tool.
+Package: libapt-pkg0
+Architecture: any
+Depends: ${shlibs:Depends}
+Provides: ${libapt-pkg:provides}
+Priority: important
+Section: base
+Description: APT support libraries
+ This package contains libraries to support the APT package management
+ system.
 Package: libapt-pkg-dev
 Architecture: any
 Priority: optional
--- apt-0.6.38.sli.0/debian/libapt-pkg0.dirs
+++ apt-0.6.38.sli.0/debian/libapt-pkg0.dirs
@@ -0,0 +1,1 @@
--- apt-0.6.38.sli.0/debian/rules
+++ apt-0.6.38.sli.0/debian/rules
@@ -184,7 +184,7 @@
 # Build architecture-dependent files here.
-binary-arch: apt libapt-pkg-dev apt-utils 
+binary-arch: apt libapt-pkg0 libapt-pkg-dev apt-utils 
 apt: build debian/shlibs.local
 	dh_testdir -p$@
 	dh_testroot -p$@
@@ -198,10 +198,6 @@
 	# Remove the bits that are in apt-utils
 	rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS))
-	# install the shared libs
-	find $(BLD)/bin/ -type f -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
-	find $(BLD)/bin/ -type l -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
 	cp $(BLD)/bin/methods/* debian/$@/usr/lib/apt/methods/
 	cp $(BLD)/scripts/dselect/* debian/$@/usr/lib/dpkg/methods/apt/
@@ -223,11 +219,38 @@
 	dh_fixperms -p$@
 	dh_makeshlibs -p$@ -m$(LIBAPTPKG_MAJOR) -V '$(LIBAPTPKG_PROVIDE)'
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
+	dh_shlibdeps -p$@ -l`pwd`/debian/libapt-pkg0/usr/lib -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_md5sums -p$@
 	dh_builddeb -p$@
+libapt-pkg0: build debian/shlibs.local
+	dh_testdir -p$@
+	dh_testroot -p$@
+	dh_clean -p$@ -k
+	dh_installdirs -p$@
+# libapt-pkg install
+	find $(BLD)/bin/ -type f -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
+	find $(BLD)/bin/ -type l -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
+	dh_installdocs -plibapt-pkg0
+#	dh_installmenu -p$@
+#	dh_installinit -p$@
+#	dh_installcron -p$@
+#	dh_installman -p$@
+	dh_installchangelogs -p$@
+	dh_strip -p$@
+	dh_compress -p$@
+	dh_fixperms -p$@
+#	dh_suidregister -p$@
+	dh_installdeb -p$@
+	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
+	dh_md5sums -p$@
+	dh_builddeb -p$@
 libapt-pkg-dev: build debian/shlibs.local
 	dh_testdir -p$@
 	dh_testroot -p$@
@@ -279,8 +302,8 @@
 	dh_fixperms -p$@
 	dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V '$(LIBAPTINST_PROVIDE)' -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
+	dh_shlibdeps -p$@ -l`pwd`/debian/libapt-pkg0/usr/lib -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
 	dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_md5sums -p$@
 	dh_builddeb -p$@

Attachment: signature.asc
Description: Digital signature

Reply to: