From 431a78910174d31678e7553ec15bff750d42d96b Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Wed, 31 Jan 2018 19:17:50 +0100 Subject: libre/icecat: rebuilt and restructured --- libre/icecat/PKGBUILD | 285 +++++++++++++++++++++++++++++--------------------- 1 file changed, 165 insertions(+), 120 deletions(-) (limited to 'libre/icecat/PKGBUILD') diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD index 2f7936603..eb7983dd3 100644 --- a/libre/icecat/PKGBUILD +++ b/libre/icecat/PKGBUILD @@ -1,3 +1,7 @@ +# $Id$ +# Maintainer (Arch): Jan Alexander Steffens (heftig) +# Contributor (Arch): Ionut Biru +# Contributor (Arch): Jakub Schmidtke # Maintainer: Andreas Grapentin # Contributor: André Silva # Contributor: Márcio Silva @@ -5,86 +9,127 @@ # Contributor: Luke Shumaker # Contributor: fauno # Contributor: vando -# Contributor (Arch): Jakub Schmidtke # Contributor: Figue -# Thank you very much to the older contributors: # Contributor: evr # Contributor: Muhammad 'MJ' Jassim -_pgo=false +# parabola changes and rationale: +# - based on the PKGBUILD of iceweasel, sans rebranding + _pkgname=firefox pkgname=icecat _pkgver=52.3.0-gnu1 pkgver=${_pkgver//-/_} -pkgrel=7 - -pkgdesc="GNU IceCat, the standalone web browser based on Mozilla Firefox." -arch=(i686 x86_64 armv7h) +pkgrel=8 +pkgdesc="GNU Icecat - a libre standalone web browser based on Mozilla Firefox." +arch=(x86_64 i686 armv7h) license=(MPL GPL LGPL) -depends=(alsa-lib dbus-glib desktop-file-utils ffmpeg gtk2 gtk3 hicolor-icon-theme hunspell libvpx libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) +url="http://www.gnu.org/software/gnuzilla/" +depends=(gtk3 gtk2 mozilla-common libxt startup-notification mime-types dbus-glib ffmpeg + nss hunspell sqlite ttf-font libpulse libvpx icu) depends_x86_64=("icu>=60" "icu<61") depends_i686=("icu>=60" "icu<61") depends_armv7h=("icu>=60" "icu<61") -makedepends=(autoconf2.13 diffutils gconf imake inetutils libpulse mesa mozilla-searchplugins python2 unzip yasm zip) -options=(!emptydirs !makeflags debug) -replaces=("$_pkgname") -conflicts=("$_pkgname") -provides=("$_pkgname") -if $_pgo; then - makedepends+=(xorg-server-xvfb) - options+=(!ccache) -fi +makedepends=(unzip zip diffutils python2 yasm mesa imake gconf inetutils xorg-server-xvfb + autoconf2.13 rust clang llvm jack mozilla-searchplugins) optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'upower: Battery API') -url="http://www.gnu.org/software/gnuzilla/" -install=$pkgname.install +options=(!emptydirs !makeflags !strip) +replaces=("$_pkgname") +conflicts=("$_pkgname") source=(http://ftp.gnu.org/gnu/gnuzilla/${_pkgver%-*}/$pkgname-$_pkgver.tar.bz2{,.sig} - mozconfig - libre.patch - gnu_headshadow.png $pkgname.desktop - $pkgname-install-dir.patch - vendor.js + $pkgname-install-dir.patch no-crmf.diff $pkgname-fixed-loading-icon.png - mozilla-8904705.patch - mozilla-8909448.patch + mozilla-8904705.patch mozilla-8909448.patch disable-crypto-hardening-settings.patch disable-spoofSource-referer.patch - no-crmf.patch - no-neon.patch) + gnu_headshadow.png + libre.patch) sha256sums=('699ab2b41d4428ef5e360f3f33d98bc52723315cedac20bb03619846ca895302' 'SKIP' - '04952e0910c7c0d24faaa1ffa486dc3dae9f2c52548ff977858bec08ccb400f3' - '76a657a90371e637e7c4b371b71a15c85acafcece6277455e9ede84ffe104d3e' - '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' '52df9ffeb52166ed4abd9a132ee4a9017b9c4980f0725ba383610ccfb06d4745' '5bdab2de5520fb4d3dbc453d9f73d20e0e077bf652bc780fc17184ba6c718a47' - '977aa49b940f1da049cefa2878a63ac6669a78e63e9d55bb11db7b8f8fb64c33' + 'cf224d69e89f37f92202061669014b99fbf7b1fec38fd8ba9f957711fa095729' '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' 'dc4feddbf22ea11ae2513c68b7f3fc9047850d055a7f30d31a7ee94d7d5de12a' '8ed42e75b577d57e4b07f1d70137cb8e82f757abb616f1cfea694a041ad5679e' 'bb1fc90d117c4a7810e202d23ff44a2dac11b675336533054b5a70dd8606df38' 'c50043266e69f5844e6dce9ea7193af79587dcaa66806932d7867281a176f03e' - 'cf224d69e89f37f92202061669014b99fbf7b1fec38fd8ba9f957711fa095729' - '6d0c1c9ca28b20d206ce24ca84f4d4e3f5d062a2e9cb7445fcb6c2cfea959b4a') -validpgpkeys=( - 'A57369A8BABC2542B5A0368C3C76EED7D7E04784' # Ruben Rodriguez -) + '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' + '76a657a90371e637e7c4b371b71a15c85acafcece6277455e9ede84ffe104d3e') +validpgpkeys=('A57369A8BABC2542B5A0368C3C76EED7D7E04784') # Ruben Rodriguez prepare() { - export GNU_BUILD="gnuzilla-release" + mkdir path + ln -s /usr/bin/python2 path/python + + cd "$srcdir/$pkgname-${pkgver%_*}" + patch -Np1 -i ../$pkgname-install-dir.patch + + # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 + patch -Np1 -i ../no-crmf.diff + + cat >.mozconfig <> .mozconfig << END +ac_add_options --disable-webrtc +ac_add_options --disable-elf-hack +ac_add_options --enable-optimize="-g -O2 -fno-schedule-insns" +END + fi # Put gnu_headshadow.png in the source code install -m644 "$srcdir/gnu_headshadow.png" \ browser/base/content/abouthome - # Install to /usr/lib/$pkgname - patch -Np1 -i "$srcdir/$pkgname-install-dir.patch" # Patch and remove anything that's left patch -Np1 -i "$srcdir/libre.patch" @@ -92,18 +137,6 @@ prepare() { sed -i '\|abouthome/snippet|d ' browser/base/jar.mn - # Load our build config, disable SafeSearch - cp "$srcdir/mozconfig" .mozconfig - - mkdir "$srcdir/path" - - # WebRTC build tries to execute "python" and expects Python 2 - ln -s /usr/bin/python2 "$srcdir/path/python" - - # Configure script misdetects the preprocessor without an optimization level - # https://bugs.archlinux.org/task/34644 - sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure - # Fix tab loading icon (doesn't work with libpng 1.6) # https://bugzilla.mozilla.org/show_bug.cgi?id=841734 cp "$srcdir/$pkgname-fixed-loading-icon.png" \ @@ -125,91 +158,103 @@ prepare() { # Disable spoofSource referer since it breaks referer function used by some sites # https://labs.parabola.nu/issues/1073 patch -Np1 -i "$srcdir/disable-spoofSource-referer.patch" - - # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 - patch -Np1 -i "$srcdir/no-crmf.patch" - - # ARM-specific changes: - if [[ "$CARCH" == arm* ]]; then - sed -i '/ac_add_options --enable-rust/d' .mozconfig - echo "ac_add_options --disable-ion" >> .mozconfig - echo "ac_add_options --disable-elf-hack" >> .mozconfig - echo "ac_add_options --disable-webrtc" >> .mozconfig - - # Disable gold linker, reduce memory consumption at link time - sed -i '/ac_add_options --enable-gold/d' .mozconfig - LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" - echo "ac_add_options --disable-tests" >> .mozconfig - echo "ac_add_options --disable-debug" >> .mozconfig - - echo "ac_add_options --disable-neon" >> .mozconfig - patch -Np0 -i ../no-neon.patch - fi } build() { - export GNU_BUILD="gnuzilla-release" - - cd "$srcdir/$GNU_BUILD" + cd "$srcdir/$pkgname-${pkgver%_*}" # _FORTIFY_SOURCE causes configure failures CPPFLAGS+=" -O2" - # Hardening - LDFLAGS+=" -Wl,-z,now" - - # GCC 6 - CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" - CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" - export PATH="$srcdir/path:$PATH" - export PYTHON="/usr/bin/python2" - - if $_pgo; then - # Do PGO - xvfb-run -a -s "-extension GLX -screen 0 1280x1024x24" \ - make -f client.mk build MOZ_PGO=1 - else - make -f client.mk build - fi + + # Do PGO + #xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \ + # make -f client.mk build MOZ_PGO=1 + make -f client.mk build } package() { - export GNU_BUILD="gnuzilla-release" - - cd "$srcdir/$GNU_BUILD" + cd "$srcdir/$pkgname-${pkgver%_*}" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install - # fix permissions on extensions folders - chmod 755 "$pkgdir"/usr/lib/$pkgname/browser/extensions/*/icons + _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" + install -Dm644 /dev/stdin "$_vendorjs" <