1{ lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs
2, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto
3, fetchpatch
4}:
5
6stdenv.mkDerivation rec {
7 version = "5.1.6";
8 pname = "autofs";
9
10 src = fetchurl {
11 url = "mirror://kernel/linux/daemons/autofs/v5/autofs-${version}.tar.xz";
12 sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx";
13 };
14
15 patches = [
16 # glibc 2.34 compat
17 (fetchpatch {
18 url = "https://src.fedoraproject.org/rpms/autofs/raw/cc745af5e42396d540d5b3b92fae486e232bf6bd/f/autofs-5.1.7-use-default-stack-size-for-threads.patch";
19 sha256 = "sha256-6ETDFbW7EhHR03xFWF+6OJBgn9NX3WW3bGhTNGodaOc=";
20 excludes = [ "CHANGELOG" ];
21 })
22 ];
23
24 preConfigure = ''
25 configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH"
26 export sssldir="${sssd}/lib/sssd/modules"
27 export HAVE_SSS_AUTOFS=1
28
29 export MOUNT=${mount}/bin/mount
30 export MOUNT_NFS=${nfs-utils}/bin/mount.nfs
31 export UMOUNT=${umount}/bin/umount
32 export MODPROBE=${kmod}/bin/modprobe
33 export E2FSCK=${e2fsprogs}/bin/fsck.ext2
34 export E3FSCK=${e2fsprogs}/bin/fsck.ext3
35 export E4FSCK=${e2fsprogs}/bin/fsck.ext4
36
37 unset STRIP # Makefile.rules defines a usable STRIP only without the env var.
38 '';
39
40 # configure script is not finding the right path
41 env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ];
42
43 installPhase = ''
44 make install SUBDIRS="lib daemon modules man" # all but samples
45 #make install SUBDIRS="samples" # impure!
46 '';
47
48 buildInputs = [ linuxHeaders libtirpc libxml2 libkrb5 kmod openldap sssd
49 openssl cyrus_sasl rpcsvc-proto ];
50
51 nativeBuildInputs = [ flex bison ];
52
53 meta = {
54 description = "Kernel-based automounter";
55 homepage = "https://www.kernel.org/pub/linux/daemons/autofs/";
56 license = lib.licenses.gpl2Plus;
57 executables = [ "automount" ];
58 platforms = lib.platforms.linux;
59 };
60}