| # 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." |
| } |