256 lines
7.6 KiB
Bash
256 lines
7.6 KiB
Bash
# Template file for 'webkit2gtk'
|
|
pkgname=webkit2gtk
|
|
version=2.38.3
|
|
revision=1
|
|
build_style=cmake
|
|
build_helper="gir"
|
|
configure_args="-DPORT=GTK -DUSE_LD_GOLD=OFF
|
|
-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)"
|
|
# 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 $(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 libatomic-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 WebKit2 browser engine"
|
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
|
license="LGPL-2.1-or-later, BSD-2-Clause"
|
|
homepage="https://webkitgtk.org/"
|
|
distfiles="https://webkitgtk.org/releases/webkitgtk-${version}.tar.xz"
|
|
checksum=41f001d1ed448c6936b394a9f20e4640eebf83a7f08262df28504f7410604a5a
|
|
make_check=no
|
|
|
|
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"
|
|
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*)
|
|
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
|
|
|
|
# extra validation
|
|
if [ "$build_option_sampling_profiler" -a -z "$build_option_jit" ]; then
|
|
broken="sampling_profiler requires JIT"
|
|
fi
|
|
|
|
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-50
|
|
(
|
|
cd webkit2gtk-40
|
|
configure_args="${configure_args} -DUSE_SOUP2=ON -DENABLE_WEBDRIVER=OFF" \
|
|
do_configure
|
|
)
|
|
|
|
(
|
|
cd webkit2gtk-50
|
|
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-50 && NINJA_STATUS="[3/3][%f/%t] " do_build)
|
|
}
|
|
|
|
post_install() {
|
|
(cd webkit2gtk-40 && do_install)
|
|
(cd webkit2gtk-50 && 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 WebKit2 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 WebKit2 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"
|
|
}
|
|
}
|
|
|
|
libwebkit2gtk50_package() {
|
|
depends="${depends}"
|
|
short_desc="GTK4 port of the WebKit2 browser engine"
|
|
pkg_install() {
|
|
vmove usr/libexec/webkit2gtk-5.0
|
|
vmove usr/lib/webkit2gtk-5.0
|
|
if [ "$build_option_gir" ]; then
|
|
vmove "usr/lib/girepository-1.0/*-5.0.typelib"
|
|
fi
|
|
vmove "usr/lib/*-5.0.so.*"
|
|
for file in $(find ${DESTDIR}/usr/share/locale -name "*-5.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
|
|
}
|
|
}
|
|
|
|
libwebkit2gtk50-devel_package() {
|
|
depends="gtk4-devel libsoup3-devel libwebkit2gtk50>=${version}_${revision}"
|
|
short_desc="GTK4 port of the WebKit2 browser engine - development files"
|
|
pkg_install() {
|
|
vmove usr/include/webkitgtk-5.0
|
|
vmove "usr/lib/pkgconfig/*-5.0.pc"
|
|
if [ "$build_option_gir" ]; then
|
|
vmove "usr/share/gir-1.0/*-5.0.gir"
|
|
fi
|
|
if [ "$build_option_gtk_doc" ]; then
|
|
vmove "usr/share/gtk-doc/html/*-5.0"
|
|
fi
|
|
vmove "usr/lib/*-5.0.so"
|
|
}
|
|
}
|