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