Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/zfs-kmod/
Date: Wed, 03 Aug 2022 04:36:03
Message-Id: 1659501322.2b658334aaa40c30c08d1e003c11135507b83174.sam@gentoo
1 commit: 2b658334aaa40c30c08d1e003c11135507b83174
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Wed Aug 3 04:18:24 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed Aug 3 04:35:22 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b658334
7
8 sys-fs/zfs-kmod: backport various fixes
9
10 Mostly build fixes (https://github.com/openzfs/zfs/pull/13684)
11 but also https://github.com/openzfs/zfs/pull/13714.
12
13 All from upstream zfs-2.1.6-staging branch.
14
15 Temporarily unkeyworded.
16
17 Bug: https://bugs.gentoo.org/855182
18 Bug: https://bugs.gentoo.org/863212
19 Signed-off-by: Sam James <sam <AT> gentoo.org>
20
21 sys-fs/zfs-kmod/Manifest | 1 +
22 sys-fs/zfs-kmod/zfs-kmod-2.1.5-r1.ebuild | 221 +++++++++++++++++++++++++++++++
23 2 files changed, 222 insertions(+)
24
25 diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest
26 index 8d6ae4d6ba30..7b982f51e740 100644
27 --- a/sys-fs/zfs-kmod/Manifest
28 +++ b/sys-fs/zfs-kmod/Manifest
29 @@ -2,5 +2,6 @@ DIST zfs-2.0.7.tar.gz 14550055 BLAKE2B 80f7297f04a21cd8f3f2043d895b0325512ba0cea
30 DIST zfs-2.0.7.tar.gz.asc 836 BLAKE2B 65e7df58c33ccadc4e0ca9dbc1e8c006abbec8442e2da50872a1ab0cbb841fc45152298e8d3b93ee4320ddae6416e3a856caf80d8efb21b19db53dfedbf00e38 SHA512 b901d8e92faa6cfe6010bd54de88c7d18057f434cb07f8a89672d6c446a0a97b23209ee8f02cfd3b2a8f431c68ec977e7dc9f95fe5d385dba0bb6d37338ba682
31 DIST zfs-2.1.4.tar.gz 34896310 BLAKE2B be303f1181f604770536aa4aa61d5319ec408abbd04964cedadd15b3101a15deba6539bb5d833f4fed357f323d74f622d035305df699b213df41ae45bffdd200 SHA512 c7b57c43fc287b22905067ab022df4133d32e1a5dc335f7baf743b4ef88f64c2bf9d41318c2083230d077dd49e68f7d9e6172266e13d4b1eee29d359860f969e
32 DIST zfs-2.1.4.tar.gz.asc 836 BLAKE2B b311730f72d534c87a782515f35a354bfbefba0513dc0cee5b0b497cf742590f13be6a49ff8a70d7d6503d0ba06b0266e7d290d718337add614812c3d1b0731a SHA512 53880cd5369f468551bab685eb83739ed76aa286886fdd2cbad4270755fe809da730082a91bba61011f59594fac297ce05645ae32c2c73b4a9aa835f2991a1ee
33 +DIST zfs-2.1.5-patches.tar.xz 13324 BLAKE2B bfef8abd298cebd54491272b8c1deacace901d9a1acce67cb927bab6447eafd985352fd09f64336aa9d6611bab0e5c761d7973f0a65c408d77bb735a94c60253 SHA512 d2b009664f8eb4f2a8596693011fde578b6eae123c6169e5dfb70bd920c0f987f5177f7b1be008705a421574a8a9bc930f99823785c69e81573f18b0350cb9bd
34 DIST zfs-2.1.5.tar.gz 34951632 BLAKE2B c6e3efd9c0cda91654767eaad0eaaa05cd9a5daf1cb0384c9c78b30062f5c29142ac37ab9dbdaf96c91456d11c317d782d3524ade293f03fda983e5992b79e49 SHA512 d9ccf1049cefa9167d25f71fbdca70092cd02368b60f09341e6489fb68dc5f89e87b026b0191f4d81181a8851449124d824a1d959d0e2fb29c8a3d624edc4f03
35 DIST zfs-2.1.5.tar.gz.asc 836 BLAKE2B 4a81c266967540850a2cc824e79555ca9d05b2e17e45fa2723893cbd85b55e3d7d791986d6667b7ee1530e7692c03818f15e8b6798393b54989f90801b775786 SHA512 224b0dcf4982c63a8eff0a39d054537e7d023f7c35e154e4d20490b8daf184c076bc8e4de7d2c5af4059f8a802b747e637aad4479cd8d1330cf5b26da2f19c94
36
37 diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.5-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.5-r1.ebuild
38 new file mode 100644
39 index 000000000000..eae6fb587434
40 --- /dev/null
41 +++ b/sys-fs/zfs-kmod/zfs-kmod-2.1.5-r1.ebuild
42 @@ -0,0 +1,221 @@
43 +# Copyright 1999-2022 Gentoo Authors
44 +# Distributed under the terms of the GNU General Public License v2
45 +
46 +EAPI=7
47 +
48 +inherit autotools dist-kernel-utils flag-o-matic linux-mod toolchain-funcs
49 +
50 +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
51 +HOMEPAGE="https://github.com/openzfs/zfs"
52 +
53 +if [[ ${PV} == "9999" ]]; then
54 + inherit git-r3
55 + EGIT_REPO_URI="https://github.com/openzfs/zfs.git"
56 +else
57 + VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/openzfs.asc
58 + inherit verify-sig
59 +
60 + MY_PV="${PV/_rc/-rc}"
61 + SRC_URI="https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz"
62 + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/sys-fs/zfs/${P/-kmod}-patches.tar.xz"
63 + SRC_URI+=" verify-sig? ( https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz.asc )"
64 + S="${WORKDIR}/zfs-${PV%_rc?}"
65 + ZFS_KERNEL_COMPAT="5.18"
66 +
67 + # increments minor eg 5.14 -> 5.15, and still supports override.
68 + ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
69 + ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))"
70 +
71 + # Unkeyworded briefly for testing
72 + #if [[ ${PV} != *_rc* ]]; then
73 + # KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
74 + #fi
75 +fi
76 +
77 +LICENSE="CDDL MIT debug? ( GPL-2+ )"
78 +SLOT="0/${PVR}"
79 +IUSE="custom-cflags debug +rootfs"
80 +
81 +RDEPEND="${DEPEND}
82 + !sys-kernel/spl
83 +"
84 +
85 +BDEPEND="
86 + dev-lang/perl
87 + virtual/awk
88 +"
89 +
90 +# we want dist-kernel block in BDEPEND because of portage resolver.
91 +# since linux-mod.eclass already sets version-unbounded dep, portage
92 +# will pull new versions. So we set it in BDEPEND which takes priority.
93 +# and we don't need in in git ebuild.
94 +if [[ ${PV} != "9999" ]] ; then
95 + BDEPEND+="
96 + verify-sig? ( sec-keys/openpgp-keys-openzfs )
97 + dist-kernel? ( <virtual/dist-kernel-${ZFS_KERNEL_DEP}:= )
98 + "
99 +fi
100 +
101 +# PDEPEND in this form is needed to trick portage suggest
102 +# enabling dist-kernel if only 1 package have it set
103 +PDEPEND="dist-kernel? ( ~sys-fs/zfs-${PV}[dist-kernel] )"
104 +
105 +RESTRICT="debug? ( strip ) test"
106 +
107 +DOCS=( AUTHORS COPYRIGHT META README.md )
108 +
109 +PATCHES=(
110 + # bug #863212, bug #855182
111 + "${WORKDIR}"/${P/-kmod}-patches/
112 +)
113 +
114 +pkg_pretend() {
115 + use rootfs || return 0
116 +
117 + if has_version virtual/dist-kernel && ! use dist-kernel; then
118 + ewarn "You have virtual/dist-kernel installed, but"
119 + ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}"
120 + ewarn "It's recommended to globally enable dist-kernel USE flag"
121 + ewarn "to auto-trigger initrd rebuilds with kernel updates"
122 + fi
123 +}
124 +
125 +pkg_setup() {
126 + CONFIG_CHECK="
127 + !DEBUG_LOCK_ALLOC
128 + EFI_PARTITION
129 + MODULES
130 + !PAX_KERNEXEC_PLUGIN_METHOD_OR
131 + !TRIM_UNUSED_KSYMS
132 + ZLIB_DEFLATE
133 + ZLIB_INFLATE
134 + "
135 +
136 + use debug && CONFIG_CHECK="${CONFIG_CHECK}
137 + FRAME_POINTER
138 + DEBUG_INFO
139 + !DEBUG_INFO_REDUCED
140 + "
141 +
142 + use rootfs && \
143 + CONFIG_CHECK="${CONFIG_CHECK}
144 + BLK_DEV_INITRD
145 + DEVTMPFS
146 + "
147 +
148 + kernel_is -lt 5 && CONFIG_CHECK="${CONFIG_CHECK} IOSCHED_NOOP"
149 +
150 + if [[ ${PV} != "9999" ]]; then
151 + local kv_major_max kv_minor_max zcompat
152 + zcompat="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
153 + kv_major_max="${zcompat%%.*}"
154 + zcompat="${zcompat#*.}"
155 + kv_minor_max="${zcompat%%.*}"
156 + kernel_is -le "${kv_major_max}" "${kv_minor_max}" || die \
157 + "Linux ${kv_major_max}.${kv_minor_max} is the latest supported version"
158 +
159 + fi
160 +
161 + kernel_is -ge 3 10 || die "Linux 3.10 or newer required"
162 +
163 + linux-mod_pkg_setup
164 +}
165 +
166 +src_unpack() {
167 + if use verify-sig ; then
168 + # Needed for downloaded patch (which is unsigned, which is fine)
169 + verify-sig_verify_detached "${DISTDIR}"/zfs-${MY_PV}.tar.gz{,.asc}
170 + fi
171 +
172 + default
173 +}
174 +
175 +src_prepare() {
176 + default
177 +
178 + # Run unconditionally (bug #792627)
179 + eautoreconf
180 +
181 + if [[ ${PV} != "9999" ]]; then
182 + # Set module revision number
183 + sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release"
184 + fi
185 +}
186 +
187 +src_configure() {
188 + set_arch_to_kernel
189 +
190 + use custom-cflags || strip-flags
191 +
192 + filter-ldflags -Wl,*
193 +
194 + # Set CROSS_COMPILE in the environment.
195 + # This allows the user to override it via make.conf or via a local Makefile.
196 + # https://bugs.gentoo.org/811600
197 + export CROSS_COMPILE=${CROSS_COMPILE-${CHOST}-}
198 +
199 + local myconf=(
200 + HOSTCC="$(tc-getBUILD_CC)"
201 + --bindir="${EPREFIX}/bin"
202 + --sbindir="${EPREFIX}/sbin"
203 + --with-config=kernel
204 + --with-linux="${KV_DIR}"
205 + --with-linux-obj="${KV_OUT_DIR}"
206 + $(use_enable debug)
207 + )
208 +
209 + econf "${myconf[@]}"
210 +}
211 +
212 +src_compile() {
213 + set_arch_to_kernel
214 +
215 + myemakeargs=(
216 + HOSTCC="$(tc-getBUILD_CC)"
217 + V=1
218 + )
219 +
220 + emake "${myemakeargs[@]}"
221 +}
222 +
223 +src_install() {
224 + set_arch_to_kernel
225 +
226 + myemakeargs+=(
227 + DEPMOD=:
228 + # INSTALL_MOD_PATH ?= $(DESTDIR) in module/Makefile
229 + DESTDIR="${D}"
230 + )
231 +
232 + emake "${myemakeargs[@]}" install
233 +
234 + einstalldocs
235 +}
236 +
237 +pkg_postinst() {
238 + linux-mod_pkg_postinst
239 +
240 + if [[ -z ${ROOT} ]] && use dist-kernel; then
241 + set_arch_to_pkgmgr
242 + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
243 + fi
244 +
245 + if use x86 || use arm; then
246 + ewarn "32-bit kernels will likely require increasing vmalloc to"
247 + ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
248 + fi
249 +
250 + if has_version sys-boot/grub; then
251 + ewarn "This version of OpenZFS includes support for new feature flags"
252 + ewarn "that are incompatible with previous versions. GRUB2 support for"
253 + ewarn "/boot with the new feature flags is not yet available."
254 + ewarn "Do *NOT* upgrade root pools to use the new feature flags."
255 + ewarn "Any new pools will be created with the new feature flags by default"
256 + ewarn "and will not be compatible with older versions of OpenZFS. To"
257 + ewarn "create a newpool that is backward compatible wih GRUB2, use "
258 + ewarn
259 + ewarn "zpool create -o compatibility=grub2 ..."
260 + ewarn
261 + ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features."
262 + fi
263 +}