summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2016-06-01 20:02:58 +0100
committerDomen Kožar <domen@dev.si>2016-06-01 21:55:31 +0100
commit3e631800d1ddc93523be4a3a6880a33dc80efb2e (patch)
tree51727b8cb4fddc0549a5b8fefe9bf4a8ce3d07fc /pkgs
parent344225ce680181f1f272559345c22d3bcbe4152e (diff)
downloadnixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar.gz
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar.bz2
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar.lz
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar.xz
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.tar.zst
nixpkgs-3e631800d1ddc93523be4a3a6880a33dc80efb2e.zip
Add hydra package and its NixOS module.
This was originally removed in d4d0e449d7b96704eeaa2570255fb41c85c49613.
The intent was not to maintain hydra expression at two places.

Nowadays we have enough devs to maintain this despite copy/pasta.

This should encourage more people to use Hydra, which is a really
great piece of software together with Nix.

Tested a deploy using https://github.com/peti/hydra-tutorial
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix142
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix12
3 files changed, 156 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
new file mode 100644
index 00000000000..510a0679527
--- /dev/null
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -0,0 +1,142 @@
+{ stdenv, nixUnstable, perlPackages, buildEnv, releaseTools, fetchFromGitHub
+, makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx
+, gitAndTools, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt
+, guile, perl, postgresql92, aws-sdk-cpp, nukeReferences, git, boehmgc
+, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
+, rpm, dpkg, cdrkit }:
+
+with stdenv;
+
+let
+  perlDeps = buildEnv {
+    name = "hydra-perl-deps";
+    paths = with perlPackages;
+      [ ModulePluggable
+        CatalystActionREST
+        CatalystAuthenticationStoreDBIxClass
+        CatalystDevel
+        CatalystDispatchTypeRegex
+        CatalystPluginAccessLog
+        CatalystPluginAuthorizationRoles
+        CatalystPluginCaptcha
+        CatalystPluginSessionStateCookie
+        CatalystPluginSessionStoreFastMmap
+        CatalystPluginStackTrace
+        CatalystPluginUnicodeEncoding
+        CatalystTraitForRequestProxyBase
+        CatalystViewDownload
+        CatalystViewJSON
+        CatalystViewTT
+        CatalystXScriptServerStarman
+        CryptRandPasswd
+        DBDPg
+        DBDSQLite
+        DataDump
+        DateTime
+        DigestSHA1
+        EmailMIME
+        EmailSender
+        FileSlurp
+        IOCompress
+        IPCRun
+        JSONXS
+        LWP
+        LWPProtocolHttps
+        NetAmazonS3
+        NetStatsd
+        PadWalker
+        Readonly
+        SQLSplitStatement
+        SetScalar
+        Starman
+        SysHostnameLong
+        TestMore
+        TextDiff
+        TextTable
+        XMLSimple
+        nixUnstable
+        git
+        boehmgc
+      ];
+  };
+in releaseTools.nixBuild rec {
+  name = "hydra-${version}";
+  version = "2016-04-15";
+
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "hydra";
+    rev = "177bf25d648092826a75369191503a3f2bb763a4";
+    sha256 = "0ngipzm2i2vz5ygfd70hh82d027snpl85r8ncn1rxlkak0g8fxsl";
+  };
+
+  buildInputs =
+    [ makeWrapper autoconf automake libtool unzip nukeReferences pkgconfig sqlite libpqxx
+      gitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
+      guile # optional, for Guile + Guix support
+      perlDeps perl nixUnstable
+      postgresql92 # for running the tests
+      (lib.overrideDerivation (aws-sdk-cpp.override {
+        apis = ["s3"];
+        customMemoryManagement = false;
+      }) (attrs: {
+        src = fetchFromGitHub {
+          owner = "edolstra";
+          repo = "aws-sdk-cpp";
+          rev = "local";
+          sha256 = "1vhgsxkhpai9a7dk38q4r239l6dsz2jvl8hii24c194lsga3g84h";
+        };
+      }))
+    ];
+
+  hydraPath = lib.makeBinPath (
+    [ libxslt sqlite subversion openssh nixUnstable coreutils findutils
+      gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
+    ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
+
+  postUnpack = ''
+    # Clean up when building from a working tree.
+    (cd $sourceRoot && (git ls-files -o --directory | xargs -r rm -rfv)) || true
+  '';
+
+  configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
+
+  preHook = ''
+    PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$PATH
+    PERL5LIB=$(pwd)/src/lib:$PERL5LIB;
+  '';
+
+  preConfigure = "autoreconf -vfi";
+
+  enableParallelBuilding = true;
+
+  preCheck = ''
+    patchShebangs .
+    export LOGNAME=${LOGNAME:-foo}
+  '';
+
+  postInstall = ''
+    mkdir -p $out/nix-support
+    for i in $out/bin/*; do
+        read -n 4 chars < $i
+        if [[ $chars =~ ELF ]]; then continue; fi
+        wrapProgram $i \
+            --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
+            --prefix PATH ':' $out/bin:$hydraPath \
+            --set HYDRA_RELEASE ${version} \
+            --set HYDRA_HOME $out/libexec/hydra \
+            --set NIX_RELEASE ${nixUnstable.name or "unknown"}
+    done
+  ''; # */
+
+  dontStrip = true;
+
+  passthru.perlDeps = perlDeps;
+
+  meta = with stdenv.lib; {
+    description = "Nix-based continuous build system";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+ }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 88bbeca6212..1091807486b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7373,6 +7373,8 @@ in
 
   hwloc = callPackage ../development/libraries/hwloc {};
 
+  hydra = callPackage ../development/tools/misc/hydra {};
+
   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
 
   hyena = callPackage ../development/libraries/hyena { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 044f1fd6c22..d6aeec53e1d 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -9444,6 +9444,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  NetStatsd = buildPerlPackage {
+    name = "Net-Statsd-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.11.tar.gz;
+      sha256 = "0f56c95846c7e65e6d32cec13ab9df65716429141f106d2dc587f1de1e09e163";
+    };
+    meta = {
+      description = "Sends statistics to the stats daemon over UDP";
+      license = "perl";
+    };
+  };
+
   NetTwitterLite = buildPerlPackage {
     name = "Net-Twitter-Lite-0.11002";
     src = fetchurl {