2008-11-28 16:13:06 +00:00
|
|
|
let
|
|
|
|
|
|
|
|
|
|
|
|
jobs = rec {
|
|
|
|
|
|
|
|
|
|
|
|
tarball =
|
2009-03-09 15:53:03 +00:00
|
|
|
{ hydraSrc ? {outPath = ./.; rev = 1234;}
|
|
|
|
, nixpkgs ? ../nixpkgs
|
2008-11-28 16:13:06 +00:00
|
|
|
, officialRelease ? false
|
|
|
|
}:
|
|
|
|
|
2009-03-09 15:53:03 +00:00
|
|
|
with import nixpkgs {};
|
2008-11-28 16:13:06 +00:00
|
|
|
|
|
|
|
releaseTools.makeSourceTarball {
|
|
|
|
name = "hydra-tarball";
|
2009-03-06 10:35:27 +00:00
|
|
|
version = "0.1";
|
2008-11-28 16:13:06 +00:00
|
|
|
src = hydraSrc;
|
|
|
|
inherit officialRelease;
|
|
|
|
|
2008-11-28 16:29:41 +00:00
|
|
|
buildInputs = [zip unzip];
|
|
|
|
|
|
|
|
jquery = fetchurl {
|
|
|
|
url = http://jqueryjs.googlecode.com/files/jquery-1.2.6.pack.js;
|
|
|
|
sha1 = "c10dbe0c2b23444d0794f3376398702d84f41583";
|
|
|
|
};
|
|
|
|
|
|
|
|
tablesorter = fetchurl {
|
|
|
|
url = http://tablesorter.com/jquery.tablesorter.zip;
|
|
|
|
sha256 = "013zgglvifvy0yg0ybjrl823sswy9v1ihf5nmighmcyigfd6nrhb";
|
|
|
|
};
|
|
|
|
|
2008-11-28 16:13:06 +00:00
|
|
|
# Since we don't have a `make dist', just tar everything.
|
|
|
|
distPhase = ''
|
2009-03-06 10:23:41 +00:00
|
|
|
cp $jquery src/root/static/js/jquery-pack.js
|
|
|
|
unzip -d src/root/static/js $tablesorter
|
2008-11-28 16:29:41 +00:00
|
|
|
|
2008-11-28 16:13:06 +00:00
|
|
|
releaseName=hydra-0.1$VERSION_SUFFIX;
|
|
|
|
ensureDir $out/tarballs
|
|
|
|
mkdir ../$releaseName
|
|
|
|
cp -prd . ../$releaseName
|
|
|
|
cd ..
|
|
|
|
tar cfj $out/tarballs/$releaseName.tar.bz2 $releaseName
|
|
|
|
tar cfz $out/tarballs/$releaseName.tar.gz $releaseName
|
2008-11-28 16:29:41 +00:00
|
|
|
zip -9r $out/tarballs/$releaseName.zip $releaseName
|
2008-11-28 16:13:06 +00:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
build =
|
2009-03-06 10:35:27 +00:00
|
|
|
{ tarball ? jobs.tarball {}
|
2009-03-09 15:53:03 +00:00
|
|
|
, nixpkgs ? ../nixpkgs
|
2008-11-28 16:13:06 +00:00
|
|
|
, system ? "i686-linux"
|
|
|
|
}:
|
|
|
|
|
2009-03-09 15:53:03 +00:00
|
|
|
with import nixpkgs {inherit system;};
|
|
|
|
|
|
|
|
let nix = nixUnstable.override { supportOldDBs = false; }; in
|
2008-11-28 16:13:06 +00:00
|
|
|
|
|
|
|
stdenvNew.mkDerivation {
|
2009-03-06 10:35:27 +00:00
|
|
|
name = "hydra" + (if tarball ? version then "-" + tarball.version else "");
|
2008-11-28 16:13:06 +00:00
|
|
|
|
|
|
|
buildInputs = [
|
2008-11-28 16:29:41 +00:00
|
|
|
perl makeWrapper
|
2008-11-28 16:13:06 +00:00
|
|
|
perlCatalystDevel
|
|
|
|
perlCatalystPluginAuthenticationStoreDBIC
|
|
|
|
perlCatalystPluginSessionStoreFastMmap
|
|
|
|
perlCatalystPluginStackTrace
|
2009-02-26 20:53:26 +00:00
|
|
|
perlCatalystAuthenticationStoreDBIxClass
|
2008-11-28 16:13:06 +00:00
|
|
|
perlCatalystViewTT
|
2009-03-11 15:48:06 +00:00
|
|
|
perlCatalystEngineHTTPPrefork
|
2009-03-16 17:20:45 +00:00
|
|
|
perlCatalystViewDownload
|
2008-11-28 18:15:19 +00:00
|
|
|
perlXMLSimple
|
|
|
|
perlIPCRun
|
2009-03-03 22:35:11 +00:00
|
|
|
perlIOCompressBzip2
|
2009-03-03 23:04:11 +00:00
|
|
|
perlReadonly
|
2009-03-09 15:53:03 +00:00
|
|
|
libtool
|
2008-11-28 16:13:06 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
preUnpack = ''
|
2009-03-06 10:35:27 +00:00
|
|
|
src=$(ls ${tarball}/tarballs/*.tar.bz2)
|
2008-11-28 16:13:06 +00:00
|
|
|
''; # */
|
|
|
|
|
2008-11-28 23:44:17 +00:00
|
|
|
hydraPath = stdenv.lib.concatStringsSep ":" (map (p: "${p}/bin") [
|
2009-03-09 15:53:03 +00:00
|
|
|
libxslt sqlite subversion nix coreutils
|
2009-02-27 15:37:41 +00:00
|
|
|
gzip bzip2 gnused graphviz
|
2008-11-28 23:44:17 +00:00
|
|
|
]);
|
|
|
|
|
2008-11-28 16:13:06 +00:00
|
|
|
installPhase = ''
|
2008-12-01 20:22:03 +00:00
|
|
|
ensureDir $out/nix-support
|
|
|
|
|
2008-11-28 16:13:06 +00:00
|
|
|
ensureDir $out/libexec
|
2009-03-06 10:23:41 +00:00
|
|
|
cp -prd src $out/libexec/hydra
|
2008-11-28 16:13:06 +00:00
|
|
|
|
|
|
|
mv $out/libexec/hydra/script $out/bin
|
|
|
|
|
2009-03-09 15:53:03 +00:00
|
|
|
cp ${"${nixpkgs}/pkgs/build-support/fetchsvn/nix-prefetch-svn"} $out/bin/nix-prefetch-svn
|
|
|
|
|
|
|
|
make -C src/c NIX=${nix} ATERM=${aterm242fixes}
|
|
|
|
cp src/c/hydra_eval_jobs $out/bin
|
2008-11-28 23:44:17 +00:00
|
|
|
|
2008-11-28 16:13:06 +00:00
|
|
|
for i in $out/bin/*; do
|
|
|
|
wrapProgram $i \
|
|
|
|
--prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
|
2008-11-28 23:44:17 +00:00
|
|
|
--set PATH $out/bin:$hydraPath \
|
2008-11-28 16:13:06 +00:00
|
|
|
--set HYDRA_HOME $out/libexec/hydra
|
|
|
|
done
|
2008-12-01 20:22:03 +00:00
|
|
|
|
|
|
|
ensureDir $out/share/doc/hydra/manual
|
|
|
|
cp doc/manual/* $out/share/doc/hydra/manual/
|
|
|
|
ln -s manual.html $out/share/doc/hydra/manual/index.html
|
|
|
|
echo "doc manual $out/share/doc/hydra/manual" >> $out/nix-support/hydra-build-products
|
2008-12-15 14:52:21 +00:00
|
|
|
echo "nix-build none $out" >> $out/nix-support/hydra-build-products
|
2008-11-28 16:13:06 +00:00
|
|
|
''; # */
|
2008-11-28 23:44:17 +00:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
description = "Build of Hydra on ${system}";
|
|
|
|
};
|
2008-11-28 16:13:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
in jobs
|