summaryrefslogtreecommitdiff
path: root/libre/icecat/PKGBUILD
diff options
context:
space:
mode:
authorAndreas Grapentin <andreas@grapentin.org>2018-01-31 19:17:50 +0100
committerAndreas Grapentin <andreas@grapentin.org>2018-01-31 21:30:16 +0100
commit431a78910174d31678e7553ec15bff750d42d96b (patch)
treea56115183992de1a4bfa6cc26218613b0b8bf686 /libre/icecat/PKGBUILD
parente6965155b46d5f632a91fadc0ce7e40edc1459c1 (diff)
downloadabslibre-431a78910174d31678e7553ec15bff750d42d96b.tar.gz
abslibre-431a78910174d31678e7553ec15bff750d42d96b.tar.bz2
abslibre-431a78910174d31678e7553ec15bff750d42d96b.zip
libre/icecat: rebuilt and restructured
Diffstat (limited to 'libre/icecat/PKGBUILD')
-rw-r--r--libre/icecat/PKGBUILD285
1 files changed, 165 insertions, 120 deletions
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) <jan.steffens@gmail.com>
+# Contributor (Arch): Ionut Biru <ibiru@archlinux.org>
+# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
# Maintainer: Andreas Grapentin <andreas@grapentin.org>
# Contributor: André Silva <emulatorman@hyperbola.info>
# Contributor: Márcio Silva <coadde@hyperbola.info>
@@ -5,86 +9,127 @@
# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
# Contributor: fauno <fauno@kiwwwi.com.ar>
# Contributor: vando <facundo@esdebian.org>
-# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
# Contributor: Figue <ffigue at gmail>
-# Thank you very much to the older contributors:
# Contributor: evr <evanroman at gmail>
# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
-_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 <<END
+. \$topsrcdir/browser/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --enable-release
+ac_add_options --enable-gold
+ac_add_options --enable-pie
+ac_add_options --enable-optimize="-O2"
+
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+# Branding
+ac_add_options --enable-official-branding
+ac_add_options --with-app-basename=icecat
+ac_add_options --with-app-name=icecat
+ac_add_options --enable-update-channel=release
+ac_add_options --with-distribution-id=org.gnu
+
+# System libraries
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-icu
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+
+# Features
+ac_add_options --enable-alsa
+ac_add_options --enable-startup-notification
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-safe-browsing
+ac_add_options --disable-url-classifier
+ac_add_options --disable-eme
+END
- mv $pkgname-${pkgver%_*} "$srcdir/$GNU_BUILD"
- cd "$srcdir/$GNU_BUILD"
+ if [[ "$CARCH" == arm* ]]; then
+ sed -i \
+ -e '/enable-gold/s/^/#/' \
+ -e '/enable-pie/s/^/#/' \
+ -e '/enable-optimize/d' \
+ .mozconfig
+
+ cat >> .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" <<END
+// Use LANG environment variable to choose locale
+pref("intl.locale.matchOS", true);
- install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
+// Disable default browser checking.
+pref("browser.shell.checkDefaultBrowser", false);
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);
+
+// Disable "alt" as a shortcut key to open full menu bar. Conflicts with "alt" as a modifier
+pref("ui.key.menuAccessKeyFocuses", false);
+
+// Make sure that Firefox Social stuff are empty
+pref("social.whitelist", "");
+pref("social.directories", "");
+
+// Disable the GeoLocation API for content
+pref("geo.enabled", false);
+
+// Make sure that the request URL of the GeoLocation backend is empty
+pref("geo.wifi.uri", "");
+
+// Disable the least secure encryption protocols
+pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false);
+pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false);
+pref("security.ssl3.rsa_rc4_128_md5", false);
+pref("security.ssl3.rsa_rc4_128_sha", false);
+END
+
+ _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
+ install -Dm644 /dev/stdin "$_distini" <<END
+[Global]
+id=parabola
+version=1.0
+about=Icecat for Parabola GNU/Linux-libre
+
+[Preferences]
+app.distributor=parabola
+app.distributor.channel=$pkgname
+app.partner.parabola=parabola
+END
- brandingdir=browser/branding/official
- icondir="$pkgdir/usr/share/icons/hicolor"
for i in 16 22 24 32 48 256; do
- install -Dm644 "$brandingdir/default$i.png" \
- "$icondir/${i}x${i}/apps/$pkgname.png"
+ install -Dm644 "browser/branding/official/default$i.png" \
+ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
done
- install -Dm644 "$brandingdir/content/icon64.png" \
- "$icondir/64x64/apps/$pkgname.png"
- install -Dm644 "$brandingdir/mozicon128.png" \
- "$icondir/128x128/apps/$pkgname.png"
- install -Dm644 "$brandingdir/content/about-logo.png" \
- "$icondir/192x192/apps/$pkgname.png"
- install -Dm644 "$brandingdir/content/about-logo@2x.png" \
- "$icondir/384x384/apps/$pkgname.png"
-
- install -d "$pkgdir/usr/share/applications"
- install -m644 "$srcdir/$pkgname.desktop" \
- "$pkgdir/usr/share/applications"
+ install -Dm644 "browser/branding/official/content/icon64.png" \
+ "$pkgdir/usr/share/icons/hicolor/64x64/apps/$pkgname.png"
+ install -Dm644 "browser/branding/official/mozicon128.png" \
+ "$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
+ install -Dm644 "browser/branding/official/content/about-logo.png" \
+ "$pkgdir/usr/share/icons/hicolor/192x192/apps/$pkgname.png"
+ install -Dm644 "browser/branding/official/content/about-logo@2x.png" \
+ "$pkgdir/usr/share/icons/hicolor/384x384/apps/$pkgname.png"
+
+ install -Dm644 ../$pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+
+ # fix permissions on extensions folders
+ chmod 755 "$pkgdir"/usr/lib/$pkgname/browser/extensions/*/icons
# Use system-provided dictionaries
- rm -rf "$pkgdir/usr/lib/$pkgname/"{dictionaries,hyphenation}
- ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
- ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
+ rm -r "$pkgdir"/usr/lib/$pkgname/dictionaries
+ ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
+ ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
+
+ # Install a wrapper to avoid confusion about binary path
+ install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
+#!/bin/sh
+exec /usr/lib/$pkgname/$pkgname "\$@"
+END
- # Replace duplicate binary with symlink
+ # Replace duplicate binary with wrapper
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
- ln -sf $pkgname "$pkgdir/usr/lib/$pkgname/$pkgname-bin"
+ ln -srf "$pkgdir/usr/bin/$pkgname" \
+ "$pkgdir/usr/lib/$pkgname/$pkgname-bin"
}