diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-10-24 15:18:39 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2019-10-24 15:18:39 -0700 |
commit | 125d7f1f316e6ebd086e150ac23a8ed81556cd36 (patch) | |
tree | ca3839d78ebf2ec318bcbaae3d5e7bcb774983e7 /PKGBUILD | |
parent | Fork as esr (diff) | |
download | firefox-esr-125d7f1f316e6ebd086e150ac23a8ed81556cd36.tar.xz |
Updated to 68.2.0
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 115 |
1 files changed, 94 insertions, 21 deletions
@@ -14,17 +14,20 @@ # Arch version enables debug symbols # Arch version lacks privacy and security by default +_modclang=0 +#_modclang=1 # FIXME + _pkgname=firefox pkgname=${_pkgname}-esr -pkgver=68.1.0 +pkgver=68.2.0 _pkgver=${pkgver}esr -pkgrel=1 +pkgrel=2 pkgdesc="Standalone web browser from mozilla.org" arch=(x86_64) license=(MPL GPL LGPL) url="https://www.mozilla.org/firefox/" -depends=(gtk3 mozilla-common libxt startup-notification mime-types dbus-glib - ffmpeg ttf-font libpulse alsa-lib +depends=(gtk3 mozilla-common libxt startup-notification mime-types dbus-glib ffmpeg + ttf-font libpulse alsa-lib bzip2 libffi icu libjpeg-turbo libevent libvpx nspr nss pixman libpng sqlite libwebp zlib) makedepends=(unzip zip diffutils python-setuptools yasm mesa imake inetutils xorg-server-xvfb autoconf2.13 rust clang llvm jack gtk2 @@ -40,22 +43,27 @@ options=(!emptydirs !makeflags) conflicts=(firefox) provides=(firefox) source=("https://archive.mozilla.org/pub/$_pkgname/releases/$_pkgver/source/$_pkgname-$_pkgver.source.tar.xz"{,.asc} - $_pkgname.desktop $_pkgname-symbolic.svg + no-relinking.patch + 0001-Use-remoting-name-for-GDK-application-names.patch + $_pkgname.desktop distribution.ini mozconfig.in + mozconfig.in.clang + mozconfig.in.clang.pgo mozconfig.common.override - 0001-Use-remoting-name-for-GDK-application-names.patch pgo-1.patch moz.configure.diff package-manifest.diff) -sha256sums=('f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac' +sha256sums=('85f1c2eaf68ebedcbc0b78a342f6d16ef0865dedd426a1bba94b75c85f716f38' 'SKIP' - '54dcf5e1b91db3f586a7e27814552f96578b9d9495b7b10b268e36f64b49d4d1' - '9a1a572dc88014882d54ba2d3079a1cf5b28fa03c5976ed2cb763c93dabbd797' + '2dc9d1aa5eb7798c89f46478f254ae61e4122b4d1956d6044426288627d8a014' + 'ab07ab26617ff76fce68e07c66b8aa9b96c2d3e5b5517e51a3c3eac2edd88894' + 'a9e5264257041c0b968425b5c97436ba48e8d294e1a0f02c59c35461ea245c33' '0ba4d1a619a3a5750a5a48c6bff8c6a69d3aa4be4c303032c5979ab5f68db208' '1cc0730e0f0285f45f30feeeee6d7757931b25263b35b041abd71c2e0486210d' + '6bf4638134915758466a912dc909fbad165e76cc3807e9eedc659f8f346575fa' + 'b9833cf28af757e17a34e5c7f9db89b97d5c56b8f55cb6bccb70fc48275318af' 'dcf70d24eedab79d811974a75663f0e84c5efca420da61fc444ebe311d0cada9' - 'ab07ab26617ff76fce68e07c66b8aa9b96c2d3e5b5517e51a3c3eac2edd88894' 'a8c15c9d54ef8b360c0932f4ccf5e74954f14e9a9c2a1ae924b6c392075b2b8c' 'ad8a270e1b2affb098440f82517c3952207b28ebf604fef695dad3e29a5ba30e' '927e400d6920b98d2fe7db2b6498f195135909a76e0da49441223956364d8227') @@ -65,14 +73,24 @@ prepare() { # mkdir mozbuild cd ${_pkgname}-${pkgver} + # Avoid relinking during buildsymbols + patch -Np1 -i ../no-relinking.patch + # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch - # Apply pgo patches - patch -p0 $srcdir/${_pkgname}-${pkgver}/security/sandbox/linux/moz.build $srcdir/pgo-1.patch + if [ "${_modclang}" != "1" ]; then + # Apply gcc pgo patches + patch -p0 $srcdir/${_pkgname}-${pkgver}/security/sandbox/linux/moz.build $srcdir/pgo-1.patch + fi - # Add the custom mozconfig - cp $srcdir/mozconfig.in $srcdir/${_pkgname}-${pkgver}/.mozconfig + if [ "${_modclang}" == "1" ]; then + # Add the custom mozconfig for pgo + cp $srcdir/mozconfig.in.clang.pgo $srcdir/${_pkgname}-${pkgver}/.mozconfig + else + # Add the custom mozconfig + cp $srcdir/mozconfig.in $srcdir/${_pkgname}-${pkgver}/.mozconfig + fi # MOZ_TELEMETRY_REPORTING only applied correctly when set in this override file cp $srcdir/mozconfig.common.override $srcdir/${_pkgname}-${pkgver}/build/mozconfig.common.override @@ -101,12 +119,58 @@ build() { export MOZ_NOSPAM=1 export MOZBUILD_STATE_PATH="$srcdir/mozbuild" + export CFLAGS="$CFLAGS -O3 -fstack-protector-all -fPIC" export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -fPIC" + # LTO needs more open files ulimit -n 4096 - msg2 "Building browser..." - xvfb-run -a -n 97 -s "-screen 0 1600x1200x24" ./mach build + + if [ "${_modclang}" == "1" ]; then + # clang does not support -fstack-clash-protection, so remove it + export CFLAGS="$(echo $CFLAGS | sed 's/ -fstack-clash-protection//' - )" + export CXXFLAGS="$(echo $CXXFLAGS | sed 's/ -fstack-clash-protection//' - )" +# # -fno-plt with cross-LTO causes obscure LLVM errors +# # LLVM ERROR: Function Import: link error +# CFLAGS="${CFLAGS/-fno-plt/}" +# CXXFLAGS="${CXXFLAGS/-fno-plt/}" + + # Do 3-tier PGO + msg2 "Building instrumented browser..." + ./mach build + + msg2 "Profiling instrumented browser..." + ./mach package + LLVM_PROFDATA=llvm-profdata \ + JARLOG_FILE="$PWD/jarlog" \ + xvfb-run -a -n 92 -s "-screen 0 1600x1200x24" \ + ./mach python build/pgo/profileserver.py + + if ! compgen -G '*.profraw' >&2; then + error "No profile data produced." + return 1 + fi + + if [[ ! -s jarlog ]]; then + error "No jar log produced." + return 1 + fi + + msg2 "Removing instrumented browser..." + ./mach clobber + + msg2 "Building optimized browser..." + # Add the custom mozconfig + cp $srcdir/mozconfig.in.clang $srcdir/${_pkgname}-${pkgver}/.mozconfig + cat >.mozconfig - <<END +ac_add_options --with-pgo-profile-path=${PWD@Q} +ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog +END + ./mach build + else + msg2 "Building optimized browser..." + xvfb-run -a -n 96 -s "-screen 0 1600x1200x24" ./mach build + fi msg2 "Building symbol archive..." ./mach buildsymbols @@ -124,21 +188,30 @@ package() { rm "$pkgdir/usr/bin/firefox" ln -s "/usr/lib/$_pkgname/firefox" "$pkgdir/usr/bin/firefox" + find . -name '*crashreporter-symbols-full.zip' -exec \ + cp -fvt "$startdir" {} + + # icons + local i for i in 16 22 24 32 48 64 128 256; do - install -Dm644 browser/branding/official/default$i.png \ + install -Dvm644 browser/branding/official/default$i.png \ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_pkgname.png" done - install -Dm644 browser/branding/official/content/about-logo.png \ + install -Dvm644 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 \ + install -Dvm644 browser/branding/official/content/about-logo@2x.png \ "$pkgdir/usr/share/icons/hicolor/384x384/apps/$_pkgname.png" - install -Dm644 ../$_pkgname-symbolic.svg \ + install -Dvm644 browser/branding/official/content/identity-icons-brand.svg \ "$pkgdir/usr/share/icons/hicolor/symbolic/apps/$_pkgname-symbolic.svg" # install desktop file - install -Dm644 ../$_pkgname.desktop \ + install -Dvm644 ../$_pkgname.desktop \ "$pkgdir/usr/share/applications/$_pkgname.desktop" + # Use system certificates + local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so" + if [[ -e $nssckbi ]]; then + ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi" + fi } |