diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index df47807b44b7..7e911dc85a88 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -516,8 +516,7 @@ in ergochat = runTest ./ergochat.nix; esphome = runTest ./esphome.nix; etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; }; - etcd = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix; - etcd-cluster = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix; + etcd = import ./etcd/default.nix { inherit pkgs runTest; }; etebase-server = runTest ./etebase-server.nix; etesync-dav = runTest ./etesync-dav.nix; evcc = runTest ./evcc.nix; diff --git a/nixos/tests/etcd/default.nix b/nixos/tests/etcd/default.nix new file mode 100644 index 000000000000..96add9670a95 --- /dev/null +++ b/nixos/tests/etcd/default.nix @@ -0,0 +1,43 @@ +{ + pkgs, + runTest, + ... +}: + +let + testEtcd = + path: oPkgs: + runTest ( + let + etcdPkgs = pkgs // oPkgs; + in + pkgs.lib.recursiveUpdate { + meta = { + maintainers = etcdPkgs.etcd.meta.maintainers; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; + }; + } (import path etcdPkgs) + ); + testEtcdPkg = pkg: path: testEtcd path { etcd = pkg; }; + testEtcd_3_4 = testEtcdPkg pkgs.etcd_3_4; + testEtcd_3_5 = testEtcdPkg pkgs.etcd_3_5; + testEtcd_3_6 = testEtcdPkg pkgs.etcd_3_6; +in + +{ + "3_4" = { + multi-node = testEtcd_3_4 ./multi-node.nix; + single-node = testEtcd_3_4 ./single-node.nix; + }; + "3_5" = { + multi-node = testEtcd_3_5 ./multi-node.nix; + single-node = testEtcd_3_5 ./single-node.nix; + }; + "3_6" = { + multi-node = testEtcd_3_6 ./multi-node.nix; + single-node = testEtcd_3_6 ./single-node.nix; + }; +} diff --git a/nixos/tests/etcd/etcd-cluster.nix b/nixos/tests/etcd/multi-node.nix similarity index 97% rename from nixos/tests/etcd/etcd-cluster.nix rename to nixos/tests/etcd/multi-node.nix index aa66c8498356..0ce36d0f14b6 100644 --- a/nixos/tests/etcd/etcd-cluster.nix +++ b/nixos/tests/etcd/multi-node.nix @@ -1,6 +1,5 @@ -# This test runs simple etcd cluster +{ pkgs, etcd, ... }: -{ lib, pkgs, ... }: let runWithOpenSSL = file: cmd: @@ -77,6 +76,7 @@ let services = { etcd = { enable = true; + package = etcd; keyFile = etcd_key; certFile = etcd_cert; trustedCaFile = ca_pem; @@ -99,10 +99,9 @@ let networking.firewall.allowedTCPPorts = [ 2380 ]; }; in -{ - name = "etcd-cluster"; - meta.maintainers = with lib.maintainers; [ offline ]; +{ + name = "etcd-multi-node"; nodes = { node1 = @@ -170,4 +169,5 @@ in node1.succeed("etcdctl put /foo/bar 'Hello degraded world'") node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'") ''; + } diff --git a/nixos/tests/etcd/etcd.nix b/nixos/tests/etcd/single-node.nix similarity index 74% rename from nixos/tests/etcd/etcd.nix rename to nixos/tests/etcd/single-node.nix index 9c423ef35185..0d2bdea166d9 100644 --- a/nixos/tests/etcd/etcd.nix +++ b/nixos/tests/etcd/single-node.nix @@ -1,11 +1,13 @@ -# This test runs simple etcd node -{ lib, ... }: +{ etcd, ... }: + { - name = "etcd"; - meta.maintainers = with lib.maintainers; [ offline ]; + name = "etcd-single-node"; nodes.node = { - services.etcd.enable = true; + services.etcd = { + enable = true; + package = etcd; + }; }; testScript = '' @@ -19,4 +21,5 @@ node.succeed("etcdctl put /foo/bar 'Hello world'") node.succeed("etcdctl get /foo/bar | grep 'Hello world'") ''; + } diff --git a/pkgs/servers/etcd/README.md b/pkgs/by-name/et/etcd/README.md similarity index 100% rename from pkgs/servers/etcd/README.md rename to pkgs/by-name/et/etcd/README.md diff --git a/pkgs/by-name/et/etcd/package.nix b/pkgs/by-name/et/etcd/package.nix new file mode 100644 index 000000000000..1d70cbf0fd3b --- /dev/null +++ b/pkgs/by-name/et/etcd/package.nix @@ -0,0 +1,3 @@ +{ etcd_3_5 }: + +etcd_3_5 diff --git a/pkgs/by-name/et/etcd_3_4/package.nix b/pkgs/by-name/et/etcd_3_4/package.nix index 19e6a6c62411..ac404468b339 100644 --- a/pkgs/by-name/et/etcd_3_4/package.nix +++ b/pkgs/by-name/et/etcd_3_4/package.nix @@ -1,22 +1,23 @@ { lib, - buildGoModule, + buildGo124Module, fetchFromGitHub, + nixosTests, }: -buildGoModule rec { +buildGo124Module rec { pname = "etcd"; - version = "3.4.37"; + version = "3.4.38"; src = fetchFromGitHub { owner = "etcd-io"; repo = "etcd"; rev = "v${version}"; - hash = "sha256-PZ+8hlxSwayR1yvjHmStMDur9e1uc2s+YB8qdz+42mA="; + hash = "sha256-+fRmz52ZqQTL8JJmSsufoVJP/FGHez9LliEwGsoCE7s="; }; proxyVendor = true; - vendorHash = "sha256-VeB0A+freNwgETQMIokiOPWovGq1FANUexnzxVg2aRA="; + vendorHash = "sha256-CqeSRyWDw1nCKlAI46iJXT5XjI3elxufx87QIlHwp1w="; preBuild = '' go mod tidy @@ -36,6 +37,8 @@ buildGoModule rec { install -Dm755 bin/* bin/functional/cmd/* -t $out/bin ''; + passthru.tests = nixosTests.etcd."3_4"; + meta = { description = "Distributed reliable key-value store for the most critical data of a distributed system"; downloadPage = "https://github.com/etcd-io/etcd/"; diff --git a/pkgs/servers/etcd/3_5/default.nix b/pkgs/by-name/et/etcd_3_5/package.nix similarity index 95% rename from pkgs/servers/etcd/3_5/default.nix rename to pkgs/by-name/et/etcd_3_5/package.nix index 5ca80ba041c5..b5b67dc32c4b 100644 --- a/pkgs/servers/etcd/3_5/default.nix +++ b/pkgs/by-name/et/etcd_3_5/package.nix @@ -101,11 +101,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - - tests = { - inherit (nixosTests) etcd etcd-cluster; - k3s = k3s.passthru.tests.etcd; - }; + tests = nixosTests.etcd."3_5"; updateScript = ./update.sh; }; diff --git a/pkgs/servers/etcd/3_5/update.sh b/pkgs/by-name/et/etcd_3_5/update.sh similarity index 95% rename from pkgs/servers/etcd/3_5/update.sh rename to pkgs/by-name/et/etcd_3_5/update.sh index dc428420cbc9..7cc2632205fb 100755 --- a/pkgs/servers/etcd/3_5/update.sh +++ b/pkgs/by-name/et/etcd_3_5/update.sh @@ -30,7 +30,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then ETCD_SRC_HASH=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $ETCD_SRC_HASH) setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/default.nix" + sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/package.nix" } setKV version $LATEST_VERSION @@ -63,7 +63,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then # `git` flag here is to be used by local maintainers to speed up the bump process if [ $# -eq 1 ] && [ "$1" = "git" ]; then git switch -c "package-$ETCD_PKG_NAME-$LATEST_VERSION" - git add "$ETCD_PATH"/default.nix + git add "$ETCD_PATH"/package.nix git commit -m "$ETCD_PKG_NAME: $OLD_VERSION -> $LATEST_VERSION Release: https://github.com/etcd-io/etcd/releases/tag/$LATEST_TAG" diff --git a/pkgs/by-name/et/etcd_3_6/package.nix b/pkgs/by-name/et/etcd_3_6/package.nix index c7f75ac9d091..49a2ad7f92c1 100644 --- a/pkgs/by-name/et/etcd_3_6/package.nix +++ b/pkgs/by-name/et/etcd_3_6/package.nix @@ -1,8 +1,7 @@ { applyPatches, - buildGoModule, + buildGo124Module, fetchFromGitHub, - fetchpatch, installShellFiles, k3s, lib, @@ -12,11 +11,11 @@ }: let - version = "3.6.4"; - etcdSrcHash = "sha256-otz+06cOD2MVnMZWKId1GN+MeZfnDbdudiYfVCKdzuo="; - etcdCtlVendorHash = "sha256-kTH+s/SY+xwo6kt6iPJ7XDhin0jPk0FBr0eOe/717bE="; - etcdUtlVendorHash = "sha256-P0yx9YMMD9vT7N6LOlo26EAOi+Dj33p3ZjAYEoaL19A="; - etcdServerVendorHash = "sha256-kgbCT1JxI98W89veCItB7ZfW4d9D3/Ip3tOuFKEX9v4="; + version = "3.6.5"; + etcdSrcHash = "sha256-d0Ujg9ynnnSW0PYYYrNEmPtLnYW2HcCl+zcVo8ACiS0="; + etcdCtlVendorHash = "sha256-5r3Q+AfWp23tzbYQoD1hXEzRttJrUUKQSpcEV3GIlOE="; + etcdUtlVendorHash = "sha256-funO7EEJs28w4sk4sHVA/KR1TiHumVKNs0Gn/xFl4ig="; + etcdServerVendorHash = "sha256-OtWpX5A+kyQej2bueTqmNf62oKmXGQzjexzXlK/XJms="; src = applyPatches { src = fetchFromGitHub { @@ -25,12 +24,6 @@ let tag = "v${version}"; hash = etcdSrcHash; }; - patches = [ - (fetchpatch { - url = "https://github.com/etcd-io/etcd/commit/31650ab0c8df43af05fc4c13b48ffee59271eec7.patch"; - hash = "sha256-Q94HOLFx2fnb61wMQsAUT4sIBXfxXqW9YEayukQXX18="; - }) - ]; }; env = { @@ -46,7 +39,7 @@ let platforms = lib.platforms.darwin ++ lib.platforms.linux; }; - etcdserver = buildGoModule { + etcdserver = buildGo124Module { pname = "etcdserver"; inherit @@ -73,7 +66,7 @@ let ldflags = [ "-X go.etcd.io/etcd/api/v3/version.GitSHA=GitNotFound" ]; }; - etcdutl = buildGoModule { + etcdutl = buildGo124Module { pname = "etcdutl"; inherit @@ -99,7 +92,7 @@ let ''; }; - etcdctl = buildGoModule { + etcdctl = buildGo124Module { pname = "etcdctl"; inherit @@ -132,11 +125,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - # Fix-Me: Tests for etcd 3.6 needs work. - # tests = { - # inherit (nixosTests) etcd etcd-cluster; - # k3s = k3s.passthru.tests.etcd; - # }; + tests = nixosTests.etcd."3_6"; updateScript = ./update.sh; }; diff --git a/pkgs/by-name/et/etcd_3_6/update.sh b/pkgs/by-name/et/etcd_3_6/update.sh index 1330f88d9085..8bcc05d986ca 100755 --- a/pkgs/by-name/et/etcd_3_6/update.sh +++ b/pkgs/by-name/et/etcd_3_6/update.sh @@ -30,7 +30,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then ETCD_SRC_HASH=$(nix hash to-sri --type sha256 $ETCD_SRC_HASH) setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/default.nix" + sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "$ETCD_PATH/package.nix" } setKV version $LATEST_VERSION @@ -63,7 +63,7 @@ if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then # `git` flag here is to be used by local maintainers to speed up the bump process if [ $# -eq 1 ] && [ "$1" = "git" ]; then git switch -c "package-$ETCD_PKG_NAME-$LATEST_VERSION" - git add "$ETCD_PATH"/default.nix + git add "$ETCD_PATH"/package.nix git commit -m "$ETCD_PKG_NAME: $OLD_VERSION -> $LATEST_VERSION Release: https://github.com/etcd-io/etcd/releases/tag/$LATEST_TAG" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 911fdc7cdb23..c0c2a98cfbdd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9241,9 +9241,6 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; - etcd = etcd_3_5; - etcd_3_5 = callPackage ../servers/etcd/3_5 { }; - prosody = callPackage ../servers/xmpp/prosody { withExtraLibs = [ ]; withExtraLuaPackages = _: [ ];