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 |
+} |