aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-devel/spl/Manifest2
-rw-r--r--sys-devel/spl/spl-0.6.0_rc3.ebuild2
-rw-r--r--sys-fs/zfs/files/zfs.initd134
3 files changed, 137 insertions, 1 deletions
diff --git a/sys-devel/spl/Manifest b/sys-devel/spl/Manifest
index 2157e4719..97276551c 100644
--- a/sys-devel/spl/Manifest
+++ b/sys-devel/spl/Manifest
@@ -1,5 +1,5 @@
AUX spl-0.6.0-includedir.patch 1179 RMD160 cade3b696d6981b2583cc5ae8ecf614d38ef2efc SHA1 2c5ce007df75a7a8425e1a28308eefdcb29446c2 SHA256 8d05fc006348264e1633e14b73e022d482164d6cefc8d2425faffc50d2346150
DIST spl-0.6.0-rc3.tar.gz 498596 RMD160 e86e1f7cf3508a16abc225b04b39b1c408ecfc53 SHA1 0d261ef4f1f5751c0a457c522c954d83412c2a29 SHA256 73c5686c076cfe2b5727e1b92a32ae595bc45957511dbae4f5f5e06ace63bdee
-EBUILD spl-0.6.0_rc3.ebuild 983 RMD160 8d01fac08feace84201b1d1ca297ae7e818cdf03 SHA1 e22845e59c9f2ffe6085b38827adb690710e99e5 SHA256 2caf76233136eb9ed457800fa013ae8bfca9bb20570d7b348b0dcc7b25035ebb
+EBUILD spl-0.6.0_rc3.ebuild 1068 RMD160 90390e4d9bd3f117918e95d59423e874fa2343f8 SHA1 cc5b67b493ef78d8336ad0691dcad0dff96771b4 SHA256 9023240e0c3cdcc50ccc90e973d11e17edda905f9f46a46cb3b544b2f0f6930c
EBUILD spl-9999.ebuild 943 RMD160 089ce55d2a6b6b88496d194dfa6a8bd79299f35d SHA1 23e73f26bc2aed04b24300b9c715b9ca2cfce2a3 SHA256 b9b3e843f1270b7b66fe60519b9491f302a7b1cddfa47e0b77c0e28116fd74fe
MISC metadata.xml 160 RMD160 1233ca29861ca7c47f0b09d1d7a29def80f7df02 SHA1 1bfdc9d282a84c95e2bdcda19ace5b94e2e67349 SHA256 56717bdb03ad5d833acecfbc612a67f569256b328bf610fbc6cc33714186dae9
diff --git a/sys-devel/spl/spl-0.6.0_rc3.ebuild b/sys-devel/spl/spl-0.6.0_rc3.ebuild
index a59d99ed5..e6808228f 100644
--- a/sys-devel/spl/spl-0.6.0_rc3.ebuild
+++ b/sys-devel/spl/spl-0.6.0_rc3.ebuild
@@ -41,4 +41,6 @@ src_configure() {
src_install() {
emake DESTDIR="${D}" install || die 'emake install failed'
+ dosym /usr/include/spl/spl_config.h /usr/include/spl/module/spl_config.h \
+ || die
}
diff --git a/sys-fs/zfs/files/zfs.initd b/sys-fs/zfs/files/zfs.initd
new file mode 100644
index 000000000..d8ec4ea93
--- /dev/null
+++ b/sys-fs/zfs/files/zfs.initd
@@ -0,0 +1,134 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/files/zfs,v 0.9 2011/04/30 10:13:43 devsk Exp $
+
+depend() {
+ before net
+ after udev
+}
+
+CACHEFILE=/etc/zfs/zpool.cache
+ZPOOL=/sbin/zpool
+ZFS=/sbin/zfs
+ZFS_MODULE=zfs
+LOCKFILE=/var/lock/zfs/zfs_lockfile
+
+checksystem()
+{
+ /sbin/modinfo $ZFS_MODULE &>/dev/null
+ if [[ $? -ne 0 ]]
+ then
+ eerror "$ZFS_MODULE not found. Is the ZFS package installed?"
+ return 1
+ fi
+ if [[ ! -x $ZPOOL ]]
+ then
+ eerror "$ZPOOL binary not found."
+ return 1
+ fi
+ if [[ ! -x $ZFS ]]
+ then
+ eerror "$ZFS binary not found."
+ return 1
+ fi
+ return 0
+}
+
+start()
+{
+ if [[ -f $LOCKFILE ]]
+ then
+ einfo "ZFS already running, please stop it first. Delete $LOCKFILE if its not so."
+ eend 3
+ return 3
+ fi
+ ebegin "Starting ZFS"
+ checksystem || return 1
+ if ! grep -q $ZFS_MODULE /proc/modules
+ then
+ /sbin/modprobe $ZFS_MODULE &>/dev/null
+ rv=$?
+ if [[ $rv -ne 0 ]]
+ then
+ eerror "Failed to load the $ZFS_MODULE module, check 'dmesg|tail'."
+ eend $rv
+ return $rv
+ fi
+ fi
+
+ # Import all pools described by the cache file, and then mount
+ # all filesystem based on their properties.
+ if [[ -f $CACHEFILE ]]
+ then
+ einfo "Importing ZFS pools"
+
+ # as per fedora script, import can fail if all pools are already imported
+ # The check for $rv makes no sense...but someday, it will work right.
+ $ZPOOL import -c $CACHEFILE -aN 2>/dev/null || true
+ rv=$?
+ if [[ $rv -ne 0 ]]
+ then
+ eerror "Failed to import not-yet imported pools."
+ eend $rv
+ return $rv
+ fi
+ fi
+
+ einfo "Mounting ZFS filesystems"
+ $ZFS mount -a
+ rv=$?
+ if [[ $rv -ne 0 ]]
+ then
+ eerror "Failed to mount ZFS filesystems."
+ eend $rv
+ return $rv
+ fi
+
+ # hack to read mounted file systems because otherwise
+ # zfs returns EPERM when a non-root user reads a mounted filesystem before root did
+ savepwd="$PWD"
+ mount | grep " type zfs " | sed 's/.*on //' | sed 's/ type zfs.*$//' | \
+ while read line
+ do
+ cd "$line" &> /dev/null
+ ls &> /dev/null
+ done
+ cd "$savepwd"
+
+ touch $LOCKFILE
+ eend 0
+ return 0
+}
+
+stop()
+{
+ if [[ ! -f $LOCKFILE ]]
+ then
+ einfo "ZFS is not started, remove $LOCKFILE if its not so."
+ eend 3
+ return 3
+ fi
+ ebegin "Unmounting ZFS filesystems"
+ sync
+ $ZFS umount -a
+ if [[ $rv -ne 0 ]]
+ then
+ eerror "Failed to umount ZFS filesystems."
+ fi
+ rm -f $LOCKFILE
+ eend $rv
+}
+
+status()
+{
+ if [[ ! -f $LOCKFILE ]]
+ then
+ einfo "ZFS is not started, remove $LOCKFILE if its not so."
+ eend 3
+ return 3
+ fi
+
+ # show pool status and list
+ $ZPOOL status && echo && $ZPOOL list
+}