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 <b...@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-maintain...@lists.alioth.debian.org>
 Uploaders: Christophe Prud'homme <prudh...@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.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to