Hi Marc, I've looked again at multiarch support for CGAL based on your patch. I've attached my current version of it. The reverse dependencies build fine (yade fails for unrelated reasons).
One Qt -dev package declares a Conflicts: between the i386 and amd64 variant, and one GLU -dev package does not support multiarch (do not remember the package exact names anymore). That means that some examples (Mesh_3, Image_IO, Surface_mesher) do not work in a multiarch setup (at least not multiple architectures at the same time). The same probably holds for the demos. Two questions: - Why did you add "Pre-Depends: ${misc:Pre-Depends}"? "Pre-Depends: multiarch-support" should be sufficient, as far as I know. - Is there any (multiarch-related) reason for moving usr/lib/CGAL to a subdirectory of usr/lib/$TRIPLET/cmake? Or is just because other packages already use the "cmake" subdirectory? While it would be nice to have multiarch support in jessie I think it's a bit risky to upload such a change shortly before the freeze. I intend to upload it to experimental such that people can test it, and probably upload it later to unstable (maybe just after jessie has been released). Joachim
diff -u -r cgal-4.5/debian/control cgal-4.5/debian/control --- cgal-4.5/debian/control 2014-10-16 21:48:04.000000000 +0200 +++ cgal-4.5/debian/control 2014-10-18 11:04:47.994768376 +0200 @@ -12,6 +12,8 @@ Package: libcgal10 Architecture: any +Multi-Arch: same +Pre-Depends: multiarch-support Depends: ${shlibs:Depends}, ${misc:Depends} Description: C++ library for computational geometry CGAL (Computational Geometry Algorithms Library) makes the most important @@ -37,6 +39,8 @@ Package: libcgal-qt4-10 Architecture: any +Multi-Arch: same +Pre-Depends: multiarch-support Depends: libcgal10 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Description: C++ library for computational geometry (support for Qt4) CGAL (Computational Geometry Algorithms Library) makes the most important @@ -60,6 +64,8 @@ Package: libcgal-dev Section: libdevel Architecture: any +Multi-Arch: same +Pre-Depends: multiarch-support Depends: libcgal10 (= ${binary:Version}), libboost-dev, libboost-thread-dev, libboost-system-dev, libboost-program-options-dev, libgmp10-dev, libmpfr-dev, zlib1g-dev, ${misc:Depends} @@ -77,6 +83,8 @@ Package: libcgal-qt4-dev Section: libdevel Architecture: any +Multi-Arch: same +Pre-Depends: multiarch-support Depends: libcgal10 (= ${binary:Version}), libcgal-qt4-10 (= ${binary:Version}), libcgal-dev, libqt4-dev, ${misc:Depends} Replaces: libcgal-dev (<< 4.1-1) @@ -93,6 +101,7 @@ Package: libcgal-demo Section: devel Architecture: all +Multi-Arch: foreign Depends: libcgal-dev (>= ${binary:Version}), libcgal10 (>= ${binary:Version}), ${misc:Depends} Recommends: libcgal-qt4-dev (>= ${binary:Version}), libcgal-qt4-10 (>= ${binary:Version}) @@ -111,6 +120,7 @@ Package: libcgal-ipelets Section: graphics Architecture: any +Multi-Arch: no Depends: libcgal10 (>= ${binary:Version}), ipe (>= ${Ipe-Version}), ipe (<< ${Ipe-Version}+), ${shlibs:Depends}, ${misc:Depends} Conflicts: libcgal5-ipelets diff -u -r cgal-4.5/debian/libcgal-dev.install cgal-4.5/debian/libcgal-dev.install --- cgal-4.5/debian/libcgal-dev.install 2012-09-02 12:02:35.000000000 +0200 +++ cgal-4.5/debian/libcgal-dev.install 2014-10-18 11:08:18.870763005 +0200 @@ -1,11 +1,11 @@ usr/bin/* usr/include/* -usr/lib/libCGAL.a -usr/lib/libCGAL_Core.a -usr/lib/libCGAL_ImageIO.a -usr/lib/libCGAL.so -usr/lib/libCGAL_Core.so -usr/lib/libCGAL_ImageIO.so -usr/lib/CGAL/* -usr/share/cmake-2.8/Modules/* +usr/lib/*/libCGAL.a +usr/lib/*/libCGAL_Core.a +usr/lib/*/libCGAL_ImageIO.a +usr/lib/*/libCGAL.so +usr/lib/*/libCGAL_Core.so +usr/lib/*/libCGAL_ImageIO.so +usr/lib/*/CGAL/* +# usr/share/cmake-2.8/Modules/* usr/share/man/man1/cgal_create_cmake_script.1 diff -u -r cgal-4.5/debian/libcgal-qt4-10.install cgal-4.5/debian/libcgal-qt4-10.install --- cgal-4.5/debian/libcgal-qt4-10.install 2012-09-02 11:03:57.000000000 +0200 +++ cgal-4.5/debian/libcgal-qt4-10.install 2014-10-18 10:55:57.958781877 +0200 @@ -1 +1 @@ -usr/lib/libCGAL_Qt4.so.* usr/lib +usr/lib/*/libCGAL_Qt4.so.* diff -u -r cgal-4.5/debian/libcgal-qt4-dev.install cgal-4.5/debian/libcgal-qt4-dev.install --- cgal-4.5/debian/libcgal-qt4-dev.install 2012-09-02 11:38:15.000000000 +0200 +++ cgal-4.5/debian/libcgal-qt4-dev.install 2014-10-18 10:56:34.234780953 +0200 @@ -1,5 +1,5 @@ # The next entry is disabled here because it overlaps with the corresponding # entry in libcgal-dev.install. The files are moved in debian/rules. # usr/include/CGAL/Qt -usr/lib/libCGAL_Qt4.a -usr/lib/libCGAL_Qt4.so +usr/lib/*/libCGAL_Qt4.a +usr/lib/*/libCGAL_Qt4.so diff -u -r cgal-4.5/debian/libcgal10.install cgal-4.5/debian/libcgal10.install --- cgal-4.5/debian/libcgal10.install 2013-03-13 20:00:50.000000000 +0100 +++ cgal-4.5/debian/libcgal10.install 2014-10-18 10:55:45.222782202 +0200 @@ -1,4 +1,4 @@ -usr/lib/libCGAL.so.* usr/lib -usr/lib/libCGAL_Core.so.* usr/lib -usr/lib/libCGAL_ImageIO.so.* usr/lib +usr/lib/*/libCGAL.so.* +usr/lib/*/libCGAL_Core.so.* +usr/lib/*/libCGAL_ImageIO.so.* usr/share/doc/cgal/changelog usr/share/doc/libcgal10 diff -u -r cgal-4.5/debian/rules cgal-4.5/debian/rules --- cgal-4.5/debian/rules 2014-10-16 20:19:44.000000000 +0200 +++ cgal-4.5/debian/rules 2014-10-18 11:15:49.002751539 +0200 @@ -9,6 +9,8 @@ # The build system links all four libraries against all dependencies. LDFLAGS += -Wl,--as-needed +export DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + ifeq ($(DEB_BUILD_ARCH),alpha) export TESTS_IEEE_FPU_OPTION = -mieee -mfp-rounding-mode=d endif @@ -21,12 +23,16 @@ cd static && QTDIR= cmake .. \ -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \ -DWITH_GMPXX=ON -DWITH_CGAL_Qt3=OFF -DWITH_demos=OFF -DWITH_examples=OFF \ - -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=FALSE + -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=FALSE \ + -DCGAL_INSTALL_LIB_DIR=lib/$(DEB_HOST_MULTIARCH) \ + -DCGAL_INSTALL_CMAKE_DIR=lib/$(DEB_HOST_MULTIARCH)/CGAL mkdir -p shared cd shared && QTDIR= cmake .. \ -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \ -DWITH_GMPXX=ON -DWITH_CGAL_Qt3=OFF -DWITH_demos=OFF -DWITH_examples=OFF \ - -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE + -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE \ + -DCGAL_INSTALL_LIB_DIR=lib/$(DEB_HOST_MULTIARCH) \ + -DCGAL_INSTALL_CMAKE_DIR=lib/$(DEB_HOST_MULTIARCH)/CGAL mkdir -p shared/demo/CGAL_ipelets cd shared/demo/CGAL_ipelets && QTDIR= cmake ../../../demo/CGAL_ipelets \ -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \ @@ -59,8 +65,8 @@ $(MAKE) -C shared DESTDIR=$(CURDIR)/debian/tmp install $(MAKE) -C shared/demo/CGAL_ipelets DESTDIR=$(CURDIR)/debian/tmp install - mkdir -p debian/tmp/usr/share/cmake-2.8/Modules - cp cmake/modules/FindCGAL.cmake debian/tmp/usr/share/cmake-2.8/Modules +# mkdir -p debian/tmp/usr/share/cmake-2.8/Modules +# cp cmake/modules/FindCGAL.cmake debian/tmp/usr/share/cmake-2.8/Modules mv debian/tmp/usr/share/doc/CGAL-`cat VERSION` debian/tmp/usr/share/doc/cgal mv debian/tmp/usr/share/doc/cgal/CHANGES debian/tmp/usr/share/doc/cgal/changelog @@ -94,8 +100,8 @@ override_dh_installchangelogs: dh_installchangelogs -plibcgal10 -override_dh_shlibdeps: # TODO Is that really needed? - dh_shlibdeps -a -ldebian/libcgal10/usr/lib +#override_dh_shlibdeps: # TODO Is that really needed? +# dh_shlibdeps -a -ldebian/libcgal10/usr/lib override_dh_gencontrol: dh_gencontrol -- -VIpe-Version=`dpkg-awk 'Package:^ipe$$' -- Version | grep Version | sed 's/Version: //;s/-[^-]*$$//'`