summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2012-01-30 11:40:20 +0000
committerPeter Simons <simons@cryp.to>2012-01-30 11:40:20 +0000
commitc5ecd1752cb2cdbea34c586acddbcd908683f139 (patch)
tree7175389f10e68ff835714d86b0063f3cd90537b0 /pkgs
parentf1e16ea3c9e7f93f6e9f29586cff016c92fd44d3 (diff)
downloadnixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar.gz
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar.bz2
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar.lz
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar.xz
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.tar.zst
nixpkgs-c5ecd1752cb2cdbea34c586acddbcd908683f139.zip
hardlink: initial version
Hardlink consolidates duplicate files in a directory hierarchy with hardlinks,
similar to "nix-store --optimise".

IHMO, this program should be run by the default builder after $out has been set
up, to remove redundancy in the generated closures.

svn path=/nixpkgs/trunk/; revision=31934
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/tools/system/hardlink/default.nix37
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix
new file mode 100644
index 00000000000..1655fdba6f4
--- /dev/null
+++ b/pkgs/tools/system/hardlink/default.nix
@@ -0,0 +1,37 @@
+{ fetchurl, stdenv }:
+
+let
+  rev = "269cc6";
+
+  src = fetchurl {
+    url = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.c;hb=${rev}";
+    sha256 = "721c54e653772e11bf0d30fb02aa21b96b147a1b68c0acb4f05cb87e7718bc12";
+    name = "hardlink.c";
+  };
+
+  man =  fetchurl {
+    url = "pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.1;hb=${rev}";
+    sha256 = "2f7e18a0259a2ceae316592e8b18bee525eb7e83fe3bb6b881e5dafa24747f2d";
+    name = "hardlink.1";
+  };
+in
+stdenv.mkDerivation {
+  name = "hardlink-2010.1.${rev}";
+
+  phases = ["buildPhase"];
+
+  buildPhase = ''
+    mkdir -p $out/bin $out/share/man/man1
+    gcc -O2 ${src} -o $out/bin/hardlink
+    install -m 444 ${man} $out/share/man/man1/hardlink.1
+  '';
+
+  meta = {
+    homepage = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=summary";
+    description = "consolidate duplicate files via hardlinks";
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4bf3f43d455..7b43cae587e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -830,6 +830,8 @@ let
 
   pigz = callPackage ../tools/compression/pigz { };
 
+  hardlink = callPackage ../tools/system/hardlink { };
+
   halibut = callPackage ../tools/typesetting/halibut { };
 
   hddtemp = callPackage ../tools/misc/hddtemp { };