- #
- # Copyright (C) 2008-2015 OpenWrt.org
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
-
- include $(TOPDIR)/rules.mk
-
- PKG_NAME:=shadow
- PKG_VERSION:=4.8.1
- PKG_RELEASE:=2
-
- PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
- PKG_SOURCE_URL:=https://github.com/shadow-maint/shadow/releases/download/$(PKG_VERSION)
- PKG_HASH:=a3ad4630bdc41372f02a647278a8c3514844295d36eefe68ece6c3a641c1ae62
-
- PKG_MAINTAINER:=
- PKG_LICENSE:=BSD-3-Clause
- PKG_LICENSE_FILES:=COPYING
- PKG_CPE_ID:=cpe:/a:debian:shadow
-
- PKG_INSTALL:=1
- PKG_BUILD_PARALLEL:=1
-
- include $(INCLUDE_DIR)/package.mk
- include $(INCLUDE_DIR)/nls.mk
-
- SHADOW_APPLETS := \
- chage chfn chgpasswd chpasswd chsh expiry faillog gpasswd \
- groupadd groupdel groupmems groupmod groups grpck grpconv grpunconv \
- lastlog login logoutd newgidmap newgrp newuidmap newusers nologin \
- passwd pwck pwconv pwunconv su \
- useradd userdel usermod vipw
-
- CONFIGURE_ARGS += \
- --without-audit \
- --without-libpam \
- --without-selinux \
- --without-acl \
- --without-attr \
- --without-tcb \
- --without-nscd \
- --with$(if $(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),,out)-bcrypt
-
- CONFIGURE_VARS += \
- ac_cv_func_ruserok=no
-
- define Package/shadow/Default
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=The PLD Linux shadow utilities
- URL:=https://github.com/shadow-maint/shadow
- endef
-
- define Package/shadow
- $(call Package/shadow/Default)
- TITLE+= (all)
- DEPENDS:=$(foreach u,$(SHADOW_APPLETS),+shadow-$(u))
- HIDDEN:=1
- endef
-
- define Package/shadow/description
- Full versions of standard shadow utilities. Normally, you would not
- use this package, since the functionality in BusyBox is more than
- sufficient and much smaller.
- endef
-
- define Package/shadow/install
- true
- endef
-
- define Package/shadow-utils
- $(call Package/shadow/Default)
- endef
-
- define Package/shadow-utils/config
- menu "Select shadow utilities"
- depends on PACKAGE_shadow-utils
-
- config shadow-all
- bool "Include all PLD shadow utilities"
- select PACKAGE_shadow
- default y
-
- comment "Utilities"
-
- $(foreach u,$(SHADOW_APPLETS), \
- config PACKAGE_shadow-$(u)
- prompt "Full PLD version of $(u) utility"
-
- )
-
- endmenu
-
- endef
-
- Package/shadow-utils/description = $(Package/shadow/description)
-
- define Package/shadow-common
- $(call Package/shadow/Default)
- TITLE:=Shared definitions for the PLD Linux shadow utilities
- DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS)
- HIDDEN:=1
- endef
-
- define GenPlugin
- define Package/shadow-$(1)
- $(call Package/shadow/Default)
- TITLE:=Utility $(1) from the PLD Linux shadow utilities
- DEPENDS:=+shadow-common
- HIDDEN:=1
- endef
-
- define Package/shadow-$(1)/description
- Full version of standard $(1) utility. Normally, you would not use this
- package, since the functionality in BusyBox is more than sufficient.
- endef
- endef
-
- $(foreach u,$(SHADOW_APPLETS),$(eval $(call GenPlugin,$(u))))
-
- define Package/shadow-common/conffiles
- /etc/login.defs
- endef
-
- define Package/shadow-common/install
- $(INSTALL_DIR) $(1)/etc
- $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/login.defs $(1)/etc/
- $(SED) 's,SU_NAME,#SU_NAME,g' $(1)/etc/login.defs
- ifeq ($(CONFIG_USE_MUSL),y)
- ifeq ($(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),y)
- $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD BCRYPT,g' $(1)/etc/login.defs
- else
- $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD MD5,g' $(1)/etc/login.defs
- endif # CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK
- else
- $(SED) 's,#ENCRYPT_METHOD DES,ENCRYPT_METHOD SHA512,g' $(1)/etc/login.defs
- endif # CONFIG_USE_MUSL
- endef
-
- define Package/shadow-utils/install
- true
- endef
-
- define BuildPlugin
- define Package/shadow-$(1)/install
- [ -x "$(PKG_INSTALL_DIR)/usr/sbin/$(1)" ] && { \
- $(INSTALL_DIR) $$(1)/usr/sbin; \
- $(CP) $(PKG_INSTALL_DIR)/usr/sbin/$(1) $$(1)/usr/sbin/; \
- } || { \
- $(INSTALL_DIR) $$(1)/usr/bin; \
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin/; \
- }
- endef
-
- $$(eval $$(call BuildPackage,shadow-$(1)))
- endef
-
- $(foreach u,$(SHADOW_APPLETS),$(eval $(call BuildPlugin,$(u))))
-
- $(eval $(call BuildPackage,shadow-utils))
- $(eval $(call BuildPackage,shadow-common))
- $(eval $(call BuildPackage,shadow))
|