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