* Simplify.

[?]
Mar 5, 2010, 5:52 PM
YQWH4POV22KYCCKOTZXD36QKUOWEQ2DSPYPO5DNZDZ344RI25OAAC

Dependencies

  • [2] V2MRXFBH
  • [3] NLFVTH4Z
  • [4] 6Y3CCJJM
  • [5] EE4ST6MR add git to hydraPath
  • [6] 2R7GHSA4 * hydra: added initial version of build graph
  • [7] WV7S66BI
  • [8] DO432JDJ * Build Hydra with the Nix Perl bindings.
  • [9] KN3VYE5P * Cleaned up the foreign key constraints.
  • [10] TEGLW4X3 * hydra/release.nix: remove supportOldDBs
  • [11] UQ6K57MS * Include nix-prefetch-svn in the Hydra binary distribution.
  • [12] RTV57MPB if not linux, do not add rpm/dpkg/cdrkit to path
  • [13] RW6J4FYZ * perl -> perlPackages.
  • [14] T4LLYESZ * Nix expression for building Hydra.
  • [15] SAFVRDTK * Put Hydra's dependencies so that they can easily be installed in a
  • [16] JTRG7RDQ add support for git as jobinput
  • [17] O7HSEB3X
  • [18] T2232OBS * Add some DB indices to make the /releases page much faster.
  • [19] BSYM6IUT
  • [20] F3GR3UC5 * Actually, include jquery and tablesorter in the source tarball.
  • [21] SWFCD4MW
  • [22] DMXVUAPN * Support showing the contents of ISO images (using isoinfo in
  • [23] 3R5SCBEJ
  • [24] LP66DSH2 * hydra: updated jquery version, needed for tabs (to be added later)
  • [25] NUIKDEHL * A quick hack to list the contents of various types of files (RPM,
  • [26] DFXIN6YW * Include jquery and tablesorter in the build.
  • [27] XV7QRRE6 * Add openssh to $PATH to support svn+ssh checkouts.
  • [28] HPIJ35SG
  • [29] VHYWSRIS * Add nix version to footer of hydra pages
  • [30] 3MDDGGSN * Install the manual.

Change contents

  • replacement in release.nix at line 1
    [9.1][9.2:6]()
    let
    [9.1]
    [9.6]
    { nixpkgs ? ../nixpkgs
    , hydraSrc ? {outPath = ./.; rev = 1234;}
    , officialRelease ? false
    }:
  • replacement in release.nix at line 7
    [9.8][9.8:23]()
    jobs = rec {
    [9.8]
    [9.23]
    rec {
  • edit in release.nix at line 9
    [9.24]
    [9.24]
    tarball =
    with import nixpkgs {};
  • replacement in release.nix at line 12
    [9.25][9.25:39](),[9.39][9.0:48](),[9.48][8.338:367](),[9.32][9.123:164](),[9.77][9.123:164](),[8.367][9.123:164](),[9.123][9.123:164]()
    tarball =
    { hydraSrc ? {outPath = ./.; rev = 1234;}
    , nixpkgs ? ../nixpkgs
    , officialRelease ? false
    }:
    [9.25]
    [9.164]
    releaseTools.makeSourceTarball {
    name = "hydra-tarball";
    version = "0.1";
    src = hydraSrc;
    inherit officialRelease;
  • replacement in release.nix at line 18
    [9.165][9.78:108]()
    with import nixpkgs {};
    [9.165]
    [9.200]
    buildInputs = [zip unzip];
  • replacement in release.nix at line 20
    [9.201][9.201:272](),[9.272][9.0:25](),[9.25][9.272:329](),[9.272][9.272:329]()
    releaseTools.makeSourceTarball {
    name = "hydra-tarball";
    version = "0.1";
    src = hydraSrc;
    inherit officialRelease;
    [9.201]
    [9.0]
    jquery = fetchurl {
    url = http://jqueryui.com/download/jquery-ui-1.7.2.custom.zip;
    sha256 = "1l9dwaaqvdysmzlkg1vb8j0s0xn63d475gh53pjjwxw85668krdh";
    };
  • replacement in release.nix at line 25
    [9.1][9.1:36]()
    buildInputs = [zip unzip];
    [9.1]
    [9.36]
    tablesorter = fetchurl {
    url = http://tablesorter.com/jquery.tablesorter.zip;
    sha256 = "013zgglvifvy0yg0ybjrl823sswy9v1ihf5nmighmcyigfd6nrhb";
    };
  • replacement in release.nix at line 30
    [9.37][9.37:65](),[9.65][9.0:148](),[9.148][9.201:212](),[9.201][9.201:212]()
    jquery = fetchurl {
    url = http://jqueryui.com/download/jquery-ui-1.7.2.custom.zip;
    sha256 = "1l9dwaaqvdysmzlkg1vb8j0s0xn63d475gh53pjjwxw85668krdh";
    };
    [9.37]
    [9.329]
    flot = fetchurl {
    url = http://flot.googlecode.com/files/flot-0.6.zip;
    sha256 = "1k2mfijvr1jwga65wcd78lp9ia17v99f1cfm5nlmc0k8glllbj5a";
    };
  • replacement in release.nix at line 35
    [9.330][9.213:384](),[9.384][6.0:11]()
    tablesorter = fetchurl {
    url = http://tablesorter.com/jquery.tablesorter.zip;
    sha256 = "013zgglvifvy0yg0ybjrl823sswy9v1ihf5nmighmcyigfd6nrhb";
    };
    [9.330]
    [6.11]
    # 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
  • replacement in release.nix at line 43
    [6.12][6.12:176](),[6.176][9.384:395](),[9.384][9.384:395]()
    flot = fetchurl {
    url = http://flot.googlecode.com/files/flot-0.6.zip;
    sha256 = "1k2mfijvr1jwga65wcd78lp9ia17v99f1cfm5nlmc0k8glllbj5a";
    };
    [6.12]
    [9.395]
    make -C src/sql
  • replacement in release.nix at line 45
    [9.396][9.330:419](),[9.330][9.330:419](),[9.419][9.149:248](),[9.248][9.0:48](),[9.55][9.0:48](),[9.48][9.55:106](),[9.55][9.55:106](),[9.106][6.177:221]()
    # 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
    [9.396]
    [9.33]
    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
    '';
    };
  • replacement in release.nix at line 57
    [9.34][9.34:60](),[9.60][9.515:524](),[9.106][9.515:524](),[9.515][9.515:524](),[9.524][9.419:716](),[9.419][9.419:716](),[9.716][9.525:587](),[9.587][9.716:737](),[9.716][9.716:737]()
    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
    '';
    };
    [9.34]
    [9.737]
    build =
    { system ? "x86_64-linux" }:
  • edit in release.nix at line 60
    [9.738]
    [9.738]
    let pkgs = import nixpkgs {inherit system;}; in
  • replacement in release.nix at line 62
    [9.739][9.739:752](),[9.752][9.26:60](),[9.60][8.368:429](),[8.429][9.865:874](),[9.865][9.865:874]()
    build =
    { tarball ? jobs.tarball {}
    , nixpkgs ? ../nixpkgs
    , system ? "x86_64-linux"
    }:
    [9.739]
    [9.874]
    with pkgs;
  • replacement in release.nix at line 64
    [9.875][9.533:611]()
    let pkgs = import nixpkgs {inherit system;}; in
    with pkgs;
    [9.875]
    [9.184]
    let nix = nixSqlite; in
  • replacement in release.nix at line 66
    [9.185][8.430:460]()
    let nix = nixSqlite; in
    [9.185]
    [9.925]
    stdenv.mkDerivation {
    name = "hydra-${tarball.version}";
  • replacement in release.nix at line 69
    [9.926][3.0:28](),[3.28][9.61:145](),[9.957][9.61:145]()
    stdenv.mkDerivation {
    name = "hydra" + (if tarball ? version then "-" + tarball.version else "");
    [9.926]
    [9.987]
    buildInputs =
    [ perl makeWrapper libtool ]
    ++ (import ./deps.nix) { inherit pkgs; };
  • replacement in release.nix at line 73
    [9.988][9.612:725]()
    buildInputs =
    [ perl makeWrapper libtool ]
    ++ (import ./deps.nix) { inherit pkgs; };
    [9.988]
    [9.1304]
    preUnpack = ''
    src=$(ls ${tarball}/tarballs/*.tar.bz2)
    ''; # */
  • replacement in release.nix at line 77
    [9.1305][9.1305:1328](),[9.1328][9.146:196](),[9.196][9.1383:1400](),[9.1383][9.1383:1400]()
    preUnpack = ''
    src=$(ls ${tarball}/tarballs/*.tar.bz2)
    ''; # */
    [9.1305]
    [9.1400]
    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 [] )));
  • replacement in release.nix at line 83
    [9.1401][9.66:143](),[9.143][9.0:68](),[9.75][9.0:68](),[9.68][5.0:43](),[5.43][9.99:125](),[9.99][9.99:125](),[9.125][9.144:213]()
    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 [] )));
    [9.1401]
    [9.173]
    installPhase = ''
    ensureDir $out/nix-support
  • replacement in release.nix at line 86
    [9.174][9.1401:1427](),[9.394][9.1401:1427](),[9.1401][9.1401:1427](),[9.1427][9.0:48](),[9.48][9.1427:1460](),[9.1427][9.1427:1460](),[9.1460][9.107:148]()
    installPhase = ''
    ensureDir $out/nix-support
    ensureDir $out/libexec
    cp -prd src $out/libexec/hydra
    [9.174]
    [9.1507]
    ensureDir $out/libexec
    cp -prd src $out/libexec/hydra
  • replacement in release.nix at line 89
    [9.1508][9.175:223]()
    mv $out/libexec/hydra/script $out/bin
    [9.1508]
    [9.324]
    mv $out/libexec/hydra/script $out/bin
  • replacement in release.nix at line 91
    [9.325][9.325:425](),[9.425][9.0:100]()
    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
    [9.325]
    [9.531]
    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
  • replacement in release.nix at line 94
    [9.532][7.0:50](),[7.50][9.484:528](),[9.484][9.484:528]()
    make -C src/c NIX=${nix} ATERM=${aterm}
    cp src/c/hydra_eval_jobs $out/bin
    [9.532]
    [9.1556]
    make -C src/c NIX=${nix} ATERM=${aterm}
    cp src/c/hydra_eval_jobs $out/bin
  • replacement in release.nix at line 97
    [9.1557][9.1557:1697](),[9.1697][4.0:58](),[9.54][9.0:56](),[4.58][9.0:56](),[9.381][9.0:56](),[9.56][9.0:107](),[9.107][9.1798:1813](),[9.113][9.1798:1813](),[9.1798][9.1798:1813]()
    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
    [9.1557]
    [9.49]
    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
  • replacement in release.nix at line 106
    [9.50][9.50:98](),[9.115][9.115:334](),[9.334][2.0:78](),[2.78][9.1813:1830](),[9.334][9.1813:1830](),[9.1813][9.1813:1830]()
    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
    ''; # */
    [9.50]
    [9.382]
    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
    ''; # */
  • replacement in release.nix at line 113
    [9.383][9.383:466]()
    meta = {
    description = "Build of Hydra on ${system}";
    };
    [9.383]
    [9.1830]
    meta = {
    description = "Build of Hydra on ${system}";
  • edit in release.nix at line 116
    [9.1839]
    [9.1839]
    };
  • replacement in release.nix at line 118
    [9.1840][9.1840:1855]()
    };
    in jobs
    [9.1840]
    }