Package: ghc6 Version: 6.10.1+dfsg1-5 Investigating bug #514085, I noticed that the debian/rules in ghc6 from experimental does not always handle errors well. Not all errors are trapped, sometimes because of missing "set -e" statements (see policy 4.6) and sometimes because of backtick substitution.
So please consider the following changes. The same changes are represented in the attached patch. 1) On lines 134-143, instead of PACKAGE=` ... `; \ { echo something involving $PACKAGE; \ } >> debian/ghc6.substvars; \ { echo something else involving $PACKAGE; \ } >> debian/ghc6-prof.substvars; \ [et cetera] write set -e; \ { utils/ghc-pkg/install-inplace/bin/ghc-pkg list -f \ debian/tmp/usr/lib/ghc-$(ProjectVersion)/package.conf.shipped |\ perl -ne 'print if $$foo; $$foo = 1 if /^debian/' | \ tr '\n,A-Z' ' a-z' | \ sed -e "s/([^)]*)//g" -e "s/-[0-9]\+\(\.[0-9]\+\)*//g" \ -e "s/^ *//" -e "s/ *$$//" -e "s/ */, /g"; \ echo; \ } | \ { read PACKAGE; \ { echo -n "provided-devs="; \ echo "$$PACKAGE" | \ sed -e "s/\([a-z0-9.-]\+\)/libghc6-\1-dev/g"; \ } >> debian/ghc6.substvars; \ { echo -n "provided-devs="; \ echo "$$PACKAGE" | \ sed -e "s/\([a-z0-9.-]\+\)/libghc6-\1-prof/g"; \ } >> debian/ghc6-prof.substvars; \ { echo -n "provided-devs="; \ echo "$$PACKAGE" | \ sed -e "s/\([a-z0-9.-]\+\)/libghc6-\1-doc/g"; \ } >> debian/ghc6-doc.substvars; \ } The added "echo;" is there because "read" requires a newline to work. The "read" trick is meant to get around a sad truth: "sh -e -c 'echo `false`'" does not result in nonzero status. 2) On lines 147 and 152 (the 2nd and 7th lines after the "Sort out the binaries" comment), add "set -e;" before "cd debian/tmp/usr/lib/ghc-$(ProjectVersion)/bin" 3) On line 170 (the third line after "# manpages"), add "set -e; " before "for m in ghci6"
ghc6-set-e.diff
Description: Binary data