]> granicus.if.org Git - shadow/commitdiff
Honor --sbindir and --bindir for binary installation
authorDave Reisner <dreisner@archlinux.org>
Wed, 31 Jul 2019 17:09:36 +0000 (13:09 -0400)
committerSerge Hallyn <shallyn@cisco.com>
Fri, 2 Aug 2019 01:36:41 +0000 (20:36 -0500)
Some distros don't care about the split between /bin, /sbin, /usr/bin,
and /usr/sbin, so let them easily stuff binaries wherever they want.

This also fixes a problem during installation where-in a loop of 'chmod
4755' calls will mostly fail. However, because the last two succeed
(newuidmap/newgidmap), make considers the command to be a success.
Somewhat not-amusingly, configuring shadow with --with-fcaps will cause
installation to fail because the final chmod call is now a failing one.

src/Makefile.am

index 34690ced5f271d3ee939e38291607a45e3bd1ba3..f7f132eeec23f6e1f457a6dd94f1e11329f02b0a 100644 (file)
@@ -2,8 +2,8 @@
 EXTRA_DIST = \
        .indent.pro
 
-ubindir = ${prefix}/bin
-usbindir = ${prefix}/sbin
+ubindir = ${bindir}
+usbindir = ${sbindir}
 suidperms = 4755
 sgidperms = 2755
 
@@ -52,13 +52,14 @@ usbin_PROGRAMS = \
 # id and groups are from gnu, sulogin from sysvinit
 noinst_PROGRAMS = id sulogin
 
+suidusbins     =
 suidbins       = su
 suidubins      = chage chfn chsh expiry gpasswd newgrp
 if !WITH_TCB
 suidubins += passwd
 endif
 if ACCT_TOOLS_SETUID
-suidubins += chgpasswd chpasswd groupadd groupdel groupmod newusers useradd userdel usermod
+suidusbins += chgpasswd chpasswd groupadd groupdel groupmod newusers useradd userdel usermod
 endif
 if ENABLE_SUBIDS
 if !FCAPS
@@ -134,6 +135,9 @@ install-am: all-am
        for i in $(suidubins); do \
                chmod $(suidperms) $(DESTDIR)$(ubindir)/$$i; \
        done
+       for i in $(suidusbins); do \
+               chmod $(suidperms) $(DESTDIR)$(usbindir)/$$i; \
+       done
 if WITH_TCB
        for i in $(shadowsgidubins); do \
                chown root:shadow $(DESTDIR)$(ubindir)/$$i; \