# Template file for 'webkit2gtk' pkgname=webkit2gtk version=2.42.5 revision=1 build_style=cmake build_helper="gir" configure_args="-DPORT=GTK -DCMAKE_LINKER=${XBPS_CROSS_TRIPLET}-gcc -DCMAKE_SKIP_RPATH=ON -DENABLE_JOURNALD_LOG=OFF -DUSE_WOFF2=ON -DUSE_WPE_RENDERER=ON -DENABLE_MINIBROWSER=$(vopt_if minibrowser ON OFF) -DENABLE_JIT=$(vopt_if jit ON OFF) -DENABLE_C_LOOP=$(vopt_if jit OFF ON) -DENABLE_INTROSPECTION=$(vopt_if gir ON OFF) -DENABLE_DOCUMENTATION=$(vopt_if gtk_doc ON OFF) -DENABLE_WAYLAND_TARGET=$(vopt_if wayland ON OFF) -DENABLE_X11_TARGET=$(vopt_if x11 ON OFF) -DENABLE_SAMPLING_PROFILER=$(vopt_if sampling_profiler ON OFF) -DENABLE_BUBBLEWRAP_SANDBOX=$(vopt_if bubblewrap ON OFF) -DUSE_JPEGXL=OFF" # Don't remove which from hostmakedepends # Otherwise, they invoke /usr/bin/ccache /usr/lib/ccache/bin/$CC hostmakedepends="perl python3 pkg-config gperf flex ruby gettext glib-devel geoclue2 libharfbuzz which libpsl unifdef $(vopt_if gtk_doc 'gi-docgen') $(vopt_if wayland 'wayland-devel libxml2-devel')" makedepends="at-spi2-core-devel libjpeg-turbo-devel libpng-devel harfbuzz-devel gst-plugins-base1-devel gst-plugins-bad1-devel sqlite-devel libsoup-devel libsoup3-devel libxslt-devel gnutls-devel icu-devel enchant2-devel dbus-glib-devel libwebp-devel gtk+3-devel gtk4-devel libgudev-devel libsecret-devel ruby-devel geoclue2-devel libnotify-devel hyphen-devel woff2-devel freetype-devel libopenjpeg2-devel libavif-devel qt5-devel libmanette-devel libwpe-devel wpebackend-fdo-devel libgcrypt-devel libnuspell-devel libpsl-devel $(vopt_if x11 libXt-devel) $(vopt_if wayland 'MesaLib-devel libxkbcommon-devel wayland-devel wayland-protocols')" depends="gst-plugins-good1" short_desc="GTK+3 port of the WebKit browser engine" maintainer="Orphaned " license="LGPL-2.1-or-later, BSD-2-Clause" homepage="https://webkitgtk.org/" distfiles="https://webkitgtk.org/releases/webkitgtk-${version}.tar.xz" checksum=b64278c1f20b8cfdbfb5ff573c37d871aba74a1db26d9b39f74e8953fe61e749 make_check=no # TODO replaces="webkit2gtk-common>0" build_options="gir wayland x11 bubblewrap jit sampling_profiler minibrowser clang lto gtk_doc" build_options_default="gir wayland x11 bubblewrap minibrowser" desc_option_bubblewrap="Enable bubblewrap sandbox" desc_option_jit="JavaScript JIT (Only some architectures)" desc_option_sampling_profiler="Sampling profiler support (JIT + glibc only)" desc_option_minibrowser="Build the minibrowser" desc_option_clang="Use Clang to build" desc_option_lto="Enable ThinLTO (needs Clang)" export CFLAGS="-DNDEBUG" export CXXFLAGS="$CFLAGS" # WebKitCCache.cmake set this variable # include_file_mtime was not enabled to avoid a race, # but this is run under our control export CCACHE_SLOPPINESS=time_macros,include_file_mtime if [ -z "$CROSS_BUILD" ]; then build_options_default+=" gtk_doc" fi # detection + runtime if [ "$build_option_bubblewrap" ]; then hostmakedepends+=" bubblewrap xdg-dbus-proxy" makedepends+=" libseccomp-devel" depends+=" bubblewrap xdg-dbus-proxy" configure_args+=" -DBWRAP_EXECUTABLE=/usr/bin/bwrap -DDBUS_PROXY_EXECUTABLE=/usr/bin/xdg-dbus-proxy" fi if [ "$build_option_lto" -a -z "$build_option_clang" ]; then broken="LTO needs Clang" fi if [ "$build_option_clang" ]; then hostmakedepends+=" clang lld" configure_args+=" -DUSE_LD_LLD=ON" nocross=yes fi if [ "$build_option_lto" ]; then configure_args+=" -DLTO_MODE=thin" fi # only a few platform support JIT case "$XBPS_TARGET_MACHINE" in aarch64*|x86_64*|riscv64*) build_options_default+=" jit" if [ "$XBPS_TARGET_LIBC" = "glibc" ]; then build_options_default+=" sampling_profiler" elif [ "$build_option_sampling_profiler" ]; then broken="sampling_profiler is only supported on glibc" fi ;; i686*) # JIT requires SSE2 so disabled by default # it's also currently broken if [ "$build_option_jit" ]; then broken="OffsetExtractor: No magic values found." fi ;; *) if [ "$build_option_jit" ]; then broken="JIT is not supported on ${XBPS_TARGET_MACHINE}" fi ;; esac case "$XBPS_TARGET_MACHINE" in armv6*) # Disable ANGLE on armv6 for now. # Requires support for lock-free atomics (armv6k+). configure_args+=" -DENABLE_WEBGL=OFF" ;; esac # extra validation if [ "$build_option_sampling_profiler" -a -z "$build_option_jit" ]; then broken="sampling_profiler requires JIT" fi _depends="${depends}" pre_configure() { if [ "$build_option_clang" ]; then export CC=clang export CXX=clang++ fi # the debug builds are huge and cause problems when debugging export CFLAGS="${CFLAGS/-g/-g1}" export CXXFLAGS="${CXXFLAGS/-g/-g1}" if [ "$XBPS_WORDSIZE" = "32" ]; then export LDFLAGS+=" -Wl,--no-keep-memory" fi # the above is not enough for 32-bit ppc and debug case "$XBPS_TARGET_MACHINE" in ppc64*) ;; ppc*) export CFLAGS="${CFLAGS/-O2/-Os}" export CXXFLAGS="${CXXFLAGS/-O2/-Os}" ;; esac } post_configure() { mkdir -p webkit2gtk-40 webkit2gtk-60 ( cd webkit2gtk-40 configure_args="${configure_args} -DUSE_SOUP2=ON -DENABLE_WEBDRIVER=OFF" \ do_configure ) ( cd webkit2gtk-60 configure_args="${configure_args} -DUSE_GTK4=ON -DENABLE_WEBDRIVER=OFF" \ do_configure ) } post_build() { (cd webkit2gtk-40 && NINJA_STATUS="[2/3][%f/%t] " do_build) (cd webkit2gtk-60 && NINJA_STATUS="[3/3][%f/%t] " do_build) } post_install() { (cd webkit2gtk-40 && do_install) (cd webkit2gtk-60 && do_install) vlicense Source/WebCore/LICENSE-APPLE vlicense Source/WebCore/LICENSE-LGPL-2.1 vlicense Source/WebCore/LICENSE-LGPL-2 } webkit2gtk-devel_package() { depends="gtk+3-devel libsoup-devel ${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" pkg_install() { vmove usr/include/webkitgtk-4.0 vmove "usr/lib/pkgconfig/*-4.0.pc" if [ "$build_option_gir" ]; then vmove "usr/share/gir-1.0/*-4.0.gir" fi if [ "$build_option_gtk_doc" ]; then vmove "usr/share/gtk-doc/html/*-4.0" fi vmove "usr/lib/*-4.0.so" } } libwebkit2gtk41_package() { depends="${_depends}" short_desc="GTK+3 port of the WebKit browser engine (soup3)" pkg_install() { vmove usr/bin/WebKitWebDriver vmove usr/libexec/webkit2gtk-4.1 vmove usr/lib/webkit2gtk-4.1 if [ "$build_option_gir" ]; then vmove "usr/lib/girepository-1.0/*-4.1.typelib" fi vmove "usr/lib/*-4.1.so.*" for file in $(find ${DESTDIR}/usr/share/locale -name "*-4.1.mo"); do vmove ${file/$DESTDIR/} done vlicense Source/WebCore/LICENSE-APPLE vlicense Source/WebCore/LICENSE-LGPL-2.1 vlicense Source/WebCore/LICENSE-LGPL-2 } } libwebkit2gtk41-devel_package() { depends="gtk+3-devel libsoup3-devel libwebkit2gtk41>=${version}_${revision}" short_desc="GTK+3 port of the WebKit browser engine (soup3) - development files" pkg_install() { vmove usr/include/webkitgtk-4.1 vmove "usr/lib/pkgconfig/*-4.1.pc" if [ "$build_option_gir" ]; then vmove "usr/share/gir-1.0/*-4.1.gir" fi if [ "$build_option_gtk_doc" ]; then vmove "usr/share/gtk-doc/html/*-4.1" fi vmove "usr/lib/*-4.1.so" } } libwebkitgtk60_package() { depends="${_depends}" short_desc="GTK4 port of the WebKit browser engine" pkg_install() { vmove usr/libexec/webkitgtk-6.0 vmove usr/lib/webkitgtk-6.0 if [ "$build_option_gir" ]; then vmove "usr/lib/girepository-1.0/*-6.0.typelib" fi vmove "usr/lib/*-6.0.so.*" for file in $(find ${DESTDIR}/usr/share/locale -name "*-6.0.mo"); do vmove ${file/$DESTDIR/} done vlicense Source/WebCore/LICENSE-APPLE vlicense Source/WebCore/LICENSE-LGPL-2.1 vlicense Source/WebCore/LICENSE-LGPL-2 } } libwebkitgtk60-devel_package() { depends="gtk4-devel libsoup3-devel libwebkitgtk60>=${version}_${revision}" short_desc="GTK4 port of the WebKit browser engine - development files" pkg_install() { vmove usr/include/webkitgtk-6.0 vmove "usr/lib/pkgconfig/*-6.0.pc" if [ "$build_option_gir" ]; then vmove "usr/share/gir-1.0/*-6.0.gir" fi if [ "$build_option_gtk_doc" ]; then vmove "usr/share/gtk-doc/html/*-6.0" fi vmove "usr/lib/*-6.0.so" } }