summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTill Kamppeter <till.kamppeter@gmail.com>2009-03-25 17:53:14 +0100
committerTill Kamppeter <till.kamppeter@gmail.com>2009-03-25 17:53:14 +0100
commitc543219432450cd8b75e10209c6627fcb48b055a (patch)
treec5345ecbf9236006730fe2753a7cce88bca301e0
parent6d8f0d0774c4c1dce5789b59460b8cf61e9d9d7a (diff)
downloadcups-c543219432450cd8b75e10209c6627fcb48b055a.tar.gz
debian/ghostscript.postinst: Silenced non-fatal error messages when
post-instyall script updates PPDs and there are PPDs not belonging to a CUPS queue in /etc/cups/ppd/ (LP: #345866).
-rw-r--r--debian/changelog3
-rw-r--r--debian/cups.postinst14
2 files changed, 11 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index d03b4bc2..0234add5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,9 @@ cups (1.3.9-16) UNRELEASED; urgency=low
* debian/local/filters/pdf-filters/pdftopdf/P2PResources.cxx: Fixed
corruption of output when generating mmultiple copies of EOG or GIMP
output files (LP: #345183).
+ * debian/ghostscript.postinst: Silenced non-fatal error messages when
+ post-instyall script updates PPDs and there are PPDs not belonging to
+ a CUPS queue in /etc/cups/ppd/ (LP: #345866).
[ Martin Pitt ]
* debian/local/apparmor-profile: Drop 'm' permission for /etc/passwd and
diff --git a/debian/cups.postinst b/debian/cups.postinst
index df78dbfa..3f189ab1 100644
--- a/debian/cups.postinst
+++ b/debian/cups.postinst
@@ -186,22 +186,24 @@ if [ "$1" = configure ]; then
tempfiles="$tempfiles $tmpfile1"
lpinfo -m | grep -E $driverregexp > $tmpfile1
cd /etc/cups/ppd
- for ppd in `ls -1 *.ppd 2>/dev/null`; do
+ for ppd in *.ppd; do
+ [ -r "$ppd" ] || continue
queue=${ppd%.ppd}
- nickname=`grep '\*NickName:' $ppd | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
- lang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
+ lpstat -p "$queue" >/dev/null 2>&1 || continue
+ nickname=`grep '\*NickName:' "$ppd" | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
+ lang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
ppdfound="0"
englishppduri=""
tmpfile2=`mktemp -t updateppds.XXXXXX`
tempfiles="$tempfiles $tmpfile2"
cat $tmpfile1 | perl -p -e "$gennicknameregexp" | grep -E '^\S+\s+.*'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2
while read newppduri; do
- [ "$ppdfound" = "0" ] && lpadmin -p $queue -m $newppduri
- newlang=`grep '\*LanguageVersion:' $ppd | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
+ [ "$ppdfound" = "0" ] && lpadmin -p "$queue" -m $newppduri 2>/dev/null || continue
+ newlang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
[ "$newlang" = "$lang" ] && ppdfound="1"
[ "$newlang" = "english" ] && englishppduri="$newppduri"
done < $tmpfile2
- [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p $queue -m $englishppduri && ppdfound="1"
+ [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p "$queue" -m $englishppduri 2>/dev/null && ppdfound="1"
[ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2
done
fi