Gentoo Archives: gentoo-commits

From: Richard Yao <ryao@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/zfs-kmod/, sys-kernel/spl/, sys-fs/zfs/
Date: Thu, 03 Dec 2015 16:36:30
Message-Id: 1449160108.56ff62daca4803ffcfcddcd88b8322462ba3ddf1.ryao@gentoo
1 commit: 56ff62daca4803ffcfcddcd88b8322462ba3ddf1
2 Author: Richard Yao <ryao <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 3 16:20:38 2015 +0000
4 Commit: Richard Yao <ryao <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 3 16:28:28 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56ff62da
7
8 sys-kernel/spl + sys-fs/zfs{,-kmod}: Partial stable /dev/zfs API + backports
9
10 This backports various fixes and also implements the partial /dev/zfs
11 stable API that I have developed at ClusterHQ over the past 14 months.
12 Ordinarily, I would not commit something like this until it has gone
13 upstream, but upstream wants review from people in the Illumos project
14 that prefer to see things like this in production before it reaches them
15 and it would have likely been deadlocked until I volunteered Gentoo.
16
17 I am confident that this is ready for production and I believe Gentoo
18 benefits from it enough to justify being the first production user.
19 Unless the API changes under review, situations where the kernel modules
20 and userland bits fall out of sync will no longer break the boot process
21 (excluding zfs-share and zfs-zed). This was the longstanding blocker to
22 the ebuilds moving from ~arch to arch, so we could finally see that
23 happen around later this month / early next month.
24
25 Package-Manager: portage-2.2.20.1
26 Signed-off-by: Richard Yao <ryao <AT> gentoo.org>
27
28 sys-fs/zfs-kmod/Manifest | 1 +
29 sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild | 154 +++++++++++++++++++++
30 sys-fs/zfs/Manifest | 1 +
31 sys-fs/zfs/zfs-0.6.5.3-r1.ebuild | 207 +++++++++++++++++++++++++++++
32 sys-kernel/spl/Manifest | 1 +
33 sys-kernel/spl/spl-0.6.5.3-r1.ebuild | 120 +++++++++++++++++
34 6 files changed, 484 insertions(+)
35
36 diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest
37 index 4aa0600..467e3cc 100644
38 --- a/sys-fs/zfs-kmod/Manifest
39 +++ b/sys-fs/zfs-kmod/Manifest
40 @@ -6,6 +6,7 @@ DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f
41 DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe
42 DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1
43 DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634
44 +DIST zfs-0.6.5.3-patches-p0.tar.xz 63780 SHA256 cc6d2881304738619b9d00bc55fbd358119b35cbb345cae2ecf538051f1b7fe7 SHA512 4a531fd10d1d4d9c9cabaad9c13d8112eab3641249a7ce44599288bc4510b444d132833fae2fdf922eff43670ce77d32972c7b5b4a7d70f80c3365a0dcc89b70 WHIRLPOOL adc20e7917a518c790007499763210a4d27a164abe00a86f76d64f56f0fafc459f5d5c483019acacc136e41c57894e669fd58956b3f0ac0bcafeb1e02fec7988
45 DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070
46 DIST zfs-0.6.5.tar.gz 1816180 SHA256 542121940122c922c9d21a2bb39bca4e4a9db2f6bbfd2e576630840e256d4c82 SHA512 58480ee9b0780f1f21d12504abc226be3e6df1939214f6a8f245315d1fa0b9da56b3a744df26426ee78f13684a4ca288df6dddc50f8f91d9d0b4c542980a9c53 WHIRLPOOL fdb5580ec8d4abe57069ce453c1d91225019758ecf5d31856a7897ac7e4b51c6a8ae3258e822f684fbd70a0a7d7410c65c37a569f37d132767522118c587cc24
47 DIST zfs-kmod-0.6.2-p2.tar.xz 28636 SHA256 12882463a38a5a57cf2bb3c14c5783f9511f6dc7b163a47575f2f3dcc24f26f6 SHA512 5792660ae8f5013d12e70d608e9cffa92a8c4089a88a5e78728ee88204b3f970d452d5b0b3874e02be49ebbc139e07139be7b5a86ca40bc8b23cb11a7198a9a8 WHIRLPOOL 0e4c57b363cdd3d736efbd1355567b18e22439bd3b20ef40b27f6b97ad4570c7cc99a11b196ac25359d1966c1a70e178f4fd1687b60450f148ccda47b07282a9
48
49 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
50 new file mode 100644
51 index 0000000..f5ba4fb
52 --- /dev/null
53 +++ b/sys-fs/zfs-kmod/zfs-kmod-0.6.5.3-r1.ebuild
54 @@ -0,0 +1,154 @@
55 +# Copyright 1999-2015 Gentoo Foundation
56 +# Distributed under the terms of the GNU General Public License v2
57 +# $Id$
58 +
59 +EAPI="5"
60 +
61 +if [ ${PV} == "9999" ]; then
62 + AUTOTOOLS_AUTORECONF="1"
63 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git"
64 + inherit git-r3
65 +else
66 + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz
67 + https://dev.gentoo.org/~ryao/dist/zfs-${PV}-patches-p0.tar.xz"
68 + S="${WORKDIR}/zfs-${PV}"
69 + KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
70 +fi
71 +
72 +inherit flag-o-matic linux-info linux-mod toolchain-funcs autotools-utils
73 +
74 +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
75 +HOMEPAGE="http://zfsonlinux.org/"
76 +
77 +LICENSE="CDDL debug? ( GPL-2+ )"
78 +SLOT="0"
79 +IUSE="custom-cflags debug +rootfs"
80 +RESTRICT="debug? ( strip ) test"
81 +
82 +DEPEND="
83 + =sys-kernel/spl-${PV}*
84 + dev-lang/perl
85 + virtual/awk
86 +"
87 +
88 +RDEPEND="${DEPEND}
89 + !sys-fs/zfs-fuse
90 +"
91 +
92 +AT_M4DIR="config"
93 +AUTOTOOLS_IN_SOURCE_BUILD="1"
94 +
95 +DOCS=( AUTHORS COPYRIGHT DISCLAIMER README.markdown )
96 +
97 +pkg_setup() {
98 + linux-info_pkg_setup
99 + CONFIG_CHECK="!DEBUG_LOCK_ALLOC
100 + EFI_PARTITION
101 + IOSCHED_NOOP
102 + MODULES
103 + !PAX_KERNEXEC_PLUGIN_METHOD_OR
104 + ZLIB_DEFLATE
105 + ZLIB_INFLATE
106 + "
107 +
108 + use debug && CONFIG_CHECK="${CONFIG_CHECK}
109 + FRAME_POINTER
110 + DEBUG_INFO
111 + !DEBUG_INFO_REDUCED
112 + "
113 +
114 + use rootfs && \
115 + CONFIG_CHECK="${CONFIG_CHECK}
116 + BLK_DEV_INITRD
117 + DEVTMPFS
118 + "
119 +
120 + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
121 +
122 + [ ${PV} != "9999" ] && \
123 + { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; }
124 +
125 + check_extra_config
126 +}
127 +
128 +src_prepare() {
129 + if [ ${PV} != "9999" ]
130 + then
131 + # Apply patch set
132 + EPATCH_SUFFIX="patch" \
133 + EPATCH_FORCE="yes" \
134 + epatch "${WORKDIR}/zfs-${PV}-patches"
135 + fi
136 +
137 + # Remove GPLv2-licensed ZPIOS unless we are debugging
138 + use debug || sed -e 's/^subdir-m += zpios$//' -i "${S}/module/Makefile.in"
139 +
140 + # Set module revision number
141 + [ ${PV} != "9999" ] && \
142 + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
143 +
144 + autotools-utils_src_prepare
145 +}
146 +
147 +src_configure() {
148 + local SPL_PATH="$(basename $(echo "${EROOT}usr/src/spl-"*))"
149 + use custom-cflags || strip-flags
150 + filter-ldflags -Wl,*
151 +
152 + set_arch_to_kernel
153 + local myeconfargs=(${myeconfargs}
154 + --bindir="${EPREFIX}/bin"
155 + --sbindir="${EPREFIX}/sbin"
156 + --with-config=kernel
157 + --with-linux="${KV_DIR}"
158 + --with-linux-obj="${KV_OUT_DIR}"
159 + --with-spl="${EROOT}usr/src/${SPL_PATH}"
160 + --with-spl-obj="${EROOT}usr/src/${SPL_PATH}/${KV_FULL}"
161 + $(use_enable debug)
162 + )
163 +
164 + autotools-utils_src_configure
165 +}
166 +
167 +src_install() {
168 + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
169 +}
170 +
171 +pkg_postinst() {
172 + linux-mod_pkg_postinst
173 +
174 + # Remove old modules
175 + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/zfs" ]
176 + then
177 + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/zfs"
178 + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/zfs"
179 + ewarn "Automatically removing old modules to avoid problems."
180 + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/zfs" || die "Cannot remove modules"
181 + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
182 + fi
183 +
184 + if use x86 || use arm
185 + then
186 + ewarn "32-bit kernels will likely require increasing vmalloc to"
187 + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
188 + fi
189 +
190 + ewarn "This version of ZFSOnLinux includes support for new feature flags"
191 + ewarn "that are incompatible with previous versions. GRUB2 support for"
192 + ewarn "/boot with the new feature flags is not yet available."
193 + ewarn "Do *NOT* upgrade root pools to use the new feature flags."
194 + ewarn "Any new pools will be created with the new feature flags by default"
195 + ewarn "and will not be compatible with older versions of ZFSOnLinux. To"
196 + ewarn "create a newpool that is backward compatible wih GRUB2, use "
197 + ewarn
198 + ewarn "zpool create -d -o feature@async_destroy=enabled "
199 + ewarn " -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled"
200 + ewarn " -o feature@spacemap_histogram=enabled"
201 + ewarn " -o feature@enabled_txg=enabled "
202 + ewarn " -o feature@extensible_dataset=enabled -o feature@bookmarks=enabled"
203 + ewarn " ..."
204 + ewarn
205 + ewarn "GRUB2 support will be updated as soon as either the GRUB2"
206 + ewarn "developers do a tag or the Gentoo developers find time to backport"
207 + ewarn "support from GRUB2 HEAD."
208 +}
209
210 diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest
211 index 928999e..6e89dca 100644
212 --- a/sys-fs/zfs/Manifest
213 +++ b/sys-fs/zfs/Manifest
214 @@ -6,5 +6,6 @@ DIST zfs-0.6.3-patches-r1.tar.xz 87852 SHA256 71b5286f77cb6a6c2b97cee406dfd4788f
215 DIST zfs-0.6.3.tar.gz 1665270 SHA256 00caeae63cc724d3dd741aeb36fd2dc03d2158794bd6a5e925cdc8d7e5d3da8c SHA512 8c7741f5f227eb031d79fe87bf7d60e790a098fa6caede462d556c97d798832f97f5a377cbb74fc99b8d198e5f3cc1a3491f69fcdaa0408933dbadd132013416 WHIRLPOOL db9791da12c441c89667b194154b209f5aa69ea46d5327cfcde0b3a910cf1f0e5ca448909824e45b31252a1907280b711fb6ba04eb313d09de0ffbf5e6e304fe
216 DIST zfs-0.6.4.2.tar.gz 1738601 SHA256 26af2924cbb891b79203a31827cba4cdc310162d5f7b9e2d643eb6576aa19015 SHA512 87a28997b8f9d36e189410171db583402418a55782b7b7f333993e98c5e17ccc4b6cd5825f38b904294c87e3dfdfb7748bd71cc371589c1358f16c942e0c18db WHIRLPOOL 1700de7da56311a7b608c99a821e2fa97a6145ccc88f3d8eff12f778421ba7b7b9cc5f5fbe5f1acd2ea2fd1db778c200a2ea961e3859a8fc89d80474894293f1
217 DIST zfs-0.6.5.2.tar.gz 1817267 SHA256 aecd2bc5189f2a71a45eb222230146bed231af4f35af5ec7af83a74987c3d595 SHA512 7f0b20feca91d5ab952c1d49ae94d241f8868825b163a3d5f2ad0fd7adcac3ab246a3e6a755019a833be553fbbfd6609828d8123f49a43b42bf76cfd64f234ec WHIRLPOOL 00fd628ef2267366b6f0705e6436ac55b260aabc3588c7f58a7042dfbfe95a0478740b4579326638d28f10ffc8f2d5b3ed21b9f8297e72344ec439fe30310634
218 +DIST zfs-0.6.5.3-patches-p0.tar.xz 63780 SHA256 cc6d2881304738619b9d00bc55fbd358119b35cbb345cae2ecf538051f1b7fe7 SHA512 4a531fd10d1d4d9c9cabaad9c13d8112eab3641249a7ce44599288bc4510b444d132833fae2fdf922eff43670ce77d32972c7b5b4a7d70f80c3365a0dcc89b70 WHIRLPOOL adc20e7917a518c790007499763210a4d27a164abe00a86f76d64f56f0fafc459f5d5c483019acacc136e41c57894e669fd58956b3f0ac0bcafeb1e02fec7988
219 DIST zfs-0.6.5.3.tar.gz 2524218 SHA256 49e6f9760ea172cb756f7357e4bcb90ee0293028540a68d62ed087724276131f SHA512 325cb91b7ddbcd6aa0bb9fc41eb0099dbb047a4e32d096fd414799729ef68cbc9c2e15714092eff8044a681af4ab552bd9ac1949cc673c6c5c3de1a23d9895ec WHIRLPOOL 957c3a75bb11befd4b74583883f2f11f717deb6bda368939b342049e809aa191a9ee8d1e709eaddc2a831418c7fdb5e763f918ff56d45f03baf4569ef8a4a070
220 DIST zfs-kmod-0.6.2-p4.tar.xz 63984 SHA256 9167edc4be86e3fcda6b3c198e51f92ab0c95ac5baca11666c28029a628cdac9 SHA512 13e4ec415c35d2f268d89565745f5898c0943423577a2ba6714b3a069c5a80f244cd06dff91464f38dd4ed60673d1145ead080bb03a56d4be33e328f948ffa64 WHIRLPOOL 8c399ec67119ed4fbebb5599d00f888918678bc4e4ea369b4bdc5c75bfc90fc76396087624c8011de370a54ff103bccaa8922d05ac7ccebb2b3481bbbcf44b19
221
222 diff --git a/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild
223 new file mode 100644
224 index 0000000..50ccf06
225 --- /dev/null
226 +++ b/sys-fs/zfs/zfs-0.6.5.3-r1.ebuild
227 @@ -0,0 +1,207 @@
228 +# Copyright 1999-2015 Gentoo Foundation
229 +# Distributed under the terms of the GNU General Public License v2
230 +# $Id$
231 +
232 +EAPI="5"
233 +PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
234 +
235 +if [ ${PV} == "9999" ] ; then
236 + inherit git-r3 linux-mod
237 + AUTOTOOLS_AUTORECONF="1"
238 + EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
239 +else
240 + SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
241 + https://dev.gentoo.org/~ryao/dist/${P}-patches-p0.tar.xz"
242 + KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
243 +fi
244 +
245 +inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1 systemd toolchain-funcs udev
246 +
247 +DESCRIPTION="Userland utilities for ZFS Linux kernel module"
248 +HOMEPAGE="http://zfsonlinux.org/"
249 +
250 +LICENSE="BSD-2 CDDL MIT"
251 +SLOT="0"
252 +IUSE="custom-cflags debug kernel-builtin +rootfs test-suite static-libs"
253 +RESTRICT="test"
254 +
255 +COMMON_DEPEND="
256 + sys-apps/util-linux[static-libs?]
257 + sys-libs/zlib[static-libs(+)?]
258 + virtual/awk
259 +"
260 +DEPEND="${COMMON_DEPEND}
261 + virtual/pkgconfig
262 +"
263 +
264 +RDEPEND="${COMMON_DEPEND}
265 + !=sys-apps/grep-2.13*
266 + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
267 + !sys-fs/zfs-fuse
268 + !prefix? ( virtual/udev )
269 + test-suite? (
270 + sys-apps/util-linux
271 + sys-devel/bc
272 + sys-block/parted
273 + sys-fs/lsscsi
274 + sys-fs/mdadm
275 + sys-process/procps
276 + virtual/modutils
277 + )
278 + rootfs? (
279 + app-arch/cpio
280 + app-misc/pax-utils
281 + !<sys-boot/grub-2.00-r2:2
282 + )
283 + !>=sys-fs/udev-init-scripts-28
284 +"
285 +
286 +AT_M4DIR="config"
287 +AUTOTOOLS_IN_SOURCE_BUILD="1"
288 +
289 +pkg_setup() {
290 + if use kernel_linux && use test-suite; then
291 + linux-info_pkg_setup
292 + if ! linux_config_exists; then
293 + ewarn "Cannot check the linux kernel configuration."
294 + else
295 + # recheck that we don't have usblp to collide with libusb
296 + if use test-suite; then
297 + if linux_chkconfig_present BLK_DEV_LOOP; then
298 + eerror "The ZFS test suite requires loop device support enabled."
299 + eerror "Please enable it:"
300 + eerror " CONFIG_BLK_DEV_LOOP=y"
301 + eerror "in /usr/src/linux/.config or"
302 + eerror " Device Drivers --->"
303 + eerror " Block devices --->"
304 + eerror " [ ] Loopback device support"
305 + fi
306 + fi
307 + fi
308 + fi
309 +
310 +}
311 +
312 +src_prepare() {
313 + if [ ${PV} != "9999" ]
314 + then
315 + # Apply patch set
316 + EPATCH_SUFFIX="patch" \
317 + EPATCH_FORCE="yes" \
318 + epatch "${WORKDIR}/${P}-patches"
319 + fi
320 +
321 + # Update paths
322 + sed -e "s|/sbin/lsmod|/bin/lsmod|" \
323 + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
324 + -e "s|/sbin/parted|/usr/sbin/parted|" \
325 + -i scripts/common.sh.in
326 +
327 + autotools-utils_src_prepare
328 +}
329 +
330 +src_configure() {
331 + use custom-cflags || strip-flags
332 + local myeconfargs=(
333 + --bindir="${EPREFIX}/bin"
334 + --sbindir="${EPREFIX}/sbin"
335 + --with-config=user
336 + --with-dracutdir="/usr/$(get_libdir)/dracut"
337 + --with-linux="${KV_DIR}"
338 + --with-linux-obj="${KV_OUT_DIR}"
339 + --with-udevdir="$(get_udevdir)"
340 + --with-blkid
341 + $(use_enable debug)
342 + )
343 + autotools-utils_src_configure
344 +
345 + # prepare systemd unit and helper script
346 + cat "${FILESDIR}/zfs.service.in" | \
347 + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
348 + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
349 + > "${T}/zfs.service" || die
350 + cat "${FILESDIR}/zfs-init.sh.in" | \
351 + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
352 + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \
353 + > "${T}/zfs-init.sh" || die
354 +}
355 +
356 +src_install() {
357 + autotools-utils_src_install
358 + gen_usr_ldscript -a uutil nvpair zpool zfs zfs_core
359 + use test-suite || rm -rf "${ED}usr/share/zfs"
360 +
361 + newbashcomp "${FILESDIR}/bash-completion-r1" zfs
362 + bashcomp_alias zfs zpool
363 +
364 + exeinto /usr/libexec
365 + doexe "${T}/zfs-init.sh"
366 + systemd_dounit "${T}/zfs.service"
367 +}
368 +
369 +pkg_postinst() {
370 + if ! use kernel-builtin && [ ${PV} = "9999" ]
371 + then
372 + einfo "Adding ${P} to the module database to ensure that the"
373 + einfo "kernel modules and userland utilities stay in sync."
374 + update_moduledb
375 + fi
376 +
377 + if [ -e "${EROOT}etc/runlevels/boot/zfs" ]
378 + then
379 + einfo 'The zfs boot script has been split into the zfs-import,'
380 + einfo 'zfs-mount and zfs-share scripts.'
381 + einfo
382 + einfo 'You had the zfs script in your boot runlevel. For your'
383 + einfo 'convenience, it has been automatically removed and the three'
384 + einfo 'scripts that replace it have been configured to start.'
385 + einfo 'The zfs-import and zfs-mount scripts have been added to the boot'
386 + einfo 'runlevel while the zfs-share script is in the default runlevel.'
387 +
388 + rm "${EROOT}etc/runlevels/boot/zfs"
389 + ln -snf "${EROOT}etc/init.d/zfs-import" \
390 + "${EROOT}etc/runlevels/boot/zfs-import"
391 + ln -snf "${EROOT}etc/init.d/zfs-mount" \
392 + "${EROOT}etc/runlevels/boot/zfs-mount"
393 + ln -snf "${EROOT}etc/init.d/zfs-share" \
394 + "${EROOT}etc/runlevels/default/zfs-share"
395 + else
396 + [ -e "${EROOT}etc/runlevels/boot/zfs-import" ] || \
397 + einfo "You should add zfs-import to the boot runlevel."
398 + [ -e "${EROOT}etc/runlevels/boot/zfs-mount" ] || \
399 + einfo "You should add zfs-mount to the boot runlevel."
400 + [ -e "${EROOT}etc/runlevels/default/zfs-share" ] || \
401 + einfo "You should add zfs-share to the default runlevel."
402 + fi
403 +
404 + if [ -e "${EROOT}etc/runlevels/default/zed" ]
405 + then
406 + einfo 'The downstream OpenRC zed script has replaced by the upstream'
407 + einfo 'OpenRC zfs-zed script.'
408 + einfo
409 + einfo 'You had the zed script in your default runlevel. For your'
410 + einfo 'convenience, it has been automatically removed and the zfs-zed'
411 + einfo 'script that replaced it has been configured to start.'
412 +
413 + rm "${EROOT}etc/runlevels/boot/zed"
414 + ln -snf "${EROOT}etc/init.d/zfs-sed" \
415 + "${EROOT}etc/runlevels/default/zfs-zed"
416 + else
417 + [ -e "${EROOT}etc/runlevels/default/zfs-zed" ] || \
418 + einfo "You should add zfs-zed to the default runlevel."
419 + fi
420 +
421 + if [ -e "${EROOT}etc/runlevels/shutdown/zfs-shutdown" ]
422 + then
423 + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel."
424 + rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
425 + fi
426 +
427 +}
428 +
429 +pkg_postrm() {
430 + if ! use kernel-builtin && [ ${PV} = "9999" ]
431 + then
432 + remove_moduledb
433 + fi
434 +}
435
436 diff --git a/sys-kernel/spl/Manifest b/sys-kernel/spl/Manifest
437 index 6d31a52..9cf3701 100644
438 --- a/sys-kernel/spl/Manifest
439 +++ b/sys-kernel/spl/Manifest
440 @@ -7,4 +7,5 @@ DIST spl-0.6.3-patches-r1.tar.xz 15996 SHA256 7f1cf74c9be5c14eeff529ce0a45d7dcca
441 DIST spl-0.6.3.tar.gz 221430 SHA256 5d60dfbe86a50e65dbce17f538d8d0874a0cc293374f59eed46cd2dd1809a944 SHA512 c4b82f1e279c7581d0082c044157e8a933edf53233c8c7c8202117454cfda0473ab85fbb56ac0b6da09a4d6798e33020a9c55bf23e25d630efa3265545c3defc WHIRLPOOL eaf001a96a80264e16ce416da38b988eabbfd2fce17690151a496a3141c32e92e5d00791e2d9c009ae0cf6910f80434c10f02a700752fc664f6bf6723bb03dba
442 DIST spl-0.6.4.2.tar.gz 190421 SHA256 05c428f48acc55287c0662a90cfc087985b8ef3694dc057cfb16e1fa2ebbda43 SHA512 6a295651622dd1819bc9ef8f693c6a3cf73dbb084a4789ad508dda644bfcaa1984c5487ea0e16c8d6d468da59a3fae2e9309b2b13cd869a4af4ea675c394bbe3 WHIRLPOOL e270b66ac9e22c806876e727ef040c3cfb2c304889de982f1c54a1625f7bf0214d3b6f8baac42cb3710aa23897f1b1bc67ef633fe35cb1b2c4b57196390a0fad
443 DIST spl-0.6.5.2.tar.gz 193153 SHA256 2642b69870b32e0feeaa57fbfcef546a330064bd4e5805c4862a97287a9287ca SHA512 9db23daf6cc1d6aaa926c987e284d7dbbc538876d6a8b9636d3126efc2be9d54b5ae2cb9cb3a89b604b3d4106374d85d9ad2c1acaf940a1299c1620ee1526d3f WHIRLPOOL cc99f131f9dfcc9ef84237f16491c8c5417af70c57dcbc3dba448c83f93636d5161b301f4fefa4fa8c54c56a1864cd9ce5d5fc758697803bac880839ea57e359
444 +DIST spl-0.6.5.3-patches-p0.tar.xz 4968 SHA256 8e652d41eba421720bcecee99077d3f3c375153809426011f04a2c64aa181ca7 SHA512 cdc053d7ad537cec3b0e7d777d6a341d1b48d6f49613f77db3831b86f54cef098748b944a353c3bf920974a812d650b65116fe26906ff7921ea69cfa5fef9691 WHIRLPOOL ff9e6a193a8585738f57fec59a3513fe69856019569e90c95da306ab853b0c5a8266bb457ef1f4df0c4bcd20dfbde1062c616d3ee55621b288ab796c733d9589
445 DIST spl-0.6.5.3.tar.gz 556179 SHA256 637c1eccd721f5d3bb1570621d2cd6646ec0488608482c0dbeb2838cf4bb310c SHA512 24a0c97f1a425e44d12f43519c23ba78672c06d65a03833a8d3827e4c762a873283c90ce66f64b9b186ab815f0b005e69da537e120b8b53877d0f13e649bac57 WHIRLPOOL e67f50c8adc4ac2b770dfaeb479fa8a8c87270c8314b5366dd95665a30adb2f1fb29db9719a0431cc18adc6865ea6f222c1b443f2b95b764cede8db50f49333d
446
447 diff --git a/sys-kernel/spl/spl-0.6.5.3-r1.ebuild b/sys-kernel/spl/spl-0.6.5.3-r1.ebuild
448 new file mode 100644
449 index 0000000..a705dda
450 --- /dev/null
451 +++ b/sys-kernel/spl/spl-0.6.5.3-r1.ebuild
452 @@ -0,0 +1,120 @@
453 +# Copyright 1999-2015 Gentoo Foundation
454 +# Distributed under the terms of the GNU General Public License v2
455 +# $Id$
456 +
457 +EAPI="5"
458 +
459 +if [[ ${PV} == "9999" ]] ; then
460 + AUTOTOOLS_AUTORECONF="1"
461 + EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
462 + inherit git-r3
463 +else
464 + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/${P}.tar.gz
465 + https://dev.gentoo.org/~ryao/dist/${P}-patches-p0.tar.xz"
466 + KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
467 +fi
468 +
469 +inherit flag-o-matic linux-info linux-mod autotools-utils
470 +
471 +DESCRIPTION="The Solaris Porting Layer is a Linux kernel module which provides many of the Solaris kernel APIs"
472 +HOMEPAGE="http://zfsonlinux.org/"
473 +
474 +LICENSE="GPL-2"
475 +SLOT="0"
476 +IUSE="custom-cflags debug"
477 +RESTRICT="debug? ( strip ) test"
478 +
479 +COMMON_DEPEND="dev-lang/perl
480 + virtual/awk"
481 +
482 +DEPEND="${COMMON_DEPEND}"
483 +
484 +RDEPEND="${COMMON_DEPEND}
485 + !sys-devel/spl"
486 +
487 +AT_M4DIR="config"
488 +AUTOTOOLS_IN_SOURCE_BUILD="1"
489 +DOCS=( AUTHORS DISCLAIMER )
490 +
491 +pkg_setup() {
492 + linux-info_pkg_setup
493 + CONFIG_CHECK="
494 + !DEBUG_LOCK_ALLOC
495 + MODULES
496 + KALLSYMS
497 + !PAX_KERNEXEC_PLUGIN_METHOD_OR
498 + !PAX_SIZE_OVERFLOW
499 + ZLIB_DEFLATE
500 + ZLIB_INFLATE
501 + "
502 +
503 + use debug && CONFIG_CHECK="${CONFIG_CHECK}
504 + FRAME_POINTER
505 + DEBUG_INFO
506 + !DEBUG_INFO_REDUCED
507 + "
508 +
509 + kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
510 +
511 + [ ${PV} != "9999" ] && \
512 + { kernel_is le 4 4 || die "Linux 4.4 is the latest supported version."; }
513 +
514 + check_extra_config
515 +}
516 +
517 +src_prepare() {
518 + if [ ${PV} != "9999" ]
519 + then
520 + # Apply patch set
521 + EPATCH_SUFFIX="patch" \
522 + EPATCH_FORCE="yes" \
523 + epatch "${WORKDIR}/${P}-patches"
524 + fi
525 +
526 + # Workaround for hard coded path
527 + sed -i "s|/sbin/lsmod|/bin/lsmod|" "${S}/scripts/check.sh" || \
528 + die "Cannot patch check.sh"
529 +
530 + # splat is unnecessary unless we are debugging
531 + use debug || { sed -e 's/^subdir-m += splat$//' -i "${S}/module/Makefile.in" || die ; }
532 +
533 + # Set module revision number
534 + [ ${PV} != "9999" ] && \
535 + { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
536 +
537 + autotools-utils_src_prepare
538 +}
539 +
540 +src_configure() {
541 + use custom-cflags || strip-flags
542 + filter-ldflags -Wl,*
543 +
544 + set_arch_to_kernel
545 + local myeconfargs=(
546 + --bindir="${EPREFIX}/bin"
547 + --sbindir="${EPREFIX}/sbin"
548 + --with-config=all
549 + --with-linux="${KV_DIR}"
550 + --with-linux-obj="${KV_OUT_DIR}"
551 + $(use_enable debug)
552 + )
553 + autotools-utils_src_configure
554 +}
555 +
556 +src_install() {
557 + autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
558 +}
559 +
560 +pkg_postinst() {
561 + linux-mod_pkg_postinst
562 +
563 + # Remove old modules
564 + if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/spl" ]
565 + then
566 + ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/spl"
567 + ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/spl"
568 + ewarn "Automatically removing old modules to avoid problems."
569 + rm -r "${EROOT}lib/modules/${KV_FULL}/addon/spl" || die "Cannot remove modules"
570 + rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
571 + fi
572 +}