Xprint break Qt Mozilla compile due to gdk.h dependency

VERIFIED FIXED in mozilla0.9.3

Status

Core Graveyard
Printing: Xprint
--
critical
VERIFIED FIXED
17 years ago
10 years ago

People

(Reporter: John C. Griggs, Assigned: Roland Mainz)

Tracking

Trunk
mozilla0.9.3
x86
Linux
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

17 years ago
XPrint will not compile under the Qt build of Mozilla due to a dependency on 
gdk/gdk.h (via nsXPrintContext.h, nsFontMetricsXlib.h and, finally, nsGCache.h). 
 Until this is fixed the Qt Build should be configured with the --disable-xprint 
option.
(Assignee)

Comment 1

17 years ago
swapping QA<-->owner as usual, fixing OS s/Win95/Linux/ - Xprint is X11-based
(and therefore a Unix/Linux only thing (usually)), setting target milestone
0.9.3 - ASAP (starting with tuesday...)...
Assignee: katakai → Roland.Mainz
Severity: normal → critical
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 95 → Linux
QA Contact: Roland.Mainz → katakai
Target Milestone: --- → mozilla0.9.3
(Assignee)

Comment 2

17 years ago
Accepting bug.

Reporter... I do not have Qt-toolkit on my box (Solaris SPARC). Wanna help me
with the patches by testing them, please ?
Status: NEW → ASSIGNED
(Reporter)

Comment 3

17 years ago
I would be more than happy to test the build part of things (I'm the Qt Mozilla 
module owner, so the faster this is fixed, the fewer times I have to pass the 
work-around on to users), but if you want me to test actual printing, I will not 
be able to help, since I'm doing this work on my own time and equipment, which 
does not include a printer (or a budget to acquire one 8^).  

BTW, I'm pretty sure Qt/X11 (aka Qt/Free) will compile on a SPARC - I have some 
bugs from an UltraSPARC user filed against the Qt build.

Comment 4

17 years ago
The problem appears to be as simple as it is picking up the wrong nsGCCache.h
file. 


Index: gfx/src/xprint/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/xprint/Makefile.in,v
retrieving revision 1.18
diff -u -r1.18 Makefile.in
--- Makefile.in 2001/06/21 04:01:44     1.18
+++ Makefile.in 2001/06/21 19:49:48
@@ -81,8 +81,7 @@
                $(NULL)
 
 INCLUDES       += \
-               -I$(srcdir)/../gtk \
+               -I$(srcdir) \
                -I$(srcdir)/../xlib \
                -I$(srcdir)/../xlibrgb \
-               -I$(srcdir)/../xprint \
                $(NULL)


(Assignee)

Comment 5

17 years ago
I'll attach a patch in the next hour. 
CC'ing cls as StaticBuild&Makefile.in expert because I'm fixing another issue
which breaks Xprint in Xlib-toolkit Mozilla.
(Assignee)

Comment 6

17 years ago
Created attachment 39668 [details] [diff] [review]
Patch for 2001-06-21-08-trunk
(Assignee)

Comment 7

17 years ago
Changes:
- Qt-toolkit should work now due fixes in xprint/Makefile.in
- Fixed Xprint crash in Xlib-toolkit due used of shared xlibrgb. Currently
Xlib-toolkit and Xprint needs each their own set of global variables. This will
be fixed by bug 85527 ("Turn xlibrgb into a shared library")...
- Increated GC-cache size in Xprint land from 10 to 16 to improve printing speed
and complex page rendering
- Removed "#define DEBUG 1" in Xlib-toolkit nsGCCache.h - no DEBUG stuff in
non-debug builds, please
- removed cls's workaround for duplicate symbols...
-- snip --
-#ifdef _IMPL_NS_XPRINT
-#define nsGCCache     nsGCCacheXlib
-#define GCCacheEntry  GCCacheEntryXlib
-#endif
-- snip --
...and replaced it with s/nsGCCache/nsGCCacheXlib/ and
s/GCCacheEntry/GCCacheEntryXlib/

Requesting r=cls (does it work with StaticBuild stuff ?) and feedback from
Qt-toolkit people...
Blocks: 85527
(Reporter)

Comment 8

17 years ago
I am still having problems building this under Qt on Debian Linux with GNU make
and gcc.  I get the following error after applying the patches, doing make
clean, then configure, then make:

xprintutil.c
gcc -o xprintutil.o -c -DOSTYPE=\"Linux2.2\" -DOSARCH=\"Linux\"
-DMOZ_REFLOW_PERF -DMOZ_REFLOW_PERF_DSP -DOJI -D_IMPL_NS_GFXONXP
-DUSE_MOZILLA_TYPES -DUSE_XPRINT -D_IMPL_NS_XPRINT -D_BSD_SOURCE  
-I../../../dist/include -I../../../dist/include
-I/usr/local/src/mozilla/dist/include/nspr      -I. -I./../xlib -I./../xlibrgb 
-I/usr/X11R6/include   -fPIC -I/usr/X11R6/include -Wall -W -Wno-unused
-Wpointer-arith -Wcast-align -pedantic -Wno-long-long -pipe -pthread  -DDEBUG
-DDEBUG_johng -DTRACING -g -I/usr/local/qt/include -DQT_GENUINE_STR
-I/usr/X11R6/include -include ../../../config-defs.h -DMOZILLA_CLIENT
-Wp,-MD,.deps/xprintutil.pp xprintutil.c
xprintutil.c: In function `XpuGetPrinter2':
xprintutil.c:99: warning: comparison between pointer and integer
cpp0: .deps/xprintutil.pp: No such file or directory
xprintutil.c: In function `XpuGetPrinter':
xprintutil.c:134: warning: assignment makes integer from pointer without a cast
xprintutil.c: In function `XpuSetContentOrientation':
xprintutil.c:313: warning: control reaches end of non-void function
make[3]: *** [xprintutil.o] Error 1
make[3]: Leaving directory `/usr/local/src/mozilla/gfx/src/xprint'
make[2]: *** [install] Error 2
make[2]: Leaving directory `/usr/local/src/mozilla/gfx/src'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/usr/local/src/mozilla/gfx'
make: *** [install] Error 2

There also does not seem to be a .deps/ directory under gfx/src/xprint.  I am
not sure if this all represents a problem in XPrint or in my environment...
(Assignee)

Comment 9

17 years ago
I cannot reproduce your problem on my system (Solaris 7 SPARC, GTK+-toolkit
build with Sun Workshop 6U2EA2 and Xlib-toolkit build with gcc2.95.1)... ;-((

Comment 10

17 years ago
Roland, why are you adding all of those extra changes?  The only thing that
needs to be done is to remove gtk from the include path so that the proper
nsGCCache.cpp gets pulled.  Those other changes, while related, are not
necessary to fix this bug.  
(Assignee)

Comment 11

17 years ago
cls:
Sure... but I want to clean-up, too. And the fix for "Xprint crashes
Xlib-toolkit Mozilla" collides with this patch, therefore I integrated it into
this one...

Sorry... I just wanted to get rid of these bugs... ;-(
(Assignee)

Comment 12

17 years ago
John C. Griggs:
Does your build work with cls(=Christopher Seawood)'s patch ? 
If yes - then we should check-in that solution and file a new patch for the
remaining issues, OK ?

Comment 13

17 years ago
r=daa@distributed.net looks logical to me and builds

Comment 14

17 years ago
a=tor for 0.9.2 branch and trunk on cls' 2001-06-21 12:52 patch.
(Assignee)

Updated

17 years ago
Blocks: 87468
(Assignee)

Comment 15

17 years ago
Filed bug 87468 for the remaining issues listed here (see
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=39668) - except
griggs's build dependicy issue - this is bug 87422...
(Assignee)

Comment 16

17 years ago
Fix checked in, marking bug as "FIXED"...
Status: ASSIGNED → RESOLVED
Last Resolved: 17 years ago
Resolution: --- → FIXED
(Assignee)

Comment 17

17 years ago
Can someone verify this bug, please. I do not have Qt-toolkit installed on my
box - and I assume katakai does not have it, too.
QA wanted... :-)
(Reporter)

Comment 18

17 years ago
I backed out Roland's patch, updated from CVS (at 8:8:59 EDT this morning), 
reconfigured and built and everything seems fine now.  There is still no .deps 
directory under gfx/src/xprint, but all of the objects appear to have compiled 
properly and the program runs.  Note that I can only comment on the fact that it 
built - I have no printer to test whether the code is actually complete and 
functional.
(Assignee)

Comment 19

17 years ago
Which patch did you back out (bugid) ?
(Assignee)

Comment 20

17 years ago
John C. Griggs:

BTW: Your special case got an own bug, please please post infos to bug 87422...
Thanks !!
(Reporter)

Comment 21

17 years ago
Roland -

1) The patch I manually applied and backed out was the one attached to this bug. 
 I am now assuming I must have messed up in applying the bug, somehow...

2) I don't see anything in Bugzilla #87422 that has anything to do with Qt and I 
am not CC'ed (or otherwise affiliated) with this bug at all.  Are you sure that 
is the correct ID?
(Assignee)

Comment 22

17 years ago
> 1) The patch I manually applied and backed out was the one attached to this 
> bug. I am now assuming I must have messed up in applying the bug, somehow...

Erm... my patch was _never_ applied to CVS. Instead cls's patch (which is
included in this bug's "description" (search for "Christopher Seawood 2001-06-21
12:52")) was applied to "trunk".

> 2) I don't see anything in Bugzilla #87422 that has anything to do with Qt

No... AFAIK it's a pure build stuff issue. Something in build stuff is going
wrong. Issues for _building_ Qt-toolkit have been (AFAIK) solved (include
issues) - now we're going to hunt this issue(=bug 87422)...

> and 
> I am not CC'ed (or otherwise affiliated) with this bug at all.  Are you sure 
> that is the correct ID?

Please take a look at attachment
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=39805 which is part of
bug 87422:
The attachment ends with
-- snip --
[... ... blah blah... ...]
gcc -o xprintutil.o -c -DOSTYPE=\"Linux2.2\" -DOSARCH=\"Linux\" -DOJI
-D_IMPL_NS_GFXONXP -DUSE_MOZILLA_TYPES -DUSE_XPRINT -D_IMPL_NS_XPRINT
-D_BSD_SOURCE   -I../../../dist/include -I../../../dist/include
-I/ext2d/mozilla/mozilla/dist/include/nspr      -I./../gtk -I./../xlib
-I./../xlibrgb -I./../xprint  -I/usr/X11R6/include   -fPIC -I/usr/X11R6/include
-Wall -W -Wno-unused -Wpointer-arith -Wcast-align -pedantic -Wno-long-long -pipe
-pthread  -DNDEBUG -DTRIMMED -I/usr/lib/glib/include -I/usr/X11R6/include
-I/usr/X11R6/include -include ../../../config-defs.h -DMOZILLA_CLIENT
-Wp,-MD,.deps/xprintutil.pp xprintutil.c
cpp: .deps/xprintutil.pp: No such file or directory
xprintutil.c: In function `XpuGetPrinter2':
xprintutil.c:99: warning: comparison between pointer and integer
xprintutil.c: In function `XpuGetPrinter':
xprintutil.c:134: warning: assignment makes integer from pointer without a cast
xprintutil.c: In function `XpuSetContentOrientation':
xprintutil.c:313: warning: control reaches end of non-void function
-- snip --
I assume this is your problem, right ?
(Reporter)

Comment 23

17 years ago
> Erm... my patch was _never_ applied to CVS. Instead cls's patch (which is
> included in this bug's "description" (search for "Christopher Seawood 
> 2001-06-21 12:52")) was applied to "trunk".

Roland, I applied your patch manually (using "patch") last Friday after grabbing 
it from this bug report in order to test it.  Today I moved the patched files 
aside and updated from CVS (apparently picking up cls' patch in the process).  
With your patch in place I was getting the errors I posted here (and which you 
repeat in your last comment), but now everything seems to be working fine, from 
a Qt build perspective anyway...

Bottom line: the Qt build issues that caused me to open this bug originally and 
the other problems I had after applying your patch appear to be resolved by the 
code currently in CVS.
(Assignee)

Comment 24

17 years ago
OK... assuming I understand you correctly: Bug squished&&dead in todays CVS ?
If yes --> please "verify" it... :-)
(Reporter)

Comment 25

17 years ago
Qt is now building with XPrint enabled.  I have no printer, so I have no idea if 
the code works or not - just that it builds.  I am marking this bug verified, 
since no one else seems to be in a position to test it.
Status: RESOLVED → VERIFIED
(Assignee)

Comment 26

17 years ago
John C. Griggs:
1. Thanks!
2. The code compiles now for Qt-toolkit - but I am pretty sure that currently
the Qt-port cannot use the Xprint module - some glue is still missing (that one
which "enables" the module). Wanna file a bug for Qt-toolkit port and CC: me,
please ? I can only give hints due lack of installed Qt-toolkit - but the
missing code is AFAIK very trivial (once upon the time I ported it to
Xlib-toolkit... :-)
3. s/XPrint/Xprint/ :-))
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.