Bug#595396: NMU diff for slepc 3.0.0-p7.dfsg-7.1
Ben Hutchings
ben at decadent.org.uk
Sun Oct 31 16:04:57 UTC 2010
This package is now empty on most architectures, probably due to a bug
in the build rules provided by petsc. For some reason the shared
library is created as libslepc.so and not as libslepc.so.3.0.0. This is
masked by the way debian/rules is written, which ignores failures in
many commands. I'm changing it to avoid that, and bumping the build-
dependencies on petsc packages to the current version in the hope that
this makes a difference. (I was not able to reproduce this failure with
the current version.)
Ben.
diff -u slepc-3.0.0-p7.dfsg/debian/rules slepc-3.0.0-p7.dfsg/debian/rules
--- slepc-3.0.0-p7.dfsg/debian/rules
+++ slepc-3.0.0-p7.dfsg/debian/rules
@@ -32,43 +32,28 @@
export CPPFLAGS=-I/usr/include/petsc
-clean:
+include /usr/share/quilt/quilt.make
+
+clean: unpatch
dh_testdir
- -if [ -e patch ]; then \
- debian/rules unpatch; \
- fi
- -mv tags thetags
- dh_clean
- -mv thetags tags
+ dh_clean -Xtags
rm -f build* install* $(ARCH_GENERATED_FILES)
-$(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(PETSC_DIR) \
SLEPC_DIR=$(CURDIR) allclean
-$(MAKE) PETSC_ARCH=$(PETSC_ARCH)-c-opt PETSC_DIR=$(PETSC_DIR) \
SLEPC_DIR=$(CURDIR) allclean
# These probably should be removed by `make clean' but aren't
- rm -f `find . -name \*.pyc -print`
+ find . -name \*.pyc -delete
rm -rf $(PETSC_ARCH)-c-debug $(PETSC_ARCH)-c-opt
rm -rf lib debian/extemp
-patch:
- if [ ! -e $@ ]; then \
- QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2; \
- fi
- touch $@
-
-unpatch:
- if [ -e patch ]; then \
- QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2; \
- rm -rf patch .pc; \
- fi
-
-build-indep: patch
+build-indep: $(QUILT_STAMPFN)
# We have nothing to do by default.
touch $@
# With debugging=1, only static libraries are generated.
# Build optimized libs second so files are consistent with optimized.
-build-arch: patch
+build-arch: $(QUILT_STAMPFN)
PETSC_ARCH=$(PETSC_ARCH)-c-debug PETSC_DIR=$(PETSC_DIR) \
SLEPC_DIR=$(CURDIR) ./configure --with-arpack-dir=/usr/lib/debug/usr/lib \
--with-arpack-flags=-lparpack,-larpack
@@ -90,27 +75,30 @@
install-arch: build-arch
# Install conf in PETSC_DIR
install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/conf
- for cfile in `ls conf`; do \
- grep -v top_builddir conf/$$cfile | \
+ for cfile in conf/*; do \
+ grep -v top_builddir $$cfile | \
sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
- debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/conf/$$cfile ; \
+ debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$$cfile || \
+ exit ; \
done
# Install PETSC_ARCH/conf and PETSC_ARCH/include files in SLEPC_DIR/PETSC_ARCH/;
# replace this dir with install dir, and remove top_builddir
install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf
- for cfile in `ls $(PETSC_ARCH)-c-opt/conf`; do \
- grep -v top_builddir $(PETSC_ARCH)-c-opt/conf/$$cfile | \
+ for cfile in $(PETSC_ARCH)-c-opt/conf/*; do \
+ grep -v top_builddir $$cfile | \
sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
- debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf/$$cfile ; \
+ debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$$cfile || \
+ exit ; \
done
rm -f debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/conf/*.py
cp -a $(PETSC_ARCH)-c-opt/include debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/
# Now conf and include for the -dbg package
install -d debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf
- for cfile in `ls $(PETSC_ARCH)-c-debug/conf`; do \
- grep -v top_builddir $(PETSC_ARCH)-c-debug/conf/$$cfile | \
+ for cfile in $(PETSC_ARCH)-c-debug/conf/*; do \
+ grep -v top_builddir $$cfile | \
sed "s/`echo $(CURDIR) | sed s/\\\\//\\\\\\\\\\\\//g`/\/usr\/lib\/slepcdir\/$(SLEPC_VERSION)/g" > \
- debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf/$$cfile ; \
+ debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$$cfile || \
+ exit ; \
done
rm -f debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/conf/*.py
cp -a $(PETSC_ARCH)-c-debug/include debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/
@@ -133,12 +121,14 @@
install -d debian/lib$(SLEPC_NAME)/usr/lib
cp -a $(PETSC_ARCH)-c-opt/lib debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/
cp -a $(PETSC_ARCH)-c-debug/lib debian/lib$(SLEPC_NAME)-dbg/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-debug/
- for LIB in `cd $(PETSC_ARCH)-c-opt/lib && ls *.so.*` ; \
+ for LIB in $(PETSC_ARCH)-c-opt/lib/*.so.* ; \
do \
+ LIB="$$(basename "$$LIB")" && \
mv debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB \
- debian/lib$(SLEPC_NAME)/usr/lib/$$LIB ; \
+ debian/lib$(SLEPC_NAME)/usr/lib/$$LIB && \
ln -s ../../../../$$LIB \
- debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB ; \
+ debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/$(PETSC_ARCH)-c-opt/lib/$$LIB || \
+ exit ; \
done
# Make legacy symlinks including C++
install -d debian/lib$(SLEPC_NAME)-dev/usr/lib/slepcdir/$(SLEPC_VERSION)/lib
@@ -161,41 +151,48 @@
install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/private
cp -p include/private/*.html \
debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/include/private
- for HEADERDOC in `cd debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/ && find include -name \*.h.html -print | sed s/.h.html/.h/`; \
+ { cd debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/ && \
+ find include -name \*.h.html -print | sed s/.h.html/.h/ ; } | \
+ while read HEADERDOC; \
do \
dh_link -p$(SLEPC_NAME)-doc \
usr/lib/slepcdir/$(SLEPC_VERSION)/$$HEADERDOC \
- usr/share/doc/$(SLEPC_NAME)-doc/$$HEADERDOC; \
+ usr/share/doc/$(SLEPC_NAME)-doc/$$HEADERDOC || \
+ exit ; \
done
# Install examples documentation in -doc/src directory
- for TESTDIR in `find src -name examples -print | sed "s/src\///"`; \
+ find src -name examples -print | sed "s/src\///" | \
+ while read TESTDIR; \
do \
- install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR; \
- for TESTDOC in `find src/$$TESTDIR -name \*.html -print`; do \
+ install -d debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR && \
+ find src/$$TESTDIR -name \*.html -print | \
+ while read TESTDOC; do \
cp -a $$TESTDOC \
- debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR; \
- done ; \
+ debian/$(SLEPC_NAME)-doc/usr/share/doc/$(SLEPC_NAME)-doc/src/$$TESTDIR || \
+ exit ; \
+ done || \
+ exit ; \
done
-# I don't know of a way to do this "recursively"
- -rmdir `find debian/slepc3.0.0-doc -empty -type d -print`
- -rmdir `find debian/slepc3.0.0-doc -empty -type d -print`
- -rmdir `find debian/slepc3.0.0-doc -empty -type d -print`
- -rmdir `find debian/slepc3.0.0-doc -empty -type d -print`
+# Remove empty directories, recursively
+ find debian/slepc3.0.0-doc -empty -type d -delete
# Install examples & makefiles into temporary directory debian/extemp
- for TESTDIR in `find src -name examples -print | sed "s/src\///"`; \
+ find src -name examples -print | sed "s/src\///" | \
+ while read TESTDIR; \
do \
- install -d debian/extemp/src/$$TESTDIR; \
- cp -a src/$$TESTDIR/* debian/extemp/src/$$TESTDIR; \
+ install -d debian/extemp/src/$$TESTDIR && \
+ cp -a src/$$TESTDIR/* debian/extemp/src/$$TESTDIR || \
+ exit ; \
done
- for MAKEFILE in `find src -name makefile -print | sed "s/src\///"`; \
+ find src -name makefile -print | sed "s/src\///" | \
+ while read MAKEFILE; \
do \
if [ -d debian/extemp/src/`echo $$MAKEFILE | sed "s/makefile//"` ] ;\
then \
- cp -p src/$$MAKEFILE debian/extemp/src/$$MAKEFILE; \
+ cp -p src/$$MAKEFILE debian/extemp/src/$$MAKEFILE || exit ; \
fi; \
done
# Clean up documentation from debian/extemp
- rm -f `find debian/extemp -name \*.html -print`
+ find debian/extemp -name \*.html -delete
# Pack debian/extemp/src into src.tar.gz and install
cd debian/extemp && tar czf src.tar.gz src
mv debian/extemp/src.tar.gz \
@@ -224,9 +221,9 @@
dh_installdirs -i
dh_installdocs -i
# Clean up and finish
- rm -f `find debian/$(SLEPC_NAME)-doc -name ?akefile -print`
- rm -f `find debian/$(SLEPC_NAME)-doc -name *.cit* -print`
- rm -f `find debian/$(SLEPC_NAME)-doc -empty -type f -print`
+ find debian/$(SLEPC_NAME)-doc -name ?akefile -delete
+ find debian/$(SLEPC_NAME)-doc -name *.cit* -delete
+ find debian/$(SLEPC_NAME)-doc -empty -type f -delete
dh_installchangelogs -i
dh_compress -i -X.xbm -X.pdf
dh_fixperms -i
@@ -240,10 +237,11 @@
dh_testdir -a
dh_testroot -a
for ARCHGEN in $(ARCH_GENERATED_FILES); do \
- rm -f $$ARCHGEN ; \
+ rm -f $$ARCHGEN && \
sed "s/petsc_arch/$(PETSC_ARCH)-c-opt/" < \
`echo "$$ARCHGEN.in" | sed "s/$(SLEPC_NAME)/slepc3.0.0/"` | \
- sed "s/slepc_ver/$(SLEPC_VERSION)/" > $$ARCHGEN; \
+ sed "s/slepc_ver/$(SLEPC_VERSION)/" > $$ARCHGEN || \
+ exit ; \
done
dh_installdirs -a
dh_installdocs -a
diff -u slepc-3.0.0-p7.dfsg/debian/changelog slepc-3.0.0-p7.dfsg/debian/changelog
--- slepc-3.0.0-p7.dfsg/debian/changelog
+++ slepc-3.0.0-p7.dfsg/debian/changelog
@@ -1,3 +1,16 @@
+slepc (3.0.0-p7.dfsg-7.1) unstable; urgency=low
+
+ * Non-maintainer upload (Possibly closes: #595396)
+ * Bump petsc build-dependency version to 3.1.dfsg-7 to fix build on kFreeBSD
+ * Fix potential silent failures in debian/rules:
+ - Do not suppress failure with '-' (except for 'make allclean')
+ + Use standard quilt rules instead of hand-rolling them
+ - Join commands with '&&' instead of ';'
+ - Use '|| exit' in loops
+ - Do not run commands in backticks
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sat, 30 Oct 2010 18:02:14 +0200
+
slepc (3.0.0-p7.dfsg-7) unstable; urgency=low
[Christophe Prud'homme]
diff -u slepc-3.0.0-p7.dfsg/debian/control slepc-3.0.0-p7.dfsg/debian/control
--- slepc-3.0.0-p7.dfsg/debian/control
+++ slepc-3.0.0-p7.dfsg/debian/control
@@ -2,7 +2,7 @@
Priority: extra
Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
Uploaders: Christophe Prud'homme <prudhomm at debian.org>
-Build-Depends: debhelper (>= 7), quilt, python (>= 2.4.4-6), libpetsc3.1-dev (>= 3.1.dfsg-3), libpetsc3.1-dbg (>= 3.1.dfsg-3), libarpack2-dev, libarpack2-dbg, libhdf5-mpi-dev
+Build-Depends: debhelper (>= 7), quilt, python (>= 2.4.4-6), libpetsc3.1-dev (>= 3.1.dfsg-7), libpetsc3.1-dbg (>= 3.1.dfsg-7), libarpack2-dev, libarpack2-dbg, libhdf5-mpi-dev
Standards-Version: 3.8.4
Section: libs
Homepage: http://www.grycap.upv.es/slepc/
--- END ---
--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 828 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20101031/a0c08304/attachment.pgp>
More information about the debian-science-maintainers
mailing list