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)

Reply via email to