1 | # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 |
---|
2 | |
---|
3 | # We have an umbrella radar tracking webkit-gtk issues on OS X. Please relate |
---|
4 | # any future issues with this tracker. |
---|
5 | # http://bugs.webkit.org/show_bug.cgi?id=126492 |
---|
6 | |
---|
7 | PortSystem 1.0 |
---|
8 | PortGroup active_variants 1.1 |
---|
9 | PortGroup cmake 1.1 |
---|
10 | PortGroup legacysupport 1.1 |
---|
11 | |
---|
12 | compiler.cxx_standard 2017 |
---|
13 | cmake.generator Ninja |
---|
14 | # Fix compilation for Angle subproject: platform.h: error: 'TARGET_OS_OSX' is not defined |
---|
15 | legacysupport.newest_darwin_requires_legacy 15 |
---|
16 | |
---|
17 | name webkit2-gtk |
---|
18 | conflicts webkit2-gtk-devel |
---|
19 | version 2.28.2 |
---|
20 | revision 9 |
---|
21 | |
---|
22 | description Apple's WebKit2 HTML rendering library for GTK+3 |
---|
23 | long_description {*}${description} |
---|
24 | maintainers {devans @dbevans} {mascguy @mascguy} |
---|
25 | categories www gnome |
---|
26 | platforms darwin freebsd |
---|
27 | license LGPL-2+ BSD |
---|
28 | homepage http://webkitgtk.org/ |
---|
29 | master_sites http://webkitgtk.org/releases/ |
---|
30 | |
---|
31 | use_xz yes |
---|
32 | distname webkitgtk-${version} |
---|
33 | |
---|
34 | dist_subdir webkit-gtk |
---|
35 | |
---|
36 | checksums rmd160 a626f58cf30b6dd1ef8a63c165ce85770c4da675 \ |
---|
37 | sha256 b9d23525cfd8d22c37b5d964a9fe9a8ce7583042a2f8d3922e71e6bbc68c30bd \ |
---|
38 | size 21427772 |
---|
39 | |
---|
40 | depends_build-append \ |
---|
41 | port:gperf \ |
---|
42 | port:gtk-doc \ |
---|
43 | port:perl5.34 \ |
---|
44 | port:pkgconfig \ |
---|
45 | port:python27 \ |
---|
46 | port:py27-simplejson |
---|
47 | |
---|
48 | depends_lib-append port:atk \ |
---|
49 | port:at-spi2-atk \ |
---|
50 | port:bison \ |
---|
51 | path:lib/pkgconfig/cairo.pc:cairo \ |
---|
52 | port:flex \ |
---|
53 | port:fontconfig \ |
---|
54 | port:freetype \ |
---|
55 | port:enchant2 \ |
---|
56 | port:geoclue2 \ |
---|
57 | path:lib/pkgconfig/glib-2.0.pc:glib2 \ |
---|
58 | path:lib/pkgconfig/gobject-introspection-1.0.pc:gobject-introspection \ |
---|
59 | port:gstreamer1 \ |
---|
60 | port:gstreamer1-gst-plugins-bad \ |
---|
61 | port:gstreamer1-gst-plugins-base \ |
---|
62 | port:gstreamer1-gst-plugins-good \ |
---|
63 | path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \ |
---|
64 | path:lib/pkgconfig/harfbuzz-icu.pc:harfbuzz-icu \ |
---|
65 | port:hyphen \ |
---|
66 | path:lib/pkgconfig/icu-uc.pc:icu \ |
---|
67 | path:include/turbojpeg.h:libjpeg-turbo \ |
---|
68 | port:libnotify \ |
---|
69 | port:libpng \ |
---|
70 | port:libsecret \ |
---|
71 | path:lib/pkgconfig/libsoup-2.4.pc:libsoup \ |
---|
72 | port:libxml2 \ |
---|
73 | port:libxslt \ |
---|
74 | port:sqlite3 \ |
---|
75 | port:webp \ |
---|
76 | port:woff2 \ |
---|
77 | port:zlib |
---|
78 | |
---|
79 | |
---|
80 | # 1. add missing JavaScriptCore include directory used only on Apple webkit builds |
---|
81 | # 2. don't copy the ICU includes into the source tree |
---|
82 | # 3. add missing WebCore include directory used only on Apple webkit builds |
---|
83 | # 4. add a missing Apple-only header found in the WebKit project |
---|
84 | # 5. change some int64_t to gint64 to stop typedef errors in gstreamer |
---|
85 | patchfiles-append patch-webkit2gtk-macports.diff |
---|
86 | |
---|
87 | # and a few more for webkit2-gtk-2.27.2 |
---|
88 | patchfiles-append patch-webkit2gtk-272-macports.diff |
---|
89 | |
---|
90 | # and a few more for 282 |
---|
91 | patchfiles-append patch-webkit2gtk-2282-unprotected-egl-changes.diff |
---|
92 | |
---|
93 | # os log is only available on newer systems. |
---|
94 | patchfiles-append patch-webkit2gtk-2282-os-log-availability.diff |
---|
95 | |
---|
96 | # enable Netscape plugin architecture on macOS |
---|
97 | # or can be explicitly disabled with the following addition if preferred |
---|
98 | # configure.args-append -DENABLE_NETSCAPE_PLUGIN_API=OFF |
---|
99 | patchfiles-append patch-enable-plugin-architecture-unix.diff |
---|
100 | |
---|
101 | # add a link library to WebCore. I am not sure this is still needed; builds and |
---|
102 | # runs without this patch. |
---|
103 | patchfiles-append patch-bundle-link-webcore.diff |
---|
104 | |
---|
105 | # Fix incompatibility with XCode 12: |
---|
106 | # https://bugs.webkit.org/show_bug.cgi?id=207871 |
---|
107 | patchfiles-append patch-WTF-wtf-getVTablePointer.diff |
---|
108 | |
---|
109 | # Fix build errors due to -WWc++11-narrowing |
---|
110 | # https://bugs.webkit.org/show_bug.cgi?id=211193 |
---|
111 | patchfiles-append patch-bool_narrowed.diff |
---|
112 | |
---|
113 | # Explicitly specify installed dylib paths to g-ir-compile |
---|
114 | # Fixes dlopen errors in apps using webkit2gtk introspection |
---|
115 | patchfiles-append patch-webkit2gtk-specify-installed-dylibs.diff |
---|
116 | |
---|
117 | # Backport https://github.com/WebKit/WebKit/commit/b83958928838b8a997c12a8de06f89377df0a903 |
---|
118 | patchfiles-append patch-icu-68-true-false.diff |
---|
119 | |
---|
120 | # API changed with libxml2 2.12+ |
---|
121 | # https://github.com/WebKit/WebKit/commit/1bad176b2496579d760852c80cff3ad9fb7c3a4b |
---|
122 | patchfiles-append patch-webkit2-gtk-fixes-for-libxml2-2.12.0.diff |
---|
123 | |
---|
124 | # Fix build with Ruby 3.2 |
---|
125 | # MacPorts ticket https://trac.macports.org/ticket/68705 |
---|
126 | # Webkit ticket: https://bugs.webkit.org/show_bug.cgi?id=246743 |
---|
127 | # Commit for Webkit 2.38.0 which fixes it: |
---|
128 | # https://github.com/WebKit/WebKit/commit/b7ac5d0ccc7ca3ed6bf4f2d40fde60247ce87d3c |
---|
129 | # The following diff is a backport of the above patch to Webkit 2.28.2. |
---|
130 | patchfiles-append patch-deprecated-file-exists-rb32.diff |
---|
131 | |
---|
132 | # Reduce compilation warnings |
---|
133 | configure.cppflags-append \ |
---|
134 | -Wno-deprecated-declarations |
---|
135 | |
---|
136 | # it is preferred to use the WebKit built in bmalloc if it builds on a given os. |
---|
137 | # it has improved security features, but not all systems can build it at present. |
---|
138 | configure.args-append \ |
---|
139 | -DPORT=GTK \ |
---|
140 | -DENABLE_INTROSPECTION=ON \ |
---|
141 | -DENABLE_MINIBROWSER=OFF \ |
---|
142 | -DENABLE_VIDEO=ON \ |
---|
143 | -DUSE_SYSTEM_MALLOC=OFF \ |
---|
144 | -DPERL_EXECUTABLE=${prefix}/bin/perl5.34 |
---|
145 | |
---|
146 | pre-configure { |
---|
147 | if {![variant_isset quartz] && ![variant_isset x11]} { |
---|
148 | error "Either +x11 or +quartz is required" |
---|
149 | } |
---|
150 | } |
---|
151 | |
---|
152 | if {![variant_isset quartz]} { |
---|
153 | default_variants-append +x11 |
---|
154 | } |
---|
155 | |
---|
156 | # this is nice to have, and should be the default |
---|
157 | default_variants-append +minibrowser |
---|
158 | |
---|
159 | variant quartz conflicts x11 { |
---|
160 | require_active_variants path:lib/pkgconfig/gtk+-3.0.pc:gtk3 quartz |
---|
161 | |
---|
162 | # TODO: restrict this patch to just Big Sur? |
---|
163 | patchfiles-append patch-Source_WebKit_Platform_IPC_Connection.cpp.diff |
---|
164 | |
---|
165 | configure.args-append \ |
---|
166 | -DENABLE_QUARTZ_TARGET=ON \ |
---|
167 | -DENABLE_X11_TARGET=OFF \ |
---|
168 | -DENABLE_OPENGL=OFF |
---|
169 | |
---|
170 | # OPENGL does not work with +quartz, eg: https://trac.macports.org/ticket/52495 |
---|
171 | # OPENGL must be explicitly turned off, otherwise GLX is found, but X11 is not, and: |
---|
172 | # CMake Error at Source/cmake/OptionsGTK.cmake:280 (message): |
---|
173 | # Either GLX or EGL is needed for ENABLE_OPENGL. |
---|
174 | |
---|
175 | } |
---|
176 | |
---|
177 | variant x11 conflicts quartz { |
---|
178 | require_active_variants path:lib/pkgconfig/gtk+-3.0.pc:gtk3 x11 |
---|
179 | |
---|
180 | configure.args-append \ |
---|
181 | -DENABLE_QUARTZ_TARGET=OFF \ |
---|
182 | -DENABLE_X11_TARGET=ON \ |
---|
183 | -DENABLE_OPENGL=OFF |
---|
184 | |
---|
185 | depends_lib-append \ |
---|
186 | port:mesa \ |
---|
187 | port:xorg-libXt |
---|
188 | } |
---|
189 | |
---|
190 | variant minibrowser description {Build and install MiniBrowser (for testing)} { |
---|
191 | configure.args-delete -DENABLE_MINIBROWSER=OFF |
---|
192 | configure.args-append -DENABLE_MINIBROWSER=ON |
---|
193 | depends_run-append port:adwaita-icon-theme |
---|
194 | } |
---|
195 | |
---|
196 | # see https://trac.macports.org/ticket/56792 |
---|
197 | # no success at building universal after considerable attempts |
---|
198 | # errors out in the javascript interpreter |
---|
199 | # muniversal PG does not fix it. disabling the JIT does not fix it |
---|
200 | # help wanted, if suitably motivated |
---|
201 | universal_variant no |
---|
202 | |
---|
203 | # Fix builds if ccache happens to be installed when configure.ccache=no |
---|
204 | if {![option configure.ccache]} { |
---|
205 | build.env-append CCACHE_DIR=${workpath}/.ccache |
---|
206 | } |
---|
207 | |
---|
208 | # the above code presently builds as-in on 10.13 and up |
---|
209 | if {${os.platform} eq "darwin" && ${os.major} <= 16} { |
---|
210 | |
---|
211 | # build of bmalloc fails up to 10.12 https://trac.macports.org/ticket/59447 |
---|
212 | configure.args-replace -DUSE_SYSTEM_MALLOC=OFF -DUSE_SYSTEM_MALLOC=ON |
---|
213 | patchfiles-append patch-ramsize.diff |
---|
214 | |
---|
215 | # Source/WTF/wtf/unix/CPUTimeUnix.cpp : add back a previous Darwin compat version |
---|
216 | patchfiles-append patch-source-wtf-wtf-unix-cputimeunix-cpp-darwin-version-restore.diff |
---|
217 | |
---|
218 | # some Darwin versions don't have MAP_JIT; only use it if available |
---|
219 | patchfiles-append patch-source-wtf-wtf-osallocatorposix-cpp-map-jit.diff |
---|
220 | |
---|
221 | # gl cocoa build continues to fail due to use of API not available on darwin 12 or earlier |
---|
222 | # so gstreamergl is not available at present for darwin 12 or earlier |
---|
223 | # todo clarify further where this is exactly needed |
---|
224 | configure.args-append -DUSE_GSTREAMER_GL=OFF |
---|
225 | |
---|
226 | # for the webcore/page/crypt code to flow correctly, |
---|
227 | # ENABLE_WEB_CRYPTO has to be ON for 10.10+ and OFF for 10.9 and less |
---|
228 | if {${os.major} <= 13} { |
---|
229 | configure.args-append -DENABLE_WEB_CRYPTO=OFF |
---|
230 | } |
---|
231 | # disable Apple internal security libraries, available only on new systems |
---|
232 | patchfiles-append patch-Webcore-page-crypto.diff |
---|
233 | |
---|
234 | # restrict special process memory kernel calls to 10.9+ that support them |
---|
235 | patchfiles-append patch-WTF-wtf-spi-darwin-ProcessMemoryFootprint-h.diff |
---|
236 | |
---|
237 | # the darwin build uses security features that are Apple internal only, but |
---|
238 | # the unix version does not FIXME: sort the ifdefs out |
---|
239 | # https://bugs.webkit.org/show_bug.cgi?id=157554 |
---|
240 | patchfiles-append patch-WTF-wtf-Randomdevice.diff |
---|
241 | |
---|
242 | # disable veclib on 10.7 and 10.8. There is a definition for |
---|
243 | # class complex<> in the vForce.h header that collides with libc++ |
---|
244 | # if anyone has a more elegant fix for this, please volunteer it |
---|
245 | if {${os.major} == 11 || ${os.major} == 12} { |
---|
246 | patchfiles-append patch-webcore-platform-audio-directconvolver-disable-veclib.diff |
---|
247 | } |
---|
248 | |
---|
249 | # there is a missing header that manifests on 10.7 and less |
---|
250 | patchfiles-append patch-webkit2gtk-source-javascriptcore-jit-executableallocator-missingfcntl-h-older-systems.diff |
---|
251 | |
---|
252 | # add dep for newer ruby and spec this for build |
---|
253 | # https://trac.macports.org/ticket/52016 |
---|
254 | depends_build-append port:ruby25 |
---|
255 | configure.args-append -DRUBY_EXECUTABLE=${prefix}/bin/ruby2.5 |
---|
256 | |
---|
257 | # fix missing PRId64 definitions on systems |
---|
258 | # that don't define __STDC_FORMAT_MACROS by default |
---|
259 | # https://bugs.webkit.org/show_bug.cgi?id=156596 |
---|
260 | # https://trac.macports.org/ticket/52016 |
---|
261 | # also added defn for TARGET_OS_IOS to avoid innumerable warnings |
---|
262 | patchfiles-append patch-snowleopard-cmakelists-stdcformatmacros.diff |
---|
263 | |
---|
264 | # special case: fix build on 10.6 with macports-libstdc++ |
---|
265 | # contents of snowmath.h should someday become part of gcc6 cmath |
---|
266 | # TODO: remove this? |
---|
267 | if { ${configure.cxx_stdlib} eq "macports-libstdc++" && ${os.major} < 11 } { |
---|
268 | configure.cxxflags-append -D_GLIBCXX_USE_C99_MATH_TR1=1 |
---|
269 | configure.cxxflags-append -include ${filespath}/snowmath.h |
---|
270 | } |
---|
271 | } |
---|
272 | |
---|
273 | notes-append " |
---|
274 | If you are porting new software to use webkit2gtk on Apple systems,\ |
---|
275 | you will likely need to define BUILDING_GTK__ to get the correct\ |
---|
276 | behaviour from WebKitAvailability.h. |
---|
277 | " |
---|
278 | |
---|
279 | livecheck.type regex |
---|
280 | livecheck.url http://webkitgtk.org/releases/ |
---|
281 | livecheck.regex "webkitgtk-(\\d+\\.\\d*\[02468\](?:\\.\\d+)*)" |
---|