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