# Maintainer: Andreas Grapentin # Contributor: André Silva # Contributor: Márcio Silva # Contributor (ConnochaetOS): Henry Jensen # Contributor: Luke Shumaker # Contributor: fauno # Contributor: vando # Contributor (Arch): Jakub Schmidtke # Contributor: Figue # Contributor: taro-k # Contributor: Michał Masłowski # Contributor: Luke R. # Contributor: Isaac David # Thank you very much to the older contributors: # Contributor: evr # Contributor: Muhammad 'MJ' Jassim _oldname=firefox pkgname=iceweasel epoch=1 pkgver=57.0.1 pkgrel=3 _brandingver=57.0 _brandingrel=1 _parabolarepo=https://repo.parabola.nu/other/iceweasel arch=(i686 x86_64 armv7h) pkgdesc="Iceweasel, the libre web browser based on Mozilla Firefox." url="https://wiki.parabola.nu/$pkgname" license=(MPL GPL LGPL) depends=(alsa-lib dbus-glib ffmpeg gtk2 gtk3 hunspell libvpx libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) depends_x86_64=(icu=60.1) depends_i686=(icu=60.1) depends_armv7h=(icu=60.1) makedepends=(autoconf2.13 diffutils gconf imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa mozilla-searchplugins pkg-config python2 quilt unzip yasm zip) makedepends_i686=(rust clang llvm) makedepends_x86_64=("${makedepends_i686[@]}") optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'speech-dispatcher: Text-to-Speech') replaces=("$_oldname-libre" "$pkgname-libre" "$_oldname") conflicts=("$_oldname-libre" "$pkgname-libre" "$_oldname") options=(!emptydirs !makeflags !strip debug) source=("https://ftp.mozilla.org/pub/$_oldname/releases/$pkgver/source/$_oldname-$pkgver.source.tar.xz" "$_parabolarepo/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz" "$_parabolarepo/${pkgname}_$_brandingver-$_brandingrel.branding.tar.xz.sig" mozconfig libre.patch remove-default-and-shell-icons-in-packaging-manifest.patch gnu_headshadow.png drm-free.png $pkgname.desktop $pkgname-install-dir.patch vendor.js distribution.ini enable-object-directory-paths.patch mozilla-1253216.patch no-crmf.patch mozilla-build-arm.patch wifi-disentangle.patch wifi-fix-interface.patch) sha256sums=('7db7829e0771acf1be253a8841b9dc96d2ad6490a8f1430fa074e5fd857181ba' 'e93f2363d7b414d207250eb1c63d955681f158c8d5678ef3d2e9232cdb0382c7' 'SKIP' '71e20557568330c29553201a6009060feb65921b021fff8053ad9f7cb67670fa' 'a2178c90d9ebb990990226d9ffdb6f94e20c7d6f9e00925fb42cf0df5c634bd9' '6e23fe534394bbab0041f5935cd23c2590285f7541b0a10f3042905676b1561e' '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' '56eba484179c7f498076f8dc603d8795e99dce8c6ea1da9736318c59d666bff6' '250f7aaa3c1362f9d2bb2211cd605eab93a5e806e8540f184979d41acf46142a' '46e588300797bda599c8f5157437fd79f88b6e1179f2fde49e0405e435e03efa' '085b968e613a5aadbc8cbec20f4db80d76c4fd7cfe75642babefa6385663cbb5' 'd28b14a870aa100273243039d08ab9e64d325c28b6291413441146ebdf5d38ee' 'ce1765c7812da53dc555103d54998d57890def127aa034b37f21dbfab65dde65' 'fbb6011501a74a8ea6d01c041870fcefb7ef2859c134aedc676e5f6452833f65' 'c0ceaaa83a0c79035cdb39b6c130064409dffa546ae2d576fa061b52e4a0392f' '56eecee8162c138c442773d66483886f1242c8dd2b16eed5711ae5e63d9b0e3a' 'f068b84ad31556095145d8fefc012dd3d1458948533ed3fff6cbc7250b6e73ed' 'e98a3453d803cc7ddcb81a7dc83f883230dd8591bdf936fc5a868428979ed1f1') validpgpkeys=( 'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin ) prepare() { cd "$srcdir/$_oldname-$pkgver" local brandingdir="$srcdir/$pkgname-$_brandingver" # Prepare branding for the Iceweasel packages mkdir -v browser/branding/$pkgname # copy the branding files cp -va $brandingdir/branding/* browser/branding/$pkgname # patch export QUILT_PATCHES=$brandingdir/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' quilt push -av # Put gnu_headshadow.png and drm-free.png in the source code install -m644 "$srcdir/"{gnu_headshadow,drm-free}.png \ browser/base/content/abouthome # Useless since we are doing it ourselves patch -Np1 -i "$srcdir/remove-default-and-shell-icons-in-packaging-manifest.patch" # Enable object directory paths for Iceweasel rebranding patch -Np1 -i "$srcdir/enable-object-directory-paths.patch" # Install to /usr/lib/iceweasel patch -Np1 -i "$srcdir/$pkgname-install-dir.patch" # Patch and remove anything that's left patch -Np1 -i "$srcdir/libre.patch" sed -i 's|Adobe Flash|SWF Player|g; ' browser/base/content/pageinfo/permissions.js \ browser/base/content/browser-plugins.js sed -i '\|["]displayName["][:] ["]Flash["]| s|Flash|SWF Player| \|["]displayName["][:] ["]Shockwave["]| s|Shockwave|DCR Player| \|["]displayName["][:] ["]QuickTime["]| s|QuickTime|MOV Player| \|installLinux| s|true|false| ' browser/base/content/browser-plugins.js # Load our build config, disable SafeSearch cp "$srcdir/mozconfig" .mozconfig # override the new newtab obscenity with the abouthome stuff cat browser/base/content/abouthome/aboutHome.xhtml > browser/base/content/newtab/newTab.xhtml # https://bugzilla.mozilla.org/show_bug.cgi?id=1314968 patch -Np1 -i ../wifi-disentangle.patch patch -Np1 -i ../wifi-fix-interface.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 patch -Np1 -i "$srcdir/no-crmf.patch" mkdir "$srcdir/path" ln -s /usr/bin/python2 "$srcdir/path/python" # Load our searchplugins rm -rv browser/locales/searchplugins cp -av /usr/lib/mozilla/searchplugins browser/locales # Disable various components at the source level sed -i 's|[;]1|;0|' toolkit/components/telemetry/TelemetryStartup.manifest || die "failed break telemetry startup" sed -i 's|[;]1|;0|' browser/experiments/Experiments.manifest || die "failed to break ExperimentsService" sed -i '/pocket/d' browser/extensions/moz.build || die "failed to wipe pocket" sed -i '/activity-stream/d' browser/extensions/moz.build || die "failed to wipe pocket" # 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 patch -p1 -i ../mozilla-1253216.patch patch -p1 -i ../mozilla-build-arm.patch fi } build() { cd "$srcdir/$_oldname-$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" make -f client.mk build } package() { cd "$srcdir/$_oldname-$pkgver" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 "$srcdir/vendor.js" "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" local shortver=$(echo $pkgver | cut -d'.' -f1,2) sed -i "s/@PKGVER@/$shortver/g" "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" local brandingdir="$srcdir/$pkgname-$_brandingver" # install iceweasel icons local icondir="$pkgdir/usr/share/icons/hicolor" for i in 16 22 24 32 48 64 128 192 256 384; do rsvg-convert -w $i -h $i "$brandingdir/branding/${pkgname}_icon.svg" \ -o "$brandingdir/default$i.png" install -Dm644 "$brandingdir/default$i.png" \ "$icondir/${i}x${i}/apps/$pkgname.png" done install -Dm644 "$brandingdir/branding/${pkgname}_icon.svg" \ "$icondir/scalable/apps/$pkgname.svg" # Parabola rebranding install -m644 "$srcdir/distribution.ini" \ "$pkgdir/usr/lib/$pkgname/distribution" # Install Iceweasel desktop install -d "$pkgdir/usr/share/applications" install -m644 "$srcdir/$pkgname.desktop" \ "$pkgdir/usr/share/applications" # 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" # Replace duplicate binary with symlink # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 ln -sf $pkgname "$pkgdir/usr/lib/$pkgname/$pkgname-bin" }