Move build logic for the core hydra package into its own default.nix.
[?]
Apr 11, 2017, 5:07 PM
UBPWXGKFBD6VMQCCUE625I4NLLRNVD7BSJ6QD2XF7Z7A7T5BI5XACDependencies
- [2]
HOMDMC3KHandle utf-8 properly - [3]
F6IBTEIBDisable the S3 backup test - [4]
RX5IIZMTUse Email::MIME instead of Email::Simple - [5]
E4HX2C5YDon't wrap hydra-queue-runner / hydra-eval-jobs - [6]
3QWDDLBRAdd support for logging in via a Google account - [7]
BAUP4PCKinNixShell considered harmful - [8]
XCHVWNOODon't wrap C++ programs - [9]
J37GFZZZFix version - [10]
GRRHPK5Grelease.nix: add missing dependency on nix - [11]
GX5R7OKFDoh - [12]
UKFZFDJORemove the pretty-printed log - [13]
IJCXGTECBump Nix dependency - [14]
X4KYZJBQUse latest nixUnstable - [15]
GZFKERN3Add dependency on nix-perl - [16]
TEGLW4X3* hydra/release.nix: remove supportOldDBs - [17]
VI32YSGAI should test first - [18]
KNLKTCDMUse pkgconfig to find Nix - [19]
F3GR3UC5* Actually, include jquery and tablesorter in the source tarball. - [20]
RTV57MPBif not linux, do not add rpm/dpkg/cdrkit to path - [21]
FSZJXAHRadd sqlite to buildinputs - [22]
RRUSDIBLAdd a job for the manual - [23]
6ID3AASF - [24]
Y2BFYLLK* Install the SQL schemata in $out/share/hydra/sql. - [25]
RBZRCTALhydra: fixed and re-enabled evaluation tests - [26]
UQYHPQ6URun PostgreSQL during "make check" - [27]
VOPKXPFEAdd OpenSSL as a dependency because Nix needs it - [28]
GLHKDGJ4hydra: revert 24180 - [29]
ZDEHAFHVAdd a plugin for HipChat notification - [30]
WV7S66BI - [31]
QUAK4CSFUse nixUnstable - [32]
UGA45FNCAdd a plugin for backing up builds in s3 - [33]
UHMUHQMUhydra: fix tarball build, add pre suffix to tarballs - [34]
VM3TQZ65* hydra: make manual.pdf - [35]
HJECG75OhydrA: add some pkgs to buildinputs for tests - [36]
DWQCLOPQTweaks for nix-shell - [37]
UQ6K57MS* Include nix-prefetch-svn in the Hydra binary distribution. - [38]
NLFVTH4Z - [39]
O25D52TAinitial support for mercurial - [40]
DN3VAAP4hydra: remove HYDRA_HOME env var, not used - [41]
L7RW467ZAdd a test for darcs inputs. - [42]
WQ2VQ7H3Use hydra-module.nix in the tests - [43]
XCHBOA3Ssvn -> subversion - [44]
NDJ6PZB7* Fix symbol to look for. - [45]
HPIJ35SG - [46]
XDKFASXTAdd bzip2 to buildInputs. - [47]
3PNG7NIBRemove trailing whitespace - [48]
4VXOGC5PRemove Switch dependency, we're not using it - [49]
67QM2R5CDepend on Term::Size::Any - [50]
IZYR3KTLrelease.nix: Get rid of the "system" argument - [51]
NRNR4QVJUse stable Nix - [52]
Z5OWQ4KZCheck Nix version - [53]
KLUNCP6HRevert "Don't wrap hydra-queue-runner / hydra-eval-jobs" - [54]
3MDDGGSN* Install the manual. - [55]
IDP66ILEUse Google's verifier - [56]
X7IAG7JTSimplify running nix-shell - [57]
4YCF3KBGConcurrent hydra-evaluator - [58]
WSCHBYENadd topgit to hydra's path - [59]
V2ALOFRRFix the test - [60]
G3LEMSEQRemove Term::Size::Any dependency - [61]
RJ5EREYUhydra: add bazaar to path - [62]
JTRG7RDQadd support for git as jobinput - [63]
QK2OXCKPhydra/release.nix: move manual to tarball build, restore version in store path for tarball build - [64]
YQWH4POV* Simplify. - [65]
ZGBU7H7P* Pass nixUnstable to the tarball build. - [66]
5CNQUQ77Bump Nix - [67]
6K5PBUUNUse buildEnv to combine Hydra's Perl dependencies - [68]
KVNTTRVTEnable debug info - [69]
2554VN4TFix ‘Unable to handle files with the extension 'conf'’ - [70]
MC3YYO4VUse patched aws-sdk-cpp - [71]
4WWUVPOS* Urgh. Need some regression tests... - [72]
LOHWNXEJCleanup - [73]
UMEQXUUHhydra: fix name of build jobset - [74]
7DEMMXE5Bump Nix - [75]
DFXIN6YW* Include jquery and tablesorter in the build. - [76]
SWFCD4MW - [77]
66MEE6QGhydra-build: Don't send a giant query to the database - [78]
FJAF7KWADisable building the PDF manual - [79]
34UH6B6LBuild against the bleeding edge of Nix - [80]
DUUF3XJFDon't mess with $LOGNAME in nix-shell - [81]
SAFVRDTK* Put Hydra's dependencies so that they can easily be installed in a - [82]
7I2VJDS6Use pixz instead of bzip2 for compressing nars - [83]
GTUZLZRHAdd an S3-backed binary cache store - [84]
24BMQDZAStart of single-process hydra-queue-runner - [85]
K4DKM74Wrelease.nix use makeBinPath to construct PATH - [86]
WR22RPG2Restore path in nix-shell - [87]
M4JUF5V6Drop obsolete graphviz dependency - [88]
DODOGD7MSend queue runner stats to statsd - [89]
PKTKSVTLBump Nix - [90]
M3A5PZIHhydra: Clarify the dependency on BDW-GC. - [91]
X5QBLQDG - [92]
WTHZ4AGPhydra: remove some layout, test - [93]
X22X45IXAdd Catalyst::DispatchType::Regex for forward compatibility - [94]
LZVO64YGMerge in the first bits of the API work - [95]
5FSHNCJHRemove NetStatsd since it's also in Nixpkgs - [96]
OKEMZJLSBump Nix - [97]
T4LLYESZ* Nix expression for building Hydra. - [98]
RYWAOMWAoops, should have added topgit to hydraPath - [99]
OKW75JT6 - [100]
DO432JDJ* Build Hydra with the Nix Perl bindings. - [101]
U2BNO3C5hydra: fix build job - [102]
FGI75W53move nix-prefetch-* into tarball - [*]
CLXEECMF* Start putting build results in a database.
Change contents
- file addition: default.nix[104.2]
{ stdenv, hydraSrc ? { outPath = ./.; revCount = 1234; rev = "abcdef"; }, version ? builtins.readFile ./version + "." + toString hydraSrc.revCount + "." + hydraSrc.rev, makeWrapper, libtool, unzip, nukeReferences, sqlite, libpqxx, guile ? null, perl, nix, postgresql92, perlPackages, openssh, buildEnv, autoreconfHook, pkgconfig, topGit, mercurial, darcs, subversion, bazaar, openssl, bzip2, libxslt, docbook_xsl, coreutils, findutils, pixz, gzip, lzma, gnutar, git, gnused, rpm, dpkg, cdrkit, boehmgc, aws-sdk-cpp}: assert builtins.compareVersions "6" stdenv.cc.cc.version < 1;let perlDeps = buildEnv {name = "hydra-perl-deps";paths = with perlPackages;[ ModulePluggableCatalystActionRESTCatalystAuthenticationStoreDBIxClassCatalystDevelCatalystDispatchTypeRegexCatalystPluginAccessLogCatalystPluginAuthorizationRolesCatalystPluginCaptchaCatalystPluginSessionStateCookieCatalystPluginSessionStoreFastMmapCatalystPluginStackTraceCatalystPluginUnicodeEncodingCatalystTraitForRequestProxyBaseCatalystViewDownloadCatalystViewJSONCatalystViewTTCatalystXScriptServerStarmanCryptRandPasswdDBDPgDBDSQLiteDataDumpDateTimeDigestSHA1EmailMIMEEmailSenderFileSlurpIOCompressIPCRunJSONXSLWPLWPProtocolHttpsNetAmazonS3NetStatsdPadWalkerReadonlySQLSplitStatementSetScalarStarmanSysHostnameLongTestMoreTextDiffTextTableXMLSimplenixnix.perl-bindingsgitboehmgcaws-sdk-cpp];};in stdenv.mkDerivation {name = "hydra-${version}";src = hydraSrc;buildInputs =[ makeWrapper autoreconfHook libtool unzip nukeReferences pkgconfig sqlite libpqxxtopGit mercurial darcs subversion bazaar openssl bzip2 libxsltguile # optional, for Guile + Guix supportperlDeps perl nixpostgresql92 # for running the tests];hydraPath = stdenv.lib.makeBinPath ([ sqlite subversion openssh nix coreutils findutils pixzgzip bzip2 lzma gnutar unzip git topGit mercurial darcs gnused bazaar] ++ stdenv.lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];preHook = ''PATH=$(pwd)/src/hydra-evaluator:$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$PATHPERL5LIB=$(pwd)/src/lib:$PERL5LIB;'';preCheck = ''patchShebangs .export LOGNAME=${LOGNAME:-foo}'';postInstall = ''mkdir -p $out/nix-supportfor i in $out/bin/*; do #*/read -n 4 chars < $iif [[ $chars =~ ELF ]]; then continue; fiwrapProgram $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 ${nix.name or "unknown"}done'';dontStrip = true;passthru.perlDeps = perlDeps;} - edit in release.nix at line 31
version = builtins.readFile ./version + "." + toString hydraSrc.revCount + "." + hydraSrc.rev; - edit in release.nix at line 47[14.43]→[16.428:429](∅→∅),[16.428]→[16.428:429](∅→∅),[16.429]→[14.44:55](∅→∅),[14.55]→[16.429:565](∅→∅),[16.429]→[16.429:565](∅→∅),[16.565]→[13.0:135](∅→∅),[16.135]→[16.700:1016](∅→∅),[13.135]→[16.700:1016](∅→∅),[16.135]→[16.700:1016](∅→∅),[16.135]→[16.700:1016](∅→∅),[16.135]→[16.700:1016](∅→∅),[16.192]→[16.700:1016](∅→∅),[16.700]→[16.700:1016](∅→∅),[16.1016]→[14.56:90](∅→∅),[14.90]→[16.409:410](∅→∅),[16.1016]→[16.409:410](∅→∅),[16.409]→[16.409:410](∅→∅),[16.410]→[16.36:133](∅→∅),[16.875]→[16.36:133](∅→∅),[16.133]→[16.0:28](∅→∅),[16.28]→[16.0:31](∅→∅),[16.31]→[16.28:77](∅→∅),[16.28]→[16.28:77](∅→∅),[16.77]→[16.32:58](∅→∅),[16.58]→[16.0:38](∅→∅),[16.77]→[16.0:38](∅→∅),[16.38]→[16.182:426](∅→∅),[16.77]→[16.182:426](∅→∅),[16.182]→[16.182:426](∅→∅),[16.426]→[2.0:42](∅→∅),[2.42]→[16.39:84](∅→∅),[16.426]→[16.39:84](∅→∅),[16.84]→[16.426:556](∅→∅),[16.426]→[16.426:556](∅→∅),[6.21]→[16.601:734](∅→∅),[16.31]→[16.601:734](∅→∅),[16.601]→[16.601:734](∅→∅),[16.734]→[4.0:22](∅→∅),[4.22]→[16.734:780](∅→∅),[16.734]→[16.734:780](∅→∅),[16.45]→[16.780:841](∅→∅),[16.780]→[16.780:841](∅→∅),[16.841]→[16.59:128](∅→∅),[16.128]→[16.411:433](∅→∅),[16.128]→[16.841:863](∅→∅),[16.433]→[16.841:863](∅→∅),[16.841]→[16.841:863](∅→∅),[16.889]→[16.889:910](∅→∅),[16.22]→[16.910:940](∅→∅),[16.910]→[16.910:940](∅→∅),[16.940]→[16.129:151](∅→∅),[16.151]→[16.940:960](∅→∅),[16.940]→[16.940:960](∅→∅),[16.1031]→[16.1031:1059](∅→∅),[16.176]→[16.1059:1145](∅→∅),[16.1059]→[16.1059:1145](∅→∅),[16.1145]→[15.0:107](∅→∅),[15.107]→[16.1165:1187](∅→∅),[16.443]→[16.1165:1187](∅→∅),[16.1058]→[16.1165:1187](∅→∅),[16.1165]→[16.1165:1187](∅→∅)
/*nix = overrideDerivation nixUnstable (attrs: {src = fetchFromGitHub {owner = "NixOS";repo = "nix";rev = "4be4f6de56f4de77f6a376f1a40ed75eb641bb89";sha256 = "0icvbwpca1jh8qkdlayxspdxl5fb0qjjd1kn74x6gs6iy66kndq6";};buildInputs = attrs.buildInputs ++ [ autoreconfHook bison flex ];nativeBuildInputs = attrs.nativeBuildInputs ++ [ aws-sdk-cpp' autoconf-archive ];configureFlags = attrs.configureFlags + " --disable-doc-gen";preConfigure = "./bootstrap.sh; mkdir -p $doc $man";});*/nix = nixUnstable;perlDeps = buildEnv {name = "hydra-perl-deps";paths = with perlPackages;[ ModulePluggableCatalystActionRESTCatalystAuthenticationStoreDBIxClassCatalystDevelCatalystDispatchTypeRegexCatalystPluginAccessLogCatalystPluginAuthorizationRolesCatalystPluginCaptchaCatalystPluginSessionStateCookieCatalystPluginSessionStoreFastMmapCatalystPluginStackTraceCatalystPluginUnicodeEncodingCatalystTraitForRequestProxyBaseCatalystViewDownloadCatalystViewJSONCatalystViewTTCatalystXScriptServerStarmanCryptRandPasswdDBDPgDBDSQLiteDataDumpDateTimeDigestSHA1EmailMIMEEmailSenderFileSlurpIOCompressIPCRunJSONXSLWPLWPProtocolHttpsNetAmazonS3NetStatsdPadWalkerReadonlySQLSplitStatementSetScalarStarmanSysHostnameLongTestMoreTextDiffTextTableXMLSimplenixnix.perl-bindingsgitboehmgcaws-sdk-cpp'];}; - edit in release.nix at line 48
stdenv6 = overrideCC stdenv gcc6; - replacement in release.nix at line 51[16.185]→[16.14:42](∅→∅),[16.42]→[9.0:33](∅→∅),[9.33]→[16.444:445](∅→∅),[16.22]→[16.444:445](∅→∅),[16.445]→[7.17:63](∅→∅),[16.32]→[16.925:926](∅→∅),[7.63]→[16.925:926](∅→∅),[16.109]→[16.925:926](∅→∅),[16.253]→[16.925:926](∅→∅),[16.460]→[16.925:926](∅→∅),[16.500]→[16.925:926](∅→∅),[16.1759]→[16.925:926](∅→∅),[16.925]→[16.925:926](∅→∅),[16.926]→[16.193:233](∅→∅),[16.233]→[16.1760:1780](∅→∅),[16.926]→[16.1760:1780](∅→∅),[16.1780]→[16.501:680](∅→∅),[16.77]→[16.1343:1396](∅→∅),[16.680]→[16.1343:1396](∅→∅),[16.1343]→[16.1343:1396](∅→∅),[16.1396]→[10.0:28](∅→∅),[10.28]→[16.0:47](∅→∅),[16.102]→[16.0:47](∅→∅),[16.47]→[16.1420:1431](∅→∅),[16.102]→[16.1420:1431](∅→∅),[16.118]→[16.1420:1431](∅→∅),[16.325]→[16.1420:1431](∅→∅),[16.1420]→[16.1420:1431](∅→∅),[16.11]→[16.1304:1305](∅→∅),[16.302]→[16.1304:1305](∅→∅),[16.725]→[16.1304:1305](∅→∅),[16.1431]→[16.1304:1305](∅→∅),[16.1952]→[16.1304:1305](∅→∅),[16.1304]→[16.1304:1305](∅→∅),[16.1305]→[16.0:36](∅→∅),[16.36]→[12.0:65](∅→∅),[12.65]→[16.0:92](∅→∅),[16.105]→[16.0:92](∅→∅),[16.416]→[16.0:92](∅→∅),[16.92]→[16.511:576](∅→∅),[16.179]→[16.511:576](∅→∅),[16.511]→[16.511:576](∅→∅),[16.576]→[16.74:75](∅→∅),[16.2226]→[16.74:75](∅→∅),[16.75]→[7.64:110](∅→∅),[7.110]→[16.703:757](∅→∅),[16.703]→[16.703:757](∅→∅),[16.757]→[7.111:196](∅→∅),[7.196]→[16.895:987](∅→∅),[16.895]→[16.895:987](∅→∅),[16.987]→[16.0:19](∅→∅),[16.19]→[16.136:257](∅→∅),[16.257]→[16.113:167](∅→∅),[16.113]→[16.113:167](∅→∅),[16.167]→[16.987:1066](∅→∅),[16.987]→[16.987:1066](∅→∅),[16.1066]→[16.0:93](∅→∅),[16.75]→[16.0:93](∅→∅),[16.93]→[16.1400:1401](∅→∅),[16.115]→[16.1400:1401](∅→∅),[16.210]→[16.1400:1401](∅→∅),[16.411]→[16.1400:1401](∅→∅),[16.2226]→[16.1400:1401](∅→∅),[16.1400]→[16.1400:1401](∅→∅),[16.1401]→[16.166:189](∅→∅),[16.189]→[16.577:611](∅→∅),[16.100]→[16.531:532](∅→∅),[16.147]→[16.531:532](∅→∅),[16.223]→[16.531:532](∅→∅),[16.425]→[16.531:532](∅→∅),[16.2601]→[16.531:532](∅→∅),[16.531]→[16.531:532](∅→∅),[16.1557]→[16.2693:2725](∅→∅),[16.2725]→[8.0:87](∅→∅),[8.87]→[16.2725:2883](∅→∅),[5.110]→[16.2725:2883](∅→∅),[16.2725]→[16.2725:2883](∅→∅),[16.2883]→[16.1067:1116](∅→∅),[16.1116]→[16.0:54](∅→∅),[16.2994]→[16.0:54](∅→∅),[16.54]→[3.0:59](∅→∅),[3.59]→[16.3040:3053](∅→∅),[16.3040]→[16.3040:3053](∅→∅),[16.133]→[16.3389:3404](∅→∅),[16.3389]→[16.3389:3404](∅→∅),[16.3404]→[16.0:1](∅→∅),[16.1]→[8.88:112](∅→∅),[16.33]→[16.209:210](∅→∅),[8.112]→[16.209:210](∅→∅),[16.3404]→[16.209:210](∅→∅),[16.212]→[16.612:668](∅→∅),[16.668]→[16.25:61](∅→∅)
releaseTools.nixBuild {name = "hydra-${version}";src = if shell then null else hydraSrc;stdenv = overrideCC stdenv gcc6;buildInputs =[ makeWrapper autoconf automake libtool unzip nukeReferences pkgconfig sqlite libpqxxgitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxsltguile # optional, for Guile + Guix supportperlDeps perl nixpostgresql92 # for running the tests];hydraPath = lib.makeBinPath ([ sqlite subversion openssh nix coreutils findutils pixzgzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );postUnpack = optionalString (!shell) ''# 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/hydra-evaluator:$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$PATHPERL5LIB=$(pwd)/src/lib:$PERL5LIB;'';preConfigure = "autoreconf -vfi";enableParallelBuilding = true;preCheck = ''patchShebangs .export LOGNAME=${LOGNAME:-foo}'';postInstall = ''mkdir -p $out/nix-supportfor i in $out/bin/*; doread -n 4 chars < $iif [[ $chars =~ ELF ]]; then continue; fiwrapProgram $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 ${nix.name or "unknown"}done''; # */dontStrip = true;meta.description = "Build of Hydra on ${system}";passthru.perlDeps = perlDeps;callPackage ./. {stdenv = stdenv6 // { mkDerivation = args: releaseTools.nixBuild (args // {stdenv = stdenv6;postUnpack = optionalString (!shell) ''# Clean up when building from a working tree.(cd $sourceRoot && (git ls-files -o --directory | xargs -r rm -rfv)) || true'';}); };inherit (gitAndTools) topGit;nix = nixUnstable;aws-sdk-cpp = aws-sdk-cpp';hydraSrc = if shell then null else hydraSrc; - replacement in release.nix at line 65
manual = pkgs.runCommand "hydra-manual-${version}"manual = pkgs.runCommand "hydra-manual-${build.x86_64-linux.version}"