Closed
Bug 233459
Opened 21 years ago
Closed 19 years ago
Add "GTK+ >= 2.1" configure check for SVG GTK2 builds
Categories
(Core :: SVG, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: roland.mainz, Assigned: alex)
Details
Attachments
(2 files, 1 obsolete file)
1.73 KB,
patch
|
alex
:
review+
|
Details | Diff | Splinter Review |
3.71 KB,
patch
|
Details | Diff | Splinter Review |
2004-02-08-13-trunk on Solaris 2.8/SPARC, building the GTK2 port with Sun Workshop 8. The build fails like this: -- snip -- nsSVGLibartBitmapGdk.cpp Building deps for ../../../../../../mozilla/layout/svg/renderer/src/libart/nsSVGLibartBitmapGdk.cpp /opt/SUNWspro/bin/CC -o nsSVGLibartBitmapGdk.o -c -DOSTYPE=\"SunOS5\" -DOSARCH=\"SunOS\" -I../../../../../../mozilla/gfx/src/gtk -I../../../../../../mozilla/gfx/src -I../../../../../dist/include/xpcom -I../../../../../dist/include/widget -I../../../../../dist/include/pref -I../../../../../dist/include/gfx -I../../../../../dist/include/imglib2 -I../../../../../dist/include/string -I../../../../../dist/include/dom -I../../../../../dist/include/content -I../../../../../dist/include/necko -I../../../../../dist/include/libart_lgpl -I../../../../../dist/include/util -I../../../../../dist/include/uconv -I../../../../../dist/include/windowwatcher -I../../../../../dist/include/layout -I../../../../../dist/include -I/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/dist/include/nspr -I/usr/openwin/include -KPIC -I/usr/openwin/include -xbuiltin=%all -mt -DNDEBUG -DTRIMMED -xO2 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/openwin/include -DSOLARIS=1 -DNSCAP_DISABLE_DEBUG_PTR_TYPES=1 -DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_SIGINFO_T=1 -DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_UINT=1 -DHAVE_UINT_T=1 -DHAVE_UINT16_T=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_BYTEORDER_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_LIBM=1 -DHAVE_LIBDL=1 -DHAVE_LIBSOCKET=1 -DFUNCPROTO=15 -DHAVE_XSHM=1 -D_REENTRANT=1 -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1 -DHAVE_SNPRINTF=1 -DHAVE_MEMMOVE=1 -DHAVE_RINT=1 -DHAVE_NL_LANGINFO=1 -DHAVE_FLOCKFILE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_STRTOK_R=1 -DVA_COPY=va_copy -DHAVE_VA_COPY=1 -DHAVE_I18N_LC_MESSAGES=1 -DMOZ_DEFAULT_TOOLKIT=\"gtk2\" -DMOZ_WIDGET_GTK2=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_X11=1 -DMOZ_ENABLE_COREXFONTS=1 -DMOZ_EXTRA_X11CONVERTERS=1 -DOJI=1 -DIBMBIDI=1 -DMOZ_VIEW_SOURCE=1 -DACCESSIBILITY=1 -DMOZ_XPINSTALL=1 -DMOZ_JSLOADER=1 -DMOZ_MATHML=1 -DMOZ_SVG=1 -DMOZ_SVG_RENDERER_LIBART=1 -DMOZ_LOGGING=1 -DMOZ_USER_DIR=\".mozilla\" -DMOZ_XUL=1 -DMOZ_PROFILESHARING=1 -DMOZ_PROFILELOCKING=1 -DSUNCTL=1 -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1 -DJS_THREADSAFE=1 -DNS_PRINT_PREVIEW=1 -DNS_PRINTING=1 -DMOZ_ACCESSIBILITY_ATK=1 -DMOZILLA_VERSION=\"1.7a\" -DMOZILLA_LOCALE_VERSION=\"1.7a\" -DMOZILLA_REGION_VERSION=\"1.7a\" -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT ../../../../../../mozilla/layout/svg/renderer/src/libart/nsSVGLibartBitmapGdk.cpp "../../../../../../mozilla/layout/svg/renderer/src/libart/nsSVGLibartBitmapGdk.cpp", line 204: Error: The function "gdk_draw_pixbuf" must have a prototype. "../../../../../../mozilla/layout/svg/renderer/src/libart/nsSVGLibartBitmapGdk.cpp", line 260: Error: The function "gdk_draw_pixbuf" must have a prototype. 2 Error(s) detected. gmake[6]: *** [nsSVGLibartBitmapGdk.o] Error 2 gmake[6]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/layout/svg/renderer/src/libart' gmake[5]: *** [libs] Error 2 gmake[5]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/layout/svg/renderer/src' gmake[4]: *** [libs] Error 2 gmake[4]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/layout/svg/renderer' gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/layout/svg' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/layout' gmake[1]: *** [tier_9] Error 2 gmake[1]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1' gmake: *** [default] Error 2 -- snip --
Assignee | ||
Comment 1•21 years ago
|
||
Looks like there is a header missing. Could you please try the following: Index: nsSVGLibartBitmapGdk.cpp =================================================================== RCS file: /cvsroot/mozilla/layout/svg/renderer/src/libart/nsSVGLibartBitmapGdk.cpp,v retrieving revision 1.2 diff -u -r1.2 nsSVGLibartBitmapGdk.cpp --- nsSVGLibartBitmapGdk.cpp 7 Feb 2004 12:39:24 -0000 1.2 +++ nsSVGLibartBitmapGdk.cpp 9 Feb 2004 01:25:30 -0000 @@ -36,6 +36,7 @@ * * ----- END LICENSE BLOCK ----- */ +#include "gdk/gdkdrawable.h" #include"gdk-pixbuf/gdk-pixbuf.h" #include "nsCOMPtr.h" #include "nsISVGLibartBitmap.h"
Status: NEW → ASSIGNED
Reporter | ||
Comment 2•21 years ago
|
||
This will not work since "gdk_draw_pixbuf" is not part of GTK/GDK2.0 - it was AFAIK added slighly later (the libraries shipped with Solaris and older SuSE versions don't have that symbol).
Reporter | ||
Comment 3•21 years ago
|
||
Note that the current usage of gdk_pixbuf smells like the next printing crasher. You cannot assume that the nsIRenderingContext is a nsRenderingContextGTK one - it may be nsRenderingContextPS (PostScript prining) or nsRenderingContextXp (Xprint).
Reporter | ||
Comment 4•21 years ago
|
||
Comment on attachment 140902 [details] [diff] [review] Workaround for the problem sorry, I uploaded the wrong patch... one sec...
Attachment #140902 -
Attachment is obsolete: true
Reporter | ||
Comment 5•21 years ago
|
||
Reporter | ||
Comment 6•21 years ago
|
||
Comment on attachment 140904 [details] [diff] [review] Workaround, 2nd try Requesting r= and checking (assuming that SVG stuff currently doesn't need sr=, only r= from module owner) ...
Attachment #140904 -
Flags: review?(alex)
Assignee | ||
Comment 7•21 years ago
|
||
Comment on attachment 140904 [details] [diff] [review] Workaround, 2nd try checked in.
Attachment #140904 -
Flags: review?(alex) → review+
Comment 8•20 years ago
|
||
Alex, is this FIXED?
Assignee | ||
Comment 9•20 years ago
|
||
No, see comment #2 and the patch. We need a configure-test for GTK+ >= 2.1.
Summary: GTK2 build failure after SVG-branch landing... → Add "GTK+ >= 2.1" configure check for SVG GTK2 builds
Comment 10•20 years ago
|
||
Here's a patch to use gdk_pixbuf_render_to_drawable when gdk_draw_pixbuf is not available. I've not tested on gtk+ version 2.0, but I do know that gdk_pixbuf_render_to_drawable exists on version 2.0. (In reply to comment #3) > Note that the current usage of gdk_pixbuf smells like the next printing > crasher. > You cannot assume that the nsIRenderingContext is a nsRenderingContextGTK one - > it may be nsRenderingContextPS (PostScript prining) or nsRenderingContextXp > (Xprint). alex, is this a real problem?
Assignee | ||
Comment 11•20 years ago
|
||
<afri> to answer your question about nsRenderingContextPS,etc. : I don't know :-) <afri> Probably yes though <afri> There are some things in nsSVGLibartBitmapGdk.cpp that look like they won't work for nsRenderingContextPS,etc: <afri> nsDrawingSurfaceGTK *surface=nsnull; <afri> mRenderingContext->CreateDrawingSurface(rect, NS_CREATEDRAWINGSURFACE_FOR_PIXEL_ACCESS, <afri> (nsDrawingSurface&)surface); <afri> NS_ASSERTION(surface, "could not create drawing surface"); <afri> i don't know what kind of drawing surface will be returned by a PS-context, but it probably won't be an nsDrawingSurfaceGTK <afri> actually it looks like it returns nothing: <afri> NS_IMETHODIMP <afri> nsRenderingContextPS :: CreateDrawingSurface(const nsRect& aBounds, PRUint32 aSurfFlags, nsDrawingSurface &aSurface) <afri> { <afri> return NS_OK; // offscreen test <afri> } <afri> :-) <afri> The best way to fix this is probably to create different libartbitmaps depending on the rendering context type in nsSVGLibartCanvas::Init(). <afri> At the moment the libartbitmap created by NS_NewSVGLibartBitmap is hard-wired to either the 'default' bitmap or the gdk bitmap <afri> ideally we should have another 'ps bitmap' but for now we could just create a default bitmap for ps-contexts. That should work, but foreignObjects won't print with it. At least it shouldn't crash (like the current code probably does)
Comment 12•20 years ago
|
||
(In reply to comment #11) > <afri> The best way to fix this is probably to create different libartbitmaps > depending on the rendering context type in nsSVGLibartCanvas::Init(). How would one know what rendering context type it is? I'm starting to wonder if some of this bitmap stuff should be gfx or something...
Updated•19 years ago
|
Flags: blocking1.8b3? → blocking1.8b3-
Comment 13•19 years ago
|
||
Marking wontfix. We have no plans to continue development of the libart backend.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•