summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--README.md30
-rw-r--r--armhf-reduce-linker-memory-use.patch22
-rw-r--r--cbindgen-vendor.tar.xzbin0 -> 5627872 bytes
-rw-r--r--context-menu.patch43
-rw-r--r--fix-armhf-webrtc-build.patch65
-rw-r--r--librewolf-branding.tgzbin0 -> 959697 bytes
-rwxr-xr-xlibrewolf.cfg510
-rw-r--r--librewolf.spec1838
-rw-r--r--megabar.patch118
-rw-r--r--mozilla-vpn-ad.patch30
-rw-r--r--reduce-rust-debuginfo.patch21
-rw-r--r--relax-cargo-dep.patch12
-rw-r--r--remove_addons.patch74
-rw-r--r--sources4
-rw-r--r--use-system-icupkg.patch13
-rw-r--r--webrtc-fix-compiler-flags-for-armhf.patch35
17 files changed, 2813 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 324e39a..ae40b64 100644
--- a/.gitignore
+++ b/.gitignore
@@ -314,7 +314,6 @@ firefox-3.6.4.source.tar.bz2
/firefox-langpacks-62.0.3-20181002.tar.xz
/firefox-63.0.source.tar.xz
/firefox-langpacks-63.0-20181018.tar.xz
-/cbindgen-vendor.tar.xz
/firefox-langpacks-63.0.1-20181101.tar.xz
/firefox-63.0.1.source.tar.xz
/firefox-63.0.3.source.tar.xz
@@ -479,3 +478,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-langpacks-93.0-20210929.tar.xz
/firefox-94.0.source.tar.xz
/firefox-langpacks-94.0-20211031.tar.xz
+*.spec?
+.*.swp
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..48a88a6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,30 @@
+# README for librewolf-fedora-ff
+
+## Overview
+After using the [prep-librewolf-rpm.sh](https://gitlab.com/bgstack15/librewolf-fedora) script, a modified copy of Fedora Firefox src.rpm git repo exists on the local filesystem.
+
+If this README.md exists in a directory named `for-repo`, then it is still in its source location from the above link, and not in its final location.
+
+## This repository
+This README file belongs in the modified copy of that Fedora Firefox src.rpm [git repository](https://src.fedoraproject.org/rpms/firefox). That modified git repo can be sent up to a [new web location](https://gitlab.com/bgstack15/librewolf-fedora-ff).
+
+Fedora [COPR](https://copr.fedorainfracloud.org/coprs/bgstack15/AfterMozilla/packages/) can then use rpkg to pull this new git repository, so users do not have to upload the 400MB src.rpm manually.
+
+## Using this repository
+Script `git-helper.sh` included in the [librewolf-fedora](https://gitlab.com/bgstack15/librewolf-fedora) repository will add the new git repo for librewolf-fedora-ff and fix the .gitignore.
+
+## Differences from upstream repo
+The Librewolf rpm git repo makes some changes to the Firefox rpm git repo.
+Files are added or modified:
+* this README.md
+* .gitignore
+* librewolf.spec
+* LibreWolf patches that are not named here
+* a few tarballs omitted from upstream git sources:
+ * cbindgen-vendor.tar.xz
+ * `firefox-langpacks-*.tar.xz`
+
+Files that are removed:
+* sources
+
+Fedora's dist-git project provides a lookaside cache for large assets so they do not have to be stored in source control. The `sources` file links to those files, but we embed in the librewolf src.rpm the two tarballs we need.
diff --git a/armhf-reduce-linker-memory-use.patch b/armhf-reduce-linker-memory-use.patch
new file mode 100644
index 0000000..a9afe2d
--- /dev/null
+++ b/armhf-reduce-linker-memory-use.patch
@@ -0,0 +1,22 @@
+Description: starting with firefox 66, armhf builds on Launchpad frequently
+ fail with "/usr/bin/ld: final link failed: memory exhausted" when linking
+ libxul.so. This is an attempt to reduce the memory used by ld.
+Author: Olivier Tilloy <olivier.tilloy@canonical.com>
+
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -2287,10 +2287,12 @@
+ set_config("LINKER_KIND", select_linker.KIND)
+
+
+-@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler)
++@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler, host)
+ @imports("os")
+-def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler):
++def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler, host):
+ flags = list((linker and linker.LINKER_FLAG) or [])
++ if host.cpu == "arm":
++ flags.append("-Wl,--no-keep-memory")
+ # rpath-link is irrelevant to wasm, see for more info https://github.com/emscripten-core/emscripten/issues/11076.
+ if sysroot.path and multiarch_dir and target.os != "WASI":
+ for d in ("lib", "usr/lib"):
diff --git a/cbindgen-vendor.tar.xz b/cbindgen-vendor.tar.xz
new file mode 100644
index 0000000..7ee5ee3
--- /dev/null
+++ b/cbindgen-vendor.tar.xz
Binary files differ
diff --git a/context-menu.patch b/context-menu.patch
new file mode 100644
index 0000000..5685f96
--- /dev/null
+++ b/context-menu.patch
@@ -0,0 +1,43 @@
+diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc
+--- a/browser/base/content/browser-context.inc
++++ b/browser/base/content/browser-context.inc
+@@ -102,19 +102,16 @@
+ oncommand="gContextMenu.openLinkInPrivateWindow();"/>
+ <menuseparator id="context-sep-open"/>
+ <menuitem id="context-bookmarklink"
+ data-l10n-id="main-context-menu-bookmark-link"
+ oncommand="gContextMenu.bookmarkLink();"/>
+ <menuitem id="context-savelink"
+ data-l10n-id="main-context-menu-save-link"
+ oncommand="gContextMenu.saveLink();"/>
+- <menuitem id="context-savelinktopocket"
+- data-l10n-id="main-context-menu-save-link-to-pocket"
+- oncommand= "Pocket.savePage(gContextMenu.browser, gContextMenu.linkURL);"/>
+ <menuitem id="context-copyemail"
+ data-l10n-id="main-context-menu-copy-email"
+ oncommand="gContextMenu.copyEmail();"/>
+ <menuitem id="context-copylink"
+ data-l10n-id="main-context-menu-copy-link-simple"
+ oncommand="gContextMenu.copyLink();"/>
+ <menu id="context-sendlinktodevice"
+ class="sync-ui-item"
+@@ -254,19 +251,16 @@
+ #ifdef XP_MACOSX
+ <menuitem id="context-bookmarkpage"
+ data-l10n-id="main-context-menu-bookmark-add-mac"
+ oncommand="gContextMenu.bookmarkThisPage();"/>
+ #endif
+ <menuitem id="context-savepage"
+ data-l10n-id="main-context-menu-page-save"
+ oncommand="gContextMenu.savePageAs();"/>
+- <menuitem id="context-pocket"
+- data-l10n-id="main-context-menu-save-to-pocket"
+- oncommand="Pocket.savePage(gContextMenu.browser, gContextMenu.browser.currentURI.spec, gContextMenu.browser.contentTitle);"/>
+ <menu id="context-sendpagetodevice"
+ class="sync-ui-item"
+ data-l10n-id="main-context-menu-send-to-device"
+ hidden="true">
+ <menupopup id="context-sendpagetodevice-popup"
+ onpopupshowing="(() => { gSync.populateSendTabToDevicesMenu(event.target, gBrowser.currentURI.spec, gBrowser.contentTitle); })()"/>
+ </menu>
+ <menu id="fill-login" hidden="true">
diff --git a/fix-armhf-webrtc-build.patch b/fix-armhf-webrtc-build.patch
new file mode 100644
index 0000000..5256fc7
--- /dev/null
+++ b/fix-armhf-webrtc-build.patch
@@ -0,0 +1,65 @@
+--- a/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
++++ b/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
+@@ -31,10 +31,6 @@ LOCAL_INCLUDES += [
+ "/tools/profiler/public"
+ ]
+
+-UNIFIED_SOURCES += [
+- "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+-]
+-
+ if not CONFIG["MOZ_DEBUG"]:
+
+ DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0"
+@@ -53,20 +49,36 @@ if CONFIG["CPU_ARCH"] == "aarch64":
+ DEFINES["WEBRTC_ARCH_ARM64"] = True
+ DEFINES["WEBRTC_HAS_NEON"] = True
+
+-if CONFIG["CPU_ARCH"] == "arm":
+-
+- CFLAGS += [
+- "-mfpu=neon"
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
+ ]
+
++if CONFIG["CPU_ARCH"] == "arm":
++
+ DEFINES["WEBRTC_ARCH_ARM"] = True
+ DEFINES["WEBRTC_ARCH_ARM_V7"] = True
+ DEFINES["WEBRTC_HAS_NEON"] = True
+
++if CONFIG["CPU_ARCH"] == "ppc64":
++
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
++ ]
++
+ if CONFIG["CPU_ARCH"] == "x86":
+
+ CFLAGS += [
+ "-msse2"
+ ]
+
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
++ ]
++
++if CONFIG["CPU_ARCH"] == "x86_64":
++
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
++ ]
++
+ Library("cpu_features_linux_gn")
+--- a/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
++++ b/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
+@@ -187,7 +187,7 @@ if (is_android && !build_with_mozilla) {
+ }
+ }
+
+-if (is_linux) {
++if (is_linux && target_cpu != "arm") {
+ rtc_static_library("cpu_features_linux") {
+ sources = [
+ "source/cpu_features_linux.c",
diff --git a/librewolf-branding.tgz b/librewolf-branding.tgz
new file mode 100644
index 0000000..de17d09
--- /dev/null
+++ b/librewolf-branding.tgz
Binary files differ
diff --git a/librewolf.cfg b/librewolf.cfg
new file mode 100755
index 0000000..6afe37a
--- /dev/null
+++ b/librewolf.cfg
@@ -0,0 +1,510 @@
+//----------------------|
+// LibreWolf settings |
+//----------------------|
+
+/**
+
+ NOTE: please take the time to read and understand, but also to customize the settings to find your own setup.
+ the answers to the most common questions are at this link https://librewolf.net/docs/faq/
+
+ */
+
+defaultPref("librewolf.cfg.version", "3.0");
+
+// -------------------------------
+// # SANITIZING, TP, SESSIONS
+// -------------------------------
+
+/**
+ strict mode includes:
+ - dFPI for both normal and private browsing
+ - strict blocking lists for trackers, including crypto, fping and socialtracking
+ - shims to avoid breakage caused by blocking lists
+ - stricter policies for xorigin referrers
+ - cookie cleaning mechanism specific to dFPI
+*/
+pref("browser.contentblocking.category", "strict");
+
+defaultPref("network.cookie.cookieBehavior", 5); // dFPI is default for strict mode, but enforce
+defaultPref("network.cookie.lifetimePolicy", 2); // keep cookies until the browser is closed then delete everything minus exceptions
+
+// make third party and http cookies session-only
+defaultPref("network.cookie.thirdparty.sessionOnly", true);
+defaultPref("network.cookie.thirdparty.nonsecureSessionOnly", true);
+
+/**
+ this way of sanitizing would override the exceptions set by the users and just delete everything,
+ therefore we tell it to delete everything but ignore data needed to stay logged into websites set
+ manually as exceptions.
+*/
+defaultPref("privacy.clearOnShutdown.cookies", false);
+defaultPref("privacy.clearOnShutdown.offlineApps", false);
+defaultPref("privacy.sanitize.sanitizeOnShutdown", true);
+
+// disable browsing, search and form history
+defaultPref("places.history.enabled", false);
+defaultPref("browser.formfill.enable", false);
+
+// prevent websites from storing session data like cookies and forms, increase time between session saves
+defaultPref("browser.sessionstore.privacy_level", 2);
+defaultPref("browser.sessionstore.interval", 60000);
+
+// ----------------------
+// # NETWORKING
+// ----------------------
+
+// https and mixed content
+defaultPref("dom.security.https_only_mode", true); // only allow https in all windows, including private browsing
+defaultPref("network.auth.subresource-http-auth-allow", 1); // stop cross-origin resources from using HTTP authentication
+defaultPref("security.insecure_connection_text.enabled", true); // display http websites as insecure in the ui
+defaultPref("security.mixed_content.block_display_content", true); // block insecure passive content
+
+defaultPref("network.dns.disableIPv6", true); // disable ipv6
+
+// always send xorigin referer but trim them
+defaultPref("network.http.referer.XOriginPolicy", 0); // default, might be worth changing to 2
+defaultPref("network.http.referer.XOriginTrimmingPolicy", 2); // trim referer to only send scheme, host and port
+
+defaultPref("network.file.disable_unc_paths", true); // hidden, disable using uniform naming convention
+defaultPref("network.IDN_show_punycode", true); // use punycode in idn to prevent spoofing
+
+// proxy
+defaultPref("network.proxy.socks_remote_dns", true); // forces dns query through the proxy when using one
+defaultPref("network.gio.supported-protocols", ""); // disable gio as it could bypass proxy
+
+// doh
+defaultPref("network.trr.confirmationNS", "skip"); // skip undesired doh test connection
+/**
+ 0 = default
+ 1 = browser picks faster
+ 2 = DoH with system dns fallback
+ 3 = DoH without fallback
+ 5 = DoH is off, default currently
+
+ below prefs must be applied with pref in order to work
+*/
+// pref("network.trr.mode", 2);
+// pref("network.trr.uri", "https://dns.quad9.net/dns-query");
+
+// prefetching
+defaultPref("network.dns.disablePrefetch", true); // disable dns prefetching
+lockPref("network.predictor.enabled", false); // disable predictor
+lockPref("network.prefetch-next", false); // disable link prefetching
+lockPref("network.http.speculative-parallel-limit", 0); // disable prefetching on mouse over
+
+defaultPref("network.manage-offline-status", false); // let user control the offline behavior
+
+// ------------
+// # DOM
+// ------------
+
+// pop-ups and window related preferences
+defaultPref("dom.disable_beforeunload", true); // disable "confirm you want to leave" pop-ups on close
+defaultPref("dom.disable_open_during_load", true); // block pop-ups windows
+defaultPref("dom.popup_maximum", 4); // limit maximum number of pop-ups
+defaultPref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); // limit events that cause pop-ups
+defaultPref("dom.disable_window_move_resize", true); // block scripts from resizing windows
+defaultPref("browser.link.open_newwindow", 3); // open 'new windows' targeted links in 'new tab'
+defaultPref("browser.link.open_newwindow.restriction", 0); // ignore the size when applying the above pref
+
+// push notifications and service workeers
+defaultPref("dom.push.enabled", false); // disable push notifications
+defaultPref("dom.push.serverURL", ""); // default "wss://push.services.mozilla.com/"
+defaultPref("dom.serviceWorkers.enabled", false); // disable service workers, must enable for push notifications
+
+// --------------------------------
+// # CACHE AND TEMPORARY FILES
+// --------------------------------
+
+defaultPref("browser.cache.disk.enable", false); // disable disk cache
+defaultPref("browser.privatebrowsing.forceMediaMemoryCache", true); // block media cache from writing to disk in pb mode
+defaultPref("media.memory_cache_max_size", 65536); // increase max cache size to avoid playback issues caused by above setting
+
+defaultPref("browser.shell.shortcutFavicons", false); // disable shortcut favicons from being stored in profile
+defaultPref("browser.helperApps.deleteTempFileOnExit", true); // delete temporary files opened with external apps
+defaultPref("browser.pagethumbnails.capturing_disabled", true); // disable page thumbnails capturing
+
+// ----------------------
+// # MEDIA
+// ----------------------
+
+// disable webrtc
+defaultPref("media.peerconnection.enabled", false); // master switch
+
+// limit potential IP leaks for webrtc users
+defaultPref("media.peerconnection.ice.default_address_only", true); // use public IP for ICE candidates
+defaultPref("media.peerconnection.ice.no_host", true); // don't use local IP for ICE candidates
+defaultPref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); // force webrtc inside proxy for proxy users
+
+// autoplay
+defaultPref("media.autoplay.blocking_policy", 2); // only allow to play when a certain element is clicked
+defaultPref("media.autoplay.default", 5); // personal preference, currently apply blocking policy to all autplay including muted
+
+// --------------------------------------
+// # FINGERPRINTING
+// --------------------------------------
+
+defaultPref("privacy.resistFingerprinting", true); // master switch
+
+// rfp compatibility settings
+defaultPref("privacy.resistFingerprinting.block_mozAddonManager", true); // prevents rfp from breaking AMO
+defaultPref("browser.startup.blankWindow", false); // if set to true it breaks RFP windows resizing
+defaultPref("browser.display.use_system_colors", false); // default but enforced due to RFP
+
+defaultPref("privacy.resistFingerprinting.letterboxing", false); // expose hidden letterboxing pref, but do not enable by default
+
+// librewolf specifc pref that prevents rfp from forcing light theme, review
+lockPref("privacy.override_rfp_for_color_scheme", false);
+
+defaultPref("webgl.disabled", true); // master switch, disable webgl
+
+// --------------------------------
+// # SECURITY
+// --------------------------------
+
+defaultPref("fission.autostart", true); // enable fission by default
+
+// certificates
+defaultPref("security.cert_pinning.enforcement_level", 2); // enable strict public key pinning
+defaultPref("security.pki.sha1_enforcement_level", 1); // disable sha-1 certificates
+defaultPref("security.OCSP.enabled", 0); // disable OCSP fetching
+
+// crl with no OCSP fallback. commented for now but review
+// defaultPref("security.remote_settings.crlite_filters.enabled", true);
+// defaultPref("security.pki.crlite_mode", 2);
+
+// safe negotiation
+defaultPref("security.ssl.require_safe_negotiation", true); // block websites that do not support safe negotiation, occasional breakage
+defaultPref("security.ssl.treat_unsafe_negotiation_as_broken", true); // show warning when safe negotiation is not enable and website is accessed
+
+// tls behavior
+lockPref("security.tls.enable_0rtt_data", false); // disable 0 round trip time to improve tls 1.3 security
+defaultPref("security.tls.version.enable-deprecated", false); // default but helps resetting the preference
+defaultPref("browser.ssl_override_behavior", 1); // prepopulate url on ssl warning screens
+defaultPref("browser.xul.error_pages.expert_bad_cert", true); // advanced ui infos for broken connections
+
+// permissions
+lockPref("permissions.delegation.enabled", false); // force permission request to show the real origin
+lockPref("permissions.manager.defaultsUrl", ""); // revoke special permissions from some mozilla domains
+
+defaultPref("gfx.font_rendering.opentype_svg.enabled", false); // disale svg opentype fonts
+
+defaultPref("browser.download.useDownloadDir", false); // force user interaction on downloads, by always asking location
+
+lockPref("security.csp.enable", true); // default
+
+// ---------------------------------
+// # SAFE BROWSING
+// ---------------------------------
+
+// disable safe browsing, including the fetch of updates and all outgoing connections
+defaultPref("browser.safebrowsing.malware.enabled", false);
+defaultPref("browser.safebrowsing.phishing.enabled", false);
+defaultPref("browser.safebrowsing.blockedURIs.enabled", false);
+defaultPref("browser.safebrowsing.provider.google4.gethashURL", "");
+defaultPref("browser.safebrowsing.provider.google4.updateURL", "");
+defaultPref("browser.safebrowsing.provider.google.gethashURL", "");
+defaultPref("browser.safebrowsing.provider.google.updateURL", "");
+
+// disable safe browsing checks on downloads, both local and remote
+defaultPref("browser.safebrowsing.downloads.enabled", false);
+lockPref("browser.safebrowsing.downloads.remote.enabled", false);
+lockPref("browser.safebrowsing.downloads.remote.url", "");
+lockPref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false);
+lockPref("browser.safebrowsing.downloads.remote.block_uncommon", false);
+
+// other safe browsing options, all default but enforce
+lockPref("browser.safebrowsing.passwords.enabled", false);
+lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false);
+lockPref("browser.safebrowsing.provider.google4.dataSharingURL", "");
+
+// -----------------------
+// # DRM
+// -----------------------
+
+defaultPref("media.eme.enabled", false); // disable drm content, master switch that also controls widevine plugin
+defaultPref("media.gmp-manager.url", "data:text/plain,"); // prevent outgoing connections when DRM is disabled
+
+// disable the openh264 plugin
+defaultPref("media.gmp-provider.enabled", false);
+defaultPref("media.gmp-gmpopenh264.enabled", false);
+
+// ---------------------------------------------
+// # LOCATION, LANGUAGE AND REGION
+// ---------------------------------------------
+
+defaultPref("geo.enabled", false); // block geo api, behind a prompt so review
+defaultPref("permissions.default.geo", 2); // review as well
+
+// use mozilla geo service as deault
+defaultPref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+
+// prevent use of OS location services
+lockPref("geo.provider.ms-windows-location", false); // [WINDOWS]
+lockPref("geo.provider.use_corelocation", false); // [MAC]
+lockPref("geo.provider.use_gpsd", false); // [LINUX]
+
+// show language as en-US for all users, regardless of their OS language and local version, to avoid leaking
+defaultPref("javascript.use_us_english_locale", true);
+defaultPref("intl.locale.requested", "en-US");
+defaultPref("privacy.spoof_english", 2);
+
+// disable region updates
+lockPref("browser.region.network.url", "");
+lockPref("browser.region.update.enabled", false);
+
+// --------------------------------
+// # SEARCH AND URLBAR
+// --------------------------------
+
+// disable search suggestions
+defaultPref("browser.urlbar.suggest.searches", false);
+defaultPref("browser.search.suggest.enabled", false);
+pref("browser.urlbar.quicksuggest.scenario", ""); // disable firefox suggests and hide its UI
+
+defaultPref("browser.search.region", "US"); // set a default search region for all users
+defaultPref("browser.search.update", false); // do not update open search search engines
+defaultPref("browser.urlbar.trimURLs", false); // do not trim urls in the urlbar
+
+// urlbar-dns interactions, avoid unwanted and speculative connections
+defaultPref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0);
+defaultPref("browser.urlbar.speculativeConnect.enabled", false);
+lockPref("browser.fixup.alternate.enabled", false);
+
+// ----------------------------------
+// # BROWSER BEHAVIOR
+// ----------------------------------
+
+lockPref("app.update.auto", false); // disable update auto installs
+
+// password manager
+defaultPref("signon.rememberSignons", false); // disable saving passwords in the browser
+defaultPref("signon.autofillForms", false); // disable username and password autofills
+defaultPref("signon.formlessCapture.enabled", false); // disable formless login capture
+
+// autofill
+defaultPref("extensions.formautofill.available", "off");
+defaultPref("extensions.formautofill.addresses.enabled", false);
+defaultPref("extensions.formautofill.creditCards.enabled", false);
+defaultPref("extensions.formautofill.creditCards.available", false);
+defaultPref("extensions.formautofill.heuristics.enabled", false);
+
+// mouse and input
+defaultPref("general.autoScroll", false); // prevent mouse middle click from triggering scrolling
+defaultPref("middlemouse.contentLoadURL", false); // prevent mouse middle click from opening links
+defaultPref("clipboard.autocopy", false); // disable autocopy to clibpboard
+
+// containers
+defaultPref("privacy.userContext.enabled", true); // enable containers
+defaultPref("privacy.userContext.ui.enabled", true); // enable containers ui
+
+defaultPref("pdfjs.enableScripting", false); // block pdf js scripting
+
+defaultPref("accessibility.force_disabled", 1); // block accessibility services
+
+// devtools
+defaultPref("devtools.chrome.enabled", false); // disable chrome debugging tools
+defaultPref("devtools.debugger.remote-enabled", false); // default, disable remote debugging
+defaultPref("devtools.remote.adb.extensionURL", ""); // url to download ad extension
+defaultPref("devtools.selfxss.count", 0); // see https://gitlab.com/librewolf-community/browser/linux/-/issues/80
+
+// misc
+defaultPref("browser.shell.checkDefaultBrowser", false); // do not check if default browser
+defaultPref("browser.tabs.drawInTitlebar", true); // hide titlebar
+defaultPref("browser.aboutConfig.showWarning", false); // disable about:config warning
+defaultPref("browser.download.autohideButton", false); // hide download button automatically
+defaultPref("browser.download.manager.addToRecentDocs", false); // do not add downloads to recents
+defaultPref("browser.tabs.loadBookmarksInTabs", true); // always open bookmarks in new tab
+
+// --------------------------------------
+// # EXTENSIONS
+// --------------------------------------
+
+/**
+ allow extensions to work on all domains.
+ default is "debug-notes.log"
+ */
+defaultPref("extensions.webextensions.restrictedDomains", "");
+
+// set extensions scopes
+defaultPref("extensions.enabledScopes", 5);
+defaultPref("extensions.autoDisableScopes", 11);
+
+defaultPref("extensions.postDownloadThirdPartyPrompt", false); // force install prompt for thrid party extensions
+
+/**
+ prevent users from adding lang packs, which would cause leaks.
+ default is https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%
+*/
+defaultPref("extensions.getAddons.langpacks.url", "");
+
+// about:addons ui
+defaultPref("extensions.getAddons.showPane", false); // disable recommendations section
+defaultPref("extensions.htmlaboutaddons.recommendations.enabled", false); // disable recommendations from addons list
+defaultPref("lightweightThemes.getMoreURL", ""); // disable button to get more themes
+
+// background checking and updating of extensions
+defaultPref("extensions.update.enabled", false); // disable automatic checks for extension updates
+defaultPref("extensions.update.autoUpdateDefault", false); // disable automatic installs of extension updates
+defaultPref("extensions.getAddons.cache.enabled", false); // disable fetching of extension metadata
+
+// extension firewall, disabled by default
+// defaultPref("extensions.webextensions.base-content-security-policy", "default-src 'none'; script-src 'none'; object-src 'none';");
+// defaultPref("extensions.webextensions.base-content-security-policy.v3", "default-src 'none'; script-src 'none'; object-src 'none';");
+
+// report site issue, disable button and url for in depth defense
+lockPref("extensions.webcompat-reporter.enabled", false);
+lockPref("extensions.webcompat-reporter.newIssueEndpoint", "");
+
+// system addons, prevent updates and strip url for in depth defense
+defaultPref("extensions.systemAddon.update.enabled", false);
+defaultPref("extensions.systemAddon.update.url", "");
+
+// --------------------------------
+// # URLS AND ANNOYANCES
+// --------------------------------
+
+// set librewolf support and releases urls
+defaultPref("app.support.baseURL", "https://librewolf.net/docs/faq/#");
+defaultPref("browser.search.searchEnginesURL", "https://librewolf.net/docs/faq/#how-do-i-add-a-search-engine");
+defaultPref("browser.geolocation.warning.infoURL", "https://librewolf.net/docs/faq/#how-do-i-enable-location-aware-browsing");
+defaultPref("app.feedback.baseURL", "https://librewolf.net/#questions");
+defaultPref("app.releaseNotesURL", "https://gitlab.com/librewolf-community/browser");
+defaultPref("app.releaseNotesURL.aboutDialog", "https://gitlab.com/librewolf-community/browser");
+defaultPref("app.update.url.details", "https://gitlab.com/librewolf-community/browser");
+defaultPref("app.update.url.manual", "https://gitlab.com/librewolf-community/browser");
+
+// remove default handlers and translation engine
+lockPref("gecko.handlerService.schemes.mailto.0.uriTemplate", "");
+lockPref("gecko.handlerService.schemes.mailto.0.name", "");
+lockPref("gecko.handlerService.schemes.mailto.1.uriTemplate", "");
+lockPref("gecko.handlerService.schemes.mailto.1.name", "");
+lockPref("gecko.handlerService.schemes.irc.0.uriTemplate", "");
+lockPref("gecko.handlerService.schemes.irc.0.name", "");
+lockPref("gecko.handlerService.schemes.ircs.0.uriTemplate", "");
+lockPref("gecko.handlerService.schemes.ircs.0.name", "");
+lockPref("browser.translation.engine", "");
+
+// disable welcome, what is new pages and ui tour
+defaultPref("browser.startup.homepage_override.mstone", "ignore");
+defaultPref("startup.homepage_override_url", "about:blank");
+defaultPref("startup.homepage_welcome_url", "about:blank");
+defaultPref("startup.homepage_welcome_url.additional", "");
+lockPref("browser.messaging-system.whatsNewPanel.enabled", false);
+lockPref("browser.uitour.enabled", false);
+lockPref("browser.uitour.url", "");
+
+// hide annoying ui elements from about:protections
+defaultPref("browser.contentblocking.report.lockwise.enabled", false);
+defaultPref("browser.contentblocking.report.monitor.enabled", false);
+lockPref("browser.contentblocking.report.hide_vpn_banner", true);
+lockPref("browser.contentblocking.report.vpn.enabled", false);
+lockPref("browser.contentblocking.report.show_mobile_app", false);
+
+defaultPref("browser.topsites.useRemoteSetting", false); // hide sponsored shortcuts button from about:preferences#home
+
+// ------------------------------------
+// # NEW TAB PAGE
+// ------------------------------------
+
+defaultPref("browser.newtab.preload", false);
+defaultPref("browser.newtabpage.activity-stream.section.highlights.includeDownloads", false);
+defaultPref("browser.newtabpage.activity-stream.section.highlights.includeVisited", false);
+defaultPref("browser.newtabpage.activity-stream.feeds.topsites", false);
+
+// hide pocket and sponsored content, from new tab page and search bar
+lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
+lockPref("browser.newtabpage.activity-stream.feeds.system.topstories", false);
+lockPref("browser.newtabpage.activity-stream.feeds.telemetry", false);
+lockPref("browser.newtabpage.activity-stream.feeds.section.topstories.options", "{\"hidden\":true}"); // hide buggy pocket section from about:preferences#home
+lockPref("browser.newtabpage.activity-stream.showSponsored", false);
+lockPref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
+lockPref("browser.newtabpage.activity-stream.telemetry", false);
+lockPref("browser.newtabpage.activity-stream.default.sites", "");
+lockPref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false);
+lockPref("browser.newtabpage.activity-stream.discoverystream.enabled", false);
+lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); // default
+
+// disable recommend as you browse
+lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
+lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
+
+// --------------------------------
+// # TELEMETRY
+// --------------------------------
+
+lockPref("toolkit.telemetry.unified", false); // master switch
+lockPref("toolkit.telemetry.enabled", false); // master switch
+lockPref("toolkit.telemetry.server", "data:,");
+lockPref("toolkit.telemetry.archive.enabled", false);
+lockPref("toolkit.telemetry.newProfilePing.enabled", false);
+lockPref("toolkit.telemetry.updatePing.enabled", false);
+lockPref("toolkit.telemetry.firstShutdownPing.enabled", false);
+lockPref("toolkit.telemetry.shutdownPingSender.enabled", false);
+lockPref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); // default
+lockPref("toolkit.telemetry.bhrPing.enabled", false);
+lockPref("toolkit.telemetry.reportingpolicy.firstRun", false); // default
+lockPref("toolkit.telemetry.cachedClientID", "");
+lockPref("toolkit.telemetry.previousBuildID", "");
+lockPref("toolkit.telemetry.server_owner", "");
+lockPref("toolkit.coverage.opt-out", true); // [HIDDEN PREF]
+lockPref("toolkit.coverage.enabled", false);
+lockPref("toolkit.coverage.endpoint.base", "");
+lockPref("toolkit.crashreporter.infoURL", "");
+lockPref("datareporting.healthreport.uploadEnabled", false);
+lockPref("datareporting.policy.dataSubmissionEnabled", false);
+lockPref("security.protectionspopup.recordEventTelemetry", false);
+lockPref("browser.ping-centre.telemetry", false);
+
+// crash report
+lockPref("breakpad.reportURL", "");
+lockPref("browser.tabs.crashReporting.sendReport", false);
+
+// normandy and studies
+lockPref("app.normandy.enabled", false);
+lockPref("app.normandy.api_url", "");
+lockPref("app.shield.optoutstudies.enabled", false);
+
+// personalized extension recommendations
+lockPref("browser.discovery.enabled", false);
+lockPref("browser.discovery.containers.enabled", false);
+lockPref("browser.discovery.sites", "");
+
+// connectivity checks
+lockPref("network.connectivity-service.enabled", false);
+
+// captive portal
+lockPref("network.captive-portal-service.enabled", false);
+lockPref("captivedetect.canonicalURL", "");
+
+// prevent sending server side analytics
+lockPref("beacon.enabled", false);
+
+// --------------------------------
+// # WINDOWS
+// --------------------------------
+
+// disable windows specific background update service
+lockPref("app.update.service.enabled", false);
+defaultPref("app.update.background.scheduling.enabled", false);
+
+defaultPref("network.protocol-handler.external.ms-windows-store", false); // disable links launching windows store
+
+lockPref("toolkit.winRegisterApplicationRestart", false); // disable automatic Firefox start and session restore after reboot
+
+lockPref("security.family_safety.mode", 0); // disable win8.1 family safety cert
+
+lockPref("default-browser-agent.enabled", false); // disable windows specific telemetry
+
+defaultPref("network.http.windows-sso.enabled", false); // disable MS auto authentication via sso
+
+// -----------------------------------
+// # OVERRIDES
+// -----------------------------------
+
+// allow settings to be overriden with a file at `~/.librewolf/librewolf.overrides.cfg`
+// or `~/.var/app/io.gitlab.librewolf-community/.librewolf/librewolf.overrides.cfg` (Flatpak).
+let profile_directory;
+if (profile_directory = getenv('USERPROFILE') || getenv('HOME')) {
+ pref('autoadmin.global_config_url', `file://${profile_directory}/.librewolf/librewolf.overrides.cfg`);
+}
diff --git a/librewolf.spec b/librewolf.spec
new file mode 100644
index 0000000..c3598b0
--- /dev/null
+++ b/librewolf.spec
@@ -0,0 +1,1838 @@
+# Produce a build suitable for release, i.e. use PGO/LTO. You can turn it off
+# when building locally to reduce build time.
+%global release_build 1
+
+# Run Mozilla test suite as a part of compile rpm section. Turn off when
+# building locally and don't want to spend 24 hours waiting for results.
+%global run_firefox_tests 0
+%ifarch x86_64 %{ix86}
+%global run_firefox_tests 0
+%endif
+
+# Don't create debuginfo rpm packages. It reduces build time as
+# exctracting debuginfo takes long time.
+%global create_debuginfo 1
+
+# Produce debug (non-optimized) package build. Suitable for debugging only
+# as the build is *very* slow.
+%global debug_build 0
+
+%global system_nss 1
+%global build_with_asan 0
+%global test_on_wayland 1
+
+%if "%{toolchain}" == "clang"
+%global build_with_clang 1
+%else
+%global build_with_clang 0
+%endif
+
+# There are still build problems on s390x, see
+# https://koji.fedoraproject.org/koji/taskinfo?taskID=55048351
+# https://bugzilla.redhat.com/show_bug.cgi?id=1897522
+ExcludeArch: s390x
+
+# Disabled due to
+# https://bugzilla.redhat.com/show_bug.cgi?id=1966949
+%if 0%{?fedora} > 33
+ExcludeArch: armv7hl
+%endif
+
+# Disabled due to
+# https://bugzilla.redhat.com/show_bug.cgi?id=2019160
+%if 0%{?fedora} == 33
+ExcludeArch: aarch64
+%endif
+
+%ifarch armv7hl
+%global create_debuginfo 0
+%endif
+
+# Temporary disabled due to
+# https://bugzilla.redhat.com/show_bug.cgi?id=1951606
+%global enable_mozilla_crashreporter 0
+%ifarch x86_64 %{ix86}
+%global enable_mozilla_crashreporter 1
+%endif
+%if %{build_with_asan}
+%global enable_mozilla_crashreporter 0
+%endif
+%if 0%{?flatpak}
+%global enable_mozilla_crashreporter 0
+%endif
+%if !%{create_debuginfo}
+%define _unpackaged_files_terminate_build 0
+%global debug_package %{nil}
+%global enable_mozilla_crashreporter 0
+%endif
+
+%global system_ffi 1
+%ifarch armv7hl
+%global system_libvpx 1
+%else
+%global system_libvpx 0
+%endif
+%global hardened_build 1
+%global system_jpeg 1
+%global disable_elfhack 1
+%global use_bundled_cbindgen 1
+%if %{debug_build}
+%global release_build 0
+%endif
+# Build PGO+LTO on x86_64 only due to build issues
+# on other arches.
+%global build_with_pgo 0
+%ifarch x86_64
+%if %{release_build}
+%global build_with_pgo 1
+%endif
+%endif
+%if 0%{?flatpak}
+%global build_with_pgo 0
+%endif
+# Big endian platforms
+%ifarch ppc64 s390x
+%global big_endian 1
+%endif
+
+%if 0%{?build_with_pgo}
+%global use_xvfb 1
+%global build_tests 1
+%endif
+
+%if 0%{?run_firefox_tests}
+%global use_xvfb 1
+%global build_tests 1
+%endif
+
+%global launch_wayland_compositor 0
+%if %{build_with_pgo} && %{test_on_wayland}
+%global launch_wayland_compositor 1
+%endif
+%if %{run_firefox_tests} && %{test_on_wayland}
+%global launch_wayland_compositor 1
+%endif
+
+%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
+%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
+# Minimal required versions
+%global cairo_version 1.13.1
+%global freetype_version 2.1.9
+%global libnotify_version 0.7.0
+%if %{?system_libvpx}
+%global libvpx_version 1.8.2
+%endif
+
+%if %{?system_nss}
+%global nspr_version 4.26
+%global nspr_build_version %{nspr_version}
+%global nss_version 3.70
+%global nss_build_version %{nss_version}
+%endif
+
+%global mozappdir %{_libdir}/librewolf
+%global mozappdirdev %{_libdir}/librewolf-devel-%{version}
+%global langpackdir %{mozappdir}/langpacks
+%global tarballdir firefox-%{version}
+
+%global official_branding 1
+
+%bcond_with langpacks
+
+%if !%{release_build}
+%global pre_tag .npgo
+%endif
+%if %{build_with_clang}
+%global pre_tag .clang
+%endif
+%if %{build_with_asan}
+%global pre_tag .asan
+%global build_with_pgo 0
+%endif
+%if !%{system_nss}
+%global nss_tag .nss
+%endif
+%if %{debug_build}
+%global pre_tag .debug
+%endif
+
+# Exclude private libraries from autogenerated provides and requires
+%global __provides_exclude_from ^%{mozappdir}
+%global __requires_exclude ^(%%(find %{buildroot}%{mozappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -))
+
+Summary: Mozilla Firefox Web browser
+Name: librewolf
+%global enable_mozilla_crashreporter 0
+Version: 94.0
+Release: 1%{?pre_tag}%{?dist}
+URL: https://www.mozilla.org/firefox/
+License: MPLv1.1 or GPLv2+ or LGPLv2+
+Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
+%if %{with langpacks}
+Source1: firefox-langpacks-%{version}%{?pre_version}-20211031.tar.xz
+%endif
+Source2: cbindgen-vendor.tar.xz
+Source10: firefox-mozconfig
+Source12: firefox-redhat-default-prefs.js
+Source20: firefox.desktop
+Source21: firefox.sh.in
+Source23: firefox.1
+Source24: mozilla-api-key
+Source25: firefox-symbolic.svg
+Source26: distribution.ini
+Source27: google-api-key
+Source28: firefox-wayland.sh.in
+Source29: firefox-wayland.desktop
+Source30: firefox-x11.sh.in
+Source31: firefox-x11.desktop
+Source32: node-stdout-nonblocking-wrapper
+Source33: firefox.appdata.xml.in
+Source34: firefox-search-provider.ini
+Source35: google-loc-api-key
+%if 0
+Source37: mochitest-python.tar.gz
+%endif
+Source38: print_results
+Source39: print-errors
+Source40: run-tests-x11
+Source41: run-tests-wayland
+Source42: psummary
+Source43: print_failures
+Source44: print-error-reftest
+Source45: run-wayland-compositor
+
+# Build patches
+Patch3: mozilla-build-arm.patch
+Patch25: rhbz-1219542-s390-build.patch
+Patch32: build-rust-ppc64le.patch
+Patch35: build-ppc-jit.patch
+# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x)
+Patch38: build-cacheFlush-missing.patch
+Patch40: build-aarch64-skia.patch
+Patch41: build-disable-elfhack.patch
+Patch44: build-arm-libopus.patch
+Patch46: firefox-nss-version.patch
+Patch47: fedora-shebang-build.patch
+#Patch48: build-arm-wasm.patch
+Patch49: build-arm-libaom.patch
+Patch53: firefox-gcc-build.patch
+# This should be fixed in Firefox 83
+Patch54: mozilla-1669639.patch
+Patch55: firefox-testing.patch
+Patch57: firefox-disable-ffvpx-with-vapi.patch
+Patch61: firefox-glibc-dynstack.patch
+
+# Test patches
+# Generate without context by
+# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-xpcshell
+# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-reftest
+Patch100: firefox-tests-xpcshell.patch
+Patch101: firefox-tests-reftest.patch
+Patch102: firefox-tests-xpcshell-freeze.patch
+
+# Fedora specific patches
+Patch215: firefox-enable-addons.patch
+Patch219: rhbz-1173156.patch
+Patch221: firefox-fedora-ua.patch
+Patch224: mozilla-1170092.patch
+#ARM run-time patch
+Patch226: rhbz-1354671.patch
+Patch228: disable-openh264-download.patch
+Patch229: firefox-nss-addon-hack.patch
+
+# Upstream patches
+Patch402: mozilla-1196777.patch
+Patch407: mozilla-1667096.patch
+Patch408: mozilla-1663844.patch
+Patch415: mozilla-1670333.patch
+Patch420: mochitest-wayland-workaround.patch
+
+# PGO/LTO patches
+Patch600: pgo.patch
+Patch602: mozilla-1516803.patch
+
+%if %{?system_nss}
+BuildRequires: pkgconfig(nspr) >= %{nspr_version}
+BuildRequires: pkgconfig(nss) >= %{nss_version}
+BuildRequires: nss-static >= %{nss_version}
+%endif
+BuildRequires: pkgconfig(libpng)
+%if %{?system_jpeg}
+BuildRequires: libjpeg-devel
+%endif
+BuildRequires: zip
+BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: bzip2-devel
+BuildRequires: pkgconfig(zlib)
+BuildRequires: pkgconfig(gtk+-3.0)
+BuildRequires: pkgconfig(gtk+-2.0)
+BuildRequires: pkgconfig(krb5)
+BuildRequires: pkgconfig(pango)
+BuildRequires: pkgconfig(freetype2) >= %{freetype_version}
+BuildRequires: pkgconfig(xt)
+BuildRequires: pkgconfig(xrender)
+BuildRequires: pkgconfig(libstartup-notification-1.0)
+BuildRequires: pkgconfig(libnotify) >= %{libnotify_version}
+BuildRequires: pkgconfig(dri)
+BuildRequires: pkgconfig(libcurl)
+BuildRequires: dbus-glib-devel
+%if %{?system_libvpx}
+BuildRequires: libvpx-devel >= %{libvpx_version}
+%endif
+BuildRequires: autoconf213
+BuildRequires: pkgconfig(libpulse)
+BuildRequires: yasm
+BuildRequires: llvm
+BuildRequires: llvm-devel
+BuildRequires: clang
+BuildRequires: clang-libs
+%if %{build_with_clang}
+BuildRequires: lld
+%endif
+
+BuildRequires: pipewire-devel
+
+%if !0%{?use_bundled_cbindgen}
+BuildRequires: cbindgen
+%endif
+BuildRequires: nodejs
+BuildRequires: nasm >= 1.13
+BuildRequires: libappstream-glib
+
+%if 0%{?big_endian}
+BuildRequires: icu
+%endif
+
+Requires: mozilla-filesystem
+Recommends: mozilla-openh264 >= 2.1.1
+Recommends: libva
+Requires: p11-kit-trust
+Requires: pciutils-libs
+%if %{?system_nss}
+Requires: nspr >= %{nspr_build_version}
+Requires: nss >= %{nss_build_version}
+%endif
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+%if !0%{?flatpak}
+Requires: u2f-hidraw-policy
+%endif
+
+BuildRequires: desktop-file-utils
+%if !0%{?flatpak}
+BuildRequires: system-bookmarks
+%endif
+%if %{?system_ffi}
+BuildRequires: pkgconfig(libffi)
+%endif
+
+%if 0%{?use_xvfb}
+BuildRequires: xorg-x11-server-Xvfb
+%endif
+BuildRequires: rust
+BuildRequires: cargo
+BuildRequires: clang-devel
+%if %{build_with_asan}
+BuildRequires: libasan
+BuildRequires: libasan-static
+%endif
+BuildRequires: perl-interpreter
+BuildRequires: fdk-aac-free-devel
+%if 0%{?test_on_wayland}
+BuildRequires: mutter
+BuildRequires: gsettings-desktop-schemas
+BuildRequires: gnome-settings-daemon
+BuildRequires: mesa-dri-drivers
+BuildRequires: xorg-x11-server-Xwayland
+BuildRequires: dbus-x11
+BuildRequires: gnome-keyring
+%endif
+%if 0%{?run_firefox_tests}
+BuildRequires: procps-ng
+BuildRequires: nss-tools
+BuildRequires: python2.7
+BuildRequires: dejavu-sans-mono-fonts
+BuildRequires: dejavu-sans-fonts
+BuildRequires: dejavu-serif-fonts
+BuildRequires: dbus-x11
+BuildRequires: gnome-keyring
+BuildRequires: mesa-dri-drivers
+# ----------------------------------------
+BuildRequires: liberation-fonts-common
+BuildRequires: liberation-mono-fonts
+BuildRequires: liberation-sans-fonts
+BuildRequires: liberation-serif-fonts
+# ----------------------------------
+# Missing on f32
+%if 0%{?fedora} > 33
+BuildRequires: google-carlito-fonts
+%endif
+BuildRequires: google-droid-sans-fonts
+BuildRequires: google-noto-fonts-common
+BuildRequires: google-noto-cjk-fonts-common
+BuildRequires: google-noto-sans-cjk-ttc-fonts
+BuildRequires: google-noto-sans-gurmukhi-fonts
+BuildRequires: google-noto-sans-fonts
+BuildRequires: google-noto-emoji-color-fonts
+BuildRequires: google-noto-sans-sinhala-vf-fonts
+# -----------------------------------
+BuildRequires: thai-scalable-fonts-common
+BuildRequires: thai-scalable-waree-fonts
+BuildRequires: khmeros-base-fonts
+BuildRequires: jomolhari-fonts
+# ----------------------------------
+BuildRequires: lohit-tamil-fonts
+BuildRequires: lohit-telugu-fonts
+# ----------------------------------
+BuildRequires: paktype-naskh-basic-fonts
+# faild to build in Koji / f32
+%if 0%{?fedora} > 33
+BuildRequires: pt-sans-fonts
+%endif
+BuildRequires: smc-meera-fonts
+BuildRequires: stix-fonts
+BuildRequires: abattis-cantarell-fonts
+BuildRequires: xorg-x11-fonts-ISO8859-1-100dpi
+BuildRequires: xorg-x11-fonts-misc
+%endif
+BuildRequires: make
+BuildRequires: pciutils-libs
+
+Obsoletes: mozilla <= 37:1.7.13
+Provides: webclient
+
+Source100: librewolf-branding.tgz
+Source101: librewolf.cfg
+Patch900: armhf-reduce-linker-memory-use.patch
+Patch901: fix-armhf-webrtc-build.patch
+Patch902: webrtc-fix-compiler-flags-for-armhf.patch
+Patch904: remove_addons.patch
+Patch905: megabar.patch
+Patch906: reduce-rust-debuginfo.patch
+Patch907: mozilla-vpn-ad.patch
+Patch908: context-menu.patch
+%description
+Mozilla Firefox is an open-source web browser, designed for standards
+compliance, performance and portability.
+
+%package x11
+Summary: LibreWolf X11 launcher.
+Requires: %{name}
+%description x11
+The librewolf-x11 package contains launcher and desktop file
+to run LibreWolf explicitly on X11.
+%files x11
+%{_bindir}/librewolf-x11
+%{_datadir}/applications/librewolf-x11.desktop
+
+%package wayland
+Summary: LibreWolf Wayland launcher.
+Requires: %{name}
+%description wayland
+The librewolf-wayland package contains launcher and desktop file
+to run LibreWolf explicitly on Wayland.
+%files wayland
+%{_bindir}/librewolf-wayland
+%{_datadir}/applications/librewolf-wayland.desktop
+
+%if 0%{?run_firefox_tests}
+%global testsuite_pkg_name %{name}-testresults
+%package -n %{testsuite_pkg_name}
+Summary: Results of testsuite
+%description -n %{testsuite_pkg_name}
+This package contains results of tests executed during build.
+%files -n %{testsuite_pkg_name}
+/%{version}-%{release}/test_results
+/%{version}-%{release}/test_summary.txt
+/%{version}-%{release}/failures-*
+%endif
+
+#---------------------------------------------------------------------
+
+%prep
+%setup -q -n %{tarballdir}
+
+# Build patches, can't change backup suffix from default because during build
+# there is a compare of config and js/config directories and .orig suffix is
+# ignored during this compare.
+
+%ifarch s390
+%patch25 -p1 -b .rhbz-1219542-s390
+%endif
+%patch40 -p1 -b .aarch64-skia
+%if 0%{?disable_elfhack}
+%patch41 -p1 -b .disable-elfhack
+%endif
+%patch3 -p1 -b .arm
+%patch44 -p1 -b .build-arm-libopus
+#%patch46 -p1 -b .nss-version
+%patch47 -p1 -b .fedora-shebang
+#%patch48 -p1 -b .build-arm-wasm
+%patch49 -p1 -b .build-arm-libaom
+%patch53 -p1 -b .firefox-gcc-build
+%patch54 -p1 -b .1669639
+%patch55 -p1 -b .testing
+%patch57 -p1 -b .ffvpx-with-vapi
+#%patch61 -p1 -b .glibc-dynstack
+
+# Test patches
+#%patch100 -p1 -b .firefox-tests-xpcshell
+#%patch101 -p1 -b .firefox-tests-reftest
+#%patch102 -p1 -b .firefox-tests-xpcshell-freeze
+
+# Fedora patches
+%patch215 -p1 -b .addons
+%patch219 -p1 -b .rhbz-1173156
+%patch221 -p1 -b .fedora-ua
+%patch224 -p1 -b .1170092
+#ARM run-time patch
+%ifarch aarch64
+%patch226 -p1 -b .1354671
+%endif
+%patch228 -p1 -b .disable-openh264-download
+%patch229 -p1 -b .firefox-nss-addon-hack
+
+%patch402 -p1 -b .1196777
+%patch407 -p1 -b .1667096
+%patch408 -p1 -b .1663844
+%patch415 -p1 -b .1670333
+%patch420 -p1 -b .mochitest-wayland-workaround
+
+# PGO patches
+%if %{build_with_pgo}
+%if !%{build_with_clang}
+%patch600 -p1 -b .pgo
+%patch602 -p1 -b .1516803
+%endif
+%endif
+
+%patch900 -p1
+%patch901 -p1
+%patch902 -p1
+%patch904 -p1
+%patch905 -p1
+%patch906 -p1
+%patch907 -p1
+%patch908 -p1
+sed -i '/"pocket"/d' browser/components/moz.build
+sed -i "/SaveToPocket\.init/d" browser/components/BrowserGlue.jsm
+sed -i -r -e '/organizationalUnit.{0,5}=.{0,5}Mozilla/{N;N;N;d}' toolkit/mozapps/extensions/internal/XPIInstall.jsm
+sed -i -r -e '/enterprise_only/s#true#false#g;' browser/components/enterprisepolicies/schemas/policies-schema.json
+_settings_services_sed='s#firefox.settings.services.mozilla.com#f.s.s.m.c.qjz9zk#g'
+sed -e "${_settings_services_sed}" -i browser/components/newtab/data/content/activity-stream.bundle.js
+sed -e "${_settings_services_sed}" -i modules/libpref/init/all.js
+sed -e "${_settings_services_sed}" -i services/settings/Utils.jsm
+sed -e "${_settings_services_sed}" -i toolkit/components/search/SearchUtils.jsm
+( cd browser/branding ; tar -zxf %{SOURCE100} )
+%{__rm} -f .mozconfig
+%{__cp} %{SOURCE10} .mozconfig
+echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig
+%if %{official_branding}
+echo "ac_add_options --enable-official-branding" >> .mozconfig
+%endif
+%{__cp} %{SOURCE24} mozilla-api-key
+%{__cp} %{SOURCE27} google-api-key
+%{__cp} %{SOURCE35} google-loc-api-key
+
+echo "ac_add_options --prefix=\"%{_prefix}\"" >> .mozconfig
+echo "ac_add_options --libdir=\"%{_libdir}\"" >> .mozconfig
+
+%if %{?system_nss}
+echo "ac_add_options --with-system-nspr" >> .mozconfig
+echo "ac_add_options --with-system-nss" >> .mozconfig
+%else
+echo "ac_add_options --without-system-nspr" >> .mozconfig
+echo "ac_add_options --without-system-nss" >> .mozconfig
+%endif
+
+%if %{?system_ffi}
+echo "ac_add_options --enable-system-ffi" >> .mozconfig
+%endif
+
+%ifarch %{arm}
+echo "ac_add_options --disable-elf-hack" >> .mozconfig
+%endif
+
+%if %{?debug_build}
+echo "ac_add_options --disable-debug" >> .mozconfig
+echo "ac_add_options --disable-optimize" >> .mozconfig
+%else
+%global optimize_flags "none"
+%ifarch ppc64le aarch64
+%global optimize_flags "-g -O2"
+%endif
+%if %{optimize_flags} != "none"
+echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
+%else
+echo 'ac_add_options --enable-optimize' >> .mozconfig
+%endif
+echo "ac_add_options --disable-debug" >> .mozconfig
+%endif
+
+# Second arches fail to start with jemalloc enabled
+%ifnarch %{ix86} x86_64
+echo "ac_add_options --disable-jemalloc" >> .mozconfig
+%endif
+
+%if 0%{?build_tests}
+echo "ac_add_options --disable-tests" >> .mozconfig
+%else
+echo "ac_add_options --disable-tests" >> .mozconfig
+%endif
+
+%if !%{?system_jpeg}
+echo "ac_add_options --without-system-jpeg" >> .mozconfig
+%else
+echo "ac_add_options --with-system-jpeg" >> .mozconfig
+%endif
+
+%if %{?system_libvpx}
+echo "ac_add_options --with-system-libvpx" >> .mozconfig
+%else
+echo "ac_add_options --without-system-libvpx" >> .mozconfig
+%endif
+
+%ifarch s390 s390x
+echo "ac_add_options --disable-jit" >> .mozconfig
+%endif
+
+%if %{build_with_asan}
+echo "ac_add_options --enable-address-sanitizer" >> .mozconfig
+echo "ac_add_options --disable-jemalloc" >> .mozconfig
+%endif
+
+%if !%{enable_mozilla_crashreporter}
+echo "ac_add_options --disable-crashreporter" >> .mozconfig
+%endif
+
+# api keys full path
+echo "ac_add_options --with-mozilla-api-keyfile=`pwd`/mozilla-api-key" >> .mozconfig
+# It seems that the api key we have is for the safe browsing only
+echo "ac_add_options --with-google-location-service-api-keyfile=`pwd`/google-loc-api-key" >> .mozconfig
+echo "ac_add_options --with-google-safebrowsing-api-keyfile=`pwd`/google-api-key" >> .mozconfig
+
+echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig
+
+# Remove executable bit to make brp-mangle-shebangs happy.
+chmod -x third_party/rust/itertools/src/lib.rs
+#chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs
+#chmod a-x third_party/rust/gfx-hal/src/*.rs
+chmod a-x third_party/rust/ash/src/extensions/ext/*.rs
+chmod a-x third_party/rust/ash/src/extensions/khr/*.rs
+chmod a-x third_party/rust/ash/src/extensions/nv/*.rs
+
+#---------------------------------------------------------------------
+
+%build
+# Disable LTO to work around rhbz#1883904
+%define _lto_cflags %{nil}
+
+%if 0%{?use_bundled_cbindgen}
+mkdir -p my_rust_vendor
+cd my_rust_vendor
+%{__tar} xf %{SOURCE2}
+mkdir -p .cargo
+cat > .cargo/config <<EOL
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "`pwd`"
+EOL
+
+env CARGO_HOME=.cargo cargo install cbindgen
+export PATH=`pwd`/.cargo/bin:$PATH
+cd -
+%endif
+
+#echo "Generate big endian version of config/external/icu/data/icudt67l.dat"
+#%if 0%{?big_endian}
+# icupkg -tb config/external/icu/data/icudt67l.dat config/external/icu/data/icudt67b.dat
+# ls -l config/external/icu/data
+# rm -f config/external/icu/data/icudt*l.dat
+#%endif
+
+mkdir %{_buildrootdir}/bin || :
+cp %{SOURCE32} %{_buildrootdir}/bin || :
+
+# Update the various config.guess to upstream release for aarch64 support
+# Do not update config.guess in the ./third_party/rust because that would break checksums
+find ./ -path ./third_party/rust -prune -o -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
+
+MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//')
+#rhbz#1037063
+# -Werror=format-security causes build failures when -Wno-format is explicitly given
+# for some sources
+# Explicitly force the hardening flags for Firefox so it passes the checksec test;
+# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
+%if 0%{?fedora} < 30
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
+%else
+# Workaround for mozbz#1531309
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
+%endif
+%if 0%{?fedora} > 30
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fpermissive"
+%endif
+%if %{?hardened_build}
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
+%endif
+%if %{?debug_build}
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
+%endif
+%ifarch s390
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
+# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which
+# overrides the -g1 from line above and breaks building on s390/arm
+# (OOM when linking, rhbz#1238225)
+export MOZ_DEBUG_FLAGS=" "
+%endif
+%ifarch %{arm} %{ix86}
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/')
+export MOZ_DEBUG_FLAGS=" "
+%endif
+%if !%{build_with_clang}
+%ifarch s390 ppc aarch64 %{ix86}
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+%endif
+%ifarch %{arm}
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug"
+echo "ac_add_options --enable-linker=gold" >> .mozconfig
+%endif
+%endif
+%if 0%{?flatpak}
+# Make sure the linker can find libraries in /app/lib64 as we don't use
+# __global_ldflags that normally sets this.
+MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -L%{_libdir}"
+%endif
+%ifarch %{arm} %{ix86} %{s390x}
+export RUSTFLAGS="-Cdebuginfo=0"
+%endif
+%if %{build_with_asan}
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc"
+MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl"
+%endif
+
+# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT"
+
+echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig
+echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig
+echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig
+
+%if %{build_with_clang}
+echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig
+echo "export AR=\"llvm-ar\"" >> .mozconfig
+echo "export NM=\"llvm-nm\"" >> .mozconfig
+echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig
+echo "ac_add_options --enable-linker=lld" >> .mozconfig
+%else
+echo "export CC=gcc" >> .mozconfig
+echo "export CXX=g++" >> .mozconfig
+echo "export AR=\"gcc-ar\"" >> .mozconfig
+echo "export NM=\"gcc-nm\"" >> .mozconfig
+echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
+%endif
+%if 0%{?build_with_pgo}
+echo "ac_add_options MOZ_PGO=1" >> .mozconfig
+# PGO build doesn't work with ccache
+export CCACHE_DISABLE=1
+%endif
+
+echo "ac_add_options --enable-hardening" >> .mozconfig
+echo "ac_add_options --enable-rust-simd" >> .mozconfig
+echo "ac_add_options --with-app-name=librewolf" >> .mozconfig
+echo "ac_add_options --with-app-basename=LibreWolf" >> .mozconfig
+echo "ac_add_options --with-branding=browser/branding/librewolf" >> .mozconfig
+echo "ac_add_options --with-branding=browser/branding/librewolf" >> .mozconfig
+echo "ac_add_options --with-distribution-id=io.gitlab.librewolf-community" >> .mozconfig
+echo "ac_add_options --with-unsigned-addon-scopes=app,system" >> .mozconfig
+echo "ac_add_options --enable-alsa" >> .mozconfig
+echo "ac_add_options --enable-jack" >> .mozconfig
+echo "export MOZ_REQUIRE_SIGNING=0" >> .mozconfig
+echo "ac_add_options --disable-updater" >> .mozconfig
+echo "mk_add_options MOZ_CRASHREPORTER=0" >> .mozconfig
+echo "mk_add_options MOZ_DATA_REPORTING=0" >> .mozconfig
+echo "mk_add_options MOZ_SERVICES_HEALTHREPORT=0" >> .mozconfig
+echo "mk_add_options MOZ_TELEMETRY_REPORTING=0" >> .mozconfig
+MOZ_SMP_FLAGS=-j1
+# On x86_64 architectures, Mozilla can build up to 4 jobs at once in parallel,
+# however builds tend to fail on other arches when building in parallel.
+%ifarch %{ix86} s390x %{arm} aarch64
+[ -z "$RPM_BUILD_NCPUS" ] && \
+ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
+[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
+%endif
+%ifarch x86_64 ppc ppc64 ppc64le
+[ -z "$RPM_BUILD_NCPUS" ] && \
+ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
+[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
+[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
+[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
+[ "$RPM_BUILD_NCPUS" -ge 16 ] && MOZ_SMP_FLAGS=-j16
+[ "$RPM_BUILD_NCPUS" -ge 24 ] && MOZ_SMP_FLAGS=-j24
+[ "$RPM_BUILD_NCPUS" -ge 32 ] && MOZ_SMP_FLAGS=-j32
+[ "$RPM_BUILD_NCPUS" -ge 64 ] && MOZ_SMP_FLAGS=-j64
+%endif
+
+echo "mk_add_options MOZ_MAKE_FLAGS=\"$MOZ_SMP_FLAGS\"" >> .mozconfig
+echo "mk_add_options MOZ_SERVICES_SYNC=1" >> .mozconfig
+echo "export STRIP=/bin/true" >> .mozconfig
+export MACH_USE_SYSTEM_PYTHON=1
+
+%if %{launch_wayland_compositor}
+cp %{SOURCE45} .
+. ./run-wayland-compositor
+%endif
+
+%if %{build_with_pgo}
+%if %{test_on_wayland}
+env | grep "WAYLAND"
+MOZ_ENABLE_WAYLAND=1 ./mach build -v 2>&1 | cat -
+%else
+xvfb-run ./mach build -v 2>&1 | cat -
+%endif
+%else
+./mach build -v 2>&1 | cat -
+%endif
+
+#---------------------------------------------------------------------
+%install
+# run Firefox test suite
+export MACH_USE_SYSTEM_PYTHON=1
+%if %{launch_wayland_compositor}
+cp %{SOURCE45} .
+. ./run-wayland-compositor
+%endif
+
+%if 0%{?run_firefox_tests}
+mkdir -p objdir/_virtualenvs/init_py3
+%{__cat} > objdir/_virtualenvs/init_py3/pip.conf << EOF
+[global]
+find-links=`pwd`/mochitest-python
+no-index=true
+EOF
+tar xf %{SOURCE37}
+cp %{SOURCE40} %{SOURCE41} %{SOURCE42} %{SOURCE38} %{SOURCE39} %{SOURCE43} %{SOURCE44} .
+mkdir -p test_results
+%if %{test_on_wayland}
+./run-tests-wayland || true
+%else
+./run-tests-x11 || true
+%endif
+./print_results > test_summary.txt 2>&1 || true
+./print_failures || true
+%endif
+
+# set up our default bookmarks
+%if 0
+%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html
+%endif
+
+DESTDIR=%{buildroot} make -C objdir/instrumented install
+
+%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications}
+_seds="s/Firefox/LibreWolf/g;s/firefox/librewolf/g;"
+S20="$( basename "%{SOURCE20}" | sed -r -e ${_seds} )"
+S31="$( basename "%{SOURCE31}" | sed -r -e ${_seds} )"
+S29="$( basename "%{SOURCE29}" | sed -r -e ${_seds} )"
+sed -r %{SOURCE20} -e ${_seds} > ${S20}
+sed -r %{SOURCE31} -e ${_seds} > ${S31}
+sed -r %{SOURCE29} -e ${_seds} > ${S29}
+
+desktop-file-install --dir %{buildroot}%{_datadir}/applications ${S20}
+desktop-file-install --dir %{buildroot}%{_datadir}/applications ${S31}
+desktop-file-install --dir %{buildroot}%{_datadir}/applications ${S29}
+
+# set up the librewolf start script
+%{__rm} -rf %{buildroot}%{_bindir}/librewolf
+%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE21} > %{buildroot}%{_bindir}/librewolf
+%{__sed} -i %{buildroot}%{_bindir}/librewolf \
+ -e "${_seds}" \
+ -e "/restorecon/{s/.mozilla\/firefox/.librewolf/;}"
+%{__chmod} 755 %{buildroot}%{_bindir}/librewolf
+
+%if 0%{?flatpak}
+sed -i -e 's|%FLATPAK_ENV_VARS%|export TMPDIR="$XDG_CACHE_HOME/tmp"|' %{buildroot}%{_bindir}/librewolf
+%else
+sed -i -e 's|%FLATPAK_ENV_VARS%||' %{buildroot}%{_bindir}/librewolf
+%endif
+
+%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE30} > %{buildroot}%{_bindir}/librewolf-x11
+%{__chmod} 755 %{buildroot}%{_bindir}/librewolf-x11
+%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE28} > %{buildroot}%{_bindir}/librewolf-wayland
+%{__chmod} 755 %{buildroot}%{_bindir}/librewolf-wayland
+
+%{__cp} -p %{SOURCE101} %{buildroot}/%{mozappdir}/
+%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/librewolf.1
+
+%{__rm} -f %{buildroot}/%{mozappdir}/librewolf-config
+%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini
+
+for s in 16 32 48 64 128; do
+ %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps
+ %{__cp} -p browser/branding/librewolf/default${s}.png \
+ %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/librewolf.png
+done
+
+# Install hight contrast icon
+%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+%{__cp} -p %{SOURCE25} \
+ %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/$( basename %{SOURCE25} | sed -r -e "${_seds}" )
+
+echo > %{name}.lang
+%if %{with langpacks}
+# Extract langpacks, make any mods needed, repack the langpack, and install it.
+%{__mkdir_p} %{buildroot}%{langpackdir}
+%{__tar} xf %{SOURCE1}
+for langpack in `ls firefox-langpacks/*.xpi`; do
+ language=`basename $langpack .xpi`
+ extensionID=langpack-$language@firefox.mozilla.org
+ %{__mkdir_p} $extensionID
+ unzip -qq $langpack -d $extensionID
+ find $extensionID -type f | xargs chmod 644
+
+ cd $extensionID
+ zip -qq -r9mX ../${extensionID}.xpi *
+ cd -
+
+ %{__install} -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir}
+ language=`echo $language | sed -e 's/-/_/g'`
+%if 0%{?flatpak}
+ echo "%{langpackdir}/${extensionID}.xpi" >> %{name}.lang
+%else
+ echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang
+%endif
+done
+%{__rm} -rf firefox-langpacks
+
+# Install langpack workaround (see #707100, #821169)
+function create_default_langpack() {
+language_long=$1
+language_short=$2
+cd %{buildroot}%{langpackdir}
+ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi
+cd -
+echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> %{name}.lang
+}
+
+# Table of fallbacks for each language
+# please file a bug at bugzilla.redhat.com if the assignment is incorrect
+#create_default_langpack "bn-IN" "bn"
+create_default_langpack "es-AR" "es"
+create_default_langpack "fy-NL" "fy"
+create_default_langpack "ga-IE" "ga"
+create_default_langpack "gu-IN" "gu"
+create_default_langpack "hi-IN" "hi"
+create_default_langpack "hy-AM" "hy"
+create_default_langpack "nb-NO" "nb"
+create_default_langpack "nn-NO" "nn"
+create_default_langpack "pa-IN" "pa"
+create_default_langpack "pt-PT" "pt"
+create_default_langpack "sv-SE" "sv"
+create_default_langpack "zh-TW" "zh"
+%endif
+
+%{__mkdir_p} %{buildroot}/%{mozappdir}/browser/defaults/preferences
+
+# System config dir
+%{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref
+
+# System extensions
+%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id}
+%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id}
+
+# Copy over the LICENSE
+%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir}
+
+# Use the system hunspell dictionaries
+%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries
+ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries
+
+%if 0%{?run_firefox_tests}
+%{__mkdir_p} %{buildroot}/%{version}-%{release}/test_results
+%{__cp} test_results/* %{buildroot}/%{version}-%{release}/test_results
+%{__cp} test_summary.txt %{buildroot}/%{version}-%{release}/
+%{__cp} failures-* %{buildroot}/%{version}-%{release}/ || true
+%endif
+
+# Default
+%{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/browser/defaults/preferences
+
+# Copy over run-mozilla.sh
+%{__cp} build/unix/run-mozilla.sh %{buildroot}%{mozappdir}
+
+# Add distribution.ini
+%{__mkdir_p} %{buildroot}%{mozappdir}/distribution
+%{__cp} %{SOURCE26} %{buildroot}%{mozappdir}/distribution
+cat > distribution.ini <<END
+[Global]
+id=io.gitlab.librewolf-community
+version=1.0
+about=LibreWolf
+
+[Preferences]
+app.distributor="LibreWolf Community"
+app.distributor.channel=librewolf
+app.partner.librewolf=librewolf
+END
+install -Dvm644 distribution.ini %{buildroot}%{mozappdir}/distribution
+
+# Install appdata file
+mkdir -p %{buildroot}%{_datadir}/metainfo
+%{__sed} -e "s/__VERSION__/%{version}/" \
+ -e "s/__DATE__/$(date '+%F')/" \
+ %{SOURCE33} > %{buildroot}%{_datadir}/metainfo/librewolf.appdata.xml
+
+# Install Gnome search provider files
+mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers
+%{__cp} %{SOURCE34} %{buildroot}%{_datadir}/gnome-shell/search-providers
+
+# Remove gtk2 support as flash plugin is no longer supported
+rm -rf %{buildroot}%{mozappdir}/gtk2/
+
+# Remove copied libraries to speed up build
+rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so
+rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so
+rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so
+
+# Create a symlink to replace libnssckbi.so with p11-kit-client.so
+# instead of p11-kit-trust.so, so that Firefox can see the system
+# trust store on the host through the p11-kit RPC protocol. A symlink
+# to libnss3.so is also needed, because Firefox tries to load
+# libnssckbi.so from the same directory where libnss3.so is loaded (as
+# of Firefox 89).
+%if 0%{?flatpak}
+ln -sf /usr/lib64/libnss3.so %{buildroot}%{_libdir}/libnss3.so
+ln -sf /usr/lib64/pkcs11/p11-kit-client.so %{buildroot}%{_libdir}/libnssckbi.so
+%endif
+#---------------------------------------------------------------------
+
+# Moves defaults/preferences to browser/defaults/preferences
+%pretrans -p <lua>
+require 'posix'
+require 'os'
+if (posix.stat("%{mozappdir}/browser/defaults/preferences", "type") == "link") then
+ posix.unlink("%{mozappdir}/browser/defaults/preferences")
+ posix.mkdir("%{mozappdir}/browser/defaults/preferences")
+ if (posix.stat("%{mozappdir}/defaults/preferences", "type") == "directory") then
+ for i,filename in pairs(posix.dir("%{mozappdir}/defaults/preferences")) do
+ os.rename("%{mozappdir}/defaults/preferences/"..filename, "%{mozappdir}/browser/defaults/preferences/"..filename)
+ end
+ f = io.open("%{mozappdir}/defaults/preferences/README","w")
+ if f then
+ f:write("Content of this directory has been moved to %{mozappdir}/browser/defaults/preferences.")
+ f:close()
+ end
+ end
+end
+
+%check
+appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
+
+%preun
+# is it a final removal?
+if [ $1 -eq 0 ]; then
+ %{__rm} -rf %{mozappdir}/components
+ %{__rm} -rf %{mozappdir}/extensions
+ %{__rm} -rf %{mozappdir}/plugins
+ %{__rm} -rf %{langpackdir}
+fi
+
+%post
+update-desktop-database &> /dev/null || :
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+%postun
+update-desktop-database &> /dev/null || :
+if [ $1 -eq 0 ] ; then
+ touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+
+%posttrans
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+%files -f %{name}.lang
+%{mozappdir}/librewolf.cfg
+%{_bindir}/librewolf
+%{mozappdir}/librewolf
+%{mozappdir}/librewolf-bin
+%doc %{_mandir}/man1/*
+%dir %{_sysconfdir}/%{name}
+%dir %{_sysconfdir}/%{name}/*
+%dir %{_datadir}/mozilla/extensions/*
+%dir %{_libdir}/mozilla/extensions/*
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/metainfo/*.appdata.xml
+%{_datadir}/gnome-shell/search-providers/*.ini
+%dir %{mozappdir}
+%license %{mozappdir}/LICENSE
+%{mozappdir}/browser/chrome
+%{mozappdir}/browser/defaults/preferences/firefox-redhat-default-prefs.js
+%{mozappdir}/browser/features/*.xpi
+%{mozappdir}/distribution/distribution.ini
+# That's Windows only
+%ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi
+%if %{with langpacks}
+%dir %{langpackdir}
+%endif
+%{mozappdir}/browser/omni.ja
+%{mozappdir}/run-mozilla.sh
+%{mozappdir}/application.ini
+%{mozappdir}/pingsender
+%exclude %{mozappdir}/removed-files
+%if 0%{?flatpak}
+%{_libdir}/libnss3.so
+%{_libdir}/libnssckbi.so
+%endif
+%{_datadir}/icons/hicolor/16x16/apps/librewolf.png
+%{_datadir}/icons/hicolor/64x64/apps/librewolf.png
+%{_datadir}/icons/hicolor/128x128/apps/librewolf.png
+%{_datadir}/icons/hicolor/32x32/apps/librewolf.png
+%{_datadir}/icons/hicolor/48x48/apps/librewolf.png
+%{_datadir}/icons/hicolor/symbolic/apps/librewolf-symbolic.svg
+%if %{enable_mozilla_crashreporter}
+%{mozappdir}/crashreporter
+%{mozappdir}/crashreporter.ini
+%{mozappdir}/minidump-analyzer
+%{mozappdir}/Throbber-small.gif
+%{mozappdir}/browser/crashreporter-override.ini
+%endif
+%{mozappdir}/*.so
+%{mozappdir}/defaults/pref/channel-prefs.js
+%{mozappdir}/dependentlibs.list
+%{mozappdir}/dictionaries
+%{mozappdir}/omni.ja
+%{mozappdir}/platform.ini
+%{mozappdir}/plugin-container
+%{mozappdir}/gmp-clearkey
+%{mozappdir}/fonts/TwemojiMozilla.ttf
+%if !%{?system_nss}
+%exclude %{mozappdir}/libnssckbi.so
+%endif
+%if %{build_with_asan}
+%{mozappdir}/llvm-symbolizer
+%endif
+
+#---------------------------------------------------------------------
+
+%changelog
+* Tue Nov 16 2021 B. Stack <bgstack15@gmail.com> - 94.0-1
+- Fork to librewolf release.
+
+* Mon Nov 1 2021 Martin Stransky <stransky@redhat.com> - 94.0-1
+- Updated to 94.0
+
+* Thu Oct 07 2021 Martin Stransky <stransky@redhat.com> - 93.0-2
+- Require NSS 3.70
+
+* Wed Sep 29 2021 Martin Stransky <stransky@redhat.com> - 93.0-1
+- Updated to 93.0
+
+* Mon Sep 27 2021 Martin Stransky <stransky@redhat.com> - 92.0.1-1
+- Updated to 92.0.1
+
+* Mon Sep 13 2021 Martin Stransky <stransky@redhat.com> - 92.0-3
+- Added fix for mozbz#1725828
+
+* Thu Sep 9 2021 Martin Stransky <stransky@redhat.com> - 92.0-2
+- Disable test
+
+* Fri Sep 3 2021 Martin Stransky <stransky@redhat.com> - 92.0-1
+- Updated to 92.0
+- Added fix for mozbz#1728749
+- Added fix for mozbz#1708709
+
+* Thu Aug 26 2021 Martin Stransky <stransky@redhat.com> - 91.0.2-1
+- Updated to 91.0.2
+
+* Mon Aug 23 2021 Martin Stransky <stransky@redhat.com> - 91.0.1-2
+- Set %%build_with_clang automatically based on %%toolchain
+ by Timm Bäder <tbaeder@redhat.com>
+- Updated Fedora UA patch by Eric Engestrom
+ (https://src.fedoraproject.org/rpms/firefox/pull-request/21)
+- Added fix for mozbz#1726515
+
+* Mon Aug 23 2021 Martin Stransky <stransky@redhat.com> - 91.0.1-1
+- Updated to 91.0.1
+
+* Tue Aug 10 2021 Martin Stransky <stransky@redhat.com> - 91.0-1
+- Updated to 91.0
+
+* Wed Aug 04 2021 Martin Stransky <stransky@redhat.com> - 90.0.2-2
+- Added fix for rhbz#1988841 - Allow unsigned extensions when installed
+ under non-user-writable dirs.
+
+* Thu Jul 22 2021 Martin Stransky <stransky@redhat.com> - 90.0.2-1
+- Updated to 90.0.2
+
+* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 90.0.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Wed Jul 21 2021 Martin Stransky <stransky@redhat.com> - 90.0.1-1
+- Updated to 90.0.1
+- Added fixes to build on rawhide
+
+* Thu Jul 15 2021 Martin Stransky <stransky@redhat.com> - 90.0-3
+- Disabled Wayland backend on KDE due to
+ https://bugzilla.mozilla.org/show_bug.cgi?id=1714132
+
+* Tue Jul 13 2021 Martin Stransky <stransky@redhat.com> - 90.0-2
+- Added xorg-x11-server-Xwayland dependency for Mutter
+
+* Mon Jul 12 2021 Martin Stransky <stransky@redhat.com> - 90.0-1
+- Updated to 90.0
+
+* Mon Jul 12 2021 Daiki Ueno <dueno@redhat.com> - 89.0.2-3
+- flatpak: Enable loading system trust store on the host (rhbz#1766340)
+
+* Wed Jun 30 2021 Martin Stransky <stransky@redhat.com> - 89.0.2-2
+- Added fix for mozbz#1715254 (rhbz#1976892).
+
+* Thu Jun 24 2021 Martin Stransky <stransky@redhat.com> - 89.0.2-1
+- Updated to latest upstream (89.0.2)
+
+* Mon Jun 14 2021 Martin Stransky <stransky@redhat.com> - 89.0-2
+- Added fix for mozbz#1646135
+
+* Tue Jun 1 2021 Martin Stransky <stransky@redhat.com> - 89.0-1
+- Updated to latest upstream (89.0)
+
+* Mon May 10 2021 Martin Stransky <stransky@redhat.com> - 88.0.1-1
+- Updated to latest upstream (88.0.1)
+
+* Tue May 4 2021 Martin Stransky <stransky@redhat.com> - 88.0-8
+- Added fix for mozbz#1705048.
+
+* Fri Apr 30 2021 Martin Stransky <stransky@redhat.com> - 88.0-7
+- Added pciutils-libs req (rhbz#1955338)
+- Enabled Wayland on KDE (rhbz#1922608)
+
+* Tue Apr 27 2021 Martin Stransky <stransky@redhat.com> - 88.0-6
+- Test fix.
+
+* Fri Apr 23 2021 Martin Stransky <stransky@redhat.com> - 88.0-5
+- Added fix for mozbz#1580595 - mouse pointer lock.
+- Another test update.
+
+* Thu Apr 22 2021 Martin Stransky <stransky@redhat.com> - 88.0-4
+- Run with mochitest test suite.
+
+* Thu Apr 22 2021 Martin Stransky <stransky@redhat.com> - 88.0-3
+- Build with crashreporter enabled.
+
+* Wed Apr 21 2021 Martin Stransky <stransky@redhat.com> - 88.0-2
+- Added clipboard fix mzbz#1703763.
+
+* Mon Apr 19 2021 Martin Stransky <stransky@redhat.com> - 88.0-1
+- Update to 88.0
+
+* Mon Apr 12 2021 Martin Stransky <stransky@redhat.com> - 87.0-12
+- Added fix for mozbz#1701089 (Widevine playback issues).
+
+* Tue Apr 6 2021 Martin Stransky <stransky@redhat.com> - 87.0-11
+- Enabled xpcshell/crashtests on Wayland.
+
+* Sat Apr 3 2021 Martin Stransky <stransky@redhat.com> - 87.0-10
+- Wayland testing again.
+
+* Thu Apr 1 2021 Martin Stransky <stransky@redhat.com> - 87.0-9
+- Added fix for mozbz#1702606 / rhbz#1936071
+- Switched tests back to X11 due to massive failures.
+
+* Thu Apr 1 2021 Martin Stransky <stransky@redhat.com> - 87.0-8
+- Run testsuite on Wayland on Fedora 33+
+- Spec cleanup
+
+* Wed Mar 31 2021 Martin Stransky <stransky@redhat.com> - 87.0-7
+- Added fix for mozbz#1693472 - Wayland/KDE rendering issues.
+
+* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 87.0-6
+- Rebuilt for removed libstdc++ symbol (#1937698)
+
+* Tue Mar 30 2021 Martin Stransky <stransky@redhat.com> - 87.0-5
+- Reftest fix
+
+* Fri Mar 26 2021 Martin Stransky <stransky@redhat.com> - 87.0-4
+- More test fixes
+- Enabled ppc64le
+- Disabled crashreporter on Fedora 34+
+
+* Wed Mar 24 2021 Martin Stransky <stransky@redhat.com> - 87.0-2
+- More test fixes
+
+* Tue Mar 23 2021 Martin Stransky <stransky@redhat.com> - 87.0-1
+- Disabled ARM due to build failures
+- Updated to 87.0
+
+* Sat Mar 13 2021 Martin Stransky <stransky@redhat.com> - 86.0.1-2
+- Enabled ARM
+
+* Fri Mar 12 2021 Martin Stransky <stransky@redhat.com> - 86.0.1-1
+- Update to latest upstream (86.0.1)
+
+* Wed Mar 10 2021 Martin Stransky <stransky@redhat.com> - 86.0-8
+- Temporary disable ppc64le/Fedora 35 due to
+ https://bugzilla.redhat.com/show_bug.cgi?id=1933742
+
+* Wed Mar 3 2021 Martin Stransky <stransky@redhat.com> - 86.0-7
+- Added fix for mozbz#1694670
+
+* Mon Mar 1 2021 Martin Stransky <stransky@redhat.com> - 86.0-6
+- Run xpcshell tests sequential
+- Test fixes
+
+* Mon Mar 1 2021 Martin Stransky <stransky@redhat.com> - 86.0-4
+- Enable Wayland backend only when Wayland display is set.
+
+* Mon Mar 1 2021 Martin Stransky <stransky@redhat.com> - 86.0-3
+- Added icecat-78.7.1-fix_error_template_with_C_linkage.patch to
+ build on F34+
+
+* Fri Feb 26 2021 Martin Stransky <stransky@redhat.com> - 86.0-2
+- Built with system nss
+
+* Tue Feb 23 2021 Martin Stransky <stransky@redhat.com> - 86.0-1
+- Update to 86.0
+- Disabled Wayland backend on KDE/Plasma
+
+* Tue Feb 23 2021 Martin Stransky <stransky@redhat.com> - 85.0.1-2
+- Fixed some reftest run in Mock
+
+* Mon Feb 08 2021 Martin Stransky <stransky@redhat.com> - 85.0.1-1
+- Updated to 85.0.1
+
+* Wed Feb 03 2021 Dan Horák <dan[at]danny.cz> - 85.0-11
+- Fix parameter passing on ppc64le (mozb#1690152)
+
+* Tue Feb 02 2021 Kalev Lember <klember@redhat.com> - 85.0-10
+- Remove gtk2 support as flash plugin is no longer supported
+
+* Sat Jan 30 2021 Martin Stransky <stransky@redhat.com> - 85.0-9
+- Enable WebRender on KDE/Wayland and AMD/Intel drivers.
+
+* Sat Jan 30 2021 Martin Stransky <stransky@redhat.com> - 85.0-8
+- Enable Wayland backend on Fedora 34/KDE/Plasma (and other compositors)
+ by default (https://bugzilla.redhat.com/show_bug.cgi?id=1922608).
+
+* Fri Jan 29 2021 Martin Stransky <stransky@redhat.com> - 85.0-7
+- Added clipboard fix mozbz#1631061.
+
+* Thu Jan 28 2021 Kalev Lember <klember@redhat.com> - 85.0-6
+- Make provides/requires filtering smarter/automatic (rhbz#1582116)
+- Drop dbus-glib requires that are now automatically generated again
+
+* Thu Jan 28 2021 Martin Stransky <stransky@redhat.com> - 85.0-5
+- Add dbus-glib requires.
+
+* Tue Jan 26 2021 Martin Stransky <stransky@redhat.com> - 85.0-4
+- Added fix for mozbz#1679933 - startup crash
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 85.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jan 20 2021 Martin Stransky <stransky@redhat.com> - 85.0-2
+- Update to 85.0.
+
+* Wed Jan 20 2021 Jan Horak <jhorak@redhat.com> - 84.0.2-8
+- Fixing package requires/provides
+
+* Tue Jan 19 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-7
+- Fixed mzbz#164294 regression.
+
+* Fri Jan 15 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-6
+- Added WebRender fix (mozbz#1681107).
+
+* Thu Jan 14 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-5
+- Removed some failing tests.
+- Spec file tweaks.
+
+* Tue Jan 12 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-4
+- Enabled LTO in Firefox build system.
+
+* Tue Jan 12 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-3
+- Removed failing xpcshell/reftests, test tweaks.
+
+* Mon Jan 11 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-2
+- Added a workaround for rhbz#1908018
+
+* Wed Jan 6 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-1
+- Updated to 84.0.2
+
+* Tue Jan 05 2021 Jan Horak <jhorak@redhat.com> - 84.0.1-5
+- Removing requires/provides of the bundled libraries
+
+* Mon Jan 4 2021 Martin Stransky <stransky@redhat.com> - 84.0.1-4
+- Enabled tests
+
+* Mon Jan 4 2021 Martin Stransky <stransky@redhat.com> - 84.0.1-3
+- Enabled armv7hl arch on rawhide
+
+* Wed Dec 23 2020 Martin Stransky <stransky@redhat.com> - 84.0.1-2
+- Reverted mzbz#1631061 due to clipboard regressions
+- Disabled armv7hl build on rawhide due to rhbz#1910277
+- Build with system nss on rawhide (rhbz#1908791).
+
+* Tue Dec 22 2020 Martin Stransky <stransky@redhat.com> - 84.0.1-1
+- Updated to 84.0.1
+
+* Sun Dec 20 2020 Miro Hrončok <mhroncok@redhat.com> - 84.0-7
+- Filter out private libraries provides
+- Fixes: rhbz#1908791
+
+* Thu Dec 17 2020 Martin Stransky <stransky@redhat.com> - 84.0-6
+- Disable PGO on Rawhide due to build issues
+- Disable system nss on Rawhide due to rhbz#1908018
+- Enabled system nss on Fedora 33/32
+
+* Wed Dec 16 2020 Martin Stransky <stransky@redhat.com> - 84.0-5
+- Build with tests enabled
+
+* Wed Dec 16 2020 Martin Stransky <stransky@redhat.com> - 84.0-4
+- Disabled LTO due to massive test failures
+
+* Wed Dec 16 2020 Martin Stransky <stransky@redhat.com> - 84.0-3
+- Updated to Firefox 84 Build 3
+- Disabled system nss due to addon breakage (rhbz#1908018).
+
+* Wed Dec 9 2020 Martin Stransky <stransky@redhat.com> - 83.0-15
+- Enabled tests everywhere
+- Enabled crash reporter
+
+* Tue Dec 1 2020 Martin Stransky <stransky@redhat.com> - 83.0-14
+- Enabled LTO
+
+* Tue Dec 1 2020 Martin Stransky <stransky@redhat.com> - 83.0-13
+- Added fix for mozbz#1672139
+
+* Tue Dec 1 2020 Martin Stransky <stransky@redhat.com> - 83.0-12
+- More mochitest fixes
+
+* Mon Nov 30 2020 Martin Stransky <stransky@redhat.com> - 83.0-11
+- Mochitest tweaking
+
+* Sat Nov 28 2020 Martin Stransky <stransky@redhat.com> - 83.0-10
+- Added fix for mzbz#1678680
+
+* Wed Nov 25 2020 Martin Stransky <stransky@redhat.com> - 83.0-9
+- Added mochitest test files
+
+* Wed Nov 25 2020 Martin Stransky <stransky@redhat.com> - 83.0-8
+- Added fix for rhbz#1900542
+
+* Wed Nov 25 2020 Martin Stransky <stransky@redhat.com> - 83.0-7
+- Export MOZ_GMP_PATH from /usr/bin/firefox script
+ (https://pagure.io/fedora-workstation/issue/126)
+
+* Tue Nov 24 2020 Martin Stransky <stransky@redhat.com> - 83.0-6
+- Fix mochitest
+
+* Wed Nov 18 2020 Martin Stransky <stransky@redhat.com> - 83.0-5
+- Build with tests enabled
+
+* Wed Nov 18 2020 Martin Stransky <stransky@redhat.com> - 83.0-4
+- Enable all arches
+
+* Fri Nov 13 2020 Martin Stransky <stransky@redhat.com> - 83.0-3
+- Updated to 83.0 Build 2
+
+* Thu Nov 12 2020 Martin Stransky <stransky@redhat.com> - 83.0-1
+- Updated to 83.0
+- Updated PipeWire patches from mozbz#1672944
+
+* Tue Nov 10 2020 Martin Stransky <stransky@redhat.com> - 82.0.3-2
+- Added fix for mozbz#1885133
+
+* Mon Nov 9 2020 Martin Stransky <stransky@redhat.com> - 82.0.3-1
+- Updated to 82.0.3
+
+* Mon Nov 9 2020 Kalev Lember <klember@redhat.com> - 82.0.2-7
+- Include date in appdata release tags
+
+* Fri Nov 6 2020 Tomas Popela <tpopela@redhat.com> - 82.0.2-6
+- Re-enable s390x buils by backporting a change from Thunderbird
+ https://src.fedoraproject.org/rpms/thunderbird/c/5f0bec1b5b79e117cc469710afbfa4d008af9c29?branch=master
+
+* Tue Nov 3 2020 Martin Stransky <stransky@redhat.com> - 82.0.2-5
+- Added mozilla-openh264 dependency to play H264 clips out of the box
+- Updated Firefox tests
+
+* Tue Nov 3 2020 Martin Stransky <stransky@redhat.com> - 82.0.2-3
+- Disabled LTO again.
+
+* Tue Nov 3 2020 Martin Stransky <stransky@redhat.com> - 82.0.2-2
+- NSS debug build
+
+* Thu Oct 29 2020 Martin Stransky <stransky@redhat.com> - 82.0.2-1
+- Updated to 82.0.2
+- Removed mzbz#1668771 due to rhbz#1888920
+
+* Wed Oct 28 2020 Martin Stransky <stransky@redhat.com> - 82.0.1-1
+- Updated to 82.0.1
+
+* Tue Oct 27 2020 Martin Stransky <stransky@redhat.com> - 82.0-8
+- Added fix for mozbz#1673313
+
+* Tue Oct 27 2020 Martin Stransky <stransky@redhat.com> - 82.0-7
+- Added fix for rawhide crashes (rhbz#1891234)
+
+* Sat Oct 24 2020 Martin Stransky <stransky@redhat.com> - 82.0-6
+- Enable LTO
+
+* Tue Oct 20 2020 Martin Stransky <stransky@redhat.com> - 82.0-5
+- Added fix for rhbz#1889742 - Typo in /usr/bin/firefox
+
+* Mon Oct 19 2020 Martin Stransky <stransky@redhat.com> - 82.0-4
+- Updated openh264 patch to use keyframes from contained
+ for openh264 only.
+
+* Mon Oct 19 2020 Martin Stransky <stransky@redhat.com> - 82.0-3
+- Added ELN build fixes
+
+* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 82.0-2
+- Updated SELinux relabel setup (rhbz#1731371)
+
+* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 82.0-1
+- Updated to 82.0 Build 2
+
+* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-3
+- Added experimental openh264 seek patch (mzbz#1670333)
+
+* Mon Oct 12 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-2
+- Added a partial fox for rhbz#1886722
+
+* Mon Oct 12 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-1
+- Updated to latest upstream - 81.0.2
+
+* Thu Oct 8 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-9
+- Added an updated fix for mozbz#1656727
+
+* Thu Oct 8 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-8
+- Added fixes for mozbz#1634404, mozbz#1669495
+
+* Thu Oct 8 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-7
+- Removed mozbz#1656727 as it causes a regression rhbz#1886243
+
+* Wed Oct 7 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-6
+- PGO patch update
+- Added fix for mzbz#1669442 (LTO builds)
+
+* Mon Oct 5 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-5
+- Added fix for mozbz#1656727
+
+* Fri Oct 2 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-4
+- Added fix for mozbz#1668771
+
+* Thu Oct 1 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-3
+- Added fix for mozbz#1661192
+
+* Thu Oct 1 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-2
+- Added fix for mozbz#1640567
+- Enable PGO
+
+* Wed Sep 30 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-1
+- Updated to 81.0.1
+
+* Wed Sep 30 2020 Martin Stransky <stransky@redhat.com> - 81.0-9
+- Disabled openh264 download
+- Removed fdk-aac-free dependency (rhbz#1883672)
+- Enabled LTO
+
+* Sat Sep 26 2020 Dan Horák <dan[at]danny.cz> - 81.0-8
+- Re-enable builds for ppc64le
+
+* Fri Sep 25 2020 Martin Stransky <stransky@redhat.com> - 81.0-7
+- Added openh264 fixes
+
+* Wed Sep 23 2020 Martin Stransky <stransky@redhat.com> - 81.0-6
+- Added fix for rhbz#1731371
+
+* Tue Sep 22 2020 Kalev Lember <klember@redhat.com> - 81.0-5
+- Re-enable builds for armv7hl and aarch64 architectures
+
+* Tue Sep 22 2020 Kalev Lember <klember@redhat.com> - 81.0-4
+- Disable LTO to work around firefox build failing in F33+
+
+* Mon Sep 21 2020 Martin Stransky <stransky@redhat.com> - 81.0-3
+- Updated to 81.0 Build 2
+- Updated firefox-disable-ffvpx-with-vapi patch
+- Deleted old changelog entries
+
+* Thu Sep 17 2020 Martin Stransky <stransky@redhat.com> - 81.0-2
+- Added upstream patches mzbz#1665324 mozbz#1665329
+- Updated requested nss version to 3.56
+
+* Tue Sep 15 2020 Martin Stransky <stransky@redhat.com> - 81.0-1
+- Updated to 81.0
+
+* Thu Sep 10 2020 Martin Stransky <stransky@redhat.com> - 80.0.1-3
+- Test build for all arches.
+
+* Fri Sep 4 2020 Martin Stransky <stransky@redhat.com> - 80.0.1-2
+- Added patch for mozbz#1875469
+
+* Tue Sep 1 2020 Martin Stransky <stransky@redhat.com> - 80.0.1-1
+- Updated to 80.0.1
+
+* Tue Aug 18 2020 Martin Stransky <stransky@redhat.com> - 80.0-1
+- Updated to 80.0 Build 2
+- Go back to gcc
+- Disabled WebGL dmabuf backend due to reported errors
+ (mzbz#1655323, mozbz#1656505).
+
+* Tue Aug 18 2020 Martin Stransky <stransky@redhat.com> - 79.0-6
+- Enabled pgo
+- Build with clang
+
+* Tue Aug 4 2020 Martin Stransky <stransky@redhat.com> - 79.0-5
+- Added upstream fix for mozbz#1656436.
+
+* Mon Aug 3 2020 Martin Stransky <stransky@redhat.com> - 79.0-4
+- Updated fix for mozbz#1645671
+
+* Thu Jul 30 2020 Martin Stransky <stransky@redhat.com> - 79.0-3
+- Added VA-API fix for mozbz#1645671
+
+* Wed Jul 29 2020 Martin Stransky <stransky@redhat.com> - 79.0-2
+- Try to enable armv7hl again.
+- Disabled ppc64le due to cargo crash (rhbz#1862012).
+
+* Mon Jul 27 2020 Martin Stransky <stransky@redhat.com> - 79.0-1
+- Update to 79.0
+- Disabled PGO due to rhbz#1849165 (gcc internal error).
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 78.0.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Thu Jul 23 2020 Frantisek Zatloukal <fzatlouk@redhat.com> - 78.0-4
+- Use python3 instead of python2 for build
+
+* Tue Jul 21 2020 Martin Stransky <stransky@redhat.com> - 78.0-3
+- Added fix for mozbz#1651701/rhbz#1855730
+
+* Fri Jul 10 2020 Jan Horak <jhorak@redhat.com> - 78.0.2-2
+- Fixing clang build - linker setup
+
+* Thu Jul 09 2020 Jan Horak <jhorak@redhat.com> - 78.0.2-1
+- Update to 78.0.2 build2
+
+* Wed Jul 01 2020 Jan Horak <jhorak@redhat.com> - 78.0.1-1
+- Update to 78.0.1 build1
+
+* Wed Jul 1 2020 Martin Stransky <stransky@redhat.com> - 78.0-2
+- Add 'Open the Profile Manager' desktop file entry
+
+* Mon Jun 29 2020 Jan Horak <jhorak@redhat.com> - 78.0-1
+- Update to 78.0 build2
+
+* Tue Jun 23 2020 Martin Stransky <stransky@redhat.com> - 77.0.1-3
+- Build with PGO/LTO again.
+
+* Wed Jun 03 2020 Jan Horak <jhorak@redhat.com> - 77.0.1-2
+- Update to 77.0.1 build1
+
+* Wed Jun 03 2020 Jan Horak <jhorak@redhat.com> - 77.0.1-1
+- Fixing pipewire patch
+- New upstream version (77.0.1)
+
+* Tue Jun 2 2020 Martin Stransky <stransky@redhat.com> - 77.0-2
+- Rebuild with updated langpacks (rhbz#1843028).
+
+* Fri May 29 2020 Martin Stransky <stransky@redhat.com> - 77.0-1
+- Updated to Firefox 77.0
+
+* Mon May 25 2020 Martin Stransky <stransky@redhat.com> - 76.0.1-7
+- Added fix for mozbz#1632456
+
+* Mon May 25 2020 Martin Stransky <stransky@redhat.com> - 76.0.1-6
+- Added fix for mozbz#1634213
+
+* Mon May 25 2020 Martin Stransky <stransky@redhat.com> - 76.0.1-5
+- Added fix for mozbz#1619882 - video flickering when va-api is used.
+
+* Thu May 21 2020 Jan Grulich <jgrulich@redhat.com> - 76.0.1-4
+- Add support for PipeWire 0.3
+
+* Wed May 20 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 76.0.1-3
+- Build aarch64 again so aarch64 users get updates
+
+* Wed May 13 2020 Martin Stransky <stransky@redhat.com> - 76.0.1-2
+- Added extra va-api frames to vp8/9 decoder.
+
+* Fri May 8 2020 Martin Stransky <stransky@redhat.com> - 76.0.1-1
+- Updated to 76.0.1
+
+* Thu May 7 2020 Martin Stransky <stransky@redhat.com> - 76.0-3
+- Disable ffvpx when va-api is enabled.
+
+* Tue May 05 2020 Jan Horak <jhorak@redhat.com> - 76.0-2
+- Don't use google safe browsing api key for the geolocation
+
+* Sun May 3 2020 Martin Stransky <stransky@redhat.com> - 76.0-1
+- Updated to 76.0
+
+* Thu Apr 23 2020 Martin Stransky <stransky@redhat.com> - 75.0-3
+- Added fix for mozilla bug #1527976 (browser D&D)
+
+* Tue Apr 14 2020 Jan Horak <jhorak@redhat.com> - 75.0-2
+- Removed gconf-2.0 build requirement
+
+* Mon Apr 06 2020 Martin Stransky <stransky@redhat.com> - 75.0-1
+- Updated to 75.0
+
+* Mon Apr 06 2020 Martin Stransky <stransky@redhat.com> - 74.0.1-3
+- Added fix for mozbz#1627469
+
+* Mon Apr 06 2020 Jan Horak <jhorak@redhat.com> - 74.0.1-2
+- Fixing pipewire patch
+
+* Sat Apr 4 2020 Martin Stransky <stransky@redhat.com> - 74.0.1-1
+- Updated to latest upstream
+- Added fix for mozbz#1624745
+
+* Wed Apr 1 2020 Martin Stransky <stransky@redhat.com> - 74.0-14
+- Added fixes to gnome shell search provider
+
+* Tue Mar 31 2020 Jan Horak <jhorak@redhat.com> - 74.0-13
+- Allow addons sideload to fix missing langpacks issues
+
+* Thu Mar 19 2020 Martin Stransky <stransky@redhat.com> - 74.0-12
+- Added fix for rhbz#1814850 by Daniel Rusek
+
+* Tue Mar 17 2020 Martin Stransky <stransky@redhat.com> - 74.0-11
+- Added fix for mozbz#1623106
+
+* Tue Mar 17 2020 Martin Stransky <stransky@redhat.com> - 74.0-9
+- Added fix for mozbz#1623060
+
+* Tue Mar 17 2020 Jan Grulich <jgrulich@redhat.com> - 74-0-8
+- Add support for window sharing
+
+* Mon Mar 16 2020 Martin Stransky <stransky@redhat.com> - 74.0-7
+- Use D-Bus remote exclusively for both X11 and Wayland backends
+ when WAYLAND_DISPLAY is present.
+
+* Fri Mar 13 2020 Martin Stransky <stransky@redhat.com> - 74.0-6
+- Added fix for mozbz#1615098
+
+* Thu Mar 12 2020 Martin Stransky <stransky@redhat.com> - 74.0-5
+- Added fix for mozbz#1196777
+
+* Tue Mar 10 2020 Kalev Lember <klember@redhat.com> - 74.0-4
+- Remove unused libIDL build dep
+- Disabled arm due to build failures
+
+* Tue Mar 10 2020 Martin Stransky <stransky@redhat.com> - 74.0-3
+- Update to 74.0 Build 3
+
+* Mon Mar 09 2020 Martin Stransky <stransky@redhat.com> - 74.0-2
+- Update to 74.0 Build 2
+
+* Tue Mar 03 2020 Martin Stransky <stransky@redhat.com> - 74.0-1
+- Update to 74.0 Build 1
+- Added mozbz#1609538
+
+* Mon Feb 24 2020 Martin Stransky <stransky@redhat.com> - 73.0.1-4
+- Using pipewire-0.2 as buildrequire
+- Added armv7hl fixes by Gabriel Hojda
+
+* Mon Feb 24 2020 Martin Stransky <stransky@redhat.com> - 73.0.1-2
+- Fixed Bug 1804787 - Some .desktop menu entries unlocalized
+
+* Thu Feb 20 2020 Martin Stransky <stransky@redhat.com> - 73.0.1-1
+- Update to 73.0.1
+
+* Tue Feb 11 2020 Jan Horak <jhorak@redhat.com> - 73.0-1
+- Update to 73.0 build3
+
+* Tue Feb 04 2020 Kalev Lember <klember@redhat.com> - 72.0.2-3
+- Fix various issues with appdata, making the validation pass again
+- Validate appdata during the build
+- Make sure the release tag in appdata is in sync with the package version
+
+* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 72.0.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Mon Jan 20 2020 Jan Horak <jhorak@redhat.com> - 72.0.2-1
+- Update to 72.0.2 build1
+
+* Wed Jan 15 2020 Jan Horak <jhorak@redhat.com> - 72.0.1-2
+- Added fix for wrong cursor offset of popup windows and bumped required nss
+ version
+
+* Wed Jan 08 2020 Jan Horak <jhorak@redhat.com> - 72.0.1-1
+- Update to 72.0.1 build1
+
+* Mon Jan 06 2020 Jan Horak <jhorak@redhat.com> - 72.0-2
+- Update to 72.0 build4
+
+* Fri Jan 03 2020 Jan Horak <jhorak@redhat.com> - 72.0-1
+- Update to 72.0 build3
+
+* Wed Dec 18 2019 Jan Horak <jhorak@redhat.com> - 71.0-17
+- Fix for wrong intl.accept_lang when using non en-us langpack
+
+* Mon Dec 9 2019 Martin Stransky <stransky@redhat.com> - 71.0-16
+- Build with asan
+
+* Mon Dec 9 2019 Martin Stransky <stransky@redhat.com> - 71.0-15
+- Enabled Mozilla crash reporter
+- Enabled PGO builds
+
+* Mon Dec 9 2019 Martin Stransky <stransky@redhat.com> - 71.0-14
+- Updated workaround for mzbz#1601707
+
+* Sat Dec 7 2019 Martin Stransky <stransky@redhat.com> - 71.0-13
+- Built with -fno-lifetime-dse
+
+* Fri Dec 6 2019 Martin Stransky <stransky@redhat.com> - 71.0-12
+- Clang test build, should fix extension breakage
+
+* Fri Dec 6 2019 Martin Stransky <stransky@redhat.com> - 71.0-11
+- Added workaround for:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=1601707
+ http://gcc.gnu.org/PR92831
+
+* Fri Dec 6 2019 Martin Stransky <stransky@redhat.com> - 71.0-10
+- Remove appdata and ship metainfo only
+
+* Wed Dec 4 2019 Martin Stransky <stransky@redhat.com> - 71.0-9
+- Included kiosk mode workaround (mozbz#1594738)
+
+* Tue Dec 3 2019 Martin Stransky <stransky@redhat.com> - 71.0-8
+- Disabled PGO due to startup crash
+
+* Mon Dec 2 2019 Martin Stransky <stransky@redhat.com> - 71.0-7
+- Updated to 71.0 Build 5
+- Updated Gnome search provider
+
+* Wed Nov 27 2019 Martin Stransky <stransky@redhat.com> - 71.0-6
+- Enable Gnome search provider
+
+* Wed Nov 27 2019 Martin Stransky <stransky@redhat.com> - 71.0-5
+- Added fix for mozbz#1593408
+- Temporary disable Gnome search provider
+
+* Tue Nov 26 2019 Martin Stransky <stransky@redhat.com> - 71.0-2
+- Enable Gnome search provider
+
+* Tue Nov 26 2019 Martin Stransky <stransky@redhat.com> - 71.0-1
+- Updated to 71.0 Build 2
+
+* Tue Nov 19 2019 Jan Horak <jhorak@redhat.com> - 70.0.1-5
+- Added fixes for missing popup and overflow widget glitches
+
+* Mon Nov 04 2019 Jan Horak <jhorak@redhat.com> - 70.0.1-4
+- Added fix for non-scrollable popups
+
+* Fri Nov 1 2019 Martin Stransky <stransky@redhat.com> - 70.0.1-1
+- Updated to 70.0.1
+- Built with system-nss (reverted 70.0-2 change).
+
+* Thu Oct 31 2019 Martin Stransky <stransky@redhat.com> - 70.0-2
+- Switched to in-tree nss due to rhbz#1752303
+
+* Tue Oct 15 2019 Martin Stransky <stransky@redhat.com> - 70.0-1
+- Updated to 70.0
diff --git a/megabar.patch b/megabar.patch
new file mode 100644
index 0000000..1f2bed8
--- /dev/null
+++ b/megabar.patch
@@ -0,0 +1,118 @@
+diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
+index 4c42071..12323dd 100644
+--- a/browser/components/urlbar/UrlbarInput.jsm
++++ b/browser/components/urlbar/UrlbarInput.jsm
+@@ -1712,13 +1712,13 @@ class UrlbarInput {
+
+ // Enable the animation only after the first extend call to ensure it
+ // doesn't run when opening a new window.
+- if (!this.hasAttribute("breakout-extend-animate")) {
+- this.window.promiseDocumentFlushed(() => {
+- this.window.requestAnimationFrame(() => {
+- this.setAttribute("breakout-extend-animate", "true");
+- });
+- });
+- }
++// if (!this.hasAttribute("breakout-extend-animate")) {
++// this.window.promiseDocumentFlushed(() => {
++// this.window.requestAnimationFrame(() => {
++// this.setAttribute("breakout-extend-animate", "true");
++// });
++// });
++// }
+ }
+
+ endLayoutExtend() {
+diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
+index e80aaf6..6ec0961 100644
+--- a/browser/themes/shared/urlbar-searchbar.inc.css
++++ b/browser/themes/shared/urlbar-searchbar.inc.css
+@@ -5,6 +5,6 @@
+ %endif
+
+-%define urlbarMarginInline 5px
++%define urlbarMarginInline 0px
+ %define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding))
+
+ :root {
+@@ -246,14 +246,14 @@
+
+ #urlbar[breakout][breakout-extend] {
+ top: 0;
+- left: -@urlbarMarginInline@;
+- width: calc(100% + 2 * @urlbarMarginInline@);
++ left: 0;
++ width: 100;
+ }
+
+ #urlbar[breakout][breakout-extend] > #urlbar-input-container {
+ height: var(--urlbar-toolbar-height);
+- padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
+- padding-inline: calc(@urlbarMarginInline@ + var(--urlbar-container-padding));
++ padding-block: 0;
++ padding-inline: 0;
+ }
+
+ #urlbar.searchButton[breakout][breakout-extend] > #urlbar-input-container > #urlbar-search-button {
+@@ -271,7 +271,7 @@
+ }
+
+ #urlbar[breakout][breakout-extend] > #urlbar-background {
+- animation-name: urlbar-grow;
++ animation-name: none;
+ animation-duration: 0s;
+ animation-timing-function: var(--animation-easing-function);
+ }
+diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
+index d2bb269..0d47466 100644
+--- a/browser/themes/shared/urlbarView.inc.css
++++ b/browser/themes/shared/urlbarView.inc.css
+@@ -56,8 +56,8 @@
+ display: block;
+ text-shadow: none;
+ overflow: clip;
+- margin-inline: calc(5px + var(--urlbar-container-padding));
+- width: calc(100% - 2 * (5px + var(--urlbar-container-padding)));
++ margin-inline: 0;
++ width: 100%;
+ /* Match urlbar-background's border. */
+ border-inline: 1px solid transparent;
+ }
+@@ -83,11 +83,11 @@
+ .urlbarView-row {
+ fill: currentColor;
+ fill-opacity: var(--urlbar-icon-fill-opacity);
+- padding-block: 2px;
++ padding-block: 0px;
+ }
+
+ :root:not([uidensity=compact]) .urlbarView-row:not([type=tip], [type=dynamic]) {
+- min-height: 32px;
++ min-height: 0px;
+ }
+
+ :root[uidensity=touch] .urlbarView-row:not([type=tip], [type=dynamic]) {
+@@ -241,6 +241,7 @@
+ object-fit: contain;
+ flex-shrink: 0;
+ -moz-context-properties: fill, fill-opacity;
++ margin-inline-start: 20px;
+ }
+
+
+@@ -268,10 +269,10 @@
+
+ .urlbarView-type-icon {
+ position: absolute;
+- width: 12px;
+- height: 12px;
+- margin-bottom: -4px;
+- margin-inline-start: 8px;
++ width: 16px;
++ height: 16px;
++ margin-bottom: 0px;
++ margin-inline-start: 0px;
+ align-self: end;
+ background-repeat: no-repeat;
+ background-size: contain;
+
diff --git a/mozilla-vpn-ad.patch b/mozilla-vpn-ad.patch
new file mode 100644
index 0000000..f5e2ce3
--- /dev/null
+++ b/mozilla-vpn-ad.patch
@@ -0,0 +1,30 @@
+diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
+index 32c9146..f645288 100644
+--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
++++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
+@@ -51,14 +51,14 @@
+ <div class="fake-caret"></div>
+ </button>
+ </div>
+- <div class="info">
++ <!--div class="info">
+ <h1 id="info-title"></h1>
+ <p id="info-body"></p>
+ <a id="private-browsing-myths"></a>
+- </div>
++ </div-->
+ </div>
+
+- <div class="promo">
++ <!--div class="promo">
+ <div class="promo-image-large">
+ <img src="" alt="" />
+ </div>
+@@ -72,6 +72,6 @@
+ </div>
+ </div>
+ </div>
+- </div>
++ </div-->
+ </body>
+ </html>
diff --git a/reduce-rust-debuginfo.patch b/reduce-rust-debuginfo.patch
new file mode 100644
index 0000000..9d9543f
--- /dev/null
+++ b/reduce-rust-debuginfo.patch
@@ -0,0 +1,21 @@
+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/rust.configure
++++ b/build/moz.configure/rust.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 = []
+
diff --git a/relax-cargo-dep.patch b/relax-cargo-dep.patch
new file mode 100644
index 0000000..46c3eff
--- /dev/null
+++ b/relax-cargo-dep.patch
@@ -0,0 +1,12 @@
+diff -r 246cfe5d5a05 build/moz.configure/rust.configure
+--- a/build/moz.configure/rust.configure Sat Oct 02 16:40:36 2021 +0000
++++ b/build/moz.configure/rust.configure Sun Oct 03 11:00:29 2021 +0200
+@@ -171,7 +171,7 @@
+ )
+ )
+ rustc_min_version = Version(MINIMUM_RUST_VERSION)
+- cargo_min_version = rustc_min_version
++ cargo_min_version = Version("1.51.0")
+
+ version = rustc_info.version
+ is_nightly = "nightly" in version.version
diff --git a/remove_addons.patch b/remove_addons.patch
new file mode 100644
index 0000000..a6585ed
--- /dev/null
+++ b/remove_addons.patch
@@ -0,0 +1,74 @@
+diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
+index 269dcb2..ed7c31d 100644
+--- a/browser/extensions/moz.build
++++ b/browser/extensions/moz.build
+@@ -5,11 +5,8 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ DIRS += [
+- "doh-rollout",
+ "formautofill",
+ "screenshots",
+- "webcompat",
+- "report-site-issue",
+ "pictureinpicture",
+ "proxy-failover",
+ ]
+diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
+index 496379c..dd6f359 100644
+--- a/browser/locales/Makefile.in
++++ b/browser/locales/Makefile.in
+@@ -61,7 +61,6 @@ l10n-%:
+ ifneq (,$(wildcard ../extensions/formautofill/locales))
+ @$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
+ endif
+- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
+ @$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
+ @$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
+@@ -82,7 +81,6 @@ endif
+ @$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$*
+ @$(MAKE) chrome AB_CD=$*
+ @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
+- @$(MAKE) -C ../extensions/report-site-issue/locales chrome AB_CD=$*
+
+ package-win32-installer: $(SUBMAKEFILES)
+ $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer
+diff --git a/browser/locales/filter.py b/browser/locales/filter.py
+index bb2e992..7d7768e 100644
+--- a/browser/locales/filter.py
++++ b/browser/locales/filter.py
+@@ -19,7 +19,6 @@
+ "devtools/startup",
+ "browser",
+ "browser/extensions/formautofill",
+- "browser/extensions/report-site-issue",
+ "extensions/spellcheck",
+ "other-licenses/branding/firefox",
+ "browser/branding/official",
+diff --git a/browser/locales/l10n.ini b/browser/locales/l10n.ini
+index f4cb7ca..4efac13 100644
+--- a/browser/locales/l10n.ini
++++ b/browser/locales/l10n.ini
+@@ -13,7 +13,6 @@
+ devtools/client
+ devtools/startup
+ browser/extensions/formautofill
+- browser/extensions/report-site-issue
+
+ [includes]
+ # non-central apps might want to use %(topsrcdir)s here, or other vars
+diff --git a/browser/locales/l10n.toml b/browser/locales/l10n.toml
+index b9b18fe..af7c583 100644
+--- a/browser/locales/l10n.toml
++++ b/browser/locales/l10n.toml
+@@ -132,10 +132,6 @@
+ l10n = "{l}browser/extensions/formautofill/**"
+
+ [[paths]]
+- reference = "browser/extensions/report-site-issue/locales/en-US/**"
+- l10n = "{l}browser/extensions/report-site-issue/**"
+-
+-[[paths]]
+ reference = "services/sync/locales/en-US/**"
+ l10n = "{l}services/sync/**"
diff --git a/sources b/sources
deleted file mode 100644
index 293fa4c..0000000
--- a/sources
+++ /dev/null
@@ -1,4 +0,0 @@
-SHA512 (cbindgen-vendor.tar.xz) = b9ab1498be90ecf60822df7021f8812f124550d97f8cd687c69d3ab56fc5fb714bfe88c78c978a1794d211724909a9a5cad6a4b483fa05f762909c45d5075520
-SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2
-SHA512 (firefox-94.0.source.tar.xz) = 5eb65450a0f1842d28d73235f3ef95fa1dbf8cf1467c354f13df51313bd227aaf5a48b741ee49b13378aaaf054bff52004c1dd5a274eddef4a3cf1b913ef7071
-SHA512 (firefox-langpacks-94.0-20211031.tar.xz) = 9b850c2288b81de988ac615282422c22e2da13664136c0b42d61fba15096a38f4bed51aadd60c5bd3d59ab09ec941081e48b3e576c54a2e83de6edb4e7271ca0
diff --git a/use-system-icupkg.patch b/use-system-icupkg.patch
new file mode 100644
index 0000000..99eb4b5
--- /dev/null
+++ b/use-system-icupkg.patch
@@ -0,0 +1,13 @@
+diff -r 08cd64cdbc3b config/external/icu/data/convert_icudata.py
+--- a/config/external/icu/data/convert_icudata.py Fri Jul 17 11:18:09 2020 +0000
++++ b/config/external/icu/data/convert_icudata.py Sat Jul 18 14:40:33 2020 +0200
+@@ -11,7 +11,7 @@
+ subprocess.run(
+ [
+- os.path.join(buildconfig.topobjdir, "dist", "host", "bin", "icupkg"),
++ "icupkg",
+ "-tb",
+ data_file,
+ output.name,
+ ]
+
diff --git a/webrtc-fix-compiler-flags-for-armhf.patch b/webrtc-fix-compiler-flags-for-armhf.patch
new file mode 100644
index 0000000..5cd6658
--- /dev/null
+++ b/webrtc-fix-compiler-flags-for-armhf.patch
@@ -0,0 +1,35 @@
+# Description: Don't pass -mfloat-abi=softfp on armhf
+# Author: Chris Coulson <chris.coulson@canonical.com>
+# Forwarded: no
+
+--- a/build/gyp.mozbuild
++++ b/build/gyp.mozbuild
+@@ -107,9 +107,15 @@ if CONFIG['ARM_ARCH']:
+ gyp_vars['arm_neon'] = 1
+ gyp_vars['build_with_neon'] = 1
+ else:
+- # CPU detection for ARM works on Android only. armv7 always uses CPU
+- # detection, so we have to set armv7=0 for non-Android target
+- gyp_vars['armv7'] = 0
++ gyp_vars['armv7'] = 1
++ # We enable NEON for Ubuntu armhf. Note that these don't really
++ # have any effect here as NEON is hardcoded on in
++ # media/webrtc/trunk/webrtc/build/common.gypi. Disabling these
++ # without fixing that file will result in a link failure, as
++ # targets hidden behind the build_with_neon flag don't get
++ # built but WEBRTC_HAS_NEON is still defined
++ gyp_vars['arm_neon'] = 1
++ gyp_vars['build_with_neon'] = 1
+ # For libyuv
+ gyp_vars['arm_version'] = int(CONFIG['ARM_ARCH'])
+
+--- a/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
++++ b/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
+@@ -590,7 +590,6 @@ config("compiler_cpu_abi") {
+ if (!is_nacl) {
+ cflags += [
+ "-march=$arm_arch",
+- "-mfloat-abi=$arm_float_abi",
+ ]
+ }
+ if (arm_tune != "") {
bgstack15