Patch (debdiff) to add Multi-Arch support attached (I've followed
https://wiki.debian.org/Multiarch/Implementation), passes very limited
check (coinstallation of :i386 and :amd64 runtime packages).
Current limitations:
*-dev is not multi-arch yet, as /usr/bin/gsl-config cannot be shared.
*-dbg is not multi-arch yet, as /usr/lib/debug/usr/bin/* cannot be
shared (possible solution: don't strip them)
Note: I have *very* limited knowledge about debhelper machinery/etc,
please review carefully
diff -Nru gsl-1.16+dfsg/debian/changelog gsl-1.16+dfsg/debian/changelog
--- gsl-1.16+dfsg/debian/changelog 2015-06-25 01:05:05.000000000 +0300
+++ gsl-1.16+dfsg/debian/changelog 2015-06-24 23:34:06.000000000 +0300
@@ -1,3 +1,10 @@
+gsl (1.16+dfsg-2+1~local1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Add multi-arch support. (Closes: #708832)
+
+ -- Yuriy M. Kaminskiy <yumkam+deb...@gmail.com> Wed, 24 Jun 2015 23:33:24
+0300
+
gsl (1.16+dfsg-2) unstable; urgency=low
* debian/rules: Applies patch by Fernando Seiti Furusato to switch to
diff -Nru gsl-1.16+dfsg/debian/compat gsl-1.16+dfsg/debian/compat
--- gsl-1.16+dfsg/debian/compat 2015-06-25 01:05:05.000000000 +0300
+++ gsl-1.16+dfsg/debian/compat 2015-06-24 23:34:47.000000000 +0300
@@ -1 +1 @@
-5
+8
diff -Nru gsl-1.16+dfsg/debian/control gsl-1.16+dfsg/debian/control
--- gsl-1.16+dfsg/debian/control 2015-06-25 01:05:05.000000000 +0300
+++ gsl-1.16+dfsg/debian/control 2015-06-25 00:09:41.000000000 +0300
@@ -3,12 +3,14 @@
Priority: optional
Maintainer: Dirk Eddelbuettel <e...@debian.org>
Standards-Version: 3.9.5
-Build-Depends: gawk | awk, debhelper (>= 5.0.0), gcc (>= 4:4.0), binutils (>=
2.12.90.0.9), dh-autoreconf
+Build-Depends: gawk | awk, debhelper (>= 8.1.3), gcc (>= 4:4.0), binutils (>=
2.12.90.0.9), dh-autoreconf
Homepage: http://www.gnu.org/software/gsl
Package: libgsl0ldbl
Section: libs
Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Conflicts: gsl, libgsl0
Replaces: gsl, libgsl0 (<= 1.9-4)
@@ -32,6 +34,7 @@
Package: libgsl0-dev
Section: libdevel
+#Multi-Arch: same -- TODO resolve /usr/bin/gsl-config issue
Architecture: any
Depends: libgsl0ldbl (= ${binary:Version}), ${misc:Depends}
Conflicts: gsl-dev
@@ -48,6 +51,7 @@
Package: gsl-bin
Section: math
Architecture: any
+Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
Conflicts: gsl
Replaces: gsl
@@ -63,6 +67,7 @@
Section: debug
Priority: extra
Architecture: any
+#Multi-Arch: same -- TODO resolve /usr/lib/debug/usr/bin/* issue
Depends: libgsl0ldbl (= ${binary:Version}), ${misc:Depends}
Description: GNU Scientific Library (GSL) -- debug symbols package
The GNU Scientific Library (GSL) is a collection of routines for
@@ -79,6 +84,8 @@
Section: libdevel
Priority: extra
Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
Depends: libgsl0ldbl (= ${binary:Version}), ${misc:Depends}
Description: GNU Scientific Library (GSL) -- Profiling Libraries
The GNU Scientific Library (GSL) is a collection of routines for
diff -Nru gsl-1.16+dfsg/debian/libgsl0-dev.install
gsl-1.16+dfsg/debian/libgsl0-dev.install
--- gsl-1.16+dfsg/debian/libgsl0-dev.install 2015-06-25 01:05:05.000000000
+0300
+++ gsl-1.16+dfsg/debian/libgsl0-dev.install 2015-06-24 23:59:02.000000000
+0300
@@ -1,8 +1,8 @@
usr/bin/gsl-config
usr/include/
-usr/lib/lib*.so
-usr/lib/lib*.a
+usr/lib/*/lib*.so
+usr/lib/*/lib*.a
usr/share/aclocal/
usr/share/man/man1/gsl-config.1
usr/share/man/man3/gsl.3
-usr/lib/pkgconfig/gsl.pc
+usr/lib/*/pkgconfig/gsl.pc
diff -Nru gsl-1.16+dfsg/debian/libgsl0ldbl.install
gsl-1.16+dfsg/debian/libgsl0ldbl.install
--- gsl-1.16+dfsg/debian/libgsl0ldbl.install 2015-06-25 01:05:05.000000000
+0300
+++ gsl-1.16+dfsg/debian/libgsl0ldbl.install 2015-06-24 23:46:43.000000000
+0300
@@ -1,2 +1,2 @@
-usr/lib/libgsl.so.*
-usr/lib/libgslcblas.so.*
+usr/lib/*/libgsl.so.*
+usr/lib/*/libgslcblas.so.*
diff -Nru gsl-1.16+dfsg/debian/libgsl0ldbl.overrides
gsl-1.16+dfsg/debian/libgsl0ldbl.overrides
--- gsl-1.16+dfsg/debian/libgsl0ldbl.overrides 2015-06-25 01:05:05.000000000
+0300
+++ gsl-1.16+dfsg/debian/libgsl0ldbl.overrides 2015-06-24 23:41:59.000000000
+0300
@@ -1,4 +1,4 @@
-libgsl0ldbl: non-dev-pkg-with-shlib-symlink usr/lib/libgslcblas.so.0.0.0
usr/lib/libgslcblas.so
-libgsl0ldbl: non-dev-pkg-with-shlib-symlink usr/lib/libgsl.so.0.10.0
usr/lib/libgsl.so
+libgsl0ldbl: non-dev-pkg-with-shlib-symlink usr/lib/*/libgslcblas.so.0.0.0
usr/lib/*/libgslcblas.so
+libgsl0ldbl: non-dev-pkg-with-shlib-symlink usr/lib/*/libgsl.so.0.10.0
usr/lib/*/libgsl.so
libgsl0ldbl: package-name-doesnt-match-sonames libgslcblas0 libgsl0
libgsl0ldbl: package-name-doesnt-match-sonames libgsl0 libgslcblas0
diff -Nru gsl-1.16+dfsg/debian/libgsl0-prof.install
gsl-1.16+dfsg/debian/libgsl0-prof.install
--- gsl-1.16+dfsg/debian/libgsl0-prof.install 2015-06-25 01:05:05.000000000
+0300
+++ gsl-1.16+dfsg/debian/libgsl0-prof.install 2015-06-24 23:46:32.000000000
+0300
@@ -1 +1 @@
-usr/lib/libgsl*p.a
+usr/lib/*/libgsl*p.a
diff -Nru gsl-1.16+dfsg/debian/Makefile.in.doc
gsl-1.16+dfsg/debian/Makefile.in.doc
--- gsl-1.16+dfsg/debian/Makefile.in.doc 2015-06-25 01:05:05.000000000
+0300
+++ gsl-1.16+dfsg/debian/Makefile.in.doc 2015-06-25 00:47:39.000000000
+0300
@@ -20,3 +20,6 @@
install -m 0644 ../debian/gsl-histogram.1 $(man1dir)
mkdir -p $(man3dir)
install -m 0644 ../debian/gsl.3 $(man3dir)
+
+clean distclean:
+ @true
diff -Nru gsl-1.16+dfsg/debian/rules gsl-1.16+dfsg/debian/rules
--- gsl-1.16+dfsg/debian/rules 2015-06-25 01:05:05.000000000 +0300
+++ gsl-1.16+dfsg/debian/rules 2015-06-25 00:57:44.000000000 +0300
@@ -35,6 +35,8 @@
CONFFLAGS += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
+export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
DEBUGFLAGS=-g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
DEBUGFLAGS += -O0
@@ -101,6 +103,7 @@
./configure CFLAGS="$(CFLAGS)" \
LDFLAGS="$(LDFLAGS)" \
--prefix=/usr \
+ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
--enable-shared \
--enable-static \
--with-gnu-ld \
@@ -175,14 +178,14 @@
clean:
dh_testdir
dh_testroot
- dh_autoreconf_clean
+ [ ! -f Makefile ] || $(MAKE) distclean
rm -f build-stamp install-stamp test-stamp build-doc-stamp \
configure-stamp install-doc-stamp configure-prof-stamp \
install-prof-stamp
rm -rf debian/static/
-rm -f doc/*.pdf doc/*.dvi doc/*.log doc/*.ps
dh_clean lib/*so* build/*.so*
- [ ! -f Makefile ] || $(MAKE) distclean || true
+ dh_autoreconf_clean
rm -rf doc/
rm -rf $(debtmp) $(debprof)
@@ -192,10 +195,10 @@
install-work:
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs
$(MAKE) prefix=$(debtmp)/usr \
- libdir=$(debtmp)/usr/lib \
+ libdir=$(debtmp)/usr/lib/$(DEB_HOST_MULTIARCH) \
infodir=$(debtmp)/usr/share/info \
includedir=$(debtmp)/usr/include \
mandir=$(debtmp)/usr/share/man install
@@ -205,7 +208,7 @@
# purify for DFSG compliance and delete (!!) documentation
rm -rvf $(debtmp)/usr/share/info
# deal with libtool leftover .la files (#245556)
- rm -vf $(debtmp)/usr/lib/libgsl*.la
+ rm -vf $(debtmp)/usr/lib/$(DEB_HOST_MULTIARCH)/libgsl*.la
#
dh_installdirs -p$(binpack) usr/share/man/man1
#dh_installman -p$(binpack) debian/gsl-histogram.1 \
@@ -223,14 +226,14 @@
install-prof-stamp: test-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
$(MAKE) prefix=$(debtmp)/usr \
- libdir=$(debtmp)/usr/lib \
+ libdir=$(debtmp)/usr/lib/$(DEB_HOST_MULTIARCH) \
infodir=$(debtmp)/usr/share/info \
includedir=$(debtmp)/usr/include \
mandir=$(debtmp)/usr/share/man install
#rename the profiling libraries
- for lib in $(debtmp)/usr/lib/*.a ;\
+ for lib in $(debtmp)/usr/lib/$(DEB_HOST_MULTIARCH)/*.a ;\
do mv "$$lib" "$${lib%%.a}_p.a"; done
dh_install --sourcedir=$(debtmp)
touch install-prof-stamp
@@ -269,7 +272,7 @@
dh_compress
dh_fixperms
# dh_strip -N$(devpack)
- dh_strip -X_p.a --sourcedir=debian/tmp --dbg-package=$(dbgpack)
+ dh_strip -X_p.a --dbg-package=$(dbgpack)
#dh_suidregister
dh_makeshlibs
dh_installdeb
diff -Nru gsl-1.16+dfsg/debian/source/format gsl-1.16+dfsg/debian/source/format
--- gsl-1.16+dfsg/debian/source/format 1970-01-01 03:00:00.000000000 +0300
+++ gsl-1.16+dfsg/debian/source/format 2014-11-11 18:01:40.000000000 +0300
@@ -0,0 +1 @@
+3.0 (quilt)