about summary refs log tree commit diff
path: root/pkgs/tools/filesystems
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-12-04 15:39:49 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-12-04 15:39:49 +0000
commitc726012afe1dbd13da7ab15381e3de2867bc8af5 (patch)
tree123888653c98ee60761109c9b3c59f706695b064 /pkgs/tools/filesystems
parent064aae6461971ed76ff4ed5bc8e043840592c04a (diff)
downloadnixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar.gz
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar.bz2
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar.lz
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar.xz
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.tar.zst
nixlib-c726012afe1dbd13da7ab15381e3de2867bc8af5.zip
* Refactoring: move most filesystem utilities / FUSE filesystems to
  tools/filesystems.  Previously they were all over the place.

svn path=/nixpkgs/trunk/; revision=18809
Diffstat (limited to 'pkgs/tools/filesystems')
-rw-r--r--pkgs/tools/filesystems/aefs/default.nix17
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix36
-rw-r--r--pkgs/tools/filesystems/curlftpfs/default.nix10
-rw-r--r--pkgs/tools/filesystems/dosfstools/default.nix24
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix24
-rw-r--r--pkgs/tools/filesystems/genext2fs/default.nix9
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix28
-rw-r--r--pkgs/tools/filesystems/glusterfs/src-for-default.nix8
-rw-r--r--pkgs/tools/filesystems/glusterfs/src-info-for-default.nix6
-rw-r--r--pkgs/tools/filesystems/jfsrec/default.nix22
-rw-r--r--pkgs/tools/filesystems/jfsutils/default.nix16
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix26
-rw-r--r--pkgs/tools/filesystems/ntfsprogs/default.nix23
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix21
-rw-r--r--pkgs/tools/filesystems/reiserfsprogs/default.nix18
-rw-r--r--pkgs/tools/filesystems/reiserfsprogs/headers-fix.patch19
-rw-r--r--pkgs/tools/filesystems/reiserfsprogs/verbose-flag-ignore-for-compatibility.patch32
-rw-r--r--pkgs/tools/filesystems/relfs/default.nix55
-rw-r--r--pkgs/tools/filesystems/smbfs-fuse/default.nix28
-rw-r--r--pkgs/tools/filesystems/squashfs/default.nix25
-rw-r--r--pkgs/tools/filesystems/sshfs-fuse/default.nix17
-rw-r--r--pkgs/tools/filesystems/wdfs/default.nix15
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix23
23 files changed, 502 insertions, 0 deletions
diff --git a/pkgs/tools/filesystems/aefs/default.nix b/pkgs/tools/filesystems/aefs/default.nix
new file mode 100644
index 000000000000..8bf52795be2d
--- /dev/null
+++ b/pkgs/tools/filesystems/aefs/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, fuse}:
+  
+stdenv.mkDerivation {
+  name = "aefs-0.3pre285";
+  
+  src = fetchurl {
+    url = http://nixos.org/tarballs/aefs-0.3pre285.tar.bz2;
+    sha256 = "1psciqllzm08c21h6k2zxmvmi0grkvaiq177giv1avzzzfhq0z3c";
+  };
+
+  buildInputs = [fuse];
+
+  meta = {
+    homepage = http://www.st.ewi.tudelft.nl/~dolstra/aefs/;
+    description = "A cryptographic filesystem implemented in userspace using FUSE";
+  };
+}
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
new file mode 100644
index 000000000000..377f95919752
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -0,0 +1,36 @@
+a :  
+let 
+  fetchurl = a.fetchurl;
+
+  version = a.lib.attrByPath ["version"] "0.19" a; 
+  buildInputs = with a; [
+    zlib libuuid acl 
+  ];
+in
+
+assert a.libuuid != null;
+
+rec {
+  src = fetchurl {
+    url = "http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/btrfs-progs-${version}.tar.bz2";
+    sha256 = "1z3hmfgv7h489gnh55abm0gzyf2cgjkybhfc2rnm0cvsx01xv8zq";
+  };
+
+  inherit buildInputs;
+  configureFlags = [];
+  makeFlags = ["prefix=$out"];
+
+  phaseNames = ["doEnsureBtrfsImage" "doMakeInstall"];
+      
+  doEnsureBtrfsImage = a.fullDepEntry (''
+    if ! grep 'progs = ' Makefile | grep btrfs-image; then 
+      sed -e 's/progs = .*/& btrfs-image/' -i Makefile
+    fi
+  '') ["minInit" "doUnpack"];
+
+  name = "btrfs-progs-" + version;
+  meta = {
+    description = "BTRFS utilities";
+    maintainers = [a.lib.maintainers.raskin];
+  };
+}
diff --git a/pkgs/tools/filesystems/curlftpfs/default.nix b/pkgs/tools/filesystems/curlftpfs/default.nix
new file mode 100644
index 000000000000..6d90cae5dc5b
--- /dev/null
+++ b/pkgs/tools/filesystems/curlftpfs/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl, fuse, curl, pkgconfig, glib, zlib}:
+
+stdenv.mkDerivation {
+  name = "curlftpfs-0.9.1";
+  src = fetchurl {
+    url = mirror://sourceforge/curlftpfs/curlftpfs-0.9.1.tar.gz;
+    sha256 = "9f50cdf02c0dc31ef148410345b2374d294d8853d2dae11775e36b0268ad227d";
+  };
+  buildInputs = [fuse curl pkgconfig glib zlib];
+}
diff --git a/pkgs/tools/filesystems/dosfstools/default.nix b/pkgs/tools/filesystems/dosfstools/default.nix
new file mode 100644
index 000000000000..43691c227143
--- /dev/null
+++ b/pkgs/tools/filesystems/dosfstools/default.nix
@@ -0,0 +1,24 @@
+args : with args; with builderDefs;
+       let localDefs = builderDefs.passthru.function (rec {
+         src = /* put a fetchurl here */
+           fetchurl {
+            url = http://www.daniel-baumann.ch/software/dosfstools/dosfstools-3.0.1.tar.bz2;
+            sha256 = "7fab0de42391277028071d01ff4da83ff9a399408ccf29958cdee62ffe746d45";
+           };
+
+        buildInputs = [];
+        configureFlags = [];
+        makeFlags = " PREFIX=$out ";
+    });
+    in with localDefs;
+stdenv.mkDerivation rec {
+    name = "dosfstools-3.01";
+    builder = writeScript (name + "-builder")
+        (textClosure localDefs 
+            ["doMakeInstall" doForceShare doPropagate]);
+    meta = {
+        description = "Dosfstools - utilities for vfat file system.";
+	homepage = "http://www.daniel-baumann.ch/software/dosfstools/";
+        inherit src;
+    };
+}
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
new file mode 100644
index 000000000000..0932eb1191f8
--- /dev/null
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, pkgconfig, libuuid}:
+
+stdenv.mkDerivation rec {
+  name = "e2fsprogs-1.41.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
+    sha256 = "1s365fpv5w5m8n6n5fnn6q003whr1clr22xn25wkssx1c51f7wfb";
+  };
+
+  buildInputs = [pkgconfig libuuid];
+
+  # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
+  configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck";
+
+  preInstall = "installFlagsArray=('LN=ln -s')";
+  
+  postInstall = "make install-libs";
+  
+  meta = {
+    homepage = http://e2fsprogs.sourceforge.net/;
+    description = "Tools for creating and checking ext2/ext3/ext4 filesystems";
+  };
+}
diff --git a/pkgs/tools/filesystems/genext2fs/default.nix b/pkgs/tools/filesystems/genext2fs/default.nix
new file mode 100644
index 000000000000..d58167ab8473
--- /dev/null
+++ b/pkgs/tools/filesystems/genext2fs/default.nix
@@ -0,0 +1,9 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "genext2fs-1.4.1";
+  src = fetchurl {
+    url = mirror://sourceforge/genext2fs/genext2fs-1.4.1.tar.gz;
+    sha256 = "1z7czvsf3ircvz2cw1cf53yifsq29ljxmj15hbgc79l6gbxbnka0";
+  };
+}
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
new file mode 100644
index 000000000000..3995faa588bc
--- /dev/null
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -0,0 +1,28 @@
+a :  
+let 
+  s = import ./src-for-default.nix;
+  buildInputs = with a; [
+    fuse bison flex
+  ];
+in
+rec {
+  src = a.fetchUrlFromSrcInfo s;
+
+  inherit (s) name;
+  inherit buildInputs;
+  configureFlags = [
+    ''--with-mountutildir="$out/sbin"''
+    ];
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+      
+  meta = {
+    description = "Distributed storage system";
+    maintainers = [
+      a.lib.maintainers.raskin
+    ];
+    platforms = with a.lib.platforms; 
+      linux ++ freebsd;
+  };
+}
diff --git a/pkgs/tools/filesystems/glusterfs/src-for-default.nix b/pkgs/tools/filesystems/glusterfs/src-for-default.nix
new file mode 100644
index 000000000000..eeda32796f5b
--- /dev/null
+++ b/pkgs/tools/filesystems/glusterfs/src-for-default.nix
@@ -0,0 +1,8 @@
+rec {
+  advertisedUrl="http://ftp.gluster.com/pub/gluster/glusterfs/2.0/2.0.6/glusterfs-2.0.6.tar.gz";
+  version = "2.0.6";
+  url="http://ftp.gluster.com/pub/gluster/glusterfs/2.0/2.0.6/glusterfs-2.0.6.tar.gz";
+  hash = "0qr8smwncrr63vzbaf2v4fwpdck3jpgywn2rq8sdhifff67ydc9h";
+  name = "glusterfs-2.0.6";
+  
+}
diff --git a/pkgs/tools/filesystems/glusterfs/src-info-for-default.nix b/pkgs/tools/filesystems/glusterfs/src-info-for-default.nix
new file mode 100644
index 000000000000..273ee4512e1f
--- /dev/null
+++ b/pkgs/tools/filesystems/glusterfs/src-info-for-default.nix
@@ -0,0 +1,6 @@
+{
+  downloadPage = "http://ftp.gluster.com/pub/gluster/glusterfs/2.0/";
+  sourceRegexp = "^2[.]0[.]";
+  choiceCommand = ''tail -1 | sed -re 's@(.*)/@&glusterfs-\1.tar.gz@' '';
+  baseName = "glusterfs";
+}
diff --git a/pkgs/tools/filesystems/jfsrec/default.nix b/pkgs/tools/filesystems/jfsrec/default.nix
new file mode 100644
index 000000000000..a805e86f0dd6
--- /dev/null
+++ b/pkgs/tools/filesystems/jfsrec/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, boost }:
+
+stdenv.mkDerivation {
+  name = "jfsrec-pre-svn-7";
+  
+  src = fetchurl {
+    url = http://downloads.sourceforge.net/jfsrec/jfsrec-svn-7.tar.gz;
+    sha256 = "163z6ljr05vw2k5mj4fim2nlg4khjyibrii95370pvn474mg28vg";
+  };
+
+  buildInputs = [ boost ];
+
+  preConfigure =
+    ''
+      sed -e '/[#]include [<]config.h[>]/a\#include <string.h>' -i src/unicode_to_utf8.cpp
+      cat src/unicode_to_utf8.cpp
+    '';
+
+  meta = {
+    description = "JFS recovery tool";
+  };
+}
diff --git a/pkgs/tools/filesystems/jfsutils/default.nix b/pkgs/tools/filesystems/jfsutils/default.nix
new file mode 100644
index 000000000000..79a9fad0e79b
--- /dev/null
+++ b/pkgs/tools/filesystems/jfsutils/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, libuuid }:
+
+stdenv.mkDerivation rec {
+  name = "jfsutils-1.1.12";
+
+  src = fetchurl {
+    url = "http://jfs.sourceforge.net/project/pub/${name}.tar.gz";
+    sha256 = "04vqdlg90j0mk5jkxpfg9fp6ss4gs1g5pappgns6183q3i6j02hd";
+  };
+
+  buildInputs = [ libuuid ];
+
+  meta = {
+    description = "IBM JFS utilities";
+  };
+}
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
new file mode 100644
index 000000000000..511a4e1eadf4
--- /dev/null
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, utillinux}:
+
+stdenv.mkDerivation rec {
+  pname = "ntfs-3g";
+  version = "2009.4.4";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "${meta.homepage}/${name}.tgz";
+    sha256 = "03qdbv0c6gfssmb2s0zzqhwp447n2hgr2qjvc0p527slj2z9xlxw";
+  };
+
+  preConfigure = ''
+    substituteInPlace src/Makefile.in --replace /sbin '@sbindir@' 
+    substituteInPlace libfuse-lite/mount_util.c \
+      --replace /bin/mount ${utillinux}/bin/mount \
+      --replace /bin/umount ${utillinux}/bin/umount
+  '';
+
+  configureFlags = "--disable-ldconfig --exec-prefix=\${prefix} --enable-mount-helper";
+
+  meta = {
+    homepage = http://www.ntfs-3g.org;
+    description = "FUSE-base NTFS driver with full write support";
+  };
+}
diff --git a/pkgs/tools/filesystems/ntfsprogs/default.nix b/pkgs/tools/filesystems/ntfsprogs/default.nix
new file mode 100644
index 000000000000..3deb668eddb2
--- /dev/null
+++ b/pkgs/tools/filesystems/ntfsprogs/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, libuuid}:
+
+stdenv.mkDerivation rec {
+  name = "ntfsprogs-2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/linux-ntfs/${name}.tar.bz2";
+    sha256 = "ad36e19706c7303b10aa0a9bf2c2dd0309b91cd0171f1c9eb361d94a85017432";
+  };
+
+  buildInputs = [libuuid];
+
+  preConfigure =
+    ''
+      substituteInPlace ntfsprogs/Makefile.in --replace /sbin $out/sbin
+    '';
+
+  meta = {
+    description = "Utilities for the NTFS filesystem";
+    homepage = http://sourceforge.net/projects/linux-ntfs;
+    license = "GPL";
+  };
+}
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
new file mode 100644
index 000000000000..235b2b8381ba
--- /dev/null
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, libaal}:
+
+stdenv.mkDerivation {
+  name = "reiser4progs-1.0.6";
+
+  src = fetchurl {
+    url = http://chichkin_i.zelnet.ru/namesys/reiser4progs-1.0.6.tar.gz;
+    sha256 = "0x6m6px19hz54r8q4wwpf437qmqh44c5ddw9846isr64zs2rpld0";
+  };
+
+  buildInputs = [libaal];
+
+  preInstall = ''
+    substituteInPlace Makefile --replace ./run-ldconfig true
+  '';
+
+  meta = {
+    homepage = http://www.namesys.com/;
+    description = "Reiser4 utilities";
+  };
+}
diff --git a/pkgs/tools/filesystems/reiserfsprogs/default.nix b/pkgs/tools/filesystems/reiserfsprogs/default.nix
new file mode 100644
index 000000000000..f036e0a08bc8
--- /dev/null
+++ b/pkgs/tools/filesystems/reiserfsprogs/default.nix
@@ -0,0 +1,18 @@
+args: with args;
+
+stdenv.mkDerivation {
+  name = "reiserfsprogs-3.6.19-patched";
+
+  src = fetchurl {
+    url = http://chichkin_i.zelnet.ru/namesys/reiserfsprogs-3.6.19.tar.gz;
+    sha256 = "1gv8gr0l5l2j52540y2wj9c9h7fn0r3vabykf95748ydmr9jr1n0";
+  };
+
+  patches = [./headers-fix.patch ./verbose-flag-ignore-for-compatibility.patch ];
+
+  meta = {
+    homepage = http://www.namesys.com/;
+    description = "Reiserfs utilities";
+    license = "GPL-2";
+  };
+}
diff --git a/pkgs/tools/filesystems/reiserfsprogs/headers-fix.patch b/pkgs/tools/filesystems/reiserfsprogs/headers-fix.patch
new file mode 100644
index 000000000000..2c6693dae75c
--- /dev/null
+++ b/pkgs/tools/filesystems/reiserfsprogs/headers-fix.patch
@@ -0,0 +1,19 @@
+diff -pruN 1:3.6.19-4/include/reiserfs_fs.h 1:3.6.19-4ubuntu2/include/reiserfs_fs.h
+--- 1:3.6.19-4/include/reiserfs_fs.h	2004-09-16 08:49:05.000000000 +0100
++++ 1:3.6.19-4ubuntu2/include/reiserfs_fs.h	2006-12-14 18:08:28.000000000 +0000
+@@ -38,15 +38,10 @@
+ # define extern_inline
+ #endif
+ 
+-#include <asm/unaligned.h>
+-
+ #ifndef get_unaligned
+-#if defined(__ppc__) || defined(ppc) || defined(__ppc) || \
+-    defined(__PPC) || defined(powerpc) || defined(__powerpc__)
+ #	define get_unaligned(ptr)	(*(ptr))
+ #	define put_unaligned(val,ptr)	((void)(*(ptr) = (val)))
+ #endif
+-#endif
+ 
+ #define get_leXX(xx,p,field)	(le##xx##_to_cpu ((p)->field))
+ #define set_leXX(xx,p,field,val) do { (p)->field = cpu_to_le##xx(val); } while (0)
diff --git a/pkgs/tools/filesystems/reiserfsprogs/verbose-flag-ignore-for-compatibility.patch b/pkgs/tools/filesystems/reiserfsprogs/verbose-flag-ignore-for-compatibility.patch
new file mode 100644
index 000000000000..802971b73fdc
--- /dev/null
+++ b/pkgs/tools/filesystems/reiserfsprogs/verbose-flag-ignore-for-compatibility.patch
@@ -0,0 +1,32 @@
+diff --git a/fsck/main.c b/fsck/main.c
+index ab3342a..79a0473 100644
+--- a/fsck/main.c
++++ b/fsck/main.c
+@@ -37,6 +37,7 @@ fsck_progress ("Usage: %s [mode] [options] "					\
+ "  -z | --adjust-size\t\tfix file sizes to real size\n"				\
+ "  -q | --quiet\t\t\tno speed info\n"						\
+ "  -y | --yes\t\t\tno confirmations\n"						\
++"  -v         \t\t ignore -v option for compatibility to fsck.* tools\n"						\
+ "  -V\t\t\t\tprints version and exits\n"					\
+ "  -a and -p\t\t\tsome light-weight auto checks for bootup\n"			\
+ "  -f and -r\t\t\tignored\n"							\
+@@ -131,7 +132,7 @@ static char * parse_options (struct fsck_data * data, int argc, char * argv [])
+ 	};
+ 	int option_index;
+       
+-	c = getopt_long (argc, argv, "iql:nb:Szd:R:h:j:gafVrpyt:B:",
++	c = getopt_long (argc, argv, "iql:nb:Szd:R:h:j:gafVrpyvt:B:",
+ 			 options, &option_index);
+ 	if (c == -1)
+ 	    break;
+@@ -158,6 +159,10 @@ static char * parse_options (struct fsck_data * data, int argc, char * argv [])
+ 	    data->options |= OPT_YES;
+ 	    break;
+ 
++	case 'v': /* --quiet */
++            reiserfs_warning(stdout, "\nignoring -v option for compatibility\n");
++	    break;
++
+ 	case 'l': /* --logfile */
+ 	    data->log_file_name = optarg;
+ 	    /*asprintf (&data->log_file_name, "%s", optarg);*/
diff --git a/pkgs/tools/filesystems/relfs/default.nix b/pkgs/tools/filesystems/relfs/default.nix
new file mode 100644
index 000000000000..178aa700fa5e
--- /dev/null
+++ b/pkgs/tools/filesystems/relfs/default.nix
@@ -0,0 +1,55 @@
+
+args : with args;
+	let localDefs = builderDefs.passthru.function {
+	src = /* put a fetchurl here */
+	if args ? src then args.src else fetchcvs {
+		cvsRoot = ":pserver:anonymous@relfs.cvs.sourceforge.net:/cvsroot/relfs";
+		module = "relfs";
+		date = "2008-03-05";
+		sha256 = "949f8eff7e74ff2666cccf8a1efbfcce8d54bc41bec6ad6db8c029de7ca832a3";
+	};
+		
+		buildInputs = [ocaml fuse postgresql pcre
+			libuuid gnomevfs pkgconfig GConf];
+		configureFlags = [];
+		    build = builderDefs.stringsWithDeps.fullDepEntry ("
+			cd deps 
+			sed -e 's/^CPP/#&/ ; s/^# CPP=gcc/CPP=gcc/' -i Makefile.camlidl
+			make 
+			cd ../src
+			sed -e 's/NULL\\|FALSE/0/g' -i Mimetype_lib.c
+			sed -e 's@/usr/local/@'\$out/'@' -i Makefile
+			sed -e '/install:/a\\\tmkdir -p '\$out'/share' -i Makefile
+			make
+			mkdir -p \$out/bin
+			echo '
+				createuser -A -D \$1
+				dropdb relfs_\$1 ; 
+				rm -rf /tmp/relfs-\$1-tmp;  
+				mkdir /tmp/relfs-\$1-tmp;  
+				USER=\$1 relfs -f -s /tmp/relfs-\$1-tmp  & 
+				sleep 1 && 
+				kill -15 \${!};
+				rm -rf /tmp/relfs-\$1-tmp ; 
+				psql -d relfs_\$1 <<< \"ALTER DATABASE relfs_\$1 OWNER TO \$1; 
+					ALTER TABLE obj OWNER TO \$1; 
+					ALTER TABLE obj_mimetype OWNER TO \$1; 
+					ALTER TABLE membership OWNER TO \$1;\"' > \$out/bin/relfs_grant;
+			chmod a+x \$out/bin/relfs_grant;
+		") ["minInit" "doUnpack" "addInputs"];
+	};
+	in with localDefs;
+
+assert args.libuuid != null;
+        
+stdenv.mkDerivation rec {
+	name = "relfs-2008.03.05";
+	builder = writeScript (name + "-builder")
+		(textClosure localDefs ["build" "doMakeInstall" "doForceShare" "doPropagate"]);
+	meta = {
+		description = "A relational filesystem on top of FUSE";
+		inherit src;
+    		maintainers = [args.stdenv.lib.maintainers.raskin];
+		platforms = args.stdenv.lib.platforms.linux;
+	};
+}
diff --git a/pkgs/tools/filesystems/smbfs-fuse/default.nix b/pkgs/tools/filesystems/smbfs-fuse/default.nix
new file mode 100644
index 000000000000..4b656b70388b
--- /dev/null
+++ b/pkgs/tools/filesystems/smbfs-fuse/default.nix
@@ -0,0 +1,28 @@
+args : with args; with builderDefs;
+	let localDefs = builderDefs.passthru.function {
+		src = /* put a fetchurl here */
+		fetchurl {
+			url = http://www.ricardis.tudelft.nl/~vincent/fusesmb/download/fusesmb-0.8.7.tar.gz;
+			sha256 = "12gz2gn9iqjg27a233dn2wij7snm7q56h97k6gks0yijf6xcnpz1";
+		};
+
+		buildInputs = [samba fuse];
+		configureFlags = [];
+		postInstall = fullDepEntry 
+		(''
+		ensureDir $out/lib
+		ln -fs ${samba}/lib/libsmbclient.so $out/lib/libsmbclient.so.0
+		'')
+		[ "minInit" "defEnsureDir" "doMakeInstall"];
+	};
+	in with localDefs;
+stdenv.mkDerivation rec {
+	name = "smbfs-fuse-0.8.7";
+	builder = writeScript (name + "-builder")
+		(textClosure localDefs 
+			[doConfigure doMakeInstall postInstall doForceShare doPropagate]);
+  meta = {
+   description = "Samba mounted via FUSE";
+   inherit src;
+  };
+}
diff --git a/pkgs/tools/filesystems/squashfs/default.nix b/pkgs/tools/filesystems/squashfs/default.nix
new file mode 100644
index 000000000000..30cb4b811490
--- /dev/null
+++ b/pkgs/tools/filesystems/squashfs/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, zlib}:
+
+stdenv.mkDerivation rec {
+  name = "squashfs-4.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/squashfs/squashfs4.0.tar.gz;
+    sha256 = "089fw543fx2d3dadszjv5swf8hr6jvxrpagf0x1jrb3bw3dqx50q";
+  };
+  
+  buildInputs = [zlib];
+
+  preBuild = ''
+    cd squashfs-tools
+  '';
+
+  NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
+
+  installFlags = "INSTALL_DIR=\${out}/bin";
+
+  meta = {
+    homepage = http://squashfs.sourceforge.net/;
+    description = "Tool for creating and unpacking squashfs filesystems";
+  };
+}
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
new file mode 100644
index 000000000000..5138ad2b022d
--- /dev/null
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, pkgconfig, glib, fuse}:
+
+stdenv.mkDerivation {
+  name = "sshfs-fuse-2.1";
+  
+  src = fetchurl {
+    url = mirror://sourceforge/fuse/sshfs-fuse-2.1.tar.gz;
+    sha256 = "0cyjq8dwrv3rhj7a52sd3fmljh5fdphlsnvqx51v6hbgd3jgld0j";
+  };
+  
+  buildInputs = [pkgconfig glib fuse];
+
+  meta = {
+    homepage = http://fuse.sourceforge.net/sshfs.html;
+    description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
+  };
+}
diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix
new file mode 100644
index 000000000000..8bd7101d8f2a
--- /dev/null
+++ b/pkgs/tools/filesystems/wdfs/default.nix
@@ -0,0 +1,15 @@
+{stdenv, fetchurl, glib, neon, fuse, pkgconfig}:
+
+stdenv.mkDerivation rec
+{
+  name = "wdfs-fuse-1.4.2";
+  src = fetchurl {
+    url = "http://noedler.de/projekte/wdfs/${name}.tar.gz";
+    sha256 = "fcf2e1584568b07c7f3683a983a9be26fae6534b8109e09167e5dff9114ba2e5";
+  };
+  buildInputs = [fuse glib neon pkgconfig];
+  meta = {
+    homepage = "http://noedler.de/projekte/wdfs/";
+    description = "wdfs a user-space filesystem that allows to mount a webdav share";
+  };
+}
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
new file mode 100644
index 000000000000..3487867ee751
--- /dev/null
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libtool, gettext, libuuid }:
+
+stdenv.mkDerivation {
+  name = "xfsprogs-2.9.7-1";
+
+  src = fetchurl {
+    urls = [ ftp://oss.sgi.com/projects/xfs/previous/cmd_tars/xfsprogs_2.9.7-1.tar.gz http://ftp.lfs-matrix.org/pub/blfs/svn/x/xfsprogs_2.9.7-1.tar.gz ];
+    sha256 = "0g4pr1rv4lgc7vab18wiwrcr6jq40fs1krb2vfkgh779p7gf3il7";
+  };
+
+  buildInputs = [libtool gettext libuuid];
+
+  preConfigure =
+    ''
+      sp_path=$(echo $PATH | sed -e 's/:/ /g');
+      sed -e 's@/usr/bin@'"$PATH: $sp_path"'@g' -i configure
+      sed -e 's@/usr/local/bin@'"$PATH: sp_path"'@g' -i configure
+    '';
+
+  meta = {
+    description = "SGI XFS utilities";
+  };
+}