lol

Merge pull request #197238 from NixOS/gnome

GNOME: 43.0 → 43.1

authored by

Jan Tojnar and committed by
GitHub
dd21d0b0 0ad1d02c

+193 -88
+2 -2
pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
··· 18 18 19 19 stdenv.mkDerivation rec { 20 20 pname = "evolution-ews"; 21 - version = "3.46.0"; 21 + version = "3.46.1"; 22 22 23 23 src = fetchurl { 24 24 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 25 - sha256 = "vZe6IFzEW60SmXvuE0ii+R2LAtcUWD159PrheU2sG4A="; 25 + sha256 = "p5Jp7wnoqAuo8My8ZDMl0rsFc0158G8x8lAehWfLjb0="; 26 26 }; 27 27 28 28 nativeBuildInputs = [
+2 -2
pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
··· 44 44 45 45 stdenv.mkDerivation rec { 46 46 pname = "evolution"; 47 - version = "3.46.0"; 47 + version = "3.46.1"; 48 48 49 49 src = fetchurl { 50 50 url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 51 - sha256 = "4J6Sdrxrmr8NrTpOgT7qHQJfT2qvH6w7ew+IiVdCkT8="; 51 + sha256 = "GshFg+0sr4l7B06Z+TVCrRRG//Cs+rhtXmeeAzrgLIY="; 52 52 }; 53 53 54 54 nativeBuildInputs = [
+2 -2
pkgs/desktops/gnome/apps/gnome-calendar/default.nix
··· 22 22 23 23 stdenv.mkDerivation rec { 24 24 pname = "gnome-calendar"; 25 - version = "43.0"; 25 + version = "43.1"; 26 26 27 27 src = fetchurl { 28 28 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 29 - sha256 = "CeXA+TYPP4Vt6qfA2zD12rAVEYDfQYOAfGzzYCmS9cw="; 29 + sha256 = "r6X8ZuL2kVU8x9UX2yNjz/LWLNG130VeX09xMxOdIfI="; 30 30 }; 31 31 32 32 nativeBuildInputs = [
+2 -2
pkgs/desktops/gnome/apps/gnome-maps/default.nix
··· 27 27 28 28 stdenv.mkDerivation rec { 29 29 pname = "gnome-maps"; 30 - version = "43.0"; 30 + version = "43.1"; 31 31 32 32 src = fetchurl { 33 33 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 34 - sha256 = "sha256-CGjPz7eMOiesW+YM2E0wuz08KMiFqY+qCeN/o6UyNOQ="; 34 + sha256 = "sha256-H3UaNb1YmteT9bFBNfKT5OxtSywwcz/sdgxofY8UMSY="; 35 35 }; 36 36 37 37 doCheck = true;
+2 -2
pkgs/desktops/gnome/core/eog/default.nix
··· 30 30 31 31 stdenv.mkDerivation rec { 32 32 pname = "eog"; 33 - version = "43.0"; 33 + version = "43.1"; 34 34 35 35 outputs = [ "out" "dev" "devdoc" ]; 36 36 37 37 src = fetchurl { 38 38 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 39 - sha256 = "sha256-pSovPrGju1ADijNikCvHlRY+GphnY+6C0gQk566EVG8="; 39 + sha256 = "sha256-/tef88oZusYvJxVcm91p7vh1hwuXHm3LCqOMCT0TGXE="; 40 40 }; 41 41 42 42 patches = [
+2 -2
pkgs/desktops/gnome/core/evolution-data-server/default.nix
··· 52 52 53 53 stdenv.mkDerivation rec { 54 54 pname = "evolution-data-server"; 55 - version = "3.46.0"; 55 + version = "3.46.1"; 56 56 57 57 outputs = [ "out" "dev" ]; 58 58 59 59 src = fetchurl { 60 60 url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 61 - sha256 = "5fooCVoYP3q1qSjjWoKDebSB3e+D7Ux7UaLjxK71zas="; 61 + sha256 = "xV5yz/QZC0LmPdbqvG3OSKGh95BAUx8a9tUcHvpKpus="; 62 62 }; 63 63 64 64 patches = [
+2 -2
pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
··· 298 298 G_CALLBACK (mi_user_headers_settings_changed_cb), NULL); 299 299 G_UNLOCK (mi_user_headers); 300 300 diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c 301 - index 2ed68cf..5dad98f 100644 301 + index e5645e2..170a0be 100644 302 302 --- a/src/camel/providers/imapx/camel-imapx-server.c 303 303 +++ b/src/camel/providers/imapx/camel-imapx-server.c 304 304 @@ -5573,7 +5573,18 @@ camel_imapx_server_skip_old_flags_update (CamelStore *store) ··· 442 442 g_object_unref (settings); 443 443 444 444 diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c 445 - index 5a21872..a56d589 100644 445 + index 7783781..6fb22cb 100644 446 446 --- a/src/libedataserver/e-oauth2-service.c 447 447 +++ b/src/libedataserver/e-oauth2-service.c 448 448 @@ -90,7 +90,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
+2 -2
pkgs/desktops/gnome/core/gnome-control-center/default.nix
··· 64 64 65 65 stdenv.mkDerivation rec { 66 66 pname = "gnome-control-center"; 67 - version = "43.0"; 67 + version = "43.1"; 68 68 69 69 src = fetchurl { 70 70 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 71 - sha256 = "sha256-mIyTNZLL3E5/DbqakyYuYXtzniWSeqFuF3lgx1TjHEg="; 71 + sha256 = "sha256-6YvGt4Sv0E8pfbXo5sWZEOLNCQMycQd08m3I3omvT8c="; 72 72 }; 73 73 74 74 patches = [
+2 -2
pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
··· 38 38 39 39 stdenv.mkDerivation rec { 40 40 pname = "gnome-initial-setup"; 41 - version = "43.0"; 41 + version = "43.1"; 42 42 43 43 src = fetchurl { 44 44 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 45 - sha256 = "Ap7LgZM/QE+k9spVvuR7A++JDoRGK/FF9u4JR34aOVU="; 45 + sha256 = "gQTnBD75uY4rULKrOP2gX9BDf4xVVp+haDC3vle+DfY="; 46 46 }; 47 47 48 48 patches = [
+2 -2
pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
··· 30 30 31 31 stdenv.mkDerivation rec { 32 32 pname = "gnome-remote-desktop"; 33 - version = "43.0"; 33 + version = "43.1"; 34 34 35 35 src = fetchurl { 36 36 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 37 - hash = "sha256-NrWdIeyuRLllzZHmynwMAJ1gcOwxyEt3wERZXddSeAs="; 37 + hash = "sha256-vYR8PKdzYJlTNEYs1GnkWhJHnxHAxI6WUCjtXLgHpbI="; 38 38 }; 39 39 40 40 nativeBuildInputs = [
+2 -2
pkgs/desktops/gnome/core/gnome-software/default.nix
··· 45 45 46 46 stdenv.mkDerivation rec { 47 47 pname = "gnome-software"; 48 - version = "43.0"; 48 + version = "43.1"; 49 49 50 50 src = fetchurl { 51 51 url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz"; 52 - sha256 = "8WUuquJ0pqhwlQAENRZGUgDMdVlNzM2bShWZsKxJ5o8="; 52 + sha256 = "wmdWie53vhHY/waq+kFsTK/EjTgRVTpz7PdkvWr/RHA="; 53 53 }; 54 54 55 55 patches = [
+109 -34
pkgs/desktops/gnome/find-latest-version.py
··· 3 3 import json 4 4 import requests 5 5 import sys 6 + from enum import Enum 6 7 from libversion import Version 7 - from typing import Optional 8 + from typing import ( 9 + Callable, 10 + Iterable, 11 + List, 12 + NamedTuple, 13 + Optional, 14 + Tuple, 15 + TypeVar, 16 + Type, 17 + cast, 18 + ) 8 19 9 20 10 - def version_to_list(version): 21 + EnumValue = TypeVar("EnumValue", bound=Enum) 22 + 23 + 24 + def enum_to_arg(enum: Enum) -> str: 25 + return enum.name.lower().replace("_", "-") 26 + 27 + 28 + def arg_to_enum(enum_meta: Type[EnumValue], name: str) -> EnumValue: 29 + return enum_meta[name.upper().replace("-", "_")] 30 + 31 + 32 + def enum_to_arg_choices(enum_meta: Type[EnumValue]) -> Tuple[str, ...]: 33 + return tuple(enum_to_arg(v) for v in cast(Iterable[EnumValue], enum_meta)) 34 + 35 + 36 + class Stability(Enum): 37 + STABLE = "stable" 38 + UNSTABLE = "unstable" 39 + 40 + 41 + VersionPolicy = Callable[[Version], bool] 42 + VersionPredicate = Callable[[Version, Stability], bool] 43 + 44 + 45 + class VersionPredicateHolder(NamedTuple): 46 + function: VersionPredicate 47 + 48 + 49 + def version_to_list(version: str) -> List[int]: 11 50 return list(map(int, version.split("."))) 12 51 13 52 14 - def odd_unstable(version: Version, selected): 53 + def odd_unstable(version: Version, selected: Stability) -> bool: 15 54 try: 16 - version = version_to_list(version.value) 55 + version_parts = version_to_list(version.value) 17 56 except: 18 57 # Failing to parse as a list of numbers likely means the version contains a string tag like “beta”, therefore it is not a stable release. 19 - return selected != "stable" 58 + return selected != Stability.STABLE 20 59 21 - if len(version) < 2: 60 + if len(version_parts) < 2: 22 61 return True 23 62 24 - even = version[1] % 2 == 0 25 - prerelease = (version[1] >= 90 and version[1] < 100) or (version[1] >= 900 and version[1] < 1000) 63 + even = version_parts[1] % 2 == 0 64 + prerelease = (version_parts[1] >= 90 and version_parts[1] < 100) or (version_parts[1] >= 900 and version_parts[1] < 1000) 26 65 stable = even and not prerelease 27 - if selected == "stable": 66 + if selected == Stability.STABLE: 28 67 return stable 29 68 else: 30 69 return True 31 70 32 71 33 - def tagged(version: Version, selected): 34 - if selected == "stable": 72 + def tagged(version: Version, selected: Stability) -> bool: 73 + if selected == Stability.STABLE: 35 74 return not ("alpha" in version.value or "beta" in version.value or "rc" in version.value) 36 75 else: 37 76 return True 38 77 39 78 40 - def no_policy(version: Version, selected): 79 + def no_policy(version: Version, selected: Stability) -> bool: 41 80 return True 42 81 43 82 44 - version_policies = { 45 - "odd-unstable": odd_unstable, 46 - "tagged": tagged, 47 - "none": no_policy, 48 - } 83 + class VersionPolicyKind(Enum): 84 + # HACK: Using function as values directly would make Enum 85 + # think they are methods and skip them. 86 + ODD_UNSTABLE = VersionPredicateHolder(odd_unstable) 87 + TAGGED = VersionPredicateHolder(tagged) 88 + NONE = VersionPredicateHolder(no_policy) 49 89 50 90 51 - def make_version_policy(version_predicate, selected, upper_bound: Optional[Version]): 91 + def make_version_policy( 92 + version_policy_kind: VersionPolicyKind, 93 + selected: Stability, 94 + upper_bound: Optional[Version], 95 + ) -> VersionPolicy: 96 + version_predicate = version_policy_kind.value.function 52 97 if not upper_bound: 53 98 return lambda version: version_predicate(version, selected) 54 99 else: 55 100 return lambda version: version_predicate(version, selected) and version < upper_bound 56 101 57 102 58 - parser = argparse.ArgumentParser(description="Find latest version for a GNOME package by crawling their release server.") 59 - parser.add_argument("package-name", help="Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.") 60 - parser.add_argument("version-policy", help="Policy determining which versions are considered stable. GNOME packages usually denote stability by alpha/beta/rc tag in the version. For older packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="tagged") 61 - parser.add_argument("requested-release", help="Most of the time, we will want to update to stable version but sometimes it is useful to test.", choices=["stable", "unstable"], nargs="?", default="stable") 62 - parser.add_argument("--upper-bound", dest="upper-bound", help="Only look for versions older than this one (useful for pinning dependencies).") 103 + def find_versions(package_name: str, version_policy: VersionPolicy) -> List[Version]: 104 + # The structure of cache.json: https://gitlab.gnome.org/Infrastructure/sysadmin-bin/blob/master/ftpadmin#L762 105 + cache = json.loads(requests.get(f"https://ftp.gnome.org/pub/GNOME/sources/{package_name}/cache.json").text) 106 + if type(cache) != list or cache[0] != 4: 107 + raise Exception("Unknown format of cache.json file.") 108 + 109 + versions: Iterable[Version] = map(Version, cache[2][package_name]) 110 + versions = sorted(filter(version_policy, versions)) 111 + 112 + return versions 113 + 114 + 115 + parser = argparse.ArgumentParser( 116 + description="Find latest version for a GNOME package by crawling their release server.", 117 + ) 118 + parser.add_argument( 119 + "package-name", 120 + help="Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.", 121 + ) 122 + parser.add_argument( 123 + "version-policy", 124 + help="Policy determining which versions are considered stable. GNOME packages usually denote stability by alpha/beta/rc tag in the version. For older packages, odd minor versions are unstable but there are exceptions.", 125 + choices=enum_to_arg_choices(VersionPolicyKind), 126 + nargs="?", 127 + default=enum_to_arg(VersionPolicyKind.TAGGED), 128 + ) 129 + parser.add_argument( 130 + "requested-release", 131 + help="Most of the time, we will want to update to stable version but sometimes it is useful to test.", 132 + choices=enum_to_arg_choices(Stability), 133 + nargs="?", 134 + default=enum_to_arg(Stability.STABLE), 135 + ) 136 + parser.add_argument( 137 + "--upper-bound", 138 + dest="upper-bound", 139 + help="Only look for versions older than this one (useful for pinning dependencies).", 140 + ) 63 141 64 142 65 143 if __name__ == "__main__": 66 144 args = parser.parse_args() 67 145 68 146 package_name = getattr(args, "package-name") 69 - requested_release = getattr(args, "requested-release") 147 + requested_release = arg_to_enum(Stability, getattr(args, "requested-release")) 70 148 upper_bound = getattr(args, "upper-bound") 71 - if upper_bound: 149 + if upper_bound is not None: 72 150 upper_bound = Version(upper_bound) 73 - version_predicate = version_policies[getattr(args, "version-policy")] 74 - version_policy = make_version_policy(version_predicate, requested_release, upper_bound) 151 + version_policy_kind = arg_to_enum(VersionPolicyKind, getattr(args, "version-policy")) 152 + version_policy = make_version_policy(version_policy_kind, requested_release, upper_bound) 75 153 76 - # The structure of cache.json: https://gitlab.gnome.org/Infrastructure/sysadmin-bin/blob/master/ftpadmin#L762 77 - cache = json.loads(requests.get(f"https://ftp.gnome.org/pub/GNOME/sources/{package_name}/cache.json").text) 78 - if type(cache) != list or cache[0] != 4: 79 - print("Unknown format of cache.json file.", file=sys.stderr) 154 + try: 155 + versions = find_versions(package_name, version_policy) 156 + except Exception as error: 157 + print(error, file=sys.stderr) 80 158 sys.exit(1) 81 - 82 - versions = map(Version, cache[2][package_name]) 83 - versions = sorted(filter(version_policy, versions)) 84 159 85 160 if len(versions) == 0: 86 161 print("No versions matched.", file=sys.stderr)
+54 -16
pkgs/desktops/gnome/update.nix
··· 1 - { stdenv, bash, pkgs, lib, writeScript, python3, common-updater-scripts }: 1 + { stdenv, pkgs, lib, writeScript, python3, common-updater-scripts }: 2 2 { packageName, attrPath ? packageName, versionPolicy ? "tagged", freeze ? false }: 3 3 4 4 let ··· 20 20 else 21 21 throw "“freeze” argument needs to be either a boolean, or a version string."; 22 22 updateScript = writeScript "gnome-update-script" '' 23 - #!${bash}/bin/bash 24 - set -o errexit 25 - attr_path="$1" 26 - package_name="$2" 27 - package_version="$3" 28 - version_policy="$4" 23 + #!${python}/bin/python 24 + import json 25 + import os 26 + import subprocess 27 + import sys 28 + from libversion import Version 29 29 30 - flvFlags=("$package_name" "$version_policy" "''${GNOME_UPDATE_STABILITY:-stable}") 30 + _, attr_path, package_name, package_version, version_policy, *remaining_args = sys.argv 31 31 32 - if (( $# >= 5 )); then 33 - upper_bound="$5" 34 - flvFlags+=("--upper-bound=$upper_bound") 35 - fi 32 + flv_args = [ 33 + package_name, 34 + version_policy, 35 + os.environ.get("GNOME_UPDATE_STABILITY", "stable"), 36 + ] 36 37 37 - PATH=${lib.makeBinPath [ common-updater-scripts python ]} 38 - latest_tag=$(python "${./find-latest-version.py}" "''${flvFlags[@]}") 39 - update-source-version "$attr_path" "$latest_tag" 40 - echo '[ { "commitBody": "https://gitlab.gnome.org/GNOME/'$package_name'/-/compare/'$package_version'...'$latest_tag'" } ]' 38 + match remaining_args: 39 + case []: 40 + pass 41 + case [upper_bound]: 42 + flv_args.append(f"--upper-bound={upper_bound}") 43 + case other: 44 + print("gnome-update-script: Received too many arguments.", file=sys.stderr) 45 + sys.exit(1) 46 + 47 + latest_tag = subprocess.check_output( 48 + [ 49 + "${python}/bin/python", 50 + "${./find-latest-version.py}", 51 + *flv_args, 52 + ], 53 + encoding="utf-8", 54 + ) 55 + 56 + if Version(latest_tag) <= Version(package_version): 57 + # No newer updates found. 58 + print(json.dumps([])) 59 + sys.exit(0) 60 + 61 + latest_tag = latest_tag.strip() 62 + subprocess.run( 63 + [ 64 + "${common-updater-scripts}/bin/update-source-version", 65 + attr_path, 66 + latest_tag, 67 + ], 68 + check=True, 69 + ) 70 + 71 + report = [ 72 + { 73 + "attrPath": attr_path, 74 + "commitBody": f"https://gitlab.gnome.org/GNOME/{package_name}/-/compare/{package_version}...{latest_tag}", 75 + }, 76 + ] 77 + 78 + print(json.dumps(report)) 41 79 ''; 42 80 in { 43 81 name = "gnome-update-script";
+2 -2
pkgs/development/libraries/amtk/default.nix
··· 15 15 16 16 stdenv.mkDerivation rec { 17 17 pname = "amtk"; 18 - version = "5.5.1"; 18 + version = "5.5.2"; 19 19 20 20 outputs = [ "out" "dev" "devdoc" ]; 21 21 22 22 src = fetchurl { 23 23 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 24 - sha256 = "7Ilt0BfiwUNoUuXmCXD80IML0SFI1XzBvcDZOCa925w="; 24 + sha256 = "x33S2PVex2tQItmW5RJ82S7GqhePo+jzP1fbukXfiIY="; 25 25 }; 26 26 27 27 nativeBuildInputs = [
+2 -10
pkgs/development/libraries/gtk/4.x.nix
··· 63 63 64 64 stdenv.mkDerivation rec { 65 65 pname = "gtk4"; 66 - version = "4.8.1"; 66 + version = "4.8.2"; 67 67 68 68 outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ]; 69 69 outputBin = "dev"; ··· 75 75 76 76 src = fetchurl { 77 77 url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz"; 78 - sha256 = "XOjY3piiO9DI7KGmEJThwAm18AncvWC0XpkKjbG3Qv0="; 78 + sha256 = "hbehYLbgLq+k59OPBG+HIPq1N9P+c8AchkMzqYOmkqk="; 79 79 }; 80 80 81 81 depsBuildBuild = [ ··· 179 179 180 180 postPatch = '' 181 181 files=( 182 - build-aux/meson/post-install.py 183 182 build-aux/meson/gen-demo-header.py 184 183 demos/gtk-demo/geninclude.py 185 184 gdk/broadway/gen-c-array.py ··· 191 190 chmod +x ''${files[@]} 192 191 patchShebangs ''${files[@]} 193 192 194 - '' + 195 - # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake) 196 - # it should be a build-time dep for build 197 - # TODO: send upstream 198 - '' 199 - substituteInPlace meson.build \ 200 - --replace "'gi-docgen', ver" "'gi-docgen', native:true, ver" 201 193 ''; 202 194 203 195 preInstall = ''
+2 -2
pkgs/development/libraries/libshumate/default.nix
··· 18 18 19 19 stdenv.mkDerivation rec { 20 20 pname = "libshumate"; 21 - version = "1.0.1"; 21 + version = "1.0.2"; 22 22 23 23 outputs = [ "out" "dev" "devdoc" ]; 24 24 outputBin = "devdoc"; # demo app ··· 28 28 owner = "GNOME"; 29 29 repo = "libshumate"; 30 30 rev = version; 31 - sha256 = "fpHMfxnPnGJSfJe4kJ28+704QjjRwYddOZAB17QxXno="; 31 + sha256 = "zmPsWdTbM+T50X0BsVTn1Aw/5N6sL5hIQiRG5WSG1eg="; 32 32 }; 33 33 34 34 nativeBuildInputs = [
+2 -2
pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
··· 20 20 21 21 stdenv.mkDerivation rec { 22 22 pname = "xdg-desktop-portal-gnome"; 23 - version = "43.0"; 23 + version = "43.1"; 24 24 25 25 src = fetchurl { 26 26 url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; 27 - sha256 = "DhhnpFvKpd2yQKTP2yLdBVz4fwchC547twlJ88e+FqY="; 27 + sha256 = "Ca22bG2RU+bwXfZtqirWKl3g42Zl6dIpUXO7DdxTtM0="; 28 28 }; 29 29 30 30 nativeBuildInputs = [