Revert "Move build logic for the core hydra package into its own default.nix."

[?]
Apr 12, 2017, 11:07 AM
ICYJNJWHY6KBNLM2EMSW7VJ35OIOHN26JO3FG32VYTKNLFNZAREQC

Dependencies

  • [2] UBPWXGKF Move build logic for the core hydra package into its own default.nix.
  • [3] X4KYZJBQ Use latest nixUnstable
  • [4] FV2M6MOT hydra: use autoconf/-make
  • [5] D3MDJONY
  • [6] CLXEECMF * Start putting build results in a database.
  • [7] T4LLYESZ * Nix expression for building Hydra.
  • [8] GX5R7OKF Doh
  • [9] IZYR3KTL release.nix: Get rid of the "system" argument
  • [10] 6K5PBUUN Use buildEnv to combine Hydra's Perl dependencies
  • [11] YQWH4POV * Simplify.
  • [12] DWQCLOPQ Tweaks for nix-shell
  • [13] SFMN6AFQ * Include a license.
  • [14] 6A6CZ7SC draft manual
  • [15] GBCPEGYC Add a .gitignore
  • [16] TEGLW4X3 * hydra/release.nix: remove supportOldDBs
  • [17] ZGBU7H7P * Pass nixUnstable to the tarball build.
  • [18] RRUSDIBL Add a job for the manual
  • [19] SAFVRDTK * Put Hydra's dependencies so that they can easily be installed in a
  • [20] X27GNHDV * Basic job info in the database.
  • [21] DO432JDJ * Build Hydra with the Nix Perl bindings.
  • [22] NVMDS7GE Add README.md
  • [23] ZL4LHHZF Remove empty files
  • [24] HPIJ35SG
  • [25] UHMUHQMU hydra: fix tarball build, add pre suffix to tarballs
  • [26] X7IAG7JT Simplify running nix-shell
  • [27] U2BNO3C5 hydra: fix build job
  • [28] G2ZB6464 first test, not yet in buildprocess
  • [*] WQ2VQ7H3 Use hydra-module.nix in the tests

Change contents

  • file deletion: default.nix (----------)
    [3.2][2.3400:3435](),[2.3435][2.1:1]()
    { 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;
    [ 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
    nix
    nix.perl-bindings
    git
    boehmgc
    aws-sdk-cpp
    ];
    };
    in stdenv.mkDerivation {
    name = "hydra-${version}";
    src = hydraSrc;
    buildInputs =
    [ makeWrapper autoreconfHook libtool unzip nukeReferences pkgconfig sqlite libpqxx
    topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
    guile # optional, for Guile + Guix support
    perlDeps perl nix
    postgresql92 # for running the tests
    ];
    hydraPath = stdenv.lib.makeBinPath (
    [ sqlite subversion openssh nix coreutils findutils pixz
    gzip 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:$PATH
    PERL5LIB=$(pwd)/src/lib:$PERL5LIB;
    '';
    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 ${nix.name or "unknown"}
    done
    '';
    dontStrip = true;
    passthru.perlDeps = perlDeps;
    }
  • edit in release.nix at line 31
    [30.532]
    [3.413]
    version = builtins.readFile ./version + "." + toString hydraSrc.revCount + "." + hydraSrc.rev;
  • replacement in release.nix at line 50
    [3.1188][2.3436:3476]()
    stdenv6 = overrideCC stdenv gcc6;
    [3.1188]
    [3.1188]
    /*
    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;
    [ 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
    nix
    nix.perl-bindings
    git
    boehmgc
    aws-sdk-cpp'
    ];
    };
  • replacement in release.nix at line 122
    [3.185][2.3477:3969]()
    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;
    [3.185]
    [3.192]
    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 libpqxx
    gitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
    guile # optional, for Guile + Guix support
    perlDeps perl nix
    postgresql92 # for running the tests
    ];
    hydraPath = lib.makeBinPath (
    [ sqlite subversion openssh nix coreutils findutils pixz
    gzip 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:$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 ${nix.name or "unknown"}
    done
    ''; # */
    dontStrip = true;
    meta.description = "Build of Hydra on ${system}";
    passthru.perlDeps = perlDeps;
  • replacement in release.nix at line 184
    [3.1][2.3970:4042]()
    manual = pkgs.runCommand "hydra-manual-${build.x86_64-linux.version}"
    [3.1]
    [3.0]
    manual = pkgs.runCommand "hydra-manual-${version}"