]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
build: Make build/installation of su and its support files optional 192/head
authorLars Wendler <polynomial-c@gentoo.org>
Tue, 19 Nov 2019 09:57:06 +0000 (10:57 +0100)
committerLars Wendler <polynomial-c@gentoo.org>
Tue, 19 Nov 2019 10:28:45 +0000 (11:28 +0100)
Enabled by default
This is necessary because coreutils and util-linux can also provide su

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
configure.ac
etc/pam.d/Makefile.am
man/Makefile.am
src/Makefile.am

index 6a273766e8e952bbf70db7113066ed4bb41d2313..a97d39172e25b25eddef40e70f9342ec5a486239 100644 (file)
@@ -286,6 +286,9 @@ AC_ARG_WITH(sssd,
 AC_ARG_WITH(group-name-max-length,
        [AC_HELP_STRING([--with-group-name-max-length], [set max group name length @<:@default=16@:>@])],
        [with_group_name_max_length=$withval], [with_group_name_max_length=yes])
+AC_ARG_WITH(su,
+       [AC_HELP_STRING([--with-su], [build and install su program and man page @<:@default=yes@:>@])],
+       [with_su=$withval], [with_su=yes])
 
 if test "$with_group_name_max_length" = "no" ; then
        with_group_name_max_length=0
@@ -313,6 +316,9 @@ if test "$with_sssd" = "yes"; then
                      [AC_MSG_ERROR([posix_spawn is needed for sssd support])])
 fi
 
+AS_IF([test "$with_su" != "no"], AC_DEFINE(WITH_SU, 1, [Build with su])])
+AM_CONDITIONAL([WITH_SU], [test "x$with_su" != "xno"])
+
 dnl Check for some functions in libc first, only if not found check for
 dnl other libraries.  This should prevent linking libnsl if not really
 dnl needed (Linux glibc, Irix), but still link it if needed (Solaris).
@@ -730,4 +736,5 @@ echo "      nscd support:                   $with_nscd"
 echo " sssd support:                   $with_sssd"
 echo " subordinate IDs support:        $enable_subids"
 echo " use file caps:                  $with_fcaps"
+echo " install su:                     $with_su"
 echo
index d967eb95026a47956f4d8377930d362aa78744db..38ff26ae8f0181ba1fb4496479f09054d2999563 100644 (file)
@@ -6,8 +6,7 @@ pamd_files = \
        chsh \
        groupmems \
        login \
-       passwd \
-       su
+       passwd
 
 pamd_acct_tools_files = \
        chage \
@@ -29,4 +28,8 @@ pamd_DATA += $(pamd_acct_tools_files)
 endif
 endif
 
+if WITH_SU
+pamd_files += su
+endif
+
 EXTRA_DIST = $(pamd_files) $(pamd_acct_tools_files)
index 3f040e053acd1eff92d561be770d21119ca1b93f..8b64febaf030c1bf5e536abaace3725449fe8d4c 100644 (file)
@@ -41,7 +41,6 @@ man_MANS = \
        man1/sg.1 \
        man3/shadow.3 \
        man5/shadow.5 \
-       man1/su.1 \
        man5/suauth.5 \
        man8/useradd.8 \
        man8/userdel.8 \
@@ -54,6 +53,10 @@ man_nopam = \
        man5/login.access.5 \
        man5/porttime.5
 
+if WITH_SU
+man_MANS += man1/su.1
+endif
+
 if !USE_PAM
 man_MANS += $(man_nopam)
 endif
index 1b6aaab14d4a9d2513bb946cd4aba53316af8436..f31fd7abd5f2030c46db452d940e135c284574e7 100644 (file)
@@ -23,12 +23,15 @@ AM_CPPFLAGS = \
 # and installation would be much simpler (just two directories,
 # $prefix/bin and $prefix/sbin, no install-data hacks...)
 
-bin_PROGRAMS   = groups login su
+bin_PROGRAMS   = groups login
 sbin_PROGRAMS  = nologin
 ubin_PROGRAMS  = faillog lastlog chage chfn chsh expiry gpasswd newgrp passwd
 if ENABLE_SUBIDS
 ubin_PROGRAMS += newgidmap newuidmap
 endif
+if WITH_SU
+bin_PROGRAMS  += su
+endif
 usbin_PROGRAMS = \
        chgpasswd \
        chpasswd \
@@ -53,8 +56,11 @@ usbin_PROGRAMS = \
 noinst_PROGRAMS = id sulogin
 
 suidusbins     =
-suidbins       = su
+suidbins       =
 suidubins      = chage chfn chsh expiry gpasswd newgrp
+if WITH_SU
+suidbins      += su
+endif
 if !WITH_TCB
 suidubins += passwd
 endif