about summary refs log tree commit diff
path: root/pkgs/development/tools/misc/hydra
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2022-05-14 12:53:09 +0800
committerNick Cao <nickcao@nichi.co>2022-05-20 18:03:07 +0800
commite9e0ab3a03e74e4172d36ed332a36d72fff6aec3 (patch)
treeacee39fe5af95f5fabc38c2a16779dd2b35cc114 /pkgs/development/tools/misc/hydra
parentc319f762237ef560a5a931d9dd5fe2962112da4a (diff)
hydra_unstable: 2022-02-07 -> 2022-05-03
Diffstat (limited to 'pkgs/development/tools/misc/hydra')
-rw-r--r--pkgs/development/tools/misc/hydra/eval.patch45
-rw-r--r--pkgs/development/tools/misc/hydra/missing-std-string.patch61
-rw-r--r--pkgs/development/tools/misc/hydra/unstable.nix58
3 files changed, 39 insertions, 125 deletions
diff --git a/pkgs/development/tools/misc/hydra/eval.patch b/pkgs/development/tools/misc/hydra/eval.patch
index a1b7599cc2b47..0be856ee75706 100644
--- a/pkgs/development/tools/misc/hydra/eval.patch
+++ b/pkgs/development/tools/misc/hydra/eval.patch
@@ -1,34 +1,11 @@
---- a/src/hydra-eval-jobs/hydra-eval-jobs.cc
-+++ b/src/hydra-eval-jobs/hydra-eval-jobs.cc
-@@ -64,11 +64,11 @@
- 
- static std::string queryMetaStrings(EvalState & state, DrvInfo & drv, const string & name, const string & subAttribute)
- {
--    Strings res;
-+    std::list<std::string_view> res;
-     std::function<void(Value & v)> rec;
- 
-     rec = [&](Value & v) {
--        state.forceValue(v);
-+        state.forceValue(v, noPos);
-         if (v.type() == nString)
-             res.push_back(v.string.s);
-         else if (v.isList())
-@@ -112,7 +112,7 @@
-         callFlake(state, lockedFlake, *vFlake);
- 
-         auto vOutputs = vFlake->attrs->get(state.symbols.create("outputs"))->value;
--        state.forceValue(*vOutputs);
-+        state.forceValue(*vOutputs, noPos);
- 
-         auto aHydraJobs = vOutputs->attrs->get(state.symbols.create("hydraJobs"));
-         if (!aHydraJobs)
-@@ -191,7 +191,7 @@
-                     state.forceList(*a->value, *a->pos);
-                     for (unsigned int n = 0; n < a->value->listSize(); ++n) {
-                         auto v = a->value->listElems()[n];
--                        state.forceValue(*v);
-+                        state.forceValue(*v, noPos);
-                         if (v->type() == nString)
-                             job["namedConstituents"].push_back(state.forceStringNoCtx(*v));
-                     }
+diff --git a/src/hydra-eval-jobs/Makefile.am b/src/hydra-eval-jobs/Makefile.am
+index 7a4e9c91..90742a30 100644
+--- a/src/hydra-eval-jobs/Makefile.am
++++ b/src/hydra-eval-jobs/Makefile.am
+@@ -1,5 +1,5 @@
+ bin_PROGRAMS = hydra-eval-jobs
+ 
+ hydra_eval_jobs_SOURCES = hydra-eval-jobs.cc
+-hydra_eval_jobs_LDADD = $(NIX_LIBS)
++hydra_eval_jobs_LDADD = $(NIX_LIBS) -lnixcmd
+ hydra_eval_jobs_CXXFLAGS = $(NIX_CFLAGS) -I ../libhydra
diff --git a/pkgs/development/tools/misc/hydra/missing-std-string.patch b/pkgs/development/tools/misc/hydra/missing-std-string.patch
deleted file mode 100644
index 2010b4cf178ba..0000000000000
--- a/pkgs/development/tools/misc/hydra/missing-std-string.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/hydra-eval-jobs/hydra-eval-jobs.cc b/src/hydra-eval-jobs/hydra-eval-jobs.cc
-index acffe1d..53f2630 100644
---- a/src/hydra-eval-jobs/hydra-eval-jobs.cc
-+++ b/src/hydra-eval-jobs/hydra-eval-jobs.cc
-@@ -63,7 +63,7 @@ struct MyArgs : MixEvalArgs, MixCommonArgs
- 
- static MyArgs myArgs;
- 
--static std::string queryMetaStrings(EvalState & state, DrvInfo & drv, const string & name, const string & subAttribute)
-+static std::string queryMetaStrings(EvalState & state, DrvInfo & drv, const std::string & name, const std::string & subAttribute)
- {
-     Strings res;
-     std::function<void(Value & v)> rec;
-@@ -186,7 +186,7 @@ static void worker(
-                     for (auto & i : context)
-                         if (i.at(0) == '!') {
-                             size_t index = i.find("!", 1);
--                            job["constituents"].push_back(string(i, index + 1));
-+                            job["constituents"].push_back(std::string(i, index + 1));
-                         }
- 
-                     state.forceList(*a->value, *a->pos);
-diff --git a/src/hydra-queue-runner/hydra-queue-runner.cc b/src/hydra-queue-runner/hydra-queue-runner.cc
-index 62eb572..a957bef 100644
---- a/src/hydra-queue-runner/hydra-queue-runner.cc
-+++ b/src/hydra-queue-runner/hydra-queue-runner.cc
-@@ -87,7 +87,7 @@ void State::parseMachines(const std::string & contents)
-     }
- 
-     for (auto line : tokenizeString<Strings>(contents, "\n")) {
--        line = trim(string(line, 0, line.find('#')));
-+        line = trim(std::string(line, 0, line.find('#')));
-         auto tokens = tokenizeString<std::vector<std::string>>(line);
-         if (tokens.size() < 3) continue;
-         tokens.resize(8);
-diff --git a/src/libhydra/db.hh b/src/libhydra/db.hh
-index 7d5bdc5..00e8f40 100644
---- a/src/libhydra/db.hh
-+++ b/src/libhydra/db.hh
-@@ -18,7 +18,7 @@ struct Connection : pqxx::connection
-         std::string upper_prefix = "DBI:Pg:";
- 
-         if (hasPrefix(s, lower_prefix) || hasPrefix(s, upper_prefix)) {
--            return concatStringsSep(" ", tokenizeString<Strings>(string(s, lower_prefix.size()), ";"));
-+            return concatStringsSep(" ", tokenizeString<Strings>(std::string(s, lower_prefix.size()), ";"));
-         }
- 
-         throw Error("$HYDRA_DBI does not denote a PostgreSQL database");
-diff --git a/src/libhydra/hydra-config.hh b/src/libhydra/hydra-config.hh
-index bc989f7..1688c27 100644
---- a/src/libhydra/hydra-config.hh
-+++ b/src/libhydra/hydra-config.hh
-@@ -17,7 +17,7 @@ struct HydraConfig
-         if (hydraConfigFile && pathExists(*hydraConfigFile)) {
- 
-             for (auto line : tokenizeString<Strings>(readFile(*hydraConfigFile), "\n")) {
--                line = trim(string(line, 0, line.find('#')));
-+                line = trim(std::string(line, 0, line.find('#')));
- 
-                 auto eq = line.find('=');
-                 if (eq == std::string::npos) continue;
diff --git a/pkgs/development/tools/misc/hydra/unstable.nix b/pkgs/development/tools/misc/hydra/unstable.nix
index 36de9f886c19c..f8da11b393ce9 100644
--- a/pkgs/development/tools/misc/hydra/unstable.nix
+++ b/pkgs/development/tools/misc/hydra/unstable.nix
@@ -4,13 +4,11 @@
 , perlPackages
 , buildEnv
 , makeWrapper
-, autoconf
-, automake
 , libtool
 , unzip
 , pkg-config
 , sqlite
-, libpqxx_6
+, libpqxx
 , top-git
 , mercurial
 , darcs
@@ -21,12 +19,14 @@
 , libxslt
 , perl
 , postgresql
+, prometheus-cpp
 , nukeReferences
 , git
 , boehmgc
 , nlohmann_json
 , docbook_xsl
 , openssh
+, openldap
 , gnused
 , coreutils
 , findutils
@@ -55,7 +55,6 @@ let
     name = "hydra-perl-deps";
     paths = with perlPackages; lib.closePropagation
       [
-        ModulePluggable
         AuthenSASL
         CatalystActionREST
         CatalystAuthenticationStoreDBIxClass
@@ -114,12 +113,12 @@ let
         TermReadKey
         Test2Harness
         TestPostgreSQL
+        TestSimple13
         TextDiff
         TextTable
         UUID4Tiny
         XMLSimple
         YAML
-        nix
         nix.perl-bindings
         git
       ];
@@ -127,23 +126,20 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hydra";
-  version = "2022-02-07";
+  version = "2022-05-03";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "517dce285a851efd732affc084c7083aed2e98cd";
-    sha256 = "sha256-abWhd/VLNse3Gz7gcVbFANJLAhHV4nbOKjhVDmq/Zmg=";
+    rev = "7c133a98f8e689cdc13f8a1adaaa9cd75d039a35";
+    sha256 = "sha256-LqBLIXYssvDoSp2Hf2+vDDB9O8VSF48HAGwL8pI2WZY=";
   };
 
+  patches = [ ./eval.patch ];
+
   buildInputs =
     [
-      makeWrapper
-      libtool
-      unzip
-      nukeReferences
-      sqlite
-      libpqxx_6
+      libpqxx
       top-git
       mercurial
       darcs
@@ -152,18 +148,18 @@ stdenv.mkDerivation rec {
       openssl
       bzip2
       libxslt
+      nix
       perlDeps
       perl
-      nix
-      postgresql # for running the tests
-      nlohmann_json
-      boost
       pixz
+      boost
+      postgresql
+      nlohmann_json
+      prometheus-cpp
     ];
 
   hydraPath = lib.makeBinPath (
     [
-      sqlite
       subversion
       openssh
       nix
@@ -177,13 +173,21 @@ stdenv.mkDerivation rec {
       unzip
       git
       top-git
-      mercurial /*darcs*/
+      mercurial
+      darcs
       gnused
       breezy
     ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ]
   );
 
-  nativeBuildInputs = [ autoreconfHook pkg-config mdbook autoconf automake ];
+  nativeBuildInputs = [
+    autoreconfHook
+    makeWrapper
+    pkg-config
+    mdbook
+    unzip
+    nukeReferences
+  ];
 
   checkInputs = [
     cacert
@@ -191,21 +195,15 @@ stdenv.mkDerivation rec {
     glibcLocales
     python3
     libressl.nc
-  ];
-
-  patches = [
-    ./eval.patch
-    ./missing-std-string.patch
-    (fetchpatch {
-      url = "https://github.com/NixOS/hydra/commit/5ae26aa7604f714dcc73edcb74fe71ddc8957f6c.patch";
-      sha256 = "sha256-wkbWo8SFbT3qwVxwkKQWpQT5Jgb1Bb51yiLTlFdDN/I=";
-    })
+    openldap
   ];
 
   configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
 
   NIX_CFLAGS_COMPILE = "-pthread";
 
+  OPENLDAP_ROOT = openldap;
+
   shellHook = ''
     PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH
     PERL5LIB=$(pwd)/src/lib:$PERL5LIB;