xref: /OK3568_Linux_fs/buildroot/package/shadow/shadow.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# shadow
4#
5################################################################################
6
7SHADOW_VERSION = 4.11.1
8SHADOW_SITE = https://github.com/shadow-maint/shadow/releases/download/v$(SHADOW_VERSION)
9SHADOW_SOURCE = shadow-$(SHADOW_VERSION).tar.xz
10SHADOW_LICENSE = BSD-3-Clause
11SHADOW_LICENSE_FILES = COPYING
12
13SHADOW_CONF_OPTS += \
14	--disable-man \
15	--without-btrfs \
16	--without-skey \
17	--without-tcb
18
19ifeq ($(BR2_STATIC_LIBS),y)
20SHADOW_CONF_OPTS += --enable-static
21else
22SHADOW_CONF_OPTS += --disable-static
23endif
24
25ifeq ($(BR2_SHARED_LIBS),y)
26SHADOW_CONF_OPTS += --enable-shared
27else
28SHADOW_CONF_OPTS += --disable-shared
29endif
30
31ifeq ($(BR2_PACKAGE_SHADOW_SHADOWGRP),y)
32SHADOW_CONF_OPTS += --enable-shadowgrp
33else
34SHADOW_CONF_OPTS += --disable-shadowgrp
35endif
36
37ifeq ($(BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID),y)
38SHADOW_CONF_OPTS += --enable-account-tools-setuid
39SHADOW_ACCOUNT_TOOLS_SETUID = \
40	/usr/sbin/chgpasswd f 4755 0 0 - - - - - \
41	/usr/sbin/chpasswd f 4755 0 0 - - - - - \
42	/usr/sbin/groupadd f 4755 0 0 - - - - - \
43	/usr/sbin/groupdel f 4755 0 0 - - - - - \
44	/usr/sbin/groupmod f 4755 0 0 - - - - - \
45	/usr/sbin/newusers f 4755 0 0 - - - - - \
46	/usr/sbin/useradd f 4755 0 0 - - - - - \
47	/usr/sbin/usermod f 4755 0 0 - - - - -
48else
49SHADOW_CONF_OPTS += --disable-account-tools-setuid
50endif
51
52ifeq ($(BR2_PACKAGE_SHADOW_UTMPX),y)
53SHADOW_CONF_OPTS += --enable-utmpx
54else
55SHADOW_CONF_OPTS += --disable-utmpx
56endif
57
58ifeq ($(BR2_PACKAGE_SHADOW_SUBORDINATE_IDS),y)
59SHADOW_CONF_OPTS += --enable-subordinate-ids
60SHADOW_SUBORDINATE_IDS_PERMISSIONS =  \
61	/usr/bin/newuidmap f 4755 0 0 - - - - - \
62	/usr/bin/newgidmap f 4755 0 0 - - - - -
63else
64SHADOW_CONF_OPTS += --disable-subordinate-ids
65endif
66
67ifeq ($(BR2_PACKAGE_ACL),y)
68SHADOW_CONF_OPTS += --with-acl
69SHADOW_DEPENDENCIES += acl
70else
71SHADOW_CONF_OPTS += --without-acl
72endif
73
74ifeq ($(BR2_PACKAGE_ATTR),y)
75SHADOW_CONF_OPTS += --with-attr
76SHADOW_DEPENDENCIES += attr
77else
78SHADOW_CONF_OPTS += --without-attr
79endif
80
81ifeq ($(BR2_PACKAGE_AUDIT),y)
82SHADOW_CONF_OPTS += --with-audit
83SHADOW_DEPENDENCIES += audit
84else
85SHADOW_CONF_OPTS += --without-audit
86endif
87
88ifeq ($(BR2_PACKAGE_CRACKLIB),y)
89SHADOW_CONF_OPTS += --with-libcrack
90SHADOW_DEPENDENCIES += cracklib
91else
92SHADOW_CONF_OPTS += --without-libcrack
93endif
94
95ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
96SHADOW_CONF_OPTS += --with-selinux
97SHADOW_DEPENDENCIES += libselinux libsemanage
98else
99SHADOW_CONF_OPTS += --without-selinux
100endif
101
102ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
103SHADOW_CONF_OPTS += --with-libpam
104SHADOW_DEPENDENCIES += linux-pam
105else
106SHADOW_CONF_OPTS += --without-libpam
107endif
108
109ifeq ($(BR2_ENABLE_LOCALE),y)
110SHADOW_CONF_OPTS += --enable-nls
111else
112SHADOW_CONF_OPTS += --disable-nls
113endif
114
115ifeq ($(BR2_PACKAGE_SHADOW_SHA_CRYPT),y)
116SHADOW_CONF_OPTS += --with-sha-crypt
117else
118SHADOW_CONF_OPTS += --without-sha-crypt
119endif
120
121ifeq ($(BR2_PACKAGE_SHADOW_BCRYPT),y)
122SHADOW_CONF_OPTS += --with-bcrypt
123else
124SHADOW_CONF_OPTS += --without-bcrypt
125endif
126
127ifeq ($(BR2_PACKAGE_SHADOW_YESCRYPT),y)
128SHADOW_CONF_OPTS += --with-yescrypt
129else
130SHADOW_CONF_OPTS += --without-yescrypt
131endif
132
133ifeq ($(BR2_PACKAGE_SHADOW_NSCD),y)
134SHADOW_CONF_OPTS += --with-nscd
135else
136SHADOW_CONF_OPTS += --without-nscd
137endif
138
139ifeq ($(BR2_PACKAGE_SHADOW_SSSD),y)
140SHADOW_CONF_OPTS += --with-sssd
141else
142SHADOW_CONF_OPTS += --without-sssd
143endif
144
145ifeq ($(BR2_PACKAGE_SHADOW_GROUP_NAME_MAX_LENGTH),0)
146SHADOW_CONF_OPTS += --without-group-name-max-length
147else
148SHADOW_CONF_OPTS += --with-group-name-max-length=$(BR2_PACKAGE_SHADOW_GROUP_NAME_MAX_LENGTH)
149endif
150
151ifeq ($(BR2_PACKAGE_SHADOW_SU),y)
152SHADOW_CONF_OPTS += --with-su
153SHADOW_SU_PERMISSIONS = /bin/su f 4755 0 0 - - - - -
154else
155SHADOW_CONF_OPTS += --without-su
156endif
157
158define SHADOW_PERMISSIONS
159	/usr/bin/chage f 4755 0 0 - - - - -
160	/usr/bin/chfn f 4755 0 0 - - - - -
161	/usr/bin/chsh f 4755 0 0 - - - - -
162	/usr/bin/expiry f 4755 0 0 - - - - -
163	/usr/bin/gpasswd f 4755 0 0 - - - - -
164	/usr/bin/newgrp f 4755 0 0 - - - - -
165	/usr/bin/passwd f 4755 0 0 - - - - -
166	$(SHADOW_ACCOUNT_TOOLS_SETUID)
167	$(SHADOW_SUBORDINATE_IDS_PERMISSIONS)
168	$(SHADOW_SU_PERMISSIONS)
169endef
170
171define SHADOW_INSTALL_TARGET_CMDS
172	$(INSTALL) -m 0755 -D $(@D)/src/passwd $(TARGET_DIR)/usr/bin/passwd
173	$(INSTALL) -m 0755 -D $(@D)/src/useradd $(TARGET_DIR)/usr/bin/useradd
174	$(INSTALL) -m 0755 -D $(@D)/src/userdel $(TARGET_DIR)/usr/bin/userdel
175	$(INSTALL) -m 0755 -D $(@D)/src/usermod $(TARGET_DIR)/usr/bin/usermod
176	$(INSTALL) -m 0755 -D $(@D)/src/groupadd $(TARGET_DIR)/usr/bin/groupadd
177	$(INSTALL) -m 0755 -D $(@D)/src/groupdel $(TARGET_DIR)/usr/bin/groupdel
178	$(INSTALL) -m 0755 -D $(@D)/src/groupmod $(TARGET_DIR)/usr/bin/groupmod
179	$(INSTALL) -m 0755 -D $(@D)/src/chage $(TARGET_DIR)/usr/bin/chage
180	$(INSTALL) -m 0755 -D $(@D)/src/expiry $(TARGET_DIR)/usr/bin/expiry
181	$(INSTALL) -m 0755 -D $(@D)/src/gpasswd $(TARGET_DIR)/usr/bin/gpasswd
182	$(INSTALL) -m 0755 -D $(@D)/src/newuidmap $(TARGET_DIR)/usr/bin/newuidmap
183	$(INSTALL) -m 0755 -D $(@D)/src/chgpasswd $(TARGET_DIR)/usr/sbin/chgpasswd
184endef
185
186$(eval $(autotools-package))
187