diff --git a/network/web/firefox/actions.py b/network/web/firefox/actions.py
index d4fe208965..e8fe9ee7fa 100644
--- a/network/web/firefox/actions.py
+++ b/network/web/firefox/actions.py
@@ -4,33 +4,41 @@
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
+import subprocess
+
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
#WorkDir = "mozilla-release-6b51784853e47e091d213d421a19cb623af718f0"
-ObjDir = "build"
+ObjDir = "objdir"
locales = "az bs ca da de el en-US en-GB es-AR es-CL es-ES fi fr hr hu it lt nl pl pt-BR pt-PT ro ru sr sv-SE tr uk".split()
xpidir = "%s/xpi" % get.workDIR()
arch = get.ARCH()
ver = ".".join(get.srcVERSION().split(".")[:3])
+jobs = jobs = "-j"+ subprocess.check_output("nproc 2>/dev/null", shell=True).rstrip("\n")
+
shelltools.export("SHELL", "/bin/sh")
shelltools.export("MACH_USE_SYSTEM_PYTHON", "1")
def setup():
+
+ shelltools.system("echo 'Instrumenting Firefox for PGO'")
+ shelltools.system("cp mozconfig-inst .mozconfig")
+
# Google API key
shelltools.echo("google_api_key", "AIzaSyBINKL31ZYd8W5byPuwTXYK6cEyoceGh6Y")
pisitools.dosed(".mozconfig", "%%PWD%%", get.curDIR())
pisitools.dosed(".mozconfig", "%%FILE%%", "google_api_key")
- pisitools.dosed(".mozconfig", "##JOBCOUNT##", get.makeJOBS())
+ pisitools.dosed(".mozconfig", "##JOBCOUNT##", jobs)
# LOCALE
shelltools.system("rm -rf langpack-ff/*/browser/defaults")
if not shelltools.isDirectory(xpidir): shelltools.makedirs(xpidir)
for locale in locales:
- shelltools.system("wget -c -P %s http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/%s/linux-%s/xpi/%s.xpi" % (xpidir, ver, arch, locale))
+ shelltools.system("wget -c -P %s https://download-origin.cdn.mozilla.net/pub/firefox/releases/%s/linux-%s/xpi/%s.xpi" % (xpidir, ver, arch, locale))
#shelltools.makedirs("langpack-ff/langpack-%s@firefox.mozilla.org" % locale)
shelltools.makedirs("langpack-ff")
#shelltools.system("unzip -uo %s/%s.xpi -d langpack-ff/langpack-%s@firefox.mozilla.org" % (xpidir, locale, locale))
@@ -39,21 +47,42 @@ def setup():
#shelltools.copy("browserconfig.properties", "langpack-ff/langpack-%s@firefox.mozilla.org/browser/chrome/%s/locale/branding/" % (locale, locale))
shelltools.copy("browserconfig.properties", "browser/branding/official/locales/")
- shelltools.makedirs(ObjDir)
- shelltools.cd(ObjDir)
+ #shelltools.makedirs(ObjDir)
+ #shelltools.cd(ObjDir)
- shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip")
+ #shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip")
def build():
- shelltools.cd(ObjDir)
- shelltools.system("../mach build -j5")
+ shelltools.system("echo 'Building instrumented browser'")
+ #shelltools.cd(ObjDir)
+ shelltools.system("./mach build")
+
+ shelltools.system("echo 'Profiling instrumented browser...'")
+ shelltools.system("./mach package")
+ shelltools.system("LLVM_PROFDATA=llvm-profdata \
+ JARLOG_FILE='%s/jarlog' \
+ xvfb-run -s '-screen 0 1920x1080x24 -nolisten local' \
+ ./mach python build/pgo/profileserver.py" %get.curDIR())
+
+ shelltools.system("echo 'Removing instrumented browser...'")
+ shelltools.system("./mach clobber")
+
+ shelltools.system("echo 'Building optimized browser...'")
+ shelltools.system("rm .mozconfig")
+ shelltools.system("cp mozconfig-opt .mozconfig")
+ #shelltools.echo("google_api_key", "AIzaSyBINKL31ZYd8W5byPuwTXYK6cEyoceGh6Y")
+ pisitools.dosed(".mozconfig", "%%PWD%%", get.curDIR())
+ pisitools.dosed(".mozconfig", "%%FILE%%", "google_api_key")
+ pisitools.dosed(".mozconfig", "##JOBCOUNT##", jobs)
+ #shelltools.system("../configure --prefix=/usr --libdir=/usr/lib --disable-strip --disable-install-strip")
+ shelltools.system("./mach build")
def install():
- shelltools.cd(ObjDir)
- shelltools.system("DESTDIR=%s ../mach install " % get.installDIR())
+ #shelltools.cd(ObjDir)
+ shelltools.system("DESTDIR=%s ./mach install " % get.installDIR())
- shelltools.cd("..")
+ #shelltools.cd("..")
# Install language packs
pisitools.insinto("/usr/lib/firefox/browser/extensions", "./langpack-ff/*")
diff --git a/network/web/firefox/files/mozconfig-inst b/network/web/firefox/files/mozconfig-inst
index 1cb456cf73..a378c3d341 100755
--- a/network/web/firefox/files/mozconfig-inst
+++ b/network/web/firefox/files/mozconfig-inst
@@ -6,6 +6,10 @@ ac_add_options --enable-release
#ac_add_options --enable-linker=gold
ac_add_options --enable-hardening
ac_add_options --enable-optimize
+ac_add_options --enable-linker=lld
+ac_add_options --disable-bootstrap
+ac_add_options --disable-elf-hack
+
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="%%PWD%%/mozbuild"
@@ -18,6 +22,7 @@ export RANLIB=llvm-ranlib
export LDFLAGS+=" -fuse-ld=lld"
ac_add_options --allow-addon-sideload
ac_add_options --enable-official-branding
+ac_add_options --with-unsigned-addon-scopes=app,system
# System libraries
ac_add_options --with-system-nspr
diff --git a/network/web/firefox/files/mozconfig-opt b/network/web/firefox/files/mozconfig-opt
index 4e33363d95..03ec36c1af 100755
--- a/network/web/firefox/files/mozconfig-opt
+++ b/network/web/firefox/files/mozconfig-opt
@@ -6,6 +6,9 @@ ac_add_options --enable-release
#ac_add_options --enable-linker=gold
ac_add_options --enable-hardening
ac_add_options --enable-optimize
+ac_add_options --enable-linker=lld
+ac_add_options --disable-bootstrap
+ac_add_options --disable-elf-hack
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="%%PWD%%/mozbuild"
@@ -18,6 +21,7 @@ export RANLIB=llvm-ranlib
export LDFLAGS+=" -fuse-ld=lld"
ac_add_options --allow-addon-sideload
ac_add_options --enable-official-branding
+ac_add_options --with-unsigned-addon-scopes=app,system
# System libraries
ac_add_options --with-system-nspr
diff --git a/network/web/firefox/pspec.xml b/network/web/firefox/pspec.xml
index 00093492bd..bf1cb8d38e 100644
--- a/network/web/firefox/pspec.xml
+++ b/network/web/firefox/pspec.xml
@@ -15,12 +15,12 @@
app:gui
Firefox Web Browser
It is more secure and faster to browse the web with Firefox web browser. You can personalize your web browser with many specifications that is not enough to explain in two sentences.
- https://ftp.mozilla.org/pub/firefox/releases/90.0.1/source/firefox-90.0.1.source.tar.xz
+ https://ftp.mozilla.org/pub/firefox/releases/90.0.2/source/firefox-90.0.2.source.tar.xz
- mozconfig
-
-
+
+ mozconfig-inst
+ mozconfig-opt
configure
pisilinux/browserconfig.properties
@@ -558,6 +558,13 @@
+
+ 2021-07-22
+ 90.0.2
+ Version bump and reenable PGO and LTO
+ İdris Kalp
+ idriskalp@gmail.com
+
2021-07-19
90.0.1