sys-fs/zfs: version bump to 0.7.11 (and friends)
authorRichard Yao <ryao@gentoo.org>
Sun, 16 Sep 2018 20:58:37 +0000 (16:58 -0400)
committerRichard Yao <ryao@gentoo.org>
Sun, 16 Sep 2018 20:59:22 +0000 (16:59 -0400)
0.7.10 will not be committed due to a regression:

https://github.com/zfsonlinux/zfs/issues/7906

Package-Manager: Portage-2.3.40, Repoman-2.3.9

sys-fs/zfs-kmod/Manifest
sys-fs/zfs-kmod/zfs-kmod-0.7.11.ebuild [new file with mode: 0644]
sys-fs/zfs/Manifest
sys-fs/zfs/zfs-0.7.11.ebuild [new file with mode: 0644]
sys-kernel/spl/Manifest
sys-kernel/spl/spl-0.7.11.ebuild [new file with mode: 0644]

index 142dfe82e15ca1d346d1d3bc8844805b3acf35f4..8be6c68802e640d595471da401bc140078e8ace4 100644 (file)
@@ -1,4 +1,5 @@
 DIST zfs-0.6.5.11.tar.gz 2521959 BLAKE2B 95b145a26620995343df1a468367b882bc71ab3e4812c05839d49d0cd877b756185c91b2609986f91939fbfda322809ddefc8ff9207fe076db03e0038e585ea2 SHA512 877052da2a0cdc78b10cb5041da55e31242db2618c502997f4df9aa46a14482c7f33adce8d21aaf16164a9fe52edc358922ea89c8e109c3247e107bf607d6451
+DIST zfs-0.7.11.tar.gz 6561125 BLAKE2B ee579aa01272d5565fe78ae6074dc1acdd34c8e9a26838462aea937132c322b0fb915c4dadec230560d586db2b2af129735ed6b5e41def4183c9c7ed456ca7aa SHA512 b53c92de2c2542a1b0189368e4b298e93bea13aec8ba415559e86bfc01a9c7deaf436e694aa047ef8a302c79224f96edd150ea93a57eb88c9e26d054cf7ccd2b
 DIST zfs-0.7.8.tar.gz 6514969 BLAKE2B 689d96ad7afeb422cbeca724f248ac56b6fcdc0a7ef215f735180406a7fc0d4d3c9700a41e855186d8044b304c9f0c142c2bdca387299c499974e424965970a4 SHA512 cdeabe10acd2feeeff8a6362987c757b716bfea6ebad42ce022a081106661f774150c113bdaa9e1ac441efdd6da4cf11e6119323ad60ae15ab445a872d952e35
 DIST zfs-0.7.9-r1-patches.tar.xz 10920 BLAKE2B 50a0b8533061b5eecc103179e6fd51499d87f1c3b331b0629efa29a5a7d405c03448db2245fed9389d149cc83021a2c263bc2f02133a5fdd11b088516c353fff SHA512 a9e8c04bf7449b0a63420202b2f6dd8a6aea96ac57e5925c2ca0223f662210f42316ada25aa6113103909de8c9976945828cdb91a6ff9932f282c01316d7b3ec
 DIST zfs-0.7.9.tar.gz 6548649 BLAKE2B aa2f1b9d0ba0eda1af7d420c43d65d5d4183169cfe97c693356e1e0b15967ea512c25454f2d77285600f2209d778e4299f420754932e403a390b87b4f488dc94 SHA512 af5d9c320885ee84019fb04250c4b12c7ac3bb3d1037b1961ec4584701a737558374dc22521743e197356efb1d1f0ced9beff675ae9cfcccf3cd8407467f18fa
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.7.11.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.7.11.ebuild
new file mode 100644 (file)
index 0000000..55ffb41
--- /dev/null
@@ -0,0 +1,145 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [ ${PV} == "9999" ]; then
+       AUTOTOOLS_AUTORECONF="1"
+       EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
+       inherit git-r3
+else
+       SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz"
+       S="${WORKDIR}/zfs-${PV}"
+       KEYWORDS="~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
+
+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
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
+
+pkg_setup() {
+       linux-info_pkg_setup
+       CONFIG_CHECK="
+               !DEBUG_LOCK_ALLOC
+               EFI_PARTITION
+               IOSCHED_NOOP
+               MODULES
+               !PAX_KERNEXEC_PLUGIN_METHOD_OR
+               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 32 || die "Linux 2.6.32 or newer required"
+
+       [ ${PV} != "9999" ] && \
+               { kernel_is le 4 18 || die "Linux 4.18 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}"
+}
+
+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 new feature flags"
+       ewarn "that are incompatible with previous versions. GRUB2 support for"
+       ewarn "/boot with the new feature flags is not yet available."
+       ewarn "Do *NOT* upgrade root pools to use the new feature flags."
+       ewarn "Any new pools will be created with the new feature flags by default"
+       ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
+       ewarn "create a newpool that is backward compatible wih GRUB2, use "
+       ewarn
+       ewarn "zpool create -d -o feature@async_destroy=enabled "
+       ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
+       ewarn " -o feature@spacemap_histogram=enabled"
+       ewarn " -o feature@enabled_txg=enabled "
+       ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
+       ewarn " ..."
+       ewarn
+       ewarn "GRUB2 support will be updated as soon as either the GRUB2"
+       ewarn "developers do a tag or the Gentoo developers find time to backport"
+       ewarn "support from GRUB2 HEAD."
+}
index 142dfe82e15ca1d346d1d3bc8844805b3acf35f4..8be6c68802e640d595471da401bc140078e8ace4 100644 (file)
@@ -1,4 +1,5 @@
 DIST zfs-0.6.5.11.tar.gz 2521959 BLAKE2B 95b145a26620995343df1a468367b882bc71ab3e4812c05839d49d0cd877b756185c91b2609986f91939fbfda322809ddefc8ff9207fe076db03e0038e585ea2 SHA512 877052da2a0cdc78b10cb5041da55e31242db2618c502997f4df9aa46a14482c7f33adce8d21aaf16164a9fe52edc358922ea89c8e109c3247e107bf607d6451
+DIST zfs-0.7.11.tar.gz 6561125 BLAKE2B ee579aa01272d5565fe78ae6074dc1acdd34c8e9a26838462aea937132c322b0fb915c4dadec230560d586db2b2af129735ed6b5e41def4183c9c7ed456ca7aa SHA512 b53c92de2c2542a1b0189368e4b298e93bea13aec8ba415559e86bfc01a9c7deaf436e694aa047ef8a302c79224f96edd150ea93a57eb88c9e26d054cf7ccd2b
 DIST zfs-0.7.8.tar.gz 6514969 BLAKE2B 689d96ad7afeb422cbeca724f248ac56b6fcdc0a7ef215f735180406a7fc0d4d3c9700a41e855186d8044b304c9f0c142c2bdca387299c499974e424965970a4 SHA512 cdeabe10acd2feeeff8a6362987c757b716bfea6ebad42ce022a081106661f774150c113bdaa9e1ac441efdd6da4cf11e6119323ad60ae15ab445a872d952e35
 DIST zfs-0.7.9-r1-patches.tar.xz 10920 BLAKE2B 50a0b8533061b5eecc103179e6fd51499d87f1c3b331b0629efa29a5a7d405c03448db2245fed9389d149cc83021a2c263bc2f02133a5fdd11b088516c353fff SHA512 a9e8c04bf7449b0a63420202b2f6dd8a6aea96ac57e5925c2ca0223f662210f42316ada25aa6113103909de8c9976945828cdb91a6ff9932f282c01316d7b3ec
 DIST zfs-0.7.9.tar.gz 6548649 BLAKE2B aa2f1b9d0ba0eda1af7d420c43d65d5d4183169cfe97c693356e1e0b15967ea512c25454f2d77285600f2209d778e4299f420754932e403a390b87b4f488dc94 SHA512 af5d9c320885ee84019fb04250c4b12c7ac3bb3d1037b1961ec4584701a737558374dc22521743e197356efb1d1f0ced9beff675ae9cfcccf3cd8407467f18fa
diff --git a/sys-fs/zfs/zfs-0.7.11.ebuild b/sys-fs/zfs/zfs-0.7.11.ebuild
new file mode 100644 (file)
index 0000000..50e6557
--- /dev/null
@@ -0,0 +1,210 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+
+if [ ${PV} == "9999" ] ; then
+       inherit git-r3 linux-mod
+       AUTOTOOLS_AUTORECONF="1"
+       EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
+else
+       SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+       KEYWORDS="~amd64"
+fi
+
+inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="BSD-2 CDDL MIT"
+SLOT="0"
+IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
+RESTRICT="test"
+
+COMMON_DEPEND="
+       net-libs/libtirpc
+       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
+               !<sys-kernel/genkernel-3.5.1.1
+               !<sys-kernel/genkernel-next-67
+               !<sys-kernel/bliss-initramfs-7.1.0
+               !<sys-kernel/dracut-044-r1
+               )
+       sys-fs/udev-init-scripts
+"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+pkg_setup() {
+       if use kernel_linux && use test-suite; then
+               linux-info_pkg_setup
+               if  ! linux_config_exists; then
+                       ewarn "Cannot check the linux kernel configuration."
+               else
+                       # recheck that we don't have usblp to collide with libusb
+                       if use test-suite; then
+                               if linux_chkconfig_present BLK_DEV_LOOP; then
+                                       eerror "The ZFS test suite requires loop device support enabled."
+                                       eerror "Please enable it:"
+                                       eerror "    CONFIG_BLK_DEV_LOOP=y"
+                                       eerror "in /usr/src/linux/.config or"
+                                       eerror "    Device Drivers --->"
+                                       eerror "        Block devices --->"
+                                       eerror "            [ ] Loopback device support"
+                               fi
+                       fi
+               fi
+       fi
+}
+
+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="${EPREFIX}/usr/lib/dracut"
+               --with-linux="${KV_DIR}"
+               --with-linux-obj="${KV_OUT_DIR}"
+               --with-udevdir="$(get_udevdir)"
+               --with-systemdunitdir="$(systemd_get_systemunitdir)"
+               --with-systemdpresetdir="${EPREFIX}/lib/systemd/system-preset"
+               $(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"
+
+       newbashcomp "${FILESDIR}/bash-completion-r1" zfs
+       bashcomp_alias zfs zpool
+
+       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
+
+       if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
+       then
+               einfo 'The zfs boot script has been split into the zfs-import,'
+               einfo 'zfs-mount and zfs-share scripts.'
+               einfo
+               einfo 'You had the zfs script in your boot runlevel. For your'
+               einfo 'convenience, it has been automatically removed and the three'
+               einfo 'scripts that replace it have been configured to start.'
+               einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
+               einfo 'runlevel while the zfs-share script is in the default runlevel.'
+
+               rm "${EROOT}etc/runlevels/boot/zfs"
+               ln -snf "${EROOT}etc/init.d/zfs-import" \
+                       "${EROOT}etc/runlevels/boot/zfs-import"
+               ln -snf "${EROOT}etc/init.d/zfs-mount" \
+                       "${EROOT}etc/runlevels/boot/zfs-mount"
+               ln -snf "${EROOT}etc/init.d/zfs-share" \
+                       "${EROOT}etc/runlevels/default/zfs-share"
+       else
+               [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
+                       einfo "You should add zfs-import to the boot runlevel."
+               [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
+                       einfo "You should add zfs-mount to the boot runlevel."
+               [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
+                       einfo "You should add zfs-share to the default runlevel."
+       fi
+
+       if [ -e "${EROOT}etc/runlevels/default/zed" ]
+       then
+               einfo 'The downstream OpenRC zed script has replaced by the upstream'
+               einfo 'OpenRC zfs-zed script.'
+               einfo
+               einfo 'You had the zed script in your default runlevel. For your'
+               einfo 'convenience, it has been automatically removed and the zfs-zed'
+               einfo 'script that replaced it has been configured to start.'
+
+               rm "${EROOT}etc/runlevels/boot/zed"
+               ln -snf "${EROOT}etc/init.d/zfs-sed" \
+                       "${EROOT}etc/runlevels/default/zfs-zed"
+       else
+               [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
+                       einfo "You should add zfs-zed to the default runlevel."
+       fi
+
+       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
+
+       systemd_reenable zfs-zed.service
+       systemd_reenable zfs-import-cache.service
+       systemd_reenable zfs-import-scan.service
+       systemd_reenable zfs-mount.service
+       systemd_reenable zfs-share.service
+       systemd_reenable zfs-import.target
+       systemd_reenable zfs.target
+       systemd_reenable zfs.service
+}
+
+pkg_postrm() {
+       if ! use kernel-builtin && [ ${PV} = "9999" ]
+       then
+               remove_moduledb
+       fi
+}
index 61700357502f3cbed58b3b3b14028334ac691122..5a6f91a022ae01d6292d86ee0c7d272891e3a660 100644 (file)
@@ -1,4 +1,5 @@
 DIST spl-0.6.5.11.tar.gz 531710 BLAKE2B e89cb5a023d3f4b3949a385100b56e01c5fd0ff4448bc175f8463a84b74d1d8f1fcf669c2e4b73f2ec3326653594106ebfa3e66987e49a9cd029355bbb317990 SHA512 eae1641a0d528cb9182deccd309625e13abf3db88ba1cbb54947055b23d1f94b62c045f939d5e952784f19719eea5fdf85d65c5abd22b9db167ea7780bc55722
+DIST spl-0.7.11.tar.gz 551795 BLAKE2B c7002e0281ad6c1e97e2e5ef1365500ed2dce8d06339679b1a5e6405bea61c918cde280b8b840ab023a8fb73198faf985043e3e5eddae2494b331bea7637ad44 SHA512 c7d5d2f504f98f581554d3cf96fe5ae128dae6a27b0aa802e0f95f6b7d89f8a9783c71696e095a6a25a319c28087d933b5ebaa015111f96711d2fb54195c197c
 DIST spl-0.7.8.tar.gz 559558 BLAKE2B 5aa68a8150cb0c922c1ad0df9d1260136cedd95c13df45cc4490d937746a2a0e76e964978128a6f4e553f7bad4adc72a0408ef89969a15ba3f43af26e412b61c SHA512 dcd38dd0971042603baa474460486ed2e7cb59468de7613fa713eb4bdd081026794af7780b5d8970dd17645b04b6dde1e2f43e89a782437a50afc679a8850001
 DIST spl-0.7.9-r1-patches.tar.xz 2428 BLAKE2B 5a8550be587c511975d579bdba889538ed574d51b75ff579d02da190a2f8f0c2ba79a5ab4247603f17d26d0ec4d3552dd066c276b99e152d3d95a420db62038c SHA512 829d16e9ab98d568174558fe850e6cb75a70c05de485054f1801f3896dc1fb56a1aaa7f4ba6c7e107558eef591456098291917ca071774c12f4191b0004b9b93
 DIST spl-0.7.9.tar.gz 551115 BLAKE2B 0ebb801ff60e5f8691c0b3386b5b1c326ea9d40decc20fb455ddb103d108923f28cd870e1c1dc465af5e24e8627973f2b60e7b9b88b3fdbd3ac45f3bd167def2 SHA512 89a42a65b3c09a654ffc3bcef84a0735eefe080c2d790400a3691cccf01e9f0a95cd40a4eed37542cfa7f4a94f20e06aae44886325473713407833d247751ec3
diff --git a/sys-kernel/spl/spl-0.7.11.ebuild b/sys-kernel/spl/spl-0.7.11.ebuild
new file mode 100644 (file)
index 0000000..59fcff4
--- /dev/null
@@ -0,0 +1,111 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+if [[ ${PV} == "9999" ]] ; then
+       AUTOTOOLS_AUTORECONF="1"
+       EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+       inherit git-r3
+else
+       SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/${P}.tar.gz"
+       KEYWORDS="~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod autotools-utils
+
+DESCRIPTION="The Solaris Porting Layer provides many of the Solaris kernel APIs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug"
+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"
+DOCS=( AUTHORS DISCLAIMER )
+
+pkg_setup() {
+       linux-info_pkg_setup
+       CONFIG_CHECK="
+               !DEBUG_LOCK_ALLOC
+               MODULES
+               KALLSYMS
+               !PAX_KERNEXEC_PLUGIN_METHOD_OR
+               !PAX_SIZE_OVERFLOW
+               ZLIB_DEFLATE
+               ZLIB_INFLATE
+       "
+
+       use debug && CONFIG_CHECK="${CONFIG_CHECK}
+               FRAME_POINTER
+               DEBUG_INFO
+               !DEBUG_INFO_REDUCED
+       "
+
+       kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+       [ ${PV} != "9999" ] && \
+               { kernel_is le 4 18 || die "Linux 4.18 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" || die ; }
+
+       # 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)
+       )
+       autotools-utils_src_configure
+}
+
+src_install() {
+       autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+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
+}