Package: apt Version: 0.6.38 Severity: wishlist Hi,
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
version.
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.
Sami
--- 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 @@
+usr/lib
--- 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$@
signature.asc
Description: Digital signature

