summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys-fs/zfs-kmod/Manifest2
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.6.4.1.ebuild136
-rw-r--r--sys-fs/zfs/Manifest5
-rw-r--r--sys-fs/zfs/files/bash-completion-r1391
-rw-r--r--sys-fs/zfs/files/zfs-init.sh.in29
-rw-r--r--sys-fs/zfs/files/zfs.service.in16
-rw-r--r--sys-fs/zfs/zfs-0.6.4.1.ebuild141
-rw-r--r--sys-kernel/spl/Manifest2
-rw-r--r--sys-kernel/spl/spl-0.6.4.1.ebuild116
9 files changed, 838 insertions, 0 deletions
diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest
index 04e9f60..36c6140 100644
--- a/sys-fs/zfs-kmod/Manifest
+++ b/sys-fs/zfs-kmod/Manifest
@@ -1,4 +1,6 @@
AUX bc151f7b312dea09c6ec5b9a320e65140789643a.patch 2628 SHA256 dcb1a5b5f4531a72a3ace59bb260a2e0135426d494960d7812fd2f48b60c25ee SHA512 57d16eabafc07be01ec15ce6ffe5267273de0ee76107d43e623f8ffcc3cb9118d416ec611641973fe3deb653426209e9b96452fa50a20bc983fcc1c0fbadc396 WHIRLPOOL 7edf6afe1124b259daf904c1d463012351f48326ae4caf2210dc87151d0562db001499c7f6b60957a7389c0cd872158325bc8054d831898993cc5d9fe67d5ad2
DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f7b40b6675c4a56fc630a47e90d5280 SHA512 e2fa573c7b30a3811e9e1596d35b65f5d013ed5bac43e364b44ffab734398a3294979c152a80ec9a722611cc7c971aec217d8e1a37cc9240a3fa2dddb5b90e3b WHIRLPOOL f2da02d5c7d2385e7de1e858c31d299632ca864d422f0c94e5d3b8674d24beeb073ad2600698350306a9e70dbeef390f0e513d19c126502fceec18795c203d50
DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe
+DIST zfs-0.6.4.1.tar.gz 1736014 SHA256 11d8cfd870d6909c002a0c5d9968e438d6e6c2584530569e859be6a72a991407 SHA512 b057e138bd8d88de0d7871d17e5c171360ba59cf91a0745202aed2e3856c9e3eebe9bda9ef641e635ea41b1ede90a12cfb4e2361b8b58bd60c03651c187adddc WHIRLPOOL 307e1acaeb522da279a33f7effdfcbda058b1545136ac053b5fa9660e476aa4fcb54e0b8d90c6185b081925a7dc63d2b3aa54a1a91ce11cee7c1442fee65f3ab
EBUILD zfs-kmod-0.6.3-r1.ebuild 3957 SHA256 6beb702b8d28877ee9ad40f1b1fa978944593240b9f63700aff54714b306c3b5 SHA512 e65d3144d761baa3965d522da19ad1b85ae5199a2064e0375c8a3f84280aa76c1b0225e39de819b3b7a864fc918c4ddc94db962fa711f2f963d1dd41e10625ed WHIRLPOOL 2bbe2ceec83d7a79fc330fe6b5d37ebd1ebb64cf7447fbc4fd967c40aad521202fdeac5b351ebd42d190f3e7c768b84e347fefab59cb41dd242f0da62746391f
+EBUILD zfs-kmod-0.6.4.1.ebuild 3675 SHA256 d21e6b3010efe68bdd3620626a44907571d65ca74cea3632357cd5110d5dc641 SHA512 97c8a0609d66c59ad4cf1f83387c739c70df1f8e0b578459f948b7c0f8eb08bfd7ffefbf1a2b7cdd25d2d4a380662f58251fcd3a915549d40e8f5b60d6d2ac18 WHIRLPOOL a1a1fb2a7fef4b660ac08db277b7bca79fbc52fd92ef9fda757c5138e3ea615227373a920961a16e2c117d3b7c6215e511159d54d224c6c6e3be1ef330fd1593
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.4.1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.1.ebuild
new file mode 100644
index 0000000..acbede1
--- /dev/null
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.4.1.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs-kmod/zfs-kmod-0.6.3-r1.ebuild,v 1.1 2014/12/01 07:02:33 ryao Exp $
+
+EAPI="4"
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/zfs/archive/zfs-${PV}.tar.gz"
+ S="${WORKDIR}/zfs-zfs-${PV}"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="CDDL debug? ( GPL-2+ )"
+SLOT="0"
+IUSE="custom-cflags debug +rootfs"
+RESTRICT="debug? ( strip ) test"
+
+DEPEND="
+ =sys-kernel/spl-${PV}*
+ dev-lang/perl
+ virtual/awk
+"
+
+RDEPEND="${DEPEND}
+ !sys-fs/zfs-fuse
+"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="!DEBUG_LOCK_ALLOC
+ BLK_DEV_LOOP
+ EFI_PARTITION
+ IOSCHED_NOOP
+ MODULES
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_RANDKSTACK
+ !PAX_USERCOPY_SLABS
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ use rootfs && \
+ CONFIG_CHECK="${CONFIG_CHECK}
+ BLK_DEV_INITRD
+ DEVTMPFS
+ "
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 0 || die "Linux 4.0 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Remove GPLv2-licensed ZPIOS unless we are debugging
+ use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(${myeconfargs}
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=kernel
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-spl="${EROOT}usr/src/${SPL_PATH}"
+ --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
+ $(use_enable debug)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS COPYRIGHT DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+
+ if use x86 || use arm
+ then
+ ewarn "32-bit kernels will likely require increasing vmalloc to"
+ ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
+ fi
+
+ ewarn "This version of ZFSOnLinux includes support for features flags."
+ ewarn "If you upgrade your pools to make use of feature flags, you will lose"
+ ewarn "the ability to import them using older versions of ZFSOnLinux."
+ ewarn "Any new pools will be created with feature flag support and will"
+ ewarn "not be compatible with older versions of ZFSOnLinux. To create a new"
+ ewarn "pool that is backward compatible, use zpool create -o version=28 ..."
+}
diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest
new file mode 100644
index 0000000..6aa5a3a
--- /dev/null
+++ b/sys-fs/zfs/Manifest
@@ -0,0 +1,5 @@
+AUX bash-completion-r1 11310 SHA256 b60214f70ffffb62ffe489cbfabd2e069d14ed2a391fac0e36f914238394b540 SHA512 03be521e2c646196766d5fd049f241cb97f290abf0409881ea6ba709934984deda402c8513009e62a5787e0648023b55c040e5f99baef27709e81c3bc9c8f56e WHIRLPOOL b09558e80a96993c52915093c1c3f8488d0ef9294d2e401546c21998222f377e211ff368e18e8ba3b1dea7554a467cc3e32c882a1d872719d82f5e2c1ccd5848
+AUX zfs-init.sh.in 582 SHA256 820cbbfe881315a640ea398c0c7eac60d2eeb191f694ef69f3e8ea725a8de085 SHA512 bed7eae5f902f13489241782d3d560b53a5a3258de492763b7b25783ca9417975afb9000f68f58be5c2057e1db50a569374ed0ff572140aa65e401e20e646461 WHIRLPOOL 3e9ec22a60a9ba4e71cfab74b25d5ad4aff1b64bfb210d31fc36d5a768527e8b692fe3a9712d9f6bfa8f08e03f7e92ed035a3d8bf4e360b22fa4a4e5b9e9d214
+AUX zfs.service.in 334 SHA256 a9db484e4087a814bdb24814895450c700246f1880fdfd4c29645bb7acd72f05 SHA512 f1066c8b06d2501be9c080a78bfd28ac7566a05bac5ddff7915836d083f8e791bbb2fd5e70a7633a0407762f12fd240d2ef049ed5244c4c4727e42f2332117e2 WHIRLPOOL 173449dcb7312c528d21eeb763936affc849f049e4b647d426296b3a35c5f0c86f056e4c0de7866c62a28344a8a734f42b34822fe5573f7873575be0434105b3
+DIST zfs-0.6.4.1.tar.gz 1736014 SHA256 11d8cfd870d6909c002a0c5d9968e438d6e6c2584530569e859be6a72a991407 SHA512 b057e138bd8d88de0d7871d17e5c171360ba59cf91a0745202aed2e3856c9e3eebe9bda9ef641e635ea41b1ede90a12cfb4e2361b8b58bd60c03651c187adddc WHIRLPOOL 307e1acaeb522da279a33f7effdfcbda058b1545136ac053b5fa9660e476aa4fcb54e0b8d90c6185b081925a7dc63d2b3aa54a1a91ce11cee7c1442fee65f3ab
+EBUILD zfs-0.6.4.1.ebuild 3353 SHA256 b702ae62c2eb9fe401d59a52e651f39fec64d3cc31ab158c5f95e1d7fde67f44 SHA512 6f857a9a072a3abd95c3c4d625c68ad3a70251e065f498a587dfda4517240b08b5e09f33f9b3fb553922c169fec623d3f30022357f014fbf2131990b63bc7f62 WHIRLPOOL fedd36276a9a14bfbea697ff63109a857ff08ee4aaa5884d13e2aadcf0f875bc44580923e583321b0b478196c2f9d4930fd8b0ae3ac551770a0c68ceba595e97
diff --git a/sys-fs/zfs/files/bash-completion-r1 b/sys-fs/zfs/files/bash-completion-r1
new file mode 100644
index 0000000..b1aded3
--- /dev/null
+++ b/sys-fs/zfs/files/bash-completion-r1
@@ -0,0 +1,391 @@
+# Copyright (c) 2013, Aneurin Price <aneurin.price@gmail.com>
+
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
+
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+#if [[ -w /dev/zfs ]]; then
+ __ZFS_CMD="zfs"
+ __ZPOOL_CMD="zpool"
+#else
+# __ZFS_CMD="sudo zfs"
+# __ZPOOL_CMD="sudo zpool"
+#fi
+
+__zfs_get_commands()
+{
+ $__ZFS_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | cut -f1 -d '|' | uniq
+}
+
+__zfs_get_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all name space
+}
+
+__zfs_get_editable_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
+}
+
+__zfs_get_inheritable_properties()
+{
+ $__ZFS_CMD get 2>&1 | awk '$3 == "YES" {print $1}'
+}
+
+__zfs_list_datasets()
+{
+ $__ZFS_CMD list -H -o name -t filesystem,volume
+}
+
+__zfs_list_filesystems()
+{
+ $__ZFS_CMD list -H -o name -t filesystem
+}
+
+__zfs_match_snapshot()
+{
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset
+ else
+ $__ZFS_CMD list -H -o name -t filesystem,volume | awk '{print $1"@"}'
+ fi
+}
+
+__zfs_match_explicit_snapshot()
+{
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset
+ fi
+}
+
+__zfs_match_multiple_snapshots()
+{
+ local existing_opts=$(expr "$cur" : '\(.*\)[%,]')
+ if [[ $existing_opts ]]
+ then
+ local base_dataset=${cur%@*}
+ if [[ $base_dataset != $cur ]]
+ then
+ local cur=${cur##*,}
+ if [[ $cur =~ ^%|%.*% ]]
+ then
+ # correct range syntax is start%end
+ return 1
+ fi
+ local range_start=$(expr "$cur" : '\(.*%\)')
+ $__ZFS_CMD list -H -o name -t snapshot -d 1 $base_dataset | sed 's$.*@$'$range_start'$g'
+ fi
+ else
+ __zfs_match_explicit_snapshot; __zfs_list_datasets
+ fi
+}
+
+__zfs_list_volumes()
+{
+ $__ZFS_CMD list -H -o name -t volume
+}
+
+__zfs_argument_chosen()
+{
+ local word property
+ for word in $(seq $((COMP_CWORD-1)) -1 2)
+ do
+ local prev="${COMP_WORDS[$word]}"
+ if [[ ${COMP_WORDS[$word-1]} != -[tos] ]]
+ then
+ if [[ "$prev" == [^,]*,* ]] || [[ "$prev" == *[@:]* ]]
+ then
+ return 0
+ fi
+ for property in $@
+ do
+ if [[ $prev == "$property" ]]
+ then
+ return 0
+ fi
+ done
+ fi
+ done
+ return 1
+}
+
+__zfs_complete_ordered_arguments()
+{
+ local list1=$1
+ local list2=$2
+ local cur=$3
+ local extra=$4
+ if __zfs_argument_chosen $list1
+ then
+ COMPREPLY=($(compgen -W "$list2 $extra" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "$list1 $extra" -- "$cur"))
+ fi
+}
+
+__zfs_complete_multiple_options()
+{
+ local options=$1
+ local cur=$2
+
+ COMPREPLY=($(compgen -W "$options" -- "${cur##*,}"))
+ local existing_opts=$(expr "$cur" : '\(.*,\)')
+ if [[ $existing_opts ]]
+ then
+ COMPREPLY=( "${COMPREPLY[@]/#/${existing_opts}}" )
+ fi
+}
+
+__zfs_complete_switch()
+{
+ local options=$1
+ if [[ ${cur:0:1} == - ]]
+ then
+ COMPREPLY=($(compgen -W "-{$options}" -- "$cur"))
+ return 0
+ else
+ return 1
+ fi
+}
+
+__zfs_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ # Don't split on colon
+ _get_comp_words_by_ref -n : -c cur -p prev -w COMP_WORDS -i COMP_CWORD
+ cmd="${COMP_WORDS[1]}"
+
+ if [[ ${prev##*/} == zfs ]]
+ then
+ cmds=$(__zfs_get_commands)
+ COMPREPLY=($(compgen -W "$cmds -?" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ clone)
+ case "${prev}" in
+ -o)
+ COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "o,p"
+ then
+ if __zfs_argument_chosen
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets)" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ fi
+ ;;
+ esac
+ ;;
+ get)
+ case "${prev}" in
+ -d)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ -t)
+ __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
+ ;;
+ -s)
+ __zfs_complete_multiple_options "local default inherited temporary none" "$cur"
+ ;;
+ -o)
+ __zfs_complete_multiple_options "name property value source received all" "$cur"
+ ;;
+ *)
+ if ! __zfs_complete_switch "H,r,p,d,o,t,s"
+ then
+ if __zfs_argument_chosen $(__zfs_get_properties)
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ else
+ __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
+ fi
+ fi
+ ;;
+ esac
+ ;;
+ inherit)
+ if ! __zfs_complete_switch "r"
+ then
+ __zfs_complete_ordered_arguments "$(__zfs_get_inheritable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
+ fi
+ ;;
+ list)
+ case "${prev}" in
+ -d)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ -t)
+ __zfs_complete_multiple_options "filesystem volume snapshot all" "$cur"
+ ;;
+ -o)
+ __zfs_complete_multiple_options "$(__zfs_get_properties)" "$cur"
+ ;;
+ -s|-S)
+ COMPREPLY=($(compgen -W "$(__zfs_get_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "H,r,d,o,t,s,S"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ promote)
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
+ ;;
+ rollback)
+ if ! __zfs_complete_switch "r,R,f"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ ;;
+ send)
+ if ! __zfs_complete_switch "d,n,P,p,R,v,i,I"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_match_snapshot)" -- "$cur"))
+ fi
+ ;;
+ snapshot)
+ case "${prev}" in
+ -o)
+ COMPREPLY=($(compgen -W "$(__zfs_get_editable_properties)" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "o,r"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_datasets | awk '{print $1"@"}')" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zfs_get_editable_properties)" "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" $cur
+ ;;
+ upgrade)
+ case "${prev}" in
+ -a|-V|-v)
+ COMPREPLY=($(compgen -W "" -- "$cur"))
+ ;;
+ *)
+ if ! __zfs_complete_switch "a,V,v,r"
+ then
+ COMPREPLY=($(compgen -W "$(__zfs_list_filesystems)" -- "$cur"))
+ fi
+ ;;
+ esac
+ ;;
+ destroy)
+ if ! __zfs_complete_switch "d,f,n,p,R,r,v"
+ then
+ __zfs_complete_multiple_options "$(__zfs_match_multiple_snapshots)" $cur
+ fi
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zfs_match_explicit_snapshot) $(__zfs_list_datasets)" -- "$cur"))
+ ;;
+ esac
+ __ltrim_colon_completions "$cur"
+ return 0
+}
+
+__zpool_get_commands()
+{
+ $__ZPOOL_CMD 2>&1 | awk '/^\t[a-z]/ {print $1}' | uniq
+}
+
+__zpool_get_properties()
+{
+ $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" || $2 == "NO" {print $1}'; echo all
+}
+
+__zpool_get_editable_properties()
+{
+ $__ZPOOL_CMD get 2>&1 | awk '$2 == "YES" {print $1"="}'
+}
+
+__zpool_list_pools()
+{
+ $__ZPOOL_CMD list -H -o name
+}
+
+__zpool_complete()
+{
+ local cur prev cmd cmds
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ cmd="${COMP_WORDS[1]}"
+
+ if [[ ${prev##*/} == zpool ]]
+ then
+ cmds=$(__zpool_get_commands)
+ COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
+ return 0
+ fi
+
+ case "${cmd}" in
+ get)
+ __zfs_complete_ordered_arguments "$(__zpool_get_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ import)
+ if [[ $prev == -d ]]
+ then
+ _filedir -d
+ else
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools) -d" -- "$cur"))
+ fi
+ return 0
+ ;;
+ set)
+ __zfs_complete_ordered_arguments "$(__zpool_get_editable_properties)" "$(__zpool_list_pools)" $cur
+ return 0
+ ;;
+ add|attach|clear|create|detach|offline|online|remove|replace)
+ local pools="$(__zpool_list_pools)"
+ if __zfs_argument_chosen $pools
+ then
+ _filedir
+ else
+ COMPREPLY=($(compgen -W "$pools" -- "$cur"))
+ fi
+ return 0
+ ;;
+ *)
+ COMPREPLY=($(compgen -W "$(__zpool_list_pools)" -- "$cur"))
+ return 0
+ ;;
+ esac
+
+}
+
+complete -F __zfs_complete zfs
+complete -F __zpool_complete zpool
diff --git a/sys-fs/zfs/files/zfs-init.sh.in b/sys-fs/zfs/files/zfs-init.sh.in
new file mode 100644
index 0000000..ed84585
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-init.sh.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+ZFS="@sbindir@/zfs"
+ZPOOL="@sbindir@/zpool"
+ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache"
+
+if [ -f "${ZPOOL_CACHE}" ]; then
+ "${ZPOOL}" import -c "${ZPOOL_CACHE}" -aN 2>/dev/null
+ if [ "${?}" != "0" ]; then
+ echo "Failed to import not-yet imported pools." >&2
+ fi
+fi
+
+echo "Mounting ZFS filesystems"
+"${ZFS}" mount -a
+if [ "${?}" != "0" ]; then
+ echo "Failed to mount ZFS filesystems." >&2
+ exit 1
+fi
+
+echo "Exporting ZFS filesystems"
+"${ZFS}" share -a
+if [ "${?}" != "0" ]; then
+ echo "Failed to export ZFS filesystems." >&2
+ exit 1
+fi
+
+exit 0
+
diff --git a/sys-fs/zfs/files/zfs.service.in b/sys-fs/zfs/files/zfs.service.in
new file mode 100644
index 0000000..c390a48
--- /dev/null
+++ b/sys-fs/zfs/files/zfs.service.in
@@ -0,0 +1,16 @@
+[Unit]
+Description=ZFS filesystems setup
+Before=network.target
+After=systemd-udev-settle.target local-fs.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStartPre=/sbin/modprobe zfs
+ExecStartPre=/usr/bin/test -c /dev/zfs
+ExecStart=/usr/libexec/zfs-init.sh
+ExecStop=@sbindir@/zfs umount -a
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/sys-fs/zfs/zfs-0.6.4.1.ebuild b/sys-fs/zfs/zfs-0.6.4.1.ebuild
new file mode 100644
index 0000000..d233c04
--- /dev/null
+++ b/sys-fs/zfs/zfs-0.6.4.1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/zfs-0.6.3-r2.ebuild,v 1.2 2015/04/08 18:27:24 mgorny Exp $
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit python-r1
+
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+if [ ${PV} == "9999" ] ; then
+ inherit git-2 linux-mod
+ EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64"
+fi
+
+inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev systemd
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL bash-completion? ( MIT )"
+SLOT="0"
+IUSE="bash-completion custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+ sys-apps/util-linux[static-libs?]
+ sys-libs/zlib[static-libs(+)?]
+ virtual/awk
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${COMMON_DEPEND}
+ !=sys-apps/grep-2.13*
+ !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !sys-fs/zfs-fuse
+ !prefix? ( virtual/udev )
+ test-suite? (
+ sys-apps/util-linux
+ sys-devel/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ virtual/modutils
+ )
+ rootfs? (
+ app-arch/cpio
+ app-misc/pax-utils
+ !<sys-boot/grub-2.00-r2:2
+ )
+"
+
+pkg_setup() {
+ :
+}
+
+src_prepare() {
+# Update paths
+ sed -e "s|/sbin/lsmod|/bin/lsmod|" \
+ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
+ -e "s|/sbin/parted|/usr/sbin/parted|" \
+ -i scripts/common.sh.in
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-blkid
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+
+ # prepare systemd unit and helper script
+ cat "${FILESDIR}/zfs.service.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs.service" || die
+ cat "${FILESDIR}/zfs-init.sh.in" | \
+ sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
+ -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
+ > "${T}/zfs-init.sh" || die
+}
+
+src_install() {
+ autotools-utils_src_install
+ gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
+ use test-suite || rm -rf "${ED}usr/share/zfs"
+
+ use bash-completion && newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+
+ exeinto /usr/libexec
+ doexe "${T}/zfs-init.sh"
+ systemd_dounit "${T}/zfs.service"
+}
+
+pkg_postinst() {
+
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ einfo "Adding ${P} to the module database to ensure that the"
+ einfo "kernel modules and userland utilities stay in sync."
+ update_moduledb
+ fi
+
+ [ -e "${EROOT}/etc/runlevels/boot/zfs" ] \
+ || ewarn 'You should add zfs to the boot runlevel.'
+
+ if [ -e "${EROOT}/etc/runlevels/shutdown/zfs-shutdown" ]
+ then
+ einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
+ rm "${EROOT}/etc/runlevels/shutdown/zfs-shutdown"
+ fi
+
+}
+
+pkg_postrm() {
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
+ then
+ remove_moduledb
+ fi
+}
diff --git a/sys-kernel/spl/Manifest b/sys-kernel/spl/Manifest
index ff82247..e415bd6 100644
--- a/sys-kernel/spl/Manifest
+++ b/sys-kernel/spl/Manifest
@@ -1,3 +1,5 @@
DIST spl-0.6.3-patches-r1.tar.xz 15996 SHA256 7f1cf74c9be5c14eeff529ce0a45d7dcca33cc08e5b9e7d17fc79dd5a58719d7 SHA512 6eeee3a18466bbe8ca903910d807a3242bff0c12848d4fc6e226fe40592cd6cd9109bc5ee301867f0512b5cf2ad28eab2988e261c69fd200c5dd6eb6d8027b2c WHIRLPOOL 93578cfa435dc343edc8087a0d49aa90ddc457bf75292b0c10ce30836e00f27ea0c4768a62270a6ec559238b778ccfcde71c15740a8242f9f93c7d84934c5f72
DIST spl-0.6.3.tar.gz 221430 SHA256 5d60dfbe86a50e65dbce17f538d8d0874a0cc293374f59eed46cd2dd1809a944 SHA512 c4b82f1e279c7581d0082c044157e8a933edf53233c8c7c8202117454cfda0473ab85fbb56ac0b6da09a4d6798e33020a9c55bf23e25d630efa3265545c3defc WHIRLPOOL eaf001a96a80264e16ce416da38b988eabbfd2fce17690151a496a3141c32e92e5d00791e2d9c009ae0cf6910f80434c10f02a700752fc664f6bf6723bb03dba
+DIST spl-0.6.4.1.tar.gz 190343 SHA256 e3f3f07e905ecf4c799be3a3c9c1aaa2ee55896710ed376f654081e016b46164 SHA512 d98200733de352683e84f5b99478a526fcb5c42f126c61ed7090a00c7caf06727e6849206efc61859f02b2c010cb5d00ce101bb41701133f9494db0af2581c4c WHIRLPOOL b3ef4cb7a76280635e21ceb6666fd958872d599b746df490f75875d3d6adec3899a856e00d84b0e97d2b277c80222a34b72045743511d0d954fc77dbdda556e6
EBUILD spl-0.6.3-r1.ebuild 3134 SHA256 c3434434fbb5d22ed8fda6031be7eea46028019e3f2b56f163933e9e00548724 SHA512 75b3909c6d19ff32f05f46e36cb5140d412f85e0648583cb851d8a1e45773a1886f32eaafd8daf0c9bae7496e165fdb6e8a0d31cab5abbd8e0f900da74a25a5b WHIRLPOOL bc86307bb482b351addafdbc17dd4de500c0b680c116501a21a95bf41fb5a1297821b784d6f3558fb4398e048584d8d2248bcf4ac9573d582e5653e4792546d7
+EBUILD spl-0.6.4.1.ebuild 2932 SHA256 a5470ab7bc27ff95c215abd3682647cda88f0e1f370242a9f165a74c29885a26 SHA512 f055deddca0eb0f322bd12d42258a129ad54053397b05340c3380281680a4708b0787153cb66490d1051ef1711ef5884c9edf03a7a5acea1319d546d21b0cbaa WHIRLPOOL a9cb6c0ca8ccfe73442e2faa551d3c2390d4ef920df4e3edfae8cbaaab62d9b0c67c7658b505ea6e92d1d4e537b660c6261cbb06b7b51bda613555c426d4e687
diff --git a/sys-kernel/spl/spl-0.6.4.1.ebuild b/sys-kernel/spl/spl-0.6.4.1.ebuild
new file mode 100644
index 0000000..e2c1e75
--- /dev/null
+++ b/sys-kernel/spl/spl-0.6.4.1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-0.6.3-r1.ebuild,v 1.3 2014/12/12 07:51:56 ryao Exp $
+
+EAPI="4"
+AUTOTOOLS_AUTORECONF="1"
+
+inherit flag-o-matic linux-info linux-mod autotools-utils
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-2
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+else
+ inherit eutils versionator
+ SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${P}"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="The Solaris Porting Layer is a Linux kernel module which provides many of the Solaris kernel APIs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug debug-log"
+RESTRICT="debug? ( strip ) test"
+
+COMMON_DEPEND="dev-lang/perl
+ virtual/awk"
+
+DEPEND="${COMMON_DEPEND}"
+
+RDEPEND="${COMMON_DEPEND}
+ !sys-devel/spl"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="
+ !DEBUG_LOCK_ALLOC
+ !GRKERNSEC_HIDESYM
+ MODULES
+ KALLSYMS
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_SIZE_OVERFLOW
+ !PAX_RANDKSTACK
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 0 || die "Linux 4.0 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ # Workaround for hard coded path
+ sed -i "s|/sbin/lsmod|/bin/lsmod|" "${S}/scripts/check.sh" || \
+ die "Cannot patch check.sh"
+
+ # splat is unnecessary unless we are debugging
+ use debug || sed -e 's/^subdir-m += splat$//' -i "${S}/module/Makefile.in"
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=all
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ $(use_enable debug-log)
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+ dodoc AUTHORS DISCLAIMER README.markdown
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/spl" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/spl"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/spl"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/spl" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+}