diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/tup')
-rw-r--r-- | nixpkgs/pkgs/development/tools/build-managers/tup/default.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix b/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix new file mode 100644 index 000000000000..709528b2ad30 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchFromGitHub, fuse, pkgconfig, pcre }: + +stdenv.mkDerivation rec { + pname = "tup"; + version = "0.7.8"; + + src = fetchFromGitHub { + owner = "gittup"; + repo = "tup"; + rev = "v${version}"; + sha256 = "07dmz712zbs5kayf98kywp7blssgh0y2gc1623jbsynmqwi77mcb"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ fuse pcre ]; + + configurePhase = '' + sed -i 's/`git describe`/v${version}/g' src/tup/link.sh + sed -i 's/pcre-confg/pkg-config pcre/g' Tupfile Tuprules.tup + ''; + + # Regular tup builds require fusermount to have suid, which nix cannot + # currently provide in a build environment, so we bootstrap and use 'tup + # generate' instead + buildPhase = '' + ./build.sh + ./build/tup init + ./build/tup generate script.sh + ./script.sh + ''; + + installPhase = '' + mkdir -p $out/bin + cp tup $out/bin/ + + mkdir -p $out/share/man/man1 + cp tup.1 $out/share/man/man1/ + ''; + + meta = with stdenv.lib; { + description = "A fast, file-based build system"; + longDescription = '' + Tup is a file-based build system for Linux, OSX, and Windows. It inputs a list + of file changes and a directed acyclic graph (DAG), then processes the DAG to + execute the appropriate commands required to update dependent files. Updates are + performed with very little overhead since tup implements powerful build + algorithms to avoid doing unnecessary work. This means you can stay focused on + your project rather than on your build system. + ''; + homepage = "http://gittup.org/tup/"; + license = licenses.gpl2; + platforms = platforms.linux ++ platforms.darwin; + }; +} |