#
|
|
# 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))
|