* Refactoring: move most filesystem utilities / FUSE filesystems to

tools/filesystems.  Previously they were all over the place.

svn path=/nixpkgs/trunk/; revision=18809
This commit is contained in:
Eelco Dolstra
2009-12-04 15:39:49 +00:00
parent 064aae6461
commit c726012afe
25 changed files with 63 additions and 114 deletions
+17
View File
@@ -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";
};
}
@@ -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];
};
}
@@ -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];
}
@@ -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;
};
}
@@ -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";
};
}
@@ -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";
};
}
@@ -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;
};
}
@@ -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";
}
@@ -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";
}
+22
View File
@@ -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";
};
}
@@ -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";
};
}
@@ -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";
};
}
@@ -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";
};
}
@@ -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";
};
}
@@ -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";
};
}
@@ -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)
@@ -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);*/
+55
View File
@@ -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;
};
}
@@ -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;
};
}
@@ -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";
};
}
@@ -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";
};
}
+15
View File
@@ -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";
};
}
@@ -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";
};
}