From 775c0d6423598b01bcddba49e008c9f3d084ae93 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 5 Mar 2010 17:52:43 +0000 Subject: [PATCH] * Simplify. --- release.nix | 221 +++++++++++++++++++++++++--------------------------- 1 file changed, 106 insertions(+), 115 deletions(-) diff --git a/release.nix b/release.nix index 4a8f7ff3..5b48fc86 100644 --- a/release.nix +++ b/release.nix @@ -1,127 +1,118 @@ -let +{ nixpkgs ? ../nixpkgs +, hydraSrc ? {outPath = ./.; rev = 1234;} +, officialRelease ? false +}: - jobs = rec { +rec { + tarball = + with import nixpkgs {}; - tarball = - { hydraSrc ? {outPath = ./.; rev = 1234;} - , nixpkgs ? ../nixpkgs - , officialRelease ? false - }: + releaseTools.makeSourceTarball { + name = "hydra-tarball"; + version = "0.1"; + src = hydraSrc; + inherit officialRelease; - with import nixpkgs {}; + buildInputs = [zip unzip]; - releaseTools.makeSourceTarball { - name = "hydra-tarball"; - version = "0.1"; - src = hydraSrc; - inherit officialRelease; - - buildInputs = [zip unzip]; - - jquery = fetchurl { - url = http://jqueryui.com/download/jquery-ui-1.7.2.custom.zip; - sha256 = "1l9dwaaqvdysmzlkg1vb8j0s0xn63d475gh53pjjwxw85668krdh"; - }; - - tablesorter = fetchurl { - url = http://tablesorter.com/jquery.tablesorter.zip; - sha256 = "013zgglvifvy0yg0ybjrl823sswy9v1ihf5nmighmcyigfd6nrhb"; - }; - - flot = fetchurl { - url = http://flot.googlecode.com/files/flot-0.6.zip; - sha256 = "1k2mfijvr1jwga65wcd78lp9ia17v99f1cfm5nlmc0k8glllbj5a"; - }; - - # Since we don't have a `make dist', just tar everything. - distPhase = '' - ensureDir src/root/static/js/jquery - unzip -d src/root/static/js/jquery $jquery - rm -rf src/root/static/js/tablesorter - unzip -d src/root/static/js $tablesorter - unzip -d src/root/static/js $flot - - make -C src/sql - - 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 - zip -9r $out/tarballs/$releaseName.zip $releaseName - ''; + jquery = fetchurl { + url = http://jqueryui.com/download/jquery-ui-1.7.2.custom.zip; + sha256 = "1l9dwaaqvdysmzlkg1vb8j0s0xn63d475gh53pjjwxw85668krdh"; }; - - build = - { tarball ? jobs.tarball {} - , nixpkgs ? ../nixpkgs - , system ? "x86_64-linux" - }: - - let pkgs = import nixpkgs {inherit system;}; in - - with pkgs; - - let nix = nixSqlite; in - - stdenv.mkDerivation { - name = "hydra" + (if tarball ? version then "-" + tarball.version else ""); - - buildInputs = - [ perl makeWrapper libtool ] - ++ (import ./deps.nix) { inherit pkgs; }; - - preUnpack = '' - src=$(ls ${tarball}/tarballs/*.tar.bz2) - ''; # */ - - hydraPath = stdenv.lib.concatStringsSep ":" (map (p: "${p}/bin") ( [ - libxslt sqlite subversion openssh nix coreutils findutils - gzip bzip2 lzma gnutar unzip git - gnused graphviz - ] ++ ( if stdenv.isLinux then [rpm dpkg cdrkit] else [] ))); - - installPhase = '' - ensureDir $out/nix-support - - ensureDir $out/libexec - cp -prd src $out/libexec/hydra - - mv $out/libexec/hydra/script $out/bin - - cp ${"${nixpkgs}/pkgs/build-support/fetchsvn/nix-prefetch-svn"} $out/bin/nix-prefetch-svn - cp ${"${nixpkgs}/pkgs/build-support/fetchgit/nix-prefetch-git"} $out/bin/nix-prefetch-git - - make -C src/c NIX=${nix} ATERM=${aterm} - cp src/c/hydra_eval_jobs $out/bin - - for i in $out/bin/*; do - wrapProgram $i \ - --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \ - --prefix PATH ':' $out/bin:$hydraPath \ - --set HYDRA_HOME $out/libexec/hydra \ - --set HYDRA_RELEASE ${tarball.version} \ - --set NIX_RELEASE ${nix.name} - done - - 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 - echo "nix-build none $out" >> $out/nix-support/hydra-build-products - ''; # */ - - meta = { - description = "Build of Hydra on ${system}"; - }; + tablesorter = fetchurl { + url = http://tablesorter.com/jquery.tablesorter.zip; + sha256 = "013zgglvifvy0yg0ybjrl823sswy9v1ihf5nmighmcyigfd6nrhb"; }; - }; + flot = fetchurl { + url = http://flot.googlecode.com/files/flot-0.6.zip; + sha256 = "1k2mfijvr1jwga65wcd78lp9ia17v99f1cfm5nlmc0k8glllbj5a"; + }; + + # Since we don't have a `make dist', just tar everything. + distPhase = '' + ensureDir src/root/static/js/jquery + unzip -d src/root/static/js/jquery $jquery + rm -rf src/root/static/js/tablesorter + unzip -d src/root/static/js $tablesorter + unzip -d src/root/static/js $flot + + make -C src/sql + + 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 + zip -9r $out/tarballs/$releaseName.zip $releaseName + ''; + }; -in jobs + build = + { system ? "x86_64-linux" }: + + let pkgs = import nixpkgs {inherit system;}; in + + with pkgs; + + let nix = nixSqlite; in + + stdenv.mkDerivation { + name = "hydra-${tarball.version}"; + + buildInputs = + [ perl makeWrapper libtool ] + ++ (import ./deps.nix) { inherit pkgs; }; + + preUnpack = '' + src=$(ls ${tarball}/tarballs/*.tar.bz2) + ''; # */ + + hydraPath = stdenv.lib.concatStringsSep ":" (map (p: "${p}/bin") ( [ + libxslt sqlite subversion openssh nix coreutils findutils + gzip bzip2 lzma gnutar unzip git + gnused graphviz + ] ++ ( if stdenv.isLinux then [rpm dpkg cdrkit] else [] ))); + + installPhase = '' + ensureDir $out/nix-support + + ensureDir $out/libexec + cp -prd src $out/libexec/hydra + + mv $out/libexec/hydra/script $out/bin + + cp ${"${nixpkgs}/pkgs/build-support/fetchsvn/nix-prefetch-svn"} $out/bin/nix-prefetch-svn + cp ${"${nixpkgs}/pkgs/build-support/fetchgit/nix-prefetch-git"} $out/bin/nix-prefetch-git + + make -C src/c NIX=${nix} ATERM=${aterm} + cp src/c/hydra_eval_jobs $out/bin + + for i in $out/bin/*; do + wrapProgram $i \ + --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \ + --prefix PATH ':' $out/bin:$hydraPath \ + --set HYDRA_HOME $out/libexec/hydra \ + --set HYDRA_RELEASE ${tarball.version} \ + --set NIX_RELEASE ${nix.name} + done + + 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 + echo "nix-build none $out" >> $out/nix-support/hydra-build-products + ''; # */ + + meta = { + description = "Build of Hydra on ${system}"; + }; + }; + +}