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

Bug#649504: apt: please add multiarch support



Package: apt
Version: 0.8.16~exp8
Severity: normal
Tags: patch
User: ubuntu-devel@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch precise

The attached Bazaar bundle, based on the debian-experimental2 branch,
converts apt's runtime library packages to multiarch support.  Aside
from the usual reasons for converting libraries to multiarch, this would
be particularly helpful because I believe it should make it possible to
install apt:amd64 on an i386 system with an amd64 kernel (replacing the
native apt) as the first step of a multiarch crossgrade.

It's possible that libapt-pkg-dev can also be marked Multi-Arch: same as
a result of this patch; I haven't checked whether the header files are
reliably identical across architectures.  If this is the case, then
please do go ahead and add that field as well.

I did try building python-apt against this, but I can't find a tree that
supports the current apt ABI; so perhaps you could test this to make
sure that I haven't broken the ability to link against libapt-pkg?

Thanks,

-- 
Colin Watson                                       [cjwatson@ubuntu.com]
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: cjwatson@canonical.com-20111121164234-843yiynl2g0zznny
# target_branch: http+urllib://anonscm.debian.org/bzr/bzr/apt/apt\
#   /debian-experimental2/
# testament_sha1: 008645db7083071e10ab3bd7ebfbd03701b258d2
# timestamp: 2011-11-21 16:42:54 +0000
# base_revision_id: michael.vogt@ubuntu.com-20111110151055-\
#   gkbk6bfx6biids40
# 
# Begin patch
=== modified file '.bzrignore'
--- .bzrignore	2010-03-17 16:05:57 +0000
+++ .bzrignore	2011-11-21 16:42:34 +0000
@@ -10,6 +10,8 @@
 configure
 buildlib/config.sub
 buildlib/config.guess
+debian/libapt-pkg[0-9]*.install
+debian/libapt-inst[0-9]*.install
 
 # abichecker related files/dir
 abicheck/apt_build.xml

=== modified file 'debian/changelog'
--- debian/changelog	2011-11-03 14:41:14 +0000
+++ debian/changelog	2011-11-21 16:42:34 +0000
@@ -1,3 +1,9 @@
+apt (0.8.16~exp9) UNRELEASED; urgency=low
+
+  * Convert libapt-pkg4.12 and libapt-inst1.4 to Multi-Arch: same.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 21 Nov 2011 15:34:05 +0000
+
 apt (0.8.16~exp8) experimental; urgency=low
 
   [ David Kalnischkies ]

=== modified file 'debian/control'
--- debian/control	2011-09-14 11:56:33 +0000
+++ debian/control	2011-11-21 16:42:34 +0000
@@ -35,9 +35,20 @@
   * apt-config as an interface to the configuration settings
   * apt-key as an interface to manage authentication keys
 
+Package: libapt-common
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Breaks: libapt-pkg4.12 (<< 0.8.16~exp9), libapt-inst1.4 (<< 0.8.16~exp9)
+Replaces: libapt-pkg4.12 (<< 0.8.16~exp9), libapt-inst1.4 (<< 0.8.16~exp9)
+Description: Common files for APT libraries
+ This package includes translation files common to APT library packages.
+
 Package: libapt-pkg4.12
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, libapt-common
 Description: APT's package managment runtime library
  This library provides the common functionality for searching and
  managing packages as well as information about packages.
@@ -56,7 +67,9 @@
 
 Package: libapt-inst1.4
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, libapt-common
 Description: APT's deb package format runtime library
  This library provides methods to query and extract information 
  from deb packages. This includes the control data and the package
@@ -74,6 +87,7 @@
 Package: libapt-pkg-dev
 Architecture: any
 Priority: optional
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${libapt-pkg-name} (= ${binary:Version}), ${libapt-inst-name} (= ${binary:Version}), ${misc:Depends}, zlib1g-dev | zlib-dev
 Section: libdevel
 Description: Development files for APT's libapt-pkg and libapt-inst

=== added file 'debian/libapt-common.install'
--- debian/libapt-common.install	1970-01-01 00:00:00 +0000
+++ debian/libapt-common.install	2011-11-21 16:42:34 +0000
@@ -0,0 +1,1 @@
+usr/share/locale/*/*/libapt-*.mo

=== renamed file 'debian/libapt-inst1.4.install' => 'debian/libapt-inst1.4.install.in'
--- debian/libapt-inst1.4.install	2011-09-14 11:56:33 +0000
+++ debian/libapt-inst1.4.install.in	2011-11-21 16:42:34 +0000
@@ -1,2 +1,1 @@
-bin/libapt-inst*.so.* usr/lib/
-usr/share/locale/*/*/libapt-inst*.mo
+bin/libapt-inst*.so.* usr/lib/@DEB_HOST_MULTIARCH@/

=== removed file 'debian/libapt-pkg-dev.dirs'
--- debian/libapt-pkg-dev.dirs	2004-09-20 16:53:12 +0000
+++ debian/libapt-pkg-dev.dirs	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-usr/lib
-usr/include/apt-pkg

=== renamed file 'debian/libapt-pkg-dev.install' => 'debian/libapt-pkg-dev.install.in'
--- debian/libapt-pkg-dev.install	2011-01-15 23:54:48 +0000
+++ debian/libapt-pkg-dev.install.in	2011-11-21 16:42:34 +0000
@@ -1,3 +1,3 @@
-bin/libapt-pkg*.so usr/lib/
-bin/libapt-inst*.so usr/lib/
+bin/libapt-pkg*.so usr/lib/@DEB_HOST_MULTIARCH@/
+bin/libapt-inst*.so usr/lib/@DEB_HOST_MULTIARCH@/
 include/apt-pkg/*.h usr/include/apt-pkg/

=== renamed file 'debian/libapt-pkg4.12.install' => 'debian/libapt-pkg4.12.install.in'
--- debian/libapt-pkg4.12.install	2011-09-14 11:56:33 +0000
+++ debian/libapt-pkg4.12.install.in	2011-11-21 16:42:34 +0000
@@ -1,2 +1,1 @@
-bin/libapt-pkg*.so.* usr/lib/
-usr/share/locale/*/*/libapt-pkg*.mo
+bin/libapt-pkg*.so.* usr/lib/@DEB_HOST_MULTIARCH@/

=== modified file 'debian/rules'
--- debian/rules	2011-09-13 16:00:22 +0000
+++ debian/rules	2011-11-21 16:42:34 +0000
@@ -5,6 +5,7 @@
 
 export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
 # FOR AUTOCONF 2.52 AND NEWER ONLY
 ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
@@ -118,9 +119,31 @@
 
 	[ ! -f Makefile ] || $(MAKE) clean distclean
 	rm -rf build
-
-binary-indep: apt-doc libapt-pkg-doc
+	rm -f debian/$(LIBAPT_PKG).install debian/$(LIBAPT_INST).install \
+	      debian/libapt-pkg-dev.install
+
+debian/%.install: debian/%.install.in
+	sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' $< > $@
+
+binary-indep: libapt-common apt-doc libapt-pkg-doc
 # Build architecture-independent files here.
+libapt-common: build
+	dh_testdir -p$@
+	dh_testroot -p$@
+	dh_prep -p$@
+	dh_installdirs -p$@
+
+	dh_install -p$@ --sourcedir=$(BLD)
+	dh_installdocs -p$@
+	dh_installchangelogs -p$@
+	dh_strip -p$@
+	dh_compress -p$@
+	dh_fixperms -p$@
+	dh_installdeb -p$@
+	dh_gencontrol -p$@
+	dh_md5sums -p$@
+	dh_builddeb -p$@
+
 libapt-pkg-doc: build-doc
 	dh_testdir -p$@
 	dh_testroot -p$@
@@ -217,7 +240,7 @@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 
-libapt-pkg-dev: build
+libapt-pkg-dev: build debian/libapt-pkg-dev.install
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_prep -p$@
@@ -265,7 +288,7 @@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 
-$(LIBAPT_PKG): build
+$(LIBAPT_PKG): build debian/$(LIBAPT_PKG).install
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_prep -p$@
@@ -284,7 +307,7 @@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 
-$(LIBAPT_INST): build
+$(LIBAPT_INST): build debian/$(LIBAPT_INST).install
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_prep -p$@

# Begin bundle
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
o17RIssNyp21iR/gDqA50f/F3JFOFCQNtW3QAA==

Reply to: