# Maintainer: Jesus E. # Based on iceweasel-esr and basilisk packages if [ "${CARCH}" = "i686" ]; then _pgo=false else _pgo=true fi _pkgname=UXP pkgname=iceweasel-uxp _pkgver=2021.06.02 _appver=3.0 pkgver=52.9.${_pkgver//./} pkgrel=5 pkgdesc="A new generation of Iceweasel, an XUL-based standalone web browser on the Unified XUL Platform (UXP)." arch=(i686 x86_64) license=(MPL-2.0) depends=(ffmpeg gtk2 libevent libxt sndio hunspell) makedepends=(autoconf-legacy diffutils xorg-imake mesa tauthon unzip yasm zip) options=(!emptydirs !makeflags !strip debug) if $_pgo; then makedepends+=(xenocara-server-xvfb) options+=(!ccache) fi optdepends=('speech-dispatcher: Text-to-Speech') url="https://wiki.hyperbola.info/$pkgname" replaces=('basilisk' 'firefox' 'firefox-esr' 'icecat' 'iceweasel' 'iceweasel-esr') conflicts=('basilisk' 'firefox' 'firefox-esr' 'icecat' 'iceweasel' 'iceweasel-esr') provides=('basilisk' 'firefox' 'firefox-esr' 'icecat' 'iceweasel' 'iceweasel-esr') install=$pkgname.install source=("https://repo.hyperbola.info:50000/other/$_pkgname/$_pkgname-$_pkgver.tar.gz" "https://repo.hyperbola.info:50000/other/$pkgname/$pkgname-$_appver.tar.gz" mozconfig $pkgname.desktop vendor.js LICENSE # Application patches 0001-Restore-risky-system-libraries.patch 0002-Add-iceweasel-uxp-application-specfic-override.patch 0003-Uplift-enable-proxy-bypass-protection-flag.patch 0004-Hardcode-AppName-in-nsAppRunner.patch 0005-Disable-SSLKEYLOGFILE-in-NSS.patch 0006-Fix-PGO-Build.patch # build bustage work-around 0007-init-configure-patch.patch # libcubeb patch 0008-Update-libcubeb-to-a1200c34.patch 0009-Tauthon.patch # Additional application patches 0010-remove-malfunctional-searchplugins.patch 0011-$pkgname-install-dir.patch) sha512sums=('4513e30b38229654f1d02a6f4ba7914408d2169a95884560a9b1024a33fab5292dce41e113be2959fd2efbd8abd0763926352ee4362606a03700cb3ac53aeffa' 'f78df3239819b5be0887757fba3c1f9f422f2bd69299d76d15f2d5c71b3fe69492ac962a447e5b0fac2a0b3c03d77b72531dbde31399fe1e31a20e72ae7e0b2f' 'b81e56ff312d22a9c32a9719fa8dfb1b3d6a3c94bcf697aa77b0df62f440a82ed49684de8486993c38940af1ea6ade44f9d5dcdbc41450a7157a8c2081363c5c' '42f0003895200da7a311226d6a14245c667a1ed1c643b7a2a0f2676d2b30e0881c6198909eead14777584bb6f81733205503e6a15c78ed581d39d5bfb6b95ec4' 'eea256d545108077f90d0351ec6e43029c1d687bf532795176504b8e35e17a68b45f78395126f32f091e54adfd9209b22d361e8d07085a0b2eaf5edd3ddcdb58' '5b49d98ce0740ced95de8b8b39a886ee8bc5071302c4c20dbe0421b27dd1ff1aed13115819fc5fd8309745f91a94cf4c8038cf993c6237a536010185727cd7c9' '45bb48b4d8436ef0d9535d3891848bafc3c80ff187597591533eab70a0b160eb2825c4856698e813e5858f8baaf9f054abbcd5ce6d2763a374ef3d1917952f27' '21b137b200a3c2cd91ae6b80a704d1c82c03c590d7f6215135c7bf32a8d4c6ebf7526fe7ec52321e9a2513b11d18418d2aaddea4171a31a3c726a2e02b761118' '140dec7c094c04a1180655136d85b0f921bb7461298ff1f5d02721373be838a732aeb9684550857574ce4d056f26873f28bd7e4371ee602dc73f64d0ff5ec1fe' '23e1c095820165a3d35f10c0eb2e4e4cf62296bb8b16d18b9bf4aefadd641539a710bb4907285ac6e014a70d6986ac9c38ebe718d11fb3a8333770dcf153ffbd' '4d87565a2ce99a135130fa4340f2f6ab29330d7b7e8eb40607c69951b6e807733e4dc2885bd0082c658605809103ac445d67849183ce1d5ed5aaf21dd412b1ef' '787e271adba2f802737e381aa370331570b2d5254e05d524dc0dd1c941839f9e38a725964104c1e51ba41bb0d585b295eb864477bb66768b19646fb0815ffb9d' '090773648376a996f03094309dd66c3b868a8923d544a02abc44eb8c374603e0126ae72182d9f6c9030fbddefc5d8cdd4d7ca7c817ac02bceb9fba6f3bb27f33' '76f4bac91536785eadfc4bc5a220b586f34acbe36e22b16d65163c0bebf767740d1c65e0f86fe8db550749aa53736d1c735b78b879742834202d7ca9e01f98da' '07a2e719c372efc56c595a70a7faebccbee80a15739ffc8da4a47e054f914b897f8998a83852d39840a223130b521f2b58328a547994cf58f7685afd6238e63f' 'e39f63f0f9adcdaf688b0d91030fb5aa2690ee8ccf97049b84f3bc19a61ba0ec09a3b61df2c15707674eb3aaf56e80fc2cb6709c3f6fbef3133c92f07faecb82' '30d607ed2e6c0da75930a87191c4a703f47ca918bb33748bd5f62e3f7fd6846605b65aa1f3825da48bb9828188ef784fd3c953a0673c60a28dfa8a74a13195c1') prepare() { # Move our application into the Unified XUL Platform cd "$srcdir/$_pkgname-$_pkgver" mkdir -p application mv "$srcdir/$pkgname-$_appver" application/$pkgname # Allow us to build with system libs (this is not recommended/untested per UXP devs) patch -p1 -i "$srcdir/0001-Restore-risky-system-libraries.patch" # Apply Iceweasel-UXP application specific overrides to UXP patch -p1 -i "$srcdir/0002-Add-iceweasel-uxp-application-specfic-override.patch" # Uplift enable-proxy-bypass-protection flag patch -p1 -i "$srcdir/0003-Uplift-enable-proxy-bypass-protection-flag.patch" # Hardcode AppName in nsAppRunner patch -p1 -i "$srcdir/0004-Hardcode-AppName-in-nsAppRunner.patch" # Disable SSLKEYLOGFILE in NSS patch -p1 -i "$srcdir/0005-Disable-SSLKEYLOGFILE-in-NSS.patch" # Fix PGO build patch -p1 -i "$srcdir/0006-Fix-PGO-Build.patch" # Apply configure fix (Next release) patch -p1 -i "$srcdir/0007-init-configure-patch.patch" # Apply and update libcubeb for sndio support patch -p1 -i "$srcdir/0008-Update-libcubeb-to-a1200c34.patch" # Apply Tauthon patch instead of using Python patch -p1 -i "$srcdir/0009-Tauthon.patch" # Remove bad credit records for some CA issuers such as CNNIC, StartCom, Symantec and WoSign sed -e '/^# Certificate .*\(CNNIC\|China\|GDCA\|StartCom\|Symantec\|UCA\|WoSign\)/,/^CKA_TRUST_STEP_UP_APPROVED/d' \ -i security/nss/lib/ckfw/builtins/certdata.txt # Remove further bad credit records for some CA issuers such as GDCA, UCA, vTrus and TrustCor sed -e '/^# Certificate .*\(GDCA\|UCA\|vTrus\|TrustCor\)/,/^CKA_TRUST_STEP_UP_APPROVED/d' \ -i security/nss/lib/ckfw/builtins/certdata.txt # Remove malfunctional searchplugins patch -Np1 -i ${srcdir}/0010-remove-malfunctional-searchplugins.patch rm "application/$pkgname/locales/searchplugins/"{gnusocial,invidious,invidious-tor,searx,searx-tor,yacy}.xml # Install to /usr/lib/iceweasel-uxp patch -p1 -i "$srcdir/0011-$pkgname-install-dir.patch" # Adapt Iceweasel-UXP version to $pkgver sed -i "s|52.9.0_YYYYMMDD|52.9.YYYYMMDD| s|MOZ_APP_VERSION[=]52[.]9[.].*|MOZ_APP_VERSION=52.9.${_pkgver//./}| s|MOZ_APP_VERSION_DISPLAY[=].*date.*|MOZ_APP_VERSION_DISPLAY=${_pkgver//./}| " application/$pkgname/confvars.sh # Add missing versionField.textContent in aboutDialog.js sed -i 's|let version [=] Services[.]appinfo[.]version[;]|let version = Services.appinfo.version;\n versionField.textContent = version;|' application/$pkgname/base/content/aboutDialog.js # Load our build config cp "$srcdir/mozconfig" .mozconfig mkdir "$srcdir/path" ln -s /usr/bin/tauthon "$srcdir/path/python" } build() { cd "$srcdir/$_pkgname-$_pkgver" # _FORTIFY_SOURCE causes configure failures CPPFLAGS+=" -O2" export PATH="$srcdir/path:$PATH" if $_pgo; then # Do PGO xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \ make -f client.mk build MOZ_PGO=1 else make -f client.mk build fi } package() { cd "$srcdir/$_pkgname-$_pkgver" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" install -Dm644 "$srcdir/vendor.js" "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" for i in 16 32 48; do install -Dm644 application/$pkgname/branding/${pkgname%-*}/default$i.png \ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png" done install -Dm644 application/$pkgname/branding/${pkgname%-*}/content/icon64.png \ "$pkgdir/usr/share/icons/hicolor/64x64/apps/$pkgname.png" install -Dm644 application/$pkgname/branding/${pkgname%-*}/content/about-logo.png \ "$pkgdir/usr/share/icons/hicolor/192x192/apps/$pkgname.png" install -Dm644 application/$pkgname/branding/${pkgname%-*}/content/about-logo@2x.png \ "$pkgdir/usr/share/icons/hicolor/384x384/apps/$pkgname.png" install -Dm644 "$srcdir/$pkgname.desktop" \ "$pkgdir/usr/share/applications/$pkgname.desktop" # 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" rm "$pkgdir/usr/bin/$pkgname" ln -srf "$pkgdir/usr/lib/$pkgname/$pkgname" \ "$pkgdir/usr/bin/$pkgname" }