diff options
-rw-r--r-- | 0001-Use-remoting-name-for-GDK-application-names.patch | 4 | ||||
-rw-r--r-- | PKGBUILD | 89 | ||||
-rw-r--r-- | mozconfig.in | 78 | ||||
-rw-r--r-- | mozconfig.in.clang | 33 | ||||
-rw-r--r-- | mozconfig.in.clang.pgo | 72 | ||||
-rw-r--r-- | mozconfig.in.gcc (renamed from mozconfig.in.pgo) | 29 |
6 files changed, 89 insertions, 216 deletions
diff --git a/0001-Use-remoting-name-for-GDK-application-names.patch b/0001-Use-remoting-name-for-GDK-application-names.patch index c3f4fde..605be7c 100644 --- a/0001-Use-remoting-name-for-GDK-application-names.patch +++ b/0001-Use-remoting-name-for-GDK-application-names.patch @@ -9,10 +9,10 @@ Subject: [PATCH] Use remoting name for GDK application names 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index 5eb43aa0ae632..ff331c3b2076e 100644 +index 3a9928cee4525..da60306cfaf01 100644 --- a/toolkit/xre/nsAppRunner.cpp +++ b/toolkit/xre/nsAppRunner.cpp -@@ -4363,11 +4363,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { +@@ -4358,11 +4358,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { // consistently. // Set program name to the one defined in application.ini. @@ -15,11 +15,10 @@ # Arch version lacks privacy and security by default _modclang=0 -#_modclang=1 # FIXME -_testgcc=0 +_modpgo=0 pkgname=firefox -pkgver=88.0.1 +pkgver=89.0.1 pkgrel=1 pkgdesc="Standalone web browser from mozilla.org" arch=(x86_64 aarch64) @@ -37,6 +36,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks' 'pulseaudio: PulseAudio support' 'speech-dispatcher: Text-to-Speech' 'hunspell-en_CA: Spell checking, Canadian English' + 'xdg-desktop-portal: Screensharing with Wayland' 'firefox-preferences: Custom vendor.js with security by default' 'firefox-preferences-basic: Custom vendor.js with less breaking changes') options=(!emptydirs !makeflags) @@ -46,59 +46,75 @@ source=( 0001-Use-remoting-name-for-GDK-application-names.patch $pkgname.desktop distribution.ini - mozconfig.in - mozconfig.in.pgo + mozconfig.in.gcc mozconfig.in.clang - mozconfig.in.clang.pgo mozconfig.common.override arc4_enable-lto-for-gcc.patch + firefox-gcc-build.patch arc4_enable-pgo-for-gcc.patch + pgo.patch arc4_remove-health-reporting.patch arc4_remove-system-addons.patch ) -b2sums=('9a5f5b77e927de9a2bd6a448d1037438e2481b252c28398ded19e01ca4f371595c089a215144b010d35a16437d4e54e2055c176bc47e63492b6bec87ca621f99' +b2sums=('43d37d0c916b5da6b5fa077e876349983733fa84be2c7341851c34cfa58588c8be3c30fc86db4c576c7ee32eaba3650914688ed82e03471fa8f5a246a5734db1' 'SKIP' - '896ea03a4f4cf9f095eee2aa0933bd1dd7cdf18c4a8bdad2fc099bf24af0a4d89dbf2c8f0387107f2cf0ce98035d06c388aa5df19e5c387cbed640261d873a24' + '284615a601003e0ca9d6abd3e986a13cd67dcdcda9ba201fac5d94fd15f30e91b8b2b215d9f3161c2a0954a2ce09f0b8a0a03959feadfd414b6d3bda23f13053' 'e18f2c22e394ca3b6758bc130245b254947e4d15921be3da443d6d7c3c4b0d22ead1b39fbc10a4f896edd19e2a1dffbd1cbb34dc4beb0621a6ddb70ccc53b3a7' '877eda442eb4730600dccf209a6e961ad3122ab456bbfda4ff041e8493ebaaf96224ac218360931259ff4214482f6bf65b3a3052f977ade1a274f38ffd859535' - '715b4f8d73bf07a02ea3cfdb75cb992331f354880b8194717720e45872fdbcd99534b6d73bf4caf7dc561df4060f07239eb1172b604cc7cbd31be9d3d72331e0' - '08d4e0768c2323b4905b3ba539594e88132b487a4eac2ab61df36020fe6f933c338afba918aea0becd10ecf29795bf94146cefc4f6b111ea658a20fdf6e899cd' - 'aa87016dabc182a4da3db1f29f4a6b274095be883febf848ddbe86615639b6a85f12b2c78ce6b18bba18516982330fb775083f4bab330738d95ee26d70f02dfa' - 'ffb7ca117004a084b1bd7baed6a11b0914ec391459d662fc8887edc3206eb25c41b09f713e9bfe0ed474333d9537295842b0617dd29e9ce222fde548cd9111aa' + '9a8bce9797afa2d62393e3cfe403d22d9c265cc490f0dbcef9851f07957736cf67fb7e9fb6dc4f2bf87f28ba67d6c6e5747571f2048a1f919491c6385403fae3' + 'da9bd7ed811ac7804862dba1c4401b9f810a975ba9f539e3445e98c2ccaf5fcc5108c0769fd2b46bae704fb0493d46bc342cbd34fbaeb5714f9d18d7cba305ba' '1c7ac58af8b817067c7d79ffef8d9100f513d77f4fc1a2bce2684ff8d8d3cbc3d37b31865c7e5d873fd71d4649374bbd25ca08166d8afb25ffbd597759655063' '3b76cfb76a3e527d4c77d61a127606aef0b46826d7a0f7866164e0b490098714cc11429002fc35ac32b75ffbc61f76596a5e984aea37f8876bcd939030bcfa21' + '69624493c96e98caecf5286ed77946f104feff9b61679bcc842f6d989a2b4b28acce47324f805925f55170935a37a0bc10c596b82b41391f9f8ef342c09a3d0e' '1250b2d4a713b241d9768dc386ecf9130d295587efd5070c2e494185436ca9d99a465b97ed80fe23ab14d6d07ecde8537a3a3d11ba843c4e3791b4df52e08f27' + '87dd810443be6acf41dad2cbdf8b14ba6ae68d55364e80560e96200e1acb866858068234088bae261c26e65e171b49d4f530ee4098f41e5c8cf855d1f2fe0e12' '1dce1277c0c8b83089551057ed61c8794aa65242d0c19573dab96081f00b1042af73fbc0a40ba49dfa31eff46f4636ffd985cf8e6bd28db614a639ca6c11c74e' '379adf3726664668f6167eaeab35dec40342d9288ff081d22a8363f163ab0945b17ce69e7d4276a31e99e56f690afa070c410c51a5060ed835356fd216256e7b') validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases prepare() { -# mkdir mozbuild + mkdir mozbuild cd ${pkgname}-${pkgver} # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch - if [ "${_modclang}" != "1" ]; then - # Apply gcc pgo patches + if [ "${_modclang}" == "0" ]; then + # Apply gcc lto patches patch -Np1 -i ../arc4_enable-lto-for-gcc.patch + patch -Np1 -i ../firefox-gcc-build.patch fi - if [ "${_testgcc}" == "1" ]; then + if [ "${_modclang}" == "0" ] && [ "${_modpgo}" == "1" ]; then # Apply gcc pgo patches patch -Np1 -i ../arc4_enable-pgo-for-gcc.patch + patch -Np1 -i ../pgo.patch fi - if [ "${_modclang}" == "1" ]; then + if [ "${_modclang}" == "1" ] && [ "${_modpgo}" == "1" ]; then # Add the custom mozconfig for clang pgo - cp $srcdir/mozconfig.in.clang.pgo $srcdir/${pkgname}-${pkgver}/.mozconfig - elif [ "${_testgcc}" == "1" ]; then + cp $srcdir/mozconfig.in.clang $srcdir/${pkgname}-${pkgver}/.mozconfig + cat >$srcdir/${pkgname}-${pkgver}/.mozconfig - <<END +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj +ac_add_options --enable-profile-generate=cross +END + elif [ "${_modclang}" == "1" ] && [ "${_modpgo}" == "0" ]; then + # Add the custom mozconfig for clang + cp $srcdir/mozconfig.in.clang $srcdir/${pkgname}-${pkgver}/.mozconfig + cat >$srcdir/${pkgname}-${pkgver}/.mozconfig - <<END +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj +END + elif [ "${_modclang}" == "0" ] && [ "${_modpgo}" == "1" ]; then # Add the custom mozconfig for gcc pgo - cp $srcdir/mozconfig.in.pgo $srcdir/${pkgname}-${pkgver}/.mozconfig + cp $srcdir/mozconfig.in.gcc $srcdir/${pkgname}-${pkgver}/.mozconfig + cat >$srcdir/${pkgname}-${pkgver}/.mozconfig - <<END +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj +ac_add_options --enable-profile-generate=cross +END else - # Add the custom mozconfig - cp $srcdir/mozconfig.in $srcdir/${pkgname}-${pkgver}/.mozconfig + # Add the custom mozconfig for gcc + cp $srcdir/mozconfig.in.gcc $srcdir/${pkgname}-${pkgver}/.mozconfig fi # MOZ_TELEMETRY_REPORTING only applied correctly when set in this override file @@ -106,7 +122,7 @@ prepare() { # Disable various components at the source level - #sed -i 's|[;]1|;0|' $srcdir/${pkgname}-${pkgver}/toolkit/components/telemetry/TelemetryStartup.manifest + sed -i 's|[;]1|;0|' $srcdir/${pkgname}-${pkgver}/toolkit/components/telemetry/TelemetryStartup.manifest sed -i 's/;1/;0/' $srcdir/${pkgname}-${pkgver}/toolkit/components/telemetry/components.conf # Patch out health reporting so that MOZ_DATA_REPORTING=0 can be applied. @@ -144,7 +160,7 @@ build() { ulimit -n 4096 - if [ "${_modclang}" == "1" ]; then + if [ "${_modclang}" == "1" ] && [ "${_modclangpgo}" == "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//' - )" @@ -172,14 +188,16 @@ build() { echo "Building optimized browser..." # Add the custom mozconfig cp $srcdir/mozconfig.in.clang $srcdir/${pkgname}-${pkgver}/.mozconfig - cat >.mozconfig - <<END + cat >$srcdir/${pkgname}-${pkgver}/.mozconfig - <<END +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj +ac_add_options --enable-lto=cross +ac_add_options --enable-profile-use=cross ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog -mk_add_options MOZ_OBJDIR=${PWD@Q}/obj END ./mach build - elif [ "${_testgcc}" == "1" ]; then + elif [ "${_modclang}" == "0" ] && [ "${_modpgo}" == "1" ]; then # Do 3-tier PGO echo "Building instrumented browser..." @@ -203,11 +221,13 @@ END echo "Building optimized browser..." # Add the custom mozconfig - cp $srcdir/mozconfig.in $srcdir/${pkgname}-${pkgver}/.mozconfig + cp $srcdir/mozconfig.in.gcc $srcdir/${pkgname}-${pkgver}/.mozconfig cat >.mozconfig - <<END +mk_add_options MOZ_OBJDIR=${PWD@Q}/obj ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog -mk_add_options MOZ_OBJDIR=${PWD@Q}/obj +ac_add_options --enable-lto=cross +ac_add_options --enable-profile-use=cross END ./mach build @@ -221,13 +241,18 @@ package() { cd ${pkgname}-${pkgver} DESTDIR="$pkgdir" ./mach install + # Don't install in /usr/local + rm -rf "$pkgdir/usr/local/bin" + mkdir "$pkgdir/usr/lib" + mkdir "$pkgdir/usr/bin" + cp -r --reflink "$pkgdir/usr/local/lib/firefox" "$pkgdir/usr/lib/firefox" + rm -rf "$pkgdir/usr/local/lib/firefox" install -Dm644 $srcdir/distribution.ini \ "$pkgdir/usr/lib/$pkgname/distribution/distribution.ini" - # don't duplicate the binary, use a symlink instead - rm "$pkgdir/usr/bin/firefox" - ln -s "/usr/lib/$pkgname/firefox" "$pkgdir/usr/bin/firefox" + # use a symlink in /usr/bin instead + ln -sf "/usr/lib/$pkgname/firefox" "$pkgdir/usr/bin/firefox" # icons diff --git a/mozconfig.in b/mozconfig.in deleted file mode 100644 index 42c3d1a..0000000 --- a/mozconfig.in +++ /dev/null @@ -1,78 +0,0 @@ -ac_add_options --enable-application=browser -export MOZ_APP_REMOTINGNAME=firefox - -# Compiler and Linker -ac_add_options --prefix=/usr -ac_add_options --enable-release -ac_add_options --enable-optimize -ac_add_options --disable-hardening -ac_add_options --enable-rust-simd -ac_add_options --enable-lto=full -#ac_add_options --enable-linker=gold -ac_add_options --disable-elf-hack -#ac_add_options --enable-strip -#ac_add_options --enable-install-strip -export MOZ_PGO=1 -export CC=gcc -export CXX=g++ -export AR=gcc-ar -export NM=gcc-nm -export RANLIB=gcc-ranlib - -# Branding -ac_add_options --enable-official-branding -ac_add_options --enable-update-channel=release -ac_add_options --with-distribution-id=org.artixlinux -ac_add_options --with-unsigned-addon-scopes=app,system -ac_add_options --allow-addon-sideload -ac_add_options MOZ_TELEMETRY_REPORTING= -export MOZILLA_OFFICIAL=1 -export MOZ_REQUIRE_SIGNING=0 -export MOZ_ADDON_SIGNING=0 - -# System libraries -#ac_add_options --with-system-bz2 -ac_add_options --with-system-ffi -ac_add_options --with-system-icu -ac_add_options --with-system-jpeg -ac_add_options --with-system-libevent -ac_add_options --with-system-libvpx -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --enable-system-pixman -#ac_add_options --with-system-png -#ac_add_options --enable-system-sqlite -ac_add_options --with-system-webp -ac_add_options --with-system-zlib - -# Features -ac_add_options --enable-alsa -ac_add_options --enable-av1 -ac_add_options --enable-jack - -# Disables -# accessibility required for ff71+ -ac_add_options --disable-accessibility -ac_add_options --disable-cdp -ac_add_options --disable-crashreporter -ac_add_options --disable-debug -ac_add_options --disable-debug-symbols -ac_add_options --disable-eme -# # marionette required for the xorg tests -# ac_add_options --disable-marionette -ac_add_options --disable-necko-wifi -ac_add_options --disable-parental-controls -# # precompiled-startupcache must be disabled to optimize for a newer -# # instruction set target -#ac_add_options --disable-precompiled-startupcache -ac_add_options --disable-synth-speechd -ac_add_options --disable-tests -ac_add_options --disable-updater -ac_add_options --disable-webrtc -# # Disabling webspeech breaks compiling ff67+ -ac_add_options --disable-webspeech - -#mk_add_options MOZ_MAKE_FLAGS="-j4" - -#ac_add_options --enable-lto=cross -#ac_add_options --enable-profile-use=cross diff --git a/mozconfig.in.clang b/mozconfig.in.clang index d8142a2..9b075b2 100644 --- a/mozconfig.in.clang +++ b/mozconfig.in.clang @@ -4,13 +4,15 @@ export MOZ_APP_REMOTINGNAME=firefox # Compiler and Linker ac_add_options --prefix=/usr ac_add_options --enable-release -ac_add_options --enable-optimize ac_add_options --disable-hardening +ac_add_options --enable-optimize ac_add_options --enable-rust-simd ac_add_options --enable-linker=lld ac_add_options --disable-elf-hack -#ac_add_options --enable-strip -#ac_add_options --enable-install-strip +ac_add_options --enable-lto=full +# # pacman can handle stripping +# ac_add_options --enable-strip +# ac_add_options --enable-install-strip export CC='clang --target=x86_64-unknown-linux-gnu' export CXX='clang++ --target=x86_64-unknown-linux-gnu' export AR=llvm-ar @@ -23,9 +25,14 @@ ac_add_options --enable-update-channel=release ac_add_options --with-distribution-id=org.artixlinux ac_add_options --with-unsigned-addon-scopes=app,system ac_add_options --allow-addon-sideload +ac_add_options MOZ_TELEMETRY_REPORTING= +export MOZILLA_OFFICIAL=1 +export MOZ_REQUIRE_SIGNING=0 +export MOZ_ADDON_SIGNING=0 # System libraries -#ac_add_options --with-system-bz2 +# # system-bz2 does not work with gcc builds +ac_add_options --with-system-bz2 ac_add_options --with-system-ffi ac_add_options --with-system-icu ac_add_options --with-system-jpeg @@ -34,8 +41,10 @@ ac_add_options --with-system-libvpx ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --enable-system-pixman -#ac_add_options --with-system-png -#ac_add_options --enable-system-sqlite +# # system-png does not work with gcc builds +ac_add_options --with-system-png +# # system-sqlite does not work with gcc builds +ac_add_options --enable-system-sqlite ac_add_options --with-system-webp ac_add_options --with-system-zlib @@ -57,17 +66,9 @@ ac_add_options --disable-necko-wifi ac_add_options --disable-parental-controls # # precompiled-startupcache must be disabled to optimize for a newer # # instruction set target -#ac_add_options --disable-precompiled-startupcache +# ac_add_options --disable-precompiled-startupcache ac_add_options --disable-synth-speechd ac_add_options --disable-tests ac_add_options --disable-updater ac_add_options --disable-webrtc -# # Disabling webspeech breaks compiling ff67+ -# ac_add_options --disable-webspeech -export MOZ_ADDON_SIGNING=0 -export MOZ_REQUIRE_SIGNING=0 - -mk_add_options MOZ_MAKE_FLAGS="-j4" - -ac_add_options --enable-lto=cross -ac_add_options --enable-profile-use=cross +ac_add_options --disable-webspeech diff --git a/mozconfig.in.clang.pgo b/mozconfig.in.clang.pgo deleted file mode 100644 index 7b4967c..0000000 --- a/mozconfig.in.clang.pgo +++ /dev/null @@ -1,72 +0,0 @@ -ac_add_options --enable-application=browser -export MOZ_APP_REMOTINGNAME=firefox - -# Compiler and Linker -ac_add_options --prefix=/usr -ac_add_options --enable-release -ac_add_options --enable-optimize -ac_add_options --disable-hardening -ac_add_options --enable-rust-simd -ac_add_options --enable-linker=lld -ac_add_options --disable-elf-hack -#ac_add_options --enable-strip -#ac_add_options --enable-install-strip -export CC='clang --target=x86_64-unknown-linux-gnu' -export CXX='clang++ --target=x86_64-unknown-linux-gnu' -export AR=llvm-ar -export NM=llvm-nm -export RANLIB=llvm-ranlib - -# Branding -ac_add_options --enable-official-branding -ac_add_options --enable-update-channel=release -ac_add_options --with-distribution-id=org.artixlinux -ac_add_options --with-unsigned-addon-scopes=app,system -ac_add_options --allow-addon-sideload - -# System libraries -#ac_add_options --with-system-bz2 -ac_add_options --with-system-ffi -ac_add_options --with-system-icu -ac_add_options --with-system-jpeg -ac_add_options --with-system-libevent -ac_add_options --with-system-libvpx -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --enable-system-pixman -#ac_add_options --with-system-png -#ac_add_options --enable-system-sqlite -ac_add_options --with-system-webp -ac_add_options --with-system-zlib - -# Features -ac_add_options --enable-alsa -ac_add_options --enable-av1 -ac_add_options --enable-jack - -# Disables -ac_add_options --disable-accessibility -ac_add_options --disable-cdp -ac_add_options --disable-crashreporter -ac_add_options --disable-debug -ac_add_options --disable-debug-symbols -ac_add_options --disable-eme -# # marionette required for the xorg tests -# ac_add_options --disable-marionette -ac_add_options --disable-necko-wifi -ac_add_options --disable-parental-controls -# # precompiled-startupcache must be disabled to optimize for a newer -# # instruction set target -#ac_add_options --disable-precompiled-startupcache -ac_add_options --disable-synth-speechd -ac_add_options --disable-tests -ac_add_options --disable-updater -ac_add_options --disable-webrtc -# # Disabling webspeech breaks compiling ff67+ -# ac_add_options --disable-webspeech -export MOZ_ADDON_SIGNING=0 -export MOZ_REQUIRE_SIGNING=0 - -mk_add_options MOZ_MAKE_FLAGS="-j4" - -ac_add_options --enable-profile-generate=cross diff --git a/mozconfig.in.pgo b/mozconfig.in.gcc index 257eb68..3b92e0e 100644 --- a/mozconfig.in.pgo +++ b/mozconfig.in.gcc @@ -4,15 +4,15 @@ export MOZ_APP_REMOTINGNAME=firefox # Compiler and Linker ac_add_options --prefix=/usr ac_add_options --enable-release -ac_add_options --enable-optimize ac_add_options --disable-hardening +ac_add_options --enable-optimize ac_add_options --enable-rust-simd -ac_add_options --enable-lto=full -ac_add_options --enable-linker=gold +# ac_add_options --enable-linker=gold ac_add_options --disable-elf-hack -#ac_add_options --enable-strip -#ac_add_options --enable-install-strip -export MOZ_PGO=1 +ac_add_options --enable-lto=full +# # pacman can handle stripping +# ac_add_options --enable-strip +# ac_add_options --enable-install-strip export CC=gcc export CXX=g++ export AR=gcc-ar @@ -31,7 +31,8 @@ export MOZ_REQUIRE_SIGNING=0 export MOZ_ADDON_SIGNING=0 # System libraries -#ac_add_options --with-system-bz2 +# # system-bz2 does not work with gcc builds +# ac_add_options --with-system-bz2 ac_add_options --with-system-ffi ac_add_options --with-system-icu ac_add_options --with-system-jpeg @@ -40,8 +41,10 @@ ac_add_options --with-system-libvpx ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --enable-system-pixman -#ac_add_options --with-system-png -#ac_add_options --enable-system-sqlite +# # system-png does not work with gcc builds +# ac_add_options --with-system-png +# # system-sqlite does not work with gcc builds +# ac_add_options --enable-system-sqlite ac_add_options --with-system-webp ac_add_options --with-system-zlib @@ -51,7 +54,6 @@ ac_add_options --enable-av1 ac_add_options --enable-jack # Disables -# accessibility required for ff71+ ac_add_options --disable-accessibility ac_add_options --disable-cdp ac_add_options --disable-crashreporter @@ -64,14 +66,9 @@ ac_add_options --disable-necko-wifi ac_add_options --disable-parental-controls # # precompiled-startupcache must be disabled to optimize for a newer # # instruction set target -#ac_add_options --disable-precompiled-startupcache +# ac_add_options --disable-precompiled-startupcache ac_add_options --disable-synth-speechd ac_add_options --disable-tests ac_add_options --disable-updater ac_add_options --disable-webrtc -# # Disabling webspeech breaks compiling ff67+ ac_add_options --disable-webspeech - -mk_add_options MOZ_MAKE_FLAGS="-j4" - -ac_add_options --enable-profile-generate=cross |