diff --git a/.cvsignore b/.cvsignore
index e69de29..025cfa4 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -0,0 +1 @@
+glusterfs-1.3.8.tar.gz
diff --git a/glusterfs-1.3.7-ocreat.patch b/glusterfs-1.3.7-ocreat.patch
new file mode 100644
index 0000000..5b0aa88
--- /dev/null
+++ b/glusterfs-1.3.7-ocreat.patch
@@ -0,0 +1,12 @@
+diff -Naupr glusterfs-1.3.7.orig/xlators/protocol/server/src/server-protocol.c glusterfs-1.3.7/xlators/protocol/server/src/server-protocol.c
+--- glusterfs-1.3.7.orig/xlators/protocol/server/src/server-protocol.c 2007-10-16 09:37:00.000000000 +0200
++++ glusterfs-1.3.7/xlators/protocol/server/src/server-protocol.c 2007-11-26 11:49:05.000000000 +0100
+@@ -4930,7 +4930,7 @@ mop_setspec (call_frame_t *frame,
+ goto fail;
+ }
+
+- ret = open (GLUSTERFSD_SPEC_PATH, O_WRONLY | O_CREAT | O_SYNC);
++ ret = open (GLUSTERFSD_SPEC_PATH, O_WRONLY | O_CREAT | O_SYNC, 0644);
+ spec_fd = ret;
+ if (spec_fd < 0){
+ remote_errno = errno;
diff --git a/glusterfs-1.3.8-mount.patch b/glusterfs-1.3.8-mount.patch
new file mode 100644
index 0000000..61b7493
--- /dev/null
+++ b/glusterfs-1.3.8-mount.patch
@@ -0,0 +1,16 @@
+diff -Naupr glusterfs-1.3.8.orig/glusterfs-fuse/utils/mount.glusterfs.in glusterfs-1.3.8/glusterfs-fuse/utils/mount.glusterfs.in
+--- glusterfs-1.3.8.orig/glusterfs-fuse/utils/mount.glusterfs.in 2008-01-08 12:49:35.000000000 +0100
++++ glusterfs-1.3.8/glusterfs-fuse/utils/mount.glusterfs.in 2008-01-08 13:44:30.000000000 +0100
+@@ -121,6 +121,12 @@ main ()
+ # $2=$(echo "$@" | sed -n 's/[^ ]* \([^ ]*\).*/\1/p');
+
+ mount_point="$2";
++
++ # Simple check to avoid multiple identical mounts
++ if grep -q "glusterfs $mount_point fuse" /etc/mtab; then
++ echo "$0: according to mtab, a glusterfs is already mounted on $mount_point"
++ exit 1
++ fi
+
+ fs_options=$(echo "$fs_options,$new_fs_options");
+
diff --git a/glusterfs.spec b/glusterfs.spec
new file mode 100644
index 0000000..7235d38
--- /dev/null
+++ b/glusterfs.spec
@@ -0,0 +1,257 @@
+# Make it possible to disable the client by passing --without client
+%{?_without_client:%define _without_client --disable-fuse-client}
+# Default to disabling client on RHEL, but allow forcing --with client
+%{?rhel:%{!?_with_client:%define _without_client --disable-fuse-client}}
+
+Summary: Cluster File System
+Name: glusterfs
+Version: 1.3.8
+Release: 0.7%{?dist}
+License: GPLv3+
+Group: System Environment/Base
+URL: http://www.gluster.org/docs/index.php/GlusterFS
+Source0: http://ftp.zresearch.com/pub/gluster/glusterfs/1.3/glusterfs-%{version}.tar.gz
+Source1: glusterfsd.init
+Source2: glusterfsd.sysconfig
+Source3: umount.glusterfs
+Patch0: glusterfs-1.3.7-ocreat.patch
+Patch1: glusterfs-1.3.8-mount.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/service, /sbin/chkconfig
+Requires(postun): /sbin/service
+BuildRequires: python-devel
+%{!?_without_ibverbs:BuildRequires: libibverbs-devel}
+BuildRequires: flex, bison, byacc
+
+%description
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. It aggregates various storage bricks over Infiniband RDMA
+or TCP/IP interconnect into one large parallel network file
+system. GlusterFS is one of the most sophisticated file system in
+terms of features and extensibility. It borrows a powerful concept
+called Translators from GNU Hurd kernel. Much of the code in GlusterFS
+is in userspace and easily manageable.
+
+
+%package libs
+Summary: GlusterFS Library and Translators
+Group: System Environment/Libraries
+Obsoletes: glusterfs-common >= 1.3.7-2
+
+%description libs
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. It aggregates various storage bricks over Infiniband RDMA
+or TCP/IP interconnect into one large parallel network file
+system. GlusterFS is one of the most sophisticated file system in
+terms of features and extensibility. It borrows a powerful concept
+called Translators from GNU Hurd kernel. Much of the code in GlusterFS
+is in userspace and easily manageable.
+
+This package includes libglusterfs and glusterfs translator modules
+common to both GlusterFS server and client framework.
+
+
+%if 0%{!?_without_client:1}
+%package client
+Summary: GlusterFS Client
+Group: Applications/File
+Requires: fuse
+Requires: %{name}-libs = %{version}-%{release}
+BuildRequires: fuse-devel
+
+%description client
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. It aggregates various storage bricks over Infiniband RDMA
+or TCP/IP interconnect into one large parallel network file
+system. GlusterFS is one of the most sophisticated file system in
+terms of features and extensibility. It borrows a powerful concept
+called Translators from GNU Hurd kernel. Much of the code in GlusterFS
+is in userspace and easily manageable.
+
+This package provides the FUSE based GlusterFS client.
+%endif
+
+
+%package server
+Summary: GlusterFS Server
+Group: System Environment/Daemons
+Requires: %{name}-libs = %{version}-%{release}
+
+%description server
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. It aggregates various storage bricks over Infiniband RDMA
+or TCP/IP interconnect into one large parallel network file
+system. GlusterFS is one of the most sophisticated file system in
+terms of features and extensibility. It borrows a powerful concept
+called Translators from GNU Hurd kernel. Much of the code in GlusterFS
+is in userspace and easily manageable.
+
+This package provides the glusterfs server daemon.
+
+
+%package devel
+Summary: GlusterFS Development Libraries
+Group: Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description devel
+GlusterFS is a clustered file-system capable of scaling to several
+peta-bytes. It aggregates various storage bricks over Infiniband RDMA
+or TCP/IP interconnect into one large parallel network file
+system. GlusterFS is one of the most sophisticated file system in
+terms of features and extensibility. It borrows a powerful concept
+called Translators from GNU Hurd kernel. Much of the code in GlusterFS
+is in userspace and easily manageable.
+
+This package provides the development libraries.
+
+
+%prep
+%setup -q
+%patch0 -p1 -b .ocreat
+%patch1 -p1 -b .mount
+
+
+%build
+%configure %{?_without_ibverbs:--disable-ibverbs} %{?_without_client}
+%{__make} %{?_smp_mflags}
+
+
+%install
+%{__rm} -rf %{buildroot} examples
+%{__make} install DESTDIR=%{buildroot}
+%{__mkdir_p} %{buildroot}/var/log/glusterfs
+%{__mkdir_p} %{buildroot}%{_includedir}/glusterfs
+%{__install} -p -m 0644 libglusterfs/src/*.h \
+ %{buildroot}%{_includedir}/glusterfs/
+
+# Remove installed docs, we include them ourselves as %%doc
+%{__rm} -rf %{buildroot}%{_datadir}/doc/glusterfs/
+
+# Rename the samples, so we can include them as %%config
+for file in %{buildroot}%{_sysconfdir}/glusterfs/*.sample; do
+ %{__mv} ${file} `dirname ${file}`/`basename ${file} .sample`
+done
+
+# Clean up the examples we want to include as %%doc
+%{__cp} -a doc/examples examples
+%{__rm} -f examples/Makefile*
+
+# Install init script and sysconfig file
+%{__install} -D -p -m 0755 %{SOURCE1} \
+ %{buildroot}%{_sysconfdir}/init.d/glusterfsd
+%{__install} -D -p -m 0644 %{SOURCE2} \
+ %{buildroot}%{_sysconfdir}/sysconfig/glusterfsd
+
+%if 0%{!?_without_client:1}
+# Install wrapper umount script
+%{__install} -D -p -m 0755 %{SOURCE3} \
+ %{buildroot}/sbin/umount.glusterfs
+%endif
+
+
+%clean
+%{__rm} -rf %{buildroot}
+
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+
+%post server
+/sbin/chkconfig --add glusterfsd
+
+%preun server
+if [ $1 -eq 0 ]; then
+ /sbin/service glusterfsd stop &>/dev/null || :
+ /sbin/chkconfig --del glusterfsd
+fi
+
+%postun
+if [ $1 -ge 1 ]; then
+ /sbin/service glusterfsd condrestart &>/dev/null || :
+fi
+
+
+%files libs
+%doc AUTHORS ChangeLog COPYING NEWS README
+%{_libdir}/glusterfs/
+%{_libdir}/*.so.*
+
+
+%if 0%{!?_without_client:1}
+%files client
+%{_sbindir}/glusterfs
+/sbin/mount.glusterfs
+/sbin/umount.glusterfs
+%dir /var/log/glusterfs/
+%endif
+
+
+%files server
+%doc examples/ doc/glusterfs-*.vol.sample
+%dir %{_sysconfdir}/glusterfs/
+%config(noreplace) %{_sysconfdir}/glusterfs/*.vol
+%config(noreplace) %{_sysconfdir}/sysconfig/glusterfsd
+%{_sysconfdir}/init.d/glusterfsd
+%{_sbindir}/glusterfsd
+%dir /var/log/glusterfs/
+
+
+%files devel
+%{_includedir}/glusterfs/
+%exclude %{_libdir}/*.a
+%exclude %{_libdir}/*.la
+%{_libdir}/*.so
+
+
+%changelog
+* Sun Feb 3 2008 Matthias Saou 1.3.8-0.7
+- Add --without client rpmbuild option, make it the default for RHEL (no fuse).
+ (I hope "rhel" is the proper default macro name, couldn't find it...)
+
+* Wed Jan 30 2008 Matthias Saou 1.3.8-0.6
+- Add --without ibverbs rpmbuild option to the package.
+
+* Mon Jan 14 2008 Matthias Saou 1.3.8-0.5
+- Update to current TLA again, patch-636 which fixes the known segfaults.
+
+* Thu Jan 10 2008 Matthias Saou 1.3.8-0.4
+- Downgrade to glusterfs--mainline--2.5--patch-628 which is more stable.
+
+* Tue Jan 8 2008 Matthias Saou 1.3.8-0.3
+- Update to current TLA snapshot.
+- Include umount.glusterfs wrapper script (really needed? dunno).
+- Include patch to mount wrapper to avoid multiple identical mounts.
+
+* Sun Dec 30 2007 Matthias Saou 1.3.8-0.1
+- Update to current TLA snapshot, which includes "volume-name=" fstab option.
+
+* Mon Dec 3 2007 Matthias Saou 1.3.7-6
+- Re-add the /var/log/glusterfs directory in the client sub-package (required).
+- Include custom patch to support vol= in fstab for -n glusterfs client option.
+
+* Mon Nov 26 2007 Matthias Saou 1.3.7-4
+- Re-enable libibverbs.
+- Check and update License field to GPLv3+.
+- Add glusterfs-common obsoletes, to provide upgrade path from old packages.
+- Include patch to add mode to O_CREATE opens.
+
+* Thu Nov 22 2007 Matthias Saou 1.3.7-3
+- Remove Makefile* files from examples.
+- Include RHEL/Fedora type init script, since the included ones don't do.
+
+* Wed Nov 21 2007 Matthias Saou 1.3.7-1
+- Major spec file cleanup.
+- Add misssing %%clean section.
+- Fix ldconfig calls (weren't set for the proper sub-package).
+
+* Sat Aug 4 2007 Matt Paine - 1.3.pre7
+- Added support to build rpm without ibverbs support (use --without ibverbs
+ switch)
+
+* Sun Jul 15 2007 Matt Paine - 1.3.pre6
+- Initial spec file
+
diff --git a/glusterfsd.init b/glusterfsd.init
new file mode 100644
index 0000000..1c9ce54
--- /dev/null
+++ b/glusterfsd.init
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# glusterfsd Startup script for the glusterfs server
+#
+# chkconfig: - 20 80
+# description: Clustered file-system server
+#
+# processname: glusterfsd
+# config: /etc/glusterfs/glusterfs-server.vol
+# pidfile: /var/run/glusterfsd.pid
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+prog="glusterfsd"
+glusterfsd="/usr/sbin/glusterfsd"
+RETVAL=0
+
+# Set defaults, then source config for eventual overrides
+GLUSTERFSD_CONFIG="/etc/glusterfs/glusterfs-server.vol"
+GLUSTERFSD_LOGFILE="/var/log/glusterfs/glusterfsd.log"
+GLUSTERFSD_LOGLEVEL="WARNING"
+[ -f /etc/sysconfig/glusterfsd ] && source /etc/sysconfig/glusterfsd
+
+start() {
+ echo -n $"Starting $prog: "
+ daemon $glusterfsd -f ${GLUSTERFSD_CONFIG} -l ${GLUSTERFSD_LOGFILE} -L ${GLUSTERFSD_LOGLEVEL}
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ killproc $glusterfsd
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
+ return $RETVAL
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$prog ]; then
+ stop
+ start
+ fi
+ ;;
+ status)
+ status $glusterfsd
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|condrestart|status}"
+ RETVAL=1
+esac
+
+exit $RETVAL
diff --git a/glusterfsd.sysconfig b/glusterfsd.sysconfig
new file mode 100644
index 0000000..136499d
--- /dev/null
+++ b/glusterfsd.sysconfig
@@ -0,0 +1,7 @@
+# Change the glusterfsd service defaults here.
+# LOGLEVEL is one of DEBUG WARNING ERROR (default) CRITICAL or NONE
+
+#GLUSTERFSD_CONFIG="/etc/glusterfs/glusterfs-server.vol"
+#GLUSTERFSD_LOGFILE="/var/log/glusterfs/glusterfsd.log"
+#GLUSTERFSD_LOGLEVEL="ERROR"
+
diff --git a/sources b/sources
index e69de29..6beee6d 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+eb7ebc04cab10966877863f31799382d glusterfs-1.3.8.tar.gz
diff --git a/umount.glusterfs b/umount.glusterfs
new file mode 100644
index 0000000..6c179a3
--- /dev/null
+++ b/umount.glusterfs
@@ -0,0 +1,20 @@
+#!/bin/sh
+# (C) 2008 Gluster core team
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301 USA
+
+umount "$1"
+