# 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=55.0.3 pkgrel=3.1 _brandingver=54.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 'icu=59.1' libvpx libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) 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) makedepends_x86_64=("${makedepends_i686[@]}") optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'speech-dispatcher: Text-to-Speech') replaces=("$pkgname-libre" "$_oldname") conflicts=("$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 mozilla-1373988.patch mozilla-1384655.patch no-crmf.patch mozilla-build-arm.patch wifi-disentangle.patch wifi-fix-interface.patch glibc-2.26-fix.diff harmony-fix.diff clip-ft-glyph.diff) sha256sums=('891836df85f8798c49f7b25661820f64d1311d59703c716eda471819b93ccda2' '03191fa14ab599695b26361f2de6e93fbb518f24142689496480d78976cc52cb' 'SKIP' 'baaa0665f81f7722a32c23f92c18aaf3203f0346acbe6c5bab45e01e69691bd8' 'edb33b378420836ab4990768c395a961aa71c3dad807480ae7e958574f5835a5' '32f1fe3ad4f80d0ae419064db2abe49b97cd7cb18c35d68be1a2befb60172a2a' '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' '56eba484179c7f498076f8dc603d8795e99dce8c6ea1da9736318c59d666bff6' '250f7aaa3c1362f9d2bb2211cd605eab93a5e806e8540f184979d41acf46142a' '46e588300797bda599c8f5157437fd79f88b6e1179f2fde49e0405e435e03efa' '085b968e613a5aadbc8cbec20f4db80d76c4fd7cfe75642babefa6385663cbb5' 'd28b14a870aa100273243039d08ab9e64d325c28b6291413441146ebdf5d38ee' 'e260e555b261aabab1e48786dd514eeea056e4402af7cfd4dfd1d32858441484' 'fbb6011501a74a8ea6d01c041870fcefb7ef2859c134aedc676e5f6452833f65' '644ec78361bc9fc64df706e9393a630e155c219202d0d557e424556820e30dcf' 'ce24a6532179aa2b772a6ae7cf186e226a4aaffcc234f1b62e9aadbf4f668e0a' '2f8064a67c025d306f14fdd83c0ecae8d256231ec76a98150acd89162d40c3e1' '56eecee8162c138c442773d66483886f1242c8dd2b16eed5711ae5e63d9b0e3a' 'f068b84ad31556095145d8fefc012dd3d1458948533ed3fff6cbc7250b6e73ed' 'e98a3453d803cc7ddcb81a7dc83f883230dd8591bdf936fc5a868428979ed1f1' 'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8' '16bb776e9f3039321db747b2eaece0cda1320f3711fb853a68d67247b0aa065d' 'd5e5580a96ecc4a66ce12dde0737c1ed5cb31017a6ec488ffe372192ed893e1b') 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 # fix rust build #patch -Np1 -i "$srcdir/rusty-cheddar.patch" # Load our build config, disable SafeSearch cp "$srcdir/mozconfig" .mozconfig # 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=1393467 patch -Np1 -i ../clip-ft-glyph.diff # https://bugzilla.mozilla.org/show_bug.cgi?id=1400721 patch -Np1 -i ../harmony-fix.diff # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 patch -Np1 -i "$srcdir/no-crmf.patch" # https://bugzilla.mozilla.org/show_bug.cgi?id=1385667 # https://bugzilla.mozilla.org/show_bug.cgi?id=1394149 patch -Np1 -i ../glibc-2.26-fix.diff # https://bugzilla.mozilla.org/show_bug.cgi?id=1373988 patch -Np1 -i "$srcdir/mozilla-1373988.patch" # https://bugzilla.mozilla.org/show_bug.cgi?id=1384655 patch -Np1 -i "$srcdir/mozilla-1384655.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" # 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" }