diff options
author | S. Lockwood-Childs <sjl@vctlabs.com> | 2018-05-23 09:25:56 +0000 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2018-06-08 07:08:58 -0400 |
commit | acca4e086d138cbad282fbfe3123c394e90e0346 (patch) | |
tree | d2ef9cb589fbf526b7ce976e155f3f96a4d9e8c7 /net-fs | |
parent | dev-libs/libbsd: version bump to 0.9.1 (diff) | |
download | musl-acca4e086d138cbad282fbfe3123c394e90e0346.tar.gz musl-acca4e086d138cbad282fbfe3123c394e90e0346.tar.bz2 musl-acca4e086d138cbad282fbfe3123c394e90e0346.zip |
net-fs/autofs: add package
* satisfying net-libs/rpcsvc-proto dependency with version 0 is useless,
(it is just a stub that does not provide rpcgen tool) so require
greater than 0
* compiler patch based on musl-related patches from meta-openembedded
Diffstat (limited to 'net-fs')
-rw-r--r-- | net-fs/autofs/Manifest | 1 | ||||
-rw-r--r-- | net-fs/autofs/autofs-5.1.4.ebuild | 113 | ||||
-rw-r--r-- | net-fs/autofs/files/autofs-5.1.2-libtirpc-as-need.patch | 28 | ||||
-rw-r--r-- | net-fs/autofs/files/autofs-musl.patch | 90 | ||||
-rw-r--r-- | net-fs/autofs/files/autofs5-auto.master | 23 | ||||
-rw-r--r-- | net-fs/autofs/files/autofs5.initd | 69 | ||||
-rw-r--r-- | net-fs/autofs/metadata.xml | 20 |
7 files changed, 344 insertions, 0 deletions
diff --git a/net-fs/autofs/Manifest b/net-fs/autofs/Manifest new file mode 100644 index 00000000..b42b2072 --- /dev/null +++ b/net-fs/autofs/Manifest @@ -0,0 +1 @@ +DIST autofs-5.1.4.tar.xz 304864 BLAKE2B 7348aa1106554eb765919c765c0585b5d975d7a0ea036dec5b509711bf33cefd0f3e1e857a6865434adabbd1e323cfe8ffb09eb234495672e81101f79b8f4d0f SHA512 1ef48800a1e44d6bf7048923109f3b8299ef266ff0fbaf5f979c32f42c6c5e28620c1876f64b9d913fddb69244ff83226c01c666401ff6271dd6b53d31860589 diff --git a/net-fs/autofs/autofs-5.1.4.ebuild b/net-fs/autofs/autofs-5.1.4.ebuild new file mode 100644 index 00000000..81f6b76e --- /dev/null +++ b/net-fs/autofs/autofs-5.1.4.ebuild @@ -0,0 +1,113 @@ +# 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="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +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-0 ) +" + +CONFIG_CHECK="~AUTOFS4_FS" + +PATCHES=( + "${FILESDIR}"/${PN}-musl.patch +) + +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_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/files/autofs-5.1.2-libtirpc-as-need.patch b/net-fs/autofs/files/autofs-5.1.2-libtirpc-as-need.patch new file mode 100644 index 00000000..f6e17697 --- /dev/null +++ b/net-fs/autofs/files/autofs-5.1.2-libtirpc-as-need.patch @@ -0,0 +1,28 @@ +Make configure compatible with -Wl,--as-needed following +https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure + +2016-07-05 Martin von Gagern + +--- autofs-5.1.2.orig/aclocal.m4 ++++ autofs-5.1.2/aclocal.m4 +@@ -413,9 +413,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC], + [ + # save current flags + af_check_libtirpc_save_cflags="$CFLAGS" +-af_check_libtirpc_save_ldflags="$LDFLAGS" ++af_check_libtirpc_save_libs="$LIBS" + CFLAGS="$CFLAGS -I/usr/include/tirpc" +-LDFLAGS="$LDFLAGS -ltirpc" ++LIBS="$LIBS -ltirpc" + + AC_TRY_LINK( + [ #include <rpc/rpc.h> ], +@@ -438,7 +438,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyna + + # restore flags + CFLAGS="$af_check_libtirpc_save_cflags" +-LDFLAGS="$af_check_libtirpc_save_ldflags" ++LIBS="$af_check_libtirpc_save_libs" + ]) + + AC_DEFUN([AF_WITH_LIBTIRPC], diff --git a/net-fs/autofs/files/autofs-musl.patch b/net-fs/autofs/files/autofs-musl.patch new file mode 100644 index 00000000..bda29cad --- /dev/null +++ b/net-fs/autofs/files/autofs-musl.patch @@ -0,0 +1,90 @@ +musl-related compile fixes based on openembedded patchset for autofs + +https://github.com/openembedded/meta-openembedded/ +(see meta-networking/recipes-daemons/autofs/autofs/) + +diff -ur autofs-5.1.2/daemon/lookup.c.orig autofs-5.1.2/daemon/lookup.c +--- autofs-5.1.2/daemon/lookup.c.orig 2016-06-15 02:40:44.000000000 +0000 ++++ autofs-5.1.2/daemon/lookup.c 2018-05-22 19:37:53.698931707 +0000 +@@ -366,7 +366,7 @@ + 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; +@@ -856,7 +856,7 @@ + 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; +diff -ur autofs-5.1.2/include/automount.h.orig autofs-5.1.2/include/automount.h +--- autofs-5.1.2/include/automount.h.orig 2016-06-15 02:40:44.000000000 +0000 ++++ autofs-5.1.2/include/automount.h 2018-05-22 19:38:01.242979571 +0000 +@@ -42,6 +42,14 @@ + + #define ENABLE_CORES 1 + ++#ifndef __SWORD_TYPE ++# if __WORDSIZE == 32 /* System word size */ ++# define __SWORD_TYPE int ++# else /* __WORDSIZE == 64 */ ++# define __SWORD_TYPE long int ++# endif ++#endif ++ + /* We MUST have the paths to mount(8) and umount(8) */ + #ifndef HAVE_MOUNT + #error Failed to locate mount(8)! +diff -ur autofs-5.1.2/include/nsswitch.h.orig autofs-5.1.2/include/nsswitch.h +--- autofs-5.1.2/include/nsswitch.h.orig 2016-06-15 02:40:44.000000000 +0000 ++++ autofs-5.1.2/include/nsswitch.h 2018-05-22 19:38:01.242979571 +0000 +@@ -24,6 +24,9 @@ + #include <netdb.h> + #include "list.h" + ++#ifndef _PATH_NSSWITCH_CONF ++#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" ++#endif + #define NSSWITCH_FILE _PATH_NSSWITCH_CONF + + enum nsswitch_status { +diff -ur autofs-5.1.2/include/rpc_subs.h.orig autofs-5.1.2/include/rpc_subs.h +--- autofs-5.1.2/include/rpc_subs.h.orig 2016-06-15 02:40:44.000000000 +0000 ++++ autofs-5.1.2/include/rpc_subs.h 2018-05-22 19:38:10.547038606 +0000 +@@ -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 -ur autofs-5.1.2/modules/lookup_multi.c.orig autofs-5.1.2/modules/lookup_multi.c +--- autofs-5.1.2/modules/lookup_multi.c.orig 2016-06-15 02:40:44.000000000 +0000 ++++ autofs-5.1.2/modules/lookup_multi.c 2018-05-22 19:38:45.231258767 +0000 +@@ -247,7 +247,7 @@ + continue; + } + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +@@ -452,7 +452,7 @@ + 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/autofs5-auto.master b/net-fs/autofs/files/autofs5-auto.master new file mode 100644 index 00000000..8ad09274 --- /dev/null +++ b/net-fs/autofs/files/autofs5-auto.master @@ -0,0 +1,23 @@ +# Sample auto.master file +# This is an automounter map and it has the following format +# key [ -mount-options-separated-by-comma ] location +# For details of the format look at autofs(5). +# +#/misc /etc/autofs/auto.misc +#/net /etc/autofs/auto.net +# +# NOTE: mounts done from a hosts map will be mounted with the +# "nosuid" and "nodev" options unless the "suid" and "dev" +# options are explicitly given. +# +#/net -hosts +# +# Include central master map if it can be found using +# nsswitch sources. +# +# Note that if there are entries for /net or /misc (as +# above) in the included master map any keys that are the +# same will not be seen as the first read key seen takes +# precedence. +# +#+auto.master diff --git a/net-fs/autofs/files/autofs5.initd b/net-fs/autofs/files/autofs5.initd new file mode 100644 index 00000000..119585c9 --- /dev/null +++ b/net-fs/autofs/files/autofs5.initd @@ -0,0 +1,69 @@ +#!/sbin/openrc-run +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +DAEMON=/usr/sbin/automount +PIDFILE=/var/run/autofs.pid +DEVICE=autofs + +depend() { + need localmount + use ypbind nfs slapd portmap net +} + +extra_started_commands="reload" + +start() { + ebegin "Starting automounter" + + # Ensure autofs support is loaded + grep -q autofs /proc/filesystems || modprobe -q autofs4 + if [ $? -ne 0 ]; then + eend 1 "No autofs support available in kernel" + return 1 + fi + + # Check misc device + if [ -n "${USE_MISC_DEVICE}" -a "${USE_MISC_DEVICE}" = "yes" ]; then + sleep 1 + if [ -e "/proc/misc" ]; then + MINOR=$(awk "/${DEVICE}/ {print \$1}" /proc/misc) + if [ -n "${MINOR}" -a ! -c "/dev/${DEVICE}" ]; then + mknod -m 0600 "/dev/${DEVICE}" c 10 ${MINOR} + if [ $? -ne 0 ]; then + eend 1 "Could not create '/dev/${DEVICE}'" + return 1 + fi + fi + fi + if [ -x /sbin/restorecon -a -c "/dev/${DEVICE}" ]; then + /sbin/restorecon "/dev/${DEVICE}" + if [ $? -ne 0 ]; then + eend 1 "Failed to execute '/sbin/restorecon \"/dev/${DEVICE}\"'" + return 1 + fi + fi + else + [ -c "/dev/${DEVICE}" ] && rm -rf "/dev/${DEVICE}" + fi + + start-stop-daemon --start --exec ${DAEMON} -- -p ${PIDFILE} ${OPTIONS} + + eend $? +} + +stop() { + ebegin "Stopping automounter" + start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE} + eend $? +} + +reload() { + ebegin "Reloading automounter" + if [ ! -r "${PIDFILE}" ]; then + eend 1 "automount not running" + else + kill -s HUP $(cat "${PIDFILE}") 2> /dev/null + eend $? + fi +} diff --git a/net-fs/autofs/metadata.xml b/net-fs/autofs/metadata.xml new file mode 100644 index 00000000..f3681369 --- /dev/null +++ b/net-fs/autofs/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <use> + <flag name="dmalloc">Enable debugging with the dmalloc library</flag> + <flag name="ldap">Install LDAP module</flag> + <flag name="libtirpc">Use TiRPC library instead of SunRPC</flag> + <flag name="mount-locking"> + Enable locking to prevent corruption of /etc/mtab in the presence of + concurrent auto-mounting. If enabled, recursive auto-mounting (eg. using + autofs to bind or loop mount a filesystem which is itself auto-mounted) + is not possible. + </flag> + <flag name="sasl">Enable SASL support in the LDAP module</flag> + </use> +</pkgmetadata> |