Update to 89

This commit is contained in:
dr460nf1r3 2021-06-07 12:30:59 +02:00
parent f17fecfe9c
commit b3425a5d1d
No known key found for this signature in database
GPG Key ID: BE75B9D9767036C2
10 changed files with 57 additions and 790 deletions

View File

@ -1,7 +1,7 @@
pkgbase = firedragon pkgbase = firedragon
pkgdesc = Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE pkgdesc = Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE
pkgver = 88.0.1 pkgver = 89.0
pkgrel = 4 pkgrel = 1
url = https://gitlab.com/dr460nf1r3/settings/ url = https://gitlab.com/dr460nf1r3/settings/
install = firedragon.install install = firedragon.install
arch = x86_64 arch = x86_64
@ -73,37 +73,13 @@ pkgbase = firedragon
options = !strip options = !strip
backup = usr/lib/firedragon/firedragon.cfg backup = usr/lib/firedragon/firedragon.cfg
backup = usr/lib/firedragon/distribution/policies.json backup = usr/lib/firedragon/distribution/policies.json
source = https://archive.mozilla.org/pub/firefox/releases/88.0.1/source/firefox-88.0.1.source.tar.xz source = https://archive.mozilla.org/pub/firefox/releases/89.0/source/firefox-89.0.source.tar.xz
source = firedragon.desktop source = firedragon.desktop
source = git+https://gitlab.com/dr460nf1r3/common.git source = git+https://gitlab.com/dr460nf1r3/common.git
source = git+https://gitlab.com/dr460nf1r3/settings.git source = git+https://gitlab.com/dr460nf1r3/settings.git
source = 0001-Use-remoting-name-for-GDK-application-names.patch sha256sums = db43d7d5796455051a5b847f6daa3423393803c9288c8b6d7f1186f5e2e0a90a
source = firefox-kde-aedbca44a8a2958947bed31f28e3083ac0496f4a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/aedbca44a8a2958947bed31f28e3083ac0496f4a/firefox/firefox-kde.patch
source = mozilla-kde-aedbca44a8a2958947bed31f28e3083ac0496f4a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/aedbca44a8a2958947bed31f28e3083ac0496f4a/mozilla-kde.patch
source = mozilla-nongnome-proxies-aedbca44a8a2958947bed31f28e3083ac0496f4a.patch::https://raw.githubusercontent.com/openSUSE/firefox-maintenance/aedbca44a8a2958947bed31f28e3083ac0496f4a/mozilla-nongnome-proxies.patch
source = fix-hidden-buttons-with-csd-menubar.patch
source = 0004-bmo-847568-Support-system-harfbuzz.patch
source = 0005-bmo-847568-Support-system-graphite2.patch
source = 0006-bmo-1559213-Support-system-av1.patch
source = 0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch
source = 0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
source = reduce-rust-debuginfo.patch
sha256sums = 83df1eae0e28fe99661fd5d39d705cdab2e108b4a24ce12c2db6183c632804cc
sha256sums = 158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d sha256sums = 158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d
sha256sums = SKIP sha256sums = SKIP
sha256sums = SKIP sha256sums = SKIP
sha256sums = 6ca7ff71cb4a7c72eca39769afe8e18ec81cba36d9b570df15fc243867049243
sha256sums = 0ae5bce3da13b7f58e37be6d7115bef323256d776195279592f4371179497f8a
sha256sums = 9843662fd9b766801a70bdef22bb996a1abd9d7c3781f1fb58b7034e575350a1
sha256sums = fbd95cbcbc32673ef549b43b0d2de3ef0ef4fa303b6336e64993f2c8a73264e4
sha256sums = 482935782429b30f5e1581347a9a798705068c40f20bf4eee9304a254fd81bc8
sha256sums = e17f631bc9b1873419ff10fef5fad6061e8695b961b6bb90616ec04444834608
sha256sums = 00d3524f5361614fee7eb448a528a0b53833f0a328055e17e07ea38038e5aa70
sha256sums = be41698666dbd321884c35b661c3ac457ecc5bf699fe2374ad6ad9273c6489e4
sha256sums = 82129e30512477232556e939ee8ed64b999b0e095001d043b121c5e5d334692c
sha256sums = 1034a3edda8ffa889fcb4dcf57cb93f8f296f7c37e5cfcf1e5c6071a6f8f4261
sha256sums = 923a9373afc019202c0c07a7cba47042e9ebc78cc2605baecd99602beeaf82ed
source_aarch64 = https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch
sha256sums_aarch64 = 2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9
pkgname = firedragon pkgname = firedragon

View File

@ -1,57 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 25 Mar 2019 20:30:11 +0100
Subject: [PATCH] Use remoting name for GDK application names
---
toolkit/xre/nsAppRunner.cpp | 6 +-----
widget/gtk/nsAppShell.cpp | 12 +++++-------
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index d944ce905cbe3..9a50545bfafcb 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -4161,11 +4161,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
// consistently.
// Set program name to the one defined in application.ini.
- {
- nsAutoCString program(gAppData->name);
- ToLowerCase(program);
- g_set_prgname(program.get());
- }
+ g_set_prgname(gAppData->remotingName);
// Initialize GTK here for splash.
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
index cfe022e65d820..c228237830e43 100644
--- a/widget/gtk/nsAppShell.cpp
+++ b/widget/gtk/nsAppShell.cpp
@@ -24,6 +24,8 @@
# include "WakeLockListener.h"
#endif
#include "gfxPlatform.h"
+#include "nsAppRunner.h"
+#include "mozilla/XREAppData.h"
#include "ScreenHelperGTK.h"
#include "HeadlessScreenHelper.h"
#include "mozilla/widget/ScreenManager.h"
@@ -159,13 +161,9 @@ nsresult nsAppShell::Init() {
// See https://bugzilla.gnome.org/show_bug.cgi?id=747634
//
// Only bother doing this for the parent process, since it's the one
- // creating top-level windows. (At this point, a child process hasn't
- // received the list of registered chrome packages, so the
- // GetBrandShortName call would fail anyway.)
- nsAutoString brandName;
- mozilla::widget::WidgetUtils::GetBrandShortName(brandName);
- if (!brandName.IsEmpty()) {
- gdk_set_program_class(NS_ConvertUTF16toUTF8(brandName).get());
+ // creating top-level windows.
+ if (gAppData) {
+ gdk_set_program_class(gAppData->remotingName);
}
}
}

View File

@ -1,182 +0,0 @@
From 668d2c268e2c19c9409e786f68ef42992323cb52 Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Mon, 6 Apr 2020 19:32:39 +0200
Subject: [PATCH 04/34] bmo#847568: Support system harfbuzz
Allow building against system-wide harfbuzz.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=847568
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
config/system-headers.mozbuild | 7 +++++++
dom/base/moz.build | 3 +++
gfx/moz.build | 4 +++-
gfx/skia/generate_mozbuild.py | 3 +++
gfx/skia/moz.build | 3 +++
gfx/thebes/moz.build | 3 +++
intl/unicharutil/util/moz.build | 3 +++
netwerk/dns/moz.build | 3 +++
toolkit/library/moz.build | 3 +++
toolkit/moz.configure | 9 +++++++++
10 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index 5f7b5bb23e..449328ffaa 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1236,6 +1236,13 @@ if CONFIG['OS_TARGET'] == 'Android':
'vr/gvr/capi/include/gvr.h',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ system_headers += [
+ 'harfbuzz/hb-glib.h',
+ 'harfbuzz/hb-ot.h',
+ 'harfbuzz/hb.h',
+ ]
+
if CONFIG['MOZ_JACK']:
system_headers += [
'jack/jack.h',
diff --git a/dom/base/moz.build b/dom/base/moz.build
index 7a34945bd6..927ba6b942 100644
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
@@ -554,6 +554,9 @@ if CONFIG["MOZ_BUILD_APP"] in ["browser", "mobile/android", "xulrunner"]:
if CONFIG["MOZ_X11"]:
CXXFLAGS += CONFIG["TK_CFLAGS"]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
GeneratedFile(
"UseCounterList.h",
script="gen-usecounters.py",
diff --git a/gfx/moz.build b/gfx/moz.build
index 6d6274e636..c9cb3d592a 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
@@ -13,6 +13,9 @@ with Files("wr/**"):
if CONFIG["MOZ_TREE_CAIRO"]:
DIRS += ["cairo"]
+if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ DIRS += ["harfbuzz/src"]
+
DIRS += [
"2d",
"ycbcr",
@@ -22,7 +25,6 @@ DIRS += [
"gl",
"layers",
"graphite2/src",
- "harfbuzz/src",
"ots/src",
"thebes",
"ipc",
diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
index d5c409b657..9ad751e321 100755
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
@@ -98,6 +98,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
index 66b21aec25..6f0c015d09 100755
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -490,6 +490,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
index c284127164..fb2ad5bf34 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -290,6 +290,9 @@ LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
DEFINES["GRAPHITE2_STATIC"] = True
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
if CONFIG["CC_TYPE"] == "clang":
# Suppress warnings from Skia header files.
SOURCES["gfxPlatform.cpp"].flags += ["-Wno-implicit-fallthrough"]
diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build
index 897bfad92a..5a83cdb2c1 100644
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
@@ -25,6 +25,9 @@ UNIFIED_SOURCES += [
"nsUnicodeProperties.cpp",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
GeneratedFile(
"BaseChars.h",
script="base_chars.py",
diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build
index 31dd7c81b8..08bf561429 100644
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
@@ -104,6 +104,9 @@ LOCAL_INCLUDES += [
"/netwerk/protocol/http",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
USE_LIBS += ["icu"]
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
index 94e5474248..3f393f3316 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -241,6 +241,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]:
OS_LIBS += CONFIG["MOZ_CAIRO_OSLIBS"]
OS_LIBS += CONFIG["MOZ_WEBRTC_X11_LIBS"]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
+
if CONFIG["MOZ_SYSTEM_JPEG"]:
OS_LIBS += CONFIG["MOZ_JPEG_LIBS"]
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index 295dc5545b..169c3d7c79 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -475,6 +475,15 @@ add_old_configure_assignment(
"_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True)
)
+# HarfBuzz
+# ==============================================================
+option('--with-system-harfbuzz', help="Use system harfbuzz (located with pkgconfig)")
+
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 2.7.4',
+ when='--with-system-harfbuzz')
+
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
+
# Apple platform decoder support
# ==============================================================
@depends(toolkit)
--
2.31.1

View File

@ -1,207 +0,0 @@
From e1584f433b876c7d8fe7375ab7a7ea2af76d07bb Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Mon, 6 Apr 2020 19:34:44 +0200
Subject: [PATCH 05/34] bmo#847568: Support system graphite2
Allow building against system-wide graphite2.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=847568
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
config/system-headers.mozbuild | 6 ++++++
gfx/graphite2/geckoextra/moz.build | 21 +++++++++++++++++++++
gfx/graphite2/moz-gr-update.sh | 7 ++++++-
gfx/moz.build | 6 +++++-
gfx/thebes/moz.build | 5 ++++-
old-configure.in | 21 +++++++++++++++++++++
toolkit/library/moz.build | 3 +++
toolkit/moz.configure | 13 +++++++++++++
8 files changed, 79 insertions(+), 3 deletions(-)
create mode 100644 gfx/graphite2/geckoextra/moz.build
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index 449328ffaa..27b5171d0a 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1243,6 +1243,12 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
'harfbuzz/hb.h',
]
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
+ system_headers += [
+ 'graphite2/Font.h',
+ 'graphite2/Segment.h',
+ ]
+
if CONFIG['MOZ_JACK']:
system_headers += [
'jack/jack.h',
diff --git a/gfx/graphite2/geckoextra/moz.build b/gfx/graphite2/geckoextra/moz.build
new file mode 100644
index 0000000000..24e8d7a032
--- /dev/null
+++ b/gfx/graphite2/geckoextra/moz.build
@@ -0,0 +1,21 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+EXPORTS.graphite2 += [
+ 'include/GraphiteExtra.h',
+ 'include/GraphiteStructsForRLBox.h',
+]
+
+UNIFIED_SOURCES += [
+ '../geckoextra/src/GraphiteExtra.cpp',
+]
+
+CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
+
+# Match bundled graphite2 configuration
+AllowCompilerWarnings()
+
+FINAL_LIBRARY = 'gkmedias'
diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh
index b91d9c161c..a97e6eb203 100755
--- a/gfx/graphite2/moz-gr-update.sh
+++ b/gfx/graphite2/moz-gr-update.sh
@@ -1,6 +1,7 @@
#!/bin/bash
# Script used to update the Graphite2 library in the mozilla source tree
+# and bump version for --with-system-graphite2
# This script lives in gfx/graphite2, along with the library source,
# but must be run from the top level of the mozilla-central tree.
@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla
#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
+# chase version for --with-system-graphite2
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
+ if /GR2_VERSION_REQUIRE/" old-configure.in
+
# summarize what's been touched
echo Updated to $RELEASE.
echo Here is what changed in the gfx/graphite2 directory:
echo
-hg stat gfx/graphite2
+hg stat old-configure.in gfx/graphite2
echo
echo If gfx/graphite2/src/files.mk has changed, please make corresponding
diff --git a/gfx/moz.build b/gfx/moz.build
index c9cb3d592a..2e822f0134 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
@@ -13,6 +13,11 @@ with Files("wr/**"):
if CONFIG["MOZ_TREE_CAIRO"]:
DIRS += ["cairo"]
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ DIRS += ["graphite2/geckoextra"]
+else:
+ DIRS += ["graphite2/src"]
+
if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
DIRS += ["harfbuzz/src"]
@@ -24,7 +29,6 @@ DIRS += [
"qcms",
"gl",
"layers",
- "graphite2/src",
"ots/src",
"thebes",
"ipc",
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
index fb2ad5bf34..c6ce6f8417 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -288,7 +288,10 @@ if CONFIG["MOZ_WAYLAND"]:
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
-DEFINES["GRAPHITE2_STATIC"] = True
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"]
+else:
+ DEFINES["GRAPHITE2_STATIC"] = True
if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
diff --git a/old-configure.in b/old-configure.in
index 4ddc3f5b45..de727a48bd 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -2283,6 +2283,27 @@ if test "$USE_FC_FREETYPE"; then
fi
fi
+dnl ========================================================
+dnl Check for graphite2
+dnl ========================================================
+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
+ dnl graphite2.pc has bogus version, check manually
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
+ #if !GR2_VERSION_REQUIRE(1,3,8)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
+ CFLAGS=$_SAVE_CFLAGS
+fi
+
dnl ========================================================
dnl Check if we need the 32-bit Linux SSE2 error dialog
dnl ========================================================
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
index 3f393f3316..df178bc6cf 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -241,6 +241,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]:
OS_LIBS += CONFIG["MOZ_CAIRO_OSLIBS"]
OS_LIBS += CONFIG["MOZ_WEBRTC_X11_LIBS"]
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"]
+
if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index 169c3d7c79..31ab9c7add 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -475,6 +475,19 @@ add_old_configure_assignment(
"_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True)
)
+# Graphite2
+# ==============================================================
+option('--with-system-graphite2', help="Use system graphite2 (located with pkgconfig)")
+
+@depends('--with-system-graphite2')
+def check_for_graphite2(value):
+ return bool(value)
+
+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2',
+ when=check_for_graphite2)
+
+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True))
+
# HarfBuzz
# ==============================================================
option('--with-system-harfbuzz', help="Use system harfbuzz (located with pkgconfig)")
--
2.31.1

View File

@ -1,113 +0,0 @@
From 5abc4e0e050beb42c18f102803388d07d7c577f2 Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Mon, 6 Apr 2020 19:36:02 +0200
Subject: [PATCH 06/34] bmo#1559213: Support system av1
Allow building against system-wide av1.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1559213
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
config/external/moz.build | 5 +++--
config/system-headers.mozbuild | 8 ++++++++
dom/media/platforms/moz.build | 5 +++++
toolkit/moz.configure | 20 ++++++++++++++++++--
4 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/config/external/moz.build b/config/external/moz.build
index 4e9888f365..bf1e255107 100644
--- a/config/external/moz.build
+++ b/config/external/moz.build
@@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
external_dirs += ["media/libvpx"]
if CONFIG["MOZ_AV1"]:
- external_dirs += ["media/libaom"]
- external_dirs += ["media/libdav1d"]
+ if not CONFIG["MOZ_SYSTEM_AV1"]:
+ external_dirs += ["media/libaom"]
+ external_dirs += ["media/libdav1d"]
if not CONFIG["MOZ_SYSTEM_PNG"]:
external_dirs += ["media/libpng"]
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index 27b5171d0a..c6213f1d96 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1300,6 +1300,14 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']:
'proxy.h',
]
+if CONFIG['MOZ_SYSTEM_AV1']:
+ system_headers += [
+ 'aom/aom_decoder.h',
+ 'aom/aomdx.h',
+ 'aom/aom_image.h',
+ 'dav1d/dav1d.h',
+ ]
+
if CONFIG['MOZ_SYSTEM_LIBVPX']:
system_headers += [
'vpx_mem/vpx_mem.h',
diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build
index 16ca8a9cbc..b349dcbe6d 100644
--- a/dom/media/platforms/moz.build
+++ b/dom/media/platforms/moz.build
@@ -78,6 +78,11 @@ if CONFIG["MOZ_AV1"]:
"agnostic/AOMDecoder.cpp",
"agnostic/DAV1DDecoder.cpp",
]
+ if CONFIG["MOZ_SYSTEM_AV1"]:
+ CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"]
+ OS_LIBS += CONFIG["MOZ_SYSTEM_LIBAOM_LIBS"]
+ CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBDAV1D_CFLAGS"]
+ OS_LIBS += CONFIG["MOZ_SYSTEM_LIBDAV1D_LIBS"]
if CONFIG["MOZ_OMX"]:
EXPORTS += [
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index 31ab9c7add..9eb0a51d2d 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -559,14 +559,29 @@ def av1(value):
if value:
return True
+option("--with-system-av1", help="Use system av1 (located with pkg-config)")
-@depends(target, when=av1 & compile_environment)
+system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0',
+ when='--with-system-av1')
+
+system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1',
+ when='--with-system-av1')
+
+@depends(system_libaom_info, system_libdav1d_info)
+def system_av1(system_libaom_info, system_libdav1d_info):
+ has_av1_libs = False
+ if system_libaom_info and system_libdav1d_info:
+ has_av1_libs = True
+ return has_av1_libs
+
+
+@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
def dav1d_asm(target):
if target.cpu in ("aarch64", "x86", "x86_64"):
return True
-@depends(target, when=av1 & compile_environment)
+@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
def dav1d_nasm(target):
if target.cpu in ("x86", "x86_64"):
return namespace(version="2.14", what="AV1")
@@ -576,6 +591,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm)
set_define("MOZ_DAV1D_ASM", dav1d_asm)
set_config("MOZ_AV1", av1)
set_define("MOZ_AV1", av1)
+set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True))
# Built-in fragmented MP4 support.
# ==============================================================
--
2.31.1

View File

@ -1,55 +0,0 @@
From b67daf06346038ed243b68e916126fa373043b15 Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Mon, 6 Apr 2020 20:27:06 +0200
Subject: [PATCH 21/35] bmo#1516081: Disable watchdog during PGO builds
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1516081
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
build/moz.configure/lto-pgo.configure | 4 ++--
toolkit/components/terminator/nsTerminator.cpp | 7 +++++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
index 2f32b11588..d55abb4934 100644
--- a/build/moz.configure/lto-pgo.configure
+++ b/build/moz.configure/lto-pgo.configure
@@ -85,7 +85,7 @@ set_config("PGO_PROFILE_PATH", pgo_profile_path)
def pgo_flags(compiler, profdata, target_is_windows):
if compiler.type == "gcc":
return namespace(
- gen_cflags=["-fprofile-generate"],
+ gen_cflags=["-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"],
gen_ldflags=["-fprofile-generate"],
use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"],
use_ldflags=["-fprofile-use"],
@@ -99,7 +99,7 @@ def pgo_flags(compiler, profdata, target_is_windows):
else:
gen_ldflags = ["-fprofile-generate"]
- gen_cflags = [prefix + "-fprofile-generate"]
+ gen_cflags = [prefix + "-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"]
if target_is_windows:
# native llvm-profdata.exe on Windows can't read profile data
# if name compression is enabled (which cross-compiling enables
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
index c35dfed444..98dfe42369 100644
--- a/toolkit/components/terminator/nsTerminator.cpp
+++ b/toolkit/components/terminator/nsTerminator.cpp
@@ -418,6 +418,13 @@ void nsTerminator::StartWatchdog() {
}
#endif
+ // Disable watchdog for PGO train builds - writting profile information at
+ // exit may take time and it is better to make build hang rather than
+ // silently produce poorly performing binary.
+#ifdef MOZ_PROFILE_INSTRUMENTATION
+ crashAfterMS = INT32_MAX;
+#endif
+
UniquePtr<Options> options(new Options());
const PRIntervalTime ticksDuration = PR_MillisecondsToInterval(1000);
options->crashAfterTicks = crashAfterMS / ticksDuration;
--
2.29.2

View File

@ -1,34 +0,0 @@
From 101fa23ea5e98a3245bc48e6f8c3caa3c491b09e Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Sat, 29 Aug 2020 22:30:59 +0200
Subject: [PATCH 29/40] LTO: Only enable LTO for Rust when complete build uses
LTO
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
config/makefiles/rust.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
index 84d2adc6af..20b64c2e07 100644
--- a/config/makefiles/rust.mk
+++ b/config/makefiles/rust.mk
@@ -56,6 +56,7 @@ endif
# These flags are passed via `cargo rustc` and only apply to the final rustc
# invocation (i.e., only the top-level crate, not its dependencies).
cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
+ifdef MOZ_LTO
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds, but not when linking
@@ -70,6 +71,7 @@ RUSTFLAGS += -Cembed-bitcode=yes
endif
endif
endif
+endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL
--
2.28.0

133
PKGBUILD
View File

@ -4,8 +4,8 @@
pkgname=firedragon pkgname=firedragon
_pkgname=FireDragon _pkgname=FireDragon
pkgver=88.0.1 pkgver=89.0
pkgrel=4 pkgrel=1
pkgdesc="Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE" pkgdesc="Librewolf fork build using custom branding, settings & KDE patches by OpenSUSE"
arch=(x86_64 aarch64) arch=(x86_64 aarch64)
backup=('usr/lib/firedragon/firedragon.cfg' backup=('usr/lib/firedragon/firedragon.cfg'
@ -34,45 +34,20 @@ options=(!emptydirs !makeflags !strip)
conflicts=('firedragon-hg') conflicts=('firedragon-hg')
install=$pkgname.install install=$pkgname.install
_arch_svn=https://git.archlinux.org/svntogit/packages.git/plain/trunk _arch_svn=https://git.archlinux.org/svntogit/packages.git/plain/trunk
_common_commit=5bce5285fa7046e6987ec3e5a8931ac17ca6c7c0
_settings_commit=c78c50fbefe2fcf830611e21dcc0fe79180d1e01 _settings_commit=c78c50fbefe2fcf830611e21dcc0fe79180d1e01
_mbrev=2389 _mbrev=2389
_patchrevsuse=aedbca44a8a2958947bed31f28e3083ac0496f4a _patchrevsuse=aedbca44a8a2958947bed31f28e3083ac0496f4a
_pfdate=20210420 _pfdate=20210531
_patchurl=https://raw.githubusercontent.com/openSUSE/firefox-maintenance/$_patchrevsuse _patchurl=https://raw.githubusercontent.com/openSUSE/firefox-maintenance/$_patchrevsuse
source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
$pkgname.desktop $pkgname.desktop
"git+https://gitlab.com/dr460nf1r3/common.git" "git+https://gitlab.com/dr460nf1r3/common.git"
"git+https://gitlab.com/dr460nf1r3/settings.git" "git+https://gitlab.com/dr460nf1r3/settings.git")
firefox-kde-$_patchrevsuse.patch::$_patchurl/firefox/firefox-kde.patch
mozilla-kde-$_patchrevsuse.patch::$_patchurl/mozilla-kde.patch
mozilla-nongnome-proxies-$_patchrevsuse.patch::$_patchurl/mozilla-nongnome-proxies.patch
fix-hidden-buttons-with-csd-menubar.patch
0001-Use-remoting-name-for-GDK-application-names.patch
0004-bmo-847568-Support-system-harfbuzz.patch
0005-bmo-847568-Support-system-graphite2.patch
0006-bmo-1559213-Support-system-av1.patch
0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch
0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
reduce-rust-debuginfo.patch)
source_aarch64=(https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch)
sha256sums=('83df1eae0e28fe99661fd5d39d705cdab2e108b4a24ce12c2db6183c632804cc' sha256sums=('db43d7d5796455051a5b847f6daa3423393803c9288c8b6d7f1186f5e2e0a90a'
'158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d' '158152bdb9ef6a83bad62ae03a3d9bc8ae693b34926e53cc8c4de07df20ab22d'
'SKIP' 'SKIP'
'SKIP' 'SKIP')
'0ae5bce3da13b7f58e37be6d7115bef323256d776195279592f4371179497f8a'
'9843662fd9b766801a70bdef22bb996a1abd9d7c3781f1fb58b7034e575350a1'
'fbd95cbcbc32673ef549b43b0d2de3ef0ef4fa303b6336e64993f2c8a73264e4'
'482935782429b30f5e1581347a9a798705068c40f20bf4eee9304a254fd81bc8'
'6ca7ff71cb4a7c72eca39769afe8e18ec81cba36d9b570df15fc243867049243'
'e17f631bc9b1873419ff10fef5fad6061e8695b961b6bb90616ec04444834608'
'00d3524f5361614fee7eb448a528a0b53833f0a328055e17e07ea38038e5aa70'
'be41698666dbd321884c35b661c3ac457ecc5bf699fe2374ad6ad9273c6489e4'
'82129e30512477232556e939ee8ed64b999b0e095001d043b121c5e5d334692c'
'1034a3edda8ffa889fcb4dcf57cb93f8f296f7c37e5cfcf1e5c6071a6f8f4261'
'923a9373afc019202c0c07a7cba47042e9ebc78cc2605baecd99602beeaf82ed')
sha256sums_aarch64=('2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9')
prepare() { prepare() {
if [[ ! -d mozbuild ]];then if [[ ! -d mozbuild ]];then
@ -82,35 +57,62 @@ prepare() {
local _patches_dir="${srcdir}/common/patches" local _patches_dir="${srcdir}/common/patches"
sed -i 's/\"BrowserApplication\"\, \"firefox\"/\"BrowserApplication\"\, \"firedragon\"/g' $srcdir/firefox-kde-$_patchrevsuse.patch sed -i 's/\"BrowserApplication\"\, \"firefox\"/\"BrowserApplication\"\, \"firedragon\"/g' ${_patches_dir}/kde/firefox-kde.patch
sed -i 's/kmozillahelper/kfiredragonhelper/g' $srcdir/mozilla-kde-$_patchrevsuse.patch sed -i 's/kmozillahelper/kfiredragonhelper/g' ${_patches_dir}/kde/mozilla-kde.patch
# Arch patches # Arch patches
echo "---- Arch patches" echo "---- Arch patches"
patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch patch -Np1 -i ${_patches_dir}/arch/0001-Use-remoting-name-for-GDK-application-names.patch
# KDE patches (W. Rosenauer) # KDE patches (W. Rosenauer)
echo "---- Patching for KDE" echo "---- Patching for KDE"
patch -Np1 -i ../mozilla-nongnome-proxies-$_patchrevsuse.patch patch -Np1 -i ${_patches_dir}/kde/mozilla-nongnome-proxies.patch
patch -Np1 -i ../mozilla-kde-$_patchrevsuse.patch patch -Np1 -i ${_patches_dir}/kde/mozilla-kde.patch
patch -Np1 -i ../firefox-kde-$_patchrevsuse.patch patch -Np1 -i ${_patches_dir}/kde/firefox-kde.patch
# Ubuntu patches # Ubuntu patches
patch -Np1 -i ../fix-hidden-buttons-with-csd-menubar.patch echo "---- Misc patches"
patch -Np1 -i ${_patches_dir}/misc/fix-hidden-buttons-with-csd-menubar.patch
# Rust
patch -Np1 -i ${_patches_dir}/misc/reduce-rust-debuginfo.patch
# Gentoo patches # Gentoo patches
echo "---- Gentoo patches" echo "---- Gentoo patches"
patch -Np1 -i ../0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch patch -Np1 -i ${_patches_dir}/gentoo/0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch
patch -Np1 -i ../0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch patch -Np1 -i ${_patches_dir}/gentoo/0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
# Use more system libs # Use more system libs
echo "---- Patching for system libs" echo "---- Patching for system libs"
patch -Np1 -i ../0004-bmo-847568-Support-system-harfbuzz.patch patch -Np1 -i ${_patches_dir}/gentoo/0004-bmo-847568-Support-system-harfbuzz.patch
patch -Np1 -i ../0005-bmo-847568-Support-system-graphite2.patch patch -Np1 -i ${_patches_dir}/gentoo/0005-bmo-847568-Support-system-graphite2.patch
patch -Np1 -i ../0006-bmo-1559213-Support-system-av1.patch patch -Np1 -i ${_patches_dir}/gentoo/0006-bmo-1559213-Support-system-av1.patch
# Rust # Remove some pre-installed addons that might be questionable
patch -Np1 -i ../reduce-rust-debuginfo.patch echo "---- Librewolf patches"
patch -Np1 -i ${_patches_dir}/librewolf/remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -Np1 -i ${_patches_dir}/librewolf/megabar.patch
# Debian patch to enable global menubar
patch -Np1 -i ${_patches_dir}/librewolf/unity-menubar.patch
# Disabling Pocket
patch -Np1 -i ${_patches_dir}/sed-patches/disable-pocket.patch
# Remove Mozilla VPN ads
patch -Np1 -i ${_patches_dir}/librewolf/mozilla-vpn-ad.patch
# Remove Internal Plugin Certificates
patch -Np1 -i ${_patches_dir}/sed-patches/remove-internal-plugin-certs.patch
# Allow SearchEngines option in non-ESR builds
patch -Np1 -i ${_patches_dir}/sed-patches/allow-searchengines-non-esr.patch
# Stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
patch -Np1 -i ${_patches_dir}/sed-patches/stop-undesired-requests.patch
cat >../mozconfig <<END cat >../mozconfig <<END
ac_add_options --enable-application=browser ac_add_options --enable-application=browser
@ -208,8 +210,8 @@ END
# we should have more than enough RAM on the CI spot instances. # we should have more than enough RAM on the CI spot instances.
# ...or maybe not? # ...or maybe not?
export LDFLAGS+=" -Wl,--no-keep-memory" export LDFLAGS+=" -Wl,--no-keep-memory"
patch -Np1 -i ${_patches_dir}/arm.patch patch -Np1 -i ${_patches_dir}/librewolf/arm.patch
patch -Np1 -i ../${pkgver}-${pkgrel}_build-arm-libopus.patch patch -Np1 -i ${_patches_dir}/arch/build-arm-libopus.patch
else else
@ -219,36 +221,6 @@ ac_add_options --enable-optimize
END END
fi fi
# Remove some pre-installed addons that might be questionable
patch -Np1 -i ${_patches_dir}/remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -Np1 -i ${_patches_dir}/megabar.patch
# Debian patch to enable global menubar
patch -Np1 -i ${_patches_dir}/unity-menubar.patch
# Disabling Pocket
patch -Np1 -i ${_patches_dir}/sed-patches/disable-pocket.patch
# Remove Mozilla VPN ads
patch -Np1 -i ${_patches_dir}/mozilla-vpn-ad.patch
# Remove Internal Plugin Certificates
patch -Np1 -i ${_patches_dir}/sed-patches/remove-internal-plugin-certs.patch
# Allow SearchEngines option in non-ESR builds
patch -Np1 -i ${_patches_dir}/sed-patches/allow-searchengines-non-esr.patch
# Stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
patch -Np1 -i ${_patches_dir}/sed-patches/stop-undesired-requests.patch
# Assorted patches
patch -Np1 -i ${_patches_dir}/context-menu.patch
patch -Np1 -i ${_patches_dir}/browser-confvars.patch
patch -Np1 -i ${_patches_dir}/urlbarprovider-interventions.patch
rm -f ${srcdir}/common/source_files/mozconfig rm -f ${srcdir}/common/source_files/mozconfig
cp -r ${srcdir}/common/source_files/* ./ cp -r ${srcdir}/common/source_files/* ./
} }
@ -403,8 +375,9 @@ END
fi fi
# Delete unneeded things from settings repo # Delete unneeded things from settings repo
rm "$pkgdir/usr/lib/firedragon/tabliss.json" rm "$pkgdir/usr/lib/firedragon/LICENSE.txt"
rm "$pkgdir/usr/lib/firedragon/about.png" rm "$pkgdir/usr/lib/firedragon/about.png"
rm "$pkgdir/usr/lib/firedragon/home.png"
rm "$pkgdir/usr/lib/firedragon/firedragon.psd" rm "$pkgdir/usr/lib/firedragon/firedragon.psd"
rm "$pkgdir/usr/lib/firedragon/home.png"
rm "$pkgdir/usr/lib/firedragon/tabliss.json"
} }

View File

@ -1,13 +0,0 @@
Fix window buttons in case CSD when globalmenu is active
(taken from firefox-kde-opensuse)
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -334,5 +334,5 @@ toolbar[customizing] #whats-new-menu-button {
%ifdef MENUBAR_CAN_AUTOHIDE
#toolbar-menubar[autohide=true]:not([inactive]) + #TabsToolbar > .titlebar-buttonbox-container {
- visibility: hidden;
+ visibility: visible;
}
%endif

View File

@ -1,21 +0,0 @@
Description: reduce the rust debuginfo level
because compiling with debuginfo=2 causes the OOM killer to interrupt the build
on launchpad builders. Initially this was only on 32 bit architectures, but
with firefox 63 it started happening frequently on arm64 and ppc64el too,
with newer versions it started happening very frequently on s390x too, and with
firefox 84 (built with rustc 1.47) it started happening on amd64 too.
This patch would initially decrease debug_info for selected architectures, but
with recent versions of rustc pretty much all supported architectures are
affected, so it is now unconditional.
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -2167,7 +2167,7 @@ def rust_compile_flags(opt_level, debug_
debug_assertions = False
if debug_symbols:
- debug_info = "2"
+ debug_info = "1"
opts = []