* [gentoo-commits] proj/musl:master commit in: net-fs/nfs-utils/, net-fs/nfs-utils/files/
@ 2019-05-08 20:41 Anthony G. Basile
0 siblings, 0 replies; 2+ messages in thread
From: Anthony G. Basile @ 2019-05-08 20:41 UTC (permalink / raw
To: gentoo-commits
commit: 90e0563776003912817eb5b9c8df4780522a3843
Author: Necktwi Ozfguah <necktwi <AT> ferryfair <DOT> com>
AuthorDate: Wed May 8 13:27:07 2019 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed May 8 20:39:19 2019 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=90e05637
net-fs/nfs-utils: version bump to 2.3.3 & getaddrinfo nullptr fix
getaddrinfo nullptr exportfs segfault fix is provided by awilfox@#musl
Signed-off-by: Necktwi Ozfguah <necktwi <AT> ferryfair.com>
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
net-fs/nfs-utils/Manifest | 1 +
net-fs/nfs-utils/files/nfs-utils-musl.patch | 126 ++++++++++++++++++
net-fs/nfs-utils/nfs-utils-2.3.3.ebuild | 192 ++++++++++++++++++++++++++++
3 files changed, 319 insertions(+)
diff --git a/net-fs/nfs-utils/Manifest b/net-fs/nfs-utils/Manifest
index 47f42dd..3196928 100644
--- a/net-fs/nfs-utils/Manifest
+++ b/net-fs/nfs-utils/Manifest
@@ -1,2 +1,3 @@
DIST nfs-utils-1.3.4.tar.bz2 814545 BLAKE2B 4b8c5fa4c1c21858e19d05f973c6d94185cf6a15c88348dda5e47c6714f9dba00dfa05237d908479970440b2ea57287600e92cb4d49872127b3801e075d6bf1a SHA512 765c0bc55a9a0bdb2c25d8fb7189a9054fb9f2dd51726eda29f44e5d5c423e245b02307dfcfab9239276d8f44869a72732416f6e9ef5a1f80753d9243ba1b38c
DIST nfs-utils-2.3.1.tar.bz2 854899 BLAKE2B f9541b9dc103d978f21d57d8ba0c14a3b30f6ba874b112239d014076c1c72b6654e8e02b4bfea686e658dac84d1e896b872bc2054591275ef1713ae4e7b7d005 SHA512 de3e70f8656bc5b5aa98262685a9e80929c6314234d9bbb74d4c7efcb7a8b2640d48d2100850b403157ebefc8f0eb48598b48238fae795f64c7a0e9a8bff93e3
+DIST nfs-utils-2.3.3.tar.bz2 888947 BLAKE2B 7c913f0c5061807d4af162fb392c8f466abb97c88960853b52298f61056bcad08f67a16e577036dec9afa737d88268d5a766b67c4b30a014b666dfbf3db81031 SHA512 266b86ef5041a7ecd144c6f2570e8a6eb00ebb4e547fa4b8c8c3e60a4af117c2690ff9effb0d4113a7b7ef57164583c8a6ada9cb1bb8f7b748524c826eaf1cba
diff --git a/net-fs/nfs-utils/files/nfs-utils-musl.patch b/net-fs/nfs-utils/files/nfs-utils-musl.patch
index 19c42b1..e880072 100644
--- a/net-fs/nfs-utils/files/nfs-utils-musl.patch
+++ b/net-fs/nfs-utils/files/nfs-utils-musl.patch
@@ -19,3 +19,129 @@
#include "xlog.h"
#include "misc.h"
+diff -Naur nfs-utils-2.3.3-orig/support/export/client.c nfs-utils-2.3.3/support/export/client.c
+--- nfs-utils-2.3.3-orig/support/export/client.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/support/export/client.c 2019-04-21 02:48:45.676838188 -0500
+@@ -309,7 +309,8 @@
+ init_addrlist(clp, ai);
+
+ out:
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ return clp;
+ }
+
+diff -Naur nfs-utils-2.3.3-orig/tests/nsm_client/nsm_client.c nfs-utils-2.3.3/tests/nsm_client/nsm_client.c
+--- nfs-utils-2.3.3-orig/tests/nsm_client/nsm_client.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/tests/nsm_client/nsm_client.c 2019-04-21 02:35:53.139552780 -0500
+@@ -243,7 +243,8 @@
+ printf("RPC client creation failed\n");
+ }
+ out:
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ return client;
+ }
+
+diff -Naur nfs-utils-2.3.3-orig/utils/exportfs/exportfs.c nfs-utils-2.3.3/utils/exportfs/exportfs.c
+--- nfs-utils-2.3.3-orig/utils/exportfs/exportfs.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/utils/exportfs/exportfs.c 2019-04-21 02:40:07.432327005 -0500
+@@ -282,7 +282,8 @@
+ validate_export(exp);
+
+ out:
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ }
+
+ static int exportfs_generic(char *arg, char *options, int verbose)
+@@ -395,7 +396,8 @@
+ if (!success)
+ xlog(L_ERROR, "Could not find '%s:%s' to unexport.", hname, path);
+
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ }
+
+ static int unexportfs_generic(char *arg, int verbose)
+@@ -639,8 +641,10 @@
+ }
+
+ out:
+- freeaddrinfo(results1);
+- freeaddrinfo(results2);
++ if (results1 != NULL)
++ freeaddrinfo(results1);
++ if (results2 != NULL)
++ freeaddrinfo(results2);
+ return result;
+ }
+
+diff -Naur nfs-utils-2.3.3-orig/utils/mount/stropts.c nfs-utils-2.3.3/utils/mount/stropts.c
+--- nfs-utils-2.3.3-orig/utils/mount/stropts.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/utils/mount/stropts.c 2019-04-21 02:43:18.451874403 -0500
+@@ -1263,7 +1263,8 @@
+ } else
+ nfs_error(_("%s: internal option parsing error"), progname);
+
+- freeaddrinfo(mi.address);
++ if (mi.address != NULL)
++ freeaddrinfo(mi.address);
+ free(mi.hostname);
+ return retval;
+ }
+diff -Naur nfs-utils-2.3.3-orig/utils/mountd/cache.c nfs-utils-2.3.3/utils/mountd/cache.c
+--- nfs-utils-2.3.3-orig/utils/mountd/cache.c 2019-04-21 02:33:43.603417171 -0500
++++ nfs-utils-2.3.3/utils/mountd/cache.c 2019-04-21 02:45:11.289792765 -0500
+@@ -834,7 +834,8 @@
+ out:
+ if (found_path)
+ free(found_path);
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ free(dom);
+ xlog(D_CALL, "nfsd_fh: found %p path %s", found, found ? found->e_path : NULL);
+ }
+@@ -1355,7 +1356,7 @@
+ xlog(D_CALL, "nfsd_export: found %p path %s", found, path ? path : NULL);
+ if (dom) free(dom);
+ if (path) free(path);
+- freeaddrinfo(ai);
++ if (ai) freeaddrinfo(ai);
+ }
+
+
+diff -Naur nfs-utils-2.3.3-orig/utils/mountd/mountd.c nfs-utils-2.3.3/utils/mountd/mountd.c
+--- nfs-utils-2.3.3-orig/utils/mountd/mountd.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/utils/mountd/mountd.c 2019-04-21 02:45:41.796526387 -0500
+@@ -581,7 +581,8 @@
+ freeaddrinfo(ai);
+ continue;
+ }
+- freeaddrinfo(ai);
++ if (ai != NULL)
++ freeaddrinfo(ai);
+ }
+ cp = &(c->gr_next);
+ }
+diff -Naur nfs-utils-2.3.3-orig/utils/statd/hostname.c nfs-utils-2.3.3/utils/statd/hostname.c
+--- nfs-utils-2.3.3-orig/utils/statd/hostname.c 2018-09-06 13:09:08.000000000 -0500
++++ nfs-utils-2.3.3/utils/statd/hostname.c 2019-04-21 02:41:39.712446505 -0500
+@@ -308,8 +308,10 @@
+ }
+
+ out:
+- freeaddrinfo(results2);
+- freeaddrinfo(results1);
++ if (results2 != NULL)
++ freeaddrinfo(results2);
++ if (results1 != NULL)
++ freeaddrinfo(results1);
+
+ xlog(D_CALL, "%s: hostnames %s and %s %s", __func__,
+ hostname1, hostname2,
diff --git a/net-fs/nfs-utils/nfs-utils-2.3.3.ebuild b/net-fs/nfs-utils/nfs-utils-2.3.3.ebuild
new file mode 100644
index 0000000..a324c7e
--- /dev/null
+++ b/net-fs/nfs-utils/nfs-utils-2.3.3.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic multilib systemd
+
+DESCRIPTION="NFS client and server daemons"
+HOMEPAGE="http://linux-nfs.org/"
+
+if [[ "${PV}" = *_rc* ]] ; then
+ inherit versionator
+ MY_PV="$(replace_all_version_separators -)"
+ 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 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_COMMON="
+ 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 )
+ nfsdcld? ( >=dev-db/sqlite-3.3 )
+ 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_COMMON}
+ !net-libs/libnfsidmap
+ !net-nds/portmap
+ !<sys-apps/openrc-0.13.9
+ selinux? (
+ sec-policy/selinux-rpc
+ sec-policy/selinux-rpcbind
+ )
+"
+DEPEND="${DEPEND_COMMON}
+ dev-libs/libxml2
+ net-libs/rpcsvc-proto
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
+ "${FILESDIR}"/${PN}-1.2.8-cross-build.patch
+ "${FILESDIR}"/${PN}-2.3.2-junction_libs.patch
+ "${FILESDIR}"/${PN}-2.3.2-no-werror.patch
+ "${FILESDIR}"/${PN}-musl.patch
+)
+
+src_prepare() {
+ default
+
+ sed \
+ -e "/^sbindir/s:= := \"${EPREFIX}\":g" \
+ -i utils/*/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ export libsqlite3_cv_is_recent=yes # Our DEPEND forces this.
+ export ac_cv_header_keyutils_h=$(usex nfsidmap)
+ local myeconfargs=(
+ --with-statedir="${EPREFIX%/}"/var/lib/nfs
+ --enable-tirpc
+ --with-tirpcinclude="${EPREFIX%/}"/usr/include/tirpc/
+ --with-pluginpath="${EPREFIX%/}"/usr/$(get_libdir)/libnfsidmap
+ --with-rpcgen
+ --with-systemd="$(systemd_get_systemunitdir)"
+ --without-gssglue
+ $(use_enable caps)
+ $(use_enable ipv6)
+ $(use_enable junction)
+ $(use_enable kerberos gss)
+ $(use_enable kerberos svcgss)
+ $(use_enable ldap)
+ $(use_enable libmount libmount-mount)
+ $(use_enable nfsdcld nfsdcltrack)
+ $(use_enable nfsv4)
+ $(use_enable nfsv41)
+ $(use_enable uuid)
+ $(use_with tcpd tcp-wrappers)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile(){
+ # remove compiled files bundled in the tarball
+ emake clean
+ default
+}
+
+src_install() {
+ default
+ rm linux-nfs/Makefile* || die
+ dodoc -r linux-nfs README
+
+ # Don't overwrite existing xtab/etab, install the original
+ # versions somewhere safe... more info in pkg_postinst
+ keepdir /var/lib/nfs/{,sm,sm.bak}
+ mv "${ED%/}"/var/lib/nfs "${ED%/}"/usr/$(get_libdir)/ || die
+
+ # Install some client-side binaries in /sbin
+ dodir /sbin
+ mv "${ED%/}"/usr/sbin/rpc.statd "${ED%/}"/sbin/ || die
+
+ if use nfsv4 && use nfsidmap ; then
+ # Install a config file for idmappers in newer kernels. #415625
+ insinto /etc/request-key.d
+ echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > 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
+ if [[ ${REPLACING_VERSIONS} < 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
+ 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
+}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] proj/musl:master commit in: net-fs/nfs-utils/, net-fs/nfs-utils/files/
@ 2021-06-01 2:20 Dave Hughes
0 siblings, 0 replies; 2+ messages in thread
From: Dave Hughes @ 2021-06-01 2:20 UTC (permalink / raw
To: gentoo-commits
commit: 75195b7d6c7532b8aa5acd8b9a27fc6ad4555548
Author: Dave Hughes <davidhughes205 <AT> gmail <DOT> com>
AuthorDate: Tue Jun 1 02:20:33 2021 +0000
Commit: Dave Hughes <davidhughes205 <AT> gmail <DOT> com>
CommitDate: Tue Jun 1 02:20:33 2021 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=75195b7d
net-fs/nfs-utils: sync with ::gentoo
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Dave Hughes <davidhughes205 <AT> gmail.com>
net-fs/nfs-utils/Manifest | 4 +-
net-fs/nfs-utils/files/musl-getservbyport.patch | 18 ++
net-fs/nfs-utils/files/musl-svcgssd-sysconf.patch | 144 ++++++++++++++++
net-fs/nfs-utils/files/musl-time64.patch | 51 ++++++
.../nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch | 39 -----
.../files/nfs-utils-1.2.8-cross-build.patch | 48 ------
...s-utils-2.3.1-svcgssd_undefined_reference.patch | 40 -----
.../files/nfs-utils-2.3.2-junction_libs.patch | 45 -----
...utils-2.4.2-Ensure-consistent-struct-stat.patch | 115 +++++++++++++
...error.patch => nfs-utils-2.5.2-no-werror.patch} | 29 +++-
net-fs/nfs-utils/files/nfs-utils-musl.patch | 147 ----------------
net-fs/nfs-utils/files/nfs-utils.conf | 3 -
net-fs/nfs-utils/files/nfs.initd | 12 +-
net-fs/nfs-utils/files/nfsmount.confd | 7 -
net-fs/nfs-utils/files/nfsmount.initd | 47 ------
net-fs/nfs-utils/metadata.xml | 1 -
net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild | 182 --------------------
net-fs/nfs-utils/nfs-utils-2.3.1-r3.ebuild | 187 ---------------------
...tils-2.3.3.ebuild => nfs-utils-2.5.3-r1.ebuild} | 91 ++++++----
19 files changed, 410 insertions(+), 800 deletions(-)
diff --git a/net-fs/nfs-utils/Manifest b/net-fs/nfs-utils/Manifest
index 3196928..0ae2ec8 100644
--- a/net-fs/nfs-utils/Manifest
+++ b/net-fs/nfs-utils/Manifest
@@ -1,3 +1 @@
-DIST nfs-utils-1.3.4.tar.bz2 814545 BLAKE2B 4b8c5fa4c1c21858e19d05f973c6d94185cf6a15c88348dda5e47c6714f9dba00dfa05237d908479970440b2ea57287600e92cb4d49872127b3801e075d6bf1a SHA512 765c0bc55a9a0bdb2c25d8fb7189a9054fb9f2dd51726eda29f44e5d5c423e245b02307dfcfab9239276d8f44869a72732416f6e9ef5a1f80753d9243ba1b38c
-DIST nfs-utils-2.3.1.tar.bz2 854899 BLAKE2B f9541b9dc103d978f21d57d8ba0c14a3b30f6ba874b112239d014076c1c72b6654e8e02b4bfea686e658dac84d1e896b872bc2054591275ef1713ae4e7b7d005 SHA512 de3e70f8656bc5b5aa98262685a9e80929c6314234d9bbb74d4c7efcb7a8b2640d48d2100850b403157ebefc8f0eb48598b48238fae795f64c7a0e9a8bff93e3
-DIST nfs-utils-2.3.3.tar.bz2 888947 BLAKE2B 7c913f0c5061807d4af162fb392c8f466abb97c88960853b52298f61056bcad08f67a16e577036dec9afa737d88268d5a766b67c4b30a014b666dfbf3db81031 SHA512 266b86ef5041a7ecd144c6f2570e8a6eb00ebb4e547fa4b8c8c3e60a4af117c2690ff9effb0d4113a7b7ef57164583c8a6ada9cb1bb8f7b748524c826eaf1cba
+DIST nfs-utils-2.5.3.tar.bz2 937544 BLAKE2B 817af2c302cf110519e64353a507645137ffd3b93b46eb94e71d45a1869c9e831e344f0baa33b1b39514962798cca542cf56a2830520c67e96e78995f2bf901f SHA512 3be82f42c5da2bbbca4429459c858c58ae7333725749213c824d0c01b78f0beb7384455f314fc1cc1799968f9f40fd616297c7baf3514ca0e31d4686e9d6e732
diff --git a/net-fs/nfs-utils/files/musl-getservbyport.patch b/net-fs/nfs-utils/files/musl-getservbyport.patch
new file mode 100644
index 0000000..6fa589c
--- /dev/null
+++ b/net-fs/nfs-utils/files/musl-getservbyport.patch
@@ -0,0 +1,18 @@
+Musl will always return something with getservbyport so we cannot skip
+ports that returns non-null.
+
+diff --git a/utils/statd/rmtcall.c b/utils/statd/rmtcall.c
+index fd576d9..d72a0bf 100644
+--- a/utils/statd/rmtcall.c
++++ b/utils/statd/rmtcall.c
+@@ -93,8 +93,10 @@
+ __func__);
+ break;
+ }
++#if 0
+ se = getservbyport(sin.sin_port, "udp");
+ if (se == NULL)
++#endif
+ break;
+
+ if (retries == MAX_BRP_RETRIES) {
diff --git a/net-fs/nfs-utils/files/musl-svcgssd-sysconf.patch b/net-fs/nfs-utils/files/musl-svcgssd-sysconf.patch
new file mode 100644
index 0000000..ec280cc
--- /dev/null
+++ b/net-fs/nfs-utils/files/musl-svcgssd-sysconf.patch
@@ -0,0 +1,144 @@
+--- a/support/nfsidmap/libnfsidmap.c
++++ b/support/nfsidmap/libnfsidmap.c
+@@ -432,11 +432,17 @@ int nfs4_init_name_mapping(char *conffil
+
+ nobody_user = conf_get_str("Mapping", "Nobody-User");
+ if (nobody_user) {
+- size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ size_t buflen = 1024; /*value on my gentoo glibc system that has _SC_GETPW_R_SIZE_MAX*/
+ struct passwd *buf;
+ struct passwd *pw = NULL;
+ int err;
+
++ /*sysconf can return -1 when _SC_GETPW_R_SIZE_MAX is not defined, like on musl systems, if cast to size_t this will lead
++ to an integer overflow, which leads to a buffer overflow and crashes svcgssd */
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ buf = malloc(sizeof(*buf) + buflen);
+ if (buf) {
+ err = getpwnam_r(nobody_user, buf, ((char *)buf) + sizeof(*buf), buflen, &pw);
+@@ -453,11 +459,17 @@ int nfs4_init_name_mapping(char *conffil
+
+ nobody_group = conf_get_str("Mapping", "Nobody-Group");
+ if (nobody_group) {
+- size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ size_t buflen = 1024; /*value on my gentoo glibc system that has _SC_GETGR_R_SIZE_MAX*/
+ struct group *buf;
+ struct group *gr = NULL;
+ int err;
+
++ /*sysconf can return -1 when _SC_GETGR_R_SIZE_MAX is not defined, like on musl systems, if cast to size_t this will lead
++ to an integer overflow, which leads to a buffer overflow and crashes svcgssd */
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ buf = malloc(sizeof(*buf) + buflen);
+ if (buf) {
+ err = getgrnam_r(nobody_group, buf, ((char *)buf) + sizeof(*buf), buflen, &gr);
+--- a/support/nfsidmap/static.c
++++ b/support/nfsidmap/static.c
+@@ -98,10 +98,14 @@ static struct passwd *static_getpwnam(co
+ {
+ struct passwd *pw;
+ struct pwbuf *buf;
+- size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ size_t buflen = 1024;
+ char *localname;
+ int err;
+
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ buf = malloc(sizeof(*buf) + buflen);
+ if (!buf) {
+ err = ENOMEM;
+@@ -149,10 +153,14 @@ static struct group *static_getgrnam(con
+ {
+ struct group *gr;
+ struct grbuf *buf;
+- size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ size_t buflen = 1024;
+ char *localgroup;
+ int err;
+
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ buf = malloc(sizeof(*buf) + buflen);
+ if (!buf) {
+ err = ENOMEM;
+--- a/support/nfsidmap/nss.c
++++ b/support/nfsidmap/nss.c
+@@ -91,9 +91,13 @@ static int nss_uid_to_name(uid_t uid, ch
+ struct passwd *pw = NULL;
+ struct passwd pwbuf;
+ char *buf;
+- size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ size_t buflen = 1024;
+ int err = -ENOMEM;
+
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ buf = malloc(buflen);
+ if (!buf)
+ goto out;
+@@ -119,9 +123,13 @@ static int nss_gid_to_name(gid_t gid, ch
+ struct group *gr = NULL;
+ struct group grbuf;
+ char *buf;
+- size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ size_t buflen = 1024;
+ int err;
+
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
++
+ if (domain == NULL)
+ domain = get_default_domain();
+
+@@ -192,12 +200,13 @@ static struct passwd *nss_getpwnam(const
+ {
+ struct passwd *pw;
+ struct pwbuf *buf;
+- size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETPW_R_SIZE_MAX);
++ size_t buflen = 1024;
+ char *localname;
+ int err = ENOMEM;
+
+- if (buflen > UINT_MAX)
+- goto err;
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
+
+ buf = malloc(sizeof(*buf) + buflen);
+ if (buf == NULL)
+@@ -301,7 +310,8 @@ static int _nss_name_to_gid(char *name,
+ struct group *gr = NULL;
+ struct group grbuf;
+ char *buf, *domain;
+- size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ long scbuflen = sysconf(_SC_GETGR_R_SIZE_MAX);
++ size_t buflen = 1024;
+ int err = -EINVAL;
+ char *localname = NULL;
+ char *ref_name = NULL;
+@@ -327,8 +337,8 @@ static int _nss_name_to_gid(char *name,
+ }
+
+ err = -ENOMEM;
+- if (buflen > UINT_MAX)
+- goto out_name;
++ if (scbuflen > 0)
++ buflen = (size_t)scbuflen;
+
+ do {
+ buf = malloc(buflen);
diff --git a/net-fs/nfs-utils/files/musl-time64.patch b/net-fs/nfs-utils/files/musl-time64.patch
new file mode 100644
index 0000000..62a1d1e
--- /dev/null
+++ b/net-fs/nfs-utils/files/musl-time64.patch
@@ -0,0 +1,51 @@
+diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c
+index b45a904..6b1049f 100644
+--- a/utils/nfsdcltrack/nfsdcltrack.c
++++ b/utils/nfsdcltrack/nfsdcltrack.c
+@@ -25,9 +25,11 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <ctype.h>
+ #include <errno.h>
+ #include <stdbool.h>
++#include <stdint.h>
++#include <inttypes.h>
++#include <ctype.h>
+ #include <getopt.h>
+ #include <string.h>
+ #include <sys/stat.h>
+@@ -525,7 +527,8 @@ cltrack_gracedone(const char *timestr)
+ if (*tail)
+ return -EINVAL;
+
+- xlog(D_GENERAL, "%s: grace done. gracetime=%ld", __func__, gracetime);
++ xlog(D_GENERAL, "%s: grace done. gracetime=%" PRId64, __func__,
++ (int64_t)gracetime);
+
+ ret = sqlite_remove_unreclaimed(gracetime);
+
+diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c
+index 2801201..c4e0cdf 100644
+--- a/utils/nfsdcltrack/sqlite.c
++++ b/utils/nfsdcltrack/sqlite.c
+@@ -42,6 +42,8 @@
+ #include <errno.h>
+ #include <event.h>
+ #include <stdbool.h>
++#include <stdint.h>
++#include <inttypes.h>
+ #include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+@@ -544,8 +546,8 @@ sqlite_remove_unreclaimed(time_t grace_start)
+ int ret;
+ char *err = NULL;
+
+- ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld",
+- grace_start);
++ ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %" PRId64,
++ (int64_t)grace_start);
+ if (ret < 0) {
+ return ret;
+ } else if ((size_t)ret >= sizeof(buf)) {
diff --git a/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch b/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch
deleted file mode 100644
index c9e60af..0000000
--- a/net-fs/nfs-utils/files/nfs-utils-1.1.4-mtab-sym.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-ripped from Debian
-
---- nfs-utils-1.1.4/utils/mount/fstab.c
-+++ nfs-utils-1.1.4/utils/mount/fstab.c
-@@ -57,7 +57,7 @@ mtab_does_not_exist(void) {
- return var_mtab_does_not_exist;
- }
-
--static int
-+int
- mtab_is_a_symlink(void) {
- get_mtab_info();
- return var_mtab_is_a_symlink;
---- nfs-utils-1.1.4/utils/mount/fstab.h
-+++ nfs-utils-1.1.4/utils/mount/fstab.h
-@@ -7,6 +7,7 @@
- #define _PATH_FSTAB "/etc/fstab"
- #endif
-
-+int mtab_is_a_symlink(void);
- int mtab_is_writable(void);
- int mtab_does_not_exist(void);
- void reset_mtab_info(void);
---- nfs-utils-1.1.4/utils/mount/mount.c
-+++ nfs-utils-1.1.4/utils/mount/mount.c
-@@ -230,6 +230,13 @@ create_mtab (void) {
- int flags;
- mntFILE *mfp;
-
-+ /* Avoid writing if the mtab is a symlink to /proc/mounts, since
-+ that would create a file /proc/mounts in case the proc filesystem
-+ is not mounted, and the fchmod below would also fail. */
-+ if (mtab_is_a_symlink()) {
-+ return EX_SUCCESS;
-+ }
-+
- lock_mtab();
-
- mfp = nfs_setmntent (MOUNTED, "a+");
diff --git a/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch b/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch
deleted file mode 100644
index 7317115..0000000
--- a/net-fs/nfs-utils/files/nfs-utils-1.2.8-cross-build.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-this is kind of hacky, but automake doesn't make this easy
-for us atm, so hack away :(
-
-(recent autotools will always add $(CFLAGS)/etc... to the compile)
-
---- a/tools/locktest/Makefile.am
-+++ b/tools/locktest/Makefile.am
-@@ -1,12 +1,11 @@
- ## Process this file with automake to produce Makefile.in
-
- CC=$(CC_FOR_BUILD)
--LIBTOOL = @LIBTOOL@ --tag=CC
-+CFLAGS=$(CFLAGS_FOR_BUILD)
-+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-+LDFLAGS=$(LDFLAGS_FOR_BUILD)
-
- noinst_PROGRAMS = testlk
- testlk_SOURCES = testlk.c
--testlk_CFLAGS=$(CFLAGS_FOR_BUILD)
--testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
--testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD)
-
- MAINTAINERCLEANFILES = Makefile.in
---- a/tools/rpcgen/Makefile.am
-+++ b/tools/rpcgen/Makefile.am
-@@ -1,7 +1,9 @@
- ## Process this file with automake to produce Makefile.in
-
- CC=$(CC_FOR_BUILD)
--LIBTOOL = @LIBTOOL@ --tag=CC
-+CFLAGS=$(CFLAGS_FOR_BUILD)
-+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-+LDFLAGS=$(LDFLAGS_FOR_BUILD)
-
- noinst_PROGRAMS = rpcgen
- rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
-@@ -9,10 +11,6 @@
- rpc_util.c rpc_sample.c rpc_output.h rpc_parse.h \
- rpc_scan.h rpc_util.h
-
--rpcgen_CFLAGS=$(CFLAGS_FOR_BUILD)
--rpcgen_CPPLAGS=$(CPPFLAGS_FOR_BUILD)
--rpcgen_LDFLAGS=$(LDFLAGS_FOR_BUILD)
--rpcgen_LDADD=$(LIBTIRPC)
-
- MAINTAINERCLEANFILES = Makefile.in
-
- EXTRA_DIST = rpcgen.new.1
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.3.1-svcgssd_undefined_reference.patch b/net-fs/nfs-utils/files/nfs-utils-2.3.1-svcgssd_undefined_reference.patch
deleted file mode 100644
index 77c902f..0000000
--- a/net-fs/nfs-utils/files/nfs-utils-2.3.1-svcgssd_undefined_reference.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 1451d7585bf1c622658ccc04abac7e79ffe40263 Mon Sep 17 00:00:00 2001
-From: Justin Mitchell <jumitche@redhat.com>
-Date: Mon, 8 Jan 2018 09:14:11 -0500
-Subject: [PATCH] svcgssd: Update svcgssd so that it builds
-
-Since a15bd948 the --enable-svcgss option no longer builds
-as svcgssd references functions which were changed at that time.
-Fix those, and other function changes since then.
-
-Signed-off-by: Justin Mitchell <jumitche@redhat.com>
-Signed-off-by: Steve Dickson <steved@redhat.com>
----
- utils/gssd/svcgssd.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/utils/gssd/svcgssd.c b/utils/gssd/svcgssd.c
-index 3514ae1..23f0c0b 100644
---- a/utils/gssd/svcgssd.c
-+++ b/utils/gssd/svcgssd.c
-@@ -63,6 +63,8 @@
- #include "err_util.h"
- #include "conffile.h"
-
-+struct state_paths etab;
-+
- void
- sig_die(int signal)
- {
-@@ -101,7 +103,7 @@ main(int argc, char *argv[])
- char *principal = NULL;
- char *s;
-
-- conf_init(NFS_CONFFILE);
-+ conf_init_file(NFS_CONFFILE);
-
- s = conf_get_str("svcgssd", "principal");
- if (!s)
---
-1.8.3.1
-
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.3.2-junction_libs.patch b/net-fs/nfs-utils/files/nfs-utils-2.3.2-junction_libs.patch
deleted file mode 100644
index f13f07a..0000000
--- a/net-fs/nfs-utils/files/nfs-utils-2.3.2-junction_libs.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 8f3e4f4d6df9f813572051e12e974b35c26a1743 Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Mon, 28 May 2018 12:13:10 +0200
-Subject: [PATCH] Fix undefined references and bad include when build with
- junction support
-
----
- support/junction/Makefile.am | 2 +-
- utils/nfsref/Makefile.am | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/support/junction/Makefile.am b/support/junction/Makefile.am
-index 97e7426..89cb532 100644
---- a/support/junction/Makefile.am
-+++ b/support/junction/Makefile.am
-@@ -31,4 +31,4 @@ libjunction_la_SOURCES = display.c export-cache.c junction.c \
-
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CPPFLAGS = -I. -I../include -I/usr/include/libxml2
-+AM_CPPFLAGS = -I. -I../include -I/usr/include/libxml2 @TIRPC_CFLAGS@
-diff --git a/utils/nfsref/Makefile.am b/utils/nfsref/Makefile.am
-index 2b2bb53..a652b03 100644
---- a/utils/nfsref/Makefile.am
-+++ b/utils/nfsref/Makefile.am
-@@ -27,13 +27,13 @@ noinst_HEADERS = nfsref.h
-
- sbin_PROGRAMS = nfsref
- nfsref_SOURCES = add.c lookup.c nfsref.c remove.c
--LDADD = $(LIBXML2) $(LIBCAP) \
-- ../../support/nfs/libnfs.la \
-+LIBS += $(LIBXML2) $(LIBCAP)
-+LDADD = ../../support/nfs/libnfs.la \
- ../../support/junction/libjunction.la
-
- man8_MANS = nfsref.man
-
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CPPFLAGS = -I. -I../../support/include
-+AM_CPPFLAGS = -I. -I../../support/include @TIRPC_CFLAGS@
- ##AM_LDFLAGS = -Wl,--as-needed
---
-2.17.0
-
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.4.2-Ensure-consistent-struct-stat.patch b/net-fs/nfs-utils/files/nfs-utils-2.4.2-Ensure-consistent-struct-stat.patch
new file mode 100644
index 0000000..8541a98
--- /dev/null
+++ b/net-fs/nfs-utils/files/nfs-utils-2.4.2-Ensure-consistent-struct-stat.patch
@@ -0,0 +1,115 @@
+From 1378280398ef9f5cd45f5542ae2945b9a360b132 Mon Sep 17 00:00:00 2001
+From: Doug Nazar <nazard@nazar.ca>
+Date: Sun, 17 Nov 2019 14:31:33 -0500
+Subject: [PATCH] Ensure consistent struct stat definition
+
+Although 2fbc62e2a13fc ("Fix include order between config.h and stat.h")
+reorganized those files that were already including config.h, not all
+files were including config.h.
+
+Fixes at least stack smashing crashes in mountd on 32-bit systems.
+
+Signed-off-by: Doug Nazar <nazard@nazar.ca>
+Signed-off-by: Steve Dickson <steved@redhat.com>
+---
+ support/junction/junction.c | 4 ++++
+ support/misc/file.c | 4 ++++
+ support/misc/mountpoint.c | 4 ++++
+ support/nfs/cacheio.c | 4 ++++
+ utils/mount/fstab.c | 4 ++++
+ utils/nfsdcld/legacy.c | 4 ++++
+ 6 files changed, 24 insertions(+)
+
+diff --git a/support/junction/junction.c b/support/junction/junction.c
+index ab6caa6..41cce26 100644
+--- a/support/junction/junction.c
++++ b/support/junction/junction.c
+@@ -27,6 +27,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
+diff --git a/support/misc/file.c b/support/misc/file.c
+index e7c3819..06f6bb2 100644
+--- a/support/misc/file.c
++++ b/support/misc/file.c
+@@ -22,6 +22,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <sys/stat.h>
+
+ #include <string.h>
+diff --git a/support/misc/mountpoint.c b/support/misc/mountpoint.c
+index c6217f2..14d6731 100644
+--- a/support/misc/mountpoint.c
++++ b/support/misc/mountpoint.c
+@@ -7,6 +7,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <string.h>
+ #include "xcommon.h"
+ #include <sys/stat.h>
+diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
+index 9dc4cf1..7c4cf37 100644
+--- a/support/nfs/cacheio.c
++++ b/support/nfs/cacheio.c
+@@ -19,6 +19,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <nfslib.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+diff --git a/utils/mount/fstab.c b/utils/mount/fstab.c
+index eedbdda..8b0aaf1 100644
+--- a/utils/mount/fstab.c
++++ b/utils/mount/fstab.c
+@@ -11,6 +11,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <errno.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+diff --git a/utils/nfsdcld/legacy.c b/utils/nfsdcld/legacy.c
+index 07f477a..3c6bea6 100644
+--- a/utils/nfsdcld/legacy.c
++++ b/utils/nfsdcld/legacy.c
+@@ -19,6 +19,10 @@
+ #include <config.h>
+ #endif
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <stdio.h>
+ #include <dirent.h>
+ #include <string.h>
+--
+1.8.3.1
+
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.3.2-no-werror.patch b/net-fs/nfs-utils/files/nfs-utils-2.5.2-no-werror.patch
similarity index 63%
rename from net-fs/nfs-utils/files/nfs-utils-2.3.2-no-werror.patch
rename to net-fs/nfs-utils/files/nfs-utils-2.5.2-no-werror.patch
index d06fc4c..a7226db 100644
--- a/net-fs/nfs-utils/files/nfs-utils-2.3.2-no-werror.patch
+++ b/net-fs/nfs-utils/files/nfs-utils-2.5.2-no-werror.patch
@@ -1,17 +1,27 @@
+From 6ab8c7c186bd4a547a0ca435ecabe10ee50039c5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 22 Oct 2020 19:44:34 +0200
+Subject: [PATCH] Don't build with -Werror flags
+
https://bugs.gentoo.org/656984
-Don't build with -Werror flags.
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ configure.ac | 34 +---------------------------------
+ 1 file changed, 1 insertion(+), 33 deletions(-)
+diff --git a/configure.ac b/configure.ac
+index 50847d8a..6bc18e93 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -544,45 +544,11 @@
+@@ -631,47 +631,15 @@ AC_SUBST(CPPFLAGS_FOR_BUILD)
AC_SUBST(LDFLAGS_FOR_BUILD)
my_am_cflags="\
- -pipe \
-Wall \
-Wextra \
-- -Werror=strict-prototypes \
+ $rpcgen_cflags \
- -Werror=missing-prototypes \
- -Werror=missing-declarations \
- -Werror=format=2 \
@@ -28,10 +38,10 @@ Don't build with -Werror flags.
- -Werror=unused-result \
-fno-strict-aliasing \
"
--
+
-AC_DEFUN([CHECK_CCSUPPORT], [
- my_save_cflags="$CFLAGS"
-- CFLAGS=$1
+- CFLAGS="-Werror $1"
- AC_MSG_CHECKING([whether CC supports $1])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
- [AC_MSG_RESULT([yes])]
@@ -45,9 +55,14 @@ Don't build with -Werror flags.
-CHECK_CCSUPPORT([-Werror=int-conversion], [flg2])
-CHECK_CCSUPPORT([-Werror=incompatible-pointer-types], [flg3])
-CHECK_CCSUPPORT([-Werror=misleading-indentation], [flg4])
--
--AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4"])
+-CHECK_CCSUPPORT([-Wno-cast-function-type], [flg5])
+ AX_GCC_FUNC_ATTRIBUTE([format])
+
+-AC_SUBST([AM_CFLAGS], ["$my_am_cflags $flg1 $flg2 $flg3 $flg4 $flg5"])
+AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
# Make sure that $ACLOCAL_FLAGS are used during a rebuild
AC_SUBST([ACLOCAL_AMFLAGS], ["-I $ac_macro_dir \$(ACLOCAL_FLAGS)"])
+--
+2.29.0
+
diff --git a/net-fs/nfs-utils/files/nfs-utils-musl.patch b/net-fs/nfs-utils/files/nfs-utils-musl.patch
deleted file mode 100644
index e880072..0000000
--- a/net-fs/nfs-utils/files/nfs-utils-musl.patch
+++ /dev/null
@@ -1,147 +0,0 @@
---- nfs-utils-2.3.1/configure.ac.orig 2018-05-21 11:05:01.939912918 -0700
-+++ nfs-utils-2.3.1/configure.ac 2018-05-21 11:05:10.531968707 -0700
-@@ -401,7 +401,7 @@
- fi
-
- dnl libdnsidmap specific checks
--AC_CHECK_LIB([resolv], [__res_querydomain], , AC_MSG_ERROR(res_querydomain needed))
-+AC_CHECK_LIB([resolv], [res_querydomain], , AC_MSG_ERROR(res_querydomain needed))
-
- AC_ARG_ENABLE([ldap],
- [AS_HELP_STRING([--disable-ldap],[Disable support for LDAP @<:default=detect@:>@])])
---- nfs-utils-2.3.1/support/misc/file.c.orig 2018-05-21 18:15:37.572007979 +0000
-+++ nfs-utils-2.3.1/support/misc/file.c 2018-05-21 18:15:43.668047008 +0000
-@@ -27,6 +27,7 @@
- #include <dirent.h>
- #include <stdlib.h>
- #include <stdbool.h>
-+#include <limits.h> /* PATH_MAX */
-
- #include "xlog.h"
- #include "misc.h"
-diff -Naur nfs-utils-2.3.3-orig/support/export/client.c nfs-utils-2.3.3/support/export/client.c
---- nfs-utils-2.3.3-orig/support/export/client.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/support/export/client.c 2019-04-21 02:48:45.676838188 -0500
-@@ -309,7 +309,8 @@
- init_addrlist(clp, ai);
-
- out:
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- return clp;
- }
-
-diff -Naur nfs-utils-2.3.3-orig/tests/nsm_client/nsm_client.c nfs-utils-2.3.3/tests/nsm_client/nsm_client.c
---- nfs-utils-2.3.3-orig/tests/nsm_client/nsm_client.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/tests/nsm_client/nsm_client.c 2019-04-21 02:35:53.139552780 -0500
-@@ -243,7 +243,8 @@
- printf("RPC client creation failed\n");
- }
- out:
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- return client;
- }
-
-diff -Naur nfs-utils-2.3.3-orig/utils/exportfs/exportfs.c nfs-utils-2.3.3/utils/exportfs/exportfs.c
---- nfs-utils-2.3.3-orig/utils/exportfs/exportfs.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/utils/exportfs/exportfs.c 2019-04-21 02:40:07.432327005 -0500
-@@ -282,7 +282,8 @@
- validate_export(exp);
-
- out:
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- }
-
- static int exportfs_generic(char *arg, char *options, int verbose)
-@@ -395,7 +396,8 @@
- if (!success)
- xlog(L_ERROR, "Could not find '%s:%s' to unexport.", hname, path);
-
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- }
-
- static int unexportfs_generic(char *arg, int verbose)
-@@ -639,8 +641,10 @@
- }
-
- out:
-- freeaddrinfo(results1);
-- freeaddrinfo(results2);
-+ if (results1 != NULL)
-+ freeaddrinfo(results1);
-+ if (results2 != NULL)
-+ freeaddrinfo(results2);
- return result;
- }
-
-diff -Naur nfs-utils-2.3.3-orig/utils/mount/stropts.c nfs-utils-2.3.3/utils/mount/stropts.c
---- nfs-utils-2.3.3-orig/utils/mount/stropts.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/utils/mount/stropts.c 2019-04-21 02:43:18.451874403 -0500
-@@ -1263,7 +1263,8 @@
- } else
- nfs_error(_("%s: internal option parsing error"), progname);
-
-- freeaddrinfo(mi.address);
-+ if (mi.address != NULL)
-+ freeaddrinfo(mi.address);
- free(mi.hostname);
- return retval;
- }
-diff -Naur nfs-utils-2.3.3-orig/utils/mountd/cache.c nfs-utils-2.3.3/utils/mountd/cache.c
---- nfs-utils-2.3.3-orig/utils/mountd/cache.c 2019-04-21 02:33:43.603417171 -0500
-+++ nfs-utils-2.3.3/utils/mountd/cache.c 2019-04-21 02:45:11.289792765 -0500
-@@ -834,7 +834,8 @@
- out:
- if (found_path)
- free(found_path);
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- free(dom);
- xlog(D_CALL, "nfsd_fh: found %p path %s", found, found ? found->e_path : NULL);
- }
-@@ -1355,7 +1356,7 @@
- xlog(D_CALL, "nfsd_export: found %p path %s", found, path ? path : NULL);
- if (dom) free(dom);
- if (path) free(path);
-- freeaddrinfo(ai);
-+ if (ai) freeaddrinfo(ai);
- }
-
-
-diff -Naur nfs-utils-2.3.3-orig/utils/mountd/mountd.c nfs-utils-2.3.3/utils/mountd/mountd.c
---- nfs-utils-2.3.3-orig/utils/mountd/mountd.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/utils/mountd/mountd.c 2019-04-21 02:45:41.796526387 -0500
-@@ -581,7 +581,8 @@
- freeaddrinfo(ai);
- continue;
- }
-- freeaddrinfo(ai);
-+ if (ai != NULL)
-+ freeaddrinfo(ai);
- }
- cp = &(c->gr_next);
- }
-diff -Naur nfs-utils-2.3.3-orig/utils/statd/hostname.c nfs-utils-2.3.3/utils/statd/hostname.c
---- nfs-utils-2.3.3-orig/utils/statd/hostname.c 2018-09-06 13:09:08.000000000 -0500
-+++ nfs-utils-2.3.3/utils/statd/hostname.c 2019-04-21 02:41:39.712446505 -0500
-@@ -308,8 +308,10 @@
- }
-
- out:
-- freeaddrinfo(results2);
-- freeaddrinfo(results1);
-+ if (results2 != NULL)
-+ freeaddrinfo(results2);
-+ if (results1 != NULL)
-+ freeaddrinfo(results1);
-
- xlog(D_CALL, "%s: hostnames %s and %s %s", __func__,
- hostname1, hostname2,
diff --git a/net-fs/nfs-utils/files/nfs-utils.conf b/net-fs/nfs-utils/files/nfs-utils.conf
deleted file mode 100644
index b9b586c..0000000
--- a/net-fs/nfs-utils/files/nfs-utils.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-d /var/lib/nfs/rpc_pipefs
-d /var/lib/nfs/v4recovery
-d /var/lib/nfs/v4root
diff --git a/net-fs/nfs-utils/files/nfs.initd b/net-fs/nfs-utils/files/nfs.initd
index 4b572fc..9b4f8a4 100644
--- a/net-fs/nfs-utils/files/nfs.initd
+++ b/net-fs/nfs-utils/files/nfs.initd
@@ -1,13 +1,9 @@
#!/sbin/openrc-run
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_started_commands="reload"
-# This variable is used for controlling whether or not to run exportfs -ua;
-# see stop() for more information
-restarting=no
-
# The binary locations
exportfs=/usr/sbin/exportfs
mountd=/usr/sbin/rpc.mountd
@@ -88,7 +84,7 @@ start() {
# Exportfs likes to hang if networking isn't working.
# If that's the case, then try to kill it so the
# bootup process can continue.
- if grep -qs '^[[:space:]]*/' /etc/exports /etc/exports.d/*.exports ; then
+ if grep -qs '^[[:space:]]*"\?/' /etc/exports /etc/exports.d/*.exports ; then
ebegin "Exporting NFS directories"
${exportfs} -r &
waitfor_exportfs $!
@@ -131,7 +127,7 @@ stop() {
# then "exportfs -r" will reread the xtab, and all the current
# clients will be able to resume NFS activity, *without* needing
# to umount/(re)mount the filesystem.
- if [ "${restarting}" = no -o "${RC_CMD}" = "restart" ] ; then
+ if [ "${RC_CMD}" != "restart" ] ; then
ebegin "Unexporting NFS directories"
# Exportfs likes to hang if networking isn't working.
# If that's the case, then try to kill it so the
@@ -155,8 +151,6 @@ reload() {
}
restart() {
- # See long comment in stop() regarding "restarting" and exportfs -ua
- restarting=yes
svc_stop
svc_start
}
diff --git a/net-fs/nfs-utils/files/nfsmount.confd b/net-fs/nfs-utils/files/nfsmount.confd
deleted file mode 100644
index 4183536..0000000
--- a/net-fs/nfs-utils/files/nfsmount.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-# You will need to set the dependencies in the nfsmount script to match
-# the network configuration tools you are using. This should be done in
-# this file by following the examples below, and not by changing the
-# service script itself. See /etc/conf.d/netmount for more examples.
-#
-# This is a safe default.
-rc_after="net"
diff --git a/net-fs/nfs-utils/files/nfsmount.initd b/net-fs/nfs-utils/files/nfsmount.initd
deleted file mode 100644
index 12c7d78..0000000
--- a/net-fs/nfs-utils/files/nfsmount.initd
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-[ -e /etc/conf.d/nfs ] && . /etc/conf.d/nfs
-
-depend() {
- local myneed=""
- if [ -e /etc/fstab ] ; then
- myneed="${myneed} $(
- awk '!/^[[:space:]]*#/ && ($3 == "nfs" || $3 == "nfs4") {
- if ($3 == "nfs4")
- idmapd = "rpc.idmapd"
- if ($4 ~ /sec=(krb|spkm)/)
- gssd = "rpc.gssd"
- }
- END { print idmapd " " gssd }
- ' /etc/fstab
- )"
- fi
- config /etc/fstab
- need portmap rpc.statd ${myneed}
- use ypbind dns rpc.idmapd rpc.gssd
-}
-
-start() {
- if [ -x /usr/sbin/sm-notify ] ; then
- ebegin "Starting NFS sm-notify"
- /usr/sbin/sm-notify ${OPTS_SMNOTIFY}
- eend $?
- fi
-
- # Make sure nfs support is loaded in the kernel #64709
- if [ -e /proc/modules ] && ! grep -qs 'nfs$' /proc/filesystems ; then
- modprobe -q nfs
- fi
-
- ebegin "Mounting NFS filesystems"
- mount -a -t nfs,nfs4
- eend $?
-}
-
-stop() {
- ebegin "Unmounting NFS filesystems"
- umount -a -t nfs,nfs4
- eend $?
-}
diff --git a/net-fs/nfs-utils/metadata.xml b/net-fs/nfs-utils/metadata.xml
index 45351e4..159356c 100644
--- a/net-fs/nfs-utils/metadata.xml
+++ b/net-fs/nfs-utils/metadata.xml
@@ -5,7 +5,6 @@
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
- <longdescription>NFS client and server daemons</longdescription>
<use>
<flag name="junction">Enable NFS junction support in nfsref</flag>
<flag name="ldap">Add ldap support</flag>
diff --git a/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild b/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild
deleted file mode 100644
index 7f48d44..0000000
--- a/net-fs/nfs-utils/nfs-utils-1.3.4-r1.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit eutils flag-o-matic multilib autotools systemd
-
-DESCRIPTION="NFS client and server daemons"
-HOMEPAGE="http://linux-nfs.org/"
-SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~mips ppc ppc64 x86"
-IUSE="caps ipv6 kerberos +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_COMMON="tcpd? ( sys-apps/tcp-wrappers )
- caps? ( sys-libs/libcap )
- sys-libs/e2fsprogs-libs
- >=net-nds/rpcbind-0.2.4
- net-libs/libtirpc:=
- libmount? ( sys-apps/util-linux )
- nfsdcld? ( >=dev-db/sqlite-3.3 )
- nfsv4? (
- dev-libs/libevent:=
- >=net-libs/libnfsidmap-0.21-r1
- kerberos? (
- >=net-libs/libtirpc-0.2.4-r1[kerberos]
- app-crypt/mit-krb5
- )
- nfsidmap? (
- >=net-libs/libnfsidmap-0.24
- >=sys-apps/keyutils-1.5.9
- )
- )
- nfsv41? (
- sys-fs/lvm2
- )
- uuid? ( sys-apps/util-linux )"
-RDEPEND="${DEPEND_COMMON}
- !net-nds/portmap
- !<sys-apps/openrc-0.13.9
- selinux? (
- sec-policy/selinux-rpc
- sec-policy/selinux-rpcbind
- )
-"
-DEPEND="${DEPEND_COMMON}
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-musl.patch
-)
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
- epatch "${FILESDIR}"/${PN}-1.2.8-cross-build.patch
-
- sed \
- -e "/^sbindir/s:= := \"${EPREFIX}\":g" \
- -i utils/*/Makefile.am || die
-
- epatch_user
- eautoreconf
-}
-
-src_configure() {
- export libsqlite3_cv_is_recent=yes # Our DEPEND forces this.
- export ac_cv_header_keyutils_h=$(usex nfsidmap)
- econf \
- --with-statedir="${EPREFIX}"/var/lib/nfs \
- --enable-tirpc \
- --with-tirpcinclude="${EPREFIX}"/usr/include/tirpc/ \
- $(use_enable libmount libmount-mount) \
- $(use_with tcpd tcp-wrappers) \
- $(use_enable nfsdcld nfsdcltrack) \
- $(use_enable nfsv4) \
- $(use_enable nfsv41) \
- $(use_enable ipv6) \
- $(use_enable caps) \
- $(use_enable uuid) \
- $(use_enable kerberos gss) \
- $(use_enable kerberos svcgss) \
- --without-gssglue
-}
-
-src_compile(){
- # remove compiled files bundled in the tarball
- emake clean
- default
-}
-
-src_install() {
- default
- rm linux-nfs/Makefile* || die
- dodoc -r linux-nfs README
-
- # Don't overwrite existing xtab/etab, install the original
- # versions somewhere safe... more info in pkg_postinst
- keepdir /var/lib/nfs/{,sm,sm.bak}
- mv "${ED}"/var/lib "${ED}"/usr/$(get_libdir) || die
-
- # Install some client-side binaries in /sbin
- dodir /sbin
- mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die
-
- if use nfsv4 && use nfsidmap ; then
- # Install a config file for idmappers in newer kernels. #415625
- insinto /etc/request-key.d
- echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > 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
-
- systemd_dounit systemd/*.{mount,service,target}
- if ! use nfsv4 || ! use kerberos ; then
- rm "${D}$(systemd_get_unitdir)"/rpc-{gssd,svcgssd}.service || die
- fi
- if ! use nfsv41 ; then
- rm "${D}$(systemd_get_unitdir)"/nfs-blkmap.* || die
- fi
- rm "${D}$(systemd_get_unitdir)"/nfs-config.service || die
- sed -i -r \
- -e "/^EnvironmentFile=/s:=.*:=${EPREFIX}/etc/conf.d/nfs:" \
- -e '/^(After|Wants)=nfs-config.service$/d' \
- -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \
- "${D}$(systemd_get_unitdir)"/* || 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
- if [[ ${REPLACING_VERSIONS} < 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
- 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.3.1-r3.ebuild b/net-fs/nfs-utils/nfs-utils-2.3.1-r3.ebuild
deleted file mode 100644
index 432515c..0000000
--- a/net-fs/nfs-utils/nfs-utils-2.3.1-r3.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools flag-o-matic multilib systemd
-
-DESCRIPTION="NFS client and server daemons"
-HOMEPAGE="http://linux-nfs.org/"
-
-if [[ "${PV}" = *_rc* ]] ; then
- inherit versionator
- MY_PV="$(replace_all_version_separators -)"
- 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="amd64 arm arm64 ~mips ppc ppc64 x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="caps ipv6 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_COMMON="
- 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 )
- nfsdcld? ( >=dev-db/sqlite-3.3 )
- 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_COMMON}
- !net-libs/libnfsidmap
- !net-nds/portmap
- !<sys-apps/openrc-0.13.9
- selinux? (
- sec-policy/selinux-rpc
- sec-policy/selinux-rpcbind
- )
-"
-DEPEND="${DEPEND_COMMON}
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
- "${FILESDIR}"/${PN}-1.2.8-cross-build.patch
- "${FILESDIR}"/${P}-svcgssd_undefined_reference.patch #641912
- "${FILESDIR}"/${PN}-musl.patch
-)
-
-src_prepare() {
- default
-
- sed \
- -e "/^sbindir/s:= := \"${EPREFIX}\":g" \
- -i utils/*/Makefile.am || die
-
- eautoreconf
-}
-
-src_configure() {
- export libsqlite3_cv_is_recent=yes # Our DEPEND forces this.
- export ac_cv_header_keyutils_h=$(usex nfsidmap)
- local myeconfargs=(
- --with-statedir="${EPREFIX%/}"/var/lib/nfs
- --enable-tirpc
- --with-tirpcinclude="${EPREFIX%/}"/usr/include/tirpc/
- --with-pluginpath="${EPREFIX%/}"/usr/$(get_libdir)/libnfsidmap
- --with-systemd="$(systemd_get_systemunitdir)"
- --without-gssglue
- $(use_enable caps)
- $(use_enable ipv6)
- $(use_enable kerberos gss)
- $(use_enable kerberos svcgss)
- $(use_enable ldap)
- $(use_enable libmount libmount-mount)
- $(use_enable nfsdcld nfsdcltrack)
- $(use_enable nfsv4)
- $(use_enable nfsv41)
- $(use_enable uuid)
- $(use_with tcpd tcp-wrappers)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_compile(){
- # remove compiled files bundled in the tarball
- emake clean
- default
-}
-
-src_install() {
- default
- rm linux-nfs/Makefile* || die
- dodoc -r linux-nfs README
-
- # Don't overwrite existing xtab/etab, install the original
- # versions somewhere safe... more info in pkg_postinst
- keepdir /var/lib/nfs/{,sm,sm.bak}
- mv "${ED%/}"/var/lib/nfs "${ED%/}"/usr/$(get_libdir)/ || die
-
- # Install some client-side binaries in /sbin
- dodir /sbin
- mv "${ED%/}"/usr/sbin/rpc.statd "${ED%/}"/sbin/ || die
-
- if use nfsv4 && use nfsidmap ; then
- # Install a config file for idmappers in newer kernels. #415625
- insinto /etc/request-key.d
- echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > 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
- if [[ ${REPLACING_VERSIONS} < 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
- 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.3.3.ebuild b/net-fs/nfs-utils/nfs-utils-2.5.3-r1.ebuild
similarity index 65%
rename from net-fs/nfs-utils/nfs-utils-2.3.3.ebuild
rename to net-fs/nfs-utils/nfs-utils-2.5.3-r1.ebuild
index 82f23c9..60ec533 100644
--- a/net-fs/nfs-utils/nfs-utils-2.3.3.ebuild
+++ b/net-fs/nfs-utils/nfs-utils-2.5.3-r1.ebuild
@@ -1,21 +1,20 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit autotools flag-o-matic multilib systemd
+inherit autotools linux-info systemd
DESCRIPTION="NFS client and server daemons"
HOMEPAGE="http://linux-nfs.org/"
if [[ "${PV}" = *_rc* ]] ; then
- inherit versionator
- MY_PV="$(replace_all_version_separators -)"
+ 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="amd64 arm arm64 ~mips ppc ppc64 x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
fi
LICENSE="GPL-2"
@@ -28,17 +27,18 @@ RESTRICT="test" #315573
# files, and nfs-utils doesn't build against heimdal either,
# so don't depend on virtual/krb.
# (04 Feb 2005 agriffis)
-DEPEND_COMMON="
+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 )
- nfsdcld? ( >=dev-db/sqlite-3.3 )
nfsv4? (
dev-libs/libevent:=
- >=sys-apps/keyutils-1.5.9
+ >=sys-apps/keyutils-1.5.9:=
kerberos? (
>=net-libs/libtirpc-0.2.4-r1[kerberos]
app-crypt/mit-krb5
@@ -49,7 +49,7 @@ DEPEND_COMMON="
)
tcpd? ( sys-apps/tcp-wrappers )
uuid? ( sys-apps/util-linux )"
-RDEPEND="${DEPEND_COMMON}
+RDEPEND="${DEPEND}
!net-libs/libnfsidmap
!net-nds/portmap
!<sys-apps/openrc-0.13.9
@@ -58,22 +58,35 @@ RDEPEND="${DEPEND_COMMON}
sec-policy/selinux-rpcbind
)
"
-DEPEND="${DEPEND_COMMON}
- dev-libs/libxml2
+BDEPEND="
net-libs/rpcsvc-proto
- virtual/pkgconfig"
+ virtual/pkgconfig
+"
PATCHES=(
- "${FILESDIR}"/${PN}-1.1.4-mtab-sym.patch
- "${FILESDIR}"/${PN}-1.2.8-cross-build.patch
- "${FILESDIR}"/${PN}-2.3.2-junction_libs.patch
- "${FILESDIR}"/${PN}-2.3.2-no-werror.patch
- "${FILESDIR}"/${PN}-musl.patch
+ "${FILESDIR}"/${PN}-2.5.2-no-werror.patch
+ "${FILESDIR}"/${PN}-2.4.2-Ensure-consistent-struct-stat.patch
)
+pkg_setup() {
+ linux-info_pkg_setup
+ if use nfsv4 && ! use nfsdcld && linux_config_exists && ! linux_chkconfig_present CRYPTO_MD5 ; then
+ ewarn "Your NFS server will be unable to track clients across server restarts!"
+ ewarn "Please enable the \"${HILITE}nfsdcld${NORMAL}\" USE flag to install the nfsdcltrack usermode"
+ ewarn "helper upcall program, or enable ${HILITE}CONFIG_CRYPTO_MD5${NORMAL} in your kernel to"
+ ewarn "support the legacy, in-kernel client tracker."
+ fi
+}
+
src_prepare() {
default
+ if use elibc_musl; then
+ eapply "${FILESDIR}/musl-time64.patch"
+ eapply "${FILESDIR}/musl-getservbyport.patch"
+ eapply "${FILESDIR}/musl-svcgssd-sysconf.patch"
+ fi
+
sed \
-e "/^sbindir/s:= := \"${EPREFIX}\":g" \
-i utils/*/Makefile.am || die
@@ -85,10 +98,11 @@ src_configure() {
export libsqlite3_cv_is_recent=yes # Our DEPEND forces this.
export ac_cv_header_keyutils_h=$(usex nfsidmap)
local myeconfargs=(
- --with-statedir="${EPREFIX%/}"/var/lib/nfs
+ --disable-static
+ --with-statedir="${EPREFIX}"/var/lib/nfs
--enable-tirpc
- --with-tirpcinclude="${EPREFIX%/}"/usr/include/tirpc/
- --with-pluginpath="${EPREFIX%/}"/usr/$(get_libdir)/libnfsidmap
+ --with-tirpcinclude="${ESYSROOT}"/usr/include/tirpc/
+ --with-pluginpath="${EPREFIX}"/usr/$(get_libdir)/libnfsidmap
--with-rpcgen
--with-systemd="$(systemd_get_systemunitdir)"
--without-gssglue
@@ -108,7 +122,7 @@ src_configure() {
econf "${myeconfargs[@]}"
}
-src_compile(){
+src_compile() {
# remove compiled files bundled in the tarball
emake clean
default
@@ -122,13 +136,16 @@ src_install() {
# Don't overwrite existing xtab/etab, install the original
# versions somewhere safe... more info in pkg_postinst
keepdir /var/lib/nfs/{,sm,sm.bak}
- mv "${ED%/}"/var/lib/nfs "${ED%/}"/usr/$(get_libdir)/ || die
+ mv "${ED}"/var/lib/nfs "${ED}"/usr/$(get_libdir)/ || die
# Install some client-side binaries in /sbin
dodir /sbin
- mv "${ED%/}"/usr/sbin/rpc.statd "${ED%/}"/sbin/ || die
+ mv "${ED}"/usr/sbin/rpc.statd "${ED}"/sbin/ || die
if use nfsv4 && use nfsidmap ; then
+ insinto /etc
+ doins support/nfsidmap/idmapd.conf
+
# Install a config file for idmappers in newer kernels. #415625
insinto /etc/request-key.d
echo 'create id_resolver * * /usr/sbin/nfsidmap -t 600 %k %d' > id_resolver.conf
@@ -154,16 +171,18 @@ src_install() {
done
sed -i \
-e "/^NFS_NEEDED_SERVICES=/s:=.*:=\"${opt_need}\":" \
- "${ED%/}"/etc/conf.d/nfs || die #234132
+ "${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
+ "${ED}${systemd_systemunitdir}"/* || die
keepdir /var/lib/nfs #368505
keepdir /var/lib/nfs/v4recovery #603628
+ # no static archives
+ find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
@@ -171,19 +190,21 @@ pkg_postinst() {
# 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
+ 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/
+ cp -pPR "${f}" "${EROOT}"/var/lib/nfs/
done
if systemd_is_booted; then
- if [[ ${REPLACING_VERSIONS} < 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
+ 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"
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-06-01 2:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-01 2:20 [gentoo-commits] proj/musl:master commit in: net-fs/nfs-utils/, net-fs/nfs-utils/files/ Dave Hughes
-- strict thread matches above, loose matches on Subject: below --
2019-05-08 20:41 Anthony G. Basile
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox