Anyone else seeing this? It's pretty annoying. :-/
--
Pekka Savola "Tell me of difficulties surmounted,
Netcore Oy not those you stumble over and fall"
Systems. Networks. Security. -- Robert Jordan: A Crown of Swords
---------- Forwarded message ----------
Date: Thu, 15 Mar 2001 10:30:28 +0200 (EET)
From: Tuomas Toropainen <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: LPRng: BUG report/question about control file handling
Hello all,
LPRng versions >3.7.1 seem to have problems passing extra control file
parameters to filter command line. I think such problems make it
impossible to use incoming_control_filter functionality. Although this
kind of bug should be easily noticed, i couldnt find any info on this. I
can best explain this by example, so here you are: ("kalvo" is overhead
transparency in finnish)
-----------------START of example---------------
Printcap entry:
testi|testi-2s|testi-a3|testi-a3-2s|testi-2s-a3
:cm=test printer
:incoming_control_filter=/usr/local/libexec/filters/update_z
:lp=/tmp/testi
:sd=/var/spool/printers/testi
:mx#0
:rw
:lf=log:af=acct
:filter=/usr/local/libexec/filters/testi-filter
-----
/usr/local/libexec/filters/update_z:
#!/usr/bin/perl
### 17.10.2000 psavola
### http://www.astart.com/LPRng/LPRng-HOWTO.html#INCOMINGCONTROLFILTER
### + minor typo corrections, modifications
# update_z script:
# Determine the options according to the format of the queue name
# Inspired by the psfilter code of Andreas Klemm
# and Thomas Bueschgens
# First, get command line arguments
#
use Getopt::Std;
my(%args,$Q,$Zopts,@file);
getopts(
"A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:" .
"a:b:cd:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:",
\%args );
# read stdin
@file = <STDIN>;
$Zopts = "";
# first use command line Queue name
$Q = $args{"Q"};
if( not $Q and (($Q) = grep(/^Q/,@file)) ){
# next use control file Queue name
chomp $Q if $Q;
}
# now we split up the name and use as parameters for Z options
while( $Q =~ /-([^-]+)/g ){
# you can add them or test and then add them
$Zopts .= ",duplex" if( $1 eq "2s" );
$Zopts .= ",a3" if( $1 eq "a3" );
$Zopts .= ",transparency" if( $1 eq "kalvo" );
}
if( $Zopts ){
# remove leading comma
$Zopts = substr( $Zopts, 1 );
#replace or prefix Z options
if( not (grep { s/$/,$Zopts/ if /^Z/; } @file) ){
print "Z" . $Zopts . "\n";
}
}
print @file if( @file );
exit 0;
-------
/usr/local/libexec/filters/testi-filter:
#!/bin/sh
# /tmp/testf - test filter for LPRng
PATH=/bin:/usr/bin; export PATH
echo TESTF $0 "$@"
echo ENV
set
echo LEADER
/bin/cat
echo TRAILER
exit 0
----
$ lpr -Ptesti-2s test.txt
----
VERSION that has the bug
# lpd -V
LPRng-3.7.4, Copyright 1988-2000 Patrick Powell, <[EMAIL PROTECTED]>
/tmp/testi:
TESTF /usr/local/libexec/filters/testi-filter -Atoropain@domain+68 -CA
-D2001-03 -15-09:50:30.480 -Ff -Hdomain.csc.fi -Jtest.txt -Ltoropain
-Ntest.txt -Ptesti -Qtesti-2s -Stest printer -aacct -b8
-d/var/spool/printers/testi -edfA068domain.csc.fi -ftest.txt
-hdomain.csc.fi -j068 -kcfA068domain.csc.fi -l66 -ntoropain -sstatus
-t2001-03-15-09:50:30.000 -w80 -x0 -y0 acct
ENV
BASH=/bin/sh
BASH_VERSION=1.14.7(1)
CONTROL=Zduplex
Atoropain@domain+68
CA
D2001-03-15-09:50:30.480
Hdomain.csc.fi
Jtest.txt
Ltoropain
Ptoropain
Qtesti-2s
Ntest.txt
fdfA068domain.csc.fi
UdfA068domain.csc.fi
EUID=4
HOME=/root
HOSTTYPE=i386
IFS=
LOGDIR=/root
LOGNAME=root
OPTERR=1
OPTIND=1
OSTYPE=Linux
PATH=/bin:/usr/bin
PPID=2071
PRINTCAP_ENTRY=testi|testi-2s|testi-a3|testi-a3-2s|testi-2s-a3
:af=acct
:cm=test printer
:filter=/usr/local/libexec/filters/testi-filter
:incoming_control_filter=/usr/local/libexec/filters/update_z
:lf=log
:lp=/tmp/testi
:mx#0
:rw
:sd=/var/spool/printers/testi
PRINTER=testi
PS4=+
PWD=/var/spool/printers/testi
SHELL=/bin/sh
SHLVL=1
SPOOL_DIR=/var/spool/printers/testi
TERM=dumb
UID=4
USER=root
_=ENV
LEADER
TESTING
TRAILER
-----------------------------
VERSION that works ok
# lpd -V
LPRng-3.6.26, Copyright 1988-2000 Patrick Powell, <[EMAIL PROTECTED]>
TESTF /usr/local/libexec/filters/testi-filter -Atoropain@domain+225 -CA
-D2001-0 3-15-09:52:55.933 -Ff -Hdomain.csc.fi -Jtest.txt -Ltoropain
-Ntest.txt -Ptesti -Qtesti-2s -Stest printer -Zduplex -aacct -b8
-d/var/spool/printers/testi -edfA22 5domain.csc.fi -ftest.txt
-hdomain.csc.fi -j225 -kcfA225domain.csc.fi -l66 -ntoropain -sstatus
-t2001-03-15-09:52:55.000 -w80 -x0 -y0 acct
ENV
BASH=/bin/sh
BASH_VERSION=1.14.7(1)
CONTROL=Zduplex
Atoropain@domain+225
CA
D2001-03-15-09:52:55.933
Hdomain.csc.fi
Jtest.txt
Ltoropain
Ptoropain
Qtesti-2s
Ntest.txt
fdfA225domain.csc.fi
UdfA225domain.csc.fi
EUID=2
HOME=/root
HOSTTYPE=i386
IFS=
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
LOGDIR=/root
LOGNAME=root
OPTERR=1
OPTIND=1
OSTYPE=Linux
PATH=/bin:/usr/bin
PPID=2228
PRINTCAP_ENTRY=testi|testi-2s|testi-a3|testi-a3-2s|testi-2s-a3
:af=acct
:cm=test printer
:filter=/usr/local/libexec/filters/testi-filter
:incoming_control_filter=/usr/local/libexec/filters/update_z
:lf=log
:lp=/tmp/testi
:mx#0
:rw
:sd=/var/spool/printers/testi
PRINTER=testi
PS4=+
PWD=/var/spool/printers/testi
SHELL=/bin/sh
SHLVL=1
SPOOL_DIR=/var/spool/printers/testi
TERM=dumb
UID=2
USER=root
_=ENV
LEADER
TESTING
TRAILER
-----------------END of example---------------
Now, take a look at those filter command lines. In version 3.6.26 there is
the -Zduplex command line option, which is missing in 3.7.4. Both control
files have it identically as added by update_z script. But in 3.7.4 it has
no real effect because ifhp seems only care about command line options,
not those in CONTROL variable. (ie. with LPRng-3.7.4 the queue testi-2s
doesnt print on both sides and with LPRng-3.6.26 it does as it should.)
Any comments? Has anyone else noticed this?
Please excuse any grammar errors :)
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST
The address you post from MUST be your subscription address
If you need help, send email to [EMAIL PROTECTED] (or lprng-requests
or lprng-digest-requests) with the word 'help' in the body. For the impatient,
to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED]
with: | example:
subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED]
unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED]
If you have major problems, send email to [EMAIL PROTECTED] with the word
LPRNGLIST in the SUBJECT line.
-----------------------------------------------------------------------------