···1183 hehongbo
1184 lach
1185 sigmasquadron
01186 ];
1187 scope = "Maintain the Xen Project Hypervisor and the related tooling ecosystem.";
1188 shortName = "Xen Project Hypervisor";
···1183 hehongbo
1184 lach
1185 sigmasquadron
1186+ rane
1187 ];
1188 scope = "Maintain the Xen Project Hypervisor and the related tooling ecosystem.";
1189 shortName = "Xen Project Hypervisor";
+46-44
nixos/modules/services/databases/mysql.nix
···18 format = pkgs.formats.ini { listsAsDuplicateKeys = true; };
19 configFile = format.generate "my.cnf" cfg.settings;
20000000000000000021in
2223{
···378 type = lib.types.str;
379 description = "Full Galera cluster connection string. If nodeAddresses is set, this will be auto-generated, but you can override it with a custom value. Format is typically 'gcomm://node1,node2,node3' with optional parameters.";
380 example = "gcomm://10.0.0.10,10.0.0.20,10.0.0.30?gmcast.seg=1:SomePassword";
381- default =
382- if (cfg.galeraCluster.nodeAddresses == [ ]) then
383- ""
384- else
385- "gcomm://${builtins.concatStringsSep "," cfg.galeraCluster.nodeAddresses}"
386- + lib.optionalString (
387- cfg.galeraCluster.clusterPassword != ""
388- ) "?gmcast.seg=1:${cfg.galeraCluster.clusterPassword}";
389- defaultText = lib.literalExpression ''
390- if (config.services.mysql.galeraCluster.nodeAddresses == [ ]) then
391- ""
392- else
393- "gcomm://''${builtins.concatStringsSep \",\" config.services.mysql.galeraCluster.nodeAddresses}"
394- + lib.optionalString (config.services.mysql.galeraCluster.clusterPassword != "")
395- "?gmcast.seg=1:''${config.services.mysql.galeraCluster.clusterPassword}"
396- '';
397 };
398399 };
···404 ###### implementation
405406 config = lib.mkIf cfg.enable {
407- assertions = [
408- {
409- assertion = !cfg.galeraCluster.enable || isMariaDB;
410- message = "'services.mysql.galeraCluster.enable' expect services.mysql.package to be an mariadb variant";
411- }
412- {
413- assertion =
414- !cfg.galeraCluster.enable
415- || (
00416 cfg.galeraCluster.localAddress != ""
417- && (cfg.galeraCluster.nodeAddresses != [ ] || cfg.galeraCluster.clusterAddress != "")
418- );
419- message = "mariadb galera cluster is enabled but the localAddress and (nodeAddresses or clusterAddress) are not set";
420- }
421- {
422- assertion = !(cfg.galeraCluster.clusterAddress != "" && cfg.galeraCluster.clusterPassword != "");
423- message = "mariadb galera clusterPassword is set but overwritten by clusterAddress";
424- }
425- {
426- assertion =
427- !(
428- cfg.galeraCluster.enable
429- && cfg.galeraCluster.nodeAddresses != [ ]
430- && cfg.galeraCluster.clusterAddress != ""
431- );
432- message = "When services.mysql.galeraCluster.clusterAddress is set, setting services.mysql.galeraCluster.nodeAddresses is redundant and will be overwritten by clusterAddress. Choose one approach.";
433- }
434- ];
435436 services.mysql.dataDir = lib.mkDefault (
437 if lib.versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql" else "/var/mysql"
···475 wsrep_provider = "${cfg.galeraCluster.package}/lib/galera/libgalera_smm.so";
476477 wsrep_cluster_name = cfg.galeraCluster.name;
478- wsrep_cluster_address = cfg.galeraCluster.clusterAddress;
0000479480 wsrep_node_address = cfg.galeraCluster.localAddress;
481 wsrep_node_name = "${cfg.galeraCluster.localName}";
···18 format = pkgs.formats.ini { listsAsDuplicateKeys = true; };
19 configFile = format.generate "my.cnf" cfg.settings;
2021+ generateClusterAddressExpr = ''
22+ if (config.services.mysql.galeraCluster.nodeAddresses == [ ]) then
23+ ""
24+ else
25+ "gcomm://''${builtins.concatStringsSep \",\" config.services.mysql.galeraCluster.nodeAddresses}"
26+ + lib.optionalString (config.services.mysql.galeraCluster.clusterPassword != "")
27+ "?gmcast.seg=1:''${config.services.mysql.galeraCluster.clusterPassword}"
28+ '';
29+ generateClusterAddress =
30+ if (cfg.galeraCluster.nodeAddresses == [ ]) then
31+ ""
32+ else
33+ "gcomm://${builtins.concatStringsSep "," cfg.galeraCluster.nodeAddresses}"
34+ + lib.optionalString (
35+ cfg.galeraCluster.clusterPassword != ""
36+ ) "?gmcast.seg=1:${cfg.galeraCluster.clusterPassword}";
37in
3839{
···394 type = lib.types.str;
395 description = "Full Galera cluster connection string. If nodeAddresses is set, this will be auto-generated, but you can override it with a custom value. Format is typically 'gcomm://node1,node2,node3' with optional parameters.";
396 example = "gcomm://10.0.0.10,10.0.0.20,10.0.0.30?gmcast.seg=1:SomePassword";
397+ default = ""; # will be evaluate by generateClusterAddress
398+ defaultText = lib.literalExpression generateClusterAddressExpr;
00000000000000399 };
400401 };
···406 ###### implementation
407408 config = lib.mkIf cfg.enable {
409+ assertions =
410+ [
411+ {
412+ assertion = !cfg.galeraCluster.enable || isMariaDB;
413+ message = "'services.mysql.galeraCluster.enable' expect services.mysql.package to be an mariadb variant";
414+ }
415+ ]
416+ # galeraCluster options checks
417+ ++ lib.optionals cfg.galeraCluster.enable [
418+ {
419+ assertion =
420 cfg.galeraCluster.localAddress != ""
421+ && (cfg.galeraCluster.nodeAddresses != [ ] || cfg.galeraCluster.clusterAddress != "");
422+ message = "mariadb galera cluster is enabled but the localAddress and (nodeAddresses or clusterAddress) are not set";
423+ }
424+ {
425+ assertion = cfg.galeraCluster.clusterPassword == "" || cfg.galeraCluster.clusterAddress == "";
426+ message = "mariadb galera clusterPassword is set but overwritten by clusterAddress";
427+ }
428+ {
429+ assertion = cfg.galeraCluster.nodeAddresses != [ ] || cfg.galeraCluster.clusterAddress != "";
430+ message = "When services.mysql.galeraCluster.clusterAddress is set, setting services.mysql.galeraCluster.nodeAddresses is redundant and will be overwritten by clusterAddress. Choose one approach.";
431+ }
432+ ];
000000433434 services.mysql.dataDir = lib.mkDefault (
435 if lib.versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql" else "/var/mysql"
···473 wsrep_provider = "${cfg.galeraCluster.package}/lib/galera/libgalera_smm.so";
474475 wsrep_cluster_name = cfg.galeraCluster.name;
476+ wsrep_cluster_address =
477+ if (cfg.galeraCluster.clusterAddress != "") then
478+ cfg.galeraCluster.clusterAddress
479+ else
480+ generateClusterAddress;
481482 wsrep_node_address = cfg.galeraCluster.localAddress;
483 wsrep_node_name = "${cfg.galeraCluster.localName}";
+14-18
nixos/modules/services/mail/cyrus-imap.nix
···72 } cfg.imapdSettings;
73in
74{
0000000000000075 options.services.cyrus-imap = {
76 enable = mkEnableOption "Cyrus IMAP, an email, contacts and calendar server";
77 debug = mkEnableOption "debugging messages for the Cyrus master process";
···293 default = null;
294 description = "Path to the configuration file used for Cyrus.";
295 apply = v: if v != null then v else pkgs.writeText "cyrus.conf" cyrusConfig;
296- };
297-298- sslCACert = mkOption {
299- type = nullOr str;
300- default = null;
301- description = "File path which containing one or more CA certificates to use.";
302- };
303-304- sslServerCert = mkOption {
305- type = nullOr str;
306- default = null;
307- description = "File containing the global certificate used for all services (IMAP, POP3, LMTP, Sieve)";
308- };
309-310- sslServerKey = mkOption {
311- type = nullOr str;
312- default = null;
313- description = "File containing the private key belonging to the global server certificate.";
314 };
315 };
316
···72 } cfg.imapdSettings;
73in
74{
75+ imports = [
76+ (lib.mkRenamedOptionModule
77+ [ "services" "cyrus-imap" "sslServerCert" ]
78+ [ "services" "cyrus-imap" "imapdSettings" "tls_server_cert" ]
79+ )
80+ (lib.mkRenamedOptionModule
81+ [ "services" "cyrus-imap" "sslServerKey" ]
82+ [ "services" "cyrus-imap" "imapdSettings" "tls_server_key" ]
83+ )
84+ (lib.mkRenamedOptionModule
85+ [ "services" "cyrus-imap" "sslCACert" ]
86+ [ "services" "cyrus-imap" "imapdSettings" "tls_client_ca_file" ]
87+ )
88+ ];
89 options.services.cyrus-imap = {
90 enable = mkEnableOption "Cyrus IMAP, an email, contacts and calendar server";
91 debug = mkEnableOption "debugging messages for the Cyrus master process";
···307 default = null;
308 description = "Path to the configuration file used for Cyrus.";
309 apply = v: if v != null then v else pkgs.writeText "cyrus.conf" cyrusConfig;
000000000000000000310 };
311 };
312
···47 hash = "sha256-bjbW4pr04pP0TCuSdzPcV8h6LbLWMvdGSf61RL9Ju6E=";
48 })
49 ./4.4.1-newer-spdlog-fmt-compat.patch
050 ];
5152 # make sure bundled dependencies don't get in the way - install also otherwise
···47 hash = "sha256-bjbW4pr04pP0TCuSdzPcV8h6LbLWMvdGSf61RL9Ju6E=";
48 })
49 ./4.4.1-newer-spdlog-fmt-compat.patch
50+ ./resynthesis-fix-narrowing-conversion.patch
51 ];
5253 # make sure bundled dependencies don't get in the way - install also otherwise
···1+diff --git a/plugins/resynthesis/src/resynthesis.cpp b/plugins/resynthesis/src/resynthesis.cpp
2+index 7a7e404114f..f2889667af8 100644
3+--- a/plugins/resynthesis/src/resynthesis.cpp
4++++ b/plugins/resynthesis/src/resynthesis.cpp
5+@@ -1058,7 +1058,7 @@ namespace hal
6+ // delete the created directory and the contained files
7+ std::filesystem::remove_all(base_path);
8+9+- return OK(subgraph.size());
10++ return OK(static_cast<unsigned int>(subgraph.size()));
11+ }
12+13+ Result<u32> resynthesize_subgraph_of_type(Netlist* nl, const std::vector<const GateType*>& gate_types, GateLibrary* target_gl)
+2-2
pkgs/by-name/ad/adminer/package.nix
···8}:
910stdenv.mkDerivation (finalAttrs: {
11- version = "5.1.0";
12 pname = "adminer";
1314 # not using fetchFromGitHub as the git repo relies on submodules that are included in the tar file
15 src = fetchurl {
16 url = "https://github.com/vrana/adminer/releases/download/v${finalAttrs.version}/adminer-${finalAttrs.version}.zip";
17- hash = "sha256-SLu7NJoCkfEL9WhYQSHEx5QZmD6cjkBXpwEnp7d6Elo=";
18 };
1920 nativeBuildInputs = [
···8}:
910stdenv.mkDerivation (finalAttrs: {
11+ version = "5.1.1";
12 pname = "adminer";
1314 # not using fetchFromGitHub as the git repo relies on submodules that are included in the tar file
15 src = fetchurl {
16 url = "https://github.com/vrana/adminer/releases/download/v${finalAttrs.version}/adminer-${finalAttrs.version}.zip";
17+ hash = "sha256-L1akLFljp4UW/YEVLi317ijY62WN9L4g+OQ127vUP/4=";
18 };
1920 nativeBuildInputs = [
···106 homepage = "https://gitlab.com/gabmus/envision";
107 license = lib.licenses.agpl3Only;
108 mainProgram = "envision";
109+ # More maintainers needed!
110+ # envision (wrapped) requires frequent updates to the dependency list;
111+ # the more people that can help with this, the better.
112 maintainers = with lib.maintainers; [
113 pandapip1
114 Scrumplex
···42# as bootloader for various platforms and corresponding binary and helper files.
43stdenv.mkDerivation (finalAttrs: {
44 pname = "limine";
45- version = "9.2.1";
4647 # We don't use the Git source but the release tarball, as the source has a
48 # `./bootstrap` script performing network access to download resources.
49 # Packaging that in Nix is very cumbersome.
50 src = fetchurl {
51 url = "https://github.com/limine-bootloader/limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz";
52- hash = "sha256-yHr8FMOKlWlSkkmkGADC6R4PHO7tHk38gwrJS/nPvvs=";
53 };
5455 enableParallelBuilding = true;
···42# as bootloader for various platforms and corresponding binary and helper files.
43stdenv.mkDerivation (finalAttrs: {
44 pname = "limine";
45+ version = "9.2.2";
4647 # We don't use the Git source but the release tarball, as the source has a
48 # `./bootstrap` script performing network access to download resources.
49 # Packaging that in Nix is very cumbersome.
50 src = fetchurl {
51 url = "https://github.com/limine-bootloader/limine/releases/download/v${finalAttrs.version}/limine-${finalAttrs.version}.tar.gz";
52+ hash = "sha256-uD3s117/uhAeRCex78gXSM9zIByFvjbjeVygkPXwgIM=";
53 };
5455 enableParallelBuilding = true;
···67rustPlatform.buildRustPackage rec {
8 pname = "versatiles";
9- version = "0.15.3"; # When updating: Replace with current version
1011 src = fetchFromGitHub {
12 owner = "versatiles-org";
13 repo = "versatiles-rs";
14 tag = "v${version}"; # When updating: Replace with long commit hash of new version
15- hash = "sha256-xIZ/9l/wvl2Gh7vmxTGUxhZ9KIPSPLoqqC8DRN3PiQs="; # When updating: Use `lib.fakeHash` for recomputing the hash once. Run: 'nix-build -A versatiles'. Swap with new hash and proceed.
16 };
1718 useFetchCargoVendor = true;
19- cargoHash = "sha256-UkPKwXPQW/M7AgNTMx4OqTLQCc9+c+RkzcCPyEHJayw="; # When updating: Same as above
2021 __darwinAllowLocalNetworking = true;
22
···67rustPlatform.buildRustPackage rec {
8 pname = "versatiles";
9+ version = "0.15.4"; # When updating: Replace with current version
1011 src = fetchFromGitHub {
12 owner = "versatiles-org";
13 repo = "versatiles-rs";
14 tag = "v${version}"; # When updating: Replace with long commit hash of new version
15+ hash = "sha256-C9LTfRi6FRRg4yUIbs1DMtOtILTO/ItjWGnuKwUSHeU="; # When updating: Use `lib.fakeHash` for recomputing the hash once. Run: 'nix-build -A versatiles'. Swap with new hash and proceed.
16 };
1718 useFetchCargoVendor = true;
19+ cargoHash = "sha256-B9QCkAjyak2rX3waMG74KBbBVKn2veliMl7tAS41HQQ="; # When updating: Same as above
2021 __darwinAllowLocalNetworking = true;
22
···51 "-X ${p}.BuildExtra=nixpkgs"
52 ];
530000054 # several tests with networking and several that want chromium
55 doCheck = false;
56
···51 "-X ${p}.BuildExtra=nixpkgs"
52 ];
5354+ # It is required to set this to avoid a change in the
55+ # handling of sync map in go 1.24+
56+ # Upstream issue: https://github.com/authelia/authelia/issues/8980
57+ env.GOEXPERIMENT = "nosynchashtriemap";
58+59 # several tests with networking and several that want chromium
60 doCheck = false;
61
···197198 nix_2_28 = addTests "nix_2_28" self.nixComponents_2_28.nix-everything;
19900000000000000200 latest = self.nix_2_28;
201202 # The minimum Nix version supported by Nixpkgs
···234 nix_2_27 = throw "nix_2_27 has been removed. use nix_2_28.";
235236 unstable = throw "nixVersions.unstable has been removed. use nixVersions.latest or the nix flake.";
237- git = throw "nixVersions.git has been removed. use nixVersions.latest or the nix flake.";
238 }
239 )
240 )
···197198 nix_2_28 = addTests "nix_2_28" self.nixComponents_2_28.nix-everything;
199200+ nixComponents_git = nixDependencies.callPackage ./modular/packages.nix rec {
201+ version = "2.29pre20250407_${lib.substring 0 8 src.rev}";
202+ inherit (self.nix_2_24.meta) maintainers;
203+ otherSplices = generateSplicesForNixComponents "nixComponents_git";
204+ src = fetchFromGitHub {
205+ owner = "NixOS";
206+ repo = "nix";
207+ rev = "73d3159ba0b4b711c1f124a587f16e2486d685d7";
208+ hash = "sha256-9wJXUGqXIqMjNyKWJKCcxrDHM/KxDkvJMwo6S3s+WuM=";
209+ };
210+ };
211+212+ git = addTests "git" self.nixComponents_git.nix-everything;
213+214 latest = self.nix_2_28;
215216 # The minimum Nix version supported by Nixpkgs
···248 nix_2_27 = throw "nix_2_27 has been removed. use nix_2_28.";
249250 unstable = throw "nixVersions.unstable has been removed. use nixVersions.latest or the nix flake.";
0251 }
252 )
253 )