Bug#295136: kdelibs4: Kdeprint problems when using non-Bourne shell
Package: kdelibs4
Version: 4:3.3.2-1
Severity: normal
Tags: patch
I have been having problems with the "print to PDF"/"print to PS"
option in Konqueror, which should be reproducible as follows:
1) Install the es package
2) Make /usr/bin/es your $SHELL
3) Try to print a web page to a PDF or PS file using the print-to-file
option in the Konqueror print dialog.
You should get an error message complaining about a syntax error in a
command line invoking gs. The problem is that es doesn't like the
unquoted/unescaped equals '=' signs in the command line which kdeprint
passes to it to be executed. A quick fix is to modify the files in
/usr/share/apps/kdeprint/filters/ which contain the templates for the
command lines, escaping all the equals signs (still works on Bourne
shells):
--- pdfwrite.xml.distrib 2004-05-22 22:55:14.000000000 +0200
+++ pdfwrite.xml 2005-02-13 18:16:35.000000000 +0100
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<kprintfilter name="pdfwrite">
- <filtercommand data="gs -q -dNOPAUSE -dSAFER -dPARANOIDSAFER -sDEVICE=pdfwrite -sPAPERSIZE=%psl -sOutputFile=%filteroutput %filterargs -c save pop -f %filterinput" />
+ <filtercommand data="gs -q -dNOPAUSE -dSAFER -dPARANOIDSAFER -sDEVICE\=pdfwrite -sPAPERSIZE\=%psl -sOutputFile\=%filteroutput %filterargs -c save pop -f %filterinput" />
<filterargs>
</filterargs>
<filterinput>
--- ps2pdf.xml.distrib 2004-05-22 22:55:14.000000000 +0200
+++ ps2pdf.xml 2005-02-13 19:29:26.000000000 +0100
@@ -1,20 +1,20 @@
<!DOCTYPE kprintfilter>
<kprintfilter name="ps2pdf" >
- <filtercommand data="gs -q -dSAFER -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%filteroutput -sPAPERSIZE=%psl %filterargs -c .setpdfwrite -f %filterinput" />
+ <filtercommand data="gs -q -dSAFER -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE\=pdfwrite -sOutputFile\=%filteroutput -sPAPERSIZE\=%psl %filterargs -c .setpdfwrite -f %filterinput" />
<filterargs name="__root__" description="ps2pdf" >
<filtergroup name="general" description="General" >
- <filterarg format="-dPDFSETTINGS=%value" type="list" name="targetdevice" default="/default" description="Target device" >
+ <filterarg format="-dPDFSETTINGS\=%value" type="list" name="targetdevice" default="/default" description="Target device" >
<value name="/default" description="Default" />
<value name="/screen" description="Screen" />
<value name="/printer" description="Printer" />
<value name="/prepress" description="Prepress" />
</filterarg>
- <filterarg format="-dCompatibilityLevel=%value" type="list" name="compat" default="gs-def" description="Compatibility Level" >
+ <filterarg format="-dCompatibilityLevel\=%value" type="list" name="compat" default="gs-def" description="Compatibility Level" >
<value name="gs-def" description="GhostScript Default Setting" />
<value name="1.2" description="Level 1.2" />
<value name="1.3" description="Level 1.3" />
</filterarg>
- <filterarg format="-dAutoRotatePages=%value" type="list" name="autorotate" default="/PageByPage" description="Auto rotate pages" >
+ <filterarg format="-dAutoRotatePages\=%value" type="list" name="autorotate" default="/PageByPage" description="Auto rotate pages" >
<value name="/None" description="Disabled" />
<value name="/PageByPage" description="Page by Page" />
<value name="/All" description="Dominant orientation" />
@@ -23,30 +23,30 @@
<filtergroup name="image" description="Image Options" >
<filtergroup name="colorimage" description="Color Images" >
<filtergroup name="colorcompress" description="Compression" >
- <filterarg format="-dEncodeColorImages=%value" type="bool" name="colorencode" default="true" description="Encode color images" >
+ <filterarg format="-dEncodeColorImages\=%value" type="bool" name="colorencode" default="true" description="Encode color images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dAutoFilterColorImages=%value" type="bool" name="colorautofilt" default="true" description="Auto encode color images" >
+ <filterarg format="-dAutoFilterColorImages\=%value" type="bool" name="colorautofilt" default="true" description="Auto encode color images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dColorImageFilter=%value" type="bool" name="colorencodetype" default="/DCTEncode" description="Manual color image encoding method" >
+ <filterarg format="-dColorImageFilter\=%value" type="bool" name="colorencodetype" default="/DCTEncode" description="Manual color image encoding method" >
<value name="/FlateEncode" description="Flate compression" />
<value name="/DCTEncode" description="JPEG compression" />
</filterarg>
</filtergroup>
- <filterarg format="-dDownsampleColorImages=%value" type="bool" name="coldownsampl" default="false" description="Downsample color images" >
+ <filterarg format="-dDownsampleColorImages\=%value" type="bool" name="coldownsampl" default="false" description="Downsample color images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dColorImageResolution=%value" type="int" min="9" max="2400" name="colimageres" default="300" description="Maximum color image resolution" />
- <filterarg format="-sColorImageDownsampleType=%value" type="list" name="colsampltype" default="Subsample" description="Color image downsampling method" >
+ <filterarg format="-dColorImageResolution\=%value" type="int" min="9" max="2400" name="colimageres" default="300" description="Maximum color image resolution" />
+ <filterarg format="-sColorImageDownsampleType\=%value" type="list" name="colsampltype" default="Subsample" description="Color image downsampling method" >
<value name="Subsample" description="Sub-sampling" />
<value name="Average" description="Averaging" />
<value name="Bicubic" description="Bicubic interpolation" />
</filterarg>
- <filterarg format="-dColorImageDepth=%value" type="list" name="coldepth" default="-1" description="Color image depth" >
+ <filterarg format="-dColorImageDepth\=%value" type="list" name="coldepth" default="-1" description="Color image depth" >
<value name="-1" description="Use the depth of the original" />
<value name="1" description="1" />
<value name="2" description="2" />
@@ -56,30 +56,30 @@
</filtergroup>
<filtergroup name="grayimage" description="Grayscale Images" >
<filtergroup name="graycompress" description="Compression" >
- <filterarg format="-dEncodeGrayImages=%value" type="bool" name="grayencode" default="true" description="Encode grayscale images" >
+ <filterarg format="-dEncodeGrayImages\=%value" type="bool" name="grayencode" default="true" description="Encode grayscale images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dAutoFilterGrayImages=%value" type="bool" name="grayautofilt" default="true" description="Auto encode grayscale images" >
+ <filterarg format="-dAutoFilterGrayImages\=%value" type="bool" name="grayautofilt" default="true" description="Auto encode grayscale images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dEncodeGrayImages=%value" type="bool" name="grayencodetype" default="/DCTEncode" description="Manual grayscale image encoding method" >
+ <filterarg format="-dEncodeGrayImages\=%value" type="bool" name="grayencodetype" default="/DCTEncode" description="Manual grayscale image encoding method" >
<value name="/FlateEncode" description="Flate compression" />
<value name="/DCTEncode" description="JPEG compression" />
</filterarg>
</filtergroup>
- <filterarg format="-dDownsampleGrayImages=%value" type="bool" name="graydownsampl" default="false" description="Downsample grayscale images" >
+ <filterarg format="-dDownsampleGrayImages\=%value" type="bool" name="graydownsampl" default="false" description="Downsample grayscale images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dGrayImageResolution=%value" type="int" min="9" max="2400" name="grayimageres" default="300" description="Maximum grayscale image resolution" />
- <filterarg format="-sGrayImageDownsampleType=%value" type="list" name="graysampltype" default="Subsample" description="Grayscale image downsampling method" >
+ <filterarg format="-dGrayImageResolution\=%value" type="int" min="9" max="2400" name="grayimageres" default="300" description="Maximum grayscale image resolution" />
+ <filterarg format="-sGrayImageDownsampleType\=%value" type="list" name="graysampltype" default="Subsample" description="Grayscale image downsampling method" >
<value name="Subsample" description="Sub-sampling" />
<value name="Average" description="Averaging" />
<value name="Bicubic" description="Bicubic interpolation" />
</filterarg>
- <filterarg format="-dGrayImageDepth=%value" type="list" name="graydepth" default="-1" description="Grayscale image depth" >
+ <filterarg format="-dGrayImageDepth\=%value" type="list" name="graydepth" default="-1" description="Grayscale image depth" >
<value name="-1" description="Use the depth of the original" />
<value name="1" description="1" />
<value name="2" description="2" />
@@ -89,30 +89,30 @@
</filtergroup>
<filtergroup name="monoimage" description="Mono Images" >
<filtergroup name="monocompress" description="Compression" >
- <filterarg format="-dEncodeMonoImages=%value" type="bool" name="monoencode" default="true" description="Encode mono images" >
+ <filterarg format="-dEncodeMonoImages\=%value" type="bool" name="monoencode" default="true" description="Encode mono images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dAutoFilterMonoImages=%value" type="bool" name="monoautofilt" default="true" description="Auto encode mono images" >
+ <filterarg format="-dAutoFilterMonoImages\=%value" type="bool" name="monoautofilt" default="true" description="Auto encode mono images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dEncodeMonoImages=%value" type="bool" name="monoencodetype" default="/CCITTFaxEncode" description="Manual mono image encoding method" >
+ <filterarg format="-dEncodeMonoImages\=%value" type="bool" name="monoencodetype" default="/CCITTFaxEncode" description="Manual mono image encoding method" >
<value name="/CCITTFaxEncode" description="CCITT compression" />
<value name="/FlateEncode" description="Flate compression" />
</filterarg>
</filtergroup>
- <filterarg format="-dDownsampleMonoImages=%value" type="bool" name="downsamplmono" default="false" description="Downsample mono images" >
+ <filterarg format="-dDownsampleMonoImages\=%value" type="bool" name="downsamplmono" default="false" description="Downsample mono images" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dMonoImageResolution=%value" type="int" min="0" max="2400" name="monores" default="300" description="Maximum mono image resolution" />
- <filterarg format="-sMonoImageDownsampleType=%value" type="list" name="monosampltype" default="Subsample" description="Mono image downsampling method" >
+ <filterarg format="-dMonoImageResolution\=%value" type="int" min="0" max="2400" name="monores" default="300" description="Maximum mono image resolution" />
+ <filterarg format="-sMonoImageDownsampleType\=%value" type="list" name="monosampltype" default="Subsample" description="Mono image downsampling method" >
<value name="Subsample" description="Sub-sampling" />
<value name="Average" description="Averaging" />
<value name="Bicubic" description="Bicubic interpolation" />
</filterarg>
- <filterarg format="-dMonoImageDepth=%value" type="list" name="monodepth" default="-1" description="Mono image depth" >
+ <filterarg format="-dMonoImageDepth\=%value" type="list" name="monodepth" default="-1" description="Mono image depth" >
<value name="-1" description="Use the depth of the original" />
<value name="1" description="1" />
<value name="2" description="2" />
@@ -122,15 +122,15 @@
</filtergroup>
</filtergroup>
<filtergroup name="fonts" description="Fonts" >
- <filterarg format="-dEmbedAllFonts=%value" type="bool" name="embedfonts" default="true" description="Embed all fonts" >
+ <filterarg format="-dEmbedAllFonts\=%value" type="bool" name="embedfonts" default="true" description="Embed all fonts" >
<value name="true" description="Enabled" />
<value name="false" description="Disabled" />
</filterarg>
- <filterarg format="-dSubsetFonts=%value" type="bool" name="fontsubsets" default="true" description="Embed font subsets" >
+ <filterarg format="-dSubsetFonts\=%value" type="bool" name="fontsubsets" default="true" description="Embed font subsets" >
<value name="true" description="Embed subset" />
<value name="false" description="Embed complete font" />
</filterarg>
- <filterarg format="-dMaxSubsetPct=%value" type="int" min="0" max="100" name="fontsubsetpct" default="100" description="Maximum font subset percentage" />
+ <filterarg format="-dMaxSubsetPct\=%value" type="int" min="0" max="100" name="fontsubsetpct" default="100" description="Maximum font subset percentage" />
<filterarg format="-r%value" type="list" name="resol" default="300x300" description="Bitmap font resolution" >
<value name="72x72" description="72 dpi" />
<value name="144x144" description="144 dpi" />
A cleaner solution would be to change kdeprint such that it always
invokes /bin/sh to execute these commands rather than the user's
shell, which may or may not support Bourne shell syntax.
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (900, 'testing'), (800, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.9
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Versions of packages kdelibs4 depends on:
ii kdelibs-bin 4:3.3.2-1 KDE core binaries
ii kdelibs-data 4:3.3.2-1 KDE core shared data
ii libart-2.0-2 2.3.17-1 Library of functions for 2D graphi
ii libarts1 1.3.2-2 aRts Sound system
ii libasound2 1.0.8-1 ALSA library
ii libaspell15 0.50.5-5 The GNU Aspell spell-checker runti
ii libaudio2 1.7-2 The Network Audio System (NAS). (s
ii libaudiofile0 0.2.6-5 Open-source version of SGI's audio
ii libbz2-1.0 1.0.2-1 A high-quality block-sorting file
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libcupsys2-gnutls10 1.1.23-3 Common UNIX Printing System(tm) -
ii libesd-alsa0 [libesd0] 0.2.35-2 Enlightened Sound Daemon (ALSA) -
ii libfam0c102 2.7.0-6 client library to control the FAM
ii libgcc1 1:3.4.3-6 GCC support library
ii libglib2.0-0 2.6.1-3 The GLib library of C routines
ii libice6 4.3.0.dfsg.1-10 Inter-Client Exchange library
ii libidn11 0.5.2-3 GNU libidn library, implementation
ii libjack0.80.0-0 0.99.0-2 JACK Audio Connection Kit (librari
ii libjasper-1.701-1 1.701.0-2 The JasPer JPEG-2000 runtime libra
ii libjpeg62 6b-9 The Independent JPEG Group's JPEG
ii libmad0 0.15.1b-1 MPEG audio decoder library
ii libogg0 1.1.0-1 Ogg Bitstream Library
ii libopenexr2 1.2.1-3 runtime files for the OpenEXR imag
ii libpcre3 4.5-1.1 Perl 5 Compatible Regular Expressi
ii libpng12-0 1.2.8rel-1 PNG library - runtime
ii libqt3c102-mt 3:3.3.3-8 Qt GUI Library (Threaded runtime v
ii libsm6 4.3.0.dfsg.1-10 X Window System Session Management
ii libstdc++5 1:3.3.5-8 The GNU Standard C++ Library v3
ii libtiff4 3.7.1-3 Tag Image File Format (TIFF) libra
ii libvorbis0a 1.0.1-1 The Vorbis General Audio Compressi
ii libvorbisenc2 1.0.1-1 The Vorbis General Audio Compressi
ii libvorbisfile3 1.0.1-1 The Vorbis General Audio Compressi
ii libx11-6 4.3.0.dfsg.1-10 X Window System protocol client li
ii libxext6 4.3.0.dfsg.1-10 X Window System miscellaneous exte
ii libxml2 2.6.11-5 GNOME XML library
ii libxrender1 0.8.3-7 X Rendering Extension client libra
ii libxslt1.1 1.1.8-5 XSLT processing library - runtime
ii libxt6 4.3.0.dfsg.1-10 X Toolkit Intrinsics
ii xbase-clients 4.3.0.dfsg.1-10 miscellaneous X clients
ii xlibs 4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu
ii zlib1g 1:1.2.2-3 compression library - runtime
-- no debconf information
--
Leonard Stiles <ljs@uk2.net>
Reply to: