libxcrypt: add

libxcrypt is an external version of libc's libcrypt. It allows to use
algorithms now available with the libc. musl in OpenWrt for example
patches out several algorithms for size reasons. But for shadow-utils,
size does not really matter.

The hashes are set to solaris as that default gives a good balance
between compatibility and size. It includes:

bcrypt,
bcrypt_a,
sha512crypt,
sha256crypt,
md5crypt,
descrypt

The STRONG default adds several algorithms not supported by
shadow-utils.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2020-06-16 16:18:38 -07:00
parent 83f9bd1ea0
commit bd5acfb8e8
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
1 changed files with 55 additions and 0 deletions

55
libs/libxcrypt/Makefile Normal file
View File

@ -0,0 +1,55 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libxcrypt
PKG_VERSION:=4.4.16
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/besser82/libxcrypt/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=a98f65b8baffa2b5ba68ee53c10c0a328166ef4116bce3baece190c8ce01f375
PKG_MAINTAINER:=
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=COPYING.LIB
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libxcrypt
SECTION:=libs
CATEGORY:=Libraries
URL:=https://github.com/besser82/libxcrypt
TITLE:=Extended crypt library
BUILDONLY:=1
endef
define Package/libxcrypt/description
libxcrypt is a modern library for one-way hashing of passwords. It supports
a wide variety of both modern and historical hashing methods: yescrypt,
gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, md5crypt, SunMD5,
sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. It provides the traditional
Unix crypt and crypt_r interfaces, as well as a set of extended interfaces
pioneered by Openwall Linux, crypt_rn, crypt_ra, crypt_gensalt,
crypt_gensalt_rn, and crypt_gensalt_ra.
endef
CONFIGURE_ARGS += \
--disable-shared \
--disable-failure-tokens \
--disable-xcrypt-compat-files \
--disable-obsolete-api \
--enable-hashes=solaris
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/libxcrypt
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcrypt.{a,la} $(1)/usr/lib/libxcrypt
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*crypt.pc $(1)/usr/lib/pkgconfig/
endef
$(eval $(call BuildPackage,libxcrypt))