Merge pull request #17837 from MostAwesomeDude/fossil

build-support: Add fetchfossil function.
This commit is contained in:
Domen Kožar 2016-08-21 21:47:00 +02:00 committed by GitHub
commit 76dca3d0e0
3 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,22 @@
source $stdenv/setup
header "Cloning Fossil $url [$rev] into $out"
# Fossil, bless its adorable little heart, wants to write global configuration
# to $HOME/.fossil. AFAICT, there is no way to disable this functionality.
# Instead, we'll let it write to the build directory.
export HOME=$(pwd)
# We must explicitly set the admin user for the clone to something reasonable.
fossil clone -A nobody "$url" fossil-clone.fossil
mkdir fossil-clone
WORKDIR=$(pwd)
mkdir $out
pushd $out
fossil open "$WORKDIR/fossil-clone.fossil" "$rev"
popd
# Just nuke the checkout file.
rm $out/.fslckout
stopNest

View File

@ -0,0 +1,20 @@
{stdenv, fossil}:
{name ? null, url, rev, sha256}:
stdenv.mkDerivation {
name = "fossil-archive" + (if name != null then "-${name}" else "");
builder = ./builder.sh;
buildInputs = [fossil];
# Envvar docs are hard to find. A link for the future:
# https://www.fossil-scm.org/index.html/doc/trunk/www/env-opts.md
impureEnvVars = [ "http_proxy" ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = sha256;
inherit url rev;
preferLocalBuild = true;
}

View File

@ -162,6 +162,8 @@ in
fetchdarcs = callPackage ../build-support/fetchdarcs { };
fetchfossil = callPackage ../build-support/fetchfossil { };
fetchgit = callPackage ../build-support/fetchgit {
git = gitMinimal;
};