The GTK port of WebKit is being used by more and more Gnome programs as an alternative to the Gecko engine, so I have tried to create the attached minimal portfile for "webkitgtk", but the compilation fails with the following error: /opt/local/include/X11/X.h:108: error: conflicting declaration 'typedef XID Cursor' /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ QD.framework/Headers/QuickdrawTypes.h:269: error: 'Cursor' has a previous declaration as 'typedef struct Cursor Cursor' make[1]: *** [WebCore/page/libWebKitGtk_la-Frame.lo] Error 1 Which is the elegant way of proceeding with Apple sources? :) -Guido --------------------8<---------------------------------------- # $Id$ PortSystem 1.0 name webkitgtk version r29753 maintainers nomaintainer categories devel description GTK+ port of WebKit. long_description ${description} homepage http://www.webkit.org platforms darwin master_sites http://nightly.webkit.org/files/trunk/src use_bzip2 yes distname WebKit-${version} checksums md5 9ad7d64dd106b10b55d4bf81a0bbd650 configure.cmd ./autogen.sh depends_build port:libtool \ port:icu \ port:pkg-config depends_lib port:gtk2 pre-configure { reinplace "s|aclocal |aclocal -I${prefix}/share/aclocal |" \ ${worksrcpath}/autogen.sh reinplace "s|libtoolize|glibtoolize|" \ ${worksrcpath}/autogen.sh } --------------------8<-------------------------------------------
On 1/24/08, Guido Soranzio <guido.soranzio@gmail.com> wrote:
The GTK port of WebKit is being used by more and moreGnome programs as an alternative to the Gecko engine, so I have tried to create the attached minimal portfile for "webkitgtk", but the compilation fails with the following error:
Funny you should mention that, I was working on my own Portfile for webkit-gtk (see attached). I was having configure errors, but your reinplace of aclocal has solved those for me. I do have a more complete set of dependencies though. /opt/local/include/X11/X.h:108: error: conflicting declaration 'typedef XID
Cursor' /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QuickdrawTypes.h:269: error: 'Cursor' has a previous declaration as 'typedef struct Cursor Cursor' make[1]: *** [WebCore/page/libWebKitGtk_la-Frame.lo] Error 1
I'm currently building, but have not yet gotten to this point... Which is the elegant way of proceeding with Apple sources? :)
Your best bet maybe to work with the WebKit developers, as WebKit is not Apple (its mostly Apple, but not just Apple). -Guido
--------------------8<---------------------------------------- # $Id$
PortSystem 1.0
name webkitgtk version r29753 maintainers nomaintainer categories devel description GTK+ port of WebKit. long_description ${description} homepage http://www.webkit.org platforms darwin master_sites http://nightly.webkit.org/files/trunk/src use_bzip2 yes distname WebKit-${version} checksums md5 9ad7d64dd106b10b55d4bf81a0bbd650 configure.cmd ./autogen.sh depends_build port:libtool \ port:icu \ port:pkg-config depends_lib port:gtk2 pre-configure { reinplace "s|aclocal |aclocal -I${prefix}/share/aclocal |" \ ${worksrcpath}/autogen.sh reinplace "s|libtoolize|glibtoolize|" \ ${worksrcpath}/autogen.sh } --------------------8<-------------------------------------------
_______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macports-dev
-- Randall Wood randall.h.wood@alexandriasoftware.com "The rules are simple: The ball is round. The game lasts 90 minutes. All the rest is just philosophy."
I am getting the same error and have reported it at http://bugs.webkit.org/show_bug.cgi?id=17001 if you wish to follow it.
On Jan 25, 2008, at 7:24 AM, Randall Wood wrote:
Your best bet maybe to work with the WebKit developers, as WebKit is not Apple (its mostly Apple, but not just Apple).
Indeed, the problem is that the includes of AplicationServices.framework are evaluated even when PLATFORM(GTK) is defined. I tried to add post-configure { reinplace "s|-Wl,-framework,CoreServices,- framework,ApplicationServices ||" \ ${worksrcpath}/GNUmakefile \ ${worksrcpath}/WebKit/gtk/WebKitGtk.pc } and to nullify the line FRAMEWORK_SEARCH_PATHS = $(SYSTEM_LIBRARY_DIR)/Frameworks/ Carbon.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/ ApplicationServices.framework/Frameworks $(FRAMEWORK_SEARCH_PATHS); from Webcore/Configurations/WebCore.xcconfig but, when Frame.cpp is compiled, the double definition of the struct Cursor is still imported from the Carbon system includes. Perhaps hacking WebCore/plaform/Cursor.h could solve it.
Guido Soranzio wrote:
Your best bet maybe to work with the WebKit developers, as WebKit is not Apple (its mostly Apple, but not just Apple).
Indeed, the problem is that the includes of AplicationServices.framework are evaluated even when PLATFORM(GTK) is defined. ... from Webcore/Configurations/WebCore.xcconfig but, when Frame.cpp is compiled, the double definition of the struct Cursor is still imported from the Carbon system includes.
The usual workaround is to #define Cursor to something else, so that it won't conflict with the legacy Mac OS headers... #if defined(__APPLE__) && defined(__MACH__) /* conflicts with Quickdraw.h */ #define Cursor X11Cursor #endif #include <X11/Xlib.h> ... #if defined(__APPLE__) && defined(__MACH__) /* matches the re-define above */ #undef Cursor #endif --anders
On 1/25/08, Anders F Björklund <afb@macports.org> wrote:
Guido Soranzio wrote:
Your best bet maybe to work with the WebKit developers, as WebKit is not Apple (its mostly Apple, but not just Apple).
Indeed, the problem is that the includes of AplicationServices.framework are evaluated even when PLATFORM(GTK) is defined. ... from Webcore/Configurations/WebCore.xcconfig but, when Frame.cpp is compiled, the double definition of the struct Cursor is still imported from the Carbon system includes.
The usual workaround is to #define Cursor to something else, so that it won't conflict with the legacy Mac OS headers...
Don't forget that under certain conditions GTK will be compiled to run in the Aqua environment and not in X11. #if defined(__APPLE__) && defined(__MACH__)
/* conflicts with Quickdraw.h */ #define Cursor X11Cursor #endif
#include <X11/Xlib.h> ...
#if defined(__APPLE__) && defined(__MACH__) /* matches the re-define above */ #undef Cursor #endif
--anders
-- Randall Wood randall.h.wood@alexandriasoftware.com "The rules are simple: The ball is round. The game lasts 90 minutes. All the rest is just philosophy."
Randall Wood wrote:
The usual workaround is to #define Cursor to something else, so that it won't conflict with the legacy Mac OS headers... Don't forget that under certain conditions GTK will be compiled to run in the Aqua environment and not in X11.
Right, but most likely that code won't include X11 then ? :-) Seriously, this was for the X11 code path - not for Aqua... So it undefined the symbol again, after potentially using it. --anders
On Jan 25, 2008, at 8:23 AM, Randall Wood wrote:
I am getting the same error and have reported it at http://bugs.webkit.org/show_bug.cgi?id=17001 if you wish to follow it.
Thanks. I have applied the patch by Mark Raw in the attached updated portfile. Now the compilation fails towards the end in WebCore/xml reporting this error: In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h:28, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/uchar.h:2317:6: warning: "UCONFIG_NO_NORMALIZATION" is not defined In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h:29, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/ustring.h:679:6: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/ustring.h:1092:6: warning: "UCONFIG_NO_BREAK_ITERATION" is not defined /opt/local/include/unicode/ustring.h:1169:64: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/uchar.h:2293: error: expected initializer before 'UCharEnumTypeRange' [...] /opt/local/include/unicode/ucol.h:472: error: 'UCharIterator' has not been declared /opt/local/include/unicode/ucol.h:725: error: 'UCharIterator' has not been declared make[1]: *** [WebCore/xml/libWebKitGtk_la-XSLTUnicodeSort.lo] Error 1 make: *** [all] Error 2 -Guido ---------------8<----------------------------------------- PortSystem 1.0 name webkitgtk version r29785 categories devel description GTK+ port of WebKit. long_description ${description} maintainers nomaintainer homepage http://www.webkit.org platforms darwin master_sites http://nightly.webkit.org/files/trunk/src use_bzip2 yes distname WebKit-${version} checksums md5 2c45b3c706be67a1b6d57784a4239407 configure.cmd ./autogen.sh depends_build port:libtool \ port:pkgconfig depends_lib port:curl \ port:icu \ port:libxslt \ port:sqlite3 \ port:gtk2 pre-configure { reinplace "s|aclocal |aclocal -I ${prefix}/share/aclocal |" \ ${worksrcpath}/autogen.sh reinplace "s|libtoolize|glibtoolize|" \ ${worksrcpath}/autogen.sh reinplace "s|!defined(__MACOS_CLASSIC__)|! defined(__MACOS_CLASSIC__) \\\&\\\& !defined(XP_UNIX)|" \ ${worksrcpath}/JavaScriptCore/bindings/npapi.h } -------------------8<------------------------------------
Le 25 janv. 08 à 19:46, Guido Soranzio a écrit :
On Jan 25, 2008, at 8:23 AM, Randall Wood wrote:
I am getting the same error and have reported it at http:// bugs.webkit.org/show_bug.cgi?id=17001 if you wish to follow it.
Thanks. I have applied the patch by Mark Raw in the attached updated portfile.
Now the compilation fails towards the end in WebCore/xml reporting this error:
In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h: 28, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/uchar.h:2317:6: warning: "UCONFIG_NO_NORMALIZATION" is not defined In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h: 29, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/ustring.h:679:6: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/ustring.h:1092:6: warning: "UCONFIG_NO_BREAK_ITERATION" is not defined /opt/local/include/unicode/ustring.h:1169:64: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/uchar.h:2293: error: expected initializer before 'UCharEnumTypeRange'
[...]
/opt/local/include/unicode/ucol.h:472: error: 'UCharIterator' has not been declared /opt/local/include/unicode/ucol.h:725: error: 'UCharIterator' has not been declared make[1]: *** [WebCore/xml/libWebKitGtk_la-XSLTUnicodeSort.lo] Error 1 make: *** [all] Error 2
That's icu's fault, is a specific version of it required? MacPorts is up to date, 3.8.1 is the latest version. -- Anthony Ramine, the "Ports tree cleaning Maestro". <nox@macports.org>
I went ahead and committed the port at www/webkit-gtk so that we can all work on the same port in SVN. Its commit number 33380. On 1/25/08, N_Ox <n.oxyde@gmail.com> wrote:
Le 25 janv. 08 à 19:46, Guido Soranzio a écrit :
On Jan 25, 2008, at 8:23 AM, Randall Wood wrote:
I am getting the same error and have reported it at http:// bugs.webkit.org/show_bug.cgi?id=17001 if you wish to follow it.
Thanks. I have applied the patch by Mark Raw in the attached updated portfile.
Now the compilation fails towards the end in WebCore/xml reporting this error:
In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h: 28, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/uchar.h:2317:6: warning: "UCONFIG_NO_NORMALIZATION" is not defined In file included from ./JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h: 29, from ./JavaScriptCore/wtf/unicode/Unicode.h:31, from ./JavaScriptCore/wtf/unicode/utf8.h:29, from /opt/local/include/unicode/utf.h:221, from /opt/local/include/unicode/utypes.h:37, from /opt/local/include/unicode/ucnv_err.h:86, from /opt/local/include/unicode/ucnv.h:50, from WebCore/xml/XSLTUnicodeSort.cpp:38: /opt/local/include/unicode/ustring.h:679:6: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/ustring.h:1092:6: warning: "UCONFIG_NO_BREAK_ITERATION" is not defined /opt/local/include/unicode/ustring.h:1169:64: warning: "UCONFIG_NO_CONVERSION" is not defined /opt/local/include/unicode/uchar.h:2293: error: expected initializer before 'UCharEnumTypeRange'
[...]
/opt/local/include/unicode/ucol.h:472: error: 'UCharIterator' has not been declared /opt/local/include/unicode/ucol.h:725: error: 'UCharIterator' has not been declared make[1]: *** [WebCore/xml/libWebKitGtk_la-XSLTUnicodeSort.lo] Error 1 make: *** [all] Error 2
That's icu's fault, is a specific version of it required? MacPorts is up to date, 3.8.1 is the latest version.
AFAIK the WebKit developers want to remove the dependency on ICU for portability reasons. --
Anthony Ramine, the "Ports tree cleaning Maestro". <nox@macports.org>
_______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macports-dev
-- Randall Wood randall.h.wood@alexandriasoftware.com "The rules are simple: The ball is round. The game lasts 90 minutes. All the rest is just philosophy."
participants (4)
-
Anders F Björklund
-
Guido Soranzio
-
N_Ox
-
Randall Wood