diff options
Diffstat (limited to 'libre/iceweasel-libre')
-rw-r--r-- | libre/iceweasel-libre/PKGBUILD | 84 | ||||
-rw-r--r-- | libre/iceweasel-libre/mozconfig.pgo | 4 |
2 files changed, 57 insertions, 31 deletions
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD index 6dc52a213..7a8d85ff0 100644 --- a/libre/iceweasel-libre/PKGBUILD +++ b/libre/iceweasel-libre/PKGBUILD @@ -14,7 +14,7 @@ _pgo=true # We're getting this from Debian Experimental _debname=iceweasel -_debver=20.0 +_debver=20.0.1 _debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -25,19 +25,21 @@ pkgver=$_debver.$_debrel pkgrel=1 pkgdesc="A libre version of Debian Iceweasel, the standalone web browser based on Mozilla Firefox." -arch=('i686' 'x86_64' 'mips64el') -license=('MPL' 'GPL' 'LGPL') -depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss>=3.14.1' 'sqlite3' 'startup-notification') -makedepends=( 'autoconf2.13' 'diffutils' 'imagemagick' 'libidl2' 'librsvg' 'libxslt' 'mesa' 'pkg-config' 'python2' 'quilt' 'unzip' 'zip') +arch=(i686 x86_64 mips64el) +license=(MPL GPL LGPL) +depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification) +makedepends=(autoconf2.13 diffutils imagemagick libidl2 librsvg libxslt mesa pkg-config python2 quilt unzip zip) [ "$CARCH" != "mips64el" ] && makedepends+=('yasm') +options=(!emptydirs) if $_pgo; then - makedepends+=('xorg-server-xvfb') - options=(!ccache) + makedepends+=(xorg-server-xvfb) + options+=(!ccache) fi - optdepends=('networkmanager: Location detection via available WiFi networks') -url="http://www.geticeweasel.org/" +url="http://packages.debian.org/experimental/${_pkgname}" install=iceweasel.install +replaces=('firefox') +conflicts=('firefox') provides=('firefox') source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" "$_debrepo/`debfile $_debname`_$_debver-$_debrel.debian.tar.gz" @@ -53,7 +55,7 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" md5sums=('22daa24b6490c654f131550cbf20fad3' '0c70ab52f35701558081df3d360361a2' 'f90c6a70d0a6d0a9e7f9a0eed6aeffd3' - 'dfeb4ab2c96aae3356a4c347eee0b97b' + '383e8e2a97a8b13fe56d153adb6878b6' '5addd418bf32b673fdfe80c8fefbea1a' '7b9e5996dd9fe0b186a43a297db1c6b5' 'abf5ecb74caa857abb42bcfbb3442d9c' @@ -62,20 +64,12 @@ md5sums=('22daa24b6490c654f131550cbf20fad3' 'a8fc4658d45b6bf9350023e5c3f34e56' 'd0e1f2625cd9f7234abdeb55aee00529') -build() { - # WebRTC build tries to execute "python" and expects Python 2 - # Workaround taken from chromium PKGBUILD on Archlinux - mkdir "$srcdir/python2-path" - ln -s /usr/bin/python2 "$srcdir/python2-path/python" - export PATH="$srcdir/python2-path:$PATH" - - export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname" - export PYTHON="/usr/bin/python2" +prepare() { + export DEBIAN_BUILD="mozilla-release" export QUILT_PATCHES=debian/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' - export DEBIAN_BUILD="mozilla-release" mv debian "$srcdir/$DEBIAN_BUILD" cd "$srcdir/$DEBIAN_BUILD" @@ -123,10 +117,6 @@ build() { echo "ac_add_options --disable-tracejit" >> .mozconfig fi - # Fix PRE_RELEASE_SUFFIX - sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \ - browser/base/Makefile.in - # This is a bug, we should fix it if [ "$CARCH" = "mips64el" ]; then # Fix MIPS N32 support. @@ -141,12 +131,50 @@ build() { echo 'ac_add_options --disable-jemalloc' >> .mozconfig fi + # Fix PRE_RELEASE_SUFFIX + sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \ + browser/base/Makefile.in + + mkdir "$srcdir/path" + + # WebRTC build tries to execute "python" and expects Python 2 + ln -s /usr/bin/python2 "$srcdir/path/python" + + # Use gold, as Mozilla can use some of its features, such as safe ICF + ln -s /usr/bin/ld.gold "$srcdir/path/ld" + + # configure script misdetects the preprocessor without an optimization level + # https://bugs.archlinux.org/task/34644 + sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure +} + +build() { + cd "$srcdir/$DEBIAN_BUILD" + + export PATH="$srcdir/path:$PATH" + export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname" + export PYTHON="/usr/bin/python2" + export MOZ_MAKE_FLAGS="$MAKEFLAGS" + unset MAKEFLAGS + if $_pgo; then - LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 :99 & - LD_PRELOAD="" DISPLAY=:99 make -j1 -f client.mk profiledbuild MOZ_MAKE_FLAGS="$MAKEFLAGS" - kill $! || true + # Enable PGO for x86_64 and mips64el only. i686 currently has problems: + # Either segfaults since gcc 4.8, or the linker runs out of memory + # If you discover that PGO again works on i686, please file a bug + if [[ $CARCH != i686 ]]; then + export DISPLAY=:99 + Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & + _fail=0 + + make -f client.mk build MOZ_PGO=1 || _fail=1 + + kill $! || true + return $_fail + else + make -f client.mk build + fi else - LD_PRELOAD="" make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS" + make -f client.mk build fi } diff --git a/libre/iceweasel-libre/mozconfig.pgo b/libre/iceweasel-libre/mozconfig.pgo index 30464c38c..2f4ebe32b 100644 --- a/libre/iceweasel-libre/mozconfig.pgo +++ b/libre/iceweasel-libre/mozconfig.pgo @@ -1,5 +1,3 @@ # PGO -ac_add_options --enable-profile-guided-optimization -mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py' -mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo' +mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py 10' |