Magellan Linux

Contents of /smage/branches/alx08x-unstable/extras/firefox/firefox-124.0.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18169 - (show annotations) (download)
Mon Apr 8 15:13:13 2024 UTC (2 months ago) by niro
File size: 10672 byte(s)
-release branches/alx08x-unstable
1 # $Id$
2
3 PNAME="firefox"
4 PVER="124.0.2"
5 PBUILD="r1"
6
7 PCAT="net-www"
8
9 DESCRIPTION="Firefox is Mozilla's award-winning next generation web browser."
10 HOMEPAGE="http://www.mozilla.org/products/firefox/"
11
12 PROVIDE="virtual/webbrowser"
13
14 DEPEND=">= x11-libs/libX11-1.8
15 >= x11-libs/libXdamage-1.1
16 >= x11-libs/libXext-1.3
17 >= x11-libs/libXfixes-6
18 >= x11-libs/libXrandr-1.5
19 >= x11-libs/libxcb-1.16
20 >= x11-libs/libXcomposite-0.4
21 >= x11-libs/libXt-1.3
22 >= sys-libs/zlib-1.3
23 >= sys-libs/libdbus-1.14
24 >= sys-apps/dbus-1.14
25 >= dev-libs/icu-74.2
26 >= media-libs/fontconfig-2.14
27 >= media-libs/freetype-2.13
28 >= virtual/libjpeg
29 >= media-libs/libpng-1.6
30 >= media-libs/alsa-lib-1.2
31 >= media-libs/libvpx-1.13
32 >= media-libs/dav1d-1.4
33 >= media-sound/libpulse-17
34 >= dev-libs/glib2-2.78
35 >= dev-libs/at-spi2-core-2.50
36 >= virtual/unzip
37 >= x11-libs/pango-1.50
38 >= x11-libs/cairo-1.18
39 >= x11-libs/gdk-pixbuf-2.42
40 >= x11-libs/gtk3+-3.24
41 >= dev-libs/nspr-4.35
42 >= dev-libs/nss-3.98
43 >= media-fonts/corefonts-2
44 >= dev-libs/libffi-3.4
45 >= x11-libs/pixman-0.42
46 >= sys-libs/libgcc-13.2
47 >= sys-libs/libstdc++-13.2"
48 # >= x11-libs/startup-notification-0.12
49 # >= app-text/hunspell-1.3
50
51 ALX_DEV_DEPEND=">= dev-libs/nspr-dev-4.35
52 >= dev-libs/nss-dev-3.98
53 >= sys-libs/zlib-dev-1.3
54 >= sys-apps/dbus-dev-1.14
55 >= dev-libs/icu-dev-74.2
56 >= media-libs/fontconfig-dev-2.14
57 >= media-libs/freetype-dev-2.13
58 >= virtual/libjpeg-dev
59 >= media-libs/libpng-dev-1.6
60 >= media-libs/alsa-lib-dev-1.2
61 >= media-libs/libvpx-dev-1.13
62 >= media-libs/dav1d-dev-1.4
63 >= dev-libs/glib2-dev-2.78
64 >= dev-libs/at-spi2-core-dev-2.50
65 >= x11-libs/pango-dev-1.50
66 >= x11-libs/cairo-dev-1.18
67 >= x11-libs/gdk-pixbuf-dev-2.42
68 >= x11-libs/gtk3+-dev-3.24
69 >= dev-libs/libffi-dev-3.4
70 >= x11-libs/libX11-dev-1.8
71 >= x11-libs/libXdamage-dev-1.1
72 >= x11-libs/libXext-dev-1.3
73 >= x11-libs/libXfixes-dev-6
74 >= x11-libs/libXrandr-dev-1.5
75 >= x11-libs/libxcb-dev-1.16
76 >= x11-libs/pixman-dev-0.42
77 >= sys-libs/libgcc-dev-13.2
78 >= sys-libs/libstdc++-dev-13.2
79 >= x11-libs/libdrm-dev-2.4.118
80 >= media-libs/mesa-dev-23.2
81 >= media-sound/libpulse-dev-17
82 >= net-libs/nodejs-dev-21.3"
83
84 SDEPEND=">= virtual/xineramaproto
85 >= virtual/compositeproto
86 >= virtual/pkgconfig
87 >= sys-dev/autoconf-10
88 >= sys-dev/automake-10
89 >= virtual/sed
90 >= app-arch/zip-3
91 >= dev-lang/yasm-1.3
92 >= dev-lang/nasm-2.16
93 >= dev-lang/python3-3.11
94 >= dev-lang/rust-1.74
95 >= dev-util/cargo-0.75
96 >= dev-util/cbindgen-0.26
97 >= sys-dev/clang-17
98 >= sys-dev/llvm-17
99 >= media-libs/mesa-23.2
100 >= net-libs/nodejs-21.2
101 ${ALX_DEV_DEPEND}"
102
103 SRCFILE="firefox-${PVER}.source.tar.xz"
104 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
105
106 sminclude mozilla mtools cleanutils python3 gtk2
107
108 SRC_URI=(
109 http://ftp.mozilla.org/pub/${PNAME}/releases/${PVER}/source/${SRCFILE}
110 mirror://mozilla-firefox/${SRCFILE}
111 mirror://mozilla-firefox/menu/firefox.png
112 mirror://mozilla-firefox/menu/firefox.desktop
113 mirror://mozilla-firefox/${PNAME}-121.0-icu74.patch
114 )
115
116 # exclude betas (b), plugins (p), esr (e) and funnelcake (c) versions
117 UP2DATE="updatecmd http://ftp.mozilla.org/pub/${PNAME}/releases/ | grep '/releases/[0-9]' | sed 's:.*/releases/\(.*\)/:\1:' | grep -v '[b|c|e|p]' | upsort_pipe"
118
119 export MOZ_PHOENIX=1
120
121 # set by configure (plus USE_AUTOCONF=1), but useful for NSPR
122 export MOZILLA_CLIENT=1
123 export BUILD_OPT=1
124 export NO_STATIC_LIB=1
125 export USE_PTHREADS=1
126
127 # do not use desktop notifications
128 # see: https://bugzilla.mozilla.org/show_bug.cgi?id=1445193
129 export MOZ_NOSPAM=1
130
131 # now strip optimization from CFLAGS so it doesn't end up in the
132 # compile string
133 export CFLAGS="${CFLAGS/-O*/}"
134 export CXXFLAGS="${CFLAGS}"
135
136 # needed to build without warnings on gcc-3
137 export CXXFLAGS="${CXXFLAGS} -Wno-deprecated"
138
139 # enforce pic and pie
140 export CFLAGS="${CFLAGS} -fPIC -pie"
141 export CXXFLAGS="${CXXFLAGS} -fPIC -pie"
142
143 # setup branding
144 # nightly, aurora, official, unofficial, magellan
145 __MOZ_BRANDING="magellan"
146
147 src_prepare()
148 {
149 munpack ${SRCFILE} || die
150 cd ${SRCDIR}
151
152 # patches, patches, patches
153 # ftbfs against icu-74.x
154 mpatch ${PNAME}-121.0-icu74.patch || die
155
156 # use nsbrowser plugin dir
157 # 32bit pathes
158 sed -i "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" xpcom/io/nsAppFileLocationProvider.cpp || die
159 # 64bit pathes
160 sed -i "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" xpcom/io/nsAppFileLocationProvider.cpp || die
161
162 # don't exit with error when some libs are missing which we have in system
163 sed -i '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' browser/installer/Makefile.in || die
164
165 # don't error out when there's no files to be removed
166 sed -i 's@\(xargs rm\)$@\1 -f@' toolkit/mozapps/installer/packager.mk || die
167
168 if [[ ${__MOZ_BRANDING} = magellan ]]
169 then
170 cp -R browser/branding/unofficial browser/branding/magellan || die
171 sed -i -e "s:Mozilla Developer Preview:Mozilla Unofficial:g" \
172 -e "s:Nightly:Mozilla Unofficial:g" \
173 browser/branding/magellan/branding.nsi \
174 browser/branding/magellan/locales/en-US/brand.ftl \
175 browser/branding/magellan/locales/en-US/brand.properties || die
176 fi
177 }
178
179 src_compile()
180 {
181 cd ${SRCDIR}
182
183 # setup .mozconfig
184 cp browser/config/mozconfig .mozconfig || die
185
186 # setup branding
187 case ${__MOZ_BRANDING} in
188 nightly|aurora|unofficial|magellan)
189 mozconf_add --with-branding=browser/branding/${__MOZ_BRANDING}
190 ;;
191 official)
192 mozconf_add --enable-official-branding
193 ;;
194 esac
195
196 # where shall the files go ?
197 mozconf_add --prefix=/usr
198 mozconf_add --libdir=/usr/$(mlibdir)
199 #mozconf_add --with-default-mozilla-five-home=/usr/$(mlibdir)/firefox
200
201 # mozilla uses --host instead of --build and --target instead of host
202 mozconf_add --host="${CHOST}"
203 mozconf_add --target="${CHOST}"
204
205 # set optimization level based on CFLAGS
206 if [[ ${ARCH} = x86_64 ]]
207 then
208 # opts may cause segfaults on 64bit arches
209 mozconf_add --enable-optimize=-O1
210 export CFLAGS="${CFLAGS} -fPIC"
211 export CXXFLAGS="${CXXFLAGS} -fPIC"
212 else
213 mozconf_add --enable-optimize=-O2
214 fi
215
216 # use clang linker lld
217 mozconf_add --enable-linker=lld
218
219 # build a release version with the release update channel
220 mozconf_add --enable-release
221 mozconf_add --enable-update-channel=release
222 # rely on our package system
223 mozconf_add --disable-updater
224
225 # hardening
226 mozconf_add --enable-hardening
227
228 # allow addon loading like language packs
229 mozconf_add --with-unsigned-addon-scopes=app,system
230 mozconf_add --allow-addon-sideload
231
232 # enables SIMD optimization in the shipped encoding_rs crate.
233 mozconf_add --enable-rust-simd
234
235 # want system jpeg, png, zlib, icu, event, vpx, nspr and nss
236 # system jpeg is jpeg-turbo and requires yasm to build
237 mozconf_add --with-system-jpeg
238 # system png is missing apng support
239 #mozconf_add --with-system-png
240 mozconf_add --with-system-zlib
241 mozconf_add --with-system-nspr
242 mozconf_add --with-system-nss
243 #mozconf_add --enable-system-hunspell
244 mozconf_add --enable-system-ffi
245 mozconf_add --enable-system-pixman
246 mozconf_add --with-system-icu
247 mozconf_add --enable-intl-api
248 mozconf_add --with-system-libvpx
249 #mozconf_add --enable-system-cairo
250 mozconf_add --enable-av1
251
252 # available gui toolkits, choose one:
253 # x11 only
254 mozconf_add --enable-default-toolkit=cairo-gtk3-x11-only
255 # wayland
256 #mozconf_add --enable-default-toolkit=cairo-gtk3-wayland-only
257 # wayland+x11
258 #mozconf_add --enable-default-toolkit=cairo-gtk3-x11-wayland
259
260 # disable debug build && enable stripping
261 mozconf_add --disable-debug
262 mozconf_add --disable-debug-symbols
263 mozconf_add --disable-tests
264 mozconf_add --enable-strip
265
266 # # enable default extensions
267 # mozconf_add --enable-extensions=default
268
269 # no crashreporter
270 mozconf_add --disable-crashreporter
271
272 # enable startup-notification
273 #mozconf_add --enable-startup-notification
274 # enable dbus
275 mozconf_add --enable-dbus
276 # pulseaudio support
277 mozconf_add --enable-pulseaudio
278
279 # no system-wide wasm
280 mozconf_add --without-wasm-sandboxed-libraries
281
282 # # resolve multiple --enable-extensions down to one
283 # rebuild_extension_list
284
285 # allow more open files
286 ulimit -n 4096
287
288 # shell export fixes some bugs in a chroot environment
289 # see: http://comments.gmane.org/gmane.linux.lfs.beyond.support/47450
290 MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL}" ./mach build --verbose || die
291 }
292
293 src_install()
294 {
295 cd ${SRCDIR}
296
297 # install
298 #SHELL="${SHELL}" mmake -j1 -f client.mk DESTDIR=${BINDIR} install || die
299 SHELL="${SHELL}" DESTDIR=${BINDIR} ./mach install || die
300
301 # fix permissions
302 mchown -R root:root /usr/$(mlibdir)/firefox || die
303
304 # init our pref file
305 msetpref --init || die
306
307 # vendor information
308 msetpref general.useragent.vendor Magellan-Linux || die
309
310 # disable app.update in default config
311 msetpref app.update.auto false || die
312 msetpref app.update.enabled false || die
313 msetpref app.update.autoInstallEnabled false || die
314
315 # use system-colors
316 msetpref browser.display.use_system_colors true || die
317 # disable default-browser check
318 msetpref browser.shell.checkDefaultBrowser false || die
319
320 # use LANG environment variable to choose locale
321 #msetpref intl.locale.matchOS true || die
322 # msetpref will replace NULL with ""
323 msetpref intl.locale.requested NULL || die
324
325 # set network.trr.mode to 5 (disabled) to disable DNS-over-HTTPs
326 msetpref network.trr.mode 5 || die
327
328 # disable push remote administration from mozilla
329 msetpref app.normandy.enabled false || die
330
331 # enable all extensions in system extension dir by default
332 msetpref extensions.autoDisableScopes 0 || die
333
334 # menu entries
335 minstallpixmap firefox.png || die
336 minstalldir /usr/share/applications || die
337 minstallfile -s firefox.desktop /usr/share/applications || die
338
339 # now move all plugins to /usr/lib/nsbrowser/plugins
340 minstalldir /usr/$(mlibdir)/nsbrowser/plugins || die
341 if [[ -d ${BINDIR}/usr/$(mlibdir)/firefox/plugins ]]
342 then
343 mcopy -a ${BINDIR}/usr/$(mlibdir)/firefox/plugins/\* /usr/$(mlibdir)/nsbrowser/plugins || die
344 mdelete -r /usr/$(mlibdir)/firefox/plugins || die
345 fi
346 # and symlink them (we need a defined location for the plugins of all browsers)
347 mlink /usr/$(mlibdir)/nsbrowser/plugins /usr/$(mlibdir)/firefox/plugins || die
348
349 # fix duplicate binary
350 #https://bugzilla.mozilla.org/show_bug.cgi?id=658850
351 mlink firefox /usr/$(mlibdir)/firefox/firefox-bin || die
352
353 # environment
354 minstalldir /etc/env.d || die
355 MCONFIG="/etc/env.d/90firefox"
356 mclearconfig || die
357 maddconfig "LDPATH=/usr/$(mlibdir)/firefox" || die
358 }
359
360 preinstall()
361 {
362 # remove old 90mozilla-firefox env-file
363 if [[ -f ${MROOT}/etc/env.d/90mozilla-firefox ]]
364 then
365 rm ${MROOT}/etc/env.d/90mozilla-firefox
366 env-rebuild
367 fi
368 }
369
370 postinstall()
371 {
372 # not supported by alx
373 #fdo-mime_update_desktop_db
374 gtk2_update_icon_cache
375 }
376
377 postremove()
378 {
379 # not supported by alx
380 #fdo-mime_update_desktop_db
381 gtk2_update_icon_cache
382 }