Bug#791238: petsc: library transition may be needed when GCC 5 is the default

Martin Pitt mpitt at debian.org
Wed Aug 5 14:17:54 UTC 2015


tag 791238 patch
user release.debian.org at packages.debian.org
usertag 791238 + transition
block 791238 by 790756

Hello,

this is a debdiff which we uploaded to Ubuntu (aside from some formal
debian/changelog differences). As debian/rules is really complex and I
don't have a good way of testing this, I'd appreciate a second look
before uploading this.

Thanks,

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
-------------- next part --------------
diff -Nru petsc-3.4.2.dfsg1/debian/changelog petsc-3.4.2.dfsg1/debian/changelog
--- petsc-3.4.2.dfsg1/debian/changelog	2014-08-06 18:01:01.000000000 +0200
+++ petsc-3.4.2.dfsg1/debian/changelog	2015-08-05 14:57:42.000000000 +0200
@@ -1,3 +1,11 @@
+petsc (3.4.2.dfsg1-8.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename library packages for g++5 ABI transition. (Closes: #791238)
+  * debian/rules: Adjust paths for renamed library.
+
+ -- Martin Pitt <mpitt at debian.org>  Wed, 05 Aug 2015 14:48:34 +0200
+
 petsc (3.4.2.dfsg1-8.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru petsc-3.4.2.dfsg1/debian/control petsc-3.4.2.dfsg1/debian/control
--- petsc-3.4.2.dfsg1/debian/control	2014-03-01 12:26:19.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/control	2015-08-05 15:01:56.000000000 +0200
@@ -20,12 +20,12 @@
 Package: libpetsc3.4.2-dev
 Architecture: linux-any hurd-any
 Section: libdevel
-Depends: libpetsc3.4.2 (= ${binary:Version}), ${mpi-dev}, ${linear-algebra-dev}, ${petsc-compilers},
+Depends: libpetsc3.4.2v5 (= ${binary:Version}), ${mpi-dev}, ${linear-algebra-dev}, ${petsc-compilers},
  ${petsc-extra-dev}, libx11-dev, libsuitesparse-dev, libsuperlu-dev, libspooles-dev,
  libhypre-dev (>= 2.0.0.dfsg-7), libptscotch-dev, ${babel-dev}, ${misc:Depends},
  ${hdf5-dev}, libblacs-mpi-dev, libscalapack-mpi-dev, libmumps-dev,
  libfftw3-dev, libfftw3-mpi-dev
-Suggests: petsc-dev (= ${binary:Version}), libpetsc3.4.2-dbg (= ${binary:Version}), petsc3.4.2-doc (= ${binary:Version}), libluminate-dev
+Suggests: petsc-dev (= ${binary:Version}), libpetsc3.4.2v5-dbg (= ${binary:Version}), petsc3.4.2-doc (= ${binary:Version}), libluminate-dev
 Provides: petsc3.4.2-dev
 Description: Static libraries, shared links, header files for PETSc
  PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite
@@ -39,15 +39,17 @@
 Architecture: all
 Section: libdevel
 Depends: libpetsc3.4.2-dev, ${misc:Depends}
-Suggests: libpetsc3.4.2-dbg
+Suggests: libpetsc3.4.2v5-dbg
 Description: Virtual package depending on latest PETSc development package
  This metapackage will always depend on the most recent version of petscX-dev
  (X=version), so if you install it then you will get upgrades automatically.
 
-Package: libpetsc3.4.2
+Package: libpetsc3.4.2v5
 Architecture: linux-any hurd-any
 Section: libs
 Depends: ${shlibs:Depends}, ${mpi}, ${misc:Depends}
+Conflicts: libpetsc3.4.2
+Replaces: libpetsc3.4.2
 Description: Shared libraries for version 3.4.2 of PETSc
  PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite
  of data structures and routines for the scalable (parallel) solution of
@@ -56,11 +58,13 @@
  scientific applications, as well as various papers and talks, demonstrate the
  features of the PETSc libraries.
 
-Package: libpetsc3.4.2-dbg
+Package: libpetsc3.4.2v5-dbg
 Architecture: linux-any hurd-any
 Section: debug
 Depends: libpetsc3.4.2-dev (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
 Provides: petsc3.4.2-dbg
+Conflicts: libpetsc3.4.2-dbg
+Replaces: libpetsc3.4.2-dbg
 Description: Static debugging libraries for PETSc
  PETSc is the "Portable Extensible Toolkit for Scientific Computation", a suite
  of data structures and routines for the scalable (parallel) solution of
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2-dbg.overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2-dbg.overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2-dbg.overrides	2013-12-10 20:23:59.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2-dbg.overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# False positive: the copyright notice is somewhat buried in the upstream text
-libpetsc3.4.2-dbg: copyright-without-copyright-notice
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2.overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2.overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2.overrides	2013-12-10 20:23:59.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2.overrides	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# False positive: the copyright notice is somewhat buried in the upstream text
-libpetsc3.4.2: copyright-without-copyright-notice
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.lintian-overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.lintian-overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.lintian-overrides	2015-08-04 12:36:23.000000000 +0200
@@ -0,0 +1,2 @@
+# G++5 ABI transition
+libpetsc3.4.2v5-dbg: package-name-doesnt-match-sonames libpetsc3.4.2-dbg
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.overrides	1970-01-01 01:00:00.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5-dbg.overrides	2015-08-04 12:36:23.000000000 +0200
@@ -0,0 +1,2 @@
+# False positive: the copyright notice is somewhat buried in the upstream text
+libpetsc3.4.2v5-dbg: copyright-without-copyright-notice
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.lintian-overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.lintian-overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.lintian-overrides	2015-08-04 12:36:23.000000000 +0200
@@ -0,0 +1,2 @@
+# G++5 ABI transition
+libpetsc3.4.2v5: package-name-doesnt-match-sonames libpetsc3.4.2
diff -Nru petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.overrides petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.overrides
--- petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.overrides	1970-01-01 01:00:00.000000000 +0100
+++ petsc-3.4.2.dfsg1/debian/libpetsc3.4.2v5.overrides	2015-08-04 12:36:23.000000000 +0200
@@ -0,0 +1,2 @@
+# False positive: the copyright notice is somewhat buried in the upstream text
+libpetsc3.4.2v5: copyright-without-copyright-notice
diff -Nru petsc-3.4.2.dfsg1/debian/rules petsc-3.4.2.dfsg1/debian/rules
--- petsc-3.4.2.dfsg1/debian/rules	2014-08-06 18:00:28.000000000 +0200
+++ petsc-3.4.2.dfsg1/debian/rules	2015-08-05 15:12:20.000000000 +0200
@@ -73,7 +73,7 @@
 	dh_quilt_unpatch
 	dh_clean -XTAGS
 # These are needed for -lam, -dec and -contrib builds
-	-rm -rf debian/lib$(PETSC_NAME) debian/lib$(PETSC_NAME)-dev \
+	-rm -rf debian/lib$(PETSC_NAME)v5 debian/lib$(PETSC_NAME)-dev \
 	  debian/lib$(PETSC_NAME)-dbg
 	-rm -f build* install* debian/*.substvars debian/extemp $(ARCH_GENERATED_FILES)
 # This is commented because it really doesn't do anything useful for us
@@ -212,15 +212,15 @@
 	rm -f debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/conf/*.py
 	cp -a $(PETSC_ARCH)-c-opt/include debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/
 # Now conf and include for the -dbg package
-	install -d debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf
-	ln -s $(PETSC_ARCH)-c-debug debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-cxx-debug
+	install -d debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf
+	ln -s $(PETSC_ARCH)-c-debug debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-cxx-debug
 	for cfile in `ls $(PETSC_ARCH)-c-debug/conf`; do \
 	  grep -v top_builddir $(PETSC_ARCH)-c-debug/conf/$$cfile | \
 	    sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/petscdir\/$(PETSC_VERSION)/g" > \
-	    debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/$$cfile ; \
+	    debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/$$cfile ; \
 	done
-	rm -f debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/*.py
-	cp -a $(PETSC_ARCH)-c-debug/include debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/
+	rm -f debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/conf/*.py
+	cp -a $(PETSC_ARCH)-c-debug/include debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/
 # Install headers in PETSC_DIR/include
 	install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/include/finclude
 	cp -p include/*.h include/*.hh \
@@ -263,13 +263,13 @@
 	cp -p debian/petsc.m4 debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/aclocal
 	cp -p debian/math-blaslapack.m4 debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/aclocal
 # Install libs in PETSC_DIR, move shared libs to /usr/lib and symlink
-	install -d debian/lib$(PETSC_NAME)/usr/lib
+	install -d debian/lib$(PETSC_NAME)v5/usr/lib
 	cp -a $(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/
-	cp -a $(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/
+	cp -a $(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/
 	for LIB in `cd $(PETSC_ARCH)-c-opt/lib && ls *.so.*` ; \
 	do \
 	  mv debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB \
-	    debian/lib$(PETSC_NAME)/usr/lib/$$LIB ; \
+	    debian/lib$(PETSC_NAME)v5/usr/lib/$$LIB ; \
 	  ln -s ../../../../$$LIB \
 	    debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB ; \
 	done
@@ -277,21 +277,21 @@
 	install -d debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib
 	ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib/libO
 	ln -s ../$(PETSC_ARCH)-c-opt/lib debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/lib/libO_c++
-	install -d debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib
-	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg
-	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg_c++
+	install -d debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib
+	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg
+	ln -s ../$(PETSC_ARCH)-c-debug/lib debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/lib/libg_c++
 # Legacy symlink so packages for 3.0 can build against 3.4.2
 	ln -s variables debian/lib$(PETSC_NAME)-dev/usr/lib/petscdir/$(PETSC_VERSION)/conf/base
 # Lintian overrides
-	install -d debian/lib$(PETSC_NAME)/usr/share/lintian/overrides
+	install -d debian/lib$(PETSC_NAME)v5/usr/share/lintian/overrides
 	install -d debian/lib$(PETSC_NAME)-dev/usr/share/lintian/overrides
-	install -d debian/lib$(PETSC_NAME)-dbg/usr/share/lintian/overrides
-	sed "s/petsc3.4.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME).overrides > \
-	  debian/lib$(PETSC_NAME)/usr/share/lintian/overrides/lib$(PETSC_NAME)
+	install -d debian/lib$(PETSC_NAME)v5-dbg/usr/share/lintian/overrides
+	sed "s/petsc3.4.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)v5.overrides > \
+	  debian/lib$(PETSC_NAME)v5/usr/share/lintian/overrides/lib$(PETSC_NAME)v5
 	sed "s/petsc3.4.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)-dev.overrides > \
 	  debian/lib$(PETSC_NAME)-dev/usr/share/lintian/overrides/lib$(PETSC_NAME)-dev
-	sed "s/petsc3.4.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)-dbg.overrides > \
-	  debian/lib$(PETSC_NAME)-dbg/usr/share/lintian/overrides/lib$(PETSC_NAME)-dbg
+	sed "s/petsc3.4.2/$(PETSC_NAME)/" < debian/lib$(PETSC_NAME)v5-dbg.overrides > \
+	  debian/lib$(PETSC_NAME)v5-dbg/usr/share/lintian/overrides/lib$(PETSC_NAME)v5-dbg
 	touch install-arch
 
 # Depends on install-arch because it creates PETSC_DIR
@@ -409,7 +409,7 @@
 	sed "s/3.4.2/$(PETSC_VERSION)/" < debian/control.in | \
 	  sed "s/$(PETSC_VERSION)-doc/3.4.2-doc/" | \
 	  sed "s/Provides: $(PETSC_NAME)-dev/Provides: petsc3.4.2-dev/" | \
-	  sed "s/Provides: $(PETSC_NAME)-dbg/Provides: petsc3.4.2-dbg/" \
+	  sed "s/Provides: $(PETSC_NAME)v5-dbg/Provides: petsc3.4.2-dbg/" \
 	  > debian/control
 	if [ "$(DEBIAN_DIST)" = "contrib" ]; then \
 	  sed "s/Section: lib/Section: contrib\/lib/" < debian/control > \
@@ -425,10 +425,10 @@
 # Generate substvars for MPI, linear algebra implementations and dist
 	rm -f debian/*.substvars
 	if [ "$(PETSC_MPI)" = "openmpi" ]; then \
-	  echo "mpi=openmpi-bin" > debian/lib$(PETSC_NAME).substvars; \
+	  echo "mpi=openmpi-bin" > debian/lib$(PETSC_NAME)v5.substvars; \
 	  echo "mpi-dev=libopenmpi-dev" > debian/lib$(PETSC_NAME)-dev.substvars; \
 	elif [ "$(PETSC_MPI)" = "mpich" ]; then \
-	  echo "mpi=mpich" > debian/lib$(PETSC_NAME).substvars; \
+	  echo "mpi=mpich" > debian/lib$(PETSC_NAME)v5.substvars; \
 	  echo "mpi-dev=libmpich-dev" > debian/lib$(PETSC_NAME)-dev.substvars; \
         else \
 	  echo "Unknown MPI implementation, stopping"; \
@@ -463,10 +463,10 @@
 	dh_installdirs -a
 	dh_installdocs -a
 	dh_installchangelogs -a docs/changes/34.html
-	dh_strip -a -Xlibg$(PETSC_BOPT_EXTRA) --dbg-package=libpetsc$(PETSC_VERSION)-dbg
+	dh_strip -a -Xlibg$(PETSC_BOPT_EXTRA) --dbg-package=libpetsc$(PETSC_VERSION)v5-dbg
 #
 # To avoid slepc complaining about shared libs being out of date	
-	touch debian/lib$(PETSC_NAME)-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/lib/*.so*
+	touch debian/lib$(PETSC_NAME)v5-dbg/usr/lib/petscdir/$(PETSC_VERSION)/$(PETSC_ARCH)-c-debug/lib/*.so*
 	dh_makeshlibs -a -m$(PETSC_VERSION)
 	dh_compress -a
 	dh_fixperms -a
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20150805/bd828566/attachment-0001.sig>


More information about the debian-science-maintainers mailing list