On Tue, Dec 10, 2019 at 09:11:28PM +0100, Ladislav Michl wrote:
> Signed-off-by: Ladislav Michl <[email protected]>
> ---
>  rules/shadow.in   | 148 +++++++++++++++++++++++++++++++++++++++++++
>  rules/shadow.make | 157 ++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 305 insertions(+)
>  create mode 100644 rules/shadow.in
>  create mode 100644 rules/shadow.make
> 
> diff --git a/rules/shadow.in b/rules/shadow.in
> new file mode 100644
> index 000000000..d2fbbb478
> --- /dev/null
> +++ b/rules/shadow.in
> @@ -0,0 +1,148 @@
> +## SECTION=shell_and_console
> +
> +menuconfig SHADOW
> +     tristate
> +     depends on GLOBAL_PAM
> +     select LIBC_CRYPT
> +     select LIBSELINUX       if GLOBAL_SELINUX
> +     select PAM
> +     prompt "shadow                        "
> +     help
> +       Password and account management tool suite with support
> +       for shadow files and PAM.
> +
> +if SHADOW
> +
> +config SHADOW_CHGPASSWD
> +     bool
> +     prompt "chgpasswd"
> +
> +config SHADOW_CHPASSWD
> +     bool
> +     prompt "chpasswd"
> +
> +config SHADOW_GROUPADD
> +     bool
> +     prompt "groupadd"
> +
> +config SHADOW_GROUPDEL
> +     bool
> +     prompt "groupdel"
> +
> +config SHADOW_GROUPMEMS
> +     bool
> +     prompt "groupmems"
> +
> +config SHADOW_GROUPMOD
> +     bool
> +     prompt "groupmod"
> +
> +config SHADOW_GRPCK
> +     bool
> +     prompt "grpck"
> +
> +config SHADOW_GRPCONV
> +     bool
> +     prompt "grpconv"
> +
> +config SHADOW_GRPUNCONV
> +     bool
> +     prompt "grpunconv"
> +
> +config SHADOW_LOGOUTD
> +     bool
> +     prompt "logoutd"
> +
> +config SHADOW_NEWUSERS
> +     bool
> +     prompt "newusers"
> +
> +config SHADOW_NOLOGIN
> +     bool
> +     prompt "nologin"
> +
> +config SHADOW_PWCK
> +     bool
> +     prompt "pwck"
> +
> +config SHADOW_PWCONV
> +     bool
> +     prompt "pwconv"
> +
> +config SHADOW_PWUNCONV
> +     bool
> +     prompt "pwunconv"
> +
> +config SHADOW_USERADD
> +     bool
> +     prompt "useradd"
> +
> +config SHADOW_USERDEL
> +     bool
> +     prompt "userdel"
> +
> +config SHADOW_USERMOD
> +     bool
> +     prompt "usermod"
> +
> +config SHADOW_VIPW
> +     bool
> +     prompt "vipw"
> +
> +config SHADOW_CHAGE
> +     bool
> +     prompt "chage"
> +
> +config SHADOW_CHFN
> +     bool
> +     prompt "chfn"
> +
> +config SHADOW_CHSH
> +     bool
> +     prompt "chsh"
> +
> +config SHADOW_EXPIRY
> +     bool
> +     prompt "expiry"
> +
> +config SHADOW_FAILLOG
> +     bool
> +     prompt "faillog"
> +
> +config SHADOW_GPASSWD
> +     bool
> +     prompt "gpasswd"
> +
> +config SHADOW_GROUPS
> +     bool
> +     prompt "groups"
> +
> +config SHADOW_LASTLOG
> +     bool
> +     prompt "lastlog"
> +
> +config SHADOW_LOGIN
> +     bool
> +     prompt "login"
> +
> +config SHADOW_NEWGIDMAP
> +     bool
> +     prompt "newgidmap"
> +
> +config SHADOW_NEWGRP
> +     bool
> +     prompt "newgrp"
> +
> +config SHADOW_NEWUIDMAP
> +     bool
> +     prompt "newuidmap"
> +
> +config SHADOW_PASSWD
> +     bool
> +     prompt "passwd"
> +
> +config SHADOW_SU
> +     bool
> +     prompt "su"

Hmmm, I thinks this package is only used for 'bigger' systems, right? I
expect that these binaries are pretty small, so maybe just install them
unconditionally, or maybe two groups:
- tools that are used at runtime that don't modify things, such as
  'login', 'su', etc.
- tools that change the configuration, such as 'groupadd' etc.

> +
> +endif
> diff --git a/rules/shadow.make b/rules/shadow.make
> new file mode 100644
> index 000000000..d969adcd0
> --- /dev/null
> +++ b/rules/shadow.make
> @@ -0,0 +1,157 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2019 by Ladislav Michl <[email protected]>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_SHADOW) += shadow
> +
> +#
> +# Paths and names
> +#
> +SHADOW_VERSION       := 4.6
> +SHADOW_MD5   := b491fecbf1232632c32ff8f1437fd60e
> +SHADOW               := shadow-$(SHADOW_VERSION)
> +SHADOW_SUFFIX        := tar.xz
> +SHADOW_URL   := 
> https://github.com/shadow-maint/shadow/releases/download/$(SHADOW_VERSION)/$(SHADOW).$(SHADOW_SUFFIX)
> +SHADOW_SOURCE        := $(SRCDIR)/$(SHADOW).$(SHADOW_SUFFIX)
> +SHADOW_DIR   := $(BUILDDIR)/$(SHADOW)
> +SHADOW_LICENSE       := BSD-3-Clause
> +
> +# 
> ----------------------------------------------------------------------------
> +# Prepare
> +# 
> ----------------------------------------------------------------------------
> +
> +#
> +# autoconf
> +#
> +SHADOW_CONF_TOOL     := autoconf
> +SHADOW_CONF_OPT              := \
> +     $(CROSS_AUTOCONF_USR) \
> +     --bindir=/usr/bin \
> +     --sbindir=/usr/sbin \
> +     $(GLOBAL_LARGE_FILE_OPTION) \
> +     --enable-shadowgrp \
> +     --disable-man \
> +     --$(call ptx/endis, PTXCONF_GLOBAL_PAM)-account-tools-setuid \
> +     --disable-utmpx \
> +     --enable-subordinate-ids \
> +     --disable-nls \
> +     --disable-rpath \
> +     --without-audit \
> +     --$(call ptx/wwo, PTXCONF_GLOBAL_PAM)-libpam \
> +     --$(call ptx/wwo, PTXCONF_GLOBAL_SELINUX)-selinux \
> +     --without-acl \
> +     --without-attr \
> +     --without-skey \
> +     --without-tcb \
> +     --without-libcrack \
> +     --with-sha-crypt \
> +     --without-nscd
> +
> +# 
> ----------------------------------------------------------------------------
> +# Target-Install
> +# 
> ----------------------------------------------------------------------------
> +
> +SHADOW_PROGS_TARGET_y                                :=
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_CHGPASSWD)      += chgpasswd
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_CHPASSWD)       += chpasswd
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GROUPADD)       += groupadd
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GROUPDEL)       += groupdel
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GROUPMEMS)      += groupmems
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GROUPMOD)       += groupmod
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GRPCK)  += grpck
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GRPCONV)        += grpconv
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_GRPUNCONV)      += grpunconv
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_LOGOUTD)        += logoutd
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_NEWUSERS)       += newusers
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_NOLOGIN)        += nologin
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_PWCK)   += pwck
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_PWCONV) += pwconv
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_PWUNCONV)       += pwunconv
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_USERADD)        += useradd
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_USERDEL)        += userdel
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_USERMOD)        += usermod
> +SHADOW_PROGS_TARGET_$(PTXCONF_SHADOW_VIPW)   += vipw
> +
> +SHADOW_PERMS := $(if $(strip $(GPSD_PROGS-y)),4755,0755)
> +
> +$(STATEDIR)/shadow.targetinstall:
> +     @$(call targetinfo)
> +
> +     @$(call install_init, shadow)
> +     @$(call install_fixup, shadow,PRIORITY,optional)
> +     @$(call install_fixup, shadow,SECTION,base)
> +     @$(call install_fixup, shadow,AUTHOR,"Ladislav Michl 
> <[email protected]>")
> +     @$(call install_fixup, shadow,DESCRIPTION,missing)
> +ifdef PTXCONF_SHADOW_CHAGE
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/chage)
> +endif
> +ifdef PTXCONF_SHADOW_CHFN
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/chfn)
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/chfn)
> +endif
> +ifdef PTXCONF_SHADOW_CHSH
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/chsh)
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/chsh)
> +endif
> +ifdef PTXCONF_SHADOW_EXPIRY
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/expiry)
> +endif
> +ifdef PTXCONF_SHADOW_FAILLOG
> +     @$(call install_copy, shadow, 0, 0, 0755, -, /usr/bin/faillog)
> +endif
> +ifdef PTXCONF_SHADOW_GPASSWD
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/gpasswd)
> +endif
> +ifdef PTXCONF_SHADOW_GROUPS
> +     @$(call install_copy, shadow, 0, 0, 0755, -, /usr/bin/groups)
> +endif
> +ifdef PTXCONF_SHADOW_LASTLOG
> +     @$(call install_copy, shadow, 0, 0, 0755, -, /usr/bin/lastlog)
> +endif
> +ifdef PTXCONF_SHADOW_LOGIN
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/login.defs)
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/login)
> +     @$(call install_copy, shadow, 0, 0, 0755, -, /usr/bin/login)
> +endif
> +ifdef PTXCONF_SHADOW_NEWGIDMAP
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/newgidmap)
> +endif
> +ifdef PTXCONF_SHADOW_NEWGRP
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/newgrp)
> +     @$(call install_link, shadow, newgrp, /usr/bin/sg)
> +endif
> +ifdef PTXCONF_SHADOW_NEWUIDMAP
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/newuidmap)
> +endif
> +ifdef PTXCONF_SHADOW_PASSWD
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/passwd)
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/passwd)
> +endif
> +ifdef PTXCONF_SHADOW_SU
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/su)
> +     @$(call install_copy, shadow, 0, 0, 4755, -, /usr/bin/su)
> +endif
> +     @$(foreach prog, $(SHADOW_PROGS_TARGET_y), \
> +             $(call install_copy, shadow, 0, 0, 0755, -, \
> +                     /usr/sbin/$(prog));)
> +ifdef PTXCONF_SHADOW_VIPW
> +     @$(call install_link, shadow, vipw, /usr/sbin/wigr)
> +endif

Maybe use a foreach loop for the binaries?

Michael

> +ifdef PTXCONF_SHADOW_USERADD
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/default/useradd)
> +endif
> +ifdef PTXCONF_SHADOW_GROUPMEMS
> +     @$(call install_alternative, shadow, 0, 0, 0644, /etc/pam.d/groupmems)
> +endif
> +     @$(call install_finish, shadow)
> +
> +     @$(call touch)
> +
> +# vim: syntax=make
> -- 
> 2.24.0
> 
> 
> _______________________________________________
> ptxdist mailing list
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to