diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | README.md | 30 | ||||
-rw-r--r-- | armhf-reduce-linker-memory-use.patch | 27 | ||||
-rw-r--r-- | cbindgen-vendor.tar.xz | bin | 0 -> 5624628 bytes | |||
-rw-r--r-- | context-menu.patch | 43 | ||||
-rw-r--r-- | fix-armhf-webrtc-build.patch | 65 | ||||
-rw-r--r-- | librewolf-branding.tgz | bin | 0 -> 1036752 bytes | |||
-rwxr-xr-x | librewolf.cfg | 666 | ||||
-rw-r--r-- | librewolf.spec | 1738 | ||||
-rw-r--r-- | megabar.patch | 166 | ||||
-rw-r--r-- | mozilla-vpn-ad.patch | 17 | ||||
-rw-r--r-- | reduce-rust-debuginfo.patch | 21 | ||||
-rw-r--r-- | relax-cargo-dep.patch | 11 | ||||
-rw-r--r-- | remove_addons.patch | 74 | ||||
-rw-r--r-- | sandbox-update-arm-syscall-numbers.patch | 144 | ||||
-rw-r--r-- | sources | 4 | ||||
-rw-r--r-- | use-system-icupkg.patch | 13 | ||||
-rw-r--r-- | webrtc-fix-compiler-flags-for-armhf.patch | 35 |
18 files changed, 3052 insertions, 5 deletions
@@ -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 @@ -459,3 +458,5 @@ firefox-3.6.4.source.tar.bz2 /firefox-langpacks-88.0.1-20210510.tar.xz /firefox-langpacks-89.0-20210601.tar.xz /firefox-89.0.source.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..dbe74cf --- /dev/null +++ b/armhf-reduce-linker-memory-use.patch @@ -0,0 +1,27 @@ +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 +@@ -2349,15 +2349,17 @@ + set_config("LINKER_KIND", select_linker.KIND) + + +-@depends_if(select_linker, target, macos_sdk, sysroot_path, multiarch_dir) ++@depends_if(select_linker, target, macos_sdk, sysroot_path, multiarch_dir, host) + @imports("os") +-def linker_ldflags(linker, target, macos_sdk, sysroot_path, multiarch_dir): ++def linker_ldflags(linker, target, macos_sdk, sysroot_path, multiarch_dir, host): + flags = list((linker and linker.LINKER_FLAG) or []) + if target.kernel == "Darwin": + if linker and linker.KIND == "ld64": + flags.append("-Wl,-syslibroot,%s" % macos_sdk) + else: + flags.append("-Wl,--sysroot=%s" % macos_sdk) ++ if host.cpu == "arm": ++ flags.append("-Wl,--no-keep-memory") + + if sysroot_path and multiarch_dir: + for d in ("lib", "usr/lib"): diff --git a/cbindgen-vendor.tar.xz b/cbindgen-vendor.tar.xz Binary files differnew file mode 100644 index 0000000..9d6dda0 --- /dev/null +++ b/cbindgen-vendor.tar.xz 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..9f45a78 --- /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 += [ + "/third_party/libwebrtc/webrtc/" + ] + +-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 Binary files differnew file mode 100644 index 0000000..7659ae4 --- /dev/null +++ b/librewolf-branding.tgz diff --git a/librewolf.cfg b/librewolf.cfg new file mode 100755 index 0000000..616da4a --- /dev/null +++ b/librewolf.cfg @@ -0,0 +1,666 @@ +//---------------| +// LibreWolf | +//---------------| +// Glossary: | +// ================================================================================================================================| +// | +// "Section" : Description of the settings section separated by "----" | +// "Pref" : Preference/Settings name and or description followed by links or documentations | +// and some time explanation why the setting is commented and ignored. | +// "lockPref" : Locked preference can not be changed on firefox, nor by extensions, can only be changed here | +// lockPref is used to lock preferences so they cannot be changed through the GUI or about:config. | +// In many cases the GUI will change to reflect this, graying out or removing options. Appears | +// in about:config as "locked". Some config items require lockPref to be set, such as app.update.enabled. | +// It will not work if it set with just pref. | +// "pref" : Sets the preference as if a user had set it, every time you start the browser. So users can make changes, | +// but they will be erased on restart. If you set a particular preference this way, | +// it shows up in about:config as "user set". | +// "defaultPref" : Defaulting : Is used to alter the default value, though users can set it normally and their changes will | +// be saved between sessions. If preferences are reset to default through the GUI or some other method, | +// this is what they will go back to. Appears in about:config as "default". | +// "clearPref" : Can be used to "blank" certain preferences. This can be useful e.g. to disable functions | +// that rely on comparing version numbers. | +// | +// ================================================================================================================================| + +// ----------------------------------- +// # SETTINGS VERSION +// ----------------------------------- + +defaultPref("librewolf.cfg.version", "1.0"); + +// ----------------------------------- +// # TRACKING PROTECTION +// ----------------------------------- + +defaultPref("browser.contentblocking.category", "custom"); // do not lock as it breaks UI even more +lockPref("privacy.trackingprotection.enabled", false); +lockPref("privacy.trackingprotection.pbmode.enabled", false); +defaultPref("privacy.trackingprotection.cryptomining.enabled", false); +defaultPref("privacy.trackingprotection.fingerprinting.enabled", false); +lockPref("privacy.trackingprotection.annotate_channels", false); + +// remove urls +defaultPref("browser.safebrowsing.provider.mozilla.updateURL", ""); +defaultPref("browser.safebrowsing.provider.mozilla.gethashURL", ""); + +// hide ui elements +defaultPref("browser.contentblocking.cryptomining.preferences.ui.enabled", false); +defaultPref("browser.contentblocking.fingerprinting.preferences.ui.enabled", false); +lockPref("browser.contentblocking.report.hide_vpn_banner", true); +lockPref("browser.contentblocking.report.show_mobile_app", false); +lockPref("browser.contentblocking.report.lockwise.enabled", false); +lockPref("browser.contentblocking.report.monitor.enabled", false); +lockPref("browser.contentblocking.report.vpn.enabled", false); + +// ---------------------------------- +// # AUTOPLAY +// ---------------------------------- + +defaultPref("media.autoplay.default", 5); +defaultPref("media.autoplay.blocking_policy", 2); + +// ----------------------------------------- +// # PASSWORD MANAGER +// ----------------------------------------- + +lockPref("signon.rememberSignons", false); +lockPref("signon.storeWhenAutocompleteOff", false); +lockPref("signon.formlessCapture.enabled", false); +lockPref("signon.autofillForms", false); +defaultPref("signon.management.page.breach-alerts.enabled", false); +defaultPref("signon.management.page.breachAlertUrl", ""); + +// -------------------------------- +// # SEARCH AND URLBAR +// -------------------------------- + +defaultPref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); +lockPref("browser.urlbar.speculativeConnect.enabled", false); +defaultPref("browser.urlbar.trimURLs", false); +defaultPref("browser.search.suggest.enabled", false); +defaultPref("browser.search.region", "US"); +lockPref("browser.fixup.alternate.enabled", false); +defaultPref("browser.urlbar.suggest.searches", false); +defaultPref("browser.search.update", false); + +// -------------------------------- +// # SANITIZING, COOKIES AND HISTORY +// -------------------------------- + +defaultPref("network.cookie.cookieBehavior", 5); // dFPI, previously set to 1 +defaultPref("network.cookie.lifetimePolicy", 2); +defaultPref("network.cookie.thirdparty.sessionOnly", true); +defaultPref("network.cookie.thirdparty.nonsecureSessionOnly", true); + +// includes new cookie behavior that allows to stay logged with exceptions +defaultPref("privacy.clearOnShutdown.cookies", false); +defaultPref("privacy.clearOnShutdown.offlineApps", false); +defaultPref("privacy.cpd.cookies", false); // just for consistency to avoid accidental logout +defaultPref("privacy.cpd.offlineApps", false); // just for consistency to avoid accidental logout + +defaultPref("privacy.sanitize.timeSpan", 0); +defaultPref("browser.formfill.enable", false); +defaultPref("privacy.sanitize.sanitizeOnShutdown", true); +defaultPref("places.history.enabled", false); +defaultPref("privacy.history.custom", true); + +// -------------------------------------------------------------------- +// # SESSIONS +// -------------------------------------------------------------------- + +defaultPref("browser.sessionstore.privacy_level", 2); +defaultPref("browser.sessionstore.interval", 60000); + +// --------------------------------- +// # 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); + +// ----------------------- +// # DRM +// ----------------------- + +defaultPref("media.eme.enabled", false); +defaultPref("media.gmp-widevinecdm.visible", false); +defaultPref("media.gmp-widevinecdm.enabled", false); +defaultPref("media.gmp-provider.enabled", false); +defaultPref("media.gmp-manager.url", "data:text/plain,"); // had to re-add to prevent connections + +defaultPref("media.gmp-gmpopenh264.enabled", false); + +// ---------------------- +// # WEBRTC +// ---------------------- + +defaultPref("media.navigator.enabled", false); +defaultPref("media.peerconnection.enabled", false); +defaultPref("media.peerconnection.ice.default_address_only", true); +defaultPref("media.peerconnection.ice.no_host", true); +defaultPref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); + +// ---------------------- +// # SHARING +// ---------------------- + +defaultPref("media.getusermedia.browser.enabled", false); +defaultPref("media.getusermedia.screensharing.enabled", false); +defaultPref("media.getusermedia.audiocapture.enabled", false); + +// ---------------------------- +// # DNS +// ---------------------------- + +defaultPref("network.trr.mode", 5); +defaultPref("network.trr.uri", ""); +defaultPref("network.dns.disableIPv6", true); +lockPref("network.dns.disablePrefetch", true); + +// ------------------------------------ +// # NEW TAB PAGE +// ------------------------------------ + +lockPref("browser.newtab.preload", false); +lockPref("browser.newtabpage.activity-stream.feeds.section.highlights", false); // default +lockPref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); +lockPref("browser.newtabpage.activity-stream.feeds.newtabinit", false); +lockPref("browser.newtabpage.activity-stream.feeds.places", false); +lockPref("browser.newtabpage.activity-stream.feeds.systemtick", false); +lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false); +lockPref("browser.newtabpage.activity-stream.feeds.topsites", false); +lockPref("browser.newtabpage.activity-stream.feeds.system.topsites", false); +lockPref("browser.newtabpage.activity-stream.feeds.system.topstories", false); +lockPref("browser.newtabpage.activity-stream.feeds.telemetry", false); +lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); // default +lockPref("browser.newtabpage.activity-stream.feeds.section.topstories.options", ""); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeBookmarks", false); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeDownloads", false); +lockPref("browser.newtabpage.activity-stream.section.highlights.includeVisited", false); +lockPref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); +lockPref("browser.newtabpage.activity-stream.showSponsored", false); +lockPref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); +lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); +lockPref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.cfr", ""); +lockPref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":false}"); +lockPref("browser.newtabpage.activity-stream.asrouter.devtoolsEnableds", true); +lockPref("browser.newtabpage.activity-stream.telemetry", false); +lockPref("browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint", ""); +lockPref("browser.newtabpage.activity-stream.default.sites", ""); +lockPref("browser.newtabpage.activity-stream.discoverystream.enabled", false); +lockPref("browser.newtabpage.activity-stream.discoverystream.config", "{\"collapsible\":true,\"enabled\":false,\"personalized\":false,\"layout_endpoint\":\"\"}"); +lockPref("browser.newtabpage.activity-stream.discoverystream.endpoints", ""); +lockPref("browser.newtabpage.activity-stream.discoverystream.engagementLabelEnabled", false); // default +lockPref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", false); +lockPref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false); +lockPref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines", ""); +lockPref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned", ""); +lockPref("browser.newtabpage.activity-stream.fxaccounts.endpoint", ""); + +// ------------------------------------------- +// # DO NOT TRACK +// ------------------------------------------- + +// Unlocked as some think it increases fingerprint, they can now disable it +defaultPref("privacy.donottrackheader.enabled", true); + +// -------------------------------- +// # DOM +// -------------------------------- + +defaultPref("dom.disable_beforeunload", true); +defaultPref("dom.disable_open_during_load", true); +defaultPref("dom.push.enabled", false); +defaultPref("dom.push.connection.enabled", false); +defaultPref("dom.push.serverURL", ""); //default "wss://push.services.mozilla.com/" +defaultPref("dom.push.userAgentID", ""); +defaultPref("dom.targetBlankNoOpener.enabled", true); +defaultPref("dom.disable_window_move_resize", true); +defaultPref("dom.serviceWorkers.enabled", false); +defaultPref("dom.battery.enabled", false); +defaultPref("dom.popup_maximum", 4); +defaultPref("dom.popup_allowed_events", "click dblclick mousedown pointerdown"); +defaultPref("dom.webaudio.enabled", false); +defaultPref("dom.vr.enabled", false); +defaultPref("dom.vibrator.enabled", false); +defaultPref("dom.storage.next_gen", true); + +// -------------------------------- +// # PERMISSIONS +// -------------------------------- + +lockPref("permissions.delegation.enabled", false); +defaultPref("permissions.default.geo", 2); // unlocked as some think it increases fingerprint, they can now disable it +lockPref("permissions.manager.defaultsUrl", ""); + +// -------------------------------- +// # REFERERS +// -------------------------------- + +defaultPref("network.http.referer.XOriginTrimmingPolicy", 2); +defaultPref("network.http.referer.XOriginPolicy", 0); + +// -------------------------------- +// # PROXY +// -------------------------------- + +defaultPref("network.proxy.socks_remote_dns", true); + +// -------------------------------------- +// # HTTP(S) +// -------------------------------------- + +lockPref("network.http.altsvc.enabled", false); +lockPref("network.http.altsvc.oe", false); +defaultPref("dom.security.https_only_mode", true); +defaultPref("dom.security.https_only_mode_pbm", true); +defaultPref("network.auth.subresource-http-auth-allow", 1); + +// -------------------------------------- +// # TLS +// -------------------------------------- + +defaultPref("security.ssl.require_safe_negotiation", true); +lockPref("security.ssl.treat_unsafe_negotiation_as_broken", true); +defaultPref("browser.ssl_override_behavior", 1); +lockPref("security.tls.enable_0rtt_data", false); +lockPref("security.tls.version.enable-deprecated", false); +defaultPref("security.tls.version.fallback-limit", 3); +defaultPref("browser.xul.error_pages.expert_bad_cert", true); // advanced ui infos + +// -------------------------------------- +// # RFP +// -------------------------------------- + +defaultPref("privacy.resistFingerprinting", true); +defaultPref("privacy.resistFingerprinting.block_mozAddonManager", true); +lockPref("browser.startup.blankWindow", false); // breaks RFP windows resizing + +// -------------------------------------- +// # FISSION +// -------------------------------------- + +// commented out for now, keep an eye on +// defaultPref("fission.autostart", true); + +// -------------------------------------- +// # LANGUAGE AND REGION +// -------------------------------------- + +defaultPref("javascript.use_us_english_locale", true); +defaultPref("intl.locale.requested", "en-US"); +defaultPref("privacy.spoof_english", 2); + +// ------------------------------------------------------- +// # EXTENSIONS - check readme section "Extensions Firewall" +// ------------------------------------------------------- + +// handle default restricted domains +defaultPref("extensions.webextensions.restrictedDomains", ""); // This will allow extensions to work everywhere, default "debug-notes.log" +lockPref("extensions.webextensions.identity.redirectDomain", ""); // Redirect basedomain used by identity api, default "extensions.allizom.org" + +// disable network for the extensions +// Enable-Firewall-Feature-In-The-Next-Line extensions-firewall >>>>>> +defaultPref("extensions.webextensions.base-content-security-policy", "script-src 'self' https://* moz-extension: blob: filesystem: 'unsafe-eval' 'unsafe-inline'; object-src 'self' https://* moz-extension: blob: filesystem:;"); + +// set extensions scopes +defaultPref("extensions.enabledScopes", 5); +defaultPref("extensions.autoDisableScopes", 11); + +// Relevant for addons and lang packs search +defaultPref("extensions.getAddons.search.browseURL", ""); // https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION% +defaultPref("extensions.getAddons.langpacks.url", ""); // https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION% + +// other urls +defaultPref("extensions.getAddons.get.url", ""); // https://services.addons.mozilla.org/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE% +defaultPref("extensions.getAddons.link.url", ""); // https://addons.mozilla.org/%LOCALE%/firefox/ + +// probably better to have it, it still must be manually triggered +defaultPref("extensions.update.url", ""); // https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE% + +// ui +defaultPref("extensions.getAddons.showPane", false); +lockPref("extensions.getAddons.discovery.api_url", ""); +lockPref("extensions.htmlaboutaddons.recommendations.enabled", false); +lockPref("extensions.webcompat-reporter.enabled", false); +lockPref("extensions.webcompat-reporter.newIssueEndpoint", "");// https://webcompat.com/issues/new + +// background checking and updating +defaultPref("extensions.update.enabled", false); +defaultPref("extensions.update.autoUpdateDefault", false); +defaultPref("extensions.update.background.url", ""); +defaultPref("extensions.getAddons.cache.enabled", false); + +// blocklist is a security feature, best left at default +// defaultPref("extensions.blocklist.enabled", false); +// defaultPref("extensions.blocklist.detailsURL", ""); +// defaultPref("extensions.blocklist.itemURL", ""); + +// system addons +lockPref("extensions.systemAddon.update.url", ""); +lockPref("extensions.systemAddon.update.enabled", false); + +defaultPref("xpinstall.signatures.devInfoURL", ""); +lockPref("extensions.webservice.discoverURL", ""); +lockPref("webextensions.storage.sync.serverURL", ""); +lockPref("lightweightThemes.getMoreURL", ""); +defaultPref("extensions.postDownloadThirdPartyPrompt", false); + +// ------------------------------------------------------- +// # NORMANDY +// ------------------------------------------------------- + +lockPref("app.normandy.enabled", false); +lockPref("app.normandy.api_url", ""); +lockPref("app.normandy.user_id", ""); +lockPref("app.normandy.shieldLearnMoreUrl", ""); + +// -------------------------------- +// # SECURITY +// -------------------------------- + +// certificates +defaultPref("security.cert_pinning.enforcement_level", 2); +defaultPref("security.OCSP.enabled", 0); +defaultPref("security.OCSP.require", false); +defaultPref("security.pki.sha1_enforcement_level", 1); + +// mixed content +lockPref("security.mixed_content.block_display_content", true); +lockPref("security.mixed_content.block_active_content", true); + +// ui +lockPref("security.insecure_connection_text.enabled", true); +lockPref("security.insecure_connection_text.pbmode.enabled", true); + +lockPref("security.dialog_enable_delay", 700); +lockPref("security.csp.enable", true); + +// ------------------------------------------------------- +// # SAFE BROWSING +// ------------------------------------------------------- + +// re-enabling +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", ""); + +// downloads +lockPref("browser.safebrowsing.downloads.enabled", false); + +// remote downloads, unwanted software, data sharing +lockPref("browser.safebrowsing.passwords.enabled", false); +lockPref("browser.safebrowsing.downloads.remote.enabled", false); +lockPref("browser.safebrowsing.downloads.remote.block_dangerous", false); +lockPref("browser.safebrowsing.downloads.remote.block_dangerous_host", false); +lockPref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false); +lockPref("browser.safebrowsing.downloads.remote.block_uncommon", false); +lockPref("browser.safebrowsing.downloads.remote.url", ""); +lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); +lockPref("browser.safebrowsing.provider.google4.dataSharingURL", ""); + +// commented all below as they do no harm and make enabling SB painful +// could potentially at some point +// defaultPref("browser.safebrowsing.id", ""); +// defaultPref("browser.safebrowsing.provider.google4.pver", ""); +// defaultPref("browser.safebrowsing.provider.google4.advisoryName", ""); +// defaultPref("browser.safebrowsing.provider.google4.advisoryURL", ""); +// defaultPref("browser.safebrowsing.provider.google4.lists", ""); +// defaultPref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); +// defaultPref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); +// defaultPref("browser.safebrowsing.provider.google4.reportURL", ""); +// defaultPref("browser.safebrowsing.provider.google4.lastupdatetime", ""); +// defaultPref("browser.safebrowsing.provider.google4.nextupdatetime", ""); +// defaultPref("browser.safebrowsing.provider.google.advisoryName", ""); +// defaultPref("browser.safebrowsing.provider.google.advisoryURL", ""); +// defaultPref("browser.safebrowsing.provider.google.lastupdatetime", ""); +// defaultPref("browser.safebrowsing.provider.google.lists", ""); +// defaultPref("browser.safebrowsing.provider.google.nextupdatetime", ""); +// defaultPref("browser.safebrowsing.provider.google.pver", ""); +// defaultPref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); +// defaultPref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); +// defaultPref("browser.safebrowsing.provider.google.reportURL", ""); +// defaultPref("browser.safebrowsing.reportPhishURL", ""); + +// -------------------------------- +// # FONTS +// -------------------------------- + +lockPref("gfx.font_rendering.graphite.enabled", false); +lockPref("gfx.font_rendering.opentype_svg.enabled", false); + +// -------------------------------- +// # MISC +// -------------------------------- + +// more important stuff +lockPref("browser.shell.shortcutFavicons", false); +defaultPref("browser.link.open_newwindow", 3); +defaultPref("browser.link.open_newwindow.restriction", 0); +defaultPref("network.file.disable_unc_paths", true); // (hidden pref) +lockPref("network.gio.supported-protocols", ""); // (hidden pref) +lockPref("network.IDN_show_punycode", true); +defaultPref("browser.display.use_system_colors", false); // default but enforced due to RFP + +// pdf reader +defaultPref("pdfjs.disabled", false); +defaultPref("pdfjs.enableScripting", false); +defaultPref("pdfjs.previousHandler.alwaysAskBeforeHandling", true); +defaultPref("pdfjs.enabledCache.state", false); + +// remote agent +lockPref("remote.enabled", false); + +// settings and behavior +lockPref("browser.shell.checkDefaultBrowser", false); +lockPref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", true); +defaultPref("startup.homepage_override_url", "about:blank"); +defaultPref("startup.homepage_welcome_url", "about:blank"); +defaultPref("startup.homepage_welcome_url.additional", ""); +lockPref("browser.startup.homepage_override.mstone", "ignore"); +defaultPref("privacy.userContext.enabled", true); +defaultPref("general.autoScroll", false); // OS specific +defaultPref("clipboard.autocopy", false); // OS specific +defaultPref("browser.tabs.loadBookmarksInTabs", true); // OS specific +defaultPref("browser.download.manager.addToRecentDocs", false); +defaultPref("accessibility.force_disabled", 1); +lockPref("browser.uitour.enabled", false); +lockPref("middlemouse.contentLoadURL", false); +defaultPref("network.manage-offline-status", false); +defaultPref("browser.helperApps.deleteTempFileOnExit", true); +lockPref("browser.pagethumbnails.capturing_disabled", true); +lockPref("browser.bookmarks.max_backups", 2); + +// devtools +defaultPref("devtools.debugger.remote-enabled", false); +defaultPref("devtools.chrome.enabled", false); +defaultPref("devtools.performance.recording.ui-base-url", "http://localhost:55555"); // Default Value : https://profiler.firefox.com +defaultPref("devtools.devices.url", ""); +defaultPref("devtools.remote.adb.extensionURL", ""); // [FF64+] +defaultPref("devtools.remote.adb.extensionID", ""); // default adb@mozilla.org [FF64+] +defaultPref("devtools.selfxss.count", 0); // see https://gitlab.com/librewolf-community/browser/linux/-/issues/80 + +// ui +defaultPref("browser.tabs.drawInTitlebar", true); // OS specific +defaultPref("browser.aboutConfig.showWarning", false); +defaultPref("general.warnOnAboutConfig", false); +defaultPref("browser.download.autohideButton", false); +defaultPref("privacy.userContext.ui.enabled", true); +lockPref("browser.messaging-system.whatsNewPanel.enabled", false); + +// urls and handlers +lockPref("media.decoder-doctor.new-issue-endpoint", ""); +lockPref("identity.sync.tokenserver.uri", ""); +lockPref("network.trr.confirmationNS", ""); +lockPref("browser.translation.engine", ""); // default Google +lockPref("gecko.handlerService.schemes.mailto.0.uriTemplate", ""); +lockPref("gecko.handlerService.schemes.mailto.0.name", ""); // default Yahoo! Mail +lockPref("gecko.handlerService.schemes.mailto.1.uriTemplate", ""); +lockPref("gecko.handlerService.schemes.mailto.1.name", ""); // default Gmail +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("services.settings.server", ""); +lockPref("accessibility.support.url", ""); +lockPref("app.support.baseURL", ""); +lockPref("browser.uitour.url", ""); +lockPref("webchannel.allowObject.urlWhitelist", ""); +lockPref("browser.dictionaries.download.url", ""); +lockPref("browser.geolocation.warning.infoURL", ""); +lockPref("browser.search.searchEnginesURL", ""); +lockPref("browser.uitour.themeOrigin", ""); +lockPref("toolkit.datacollection.infoURL", ""); +lockPref("identity.mobilepromo.android", ""); +lockPref("identity.mobilepromo.ios", ""); +defaultPref("identity.sendtabpromo.url", ""); +lockPref("datareporting.healthreport.infoURL", ""); +lockPref("app.feedback.baseURL", ""); +lockPref("app.releaseNotesURL", ""); +lockPref("app.releaseNotesURL.aboutDialog", ""); +lockPref("browser.chrome.errorReporter.infoURL", ""); +lockPref("datareporting.policy.firstRunURL", ""); + +// -------------------------------- +// # CACHE +// -------------------------------- + +lockPref("browser.cache.offline.storage.enable", false); +lockPref("browser.privatebrowsing.forceMediaMemoryCache", true); // [FF75+] +defaultPref("media.memory_cache_max_size", 65536); +defaultPref("browser.cache.disk.enable", false); + +// -------------------------------- +// # WEBGL AND PERFORMANCE +// -------------------------------- + +defaultPref("webgl.disabled", true); +defaultPref("webgl.enable-webgl2", false); + +// -------------------------------- +// # JS +// -------------------------------- + +lockPref("javascript.options.shared_memory", false); + +// -------------------------------- +// # GEO +// -------------------------------- + +defaultPref("geo.enabled", false); +lockPref("geo.provider.ms-windows-location", false); // [WINDOWS] +lockPref("geo.provider.use_corelocation", false); // [MAC] +lockPref("geo.provider.use_gpsd", false); // [LINUX] +defaultPref("geo.provider.network.url", ""); // consider adding url, it doesn't do any harm +lockPref("browser.region.network.url", ""); +lockPref("browser.region.update.enabled", false); + +// -------------------------------- +// # PREFETCHING +// -------------------------------- + +lockPref("network.predictor.enabled", false); +lockPref("network.prefetch-next", false); +lockPref("network.http.speculative-parallel-limit", 0); + +// -------------------------------- +// # OUTGOING CONNECTIONS +// -------------------------------- + +// updates +lockPref("app.update.auto", false); +lockPref("app.update.staging.enabled", false); +lockPref("app.update.lastUpdateTime.telemetry_modules_ping", 0); +lockPref("app.update.url.details", "https://gitlab.com/librewolf-community/browser"); +lockPref("app.update.url.manual", "https://gitlab.com/librewolf-community/browser"); + +// connectivity service +lockPref("network.connectivity-service.enabled", false); +lockPref("network.connectivity-service.IPv6.url", "http://0.0.0.0"); +lockPref("network.connectivity-service.IPv4.url", "http://0.0.0.0"); +lockPref("network.connectivity-service.DNSv6.domain", ""); +lockPref("network.connectivity-service.DNSv4.domain", ""); + +// telemetry +lockPref("toolkit.crashreporter.infoURL", ""); +lockPref("toolkit.telemetry.archive.enabled", false); +lockPref("toolkit.telemetry.updatePing.enabled", false); +lockPref("toolkit.telemetry.bhrPing.enabled", false); +lockPref("toolkit.telemetry.cachedClientID", ""); +lockPref("toolkit.telemetry.enabled", false); +lockPref("toolkit.telemetry.firstShutdownPing.enabled", false); +lockPref("toolkit.telemetry.newProfilePing.enabled", false); +lockPref("toolkit.telemetry.previousBuildID", ""); +lockPref("toolkit.telemetry.reportingpolicy.firstRun", false); // default +lockPref("toolkit.telemetry.server", "data:,"); +lockPref("toolkit.telemetry.server_owner", ""); +lockPref("toolkit.telemetry.shutdownPingSender.enabled", false); +lockPref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); // default +lockPref("toolkit.telemetry.unified", false); +lockPref("security.protectionspopup.recordEventTelemetry", false); +lockPref("datareporting.healthreport.uploadEnabled", false); +lockPref("datareporting.policy.dataSubmissionEnabled", false); +lockPref("toolkit.coverage.endpoint.base", ""); +lockPref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF] +lockPref("toolkit.coverage.opt-out", true); // [HIDDEN PREF] +lockPref("toolkit.coverage.enabled", false); +lockPref("app.shield.optoutstudies.enabled", false); +lockPref("beacon.enabled", false); +lockPref("browser.ping-centre.telemetry", false); + +// discovery +lockPref("browser.discovery.enabled", false); +lockPref("browser.discovery.containers.enabled", false); +lockPref("browser.discovery.sites", ""); + +// crash report +lockPref("breakpad.reportURL", ""); +lockPref("browser.tabs.crashReporting.sendReport", false); +lockPref("browser.crashReports.unsubmittedCheck.enabled", false); +lockPref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); + +// captive portal +lockPref("network.captive-portal-service.enabled", false); +lockPref("captivedetect.canonicalURL", ""); + +// -------------------------------- +// # WINDOWS +// -------------------------------- + +// disable links launching Windows Store [WINDOWS] +lockPref("network.protocol-handler.external.ms-windows-store", false); + +// disable background update service [WINDOWS] +lockPref("app.update.service.enabled", false); + +// disable automatic Firefox start and session restore after reboot [WINDOWS] +lockPref("toolkit.winRegisterApplicationRestart", false); + +// disable Windows 8.1 Family Safety cert [WINDOWS] +lockPref("security.family_safety.mode", 0); + +// Windows only? +lockPref("default-browser-agent.enabled", false); + +// ----------------------------------- +// # 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..bb50e33 --- /dev/null +++ b/librewolf.spec @@ -0,0 +1,1738 @@ +# 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_clang 0 +%global build_with_asan 0 +%global test_on_wayland 1 + +# 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} > 34 +ExcludeArch: armv7hl +%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 and aarch64 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.21 +%global nspr_build_version %{nspr_version} +%global nss_version 3.64 +%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: 89.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}-20210601.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 +Patch58: firefox-crashreporter-build.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 +Patch422: mozilla-1705048.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 +%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: mesa-dri-drivers +BuildRequires: dbus-x11 +BuildRequires: gnome-keyring +# ---------------------------------------- +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 + +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 +Patch903: sandbox-update-arm-syscall-numbers.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 +%patch58 -p1 -b .firefox-crashreporter-build + +# 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 +%patch422 -p1 -b .1705048 + +# 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 +%patch903 -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 2>&1 | cat - +%else +xvfb-run ./mach build 2>&1 | cat - +%endif +%else +./mach build 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 +#--------------------------------------------------------------------- + +# 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 +%{_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 +* Wed Jun 09 2021 B. Stack <bgstack15@gmail.com> - 89.0-1 +- Fork to librewolf release. + +* 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..ddbd4e8 --- /dev/null +++ b/megabar.patch @@ -0,0 +1,166 @@ +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,7 +5,7 @@ + %endif + + %define fieldHoverBorderColor hsla(240,5%,5%,.35) +-%define urlbarMarginInline 5px ++%define urlbarMarginInline 0px + %define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding)) + + :root { +@@ -279,40 +279,40 @@ + } + + #urlbar[breakout][breakout-extend] { +- top: -@urlbarBreakoutExtend@; +- left: calc(-@urlbarMarginInline@ - @urlbarBreakoutExtend@); +- width: calc(100% + 2 * @urlbarMarginInline@ + 2 * @urlbarBreakoutExtend@); ++ top: 0; ++ left: 0; ++ width: 100%; + } + + @media (-moz-proton) { + #urlbar[breakout][breakout-extend] { + top: 0; +- left: -@urlbarMarginInline@; +- width: calc(100% + 2 * @urlbarMarginInline@); ++ left: 0; ++ width: 100%; + } + } /*** END proton ***/ + + @media not (-moz-proton) { + #urlbar[breakout][breakout-extend] > #urlbar-background { +- box-shadow: 0 3px 8px 0 rgba(0,0,0,.15) ++ box-shadow: 0 1px 4px rgba(0,0,0,.05); + } + + #urlbar[breakout][breakout-extend][open] > #urlbar-background { +- box-shadow: 0 5px 18px rgba(0,0,0,.2); ++ box-shadow: 0 1px 4px rgba(0,0,0,.05); + } + } /*** END !proton ***/ + + #urlbar[breakout][breakout-extend] > #urlbar-input-container { +- height: calc(var(--urlbar-toolbar-height) + 2 * @urlbarBreakoutExtend@); +- padding-block: calc(@urlbarBreakoutExtend@ + (var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2); +- padding-inline: calc(@urlbarMarginInline@ + @urlbarBreakoutExtend@); ++ height: var(--urlbar-toolbar-height); ++ padding-block: 0; ++ padding-inline: 0; + } + + @media (-moz-proton) { + #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; + } + } /*** END proton ***/ + +@@ -331,7 +331,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 +@@ -73,16 +73,16 @@ + 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; + } + + @media not (-moz-proton) { + .urlbarView { +- margin-inline: calc(4px + var(--identity-box-margin-inline)); +- width: calc(100% - 2 * (4px + var(--identity-box-margin-inline))); ++ margin-inline: 0; ++ width: 100%; + } + /* If the view is open, offset the toolbar overlap so the view's top border + aligns with the toolbar. */ +@@ -112,7 +112,7 @@ + .urlbarView-row { + fill: currentColor; + fill-opacity: var(--urlbar-icon-fill-opacity); +- padding-block: 3px; ++ padding-block: 0; + } + + @media not (-moz-proton) { +@@ -127,7 +127,7 @@ + } + + :root:not([uidensity=compact]) .urlbarView-row:not([type=tip], [type=dynamic]) { +- min-height: 32px; ++ min-height: 0; + } + } /*** END proton ***/ + +@@ -295,6 +295,7 @@ + object-fit: contain; + flex-shrink: 0; + -moz-context-properties: fill, fill-opacity; ++ margin-inline-start: 20px; + } + + @media not (-moz-proton) { +@@ -328,10 +329,10 @@ + + .urlbarView-type-icon { + position: absolute; +- width: 12px; +- height: 12px; +- margin-bottom: -4px; +- margin-inline-start: 8px; ++ width: 16px; ++ height: 16px; ++ margin-bottom: 0; ++ margin-inline-start: 0; + align-self: end; + background-repeat: no-repeat; + background-size: contain;
\ No newline at end of file diff --git a/mozilla-vpn-ad.patch b/mozilla-vpn-ad.patch new file mode 100644 index 0000000..bc884f2 --- /dev/null +++ b/mozilla-vpn-ad.patch @@ -0,0 +1,17 @@ +diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html +--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ++++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html +@@ -54,13 +54,10 @@ + <div class="info"> + <h1 id="info-title" data-l10n-id="about-private-browsing-info-title"></h1> + <p id="info-body" data-l10n-id="about-private-browsing-info-description"></p> +- <a id="private-browsing-myths" data-l10n-id="about-private-browsing-info-myths"></a> + </div> + </div> + + <div class="promo"> +- <p id="private-browsing-vpn-text" class="vpn-promo" data-l10n-id="about-private-browsing-need-more-privacy"></p> +- <a id="private-browsing-vpn-link" class="vpn-promo" data-l10n-id="about-private-browsing-turn-on-vpn"></a> + </div> + </body> + </html> diff --git a/reduce-rust-debuginfo.patch b/reduce-rust-debuginfo.patch new file mode 100644 index 0000000..e6a9148 --- /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/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -2167,7 +2167,7 @@ def rust_compile_flags(opt_level, debug_ + debug_assertions = False + + if debug_symbols: +- debug_info = "2" ++ debug_info = "1" + + opts = [] + diff --git a/relax-cargo-dep.patch b/relax-cargo-dep.patch new file mode 100644 index 0000000..ecc6c02 --- /dev/null +++ b/relax-cargo-dep.patch @@ -0,0 +1,11 @@ +--- a/build/moz.configure/rust.configure ++++ b/build/moz.configure/rust.configure +@@ -168,7 +168,7 @@ + ) + ) + rustc_min_version = Version(MINIMUM_RUST_VERSION) +- cargo_min_version = rustc_min_version ++ cargo_min_version = Version("1.46.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..40fef37 --- /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,10 +5,7 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + DIRS += [ +- "doh-rollout", + "formautofill", + "screenshots", +- "webcompat", +- "report-site-issue", + "pictureinpicture", + ] +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 +@@ -20,7 +20,6 @@ def test(mod, path, entity=None): + "browser", + "browser/extensions/formautofill", + "browser/extensions/fxmonitor", +- "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 +@@ -14,7 +14,6 @@ dirs = browser + devtools/startup + browser/extensions/formautofill + browser/extensions/fxmonitor +- 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 +@@ -133,10 +133,6 @@ locales = [ + reference = "browser/extensions/fxmonitor/locales/en-US/**" + l10n = "{l}browser/extensions/fxmonitor/**" + +-[[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/sandbox-update-arm-syscall-numbers.patch b/sandbox-update-arm-syscall-numbers.patch new file mode 100644 index 0000000..b6cf3bb --- /dev/null +++ b/sandbox-update-arm-syscall-numbers.patch @@ -0,0 +1,144 @@ +From 05971bd227dc6c359657d1501711e6865e9430f9 Mon Sep 17 00:00:00 2001 +From: Matthew Denton <mpdenton@chromium.org> +Date: Tue, 28 Jul 2020 00:29:01 +0000 +Subject: [PATCH] Linux sandbox: update arm syscall numbers + +Change-Id: Ia2c39a86fb3516040a74de963115e73b7b1a1e0c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2318316 +Reviewed-by: Robert Sesek <rsesek@chromium.org> +Commit-Queue: Matthew Denton <mpdenton@chromium.org> +Cr-Commit-Position: refs/heads/master@{#792090} +--- + +diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h +index 59d0eab8..a242c18c 100644 +--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h +@@ -1063,4 +1063,60 @@ + #define __NR_memfd_create 279 + #endif + ++#if !defined(__NR_bpf) ++#define __NR_bpf 280 ++#endif ++ ++#if !defined(__NR_execveat) ++#define __NR_execveat 281 ++#endif ++ ++#if !defined(__NR_userfaultfd) ++#define __NR_userfaultfd 282 ++#endif ++ ++#if !defined(__NR_membarrier) ++#define __NR_membarrier 283 ++#endif ++ ++#if !defined(__NR_mlock2) ++#define __NR_mlock2 284 ++#endif ++ ++#if !defined(__NR_copy_file_range) ++#define __NR_copy_file_range 285 ++#endif ++ ++#if !defined(__NR_preadv2) ++#define __NR_preadv2 286 ++#endif ++ ++#if !defined(__NR_pwritev2) ++#define __NR_pwritev2 287 ++#endif ++ ++#if !defined(__NR_pkey_mprotect) ++#define __NR_pkey_mprotect 288 ++#endif ++ ++#if !defined(__NR_pkey_alloc) ++#define __NR_pkey_alloc 289 ++#endif ++ ++#if !defined(__NR_pkey_free) ++#define __NR_pkey_free 290 ++#endif ++ ++#if !defined(__NR_statx) ++#define __NR_statx 291 ++#endif ++ ++#if !defined(__NR_io_pgetevents) ++#define __NR_io_pgetevents 292 ++#endif ++ ++#if !defined(__NR_rseq) ++#define __NR_rseq 293 ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_ +diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +index 1addd53..85e2110b 100644 +--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,62 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_bpf) ++#define __NR_bpf (__NR_SYSCALL_BASE+386) ++#endif ++ ++#if !defined(__NR_execveat) ++#define __NR_execveat (__NR_SYSCALL_BASE+387) ++#endif ++ ++#if !defined(__NR_userfaultfd) ++#define __NR_userfaultfd (__NR_SYSCALL_BASE+388) ++#endif ++ ++#if !defined(__NR_membarrier) ++#define __NR_membarrier (__NR_SYSCALL_BASE+389) ++#endif ++ ++#if !defined(__NR_mlock2) ++#define __NR_mlock2 (__NR_SYSCALL_BASE+390) ++#endif ++ ++#if !defined(__NR_copy_file_range) ++#define __NR_copy_file_range (__NR_SYSCALL_BASE+391) ++#endif ++ ++#if !defined(__NR_preadv2) ++#define __NR_preadv2 (__NR_SYSCALL_BASE+392) ++#endif ++ ++#if !defined(__NR_pwritev2) ++#define __NR_pwritev2 (__NR_SYSCALL_BASE+393) ++#endif ++ ++#if !defined(__NR_pkey_mprotect) ++#define __NR_pkey_mprotect (__NR_SYSCALL_BASE+394) ++#endif ++ ++#if !defined(__NR_pkey_alloc) ++#define __NR_pkey_alloc (__NR_SYSCALL_BASE+395) ++#endif ++ ++#if !defined(__NR_pkey_free) ++#define __NR_pkey_free (__NR_SYSCALL_BASE+396) ++#endif ++ ++#if !defined(__NR_statx) ++#define __NR_statx (__NR_SYSCALL_BASE+397) ++#endif ++ ++#if !defined(__NR_rseq) ++#define __NR_rseq (__NR_SYSCALL_BASE+398) ++#endif ++ ++#if !defined(__NR_io_pgetevents) ++#define __NR_io_pgetevents (__NR_SYSCALL_BASE+399) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) diff --git a/sources b/sources deleted file mode 100644 index 8fb0bcb..0000000 --- a/sources +++ /dev/null @@ -1,4 +0,0 @@ -SHA512 (mochitest-python.tar.gz) = 7f357cb8bd93d64be5cb75819a8a813d2f8f217ff25f0df8c3190910744132405d45797b3900775a44b554f5c70cf2682809c9e7a686ca131fddcd81e98028d9 -SHA512 (firefox-langpacks-89.0-20210601.tar.xz) = 91166fdd3cf08b7301b8ea3bba3cd71a0cf33b130f7981a241d9bc4dc5c8642085a23375c1b39f87b9c0ad715672eedaef160bb29e317d4d37f82ac9417231be -SHA512 (firefox-89.0.source.tar.xz) = 5089720feda15d054d0aa4c3bdeb84760314dadd6381d7360e688d8e396154868220c6315add650d8d2a42652cb8a9bfeb833885812ef0bd70a74ee58ad18aa3 -SHA512 (cbindgen-vendor.tar.xz) = b9ab1498be90ecf60822df7021f8812f124550d97f8cd687c69d3ab56fc5fb714bfe88c78c978a1794d211724909a9a5cad6a4b483fa05f762909c45d5075520 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 != "") { |