Subject: [PATCH] Add libxcrypt
From: Allan Adair <[email-masked]>
To: [email-masked]
Date: Fri, 04 Mar 2022 12:15:04 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

I would like to add a libxcrypt package for guix. In several major linux
distributions it has become the default crypt library. I think it is that
case for Debian, Fedora, Gentoo, and perhaps others. In any case, it's
particularly useful for those who want access to numerous hashing
algorithms through crypt calls.
From 2879564bdb9c87f89dcefa07b5e3bdfcd07d9914 Mon Sep 17 00:00:00 2001
From: Allan Adair <[email-masked]>
Date: Fri, 4 Mar 2022 12:01:42 +0100
Subject: [PATCH] Add libxcrypt

libxcrypt is an extended crypt library for descrypt, md5crypt, bcrypt, and
others.
---
 gnu/packages/crypto.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index f07be01c97..4568196abb 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2021 Ellis Kenyő <[email-masked]>
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;; Copyright © 2021 Brendan Tildesley <[email-masked]>
+;;; Copyright © 2022 Allan Adair <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -73,6 +74,7 @@ (define-module (gnu packages crypto)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-check)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
@@ -1607,3 +1609,37 @@ (define-public b3sum
     ;; Users may choose between these two licenses when redistributing the
     ;; program provided by this package.
     (license (list license:cc0 license:asl2.0))))
+
+(define-public libxcrypt
+  (package
+    (name "libxcrypt")
+    (version "4.4.28")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/besser82/libxcrypt")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0pacj0s1hlv22iz0k2bkysjslc6rbrgmvmsr02qq17lp4d2gw5rs"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python3" ,python-3)
+       ("python-passlib" ,python-passlib)))
+    (synopsis
+     "Extended crypt library for descrypt, md5crypt, bcrypt, and others")
+    (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.")
+    (home-page "https://github.com/besser82/libxcrypt")
+    (license license:lgpl2.1)))
-- 
2.34.0