Added e3cfsprogs and ext3cow-tools. Ext3cow is a stand-alone disk file system, (e.g. ReiserFS, HFS, NTFS) based on ext3, that supports versioning through copy-on-write and a time-shifting interface.

svn path=/nixpkgs/trunk/; revision=9010
This commit is contained in:
Wouter den Breejen 2007-07-20 15:50:54 +00:00
parent 5760cd599d
commit 5e12937f30
7 changed files with 18638 additions and 0 deletions

View File

@ -0,0 +1,12 @@
source $stdenv/setup
tar -zxvf $src
cd e3cfsprogs*/
mkdir build;
cd build;
../configure --prefix=$out
make
#make check #almost all checks fail... maybe they have to be done on a ext3cow fs ???
make install

View File

@ -0,0 +1,30 @@
{stdenv, fetchurl, gettext}:
stdenv.mkDerivation {
name = "e3cfsprogs-1.39";
builder = ./builder.sh;
patches = [ ./e3cfsprogs-1.39_bin_links.patch ./e3cfsprogs-1.39_etc.patch ];
src = fetchurl {
url = http://www.ext3cow.com/Download_files/e3cfsprogs-1.39.tgz;
sha256 = "26f535007a497d91c85d337ac67d62d42e3c8fde2ee02c5cb6b6e3e884a5d58f";
};
configureFlags =
if stdenv ? isDietLibC
then ""
else "--enable-dynamic-e2fsck --enable-elf-shlibs";
buildInputs = [gettext];
preInstall = "installFlagsArray=('LN=ln -s')";
postInstall = "make install-libs";
NIX_CFLAGS_COMPILE =
if stdenv ? isDietLibC then
"-UHAVE_SYS_PRCTL_H " +
(if stdenv.system == "x86_64-linux" then "-DHAVE_LSEEK64_PROTOTYPE=1 -Dstat64=stat" else "")
else "";
}
#note that ext3cow requires the ext3cow kernel patch !!!!

View File

@ -0,0 +1,111 @@
diff -Naur e3cfsprogs-1.39/config/config.guess e3cfsprogs-1.39_mod/config/config.guess
--- e3cfsprogs-1.39/config/config.guess 2006-04-10 00:34:21.000000000 +0200
+++ e3cfsprogs-1.39_mod/config/config.guess 2007-07-20 16:28:58.000000000 +0200
@@ -319,7 +319,7 @@
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
+ case `uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
sun4H:SunOS:5.*:*)
@@ -460,7 +460,7 @@
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ UNAME_PROCESSOR=`uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -1054,7 +1054,7 @@
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
+ case `uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
@@ -1065,14 +1065,14 @@
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ elif uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(uname -X|grep Release|sed -e 's/.*= //')`
+ (uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ (uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ (uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
@@ -1114,12 +1114,12 @@
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
@@ -1471,8 +1471,8 @@
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+uname -p = `(uname -p) 2>/dev/null`
+uname -X = `(uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
diff -Naur e3cfsprogs-1.39/lib/blkid/test_probe.in e3cfsprogs-1.39_mod/lib/blkid/test_probe.in
--- e3cfsprogs-1.39/lib/blkid/test_probe.in 2005-09-10 20:08:42.000000000 +0200
+++ e3cfsprogs-1.39_mod/lib/blkid/test_probe.in 2007-07-20 16:26:02.000000000 +0200
@@ -21,7 +21,7 @@
fi
bunzip2 < $SRCDIR/tests/$i.img.bz2 > /tmp/test.img.$$
./tst_probe /tmp/test.img.$$ > tests/$i.out
- /bin/rm -f /tmp/test.img.$$ tests/$i.ok tests/$i.failed
+ rm -f /tmp/test.img.$$ tests/$i.ok tests/$i.failed
cmp -s tests/$i.out $SRCDIR/tests/$i.results
if [ $? = 0 ]; then
echo ok
diff -Naur e3cfsprogs-1.39/tests/defaults/e_script e3cfsprogs-1.39_mod/tests/defaults/e_script
--- e3cfsprogs-1.39/tests/defaults/e_script 2005-09-06 11:40:14.000000000 +0200
+++ e3cfsprogs-1.39_mod/tests/defaults/e_script 2007-07-20 16:26:26.000000000 +0200
@@ -25,7 +25,7 @@
elif [ "$class" = icount ]; then
TEST_PROG=$TEST_ICOUNT
else
- TEST_PROG=/bin/cat
+ TEST_PROG=cat
fi
cat $SRCDIR/progs/test_data/$instance.setup $SRCDIR/progs/test_data/test.$class \
diff -Naur e3cfsprogs-1.39/util/gcc-wall-cleanup e3cfsprogs-1.39_mod/util/gcc-wall-cleanup
--- e3cfsprogs-1.39/util/gcc-wall-cleanup 2005-09-06 11:40:15.000000000 +0200
+++ e3cfsprogs-1.39_mod/util/gcc-wall-cleanup 2007-07-20 16:30:04.000000000 +0200
@@ -1,4 +1,4 @@
-#!/bin/sed -f
+#!sed -f
#
# This script filters out gcc-wall crud that we're not interested in seeing.
#

View File

@ -0,0 +1,27 @@
diff -Naur e3cfsprogs-1.39/misc/Makefile.in e3cfsprogs-1.39_path_mod/misc/Makefile.in
--- e3cfsprogs-1.39/misc/Makefile.in 2006-03-27 07:58:10.000000000 +0200
+++ e3cfsprogs-1.39_path_mod/misc/Makefile.in 2007-07-20 16:45:04.000000000 +0200
@@ -223,12 +223,12 @@
@$(SUBSTITUTE_UPTIME) $(srcdir)/filefrag.8.in filefrag.8
installdirs:
- @echo " MKINSTALLDIRS $(sbindir) $(root_sbindir) $(bindir) $(man1dir) $(man8dir) $(libdir)"
+ @echo " MKINSTALLDIRS $(sbindir) $(root_sbindir) $(bindir) $(man1dir) $(man8dir) $(libdir) $(root_sysconfdir)"
@$(MKINSTALLDIRS) $(DESTDIR)$(sbindir) \
$(DESTDIR)$(root_sbindir) $(DESTDIR)$(bindir) \
$(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir) \
$(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
- $(DESTDIR)$(libdir) $(DESTDIR)/etc
+ $(DESTDIR)$(libdir) $(DESTDIR)$(root_sysconfdir)/etc
install: all $(SMANPAGES) $(UMANPAGES) installdirs
@for i in $(SPROGS); do \
@@ -291,7 +291,7 @@
@if ! test -f $(DESTDIR)/etc/mke2fs.conf; then \
echo " INSTALL_DATA /etc/mke2fs.conf"; \
$(INSTALL_DATA) $(srcdir)/mke2fs.conf \
- $(DESTDIR)/etc/mke2fs.conf; \
+ $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
fi
install-strip: install

View File

@ -0,0 +1,14 @@
source $stdenv/setup
tar -zxvf $src
cd ext3cow-tools/
kernelslashed=$(echo $kernel | sed 's/\//\\\//g')
sed -i "s/linux\/ext3cow_fs.h/$kernelslashed\/lib\/modules\/2.6.21.5-default\/build\/include\/linux\/ext3cow_fs.h/" ext3cow_tools.h #ugh dirty header rewrite....
make
ensureDir $out/bin/
cp ss $out/bin/snapshot
cp tt $out/bin/
cp e2d $out/bin/

View File

@ -0,0 +1,16 @@
{stdenv, fetchurl, kernel_ext3cowpatched }:
stdenv.mkDerivation {
name = "ext3cow-tools";
builder = ./builder.sh;
src = fetchurl {
url = http://www.ext3cow.com/Download_files/ext3cow-tools-1.tgz;
sha256 = "78f55b19c8eeaa7b8abde63c7d6547b1ac0421a46d826a8d41c049719a3081f2";
};
kernel = kernel_ext3cowpatched;
}
#note that ext3cow requires the ext3cow kernel patch !!!!

File diff suppressed because it is too large Load Diff