From 2b66902c411859f19d0ee76b38efcd162d6b3f8f Mon Sep 17 00:00:00 2001 From: Georgy Yakovlev Date: Fri, 13 Dec 2019 15:41:16 -0800 Subject: sys-fs/zfs-kmod: revbump 0.8.2, fix O_TMPFILE umask ignore Bug: https://bugs.gentoo.org/686142 Package-Manager: Portage-2.3.79, Repoman-2.3.17 Signed-off-by: Georgy Yakovlev --- sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch | 34 ++++ sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild | 177 --------------------- sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild | 179 ++++++++++++++++++++++ 3 files changed, 213 insertions(+), 177 deletions(-) create mode 100644 sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch delete mode 100644 sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild create mode 100644 sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild (limited to 'sys-fs') diff --git a/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch b/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch new file mode 100644 index 000000000000..9252b6e7815c --- /dev/null +++ b/sys-fs/zfs-kmod/files/0.8.2-umask_O_TMPFILE.patch @@ -0,0 +1,34 @@ +From ddb4e69db5eb0ed741dc4e32714af3e0f054086c Mon Sep 17 00:00:00 2001 +From: Tomohiro Kusumi +Date: Sat, 14 Dec 2019 08:02:23 +0900 +Subject: [PATCH] Don't fail to apply umask for O_TMPFILE files + +Apply umask to `mode` which will eventually be applied to inode. +This is needed since VFS doesn't apply umask for O_TMPFILE files. + +(Note that zpl_init_acl() applies `ip->i_mode &= ~current_umask();` +only when POSIX ACL is used.) + +Reviewed-by: Brian Behlendorf +Reviewed-by: Tony Hutter +Signed-off-by: Tomohiro Kusumi +Closes #8997 +Closes #8998 + +diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c +index 264c5d2b1cf..e1c6ce7b705 100644 +--- a/module/zfs/zpl_inode.c ++++ b/module/zfs/zpl_inode.c +@@ -218,6 +218,12 @@ zpl_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) + + crhold(cr); + vap = kmem_zalloc(sizeof (vattr_t), KM_SLEEP); ++ /* ++ * The VFS does not apply the umask, therefore it is applied here ++ * when POSIX ACLs are not enabled. ++ */ ++ if (!IS_POSIXACL(dir)) ++ mode &= ~current_umask(); + zpl_vap_init(vap, dir, mode, cr); + + cookie = spl_fstrans_mark(); diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild deleted file mode 100644 index 0df21c6da8cb..000000000000 --- a/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r1.ebuild +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic linux-info linux-mod toolchain-funcs - -DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" -HOMEPAGE="https://zfsonlinux.org/" - -if [[ ${PV} == "9999" ]]; then - inherit autotools git-r3 - EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" -else - SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" - KEYWORDS="~amd64 ~arm64 ~ppc64" - S="${WORKDIR}/zfs-${PV}" - ZFS_KERNEL_COMPAT="5.4" -fi - -LICENSE="CDDL debug? ( GPL-2+ )" -SLOT="0" -IUSE="custom-cflags debug +rootfs" - -DEPEND="" - -RDEPEND="${DEPEND} - !sys-fs/zfs-fuse - !sys-kernel/spl -" - -BDEPEND=" - dev-lang/perl - virtual/awk -" - -RESTRICT="debug? ( strip ) test" - -DOCS=( AUTHORS COPYRIGHT META README.md ) - -pkg_setup() { - linux-info_pkg_setup - - CONFIG_CHECK=" - !DEBUG_LOCK_ALLOC - EFI_PARTITION - MODULES - !PAX_KERNEXEC_PLUGIN_METHOD_OR - !TRIM_UNUSED_KSYMS - 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 - " - - if use arm64; then - kernel_is -ge 5 && CONFIG_CHECK="${CONFIG_CHECK} !PREEMPT" - fi - - kernel_is -lt 5 && CONFIG_CHECK="${CONFIG_CHECK} IOSCHED_NOOP" - - kernel_is -ge 2 6 32 || die "Linux 2.6.32 or newer required" - - if [[ ${PV} != "9999" ]]; then - local kv_major_max kv_minor_max zcompat - zcompat="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - kv_major_max="${zcompat%%.*}" - zcompat="${zcompat#*.}" - kv_minor_max="${zcompat%%.*}" - kernel_is -le "${kv_major_max}" "${kv_minor_max}" || die \ - "Linux ${kv_major_max}.${kv_minor_max} is the latest supported version" - fi - - check_extra_config -} - -src_prepare() { - default - - if [[ ${PV} == "9999" ]]; then - eautoreconf - else - # Set module revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - # Remove GPLv2-licensed ZPIOS unless we are debugging - use debug || sed -e 's/^subdir-m += zpios$//' -i module/Makefile.in -} - -src_configure() { - set_arch_to_kernel - - use custom-cflags || strip-flags - - filter-ldflags -Wl,* - - local myconf=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --with-config=kernel - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - $(use_enable debug) - ) - - econf "${myconf[@]}" -} - -src_compile() { - set_arch_to_kernel - - myemakeargs=( V=1 ) - - emake "${myemakeargs[@]}" -} - -src_install() { - set_arch_to_kernel - - myemakeargs+=( - DEPMOD="/bin/true" - DESTDIR="${D}" - INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" - ) - - emake "${myemakeargs[@]}" install - - einstalldocs -} - -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." -} diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild new file mode 100644 index 000000000000..961ee269f06b --- /dev/null +++ b/sys-fs/zfs-kmod/zfs-kmod-0.8.2-r2.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic linux-info linux-mod toolchain-funcs + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="https://zfsonlinux.org/" + +if [[ ${PV} == "9999" ]]; then + inherit autotools git-r3 + EGIT_REPO_URI="https://github.com/zfsonlinux/zfs.git" +else + SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/zfs-${PV}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~ppc64" + S="${WORKDIR}/zfs-${PV}" + ZFS_KERNEL_COMPAT="5.4" +fi + +LICENSE="CDDL debug? ( GPL-2+ )" +SLOT="0" +IUSE="custom-cflags debug +rootfs" + +DEPEND="" + +RDEPEND="${DEPEND} + !sys-fs/zfs-fuse + !sys-kernel/spl +" + +BDEPEND=" + dev-lang/perl + virtual/awk +" + +RESTRICT="debug? ( strip ) test" + +DOCS=( AUTHORS COPYRIGHT META README.md ) + +PATCHES=( "${FILESDIR}/${PV}-umask_O_TMPFILE.patch" ) + +pkg_setup() { + linux-info_pkg_setup + + CONFIG_CHECK=" + !DEBUG_LOCK_ALLOC + EFI_PARTITION + MODULES + !PAX_KERNEXEC_PLUGIN_METHOD_OR + !TRIM_UNUSED_KSYMS + 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 + " + + if use arm64; then + kernel_is -ge 5 && CONFIG_CHECK="${CONFIG_CHECK} !PREEMPT" + fi + + kernel_is -lt 5 && CONFIG_CHECK="${CONFIG_CHECK} IOSCHED_NOOP" + + kernel_is -ge 2 6 32 || die "Linux 2.6.32 or newer required" + + if [[ ${PV} != "9999" ]]; then + local kv_major_max kv_minor_max zcompat + zcompat="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" + kv_major_max="${zcompat%%.*}" + zcompat="${zcompat#*.}" + kv_minor_max="${zcompat%%.*}" + kernel_is -le "${kv_major_max}" "${kv_minor_max}" || die \ + "Linux ${kv_major_max}.${kv_minor_max} is the latest supported version" + fi + + check_extra_config +} + +src_prepare() { + default + + if [[ ${PV} == "9999" ]]; then + eautoreconf + else + # Set module revision number + sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" + fi + + # Remove GPLv2-licensed ZPIOS unless we are debugging + use debug || sed -e 's/^subdir-m += zpios$//' -i module/Makefile.in +} + +src_configure() { + set_arch_to_kernel + + use custom-cflags || strip-flags + + filter-ldflags -Wl,* + + local myconf=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=kernel + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + $(use_enable debug) + ) + + econf "${myconf[@]}" +} + +src_compile() { + set_arch_to_kernel + + myemakeargs=( V=1 ) + + emake "${myemakeargs[@]}" +} + +src_install() { + set_arch_to_kernel + + myemakeargs+=( + DEPMOD="/bin/true" + DESTDIR="${D}" + INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}" + ) + + emake "${myemakeargs[@]}" install + + einstalldocs +} + +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." +} -- cgit v1.2.3-65-gdbad