/
template
170 lines (145 loc) · 5.81 KB
/
template
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
170
# Template file for 'icecat'
pkgname=icecat
version=60.7.0
revision=2
build_helper="rust"
hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
cargo llvm clang rust cbindgen"
makedepends="gtk+-devel hunspell-devel libXt-devel libatomic-devel
libevent-devel libnotify-devel libvpx5-devel nss-devel rust-std sqlite-devel
$(vopt_if alsa 'alsa-lib-devel') $(vopt_if dbus 'dbus-glib-devel')
$(vopt_if gtk3 'gtk+3-devel') $(vopt_if pulseaudio 'pulseaudio-devel')
$(vopt_if startup_notification 'startup-notification-devel')
$(vopt_if xscreensaver 'libXScrnSaver-devel') $(vopt_if sndio 'sndio-devel')"
depends="desktop-file-utils hicolor-icon-theme nss>=3.19"
short_desc="GNU version of the Firefox browser"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="MPL-1.1, GPL-2.0-or-later, LGPL-2.1-or-later"
homepage="https://www.gnu.org/software/${pkgname}/"
distfiles="${GNU_SITE}/${pkgname}/${version}/${pkgname}-${version}-gnu1.tar.bz2"
checksum=6873d55b13e2d95ede3bf5bb59769179e91b1c4e05d8538d1576f18c9a6bb827
lib32disabled=yes
build_options="alsa dbus gtk3 pulseaudio startup_notification sndio xscreensaver"
build_options_default="alsa dbus gtk3 pulseaudio startup_notification sndio xscreensaver"
case $XBPS_TARGET_MACHINE in
armv6*)
broken="required NEON extensions are not supported on armv6"
;;
ppc64*) ;;
ppc*) broken="ftbfs in several places" ;;
esac
CXXFLAGS="-Wno-class-memaccess -Wno-unused-function"
if [ "$XBPS_WORDSIZE" -eq 32 ]; then
nodebug=yes
fi
# we need this because cargo verifies checksums of all files in vendor
# crates when it builds and gives us no way to override or update the
# file sanely... so just clear out the file list
_clear_vendor_checksums() {
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
}
post_extract() {
case "$XBPS_TARGET_MACHINE" in
*-musl)
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
;;
esac
# Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: This is for Void Linux use ONLY.
echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: This is for Void Linux use ONLY.
echo -n "cd894504-7a2a-4263-abff-ff73ee89ffca" > mozilla-api-key
}
post_patch() {
_clear_vendor_checksums cssparser
}
do_build() {
local triplet
cp ${FILESDIR}/mozconfig .mozconfig
case "$XBPS_TARGET_MACHINE" in
*-musl)
echo "ac_add_options --disable-jemalloc" >>.mozconfig
echo "ac_add_options --disable-gold" >>.mozconfig
echo "ac_add_options --enable-release" >>.mozconfig
;;
esac
case "$XBPS_TARGET_MACHINE" in
x86_64*|i686*|arm*)
echo "ac_add_options --disable-elf-hack" >>.mozconfig
;;
esac
if [ "$CROSS_BUILD" ]; then
BINDGEN_INCLUDE_FLAGS=$( $CPP -x c++ -v /dev/null -o /dev/null 2>&1 | \
sed -n '/#include <...> search starts here:/,/End of search list./p' | \
sed '1,1d;$d' | sed 's/^ /-I/' | paste -s )
export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
export HOST_CC="${CC_host}"
export TARGET_CC="${CC}"
export HOST_CFLAGS="${XBPS_CFLAGS}"
export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
echo "ac_cv_sqlite_secure_delete=yes" >> .mozconfig
echo "ac_cv_sqlite_threadsafe=yes" >> .mozconfig
echo "ac_cv_sqlite_enable_fts3=yes" >> .mozconfig
echo "ac_cv_sqlite_dbstat_vtab=yes" >> .mozconfig
echo "ac_cv_sqlite_enable_unlock_notify=yes" >> .mozconfig
echo "ac_cv_prog_hostcxx_works=1" >> .mozconfig
echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
else
echo "ac_add_options --target=$XBPS_TRIPLET" >>.mozconfig
echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
fi
mkdir -p third_party/rust/libloading/.deps
case "$XBPS_TARGET_MACHINE" in
i686*)
echo "ac_add_options --disable-debug-symbols" >>.mozconfig
export CFLAGS+=" -D_FILE_OFFSET_BITS=64"
export CXXFLAGS+=" -D_FILE_OFFSET_BITS=64"
;;
armv7*)
export CFLAGS+=" -mfpu=neon -Wno-psabi"
export CXXFLAGS+=" -mfpu=neon -Wno-psabi"
;;
esac
export LDFLAGS+=" -Wl,-rpath=/usr/lib/icecat"
if [ "$SOURCE_DATE_EPOCH" ]; then
export MOZ_BUILD_DATE=$(date --date "@$SOURCE_DATE_EPOCH" "+%Y%m%d%H%M%S")
fi
export MOZ_MAKE_FLAGS="${makejobs}"
export MOZ_NOSPAM=1
export MOZ_MAKE_FLAGS="${makejobs}"
export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
cat >>.mozconfig <<EOF
ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key"
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
ac_add_options $(vopt_enable alsa)
ac_add_options $(vopt_enable sndio)
ac_add_options $(vopt_enable dbus)
ac_add_options $(vopt_enable dbus necko-wifi)
ac_add_options $(vopt_enable pulseaudio)
ac_add_options $(vopt_enable startup_notification startup-notification)
EOF
./mach build
}
do_install() {
DESTDIR="${DESTDIR}" ./mach install
vinstall ${FILESDIR}/vendor.js 644 usr/lib/icecat/defaults/pref
vinstall ${FILESDIR}/icecat.desktop 644 usr/share/applications
for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
usr/share/icons/hicolor/${i}/apps icecat.png
done
vinstall ${wrksrc}/browser/branding/official/default256.png 644 \
usr/share/pixmaps icecat.png
# Use system-provided dictionaries
rm -rf ${DESTDIR}/usr/lib/icecat/{dictionaries,hyphenation}
ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/icecat/dictionaries
ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/icecat/hyphenation
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf icecat ${DESTDIR}/usr/lib/icecat/icecat-bin
# Remove the development files - noone uses them and the subpkg was broken
rm -rf ${DESTDIR}/usr/{include,lib/icecat-devel,share/idl}
}