blob: ffa2b75bdb15d1c751ca1c5742fc495c01f48b6b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Eric BĂ©langer <eric@archlinux.org>
# Contributor: taotieren <admin@taotieren.com>
pkgbase=webkit2gtk-hvml
pkgname=(webkit2gtk-{3,4}.0-hvml webkit2hbd)
pkgver=2.34.1
pkgrel=9
pkgdesc="Web content engine for GTK (HVML)"
url="https://hvml.fmsoft.cn/"
arch=(x86_64)
license=(custom)
provides=(${pkgname} 'webkithbd')
conflicts=(webkit2gtk 'webkithbd')
depends=(cairo fontconfig freetype2 libgcrypt glib2 gtk3 gtk4 harfbuzz harfbuzz-icu
icu libjpeg libsoup libsoup3 libxml2 zlib libpng sqlite atk libwebp at-spi2-core
libegl libgl libgles libwpe wpebackend-fdo libxslt libsecret libtasn1
enchant libx11 libxext libice libxt wayland libnotify hyphen openjpeg2
woff2 libsystemd bubblewrap libseccomp xdg-dbus-proxy gstreamer
gst-plugins-base-libs libmanette)
makedepends=(cmake ninja gtk-doc python ruby gobject-introspection
wayland-protocols systemd gst-plugins-bad gperf)
optdepends=('geoclue: Geolocation support'
'gst-plugins-good: media decoding'
'gst-plugins-bad: media decoding'
'gst-libav: nonfree media decoding'
'purc: The prime HVML interpreter for C Language.'
'purc-midnight-commander: A generic HVML renderer in text mode for development and debugging.'
'xguipro: xGUI (the X Graphics User Interface) Pro is a modern, cross-platform, and advanced HVML renderer which is based on tailored WebKit.')
# options=(debug)
options=(!strip !lto)
_date=20231116
_time=015630
_name=WebKitHBD-${pkgver}-${_date}-${_time}-Source
source=("https://files.fmsoft.cn/sources/${_name}.tar.xz")
sha256sums=('522aa2bd80db6c24bd8d7f9da424aed7243acede048ed2fbcd321c256f3a77f9')
# prepare() {
# cd webkitgtk-$pkgver
# }
build() {
export LDFLAGS="-L/lib64"
if test -n "$LD_LIBRARY_PATH"; then
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/lib64"
else
export LD_LIBRARY_PATH=/lib64
fi
# Produce minimal debug info: 4.3 GB of debug data makes the
# build too slow and is too much to package for debuginfod
CFLAGS+=' -g1'
CXXFLAGS+=' -g1'
sed -i '/#pragma once/i #include <cstdio>' ${_name}/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
sed -i '/#include <vector>/a #include <cstdint>' ${_name}/Source/ThirdParty/ANGLE/src/common/angleutils.h
sed -i '/#include <vector>/a #include <cstdint>' ${_name}/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
# webkit2gtk-3.0-hvml Using Gtk3 and Soup2
cmake -S ${_name} -B build-gtk3 -G Ninja \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_HVML_ATTRS=ON \
-DENABLE_GAMEPAD=OFF \
-DENABLE_INTROSPECTION=OFF \
-DUSE_SOUP2=OFF \
-DUSE_WPE_RENDERER=OFF \
-DUSE_LCMS=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LIBEXECDIR=lib \
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations -Wno-dangling-reference"
ninja -C build-gtk3
# webkit2gtk-4.0-hvml Using Gtk4.0 and Soup3
cmake -S ${_name} -B build-gtk4 -G Ninja \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_HVML_ATTRS=ON \
-DENABLE_GAMEPAD=OFF \
-DENABLE_INTROSPECTION=OFF \
-DUSE_SOUP3=ON \
-DUSE_WPE_RENDERER=OFF \
-DUSE_LCMS=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LIBEXECDIR=lib \
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations -Wno-dangling-reference"
ninja -C build-gtk4
# WebKit2HBD Using Minigui and Soup2
cmake -S ${_name} -B build-hbd -G Ninja \
-DPORT=HBD \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_HVML_ATTRS=ON \
-DENABLE_RSQL=OFF \
-DENABLE_NOTIFICATIONS=OFF \
-DENABLE_NETSCAPE_PLUGIN_API=OFF \
-DENABLE_PDFKIT_PLUGIN=OFF \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DUSE_SOUP2=ON \
-DENABLE_GAMEPAD=OFF \
-DENABLE_INTROSPECTION=OFF \
-DUSE_WPE_RENDERER=OFF \
-DUSE_LCMS=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LIBEXECDIR=lib \
-DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations -Wno-dangling-reference"
ninja -C build-hbd
}
package_webkit2gtk-3.0-hvml() {
depends+=(libwpe-1.0.so libWPEBackend-fdo-1.0.so)
provides+=(libjavascriptcoregtk-4.0.so libwebkit2gtk-4.0.so)
DESTDIR="${pkgdir}" ninja -C build-gtk3.0 install
rm -r "$pkgdir/usr/bin"
cd ${_name}
find Source -name 'COPYING*' -or -name 'LICENSE*' -print0 | sort -z |
while IFS= read -d $'\0' -r _f; do
echo "### $_f ###"
cat "$_f"
echo
done |
install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
package_webkit2gtk-4.0-hvml() {
depends+=(libwpe-1.0.so libWPEBackend-fdo-1.0.so)
provides+=(libjavascriptcoregtk-4.0.so libwebkit2gtk-4.0.so)
DESTDIR="${pkgdir}" ninja -C build-gtk4.0 install
rm -r "$pkgdir/usr/bin"
cd ${_name}
find Source -name 'COPYING*' -or -name 'LICENSE*' -print0 | sort -z |
while IFS= read -d $'\0' -r _f; do
echo "### $_f ###"
cat "$_f"
echo
done |
install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
package_webkit2hbd() {
depends+=(libwpe-1.0.so libWPEBackend-fdo-1.0.so)
provides+=(libjavascriptcoregtk-4.0.so libwebkit2gtk-4.0.so)
DESTDIR="${pkgdir}" ninja -C build-hbd install
rm -r "$pkgdir/usr/bin"
cd ${_name}
find Source -name 'COPYING*' -or -name 'LICENSE*' -print0 | sort -z |
while IFS= read -d $'\0' -r _f; do
echo "### $_f ###"
cat "$_f"
echo
done |
install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
# vim:set sw=2 et:
|