summaryrefslogtreecommitdiff
path: root/libre/iceweasel-libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre/iceweasel-libre')
-rw-r--r--libre/iceweasel-libre/PKGBUILD84
-rw-r--r--libre/iceweasel-libre/mozconfig.pgo4
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'