libxcrypt: add
authorRosen Penev <rosenp@gmail.com>
Tue, 16 Jun 2020 23:18:38 +0000 (16:18 -0700)
committerRosen Penev <rosenp@gmail.com>
Tue, 23 Jun 2020 01:33:16 +0000 (18:33 -0700)
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>
libs/libxcrypt/Makefile [new file with mode: 0644]

diff --git a/libs/libxcrypt/Makefile b/libs/libxcrypt/Makefile
new file mode 100644 (file)
index 0000000..acfde2f
--- /dev/null
@@ -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))