commit: 20c8e69ec3b25a431ee1c0e8cf3d1f0274dbffec
Author: Georgy Yakovlev <ya <AT> sysdump <DOT> net>
AuthorDate: Thu Mar 8 02:12:59 2018 +0000
Commit: Matt Thode <prometheanfire <AT> gentoo <DOT> org>
CommitDate: Thu Mar 8 16:20:40 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20c8e69e
sys-fs/zfs: fix dracut module path
zfs should use /usr/lib/dracut to install dracut modules.
dracut ebuild defines:
local dracutlibdir="usr/lib/dracut"
with /usr/lib64 path on SYMLINK_LIB=no systems
dracut fails to pick up zfs modules
and generates an unbootable initramfs
Closes: https://bugs.gentoo.org/645176
Package-Manager: Portage-2.3.24, Repoman-2.3.6
Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>
...{zfs-0.7.9999.ebuild => zfs-0.6.5.11-r2.ebuild} | 17 ++++---
.../zfs/{zfs-9999.ebuild => zfs-0.6.5.4-r4.ebuild} | 52 ++++++++++++++++------
.../{zfs-0.7.9999.ebuild => zfs-0.7.5-r2.ebuild} | 20 +++++----
.../{zfs-0.7.9999.ebuild => zfs-0.7.6-r1.ebuild} | 20 +++++----
sys-fs/zfs/zfs-0.7.9999.ebuild | 2 +-
sys-fs/zfs/zfs-9999.ebuild | 2 +-
6 files changed, 75 insertions(+), 38 deletions(-)
diff --git a/sys-fs/zfs/zfs-0.7.9999.ebuild b/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
similarity index 94%
copy from sys-fs/zfs/zfs-0.7.9999.ebuild
copy to sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
index da5f1597be5..1973747e440 100644
--- a/sys-fs/zfs/zfs-0.7.9999.ebuild
+++ b/sys-fs/zfs/zfs-0.6.5.11-r2.ebuild
@@ -4,14 +4,13 @@
EAPI="5"
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-if [[ ${PV} == *"9999" ]] ; then
+if [ ${PV} == "9999" ] ; then
+ inherit git-r3 linux-mod
AUTOTOOLS_AUTORECONF="1"
EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
- EGIT_BRANCH="zfs-0.7-release"
- inherit git-r3 linux-mod
else
SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+ KEYWORDS="~amd64"
fi
inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1
systemd toolchain-funcs udev
@@ -34,7 +33,10 @@ DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
"
+# Adding glibc >= 2.25 blocker for ZFS versions lower
+# than 0.7.0, due to bug 617628.
RDEPEND="${COMMON_DEPEND}
+ !>=sys-libs/glibc-2.25
!=sys-apps/grep-2.13*
!kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
!sys-fs/zfs-fuse
@@ -53,6 +55,7 @@ RDEPEND="${COMMON_DEPEND}
app-misc/pax-utils
!<sys-boot/grub-2.00-r2:2
)
+ sys-fs/udev-init-scripts
"
AT_M4DIR="config"
@@ -97,7 +100,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"
@@ -131,7 +134,7 @@ src_install() {
}
pkg_postinst() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
einfo "Adding ${P} to the module database to ensure that the"
einfo "kernel modules and userland utilities stay in sync."
@@ -191,7 +194,7 @@ pkg_postinst() {
}
pkg_postrm() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
remove_moduledb
fi
diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-0.6.5.4-r4.ebuild
similarity index 81%
copy from sys-fs/zfs/zfs-9999.ebuild
copy to sys-fs/zfs/zfs-0.6.5.4-r4.ebuild
index 7b8d2f94a45..afdedfdc2c2 100644
--- a/sys-fs/zfs/zfs-9999.ebuild
+++ b/sys-fs/zfs/zfs-0.6.5.4-r4.ebuild
@@ -4,12 +4,17 @@
EAPI="5"
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+AT_M4DIR="config"
+AUTOTOOLS_AUTORECONF="1"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
if [ ${PV} == "9999" ] ; then
inherit git-r3 linux-mod
AUTOTOOLS_AUTORECONF="1"
EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
else
-
SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
+
SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${P}-patches-p2.tar.xz"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
fi
@@ -33,9 +38,15 @@ DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
"
+# Adding glibc >= 2.25 blocker for ZFS versions lower
+# than 0.7.0, due to bug 617628.
RDEPEND="${COMMON_DEPEND}
+ !>=sys-libs/glibc-2.25
!=sys-apps/grep-2.13*
- !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* )
+ !kernel-builtin? (
+ =sys-fs/zfs-kmod-${PV}*
+ !<sys-fs/zfs-kmod-0.6.5.3-r1
+ )
!sys-fs/zfs-fuse
!prefix? ( virtual/udev )
test-suite? (
@@ -52,6 +63,7 @@ RDEPEND="${COMMON_DEPEND}
app-misc/pax-utils
!<sys-boot/grub-2.00-r2:2
)
+ !>=sys-fs/udev-init-scripts-28
"
AT_M4DIR="config"
@@ -81,18 +93,20 @@ pkg_setup() {
}
src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${P}-patches"
+ fi
+
# Update paths
sed -e "s|/sbin/lsmod|/bin/lsmod|" \
-e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \
-e "s|/sbin/parted|/usr/sbin/parted|" \
-i scripts/common.sh.in
- if use kernel-builtin
- then
- einfo "kernel-builtin enabled, removing module loading from"
- einfo "systemd units."
- sed -i -e '/modprobe\ zfs/d' etc/systemd/system/*.service.in ||
die
- fi
autotools-utils_src_prepare
}
@@ -102,7 +116,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"
@@ -120,10 +134,6 @@ src_configure() {
sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \
-e "s:@sysconfdir@:${EPREFIX}/etc:g" \
> "${T}/zfs-init.sh" || die
- if use kernel-builtin
- then
- sed -i -e '/modprobe\ zfs/d' "${T}/zfs.service" || die
- fi
}
src_install() {
@@ -197,6 +207,22 @@ pkg_postinst() {
rm "${EROOT}etc/runlevels/shutdown/zfs-shutdown"
fi
+ einfo "sys-kernel/spl-0.6.5.3-r1, sys-fs/zfs-kmod-0.6.5.3-r1 and "
+ einfo "sys-fs/zfs-0.6.5.3-r1 have introduced a partial stable "
+ einfo "/dev/zfs API developed by ClusterHQ. This means that situations "
+ einfo "arising from the kernel modules and userland tools being "
+ einfo "mismatched on future updates will not cause problems."
+ einfo
+ einfo "In specific, this should solve the failure to mount filesystems
when "
+ einfo "old modules are cached in an old initramfs provided that those "
+ einfo "modules support this API"
+ if use rootfs
+ then
+ einfo
+ ewarn "The older modules will *NOT* work with the new userland
code."
+ ewarn "It is very important that you update your initramfs
after this "
+ ewarn "update."
+ fi
}
pkg_postrm() {
diff --git a/sys-fs/zfs/zfs-0.7.9999.ebuild b/sys-fs/zfs/zfs-0.7.5-r2.ebuild
similarity index 92%
copy from sys-fs/zfs/zfs-0.7.9999.ebuild
copy to sys-fs/zfs/zfs-0.7.5-r2.ebuild
index da5f1597be5..118fe97e22a 100644
--- a/sys-fs/zfs/zfs-0.7.9999.ebuild
+++ b/sys-fs/zfs/zfs-0.7.5-r2.ebuild
@@ -4,14 +4,13 @@
EAPI="5"
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-if [[ ${PV} == *"9999" ]] ; then
- AUTOTOOLS_AUTORECONF="1"
- EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
- EGIT_BRANCH="zfs-0.7-release"
+if [ ${PV} == "9999" ] ; then
inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
else
SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+ KEYWORDS="~amd64"
fi
inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1
systemd toolchain-funcs udev
@@ -52,7 +51,12 @@ RDEPEND="${COMMON_DEPEND}
app-arch/cpio
app-misc/pax-utils
!<sys-boot/grub-2.00-r2:2
+ !<sys-kernel/genkernel-3.5.1.1
+ !<sys-kernel/genkernel-next-67
+ !<sys-kernel/bliss-initramfs-7.1.0
+ !<sys-kernel/dracut-044-r1
)
+ sys-fs/udev-init-scripts
"
AT_M4DIR="config"
@@ -97,7 +101,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"
@@ -131,7 +135,7 @@ src_install() {
}
pkg_postinst() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
einfo "Adding ${P} to the module database to ensure that the"
einfo "kernel modules and userland utilities stay in sync."
@@ -191,7 +195,7 @@ pkg_postinst() {
}
pkg_postrm() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
remove_moduledb
fi
diff --git a/sys-fs/zfs/zfs-0.7.9999.ebuild b/sys-fs/zfs/zfs-0.7.6-r1.ebuild
similarity index 92%
copy from sys-fs/zfs/zfs-0.7.9999.ebuild
copy to sys-fs/zfs/zfs-0.7.6-r1.ebuild
index da5f1597be5..118fe97e22a 100644
--- a/sys-fs/zfs/zfs-0.7.9999.ebuild
+++ b/sys-fs/zfs/zfs-0.7.6-r1.ebuild
@@ -4,14 +4,13 @@
EAPI="5"
PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-if [[ ${PV} == *"9999" ]] ; then
- AUTOTOOLS_AUTORECONF="1"
- EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
- EGIT_BRANCH="zfs-0.7-release"
+if [ ${PV} == "9999" ] ; then
inherit git-r3 linux-mod
+ AUTOTOOLS_AUTORECONF="1"
+ EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git"
else
SRC_URI="https://github.com/zfsonlinux/${PN}/releases/download/${P}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
+ KEYWORDS="~amd64"
fi
inherit autotools-utils bash-completion-r1 flag-o-matic linux-info python-r1
systemd toolchain-funcs udev
@@ -52,7 +51,12 @@ RDEPEND="${COMMON_DEPEND}
app-arch/cpio
app-misc/pax-utils
!<sys-boot/grub-2.00-r2:2
+ !<sys-kernel/genkernel-3.5.1.1
+ !<sys-kernel/genkernel-next-67
+ !<sys-kernel/bliss-initramfs-7.1.0
+ !<sys-kernel/dracut-044-r1
)
+ sys-fs/udev-init-scripts
"
AT_M4DIR="config"
@@ -97,7 +101,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"
@@ -131,7 +135,7 @@ src_install() {
}
pkg_postinst() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
einfo "Adding ${P} to the module database to ensure that the"
einfo "kernel modules and userland utilities stay in sync."
@@ -191,7 +195,7 @@ pkg_postinst() {
}
pkg_postrm() {
- if ! use kernel-builtin && [[ ${PV} = *"9999" ]]
+ if ! use kernel-builtin && [ ${PV} = "9999" ]
then
remove_moduledb
fi
diff --git a/sys-fs/zfs/zfs-0.7.9999.ebuild b/sys-fs/zfs/zfs-0.7.9999.ebuild
index da5f1597be5..9a83e14a4af 100644
--- a/sys-fs/zfs/zfs-0.7.9999.ebuild
+++ b/sys-fs/zfs/zfs-0.7.9999.ebuild
@@ -97,7 +97,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"
diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-9999.ebuild
index 7b8d2f94a45..4599d9acad3 100644
--- a/sys-fs/zfs/zfs-9999.ebuild
+++ b/sys-fs/zfs/zfs-9999.ebuild
@@ -102,7 +102,7 @@ src_configure() {
--bindir="${EPREFIX}/bin"
--sbindir="${EPREFIX}/sbin"
--with-config=user
- --with-dracutdir="/usr/$(get_libdir)/dracut"
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
--with-udevdir="$(get_udevdir)"