diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest index b250bf2a..8a498802 100644 --- a/www-client/firefox/Manifest +++ b/www-client/firefox/Manifest @@ -66,6 +66,7 @@ DIST firefox-17.0-nn-NO.xpi 287844 SHA256 12977d65fb9403b3a0f0a810117d3273c73c2b DIST firefox-17.0-nso.xpi 288150 SHA256 f0235a8a61d5d1cf0a90646ab6ee460212a26c73c31811414a51928cc106a216 SHA512 6f90b1305687b16cba0c85c0bdf9b755bfda38578c310643bae2c6124b157166ff9c5f246bbef3246f1bf3e0553bab77c183d9a324fa5f0f2618eadf2c76efde WHIRLPOOL 8fd699c8cf7d8d580129fb27b2fb29421d9acfbc212c1e9b0a66352ae917039979e1bcefcd58c9b3d99d96a411e54bdfa1d21ca2ebae036bd67273552d3b4ef6 DIST firefox-17.0-or.xpi 329684 SHA256 710e72d3e49a942ef2f98dad2e2861a45a842d8ab28e7bf5159ab72d855eea9a SHA512 822b5f1b9e1298e27c18944beb6f192f78b058882dbf06c599210395f0ccb5085ca9c8c066101aa94cadc7b5817612f92643ba28c0505f6a22784bee4eb4eab4 WHIRLPOOL cdc92448fab7f33e5545e1ad1bc95547e34a8b443de3d67f3db49259afd89c356ce3808a433e42580d432d3b9128a35877036c7e40e9b86e5e57cf8486eef3e2 DIST firefox-17.0-pa-IN.xpi 318503 SHA256 7ee5f6cee04f9abab8f163d8bde119e41e48458323d20821f3444b6842276023 SHA512 e6c235e7618266ecb34544fbd1d6e6a3891195e42bdd869bb870c33a8d56fe2211cdf8c56c7ad0c81c8f85f450b8602860317dd887cda56938a068d4b952d00a WHIRLPOOL e2e2cd58eebabfa895496d4d9988996e40817e8747130ebd6dee6ff0bff4eff533673c5e5a86230285cf92587d07c858272f0c7c9676ab36769a9dcb62f1de7f +DIST firefox-17.0-patches-0.1.tar.xz 9920 SHA256 71e2391c98ac4d699c6fee51d507143f08e874cd7eca7a35d1001ff2ec2811f5 SHA512 b5e08cec9671f6a8226a76e383b6d1b2cc20a35ffb524c0736533098121e9eeece2706675ef7b34f6a851b10ebc19a79390aba0a8ea427c25252222e21ec7e29 WHIRLPOOL 879a1d35b24fbb4d1918d784d76bf884f88e8473dc794eef882f81d14c5e8b7f7f35fceecff1fbf9a4bfd238a5361c3dccb98c777677b7723db72bebf316b6b8 DIST firefox-17.0-pl.xpi 301035 SHA256 13dc5db2ee1625ef52a9865f538dd7259fbdbd82d8c5825b1a4c6cc3fabcfd55 SHA512 b00abc27494170b75283f5b6c0fdb5b7839c38c5b13874792f6e7eb64362c257fa3af645737ffec0d254639944fe758c0365d7c8383b2fd1ff8ab7e068459ac7 WHIRLPOOL f3c0d1a8a787b72ec350dc83718748aae12eba6b22347d84fdc3ba906c977d898a92e8a1f7de031483d538c306e471dd10f3218c0d9eb1f9e5b3a9f9ef69e938 DIST firefox-17.0-pt-BR.xpi 289243 SHA256 e2d85d9153fd606fb1f49e07591ce43742ee20e717acb2b63e0f3db647cb5660 SHA512 e8e6f356d964f210f7e4d2323f7c387565e60a2086242fbafdc9db8eb40ee2297470cbf0afffe6fc1a1f5f75fe476e5cc507eb0eb7db01f36ef205eb263cfc1b WHIRLPOOL efb39b4a05077fa2c7fafb09861e358b4c91994ff1642aad187eb2b36d584e62d788bb03ad61b5848b1fd98097df4d710ff804a02ca71c4d6d3ff3b5e8cd23c5 DIST firefox-17.0-pt-PT.xpi 291457 SHA256 50e25ab3af372def18af0070bbda5c212bcf488b73783d12435b7055c449126b SHA512 dc8bf6ed5031f7d2c4f2a2b396f6e107305bfac6eef203070511042171eeefad09da7b0a8313a88137370202232d35e86853543844b61b6be40ce9553b041ba0 WHIRLPOOL a9ab208802566c05ad26a1cc06760d92dffba9998a40bb4db648b513fd8eef66cfc8dec90c4dc42136120df0dccde04ab1a45eb1feb641543ffdbc65cf01614f @@ -90,4 +91,5 @@ DIST firefox-17.0-zh-CN.xpi 304250 SHA256 111256e6a6960aaf8c737d24a024b5c2613196 DIST firefox-17.0-zh-TW.xpi 305437 SHA256 a11e96586b0e880a04a3d32f6a9251e8555b61eede0faa32b8c2365bb821ad76 SHA512 a0c898909c3eba9d3284ee867135d12d1fabd1345bcd8bb6f4dc33d60984d9727a4a948232c643567985c8321f3fb093e95f03f09a034342bff6e0ff4a954b77 WHIRLPOOL 250faef25402876df45c84e3ed579643175fec217187bfa1b949817aed337d538c78ca61d857dee27a4697732eefc925e79f448c5a29a0b16fad493d48f033dd DIST firefox-17.0-zu.xpi 296594 SHA256 52a3f87725cda80949d9d57c47f59d066ae7cf833de047681851401b97401229 SHA512 d75937a4d31321527b6b3682f73bbacb94fd7721f88151b8ee93f3e4dbb7eaffc459e6e0f9ff2a38734d9f0b10b7fff2d0f032f0d1dd7260bfb2ada2d880887b WHIRLPOOL 0d4a421a44eabf46168a328dda6edc1d90aab77bee64a5b1992ee49ce2c9b08935300fdace8a7f86db11eebff094b3d097782583c374bcd65bd16b8faf26d96b DIST firefox-17.0.source.tar.bz2 90780755 SHA256 7f05658701be88505747ea3537546b98a1c0e74ba23ba428d754ea838a192348 SHA512 2f5d4242d4cb2488d35a961bfd62a87cfdda7b119c8c502ce9cff54b0ce71f1f34016f30383284b424e8904c9c75a543cfcae0e2d40b7eed7cd0e4e55fdf6f55 WHIRLPOOL e837fc455ae55f045cc8d3e67683c52da6b3f71d0867b13e9d7d78b709127d0dd1e9a25832f64fb84880dc391433f7acde49067210093b6286059eb683a6e7cb +EBUILD firefox-17.0-r1.ebuild 11809 SHA256 2eee062af8330e20f1ee035cbdfaeae17dcd72f6c1a4b45e19c432d9baa94330 SHA512 d40e05941e88fd30d2ee3e96c500f6d5f329c28edb0eab6197ac62fb9d9dfcd26fe4409b326f5b49c1f9e93443ce6624fdb0678da5cf392d575607f9afb192bf WHIRLPOOL 045e359f43be0dbd6f80ad59a294245395b926ca64f99bbeefee84837f4ed2d3f86e4d2d38b0d70fee68b2fd08006eccd73669122718c7920a5f576d735cd289 EBUILD firefox-17.0.ebuild 11811 SHA256 6ae3742634a93e458ebfc0b84c93762af5d932a37189134ad6e64c7f0581b503 SHA512 68c24a99237f84110927fce3e8864ee93628ad846420cbbd239add23448547494319c43cfcf26bb2b825d2caba29e1b3a99351fbae08556625d12e4a8a32276b WHIRLPOOL 357f5006cce9ecf855b2596513ac7056b73179a688e6cade51c307f485218d445b55f14cd38e98b0e71f67afce75312aca9affcaea6966be30454c6224287631 diff --git a/www-client/firefox/firefox-17.0-r1.ebuild b/www-client/firefox/firefox-17.0-r1.ebuild new file mode 100644 index 00000000..8f1fd524 --- /dev/null +++ b/www-client/firefox/firefox-17.0-r1.ebuild @@ -0,0 +1,378 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-client/firefox/firefox-17.0-r1.ebuild,v 1.1 2012/11/25 12:20:27 anarchy Exp $ + +EAPI="3" +VIRTUALX_REQUIRED="pgo" +WANT_AUTOCONF="2.1" +MOZ_ESR="" + +# This list can be updated with scripts/get_langs.sh from the mozilla overlay +MOZ_LANGS=(af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb 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 hu hy-AM id is it ja kk km kn ko ku +lg lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro +ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu ) + +# 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 version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +# Patch version +PATCH="${PN}-17.0-patches-0.1" +# Upstream ftp release URI that's used by mozlinguas.eclass +# We don't use the http mirror because it deletes old tarballs. +MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/${PN}/releases/" + +inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-3 multilib pax-utils fdo-mime autotools python virtualx nsplugins mozlinguas + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="http://www.mozilla.com/firefox" + +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="bindist gstreamer +ipc +jit +minimal pgo selinux system-sqlite +webm" + +# More URIs appended below... +SRC_URI="${SRC_URI} + http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.xz + http://dev.gentoo.org/~nirbheek/mozilla/patchsets/${PATCH}.tar.xz" + +ASM_DEPEND=">=dev-lang/yasm-1.1" + +# Mesa 7.10 needed for WebGL + bugfixes +RDEPEND=" + >=sys-devel/binutils-2.16.1 + >=dev-libs/nss-3.13.6 + >=dev-libs/nspr-4.9.2 + >=dev-libs/glib-2.26:2 + >=media-libs/mesa-7.10 + >=media-libs/libpng-1.5.11[apng] + virtual/libffi + gstreamer? ( + >=media-libs/gstreamer-0.10.33:0.10 + >=media-libs/gst-plugins-base-0.10.33:0.10 ) + system-sqlite? ( >=dev-db/sqlite-3.7.13[fts3,secure-delete,threadsafe,unlock-notify,debug=] ) + webm? ( >=media-libs/libvpx-1.0.0 + media-libs/alsa-lib ) + selinux? ( sec-policy/selinux-mozilla )" +# We don't use PYTHON_DEPEND/PYTHON_USE_WITH for some silly reason +DEPEND="${RDEPEND} + dev-python/pysqlite + virtual/pkgconfig + pgo? ( + =dev-lang/python-2*[sqlite] + >=sys-devel/gcc-4.5 ) + webm? ( x86? ( ${ASM_DEPEND} ) + amd64? ( ${ASM_DEPEND} ) + virtual/opengl )" + +# No source releases for alpha|beta +if [[ ${PV} =~ alpha ]]; then + CHANGESET="8a3042764de7" + SRC_URI="${SRC_URI} + http://dev.gentoo.org/~nirbheek/mozilla/firefox/firefox-${MOZ_PV}_${CHANGESET}.source.tar.bz2" + S="${WORKDIR}/mozilla-aurora-${CHANGESET}" +elif [[ ${PV} =~ beta ]]; then + S="${WORKDIR}/mozilla-beta" + SRC_URI="${SRC_URI} + ${MOZ_FTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.bz2" +else + SRC_URI="${SRC_URI} + ${MOZ_FTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.bz2" + if [[ ${MOZ_ESR} == 1 ]]; then + S="${WORKDIR}/mozilla-esr${PV%%.*}" + else + S="${WORKDIR}/mozilla-release" + fi +fi + +QA_PRESTRIPPED="usr/$(get_libdir)/${PN}/firefox" + +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 + + # 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 + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/firefox" + + # Allow user to apply any additional patches without modifing ebuild + epatch_user + + # 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 + + # Disable gnomevfs extension + sed -i -e "s:gnomevfs::" "${S}/"browser/confvars.sh \ + -e "s:gnomevfs::" "${S}/"xulrunner/confvars.sh \ + || die "Failed to remove gnomevfs extension" + + # Ensure that are plugins dir is enabled as default + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/$(get_libdir)/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path!" + + # Fix sandbox violations during make clean, bug 372817 + sed -e "s:\(/no-such-file\):${T}\1:g" \ + -i "${S}"/config/rules.mk \ + -i "${S}"/js/src/config/rules.mk \ + -i "${S}"/nsprpub/configure{.in,} \ + || die + + #Fix compilation with curl-7.21.7 bug 376027 + sed -e '/#include /d' \ + -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/http_upload.cc \ + -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/libcurl_wrapper.cc \ + -i "${S}"/config/system-headers \ + -i "${S}"/js/src/config/system-headers || die "Sed failed" + + # 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 + + eautoreconf +} + +src_configure() { + MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + MEXTENSIONS="default" + + #################################### + # + # 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" + + # We must force enable jemalloc 3 threw .mozconfig + echo "export MOZ_JEMALLOC=1" >> ${S}/.mozconfig + + mozconfig_annotate '' --prefix="${EPREFIX}"/usr + mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir) + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" + mozconfig_annotate '' --disable-gconf + mozconfig_annotate '' --disable-mailnews + mozconfig_annotate '' --enable-canvas + mozconfig_annotate '' --enable-safe-browsing + mozconfig_annotate '' --with-system-png + mozconfig_annotate '' --enable-system-ffi + + # Other ff-specific settings + mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} + mozconfig_annotate '' --target="${CTARGET:-${CHOST}}" + mozconfig_annotate '' --build="${CTARGET:-${CHOST}}" + + mozconfig_use_enable gstreamer + mozconfig_use_enable system-sqlite + # Both methodjit and tracejit conflict with PaX + mozconfig_use_enable jit methodjit + mozconfig_use_enable jit tracejit + + # Allow for a proper pgo build + if use pgo; then + echo "mk_add_options PROFILE_GEN_SCRIPT='\$(PYTHON) \$(OBJDIR)/_profile/pgo/profileserver.py'" >> "${S}"/.mozconfig + fi + + # Finalize and report settings + mozconfig_final + + if [[ $(gcc-major-version) -lt 4 ]]; then + append-cxxflags -fno-stack-protector + elif [[ $(gcc-major-version) -gt 4 || $(gcc-minor-version) -gt 3 ]]; then + if use amd64 || use x86; then + append-flags -mno-avx + fi + fi +} + +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 -n "${cards}"; then + # FOSS drivers are fine + addpredict "${cards}" + else + 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 + + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \ + MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + Xemake -f client.mk profiledbuild || die "Xemake failed" + else + CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \ + MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + emake -f client.mk || die "emake failed" + fi + +} + +src_install() { + MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # MOZ_BUILD_ROOT, and hence OBJ_DIR change depending on arch, compiler, pgo, etc. + local obj_dir="$(echo */config.log)" + obj_dir="${obj_dir%/*}" + cd "${S}/${obj_dir}" + + # Without methodjit and tracejit there's no conflict with PaX + if use jit; then + # Pax mark xpcshell for hardened support, only used for startupcache creation. + pax-mark m "${S}/${obj_dir}"/dist/bin/xpcshell + fi + + # Add our default prefs for firefox + cp "${FILESDIR}"/gentoo-default-prefs.js-1 \ + "${S}/${obj_dir}/dist/bin/defaults/preferences/all-gentoo.js" || die + + MOZ_MAKE_FLAGS="${MAKEOPTS}" \ + emake DESTDIR="${D}" install || die "emake install failed" + + # 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" + else + sizes="16 22 24 32 256" + icon_path="${S}/browser/branding/official" + icon="${PN}" + name="Mozilla Firefox" + fi + + # Install icons and .desktop for menu entry + for size in ${sizes}; do + insinto "/usr/share/icons/hicolor/${size}x${size}/apps" + newins "${icon_path}/default${size}.png" "${icon}.png" || die + done + # The 128x128 icon has a different name + insinto "/usr/share/icons/hicolor/128x128/apps" + newins "${icon_path}/mozicon128.png" "${icon}.png" || die + # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs + newicon "${icon_path}/content/icon48.png" "${icon}.png" || die + newmenu "${FILESDIR}/icon/${PN}.desktop" "${PN}.desktop" || die + sed -i -e "s:@NAME@:${name}:" -e "s:@ICON@:${icon}:" \ + "${ED}/usr/share/applications/${PN}.desktop" || die + + # Add StartupNotify=true bug 237317 + if use startup-notification ; then + echo "StartupNotify=true" >> "${ED}/usr/share/applications/${PN}.desktop" + fi + + # Without methodjit and tracejit there's no conflict with PaX + if use jit; then + # Required in order to use plugins and even run firefox on hardened. + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin} + fi + + # Plugin-container needs to be pax-marked for hardened to ensure plugins such as flash + # continue to work as expected. + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/plugin-container + + # Plugins dir + share_plugins_dir + + if use minimal; then + rm -rf "${ED}"/usr/include "${ED}${MOZILLA_FIVE_HOME}"/{idl,include,lib,sdk} || \ + die "Failed to remove sdk and headers" + 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 +}