diff options
author | Domen Kožar <domen@dev.si> | 2016-06-01 20:02:58 +0100 |
---|---|---|
committer | Domen Kožar <domen@dev.si> | 2016-06-01 21:55:31 +0100 |
commit | 3e631800d1ddc93523be4a3a6880a33dc80efb2e (patch) | |
tree | 51727b8cb4fddc0549a5b8fefe9bf4a8ce3d07fc /pkgs | |
parent | 344225ce680181f1f272559345c22d3bcbe4152e (diff) | |
download | nixpkgs-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.nix | 142 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/perl-packages.nix | 12 |
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 { |