Upgraded packages to latest upstream

Upgraded net-fs/autofs to v5.1.8-r1

BUG=None
TEST=presubmit
RELEASE_NOTE=Upgraded net-fs/autofs to v5.1.8-r1.

Change-Id: Idd507f95b6b9ef31656bfbfe9ed19e34f08dcc12
Reviewed-on: https://cos-review.googlesource.com/c/third_party/overlays/portage-stable/+/44556
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
Reviewed-by: Chenglong Tang <chenglongtang@google.com>
diff --git a/net-fs/autofs/Manifest b/net-fs/autofs/Manifest
index b42b207..503d31c 100644
--- a/net-fs/autofs/Manifest
+++ b/net-fs/autofs/Manifest
@@ -1 +1,3 @@
-DIST autofs-5.1.4.tar.xz 304864 BLAKE2B 7348aa1106554eb765919c765c0585b5d975d7a0ea036dec5b509711bf33cefd0f3e1e857a6865434adabbd1e323cfe8ffb09eb234495672e81101f79b8f4d0f SHA512 1ef48800a1e44d6bf7048923109f3b8299ef266ff0fbaf5f979c32f42c6c5e28620c1876f64b9d913fddb69244ff83226c01c666401ff6271dd6b53d31860589
+DIST autofs-5.1.6.tar.xz 315316 BLAKE2B 0c5e2351462505c6de0b12e510f0c08a625a0235e1ff8eeaff825946c4530c258449d26aaf6a3794aa82a97e8860711226168f434dd31bfb8a4e70287beb3ca4 SHA512 dc8b2bd86c140905dd1bc461bfc469f92363d9c2687fe422e1e751cc7ad64c0733b011c80bf4840e510e5909176cd1a066968b9a5ba835b62c4cf27537863cf2
+DIST autofs-5.1.8-patches-0.tar.xz 3476 BLAKE2B a7fb146542f9cb0a8e93240d9c3f68ff7b569f4dc0e829103ae67ced6d04e110331d320ff429f6e6af03b7265a068ee648738691cd637080cf976f441fe10444 SHA512 73023735bf269e3214e38a4841b6b3a1edff30e5d925a62d3ca9e841726835793c1e242804233e696e946e63720f522ceeb82f78449d3597d3d39b727f4b8d24
+DIST autofs-5.1.8.tar.xz 327396 BLAKE2B 22ef626cc867c1ed4f1f859aebe2547c497c35dea712967de70158e85db590f5ffc26165e1479cfc64eb8070a9c43fd06b1570a82bd8bbbac70f2930e1841718 SHA512 6ee6283c0977c82848a654dc24745ee687f6916de441c3688fa91f67ca7295e632ee3808cc2358984a4b9f19841e6e1a91ab48aad6341ac8e63827fe8c32d223
diff --git a/net-fs/autofs/autofs-5.1.4-r1.ebuild b/net-fs/autofs/autofs-5.1.4-r1.ebuild
deleted file mode 120000
index 865b8e5..0000000
--- a/net-fs/autofs/autofs-5.1.4-r1.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-autofs-5.1.4.ebuild
\ No newline at end of file
diff --git a/net-fs/autofs/autofs-5.1.4.ebuild b/net-fs/autofs/autofs-5.1.4.ebuild
deleted file mode 100644
index 6a156e4..0000000
--- a/net-fs/autofs/autofs-5.1.4.ebuild
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit linux-info multilib systemd toolchain-funcs
-
-PATCH_VER=
-[[ -n ${PATCH_VER} ]] && \
-	PATCHSET_URI="https://dev.gentoo.org/~jlec/distfiles/${P}-patches-${PATCH_VER}.tar.lzma"
-
-DESCRIPTION="Kernel based automounter"
-HOMEPAGE="http://www.linux-consulting.com/Amd_AutoFS/autofs.html"
-SRC_URI="
-	mirror://kernel/linux/daemons/${PN}/v5/${P}.tar.xz
-	${PATCHSET_URI}"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE="-dmalloc ldap +libtirpc mount-locking sasl"
-
-# USE="sasl" adds SASL support to the LDAP module which will not be build. If
-# SASL support should be available, please add "ldap" to the USE flags.
-REQUIRED_USE="sasl? ( ldap )"
-
-# currently, sasl code assumes the presence of kerberosV
-RDEPEND=">=sys-apps/util-linux-2.20
-	dmalloc? ( dev-libs/dmalloc[threads] )
-	ldap? ( >=net-nds/openldap-2.0
-		sasl? (
-			dev-libs/cyrus-sasl
-			dev-libs/libxml2
-			virtual/krb5
-		)
-	)
-	libtirpc? ( net-libs/libtirpc )
-	!libtirpc? ( elibc_glibc? ( sys-libs/glibc[rpc(-)] ) )
-"
-DEPEND="${RDEPEND}
-	sys-devel/flex
-	virtual/yacc
-	libtirpc? ( net-libs/rpcsvc-proto )
-"
-
-CONFIG_CHECK="~AUTOFS4_FS"
-
-src_prepare() {
-	# Upstream's patchset
-	if [[ -n ${PATCH_VER} ]]; then
-		EPATCH_SUFFIX="patch" \
-			epatch "${WORKDIR}"/patches
-	fi
-
-	sed -i -e "s:/usr/bin/kill:/bin/kill:" samples/autofs.service.in || die #bug #479492
-	default
-}
-
-src_configure() {
-	# bug #483716
-	tc-export AR
-	# --with-confdir is for bug #361481
-	# --with-mapdir is for bug #385113
-	local myeconfargs=(
-		--with-confdir=/etc/conf.d
-		--with-mapdir=/etc/autofs
-		$(use_with dmalloc)
-		$(use_with ldap openldap)
-		$(use_with libtirpc)
-		$(use_with sasl)
-		$(use_enable mount-locking)
-		--without-hesiod
-		--disable-ext-env
-		--enable-sloppy-mount # bug #453778
-		--enable-force-shutdown
-		--enable-ignore-busy
-		--with-systemd="$(systemd_get_systemunitdir)" #bug #479492
-		RANLIB="$(type -P $(tc-getRANLIB))" # bug #483716
-	)
-	econf "${myeconfargs[@]}"
-}
-
-src_compile() {
-	export DONTSTRIP=1
-	default
-}
-
-src_install() {
-	default
-
-	if kernel_is -lt 2 6 30; then
-		# kernel patches
-		docinto patches
-		dodoc patches/${PN}4-2.6.??{,.?{,?}}-v5-update-????????.patch
-	fi
-	newinitd "${FILESDIR}"/autofs5.initd autofs
-	insinto etc/autofs
-	newins "${FILESDIR}"/autofs5-auto.master auto.master
-}
-
-pkg_postinst() {
-	if kernel_is -lt 2 6 30; then
-		elog "This version of ${PN} requires a kernel with autofs4 supporting"
-		elog "protocol version 5.00. Patches for kernels older than 2.6.30 have"
-		elog "been installed into"
-		elog "${EROOT}usr/share/doc/${P}/patches."
-		elog "For further instructions how to patch the kernel, please refer to"
-		elog "${EROOT}usr/share/doc/${P}/INSTALL."
-		elog
-	fi
-	elog "If you plan on using autofs for automounting remote NFS mounts,"
-	elog "please check that both portmap (or rpcbind) and rpc.statd/lockd"
-	elog "are running."
-}
diff --git a/net-fs/autofs/autofs-5.1.8-r1.ebuild b/net-fs/autofs/autofs-5.1.8-r1.ebuild
new file mode 100644
index 0000000..5e3be6b
--- /dev/null
+++ b/net-fs/autofs/autofs-5.1.8-r1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit linux-info systemd toolchain-funcs
+
+DESCRIPTION="Kernel based automounter"
+HOMEPAGE="https://web.archive.org/web/*/http://www.linux-consulting.com/Amd_AutoFS/autofs.html https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git"
+SRC_URI="https://www.kernel.org/pub/linux/daemons/${PN}/v5/${P}.tar.xz
+	https://dev.gentoo.org/~dlan/distfiles/${CATEGORY}/${PN}/${P}-patches-0.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+IUSE="dmalloc ldap +libtirpc mount-locking sasl systemd"
+
+# currently, sasl code assumes the presence of kerberosV
+RDEPEND="
+	net-libs/libnsl:=
+	>=sys-apps/util-linux-2.20
+	dmalloc? ( dev-libs/dmalloc[threads] )
+	ldap? (
+		>=net-nds/openldap-2.0:=
+		sasl? (
+			dev-libs/cyrus-sasl
+			dev-libs/libxml2
+			virtual/krb5
+		)
+	)
+	systemd? ( sys-apps/systemd )
+	libtirpc? ( net-libs/libtirpc:= )
+	!libtirpc? ( elibc_glibc? ( sys-libs/glibc[rpc(-)] ) )
+"
+DEPEND="${RDEPEND}
+	libtirpc? ( net-libs/rpcsvc-proto )
+"
+BDEPEND="
+	sys-devel/flex
+	virtual/pkgconfig
+	app-alternatives/yacc
+"
+
+PATCHES=(
+	"${WORKDIR}"/${P}-patches/
+	"${FILESDIR}/${P}-dmalloc.patch"
+	"${FILESDIR}/${P}-nfsv4-mount.patch"
+	"${FILESDIR}/${P}-mount_conflict.patch"
+)
+
+pkg_setup() {
+	linux-info_pkg_setup
+
+	local CONFIG_CHECK
+
+	if kernel_is -ge 4 18; then
+		CONFIG_CHECK="~AUTOFS_FS"
+	else
+		CONFIG_CHECK="~AUTOFS4_FS"
+	fi
+
+	check_extra_config
+}
+
+src_prepare() {
+	sed -i	-e "s:/usr/bin/kill:/bin/kill:" samples/autofs.service.in || die # bug #479492
+	sed -i	-e "/^EnvironmentFile/d"        samples/autofs.service.in || die # bug #592334
+
+	# Install samples including autofs.service
+	sed -i -e "/^SUBDIRS/s/$/ samples/g" Makefile.rules || die
+
+	default
+}
+
+src_configure() {
+	# bug #483716
+	tc-export AR
+	# --with-confdir is for bug #361481
+	# --with-mapdir is for bug #385113
+	local myeconfargs=(
+		--with-confdir=/etc/conf.d
+		--with-mapdir=/etc/autofs
+		$(use_with dmalloc)
+		$(use_with ldap openldap)
+		$(use_with libtirpc)
+		$(use_with sasl)
+		$(use_enable mount-locking)
+		$(use_with systemd systemd $(systemd_get_systemunitdir)) # bug #479492
+		--without-hesiod
+		--disable-ext-env
+		--enable-sloppy-mount # bug #453778
+		--enable-force-shutdown
+		--enable-ignore-busy
+		RANLIB="$(type -P $(tc-getRANLIB))" # bug #483716
+	)
+
+	CONFIG_SHELL="${BROOT}/bin/bash" econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+	emake STRIP=: DONTSTRIP=1
+}
+
+src_install() {
+	default
+	rmdir "${D}"/run
+
+	if kernel_is -lt 2 6 30; then
+		# kernel patches
+		docinto patches
+		dodoc patches/${PN}4-2.6.??{,.?{,?}}-v5-update-????????.patch
+	fi
+	newinitd "${FILESDIR}"/autofs5.initd autofs
+	insinto etc/autofs
+	newins "${FILESDIR}"/autofs5-auto.master auto.master
+}
+
+pkg_postinst() {
+	if kernel_is -lt 2 6 30; then
+		elog "This version of ${PN} requires a kernel with autofs4 supporting"
+		elog "protocol version 5.00. Patches for kernels older than 2.6.30 have"
+		elog "been installed into"
+		elog "${EROOT}/usr/share/doc/${P}/patches."
+		elog "For further instructions how to patch the kernel, please refer to"
+		elog "${EROOT}/usr/share/doc/${P}/INSTALL."
+		elog
+	fi
+	elog "If you plan on using autofs for automounting remote NFS mounts,"
+	elog "please check that both portmap (or rpcbind) and rpc.statd/lockd"
+	elog "are running."
+}
diff --git a/net-fs/autofs/files/autofs-5.1.6-glibc.patch b/net-fs/autofs/files/autofs-5.1.6-glibc.patch
new file mode 100644
index 0000000..338d885
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.6-glibc.patch
@@ -0,0 +1,110 @@
+diff --git a/daemon/lookup.c b/daemon/lookup.c
+index 60a48f3..bbd65e0 100644
+--- a/daemon/lookup.c
++++ b/daemon/lookup.c
+@@ -382,7 +382,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source
+ 	if (!S_ISREG(st.st_mode))
+ 		return NSS_STATUS_NOTFOUND;
+ 
+-	if (st.st_mode & __S_IEXEC)
++	if (st.st_mode & S_IEXEC)
+ 		type = src_prog;
+ 	else
+ 		type = src_file;
+@@ -937,7 +937,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_
+ 	if (!S_ISREG(st.st_mode))
+ 		return NSS_STATUS_NOTFOUND;
+ 
+-	if (st.st_mode & __S_IEXEC)
++	if (st.st_mode & S_IEXEC)
+ 		type = src_prog;
+ 	else
+ 		type = src_file;
+@@ -1113,7 +1113,7 @@ static struct map_source *lookup_get_map_source(struct master_mapent *entry)
+ 	if (!S_ISREG(st.st_mode))
+ 		return NULL;
+ 
+-	if (st.st_mode & __S_IEXEC)
++	if (st.st_mode & S_IEXEC)
+ 		type = "program";
+ 	else
+ 		type = "file";
+diff --git a/include/automount.h b/include/automount.h
+index 4fd0ba9..7b855a7 100644
+--- a/include/automount.h
++++ b/include/automount.h
+@@ -13,6 +13,7 @@
+ #include <limits.h>
+ #include <time.h>
+ #include <syslog.h>
++#include <sys/procfs.h>
+ #include <sys/types.h>
+ #include <pthread.h>
+ #include <sched.h>
+@@ -142,6 +143,16 @@ struct autofs_point;
+ #define UMOUNT_RETRIES		8
+ #define EXPIRE_RETRIES		3
+ 
++#ifndef __SWORD_TYPE
++#if __WORDSIZE == 32
++# define __SWORD_TYPE		int
++#elif __WORDSIZE == 64
++# define __SWORD_TYPE		long int
++#else
++#error
++#endif
++#endif
++
+ static u_int32_t inline hash(const char *key, unsigned int size)
+ {
+ 	u_int32_t hashval;
+diff --git a/include/nsswitch.h b/include/nsswitch.h
+index d3e4027..8376113 100644
+--- a/include/nsswitch.h
++++ b/include/nsswitch.h
+@@ -24,6 +24,10 @@
+ #include <netdb.h>
+ #include "list.h"
+ 
++#ifndef _PATH_NSSWITCH_CONF
++#define _PATH_NSSWITCH_CONF "/dev/null"
++#endif
++
+ #define NSSWITCH_FILE _PATH_NSSWITCH_CONF
+ 
+ enum nsswitch_status {
+diff --git a/include/rpc_subs.h b/include/rpc_subs.h
+index 6e35eed..7ba4b93 100644
+--- a/include/rpc_subs.h
++++ b/include/rpc_subs.h
+@@ -18,7 +18,7 @@
+ 
+ #include <rpc/rpc.h>
+ #include <rpc/pmap_prot.h>
+-#include <nfs/nfs.h>
++#include <linux/nfs.h>
+ #include <linux/nfs2.h>
+ #include <linux/nfs3.h>
+ 
+diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c
+index fadd2ea..cf109de 100644
+--- a/modules/lookup_multi.c
++++ b/modules/lookup_multi.c
+@@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch
+ 				continue;
+ 			}
+ 
+-			if (st.st_mode & __S_IEXEC)
++			if (st.st_mode & S_IEXEC)
+ 				type = src_prog;
+ 			else
+ 				type = src_file;
+@@ -452,7 +452,7 @@ int lookup_reinit(const char *my_mapfmt,
+ 					continue;
+ 				}
+ 
+-				if (st.st_mode & __S_IEXEC)
++				if (st.st_mode & S_IEXEC)
+ 					type = src_prog;
+ 				else
+ 					type = src_file;
diff --git a/net-fs/autofs/files/autofs-5.1.6-musl.patch b/net-fs/autofs/files/autofs-5.1.6-musl.patch
new file mode 100644
index 0000000..bdcc0db
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.6-musl.patch
@@ -0,0 +1,12 @@
+--- a/include/automount.h
++++ b/include/automount.h
+@@ -25,6 +25,9 @@
+ #include "list.h"
+ 
+ #include <linux/auto_fs4.h>
++#ifndef __GLIBC__
++#include <bits/reg.h>
++#endif
+ 
+ #include "defaults.h"
+ #include "state.h"
diff --git a/net-fs/autofs/files/autofs-5.1.6-pid.patch b/net-fs/autofs/files/autofs-5.1.6-pid.patch
new file mode 100644
index 0000000..1766c34
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.6-pid.patch
@@ -0,0 +1,14 @@
+diff --git a/include/log.h b/include/log.h
+index 69eed96..14051cc 100644
+--- a/include/log.h
++++ b/include/log.h
+@@ -46,6 +46,8 @@ extern void log_crit(unsigned, const char* msg, ...);
+ extern void log_debug(unsigned int, const char* msg, ...);
+ extern void logmsg(const char* msg, ...);
+ 
++#include <unistd.h> /* Required for pid_t */
++
+ extern pid_t log_pidinfo(struct autofs_point *ap, pid_t pid, char *label);
+ 
+ #define debug(opt, msg, args...)	\
+
diff --git a/net-fs/autofs/files/autofs-5.1.8-dmalloc.patch b/net-fs/autofs/files/autofs-5.1.8-dmalloc.patch
new file mode 100644
index 0000000..e2ed58f
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.8-dmalloc.patch
@@ -0,0 +1,53 @@
+diff --git a/include/mounts.h b/include/mounts.h
+index ddb7e4c..854e1fb 100644
+--- a/include/mounts.h
++++ b/include/mounts.h
+@@ -84,7 +84,7 @@ typedef void (*tree_free_t) (struct tree_node *n);
+ struct tree_ops {
+ 	tree_new_t new;
+ 	tree_cmp_t cmp;
+-	tree_free_t free;
++	tree_free_t set_free;
+ };
+ 
+ typedef int (*tree_work_fn_t) (struct tree_node *n, void *ptr);
+diff --git a/lib/mounts.c b/lib/mounts.c
+index 4c86688..1e54a33 100644
+--- a/lib/mounts.c
++++ b/lib/mounts.c
+@@ -75,7 +75,7 @@ static void tree_mnt_free(struct tree_node *n);
+ static struct tree_ops mnt_ops = {
+ 	.new = tree_mnt_new,
+ 	.cmp = tree_mnt_cmp,
+-	.free = tree_mnt_free,
++	.set_free = tree_mnt_free,
+ };
+ static struct tree_ops *tree_mnt_ops = &mnt_ops;
+ 
+@@ -86,7 +86,7 @@ static void tree_host_free(struct tree_node *n);
+ static struct tree_ops host_ops = {
+ 	.new = tree_host_new,
+ 	.cmp = tree_host_cmp,
+-	.free = tree_host_free,
++	.set_free = tree_host_free,
+ };
+ static struct tree_ops *tree_host_ops = &host_ops;
+ 
+@@ -97,7 +97,7 @@ static void tree_mapent_free(struct tree_node *n);
+ static struct tree_ops mapent_ops = {
+ 	.new = tree_mapent_new,
+ 	.cmp = tree_mapent_cmp,
+-	.free = tree_mapent_free,
++	.set_free = tree_mapent_free,
+ };
+ static struct tree_ops *tree_mapent_ops = &mapent_ops;
+ 
+@@ -1360,7 +1360,7 @@ void tree_free(struct tree_node *root)
+ 		tree_free(root->right);
+ 	if (root->left)
+ 		tree_free(root->left);
+-	ops->free(root);
++	ops->set_free(root);
+ }
+ 
+ int tree_traverse_inorder(struct tree_node *n, tree_work_fn_t work, void *ptr)
diff --git a/net-fs/autofs/files/autofs-5.1.8-mount_conflict.patch b/net-fs/autofs/files/autofs-5.1.8-mount_conflict.patch
new file mode 100644
index 0000000..e2a94bf
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.8-mount_conflict.patch
@@ -0,0 +1,30 @@
+Avoid conflicts between sys/mount.h and linux/mount.h
+
+linux/fs.h includes linux/mount.h and this include file is unused so
+do not include it and avoid conflict too with glibc 2.36+ see [1]
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/modules/parse_amd.c
++++ b/modules/parse_amd.c
+@@ -27,7 +27,6 @@
+ #include <sys/utsname.h>
+ #include <netinet/in.h>
+ #include <sys/mount.h>
+-#include <linux/fs.h>
+ 
+ #define MODULE_PARSE
+ #include "automount.h"
+--- a/modules/parse_sun.c
++++ b/modules/parse_sun.c
+@@ -30,7 +30,6 @@
+ #include <sys/utsname.h>
+ #include <netinet/in.h>
+ #include <sys/mount.h>
+-#include <linux/fs.h>
+ 
+ #define MODULE_PARSE
+ #include "automount.h"
diff --git a/net-fs/autofs/files/autofs-5.1.8-nfsv4-mount.patch b/net-fs/autofs/files/autofs-5.1.8-nfsv4-mount.patch
new file mode 100644
index 0000000..eb1bc6c
--- /dev/null
+++ b/net-fs/autofs/files/autofs-5.1.8-nfsv4-mount.patch
@@ -0,0 +1,88 @@
+autofs-5.1.8 - fix nfsv4 only mounts should not use rpcbind
+
+From: Ian Kent <raven@xxxxxxxxxx>
+
+Commit 606795ecfaa1 ("autofs-5.1.7 - also require TCP_REQUESTED when
+setting NFS port" together with commit 26fb6b5408be) caused NFSv4 only
+mounts to also use rpcbind to probe availability which breaks the
+requirememt that this type of mount not use rpcbind at all.
+
+Fix this by treating fstype=nfs4 mounts as a special case which doesn't
+use rpcbind.
+---
+ CHANGELOG            |    1 +
+ include/replicated.h |    2 ++
+ modules/mount_nfs.c  |   13 +++++++------
+ modules/replicated.c |    4 ++--
+ 4 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/include/replicated.h b/include/replicated.h
+index 95ff1f0d..f889a56a 100644
+--- a/include/replicated.h
++++ b/include/replicated.h
+@@ -35,6 +35,8 @@
+ #define NFS3_REQUESTED		NFS3_SUPPORTED
+ #define NFS4_REQUESTED		NFS4_SUPPORTED
+ 
++#define NFS4_ONLY_REQUESTED	0x0800
++
+ #define TCP_SUPPORTED		0x0001
+ #define UDP_SUPPORTED		0x0002
+ #define TCP_REQUESTED		TCP_SUPPORTED
+diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c
+index 0ab87dcf..feb5afcd 100644
+--- a/modules/mount_nfs.c
++++ b/modules/mount_nfs.c
+@@ -92,7 +92,7 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int
+ 	mount_default_proto = defaults_get_mount_nfs_default_proto();
+ 	vers = NFS_VERS_DEFAULT | NFS_PROTO_DEFAULT;
+ 	if (strcmp(fstype, "nfs4") == 0)
+-		vers = NFS4_VERS_DEFAULT | TCP_SUPPORTED;
++		vers = NFS4_VERS_DEFAULT | TCP_SUPPORTED | NFS4_ONLY_REQUESTED;
+ 	else if (mount_default_proto == 4)
+ 		vers = vers | NFS4_VERS_DEFAULT;
+ 
+@@ -157,15 +157,16 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int
+ 			} else {
+ 				/* Is any version of NFSv4 in the options */
+ 				if (_strncmp("vers=4", cp, 6) == 0 ||
+-				    _strncmp("nfsvers=4", cp, 9) == 0)
+-					vers = NFS4_VERS_MASK | TCP_SUPPORTED;
+-				else if (_strncmp("vers=3", cp, o_len) == 0 ||
++				    _strncmp("nfsvers=4", cp, 9) == 0) {
++					vers &= ~(NFS_VERS_MASK);
++					vers |= NFS4_VERS_MASK | TCP_SUPPORTED | NFS4_ONLY_REQUESTED;
++				} else if (_strncmp("vers=3", cp, o_len) == 0 ||
+ 					 _strncmp("nfsvers=3", cp, o_len) == 0) {
+-					vers &= ~(NFS4_VERS_MASK | NFS_VERS_MASK);
++					vers &= ~(NFS4_VERS_MASK | NFS_VERS_MASK | NFS4_ONLY_REQUESTED);
+ 					vers |= NFS3_REQUESTED;
+ 				} else if (_strncmp("vers=2", cp, o_len) == 0 ||
+ 					 _strncmp("nfsvers=2", cp, o_len) == 0) {
+-					vers &= ~(NFS4_VERS_MASK | NFS_VERS_MASK);
++					vers &= ~(NFS4_VERS_MASK | NFS_VERS_MASK | NFS4_ONLY_REQUESTED);
+ 					vers |= NFS2_REQUESTED;
+ 				} else if (strstr(cp, "port=") == cp &&
+ 					 o_len - 5 < 25) {
+diff --git a/modules/replicated.c b/modules/replicated.c
+index 09075dd0..cdb7c617 100644
+--- a/modules/replicated.c
++++ b/modules/replicated.c
+@@ -291,7 +291,7 @@ static unsigned int get_nfs_info(unsigned logopt, struct host *host,
+ 
+ 	rpc_info->proto = proto;
+ 	if (port < 0) {
+-		if ((version & NFS4_REQUESTED) && (version & TCP_REQUESTED))
++		if (version & NFS4_REQUESTED && (version & NFS4_ONLY_REQUESTED))
+ 			rpc_info->port = NFS_PORT;
+ 		else
+ 			port = 0;
+@@ -525,7 +525,7 @@ static int get_vers_and_cost(unsigned logopt, struct host *host,
+ {
+ 	struct conn_info pm_info, rpc_info;
+ 	time_t timeout = RPC_TIMEOUT;
+-	unsigned int supported, vers = (NFS_VERS_MASK | NFS4_VERS_MASK);
++	unsigned int supported, vers = (NFS_VERS_MASK | NFS4_VERS_MASK | NFS4_ONLY_REQUESTED);
+ 	int ret = 0;
+ 
+ 	if (!check_address_proto(logopt, host, version))
diff --git a/net-fs/autofs/files/autofs5.initd b/net-fs/autofs/files/autofs5.initd
index 119585c..1b9b0fa 100644
--- a/net-fs/autofs/files/autofs5.initd
+++ b/net-fs/autofs/files/autofs5.initd
@@ -1,5 +1,5 @@
 #!/sbin/openrc-run
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 DAEMON=/usr/sbin/automount
@@ -8,7 +8,7 @@
 
 depend() {
 	need localmount	
-	use ypbind nfs slapd portmap net
+	use ypbind nfsclient slapd net
 }
 
 extra_started_commands="reload"
diff --git a/net-fs/autofs/metadata.xml b/net-fs/autofs/metadata.xml
index 01c0462..fac959b 100644
--- a/net-fs/autofs/metadata.xml
+++ b/net-fs/autofs/metadata.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
 	<maintainer type="person">
 		<email>dlan@gentoo.org</email>