diff --git a/pkgs/development/tools/build-managers/tup/default.nix b/pkgs/development/tools/build-managers/tup/default.nix new file mode 100644 index 00000000000..872a65889df --- /dev/null +++ b/pkgs/development/tools/build-managers/tup/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub, fuse, pkgconfig }: + +stdenv.mkDerivation rec { + name = "tup-${version}"; + version = "0.7.3"; + + src = fetchFromGitHub { + owner = "gittup"; + repo = "tup"; + rev = "v${version}"; + sha256 = "1x2grwmlf2izip4djb8cjwgl8p3x0bmfqwzjsc017mqi17qkijy8"; + }; + + buildInputs = [ fuse pkgconfig ]; + + configurePhase = '' + sed -i 's/`git describe`/v${version}/g' Tupfile + ''; + + # 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 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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7fe6b9f53fe..300db46e0fc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13042,6 +13042,8 @@ let thinkfan = callPackage ../tools/system/thinkfan { }; + tup = callPackage ../development/tools/build-managers/tup { }; + vice = callPackage ../misc/emulators/vice { libX11 = xlibs.libX11; giflib = giflib_4_1;