# Maintainer (Arch:firefox): Jan Alexander Steffens (heftig) # Contributor (Arch:firefox): Ionut Biru # Contributor (Arch:firefox): Jakub Schmidtke # Contributor (ConnochaetOS): Henry Jensen # Maintainer: Andreas Grapentin # Maintainer: Luke Shumaker # Contributor: André Silva # Contributor: Márcio Silva # Contributor: fauno # Contributor: vando # Contributor: Figue # Contributor: taro-k # Contributor: Michał Masłowski # Contributor: Luke R. # Contributor: Isaac David # Contributor: bill-auger # Contributor: evr # Contributor: Muhammad 'MJ' Jassim # Rational for inclusion in [libre]: # - For FSDG compliance, we must modify the addons pages to use GNU # IceCat plugins sources, rather than addons.mozilla.org, which # hosts non-free addons. # - Disable EME (implemented via the libWideVine CDM) # # The above changes cause us to run afoul of the Firefox trademark # policy[1], so making those changes also requires us to: # - Rebrand to Iceweasel # # While we're at it, while not strictly nescessary for FSDG # compliance: # - Remove google api keys and usage # - Disable Mozilla telemetry and crash reporting (good manners # because of all of the other patching we're doing # # [1]: https://www.mozilla.org/en-US/foundation/trademarks/policy/ pkgname=iceweasel replaces=('firefox') epoch=1 pkgver=61.0.2 pkgrel=1 pkgrel+=.parabola1 pkgdesc="Libre standalone web browser based on Mozilla Firefox" arch=(x86_64) arch+=(i686 armv7h) license=(MPL GPL LGPL) url="https://wiki.parabola.nu/$pkgname" depends=(gtk3 mozilla-common libxt startup-notification mime-types dbus-glib ffmpeg nss hunspell-en_US sqlite ttf-font libpulse libvpx icu) depends+=('icu>=62' 'icu<63') makedepends=(unzip zip diffutils python2 yasm mesa imake gconf inetutils xorg-server-xvfb autoconf2.13 rust mercurial clang llvm jack gtk2 python) optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'pulseaudio: Audio support' 'speech-dispatcher: Text-to-Speech') options=(!emptydirs !makeflags !strip) _repo=https://hg.mozilla.org/mozilla-unified source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE" $pkgname.desktop) sha256sums=('SKIP' 'ed350ef2f528b999a621f7080fa80948be6b351e67ce32529fb32bcf47bb21fa' 'dabd5a0b8023e8ca13f6ae5fcb9e6c29531fc952bc781b4aa25c8a598187768e' 'SKIP' 'b695926b8a1f9560f0e11e0bad2ef42df6152d4f16f95af1027bc12c487c1ede') # Branding _brandingver=$(cut -d. -f1,2<<<"$pkgver") _brandingrel=1 makedepends+=(mozilla-searchplugins quilt libxslt imagemagick) source+=(https://repo.parabola.nu/other/iceweasel/${pkgname}_${_brandingver}-${_brandingrel}.branding.tar.xz{,.sig} libre.patch) validpgpkeys+=('BFA8008A8265677063B11BF47171986E4B745536') # Andreas Grapentin prepare() { cd mozilla-unified cat >.mozconfig <> .mozconfig <<- END ac_add_options --enable-optimize="-g -O2 -fno-schedule-insns" END fi # end [[ $CARCH = arm* ]] ## Rebranding local brandingdir="$srcdir/$pkgname-$_brandingver" sed -i '/lockPref("browser.startup.homepage_override.mstone"/d' \ "$brandingdir/branding/firefox-branding.js" # file dump rm -rf -- browser/branding/$pkgname cp -aT -- $brandingdir/branding browser/branding/$pkgname # patching rm -rf .pc 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 "Start Page" branding images in the source code install -m644 -t browser/base/content/abouthome -- \ "$brandingdir/branding"/{drm-free,gnu_headshadow,parabola-banner}.png install -m644 -t browser/extensions/onboarding/content/img -- \ "$brandingdir/branding/watermark.svg" # produce icons 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 "browser/branding/iceweasel/default$i.png" done # 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 -e '/"displayName": "Flash"/ s/Flash/SWF Player/' \ -e '/"displayName": "Shockwave"/ s/Shockwave/DCR Player/' \ -e '/"displayName": "QuickTime"/ s/QuickTime/MOV Player/' \ -e '/installLinux/ s/true/false/' \ -i -- browser/base/content/browser-plugins.js # re-use 'abouthome' page for 'newtab' page install -d browser/base/content/newtab cat browser/base/content/abouthome/aboutHome.xhtml > browser/base/content/newtab/newTab.xhtml # Load our searchplugins rm -rf -- browser/locales/searchplugins cp -aT -- /usr/lib/mozilla/searchplugins browser/locales/searchplugins # Disable various components at the source level sed -i 's/;1/;0/' toolkit/components/telemetry/TelemetryStartup.manifest #sed -i 's/;1/;0/' browser/experiments/Experiments.manifest sed -i '/pocket/d' browser/extensions/moz.build sed -i '/activity-stream/d' browser/extensions/moz.build } build() { cd mozilla-unified export MOZ_SOURCE_REPO="$_repo" ./mach build ./mach buildsymbols } package() { cd mozilla-unified DESTDIR="$pkgdir" ./mach install find . -name '*crashreporter-symbols-full.zip' -exec cp -fvt "$startdir" {} + _vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" install -Dm644 /dev/stdin "$_vendorjs" <> "$_vendorjs" <