diff options
-rw-r--r-- | sys-devel/spl/Manifest | 2 | ||||
-rw-r--r-- | sys-devel/spl/spl-0.6.0_rc3.ebuild | 2 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs.initd | 134 |
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 +} |