From 151c446a8906e7489de10ae2e66642a142e5509c Mon Sep 17 00:00:00 2001 From: Lars Wendler Date: Wed, 30 Oct 2019 17:17:50 +0100 Subject: net-fs/nfs-utils: Revbump to fix issue with old kernels and statx Bumped straight to stable as this seems to affect many users. Thanks-to: Andreas Steinmetz Tested-by: Lars Langhans Tested-by: Brian Evans Bug: https://bugs.gentoo.org/688644 Package-Manager: Portage-2.3.78, Repoman-2.3.17 Signed-off-by: Lars Wendler --- net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch | 31 +++ net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild | 207 -------------------- net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild | 208 +++++++++++++++++++++ 3 files changed, 239 insertions(+), 207 deletions(-) create mode 100644 net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch delete mode 100644 net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild create mode 100644 net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild diff --git a/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch b/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch new file mode 100644 index 000000000000..7515a819915c --- /dev/null +++ b/net-fs/nfs-utils/files/nfs-utils-2.4.1-statx.patch @@ -0,0 +1,31 @@ +From c8953944c5d34095d42f604f911022fbe144918c Mon Sep 17 00:00:00 2001 +From: Andreas Steinmetz +Date: Wed, 30 Oct 2019 16:57:00 +0100 +Subject: [PATCH] Old kernels don't know statx calls and return EINVAL + +On a system with glibc-2.29 and kernel 4.9.128 nfs v3 mount fails as +statx() with mask=STATX_BASIC_STATS returns EINVAL, probably from +glibc, as strace of rpc.mountd shows no system call. + +Fixes: https://bugs.gentoo.org/688644 +Signed-off-by: Lars Wendler +--- + support/misc/xstat.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/support/misc/xstat.c b/support/misc/xstat.c +index fa047880..6aca6e29 100644 +--- a/support/misc/xstat.c ++++ b/support/misc/xstat.c +@@ -47,6 +47,8 @@ statx_do_stat(int fd, const char *pathname, struct stat *statbuf, int flags) + statx_copy(statbuf, &stxbuf); + return 0; + } ++ if (errno == EINVAL) ++ errno = ENOSYS; + if (errno == ENOSYS) + statx_supported = 0; + } else +-- +2.24.0.rc1 + diff --git a/net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild b/net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild deleted file mode 100644 index 26c3bbb3348d..000000000000 --- a/net-fs/nfs-utils/nfs-utils-2.4.1-r2.ebuild +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic linux-info multilib systemd - -DESCRIPTION="NFS client and server daemons" -HOMEPAGE="http://linux-nfs.org/" - -if [[ "${PV}" = *_rc* ]] ; then - MY_PV="$(ver_rs 1- -)" - SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-${PN}-${MY_PV}" -else - SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2" - KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~riscv s390 sh sparc x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="caps ipv6 junction kerberos ldap +libmount nfsdcld +nfsidmap +nfsv4 nfsv41 selinux tcpd +uuid" -REQUIRED_USE="kerberos? ( nfsv4 )" -RESTRICT="test" #315573 - -# kth-krb doesn't provide the right include -# files, and nfs-utils doesn't build against heimdal either, -# so don't depend on virtual/krb. -# (04 Feb 2005 agriffis) -DEPEND=" - >=dev-db/sqlite-3.3 - dev-libs/libxml2 - net-libs/libtirpc:= - >=net-nds/rpcbind-0.2.4 - sys-libs/e2fsprogs-libs - caps? ( sys-libs/libcap ) - ldap? ( net-nds/openldap ) - libmount? ( sys-apps/util-linux ) - nfsv4? ( - dev-libs/libevent:= - >=sys-apps/keyutils-1.5.9:= - kerberos? ( - >=net-libs/libtirpc-0.2.4-r1[kerberos] - app-crypt/mit-krb5 - ) - ) - nfsv41? ( - sys-fs/lvm2 - ) - tcpd? ( sys-apps/tcp-wrappers ) - uuid? ( sys-apps/util-linux )" -RDEPEND="${DEPEND} - !net-libs/libnfsidmap - !net-nds/portmap - ! id_resolver.conf - doins id_resolver.conf - fi - - insinto /etc - doins "${FILESDIR}"/exports - keepdir /etc/exports.d - - local f list=() opt_need="" - if use nfsv4 ; then - opt_need="rpc.idmapd" - list+=( rpc.idmapd rpc.pipefs ) - use kerberos && list+=( rpc.gssd rpc.svcgssd ) - fi - for f in nfs nfsclient rpc.statd "${list[@]}" ; do - newinitd "${FILESDIR}"/${f}.initd ${f} - done - newinitd "${FILESDIR}"/nfsmount.initd-1.3.1 nfsmount # Nuke after 2015/08/01 - for f in nfs nfsclient ; do - newconfd "${FILESDIR}"/${f}.confd ${f} - done - sed -i \ - -e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \ - "${ED}"/etc/conf.d/nfs || die #234132 - - local systemd_systemunitdir="$(systemd_get_systemunitdir)" - sed -i \ - -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ - "${ED}${systemd_systemunitdir}"/* || die - - keepdir /var/lib/nfs #368505 - keepdir /var/lib/nfs/v4recovery #603628 - -} - -pkg_postinst() { - # Install default xtab and friends if there's none existing. In - # src_install we put them in /usr/lib/nfs for safe-keeping, but - # the daemons actually use the files in /var/lib/nfs. #30486 - local f - for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do - [[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue - einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs" - cp -pPR "${f}" "${EROOT}"/var/lib/nfs/ - done - - if systemd_is_booted; then - for v in ${REPLACING_VERSIONS}; do - if ver_test "${v}" -lt 1.3.0; then - ewarn "We have switched to upstream systemd unit files. Since" - ewarn "they got renamed, you should probably enable the new ones." - ewarn "You can run 'equery files nfs-utils | grep systemd'" - ewarn "to know what services you need to enable now." - fi - done - else - ewarn "If you use OpenRC, the nfsmount service has been replaced with nfsclient." - ewarn "If you were using nfsmount, please add nfsclient and netmount to the" - ewarn "same runlevel as nfsmount." - fi -} diff --git a/net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild b/net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild new file mode 100644 index 000000000000..24e426f2374b --- /dev/null +++ b/net-fs/nfs-utils/nfs-utils-2.4.1-r3.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic linux-info multilib systemd + +DESCRIPTION="NFS client and server daemons" +HOMEPAGE="http://linux-nfs.org/" + +if [[ "${PV}" = *_rc* ]] ; then + MY_PV="$(ver_rs 1- -)" + SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" +else + SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2" + KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~riscv s390 sh sparc x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="caps ipv6 junction kerberos ldap +libmount nfsdcld +nfsidmap +nfsv4 nfsv41 selinux tcpd +uuid" +REQUIRED_USE="kerberos? ( nfsv4 )" +RESTRICT="test" #315573 + +# kth-krb doesn't provide the right include +# files, and nfs-utils doesn't build against heimdal either, +# so don't depend on virtual/krb. +# (04 Feb 2005 agriffis) +DEPEND=" + >=dev-db/sqlite-3.3 + dev-libs/libxml2 + net-libs/libtirpc:= + >=net-nds/rpcbind-0.2.4 + sys-libs/e2fsprogs-libs + caps? ( sys-libs/libcap ) + ldap? ( net-nds/openldap ) + libmount? ( sys-apps/util-linux ) + nfsv4? ( + dev-libs/libevent:= + >=sys-apps/keyutils-1.5.9:= + kerberos? ( + >=net-libs/libtirpc-0.2.4-r1[kerberos] + app-crypt/mit-krb5 + ) + ) + nfsv41? ( + sys-fs/lvm2 + ) + tcpd? ( sys-apps/tcp-wrappers ) + uuid? ( sys-apps/util-linux )" +RDEPEND="${DEPEND} + !net-libs/libnfsidmap + !net-nds/portmap + ! id_resolver.conf + doins id_resolver.conf + fi + + insinto /etc + doins "${FILESDIR}"/exports + keepdir /etc/exports.d + + local f list=() opt_need="" + if use nfsv4 ; then + opt_need="rpc.idmapd" + list+=( rpc.idmapd rpc.pipefs ) + use kerberos && list+=( rpc.gssd rpc.svcgssd ) + fi + for f in nfs nfsclient rpc.statd "${list[@]}" ; do + newinitd "${FILESDIR}"/${f}.initd ${f} + done + newinitd "${FILESDIR}"/nfsmount.initd-1.3.1 nfsmount # Nuke after 2015/08/01 + for f in nfs nfsclient ; do + newconfd "${FILESDIR}"/${f}.confd ${f} + done + sed -i \ + -e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \ + "${ED}"/etc/conf.d/nfs || die #234132 + + local systemd_systemunitdir="$(systemd_get_systemunitdir)" + sed -i \ + -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ + "${ED}${systemd_systemunitdir}"/* || die + + keepdir /var/lib/nfs #368505 + keepdir /var/lib/nfs/v4recovery #603628 + +} + +pkg_postinst() { + # Install default xtab and friends if there's none existing. In + # src_install we put them in /usr/lib/nfs for safe-keeping, but + # the daemons actually use the files in /var/lib/nfs. #30486 + local f + for f in "${EROOT}"/usr/$(get_libdir)/nfs/*; do + [[ -e ${EROOT}/var/lib/nfs/${f##*/} ]] && continue + einfo "Copying default ${f##*/} from ${EPREFIX}/usr/$(get_libdir)/nfs to ${EPREFIX}/var/lib/nfs" + cp -pPR "${f}" "${EROOT}"/var/lib/nfs/ + done + + if systemd_is_booted; then + for v in ${REPLACING_VERSIONS}; do + if ver_test "${v}" -lt 1.3.0; then + ewarn "We have switched to upstream systemd unit files. Since" + ewarn "they got renamed, you should probably enable the new ones." + ewarn "You can run 'equery files nfs-utils | grep systemd'" + ewarn "to know what services you need to enable now." + fi + done + else + ewarn "If you use OpenRC, the nfsmount service has been replaced with nfsclient." + ewarn "If you were using nfsmount, please add nfsclient and netmount to the" + ewarn "same runlevel as nfsmount." + fi +} -- cgit v1.2.3-65-gdbad