diff --git a/assets/patches.txt b/assets/patches.txt index 24e1d9e..a4a54d6 100644 --- a/assets/patches.txt +++ b/assets/patches.txt @@ -9,6 +9,7 @@ patches/hide-passwordmgr.patch patches/librewolf-pref-pane.patch patches/librewolf-prefs.patch patches/mozilla_dirs.patch +patches/msix.patch patches/remove_addons.patch patches/rfp-performance-api.patch patches/sed-patches/allow-searchengines-non-esr.patch diff --git a/patches/msix.patch b/patches/msix.patch new file mode 100644 index 0000000..48e128f --- /dev/null +++ b/patches/msix.patch @@ -0,0 +1,263 @@ +# LibreWolf msix.patch +# +# Author: Malte Jürgens +# Description: Allows us to build a msix for the Microsoft Store +# Last Updated: 2023-01-26 +# License: MPL 2.0 +--- a/browser/installer/windows/msix/AppxManifest.xml.in ++++ b/browser/installer/windows/msix/AppxManifest.xml.in +@@ -1,7 +1,6 @@ + +- ++ + + + +- ++ + + @APPX_DISPLAYNAME@ + @APPX_PUBLISHER_DISPLAY_NAME@ +@@ -25,27 +25,34 @@ + + + +-@APPX_RESOURCE_LANGUAGE_LIST@ ++ @APPX_RESOURCE_LANGUAGE_LIST@ + + +- ++ + + + + + +- +- +- ++ ++ ++ + +- +- +- ++ ++ ++ + + + + +- ++ + + + +@@ -54,9 +61,10 @@ + + + ++ https://searchfox.org/mozilla-central/source/browser/installer/windows/nsis/shared.nsh ++ and `os.environment.launched_to_handle` and `os.environment.invoked_to_handle` ++ telemetry in ++ https://searchfox.org/mozilla-central/source/browser/components/BrowserContentHandler.jsm. --> + .avif + .htm + .html +@@ -95,44 +103,18 @@ + + + ++ AppId="@MOZ_INOTIFICATIONACTIVATION_CLSID@"> + ++ Path="VFS\ProgramFiles\@APPX_INSTDIR@\notificationserver.dll" ++ ThreadingModel="Both" /> + + + + +- ++ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ +\ No newline at end of file +--- a/python/mozbuild/mozbuild/mach_commands.py ++++ b/python/mozbuild/mozbuild/mach_commands.py +@@ -2325,7 +2325,7 @@ def repackage_msi( + @CommandArgument( + "--vendor", + type=str, +- default="Mozilla", ++ default=None, + required=False, + help="The vendor to use in the Package/Identity/Name string to use in the App Manifest." + + " Defaults to 'Mozilla'.", +@@ -2462,7 +2462,7 @@ def repackage_msix( + command_context.topsrcdir, + channel=channel, + arch=arch, +- displayname=identity_name, ++ identity=identity_name, + vendor=vendor, + publisher=publisher, + publisher_display_name=publisher_display_name, +--- a/python/mozbuild/mozbuild/repackaging/msix.py ++++ b/python/mozbuild/mozbuild/repackaging/msix.py +@@ -97,7 +97,7 @@ def find_sdk_tool(binary, log=None): + finder = FileFinder(sdk) + + # TODO: handle running on ARM. +- is_64bits = sys.maxsize > 2 ** 32 ++ is_64bits = sys.maxsize > 2**32 + arch = "x64" if is_64bits else "x86" + + for p, f in finder.find( +@@ -122,68 +122,19 @@ def get_embedded_version(version, buildid): + the dotted quad to be identically 0, so we enforce that here. + """ + +- # It's irritating to roll our own version parsing, but the tree doesn't seem +- # to contain exactly what we need at this time. +- version = version.rsplit("esr", 1)[0] +- alpha = "a" in version +- +- tail = None +- if "a" in version: +- head, tail = version.rsplit("a", 1) +- if tail != "1": +- # Disallow anything beyond `X.Ya1`. +- raise ValueError( +- f"Alpha version not of the form X.0a1 is not supported: {version}" +- ) +- tail = buildid +- elif "b" in version: +- head, tail = version.rsplit("b", 1) +- if len(head.split(".")) > 2: +- raise ValueError( +- f"Beta version not of the form X.YbZ is not supported: {version}" +- ) +- elif "rc" in version: +- head, tail = version.rsplit("rc", 1) +- if len(head.split(".")) > 2: +- raise ValueError( +- f"Release candidate version not of the form X.YrcZ is not supported: {version}" +- ) +- else: +- head = version +- +- components = (head.split(".") + ["0", "0", "0"])[:3] +- if tail: +- components[2] = tail +- +- if alpha: +- # Nightly builds are all `X.0a1`, which isn't helpful. Include build ID +- # to disambiguate. But each part of the dotted quad is 16 bits, so we +- # have to squash. +- if components[1] != "0": +- # Disallow anything beyond `X.0a1`. +- raise ValueError( +- f"Alpha version not of the form X.0a1 is not supported: {version}" +- ) ++ [ver, rel] = version.split("-") + +- # Last two digits only to save space. Nightly builds in 2066 and 2099 +- # will be impacted, but future us can deal with that. +- year = buildid[2:4] +- if year[0] == "0": +- # Avoid leading zero, like `.0YMm`. +- year = year[1:] +- month = buildid[4:6] +- day = buildid[6:8] +- if day[0] == "0": +- # Avoid leading zero, like `.0DHh`. +- day = day[1:] +- hour = buildid[8:10] ++ ver_parts = ver.split(".") ++ ver_parts += ["0"] * (3 - len(ver_parts)) + +- components[1] = "".join((year, month)) +- components[2] = "".join((day, hour)) +- +- version = "{}.{}.{}.0".format(*components) +- +- return version ++ return ".".join( ++ [ ++ ver_parts[0], ++ str(100 * int(ver_parts[1]) + int(ver_parts[2])), ++ str(int(rel) * 100), ++ "0", ++ ] ++ ) + + + def get_appconstants_sys_mjs_values(finder, *args): +@@ -417,12 +368,7 @@ def repackage_msix( + ) + + first = next(values) +- if not displayname: +- displayname = "Mozilla {}".format(first) +- +- if channel == "beta": +- # Release (official) and Beta share branding. Differentiate Beta a little bit. +- displayname += " Beta" ++ displayname = displayname or first + + second = next(values) + vendor = vendor or second diff --git a/themes/browser/branding/librewolf/msix/Assets/Document44x44.png b/themes/browser/branding/librewolf/msix/Assets/Document44x44.png new file mode 100644 index 0000000..50b1ecf Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/Document44x44.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/LargeTile.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/LargeTile.scale-200.png new file mode 100644 index 0000000..474f5d2 Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/LargeTile.scale-200.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/SmallTile.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/SmallTile.scale-200.png new file mode 100644 index 0000000..25ac51e Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/SmallTile.scale-200.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/Square150x150Logo.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..5663b57 Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/Square150x150Logo.scale-200.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..c42e523 Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.scale-200.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.targetsize-256.png b/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.targetsize-256.png new file mode 100644 index 0000000..3221b40 Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/Square44x44Logo.targetsize-256.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/StoreLogo.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/StoreLogo.scale-200.png new file mode 100644 index 0000000..c0e5394 Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/StoreLogo.scale-200.png differ diff --git a/themes/browser/branding/librewolf/msix/Assets/Wide310x150Logo.scale-200.png b/themes/browser/branding/librewolf/msix/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..de2f42a Binary files /dev/null and b/themes/browser/branding/librewolf/msix/Assets/Wide310x150Logo.scale-200.png differ