void-packages/srcpkgs/webkit2gtk/template
oreo639 4f34d26af0 webkit2gtk: remove webkit2gtk-common subpackage
webkit2gtk generates unique locale files for each version so the
common package is redundant.

The locale files also got installed to the wrong location in the
common package, i.e. /usr/share/locale/locale instead of
/usr/share/locale
2022-10-26 20:58:32 +02:00

255 lines
7.6 KiB
Bash

# Template file for 'webkit2gtk'
pkgname=webkit2gtk
version=2.38.1
revision=2
wrksrc="webkitgtk-${version}"
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')"
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=02e195b3fb9e057743b3364ee7f1eec13f71614226849544c07c32a73b8f1848
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"
}
}