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

multi-arch



Hello.

It seems that this migration to 4.6 is the occasion to update our packages
to multiarch, as described in

http://wiki.debian.org/Multiarch/Implementation

Let me attempt to summarize the needed changes, maybe to prepare a policy
modification.

Supporting multi-arch is specific to libraries. Debian does not make this
support mandatory. The migration is only possible for package
 - marked as Architectures: any (or a specific list)
 - containing only files in /usr/lib/${DEB_HOST_MULTIARCH} and /usr/share,
   the latter ones being byte-for-byte identical across architectures (in
   particular using -n if gzip-compressed).

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

First step: in all packages, intall to /usr/lib/${DEB_HOST_MULTIARCH} what
you did before install to /usr/lib. The so symlink won't change, but the
command you use to install it may.

-dev package: libfoo.gpr:
-   for Library_ALI_Dir use "/usr/lib/ada/adalib/foo";
-   for Library_Dir use "/usr/lib";
+   for Library_ALI_Dir use "/usr/lib/${DEB_HOST_MULTIARCH}/ada/adalib/foo";
+   for Library_Dir use "/usr/lib/${DEB_HOST_MULTIARCH}";

README.Debian:
 1. gnatmake -aI/usr/share/ada/adainclude/foo \
-            -aO/usr/lib/ada/adalib/foo \
+            -aO/usr/lib/${DEB_HOST_MULTIARCH}/ada/adalib/foo \
             your_main_program.adb \
             -largs -lfoo

debian/control: for -dev package
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}

debian/rules:
- ./configure
+ ./configure --libdir==\$${prefix}/lib/$(DEB_HOST_MULTIARCH)

+# dh_fixperms does not (yet?) detect ali files with multiarch path
+override_dh_fixperms:
+	dh_fixperms
+	chmod uga-w debian/$(DEV_PKG)/usr/lib/$(DEB_HOST_MULTIARCH)/ada/adalib/ncursesada/*.ali

Questions (my suppositions are between parenthesis):

The -dbg package can it be Multi-Arch: same?
(it MUST as soon as the library package is)

The -doc package can it be Multi-Arch: same?
(Nonsense question for Architectures: all packages)

The -dev package can it be Multi-Arch: same?
(The condition that /usr/share files are architecture-independant forbids
that to libraries using architecture-dependant headers, for example
generated from C)


Reply to: