[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: