diff options
author | Richard Yao <ryao@gentoo.org> | 2015-12-03 11:20:38 -0500 |
---|---|---|
committer | Richard Yao <ryao@gentoo.org> | 2015-12-03 11:28:28 -0500 |
commit | 56ff62daca4803ffcfcddcd88b8322462ba3ddf1 (patch) | |
tree | f65b79df0a33347514f448de6af4d45516bc7fc3 /sys-fs/zfs-kmod | |
parent | net-libs/rb_libtorrent: Version bump (diff) | |
download | gentoo-56ff62daca4803ffcfcddcd88b8322462ba3ddf1.tar.gz gentoo-56ff62daca4803ffcfcddcd88b8322462ba3ddf1.tar.bz2 gentoo-56ff62daca4803ffcfcddcd88b8322462ba3ddf1.zip |
sys-kernel/spl + sys-fs/zfs{,-kmod}: Partial stable /dev/zfs API + backports
This backports various fixes and also implements the partial /dev/zfs
stable API that I have developed at ClusterHQ over the past 14 months.
Ordinarily, I would not commit something like this until it has gone
upstream, but upstream wants review from people in the Illumos project
that prefer to see things like this in production before it reaches them
and it would have likely been deadlocked until I volunteered Gentoo.
I am confident that this is ready for production and I believe Gentoo
benefits from it enough to justify being the first production user.
Unless the API changes under review, situations where the kernel modules
and userland bits fall out of sync will no longer break the boot process
(excluding zfs-share and zfs-zed). This was the longstanding blocker to
the ebuilds moving from ~arch to arch, so we could finally see that
happen around later this month / early next month.
Package-Manager: portage-2.2.20.1
Signed-off-by: Richard Yao <ryao@gentoo.org>
Diffstat (limited to 'sys-fs/zfs-kmod')
-rw-r--r-- | sys-fs/zfs-kmod/Manifest | 1 | ||||
-rw-r--r-- | sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild | 154 |
2 files changed, 155 insertions, 0 deletions
diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest index 4aa06003d2b1..467e3cc9f6cb 100644 --- a/sys-fs/zfs-kmod/Manifest +++ b/sys-fs/zfs-kmod/Manifest @@ -6,6 +6,7 @@ DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1 DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634 +DIST zfs-0.6.5.3-patches-p0.tar.xz 63780 SHA256 cc6d2881304738619b9d00bc55fbd358119b35cbb345cae2ecf538051f1b7fe7 SHA512 4a531fd10d1d4d9c9cabaad9c13d8112eab3641249a7ce44599288bc4510b444d132833fae2fdf922eff43670ce77d32972c7b5b4a7d70f80c3365a0dcc89b70 WHIRLPOOL adc20e7917a518c790007499763210a4d27a164abe00a86f76d64f56f0fafc459f5d5c483019acacc136e41c57894e669fd58956b3f0ac0bcafeb1e02fec7988 DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070 DIST zfs-0.6.5.tar.gz 1816180 SHA256 542121940122c922c9d21a2bb39bca4e4a9db2f6bbfd2e576630840e256d4c82 SHA512 58480ee9b0780f1f21d12504abc226be3e6df1939214f6a8f245315d1fa0b9da56b3a744df26426ee78f13684a4ca288df6dddc50f8f91d9d0b4c542980a9c53 WHIRLPOOL fdb5580ec8d4abe57069ce453c1d91225019758ecf5d31856a7897ac7e4b51c6a8ae3258e822f684fbd70a0a7d7410c65c37a569f37d132767522118c587cc24 DIST zfs-kmod-0.6.2-p2.tar.xz 28636 SHA256 12882463a38a5a57cf2bb3c14c5783f9511f6dc7b163a47575f2f3dcc24f26f6 SHA512 5792660ae8f5013d12e70d608e9cffa92a8c4089a88a5e78728ee88204b3f970d452d5b0b3874e02be49ebbc139e07139be7b5a86ca40bc8b23cb11a7198a9a8 WHIRLPOOL 0e4c57b363cdd3d736efbd1355567b18e22439bd3b20ef40b27f6b97ad4570c7cc99a11b196ac25359d1966c1a70e178f4fd1687b60450f148ccda47b07282a9 diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild new file mode 100644 index 000000000000..f5ba4fb3e3c2 --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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 + https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p0.tar.xz" + S="${WORKDIR}/zfs-${PV}" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64" +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 4 || die "Linux 4.4 is the latest supported version."; } + + check_extra_config +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Apply patch set + EPATCH_SUFFIX="patch" \ + EPATCH_FORCE="yes" \ + epatch "${WORKDIR}/zfs-${PV}-patches" + fi + + # 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." +} |