From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4C9EA138330 for ; Fri, 2 Sep 2016 13:55:39 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 02661E0B57; Fri, 2 Sep 2016 13:55:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 82FFCE0B57 for ; Fri, 2 Sep 2016 13:55:36 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B991A340988 for ; Fri, 2 Sep 2016 13:55:34 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 93A292465 for ; Fri, 2 Sep 2016 13:55:32 +0000 (UTC) From: "Ian Stakenvicius" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ian Stakenvicius" Message-ID: <1472824491.7e4a744a2505db6f7f3e639e459537ad39d57346.axs@gentoo> Subject: [gentoo-commits] proj/mozilla:master commit in: www-client/firefox/files/, www-client/firefox/ X-VCS-Repository: proj/mozilla X-VCS-Files: www-client/firefox/Manifest www-client/firefox/files/firefox-48.0-pgo.patch www-client/firefox/firefox-49.0_beta8.ebuild X-VCS-Directories: www-client/firefox/files/ www-client/firefox/ X-VCS-Committer: axs X-VCS-Committer-Name: Ian Stakenvicius X-VCS-Revision: 7e4a744a2505db6f7f3e639e459537ad39d57346 X-VCS-Branch: master Date: Fri, 2 Sep 2016 13:55:32 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 87398eaf-32f9-4de5-a598-7e39d16d73b7 X-Archives-Hash: 8cd9dddbaaf34fc1415181232cf3e88b commit: 7e4a744a2505db6f7f3e639e459537ad39d57346 Author: Ian Stakenvicius gentoo org> AuthorDate: Fri Sep 2 13:54:51 2016 +0000 Commit: Ian Stakenvicius gentoo org> CommitDate: Fri Sep 2 13:54:51 2016 +0000 URL: https://gitweb.gentoo.org/proj/mozilla.git/commit/?id=7e4a744a www-client/firefox-49.0: committing initial ebuild with beta8 codebase www-client/firefox/Manifest | 2 + www-client/firefox/files/firefox-48.0-pgo.patch | 12 + www-client/firefox/firefox-49.0_beta8.ebuild | 369 ++++++++++++++++++++++++ 3 files changed, 383 insertions(+) diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index 33bd4b1..4ac58ab 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -177,3 +177,5 @@ DIST firefox-48.0-xh.xpi 443336 SHA256 c16a47017795844456d029dbac215cec71cd09c8f DIST firefox-48.0-zh-CN.xpi 469205 SHA256 5e6008806e9e2351aa25ed4158ec5b2756fa0a72ea8c544707391540f2083fa4 SHA512 b4bb864f18c527e6d3e252a45fcfb3ff5eafde67a85792ae8c862af63d6abaece612316615f4b89b73b76ada734c5f8764a75ec633b830fc128eb8d79a4773bd WHIRLPOOL fcd85686cba910a0fab8225d4607620f68b0ffd2ee82fab7c64660b82bda13be3b198c8e84df747ccd62b0b8cc47bcaaf6001bbed5d3f4335004027a41d22b46 DIST firefox-48.0-zh-TW.xpi 471419 SHA256 e012cd3a41acd21206f76326f2b08e2f458785d826e58300c354e5db3354b98c SHA512 d74cb21838de35e6324a8af43a5f24bc469e5becfaa2a2efb8caf09aaba3b86484f3168d14189031fd8225c1cf469ee60a57ada984d9850a395e819e784e8112 WHIRLPOOL 81f730bf571066d87caa0a4213f446d0827a68a1cdbbe94e6bd2e0d1caf0a81f32760685802d4115a05676ffdf82fc13f6c928128e6f854a0a19a7c13c0c632e DIST firefox-48.0.source.tar.xz 188339876 SHA256 f474113a1ee75a01d43e270bf438ba78b9f7f2e397a66652b43603235fa76e21 SHA512 51bbb1954920b4d0e49e2834939748e596ed27c09a45adeea2be2cfbd32898dae41f13db17318e9699fa96c41fb50fba9966df1f88deeadc0ae3bdd679bd79c5 WHIRLPOOL f37b1b3ae7d775c5ce12bb7d2abf4983adad498e73e317e5f96a164783d1deadebce5ada3ee38916dab7c86d71b52ebbb10a5dc703af5d5d4ff42af1d4abeefa +DIST firefox-49.0-patches-01.tar.xz 12264 SHA256 18824e451fd2a842d03d4cd067f87e28cd45e74cc119a83cb98f002ba0827373 SHA512 4062c548142e9b16d9a7be68879276b584df52aff61a7d3fc92e36f4c6a289115f45714de79e9d176792b197ada99560e0d21b85068d815653b87341bdf03f8d WHIRLPOOL 58cc6c60ea34c64595497606b1fd18486d11ccc61220c27671d13eebc89cca709a448ac884a55d089e008012a2221de7d8ee350bd235eb13cfae9e1da62a2d0d +DIST firefox-49.0b8.source.tar.xz 189272336 SHA256 52fe6d7cb2eca42f3e55ace2de02c99f450901f53e6213a4394fc83e3d0ec988 SHA512 c24c490bf4fc84a3fe7ed216179421eca83f997b6bdccfbf72d0a2e2be71bb8d91d35ca2c8c7ded0eed52ab6f5000a60062684173d4bf7e9e0290b3ca9b61862 WHIRLPOOL 82f35a82955f7c8fffadf18d8582c62a95f9df8d893f881bb94111a022a0f3ecc1e0a5b1237d0850500d2427d65c09e1f5d57f473f191f897f79ff2251595225 diff --git a/www-client/firefox/files/firefox-48.0-pgo.patch b/www-client/firefox/files/firefox-48.0-pgo.patch new file mode 100644 index 0000000..645c008 --- /dev/null +++ b/www-client/firefox/files/firefox-48.0-pgo.patch @@ -0,0 +1,12 @@ +--- firefox-47.0.1/Makefile.in.orig 2016-06-01 07:11:37.000000000 +0300 ++++ firefox-47.0.1/Makefile.in 2016-08-06 16:45:14.442699244 +0300 +@@ -55,6 +55,9 @@ + endif + endif + ++pgo-profile-run: ++ $(PYTHON) $(topsrcdir)/build/pgo/profileserver.py $(EXTRA_TEST_ARGS) ++ + ifdef JS_STANDALONE + .PHONY: CLOBBER + CLOBBER: diff --git a/www-client/firefox/firefox-49.0_beta8.ebuild b/www-client/firefox/firefox-49.0_beta8.ebuild new file mode 100644 index 0000000..181f1b2 --- /dev/null +++ b/www-client/firefox/firefox-49.0_beta8.ebuild @@ -0,0 +1,369 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +VIRTUALX_REQUIRED="pgo" +WANT_AUTOCONF="2.1" +MOZ_ESR="" + +# This list can be updated with scripts/get_langs.sh from the mozilla overlay +# Excluding cak, dsb, ff, gn, lij as they arent on the gentoo list +MOZ_LANGS=( ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs cy da de +el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa fi fr fy-NL +ga-IE gd gl gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km kn ko lt +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 +son sq sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW ) + +# Convert the ebuild version to the upstream mozilla version, used by mozlinguas +MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI +MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI +MOZ_PV="${MOZ_PV/_rc/rc}" # Handle rc for SRC_URI + +if [[ ${MOZ_ESR} == 1 ]]; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +# Patch version +PATCH="${PN}-49.0-patches-01" +MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases" + +#MOZCONFIG_OPTIONAL_QT5=1 -- fails to build so leave it off until the code can be patched +MOZCONFIG_OPTIONAL_GTK2ONLY=1 +MOZCONFIG_OPTIONAL_WIFI=1 +MOZCONFIG_OPTIONAL_JIT="enabled" + +inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-v6.48 pax-utils fdo-mime autotools virtualx mozlinguas-v2 + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="http://www.mozilla.com/firefox" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" + +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="bindist egl hardened +hwaccel pgo selinux +gmp-autoupdate test" +RESTRICT="!bindist? ( bindist )" + +PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz ) +SRC_URI="${SRC_URI} + ${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz + ${PATCH_URIS[@]}" + +ASM_DEPEND=">=dev-lang/yasm-1.1" + +RDEPEND=" + >=dev-libs/nss-3.24 + >=dev-libs/nspr-4.12 + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${RDEPEND} + pgo? ( >=sys-devel/gcc-4.5 ) + amd64? ( ${ASM_DEPEND} virtual/opengl ) + x86? ( ${ASM_DEPEND} virtual/opengl )" + +S="${WORKDIR}/firefox-${MOZ_PV}" + +QA_PRESTRIPPED="usr/lib*/${PN}/firefox" + +BUILD_OBJ_DIR="${S}/ff" + +pkg_setup() { + moz_pkgsetup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XDG_SESSION_COOKIE \ + XAUTHORITY + + if ! use bindist; then + einfo + elog "You are enabling official branding. You may not redistribute this build" + elog "to any users on your network or the internet. Doing so puts yourself into" + elog "a legal problem with Mozilla Foundation" + elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" + fi + + if use pgo; then + einfo + ewarn "You will do a double build for profile guided optimization." + ewarn "This will result in your build taking at least twice as long as before." + fi +} + +pkg_pretend() { + # Ensure we have enough disk space to compile + if use pgo || use debug || use test ; then + CHECKREQS_DISK_BUILD="8G" + else + CHECKREQS_DISK_BUILD="4G" + fi + check-reqs_pkg_setup +} + +src_unpack() { + unpack ${A} + + # Unpack language packs + mozlinguas_src_unpack +} + +src_prepare() { + # Apply our patches + eapply "${WORKDIR}/firefox" \ + "${FILESDIR}"/${PN}-48.0-pgo.patch +# "${FILESDIR}"/${PN}-45-qt-widget-fix.patch + + if ! tc-ld-is-gold && has_version ">=sys-devel/binutils-2.26" ; then + eapply "${FILESDIR}"/xpcom-components-binutils-26.patch + fi + + # Enable gnomebreakpad + if use debug ; then + sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ + "${S}"/build/unix/run-mozilla.sh || die "sed failed!" + fi + + # Ensure that our plugins dir is enabled as default + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!" + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!" + + # Fix sandbox violations during make clean, bug 372817 + sed -e "s:\(/no-such-file\):${T}\1:g" \ + -i "${S}"/config/rules.mk \ + -i "${S}"/nsprpub/configure{.in,} \ + || die + + # Don't exit with error when some libs are missing which we have in + # system. + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ + -i "${S}"/browser/installer/Makefile.in || die + + # Don't error out when there's no files to be removed: + sed 's@\(xargs rm\)$@\1 -f@' \ + -i "${S}"/toolkit/mozapps/installer/packager.mk || die + + # Keep codebase the same even if not using official branding + sed '/^MOZ_DEV_EDITION=1/d' \ + -i "${S}"/browser/branding/aurora/configure.sh || die + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Autotools configure is now called old-configure.in + # This works because there is still a configure.in that happens to be for the + # shell wrapper configure script + eautoreconf old-configure.in + + # Must run autoconf in js/src + cd "${S}"/js/src || die +# /usr/bin/autoconf-2.13 -l ${SYSROOT}/usr/share/aclocal old-configure.in + eautoconf old-configure.in + + # Need to update jemalloc's configure + cd "${S}"/memory/jemalloc/src || die + WANT_AUTOCONF= eautoconf +} + +src_configure() { + MEXTENSIONS="default" + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc + + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + mozconfig_config + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + # Add full relro support for hardened + use hardened && append-ldflags "-Wl,-z,relro,-z,now" + + # Only available on mozilla-overlay for experimentation -- Removed in Gentoo repo per bug 571180 + use egl && mozconfig_annotate 'Enable EGL as GL provider' --with-gl-provider=EGL + + # Setup api key for location services + echo -n "${_google_api_key}" > "${S}"/google-api-key + mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key" + + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" + + # Allow for a proper pgo build + if use pgo; then + echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig + fi + + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig + echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig + + # Finalize and report settings + mozconfig_final + + if [[ $(gcc-major-version) -lt 4 ]]; then + append-cxxflags -fno-stack-protector + fi + + # workaround for funky/broken upstream configure... + SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \ + emake -f client.mk configure +} + +src_compile() { + if use pgo; then + addpredict /root + addpredict /etc/gconf + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + # Firefox tries to use dri stuff when it's run, see bug 380283 + shopt -s nullglob + cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if test -z "${cards}"; then + cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g') + if test -n "${cards}"; then + # Binary drivers seem to cause access violations anyway, so + # let's use indirect rendering so that the device files aren't + # touched at all. See bug 394715. + export LIBGL_ALWAYS_INDIRECT=1 + fi + fi + shopt -u nullglob + addpredict "${cards}" + + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \ + virtx emake -f client.mk profiledbuild || die "virtx emake failed" + else + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \ + emake -f client.mk realbuild + fi + +} + +src_install() { + cd "${BUILD_OBJ_DIR}" || die + + # Pax mark xpcshell for hardened support, only used for startupcache creation. + pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell + + # Add our default prefs for firefox + cp "${FILESDIR}"/gentoo-default-prefs.js-1 \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + mozconfig_install_prefs \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" + + # Augment this with hwaccel prefs + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + fi + + echo "pref(\"extensions.autoDisableScopes\", 3);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + local plugin + use gmp-autoupdate || for plugin in \ + gmp-gmpopenh264 ; do + echo "pref(\"media.${plugin}.autoupdate\", false);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + done + + MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + emake DESTDIR="${D}" install + + # Install language packs + mozlinguas_src_install + + local size sizes icon_path icon name + if use bindist; then + sizes="16 32 48" + icon_path="${S}/browser/branding/aurora" + # Firefox's new rapid release cycle means no more codenames + # Let's just stick with this one... + icon="aurora" + name="Aurora" + + # Override preferences to set the MOZ_DEV_EDITION defaults, since we + # don't define MOZ_DEV_EDITION to avoid profile debaucles. + # (source: browser/app/profile/firefox.js) + cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <> "${ED}/usr/share/applications/${PN}.desktop" \ + || die + fi + + # Required in order to use plugins and even run firefox on hardened, with jit useflag. + if use jit; then + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container} + else + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/plugin-container + fi + + # very ugly hack to make firefox not sigbus on sparc + # FIXME: is this still needed?? + use sparc && { sed -e 's/Firefox/FirefoxGentoo/g' \ + -i "${ED}/${MOZILLA_FIVE_HOME}/application.ini" \ + || die "sparc sed failed"; } +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + # Update mimedb for the new .desktop file + fdo-mime_desktop_database_update + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +}