Magellan Linux

Contents of /smage/trunk/extras/firefox/firefox-80.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15440 - (show annotations) (download)
Wed Sep 2 11:42:16 2020 UTC (3 years, 7 months ago) by niro
File size: 10256 byte(s)
auto added: ver bump to 80.0-r1
1 # $Id$
2
3 PNAME="firefox"
4 PVER="80.0"
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/libXrender-0.9
15 >= x11-libs/libXcomposite-0.4
16 >= x11-libs/libXt-1
17 >= x11-libs/libXmu-1
18 >= dev-libs/expat-2
19 >= sys-libs/zlib-1.2
20 >= sys-libs/dbus-libs-1.12
21 >= dev-libs/dbus-glib-0.110
22 >= dev-libs/icu-67.1
23 >= media-libs/fontconfig-2.11
24 >= virtual/libjpeg
25 >= media-libs/libpng-1.5
26 >= media-libs/alsa-lib-1.1
27 >= media-libs/libvpx-1.9
28 >= media-libs/dav1d-0.7
29 >= dev-libs/glib2-2.64
30 >= dev-libs/libidl-0.8.14
31 >= virtual/unzip
32 >= x11-libs/pango-1.44
33 >= x11-libs/cairo-1.16
34 >= x11-libs/gtk2+-2.24
35 >= x11-libs/gtk3+-3.24
36 >= x11-libs/libnotify-0.7
37 >= dev-libs/nspr-4.27
38 >= dev-libs/nss-3.55
39 >= media-fonts/corefonts-2
40 >= dev-db/sqlite-3.32
41 >= dev-libs/libffi-3.3
42 >= x11-libs/pixman-0.40
43 >= sys-libs/libatomic-8.3
44 >= sys-libs/libgcc-8.3
45 >= sys-libs/libstdc++-8.3
46 >= net-libs/nodejs-14.9"
47 # >= x11-libs/startup-notification-0.12
48 # >= app-text/hunspell-1.3
49
50 ALX_DEV_DEPEND=">= dev-libs/nspr-dev-4.27
51 >= dev-libs/nss-dev-3.55
52 >= dev-libs/expat-dev-2
53 >= sys-libs/zlib-dev-1.2
54 >= sys-apps/dbus-dev-1.12
55 >= dev-libs/icu-dev-67.1
56 >= media-libs/fontconfig-dev-2.11
57 >= virtual/libjpeg-dev
58 >= media-libs/libpng-dev-1.5
59 >= media-libs/alsa-lib-dev-1.1
60 >= media-libs/libvpx-dev-1.9
61 >= media-libs/dav1d-dev-0.7
62 >= dev-libs/glib2-dev-2.64
63 >= dev-libs/libidl-dev-0.8.14
64 >= app-arch/unzip-dev-6
65 >= x11-libs/pango-dev-1.44
66 >= x11-libs/cairo-dev-1.16
67 >= x11-libs/gtk2+-dev-2.24
68 >= x11-libs/gtk3+-dev-3.24
69 >= x11-libs/libnotify-dev-0.7
70 >= dev-db/sqlite-dev-3.32
71 >= dev-libs/libffi-dev-3.3
72 >= x11-libs/pixman-dev-0.40
73 >= sys-libs/libatomic-dev-8.3
74 >= sys-libs/libgcc-dev-8.3
75 >= sys-libs/libstdc++-dev-8.3
76 >= media-libs/mesa-dev-20.1
77 >= media-sound/libpulse-dev-13
78 >= net-libs/nodejs-dev-14.9"
79
80 SDEPEND=">= virtual/xineramaproto
81 >= virtual/compositeproto
82 >= dev-util/pkgconfig-0.25
83 >= sys-dev/autoconf-5
84 >= sys-dev/automake-4
85 >= virtual/sed
86 >= app-arch/zip-3
87 >= dev-lang/yasm-1.3
88 >= dev-lang/nasm-2.15
89 >= dev-lang/python-2.7
90 >= dev-lang/python3-3.7
91 >= dev-lang/rust-1.45
92 >= dev-util/cargo-0.39
93 >= dev-util/cbindgen-0.9
94 >= sys-dev/clang-10
95 >= sys-dev/llvm-10
96 >= media-libs/mesa-21.1
97 >= media-sound/libpulse-13
98 ${ALX_DEV_DEPEND}"
99
100 SRCFILE="firefox-${PVER}.source.tar.xz"
101 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
102
103 # include python2 after python3 to have the default $PYTHON set to python2 or mach build will fail atm
104 sminclude mozilla mtools cleanutils python3 python2 gtk2
105
106 SRC_URI=(
107 http://ftp.mozilla.org/pub/${PNAME}/releases/${PVER}/source/${SRCFILE}
108 mirror://mozilla-firefox/${SRCFILE}
109 mirror://mozilla-firefox/menu/firefox.png
110 mirror://mozilla-firefox/menu/firefox.desktop
111 mirror://mozilla-firefox/${PNAME}-46.0.1-install-dir.patch
112 mirror://mozilla-firefox/${PNAME}-53.0.3-networkmanager18.patch
113 )
114
115 # exclude betas (b), plugins (p), esr (e) and funnelcake (c) versions
116 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"
117
118 export MOZ_PHOENIX=1
119
120 # set by configure (plus USE_AUTOCONF=1), but useful for NSPR
121 export MOZILLA_CLIENT=1
122 export BUILD_OPT=1
123 export NO_STATIC_LIB=1
124 export USE_PTHREADS=1
125
126 # now strip optimization from CFLAGS so it doesn't end up in the
127 # compile string
128 export CFLAGS="${CFLAGS/-O*/}"
129 export CXXFLAGS="${CFLAGS}"
130
131 # needed to build without warnings on gcc-3
132 export CXXFLAGS="${CXXFLAGS} -Wno-deprecated"
133
134 # enforce pic and pie
135 export CFLAGS="${CFLAGS} -fPIC -pie"
136 export CXXFLAGS="${CXXFLAGS} -fPIC -pie"
137
138 # setup branding
139 # nightly, aurora, official, unofficial, magellan
140 __MOZ_BRANDING="magellan"
141
142 src_prepare()
143 {
144 munpack ${SRCFILE} || die
145 cd ${SRCDIR}
146
147 # patches, patches, patches
148
149 # use nsbrowser plugin dir
150 # 32bit pathes
151 sed -i "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" xpcom/io/nsAppFileLocationProvider.cpp || die
152 # 64bit pathes
153 sed -i "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" xpcom/io/nsAppFileLocationProvider.cpp || die
154
155 # don't exit with error when some libs are missing which we have in system
156 sed -i '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' browser/installer/Makefile.in || die
157
158 # don't error out when there's no files to be removed
159 sed -i 's@\(xargs rm\)$@\1 -f@' toolkit/mozapps/installer/packager.mk || die
160
161 # create missing python execs on multilib systems
162 if [[ ${ARCH} = x86_64 ]] && [[ $(mlibdir) != lib ]]
163 then
164 sed -i '/^rm -rf _virtualenv/d' configure.in || die
165 sed -i '/^mkdir -p _virtualenv/d' configure.in || die
166
167 local _mychost="${CHOST}"
168 install -d obj-${_mychost}/_virtualenv/bin || die
169 cp -a /usr/bin/python3-m32 obj-${_mychost}/_virtualenv/bin || die
170 cp -a /usr/bin/python3-m64 obj-${_mychost}/_virtualenv/bin || die
171 cp -a /usr/bin/python$(mget-python-version)-m32 obj-${_mychost}/_virtualenv/bin || die
172 cp -a /usr/bin/python$(mget-python-version)-m64 obj-${_mychost}/_virtualenv/bin || die
173 fi
174
175 if [[ ${__MOZ_BRANDING} = magellan ]]
176 then
177 cp -R browser/branding/unofficial browser/branding/magellan || die
178 sed -i -e "s:Mozilla Developer Preview:Mozilla Unofficial:g" \
179 -e "s:Nightly:Mozilla Unofficial:g" \
180 browser/branding/magellan/branding.nsi \
181 browser/branding/magellan/locales/en-US/brand.dtd \
182 browser/branding/magellan/locales/en-US/brand.properties || die
183 fi
184
185 export WANT_AUTOCONF=2.1
186 autoconf || die
187 }
188
189 src_compile()
190 {
191 cd ${SRCDIR}
192
193 # setup .mozconfig
194 cp browser/config/mozconfig .mozconfig || die
195
196 # setup branding
197 case ${__MOZ_BRANDING} in
198 nightly|aurora|unofficial|magellan)
199 mozconf_add --with-branding=browser/branding/${__MOZ_BRANDING}
200 ;;
201 official)
202 mozconf_add --enable-official-branding
203 ;;
204 esac
205
206 # where shall the files go ?
207 mozconf_add --prefix=/usr
208 mozconf_add --libdir=/usr/$(mlibdir)
209 #mozconf_add --with-default-mozilla-five-home=/usr/$(mlibdir)/firefox
210
211 # mozilla uses --host instead of --build and --target instead of host
212 mozconf_add --host="${CHOST}"
213 mozconf_add --target="${CHOST}"
214
215 # set optimization level based on CFLAGS
216 if [[ ${ARCH} = x86_64 ]]
217 then
218 # opts may cause segfaults on 64bit arches
219 mozconf_add --enable-optimize=-O1
220 export CFLAGS="${CFLAGS} -fPIC"
221 export CXXFLAGS="${CXXFLAGS} -fPIC"
222 else
223 mozconf_add --enable-optimize=-O2
224 fi
225
226 # want system jpeg, png, zlib, icu, event, vpx, nspr and nss
227 # system jpeg is jpeg-turbo and requires yasm to build
228 mozconf_add --with-system-jpeg
229 # system png is missing apng support
230 #mozconf_add --with-system-png
231 mozconf_add --with-system-zlib
232 mozconf_add --with-system-nspr
233 mozconf_add --with-system-nss
234 #mozconf_add --enable-system-hunspell
235 mozconf_add --enable-system-ffi
236 mozconf_add --enable-system-pixman
237 mozconf_add --with-system-icu
238 mozconf_add --enable-intl-api
239 mozconf_add --with-system-libvpx
240 #mozconf_add --enable-system-cairo
241 mozconf_add --with-system-av1
242
243 # enable cairo-gtk3 as default
244 mozconf_add --enable-default-toolkit=cairo-gtk3
245
246 # disable debug build && enable stripping
247 mozconf_add --disable-debug
248 mozconf_add --disable-debug-symbols
249 mozconf_add --disable-tests
250 mozconf_add --enable-strip
251
252 # enable default extensions
253 mozconf_add --enable-extensions=default
254
255 # no crashreporter
256 mozconf_add --disable-crashreporter
257
258 # enable startup-notification
259 #mozconf_add --enable-startup-notification
260 # enable dbus
261 mozconf_add --enable-dbus
262 # pulseaudio support
263 mozconf_add --enable-pulseaudio
264
265 # resolve multiple --enable-extensions down to one
266 rebuild_extension_list
267
268 # allow more open files
269 ulimit -n 4096
270
271 # shell export fixes some bugs in a chroot environment
272 # see: http://comments.gmane.org/gmane.linux.lfs.beyond.support/47450
273 #MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL}" mmake -f client.mk || die
274 MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL}" ./mach build --verbose || die
275 }
276
277 src_install()
278 {
279 cd ${SRCDIR}
280
281 # install
282 #SHELL="${SHELL}" mmake -j1 -f client.mk DESTDIR=${BINDIR} install || die
283 SHELL="${SHELL}" DESTDIR=${BINDIR} ./mach install || die
284
285 # fix permissions
286 mchown -R root:root /usr/$(mlibdir)/firefox || die
287
288 # init our pref file
289 msetpref --init || die
290
291 # vendor information
292 msetpref general.useragent.vendor Magellan-Linux || die
293
294 # disable app.update in default config
295 msetpref app.update.auto false || die
296 msetpref app.update.enabled false || die
297 msetpref app.update.autoInstallEnabled false || die
298
299 # use system-colors
300 msetpref browser.display.use_system_colors true || die
301 # disable default-browser check
302 msetpref browser.shell.checkDefaultBrowser false || die
303
304 # use LANG environment variable to choose locale
305 msetpref intl.locale.matchOS true || die
306
307 # set network.trr.mode to 5 (disabled) to disable DNS-over-HTTPs
308 msetpref network.trr.mode 5 || die
309
310 # disable push remote administration from mozilla
311 msetpref app.normandy.enabled false || die
312
313 # menu entries
314 minstallpixmap firefox.png || die
315 minstalldir /usr/share/applications || die
316 minstallfile -s firefox.desktop /usr/share/applications || die
317
318 # now move all plugins to /usr/lib/nsbrowser/plugins
319 minstalldir /usr/$(mlibdir)/nsbrowser/plugins || die
320 if [[ -d ${BINDIR}/usr/$(mlibdir)/firefox/plugins ]]
321 then
322 mcopy -a ${BINDIR}/usr/$(mlibdir)/firefox/plugins/\* /usr/$(mlibdir)/nsbrowser/plugins || die
323 mdelete -r /usr/$(mlibdir)/firefox/plugins || die
324 fi
325 # and symlink them (we need a defined location for the plugins of all browsers)
326 mlink /usr/$(mlibdir)/nsbrowser/plugins /usr/$(mlibdir)/firefox/plugins || die
327
328 # fix duplicate binary
329 #https://bugzilla.mozilla.org/show_bug.cgi?id=658850
330 mlink firefox /usr/$(mlibdir)/firefox/firefox-bin || die
331
332 # environment
333 minstalldir /etc/env.d || die
334 MCONFIG="/etc/env.d/90firefox"
335 mclearconfig || die
336 maddconfig "LDPATH=/usr/$(mlibdir)/firefox" || die
337 }
338
339 preinstall()
340 {
341 # remove old 90mozilla-firefox env-file
342 if [[ -f ${MROOT}/etc/env.d/90mozilla-firefox ]]
343 then
344 rm ${MROOT}/etc/env.d/90mozilla-firefox
345 env-rebuild
346 fi
347 }
348
349 postinstall()
350 {
351 fdo-mime_update_desktop_db
352 gtk2_update_icon_cache
353 }
354
355 postremove()
356 {
357 fdo-mime_update_desktop_db
358 gtk2_update_icon_cache
359 }
360