From 4494019be5a4f0aba14f689ef6c283e1b94618fb Mon Sep 17 00:00:00 2001 From: Josselin Poiret Date: Fri, 2 Feb 2024 12:15:01 +0100 Subject: gnu: python: Add libxcrypt dependency. * gnu/packages/python.scm (python-2.7): Add libxcrypt dependency. Change-Id: I23d99900fd6bbd2f9a88a3efe0c8deac01ef160f --- gnu/packages/python.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e4a84609c8..5b3a7196e6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -84,6 +84,7 @@ (define-module (gnu packages python) #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages dbm) #:use-module (gnu packages libffi) #:use-module (gnu packages pkg-config) @@ -210,7 +211,20 @@ (define-public python-2.7 "CFLAGS=-fno-semantic-interposition" (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib" - " -fno-semantic-interposition")) + " -fno-semantic-interposition") + ;; Add a reference to libxcrypt in LIBS so that the sysconfigdata + ;; file records it and propagates it to programs linking against + ;; Python. + (let ((libxcrypt + (false-if-exception + (dirname + (search-input-file %build-inputs + "lib/libcrypt.so.1"))))) + (string-append + "LIBS=" + (if libxcrypt + (string-append "-L" libxcrypt) + "")))) ;; With no -j argument tests use all available cpus, so provide one. #:make-flags (list (string-append @@ -311,6 +325,18 @@ (define-public python-2.7 '("email/test" "ctypes/test" "unittest/test" "tkinter/test" "sqlite3/test" "bsddb/test" "lib-tk/test" "json/tests" "distutils/tests")))))))) + (add-after 'install 'add-libxcrypt-reference-pkgconfig + (lambda* (#:key inputs outputs #:allow-other-keys) + (define out (assoc-ref outputs "out")) + (define libxcrypt + (false-if-exception + (dirname (search-input-file inputs "lib/libcrypt.so.1")))) + (when libxcrypt + (substitute* + (find-files (string-append out "/lib/pkgconfig") + ".*\\.pc") + (("-lcrypt") + (string-append "-L" libxcrypt " -lcrypt")))))) (add-after 'remove-tests 'move-tk-inter (lambda* (#:key outputs #:allow-other-keys) ;; When Tkinter support is built move it to a separate output so @@ -386,6 +412,8 @@ (define-public python-2.7 expat gdbm libffi ; for ctypes + libxcrypt ; crypto module slated for removal in 3.13, re-enable + ; python tests of libxcrypt when that happens sqlite ; for sqlite extension openssl-1.1 readline -- cgit v1.2.3