Red Hat Bugzilla – Bug 115586
PageSize problem in Omni
Last modified: 2007-11-30 17:10:36 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1)
Description of problem:
While trying to setup a JetDirect print queue to a HPLJ 5M printer and
using the Omni driver one has to select te printer vendor. There is a
cosmetic problem with this list. Please see attached screen shot #1.
My system uses German as default language, but the printer was setup
to use US letter as default paper size. In the properties it is not
possible to select A4 as the paper size. Please see attached screen
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. try to setup a JetDirect HP LJ5M with A4 paper size
Created attachment 97653 [details]
printer vendor list screen shot
Created attachment 97654 [details]
page size list screen size
It is no use piling several issues into one report. Pick one, and
file separate bug reports for the others.
The 'Letter' problem is in Omni, and is fixed in 0.9.1-5.
Sorry to reopen this bug again. With Omni-0.9.1-5 the printer config
tool now correctly displays A4 (and all the other page sizes), but
when I print any of the test pages they are send as Letter to the printer.
The printer vendor list is still broken too.
You need to open a separate report for the other problem (and you'll
need to be more specific -- I'm not sure what problem you're describing).
I'll take a look at what's going on with the page size. The
Omni-foomatic file omni-form.xml looks correct, so something must be
going wrong inside the driver.
The option makes it into the PPD file, but then foomatic says this
when processing input:
The value DFO1_39 for PageSize is not a choice!
--> Using Custom instead!
The value DFO1_39 for PageRegion is not a choice!
--> Using Custom instead!
Reported to foomatic-devel:
To fix the problem with the PageSize option not being populated with
choices in the PPD files I have done a slight change on the PPD
generator of Foomatic. You can either take a current CVS snapshot of
the foomatic-db-engine package (both stable and unstable branch are
appropriately changed) or get this patch for foomatic-db-engine (works
on both branches):
But note that this fixes only the PageSize option, and only when Tim's
patch is applied to Omni. There is still another bug in Omni. The
"-sproperties='...'" option of the GhostScript command line has to
contain the name of the printer's XML file in /usr/share/Omni/. See
second "NOTE" in the "Common command line paramters" section of the
docs/Usage file in the source tree of Omni.
There are probably also other bugs in Omni's Foomatic generator.
The name of the printer's XML file in /usr/share/Omni/ is specified by
the device-specific option "XMLMasterFile" whose Foomatic XML file is
supposed to be generated by the lines 2697-2913 in
Foomatic/OmniFoomaticGenerator.cpp (current CVS state). These lines
are deactivated by enclosing them with "#if 0" and an "#endif". They
are also marked as "// @TBD" (= To Be Done). I have activated them for
testing and recompiled. The result is the following:
[tkamppeter@n1 Foomatic]$ make
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../hppcl3
-I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/libxml2
-DUSE_STANDARD_NAMES=1 -DRETAIL=1 -DLIBRARY_PATH=/usr/lib/Omni/
-DSHARE_PATH=/usr/share/Omni/ -DBIN_PATH=/usr/bin/ -O2
-fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro -Wall
-Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes
-fno-builtin -fno-common -MT OmniFoomaticGenerator.o -MD -MP -MF
-c -o OmniFoomaticGenerator.o `test -f 'OmniFoomaticGenerator.cpp'
|| echo './'`OmniFoomaticGenerator.cpp; \
then mv -f ".deps/OmniFoomaticGenerator.Tpo"
else rm -f ".deps/OmniFoomaticGenerator.Tpo"; exit 1; \
cc1plus: warning: "-Wmissing-declarations" is valid for C/ObjC but not
OmniFoomaticGenerator.cpp: In function `int main(int, char**)':
OmniFoomaticGenerator.cpp:2712: error: `listDeviceJobPropertyKeys'
undeclared (first use this function)
OmniFoomaticGenerator.cpp:2712: error: (Each undeclared identifier is
reported only once for each function it appears in.)
OmniFoomaticGenerator.cpp:2838: error: `listKeyValues' undeclared
(first use this function)
make: *** [OmniFoomaticGenerator.o] Error 1
either there is simply a bug or the methods
'listDeviceJobPropertyKeys' and 'listKeyValues' are not implemented
yet for the 'pDevice' class. In this case Foomatic support for the
XML-based drivers would not be available yet.
In Mandrake Linux I have used the CUPS Raster driver
/usr/lib/cups/filter/CUPSToOmni together with the PPD files generated
by GenerateOmniPPDs (all in CUPS directory of Omni's source tree for
the time being. But note that this way foomatic-rip is not used and so
the special of Foomatic, as per-page specification of option settings
(page overrides) are not possible.
I have committed Tim's patch from
into the CVS of Omni.
We're not shipping the omni-xml driver, only the omni-compiled driver
-- that should be okay shouldn't it?
Today's rawhide push should have foomatic-3.0.1-2 with Till's fix;
let's see what's still broken after that.
Looks much better now. The test pages are now printed as A4.
Great. I'll close this then. Till, thanks for your help.