Gentoo Archives: gentoo-commits

From: Ian Stakenvicius <axs@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/mozilla:master commit in: www-client/firefox/
Date: Tue, 11 Oct 2016 18:02:36
Message-Id: 1476208940.b75df733a591b834ffe47af699e276d833db265f.axs@gentoo
1 commit: b75df733a591b834ffe47af699e276d833db265f
2 Author: Ian Stakenvicius <axs <AT> gentoo <DOT> org>
3 AuthorDate: Tue Oct 11 18:02:20 2016 +0000
4 Commit: Ian Stakenvicius <axs <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 11 18:02:20 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/mozilla.git/commit/?id=b75df733
7
8 www-client/firefox-50: first beta ebuild
9
10 www-client/firefox/Manifest | 2 +
11 www-client/firefox/firefox-50.0_beta6.ebuild | 366 +++++++++++++++++++++++++++
12 2 files changed, 368 insertions(+)
13
14 diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest
15 index 2cabe4d..ed619fd 100644
16 --- a/www-client/firefox/Manifest
17 +++ b/www-client/firefox/Manifest
18 @@ -177,3 +177,5 @@ DIST firefox-49.0-xh.xpi 439945 SHA256 a6844d3412f58347a22e3ae0b242aee6b2dcbd504
19 DIST firefox-49.0-zh-CN.xpi 466752 SHA256 1f5648cecfeb15503a320cf0c765b097ce220d01f17e4153032ef99fac3f6cf5 SHA512 777902a2147cc77764508c2b61f4c791272e6004d90a131a11c3a06a1c633e160fa9db400ec56473b5103eedc7787dc93d535d68a3119766104c25475b20ee3a WHIRLPOOL ea843dfec89fd66ebed5cba86fede31b3b61738cb189ffbeea7141a36ca98a5c11d5366a4f7f22fbf572b0c3da16e362454251674e11f2d070e8107e4afe6f61
20 DIST firefox-49.0-zh-TW.xpi 469469 SHA256 efe84a997c57c394d1cc1067a1d63fd77719f015e8eb42bfa9fe8225250e8ddc SHA512 091206e31fa12b7298023c06337c739d7a8a171094536eacaf3c5887056488acbca605c4ea0b41174c136ea98bf5c3f1cbe4481c2ad9672715e45f28f27f2916 WHIRLPOOL 182a6b44f5f7b514b75e74856a913619e27c813d654106b67ae7c1385bc31895c1dde6e943ffd8d6c6ee85a838993f202141c4c5383b4159cb7d300515e5bc70
21 DIST firefox-49.0.source.tar.xz 189615184 SHA256 6f7069fa94688f9fb5aa3bbb2ffa78456825067dd984afa714d74b3f0c6eaf63 SHA512 9431f86dec5587131699ae57ae428be168e4d6c7d1d48df643c10540e8e18bc5eadfcd08bb204950be611c87d35d8a40aa8ece454b7dfa3992239639c2d688a9 WHIRLPOOL acc7fe0210fa72123b67cfdf6d438ddb9f0dd7ea7c0464722cd898237057a0eed35a4de5dbb283ab1948dafa6b7a790d646853bc0025422d716d9a4e1b79db59
22 +DIST firefox-50.0-patches-01.tar.xz 11972 SHA256 38661f09677608019017327d79a01d2cd527a1ce848f8a0e7e4d7b8d54827fdb SHA512 98fd51fe6cca102b607155cfa53541b8ff17309e7036b62dc76ed276d8a5f344cfe2e8e08f2e0756c574d8a97d93b9dd6fc806d1209263fe3bde40d794d0c9a3 WHIRLPOOL a188943bbf14e4010ffc770cc5439411804be5d72f3893bb1e9e15ae85a8872564d32976bce9720eb8681c5c2e4ea031c0b45bab921d937f6e3f6b4ba5023d3f
23 +DIST firefox-50.0b6.source.tar.xz 195877380 SHA256 8ccf3fa9339fb4d8a0fdb6f3fc3c5f7405129f19f488fadbc6841c6d1f18d03e SHA512 b5738607874916b8b80cfa8d513ea64f0cf7e29daf9ae4f95447bc043f531f4fe40769868377ded6d021db7e38743137b897cb662bb2a3fa4c9273126eafcef9 WHIRLPOOL 516befc9d8c7544658e9c99953e9224d4f8fc3745e52f200d962515edaffe0145810177ba1edc492db061746f775c1eb6edbaab9c9af14ae364a93de7d5f1b8d
24
25 diff --git a/www-client/firefox/firefox-50.0_beta6.ebuild b/www-client/firefox/firefox-50.0_beta6.ebuild
26 new file mode 100644
27 index 0000000..d996cad
28 --- /dev/null
29 +++ b/www-client/firefox/firefox-50.0_beta6.ebuild
30 @@ -0,0 +1,366 @@
31 +# Copyright 1999-2016 Gentoo Foundation
32 +# Distributed under the terms of the GNU General Public License v2
33 +# $Id$
34 +
35 +EAPI=6
36 +VIRTUALX_REQUIRED="pgo"
37 +WANT_AUTOCONF="2.1"
38 +MOZ_ESR=""
39 +
40 +# This list can be updated with scripts/get_langs.sh from the mozilla overlay
41 +MOZ_LANGS=( ach af an ar as ast az be bg bn-BD bn-IN br bs ca cak cs cy da de dsb
42 +el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL
43 +ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km kn ko lij lt
44 +lv mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl
45 +son sq sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW )
46 +
47 +# Convert the ebuild version to the upstream mozilla version, used by mozlinguas
48 +MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI
49 +MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
50 +MOZ_PV="${MOZ_PV/_rc/rc}" # Handle rc for SRC_URI
51 +
52 +if [[ ${MOZ_ESR} == 1 ]]; then
53 + # ESR releases have slightly different version numbers
54 + MOZ_PV="${MOZ_PV}esr"
55 +fi
56 +
57 +# Patch version
58 +PATCH="${PN}-50.0-patches-01"
59 +MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases"
60 +
61 +MOZCONFIG_OPTIONAL_GTK2ONLY=1
62 +MOZCONFIG_OPTIONAL_WIFI=1
63 +MOZCONFIG_OPTIONAL_JIT="enabled"
64 +
65 +inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-v6.49 pax-utils fdo-mime autotools virtualx mozlinguas-v2
66 +
67 +DESCRIPTION="Firefox Web Browser"
68 +HOMEPAGE="http://www.mozilla.com/firefox"
69 +
70 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
71 +
72 +SLOT="0"
73 +LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
74 +IUSE="bindist hardened +hwaccel pgo selinux +gmp-autoupdate test"
75 +RESTRICT="!bindist? ( bindist )"
76 +
77 +PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz )
78 +SRC_URI="${SRC_URI}
79 + ${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz
80 + ${PATCH_URIS[@]}"
81 +
82 +ASM_DEPEND=">=dev-lang/yasm-1.1"
83 +
84 +RDEPEND="
85 + >=dev-libs/nss-3.25
86 + >=dev-libs/nspr-4.12
87 + selinux? ( sec-policy/selinux-mozilla )"
88 +
89 +DEPEND="${RDEPEND}
90 + pgo? ( >=sys-devel/gcc-4.5 )
91 + amd64? ( ${ASM_DEPEND} virtual/opengl )
92 + x86? ( ${ASM_DEPEND} virtual/opengl )"
93 +
94 +S="${WORKDIR}/firefox-${MOZ_PV}"
95 +
96 +QA_PRESTRIPPED="usr/lib*/${PN}/firefox"
97 +
98 +BUILD_OBJ_DIR="${S}/ff"
99 +
100 +# dependencies newer than specified in the eclass
101 +RDEPEND="${RDEPEND}
102 + >=media-libs/libpng-1.6.23
103 + "
104 +
105 +pkg_setup() {
106 + moz_pkgsetup
107 +
108 + # Avoid PGO profiling problems due to enviroment leakage
109 + # These should *always* be cleaned up anyway
110 + unset DBUS_SESSION_BUS_ADDRESS \
111 + DISPLAY \
112 + ORBIT_SOCKETDIR \
113 + SESSION_MANAGER \
114 + XDG_SESSION_COOKIE \
115 + XAUTHORITY
116 +
117 + if ! use bindist; then
118 + einfo
119 + elog "You are enabling official branding. You may not redistribute this build"
120 + elog "to any users on your network or the internet. Doing so puts yourself into"
121 + elog "a legal problem with Mozilla Foundation"
122 + elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag"
123 + fi
124 +
125 + if use pgo; then
126 + einfo
127 + ewarn "You will do a double build for profile guided optimization."
128 + ewarn "This will result in your build taking at least twice as long as before."
129 + fi
130 +}
131 +
132 +pkg_pretend() {
133 + # Ensure we have enough disk space to compile
134 + if use pgo || use debug || use test ; then
135 + CHECKREQS_DISK_BUILD="8G"
136 + else
137 + CHECKREQS_DISK_BUILD="4G"
138 + fi
139 + check-reqs_pkg_setup
140 +}
141 +
142 +src_unpack() {
143 + unpack ${A}
144 +
145 + # Unpack language packs
146 + mozlinguas_src_unpack
147 +}
148 +
149 +src_prepare() {
150 + # Apply our patches
151 + eapply "${WORKDIR}/firefox" \
152 + "${FILESDIR}"/${PN}-48.0-pgo.patch
153 +
154 + # Enable gnomebreakpad
155 + if use debug ; then
156 + sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
157 + "${S}"/build/unix/run-mozilla.sh || die "sed failed!"
158 + fi
159 +
160 + # Ensure that our plugins dir is enabled as default
161 + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \
162 + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!"
163 + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \
164 + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!"
165 +
166 + # Fix sandbox violations during make clean, bug 372817
167 + sed -e "s:\(/no-such-file\):${T}\1:g" \
168 + -i "${S}"/config/rules.mk \
169 + -i "${S}"/nsprpub/configure{.in,} \
170 + || die
171 +
172 + # Don't exit with error when some libs are missing which we have in
173 + # system.
174 + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \
175 + -i "${S}"/browser/installer/Makefile.in || die
176 +
177 + # Don't error out when there's no files to be removed:
178 + sed 's@\(xargs rm\)$@\1 -f@' \
179 + -i "${S}"/toolkit/mozapps/installer/packager.mk || die
180 +
181 + # Keep codebase the same even if not using official branding
182 + sed '/^MOZ_DEV_EDITION=1/d' \
183 + -i "${S}"/browser/branding/aurora/configure.sh || die
184 +
185 + # Allow user to apply any additional patches without modifing ebuild
186 + eapply_user
187 +
188 + # Autotools configure is now called old-configure.in
189 + # This works because there is still a configure.in that happens to be for the
190 + # shell wrapper configure script
191 + eautoreconf old-configure.in
192 +
193 + # Must run autoconf in js/src
194 + cd "${S}"/js/src || die
195 + eautoconf old-configure.in
196 +
197 + # Need to update jemalloc's configure
198 + cd "${S}"/memory/jemalloc/src || die
199 + WANT_AUTOCONF= eautoconf
200 +}
201 +
202 +src_configure() {
203 + MEXTENSIONS="default"
204 + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
205 + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please
206 + # get your own set of keys.
207 + _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
208 +
209 + ####################################
210 + #
211 + # mozconfig, CFLAGS and CXXFLAGS setup
212 + #
213 + ####################################
214 +
215 + mozconfig_init
216 + mozconfig_config
217 +
218 + # It doesn't compile on alpha without this LDFLAGS
219 + use alpha && append-ldflags "-Wl,--no-relax"
220 +
221 + # Add full relro support for hardened
222 + use hardened && append-ldflags "-Wl,-z,relro,-z,now"
223 +
224 + # Only available on mozilla-overlay for experimentation -- Removed in Gentoo repo per bug 571180
225 + #use egl && mozconfig_annotate 'Enable EGL as GL provider' --with-gl-provider=EGL
226 +
227 + # Setup api key for location services
228 + echo -n "${_google_api_key}" > "${S}"/google-api-key
229 + mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key"
230 +
231 + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
232 +
233 + # Allow for a proper pgo build
234 + if use pgo; then
235 + echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig
236 + fi
237 +
238 + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig
239 + echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig
240 +
241 + # Finalize and report settings
242 + mozconfig_final
243 +
244 + if [[ $(gcc-major-version) -lt 4 ]]; then
245 + append-cxxflags -fno-stack-protector
246 + fi
247 +
248 + # workaround for funky/broken upstream configure...
249 + SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
250 + emake -f client.mk configure
251 +}
252 +
253 +src_compile() {
254 + if use pgo; then
255 + addpredict /root
256 + addpredict /etc/gconf
257 + # Reset and cleanup environment variables used by GNOME/XDG
258 + gnome2_environment_reset
259 +
260 + # Firefox tries to use dri stuff when it's run, see bug 380283
261 + shopt -s nullglob
262 + cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
263 + if test -z "${cards}"; then
264 + cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g')
265 + if test -n "${cards}"; then
266 + # Binary drivers seem to cause access violations anyway, so
267 + # let's use indirect rendering so that the device files aren't
268 + # touched at all. See bug 394715.
269 + export LIBGL_ALWAYS_INDIRECT=1
270 + fi
271 + fi
272 + shopt -u nullglob
273 + addpredict "${cards}"
274 +
275 + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
276 + virtx emake -f client.mk profiledbuild || die "virtx emake failed"
277 + else
278 + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
279 + emake -f client.mk realbuild
280 + fi
281 +
282 +}
283 +
284 +src_install() {
285 + cd "${BUILD_OBJ_DIR}" || die
286 +
287 + # Pax mark xpcshell for hardened support, only used for startupcache creation.
288 + pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell
289 +
290 + # Add our default prefs for firefox
291 + cp "${FILESDIR}"/gentoo-default-prefs.js-1 \
292 + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
293 + || die
294 +
295 + mozconfig_install_prefs \
296 + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js"
297 +
298 + # Augment this with hwaccel prefs
299 + if use hwaccel ; then
300 + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \
301 + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
302 + || die
303 + fi
304 +
305 + echo "pref(\"extensions.autoDisableScopes\", 3);" >> \
306 + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
307 + || die
308 +
309 + local plugin
310 + use gmp-autoupdate || for plugin in \
311 + gmp-gmpopenh264 ; do
312 + echo "pref(\"media.${plugin}.autoupdate\", false);" >> \
313 + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
314 + || die
315 + done
316 +
317 + MOZ_MAKE_FLAGS="${MAKEOPTS}" \
318 + emake DESTDIR="${D}" install
319 +
320 + # Install language packs
321 + mozlinguas_src_install
322 +
323 + local size sizes icon_path icon name
324 + if use bindist; then
325 + sizes="16 32 48"
326 + icon_path="${S}/browser/branding/aurora"
327 + # Firefox's new rapid release cycle means no more codenames
328 + # Let's just stick with this one...
329 + icon="aurora"
330 + name="Aurora"
331 +
332 + # Override preferences to set the MOZ_DEV_EDITION defaults, since we
333 + # don't define MOZ_DEV_EDITION to avoid profile debaucles.
334 + # (source: browser/app/profile/firefox.js)
335 + cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <<PROFILE_EOF
336 +pref("app.feedback.baseURL", "https://input.mozilla.org/%LOCALE%/feedback/firefoxdev/%VERSION%/");
337 +sticky_pref("lightweightThemes.selectedThemeID", "firefox-devedition@×××××××.org");
338 +sticky_pref("browser.devedition.theme.enabled", true);
339 +sticky_pref("devtools.theme", "dark");
340 +PROFILE_EOF
341 +
342 + else
343 + sizes="16 22 24 32 256"
344 + icon_path="${S}/browser/branding/official"
345 + icon="${PN}"
346 + name="Mozilla Firefox"
347 + fi
348 +
349 + # Install icons and .desktop for menu entry
350 + for size in ${sizes}; do
351 + insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
352 + newins "${icon_path}/default${size}.png" "${icon}.png"
353 + done
354 + # The 128x128 icon has a different name
355 + insinto "/usr/share/icons/hicolor/128x128/apps"
356 + newins "${icon_path}/mozicon128.png" "${icon}.png"
357 + # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs
358 + newicon "${icon_path}/content/icon48.png" "${icon}.png"
359 + newmenu "${FILESDIR}/icon/${PN}.desktop" "${PN}.desktop"
360 + sed -i -e "s:@NAME@:${name}:" -e "s:@ICON@:${icon}:" \
361 + "${ED}/usr/share/applications/${PN}.desktop" || die
362 +
363 + # Add StartupNotify=true bug 237317
364 + if use startup-notification ; then
365 + echo "StartupNotify=true"\
366 + >> "${ED}/usr/share/applications/${PN}.desktop" \
367 + || die
368 + fi
369 +
370 + # Required in order to use plugins and even run firefox on hardened, with jit useflag.
371 + if use jit; then
372 + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container}
373 + else
374 + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/plugin-container
375 + fi
376 +
377 + # very ugly hack to make firefox not sigbus on sparc
378 + # FIXME: is this still needed??
379 + use sparc && { sed -e 's/Firefox/FirefoxGentoo/g' \
380 + -i "${ED}/${MOZILLA_FIVE_HOME}/application.ini" \
381 + || die "sparc sed failed"; }
382 +}
383 +
384 +pkg_preinst() {
385 + gnome2_icon_savelist
386 +}
387 +
388 +pkg_postinst() {
389 + # Update mimedb for the new .desktop file
390 + fdo-mime_desktop_database_update
391 + gnome2_icon_cache_update
392 +}
393 +
394 +pkg_postrm() {
395 + gnome2_icon_cache_update
396 +}