Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/seamonkey/
Date: Wed, 28 Oct 2020 12:05:54
Message-Id: 1603886746.2090c55843950f60d0f7ccaac4a6bc5dd4a85eed.polynomial-c@gentoo
1 commit: 2090c55843950f60d0f7ccaac4a6bc5dd4a85eed
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Oct 28 12:05:36 2020 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Oct 28 12:05:46 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2090c558
7
8 www-client/seamonkey: Bump to version 2.53.5_beta1
9
10 Package-Manager: Portage-3.0.8, Repoman-3.0.2
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 www-client/seamonkey/Manifest | 4 +
14 www-client/seamonkey/seamonkey-2.53.5_beta1.ebuild | 531 +++++++++++++++++++++
15 2 files changed, 535 insertions(+)
16
17 diff --git a/www-client/seamonkey/Manifest b/www-client/seamonkey/Manifest
18 index f3df98bb09e..78794054889 100644
19 --- a/www-client/seamonkey/Manifest
20 +++ b/www-client/seamonkey/Manifest
21 @@ -2,3 +2,7 @@ DIST seamonkey-2.53.3-system_libvpx-1.8.patch.xz 3128 BLAKE2B f73802d2715a11964a
22 DIST seamonkey-2.53.4.source-l10n.tar.xz 12110188 BLAKE2B 6bf25f25bd72e35252824221d6ecf43f910cae65e21e2e15b628d9340256a3196b11a20522ce6284cee28a92141907ddcd5366427c356e57fb1a0015a064a2c2 SHA512 a5ac165412d3391206b7bcb2e7112693ce272e47e6cd2da321a60f52799fb04ac0d1ea84fb535ba73ef8d9faf5d582b314d2890768fd440136c830f3c88777cd
23 DIST seamonkey-2.53.4.source.tar.xz 294513316 BLAKE2B 79425b0d15f99e30bd70871c28636ed8c567703b7048a46534fa971debbfeb90dd05880feca49354cb818c4a127cbc1f3ff17729784f90de91ba82db6da5fa59 SHA512 3450d6251f309bee96aa792cdce66b946d841089e0031ccbcf606845b1e0c951d58a8117a9e61e2d2435c1df614110944e5eac7ae9bd08429146bfe7334137fb
24 DIST seamonkey-2.53.4_beta1-patches-01.tar.xz 39676 BLAKE2B de7742e6c286ca21403d003e22e3eba56e4d59c3f628c9768b47bac148abefbabfcd0510c89cc319c29e0775e316922c680d3de3dbfc542cae4f1f4942773124 SHA512 e97d6de074041f17cfe935995ce7116dee4249dc736315c82ed3878a92189d09542f141f65499ecdfd8621638d130b6d5786ab6033f3f794a805e136acefec3d
25 +DIST seamonkey-2.53.5_beta1-patches-01.tar.xz 43068 BLAKE2B 15c555d5c4abca6fc34a029dd85602618a26fa42d7b4960c664f64f685e0e22547bd4611c1ac60040840584c0a02bc7bf04e47f0c09b1f996258ae2e97572757 SHA512 f8e5e0c8660c60bbf9a6da843ea82136ab47744d2b68eaa767d5d688e21c773a47e36fdaa3fbd17061609cae7ab0433cd265e0dfe72cc75108017d6e5b2534f6
26 +DIST seamonkey-2.53.5_beta1-perf-guide_checksum.patch 40647 BLAKE2B e94e892e5b696a57087a91060c79de649bd0bc053ad5d9158017870e37b3b478e5e30cace2fb07c72d6e29954c7678dcfea7f2039369c78a390b6e29d7419d07 SHA512 1f77ca1109d454db3065fe0af7ad87f7bc69995ec9f4141858746019623608f09f3c30510bd5a1a9123cafdaa328fdbc98750875daa727a98590cb0537343b51
27 +DIST seamonkey-2.53.5_beta1.source-l10n.tar.xz 12108000 BLAKE2B f8e3b3bcdadf92decaa2cffacac937a6c219017a205385136e98fa6fa13d5176dc000ee00ac910951d1e623c82241b1ed3d0b0b6754c5c5e0d2cf315c9bd097a SHA512 6532465d0ffbe2f36e5db0b54a801bf3b5d5481a1f39933620bea641e7faf8fcc0a04f5ff1e72272f119954835663e6d1fdb3d0595468a2fbb336b71d0290ce6
28 +DIST seamonkey-2.53.5_beta1.source.tar.xz 285415424 BLAKE2B 72b3348b347c293244f7c6bd62113725f640d3e39506be03c8e74170e255167ff63bc169eb506814bdf8cb05d410f851a94e947b008118582cfa1be413f6f842 SHA512 ea67917d90dc5119ff6cdd81ae5a1ef067deea770bf80cef0a6415b3e30c53c43b97e1c2d14f8b5e7e0ee8015e9a658012203f01d977f2a94cab8e7d4ed7e366
29
30 diff --git a/www-client/seamonkey/seamonkey-2.53.5_beta1.ebuild b/www-client/seamonkey/seamonkey-2.53.5_beta1.ebuild
31 new file mode 100644
32 index 00000000000..0f4f3229e2f
33 --- /dev/null
34 +++ b/www-client/seamonkey/seamonkey-2.53.5_beta1.ebuild
35 @@ -0,0 +1,531 @@
36 +# Copyright 1999-2020 Gentoo Authors
37 +# Distributed under the terms of the GNU General Public License v2
38 +
39 +EAPI=6
40 +WANT_AUTOCONF="2.1"
41 +
42 +PYTHON_COMPAT=( python3_{6,7,8} )
43 +PYTHON_REQ_USE='ncurses,sqlite,ssl,threads(+)'
44 +
45 +# This list can be updated with scripts/get_langs.sh from the mozilla overlay
46 +# note - could not roll langpacks for: ca fi
47 +#MOZ_LANGS=(ca cs de en-GB es-AR es-ES fi fr gl hu it ja lt nb-NO nl pl pt-PT
48 +# ru sk sv-SE tr uk zh-CN zh-TW)
49 +MOZ_LANGS=(cs de en-GB es-AR es-ES fr hu it ja lt nl pl pt-PT
50 + ru sk sv-SE zh-CN zh-TW)
51 +
52 +MOZ_PV="${PV/_pre*}"
53 +MOZ_PV="${MOZ_PV/_alpha/a}"
54 +MOZ_PV="${MOZ_PV/_beta/b}"
55 +MOZ_PV="${MOZ_PV/_rc/rc}"
56 +MOZ_P="${P}"
57 +MY_MOZ_P="${PN}-${MOZ_PV}"
58 +
59 +if [[ ${PV} == *_pre* ]] ; then
60 + MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/candidates/${MOZ_PV}-candidates/build${PV##*_pre}"
61 +else
62 + MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases/${MOZ_PV}"
63 +fi
64 +
65 +S="${WORKDIR}/${MY_MOZ_P}"
66 +SRC_URI="${MOZ_HTTP_URI}/source/${MY_MOZ_P}.source.tar.xz -> ${P}.source.tar.xz
67 + ${MOZ_HTTP_URI}/source/${MY_MOZ_P}.source-l10n.tar.xz -> ${P}.source-l10n.tar.xz"
68 +
69 +MOZ_GENERATE_LANGPACKS=1
70 +MOZ_L10N_SOURCEDIR="${S}/${P}-l10n"
71 +inherit autotools check-reqs flag-o-matic mozcoreconf-v6 mozextension mozlinguas-v2 nsplugins pax-utils toolchain-funcs xdg-utils
72 +
73 +PATCH="${PN}-2.53.5_beta1-patches-01"
74 +
75 +DESCRIPTION="Seamonkey Web Browser"
76 +HOMEPAGE="http://www.seamonkey-project.org"
77 +KEYWORDS="~amd64 ~ppc64 ~x86"
78 +
79 +SLOT="0"
80 +LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
81 +IUSE="+calendar +chatzilla +crypt dbus debug +gmp-autoupdate +ipc jack minimal
82 +neon pulseaudio +roaming selinux startup-notification system-harfbuzz system-icu
83 +system-jpeg system-libevent system-sqlite system-libvpx test wifi"
84 +RESTRICT="!test? ( test )"
85 +
86 +SRC_URI+="
87 + https://dev.gentoo.org/~polynomial-c/mozilla/patchsets/${PATCH}.tar.xz
88 + https://dev.gentoo.org/~polynomial-c/mozilla/${PN}-2.53.5_beta1-perf-guide_checksum.patch
89 + system-libvpx? ( https://dev.gentoo.org/~polynomial-c/mozilla/${PN}-2.53.3-system_libvpx-1.8.patch.xz )
90 +"
91 +
92 +ASM_DEPEND=">=dev-lang/yasm-1.1"
93 +
94 +DEPEND="
95 + >=app-text/hunspell-1.5.4:=
96 + dev-libs/atk
97 + >=dev-libs/glib-2.26:2
98 + >=dev-libs/libffi-3.0.10:=
99 + >=dev-libs/nspr-4.23
100 + >=dev-libs/nss-3.47.1
101 + media-libs/fontconfig
102 + >=media-libs/freetype-2.4.10
103 + >=media-libs/libpng-1.6.31:0=[apng]
104 + >=media-libs/mesa-10.2:=
105 + >=sys-libs/zlib-1.2.3
106 + >=x11-libs/cairo-1.10[X]
107 + x11-libs/gdk-pixbuf
108 + >=x11-libs/gtk+-2.18:2
109 + >=x11-libs/gtk+-3.4.0:3
110 + x11-libs/libX11
111 + x11-libs/libXcomposite
112 + x11-libs/libXdamage
113 + x11-libs/libXext
114 + x11-libs/libXfixes
115 + x11-libs/libXrender
116 + x11-libs/libXt
117 + >=x11-libs/pango-1.22.0
118 + >=x11-libs/pixman-0.19.2
119 + media-video/ffmpeg
120 + virtual/freedesktop-icon-theme
121 + dbus? (
122 + >=dev-libs/dbus-glib-0.72
123 + >=sys-apps/dbus-0.60
124 + )
125 + jack? ( virtual/jack )
126 + crypt? ( <x11-plugins/enigmail-2.1.0 )
127 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
128 + pulseaudio? ( || (
129 + media-sound/pulseaudio
130 + >=media-sound/apulse-0.1.9
131 + ) )
132 + startup-notification? ( >=x11-libs/startup-notification-0.8 )
133 + system-harfbuzz? (
134 + >=media-gfx/graphite2-1.3.9-r1
135 + >=media-libs/harfbuzz-1.3.3:0=
136 + )
137 + system-icu? ( >=dev-libs/icu-59.1:= )
138 + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
139 + system-libevent? ( >=dev-libs/libevent-2.0:0= )
140 + system-libvpx? ( >=media-libs/libvpx-1.8.0:0=[postproc] )
141 + system-sqlite? ( >=dev-db/sqlite-3.19.3:3[secure-delete,debug=] )
142 + wifi? (
143 + kernel_linux? (
144 + >=dev-libs/dbus-glib-0.72
145 + net-misc/networkmanager
146 + >=sys-apps/dbus-0.60
147 + )
148 + )
149 +"
150 +RDEPEND="
151 + ${DEPEND}
152 + selinux? ( sec-policy/selinux-mozilla )
153 +"
154 +# Convert to BDEPEND once the ebuild goes EAPI-7
155 +DEPEND+="
156 + app-arch/unzip
157 + app-arch/zip
158 + dev-lang/perl
159 + sys-apps/findutils
160 + >=sys-devel/binutils-2.16.1
161 + virtual/pkgconfig
162 + >=virtual/rust-1.34.0
163 + amd64? (
164 + ${ASM_DEPEND}
165 + virtual/opengl
166 + )
167 + x86? (
168 + ${ASM_DEPEND}
169 + virtual/opengl
170 + )
171 +"
172 +
173 +# allow GMP_PLUGIN_LIST to be set in an eclass or
174 +# overridden in the enviromnent (advanced hackers only)
175 +if [[ -z $GMP_PLUGIN_LIST ]] ; then
176 + GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
177 +fi
178 +
179 +BUILD_OBJ_DIR="${S}/seamonk"
180 +
181 +pkg_setup() {
182 + if [[ ${PV} == *_beta* ]] || [[ ${PV} == *_pre* ]] ; then
183 + ewarn "You're using an unofficial release of ${PN}. Don't file any bug in"
184 + ewarn "Gentoo's Bugtracker against this package in case it breaks for you."
185 + ewarn "Those belong to upstream: https://bugzilla.mozilla.org"
186 + fi
187 +
188 + moz_pkgsetup
189 +}
190 +
191 +pkg_pretend() {
192 + # Ensure we have enough disk space to compile
193 + if use debug || use test ; then
194 + CHECKREQS_DISK_BUILD="16G"
195 + else
196 + CHECKREQS_DISK_BUILD="12G"
197 + fi
198 + check-reqs_pkg_setup
199 +}
200 +
201 +src_unpack() {
202 + local l10n_sources="${P}.source-l10n.tar.xz"
203 + unpack ${A/ ${l10n_sources}}
204 +
205 + mkdir "${S}/${P}-l10n" || die
206 + cd "${S}/${P}-l10n" || die
207 + unpack ${l10n_sources}
208 +}
209 +
210 +src_prepare() {
211 + # Apply our patches
212 + eapply "${WORKDIR}"/seamonkey
213 +
214 + # browser patches go here
215 + pushd "${S}"/mozilla &>/dev/null || die
216 + eapply "${WORKDIR}"/firefox
217 + popd &>/dev/null || die
218 +
219 + # Shell scripts sometimes contain DOS line endings; bug 391889
220 + grep -rlZ --include="*.sh" $'\r$' . |
221 + while read -r -d $'\0' file ; do
222 + einfo edos2unix "${file}"
223 + edos2unix "${file}"
224 + done
225 +
226 + use system-libvpx && eapply "${WORKDIR}/${PN}-2.53.3-system_libvpx-1.8.patch"
227 + eapply "${DISTDIR}/${PN}-2.53.5_beta1-perf-guide_checksum.patch"
228 +
229 + # Allow user to apply any additional patches without modifing ebuild
230 + eapply_user
231 +
232 + local ms="${S}/mozilla"
233 +
234 + # Don't error for format with gcc-9
235 + grep -rl -- '-Werror=format' | xargs sed -i 's/error=format/no-&/' || die "sed failed"
236 +
237 + # Enable gnomebreakpad
238 + if use debug ; then
239 + sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
240 + "${ms}"/build/unix/run-mozilla.sh || die "sed failed!"
241 + fi
242 +
243 + # Ensure that are plugins dir is enabled as default
244 + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \
245 + "${ms}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!"
246 + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \
247 + "${ms}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!"
248 +
249 + # Don't exit with error when some libs are missing which we have in
250 + # system.
251 + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \
252 + -i "${S}"/suite/installer/Makefile.in || die
253 + # Don't error out when there's no files to be removed:
254 + sed 's@\(xargs rm\)$@\1 -f@' \
255 + -i "${ms}"/toolkit/mozapps/installer/packager.mk || die
256 +
257 + # Don't build libs-% locale files for chatzilla if we are not building chatzilla
258 + # (this is hard-coded in the build system at present rather than being based on configuration)
259 + if ! use chatzilla ; then
260 + sed '/extensions\/irc\/locales libs-/s@^@#@' \
261 + -i "${S}"/suite/locales/Makefile.in || die
262 + fi
263 +
264 + eautoreconf old-configure.in
265 + cd "${S}"/mozilla || die
266 + eautoconf old-configure.in
267 + cd "${S}"/mozilla/js/src || die
268 + eautoconf old-configure.in
269 +}
270 +
271 +src_configure() {
272 + MEXTENSIONS="default"
273 + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
274 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
275 + # get your own set of keys.
276 + _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
277 +
278 + ####################################
279 + #
280 + # mozconfig, CFLAGS and CXXFLAGS setup
281 + #
282 + ####################################
283 +
284 + mozconfig_init
285 +
286 + ##################################
287 + # Former mozconfig_config() part #
288 + ##################################
289 +
290 + # Migrated from mozcoreconf-2
291 + mozconfig_annotate 'system_libs' --with-system-bz2
292 + mozconfig_annotate 'system_libs' --with-system-zlib
293 +
294 + # Disable for testing purposes only
295 + mozconfig_annotate 'Upstream bug 1341234' --disable-stylo
296 +
297 + # Must pass release in order to properly select linker via gold useflag
298 + mozconfig_annotate 'Enable by Gentoo' --enable-release
299 +
300 + # Must pass --enable-gold if using ld.gold
301 + if tc-ld-is-gold ; then
302 + mozconfig_annotate 'tc-ld-is-gold=true' --enable-gold
303 + else
304 + mozconfig_annotate 'tc-ld-is-gold=false' --disable-gold
305 + fi
306 +
307 + # Enable position independent executables
308 + mozconfig_annotate 'enabled by Gentoo' --enable-pie
309 +
310 + mozconfig_use_enable debug
311 + mozconfig_use_enable debug tests
312 + if ! use debug ; then
313 + mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
314 + else
315 + mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
316 + fi
317 +
318 + mozconfig_use_enable startup-notification
319 +
320 + # wifi pulls in dbus so manage both here
321 + mozconfig_use_enable wifi necko-wifi
322 + if use kernel_linux && use wifi && ! use dbus ; then
323 + echo "Enabling dbus support due to wifi request"
324 + mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus
325 + else
326 + mozconfig_use_enable dbus
327 + mozconfig_annotate 'disabled' --disable-necko-wifi
328 + fi
329 +
330 + # These are enabled by default in all mozilla applications
331 + mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr
332 + mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr
333 + mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir)
334 + if use system-libevent ; then
335 + mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr
336 + fi
337 + mozconfig_annotate '' --prefix="${EPREFIX}"/usr
338 + mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
339 + mozconfig_annotate 'Gentoo default' --enable-system-hunspell
340 + mozconfig_annotate '' --disable-crashreporter
341 + mozconfig_annotate 'Gentoo default' --with-system-png
342 + mozconfig_annotate '' --enable-system-ffi
343 + mozconfig_annotate '' --disable-gconf
344 + mozconfig_annotate '' --with-intl-api
345 +
346 + # skia has no support for big-endian platforms
347 + if [[ $(tc-endian) == "big" ]] ; then
348 + mozconfig_annotate 'big endian target' --disable-skia
349 + else
350 + mozconfig_annotate '' --enable-skia
351 + fi
352 +
353 + # default toolkit is cairo-gtk3, optional use flags can change this
354 + mozconfig_annotate '' --enable-default-toolkit=cairo-gtk3
355 +
356 + # Instead of the standard --build= and --host=, mozilla uses --host instead
357 + # of --build, and --target intstead of --host.
358 + # Note, mozilla also has --build but it does not do what you think it does.
359 + # Set both --target and --host as mozilla uses python to guess values otherwise
360 + mozconfig_annotate '' --target="${CHOST}"
361 + mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
362 +
363 + mozconfig_use_enable pulseaudio
364 + # force the deprecated alsa sound code if pulseaudio is disabled
365 + if use kernel_linux && ! use pulseaudio ; then
366 + mozconfig_annotate '-pulseaudio' --enable-alsa
367 + fi
368 +
369 + # For testing purpose only
370 + mozconfig_annotate 'Sandbox' --enable-content-sandbox
371 +
372 + mozconfig_use_enable system-sqlite
373 + mozconfig_use_with system-jpeg
374 + mozconfig_use_with system-icu
375 + mozconfig_use_with system-libvpx
376 + mozconfig_use_with system-harfbuzz
377 + mozconfig_use_with system-harfbuzz system-graphite2
378 +
379 + # Modifications to better support ARM, bug 553364
380 + if use neon ; then
381 + mozconfig_annotate '' --with-fpu=neon
382 + mozconfig_annotate '' --with-thumb=yes
383 + mozconfig_annotate '' --with-thumb-interwork=no
384 + fi
385 + if [[ ${CHOST} == armv* ]] ; then
386 + mozconfig_annotate '' --with-float-abi=hard
387 + if ! use system-libvpx ; then
388 + sed -i -e "s|softfp|hard|" \
389 + "${S}"/mozilla/media/libvpx/moz.build \
390 + || die
391 + fi
392 + fi
393 + ##################################
394 + # Former mozconfig_config() end #
395 + ##################################
396 +
397 + # enable JACK, bug 600002
398 + mozconfig_use_enable jack
399 +
400 + # It doesn't compile on alpha without this LDFLAGS
401 + use alpha && append-ldflags "-Wl,--no-relax"
402 +
403 + # Linking fails without this due to memory exhaustion
404 + use x86 && append-ldflags "-Wl,--no-keep-memory"
405 +
406 + if ! use chatzilla ; then
407 + MEXTENSIONS+=",-irc"
408 + fi
409 + if ! use roaming ; then
410 + MEXTENSIONS+=",-sroaming"
411 + fi
412 +
413 + # Setup api key for location services
414 + echo -n "${_google_api_key}" > "${S}"/google-api-key
415 + mozconfig_annotate '' --with-google-location-service-api-keyfile="${S}/google-api-key"
416 + mozconfig_annotate '' --with-google-safebrowsing-api-keyfile="${S}/google-api-key"
417 +
418 + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
419 +
420 + # sm-specific settings
421 + mozconfig_use_enable calendar
422 +
423 + # Use an objdir to keep things organized.
424 + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig
425 + echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig
426 +
427 + mozlinguas_mozconfig
428 +
429 + # Finalize and report settings
430 + mozconfig_final
431 +
432 + # Required until mozcoreconf-v?.eclass-es are finally fixed...
433 + sed \
434 + -e '/--enable-application/s@comm/suite@suite@' \
435 + -i .mozconfig || die
436 +
437 + # Work around breakage in makeopts with --no-print-directory
438 + MAKEOPTS="${MAKEOPTS/--no-print-directory/}"
439 +
440 + if [[ $(gcc-major-version) -lt 4 ]] ; then
441 + append-cxxflags -fno-stack-protector
442 + elif [[ $(gcc-major-version) -gt 4 || $(gcc-minor-version) -gt 3 ]] ; then
443 + if use amd64 || use x86 ; then
444 + append-flags -mno-avx
445 + fi
446 + fi
447 +
448 + # workaround for funky/broken upstream configure...
449 + SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
450 + emake V=1 -f client.mk configure
451 +}
452 +
453 +src_compile() {
454 + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL}" \
455 + emake V=1 -f client.mk
456 +
457 + mozlinguas_src_compile
458 +}
459 +
460 +src_install() {
461 + MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
462 + DICTPATH="\"${EPREFIX}/usr/share/myspell\""
463 +
464 + local emid
465 + cd "${BUILD_OBJ_DIR}" || die
466 +
467 + # Pax mark xpcshell for hardened support, only used for startupcache creation.
468 + pax-mark m "${BUILD_OBJ_DIR}/dist/bin/xpcshell"
469 +
470 + # Copy our preference before omnijar is created.
471 + sed "s|SEAMONKEY_PVR|${PVR}|" "${FILESDIR}"/all-gentoo-1.js > \
472 + "${BUILD_OBJ_DIR}/dist/bin/defaults/pref/all-gentoo.js" \
473 + || die
474 +
475 + # Set default path to search for dictionaries.
476 + echo "pref(\"spellchecker.dictionary_path\", ${DICTPATH});" \
477 + >> "${BUILD_OBJ_DIR}/dist/bin/defaults/pref/all-gentoo.js" \
478 + || die
479 +
480 + echo 'pref("extensions.autoDisableScopes", 3);' >> \
481 + "${BUILD_OBJ_DIR}/dist/bin/defaults/pref/all-gentoo.js" \
482 + || die
483 +
484 + local plugin
485 + if ! use gmp-autoupdate ; then
486 + for plugin in "${GMP_PLUGIN_LIST[@]}" ; do
487 + echo "pref(\"media.${plugin}.autoupdate\", false);" >> \
488 + "${S}/${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
489 + || dir
490 + done
491 + fi
492 +
493 + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
494 + emake DESTDIR="${D}" install
495 + MOZ_P="${MY_MOZ_P}" mozlinguas_src_install
496 + cp "${FILESDIR}"/${PN}.desktop "${T}" || die
497 +
498 + sed 's|^\(MimeType=.*\)$|\1text/x-vcard;text/directory;application/mbox;message/rfc822;x-scheme-handler/mailto;|' \
499 + -i "${T}"/${PN}.desktop || die
500 + sed 's|^\(Categories=.*\)$|\1Email;|' -i "${T}"/${PN}.desktop \
501 + || die
502 +
503 + # Install icon and .desktop for menu entry
504 + newicon "${S}"/suite/branding/${PN}/default64.png ${PN}.png
505 + domenu "${T}"/${PN}.desktop
506 +
507 + # Required in order to use plugins and even run seamonkey on hardened.
508 + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{seamonkey,seamonkey-bin,plugin-container}
509 +
510 + if use minimal ; then
511 + rm -rf "${ED}"/usr/include "${ED}${MOZILLA_FIVE_HOME}"/{idl,include,lib,sdk}
512 + fi
513 +
514 + if use chatzilla ; then
515 + local emid='{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}'
516 +
517 + # remove the en_US-only xpi file so a version with all requested locales can be installed
518 + if [[ -e "${ED}"${MOZILLA_FIVE_HOME}/distribution/extensions/${emid}.xpi ]]; then
519 + rm -f "${ED}"${MOZILLA_FIVE_HOME}/distribution/extensions/${emid}.xpi || die
520 + fi
521 +
522 + # merge the extra locales into the main extension
523 + mozlinguas_xpistage_langpacks "${BUILD_OBJ_DIR}"/dist/xpi-stage/chatzilla
524 +
525 + # install the merged extension
526 + mkdir -p "${T}/${emid}" || die
527 + cp -RLp -t "${T}/${emid}" "${BUILD_OBJ_DIR}"/dist/xpi-stage/chatzilla/* || die
528 + insinto ${MOZILLA_FIVE_HOME}/distribution/extensions
529 + doins -r "${T}/${emid}"
530 + fi
531 +
532 + # Handle plugins dir through nsplugins.eclass
533 + share_plugins_dir
534 +
535 + # revdep-rebuild entry
536 + insinto /etc/revdep-rebuild
537 + echo "SEARCH_DIRS_MASK=${MOZILLA_FIVE_HOME}*" >> ${T}/11${PN}
538 + doins "${T}"/11${PN}
539 +}
540 +
541 +pkg_preinst() {
542 + MOZILLA_FIVE_HOME="${ROOT}/usr/$(get_libdir)/${PN}"
543 +
544 + if [ -d ${MOZILLA_FIVE_HOME}/plugins ] ; then
545 + rm ${MOZILLA_FIVE_HOME}/plugins -rf
546 + fi
547 +}
548 +
549 +pkg_postinst() {
550 + MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
551 +
552 + # Update mimedb for the new .desktop file
553 + xdg_desktop_database_update
554 +
555 + if ! use gmp-autoupdate ; then
556 + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
557 + elog "installing into new profiles:"
558 + local plugin
559 + for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done
560 + fi
561 +
562 + if use chatzilla ; then
563 + elog "chatzilla is now an extension which can be en-/disabled and configured via"
564 + elog "the Add-on manager."
565 + fi
566 +}