diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 449be0b35a..e2de6b168b 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Efraim Flashner ;;; Copyright © 2021 Raghav Gururajan +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu packages certs) #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE)) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) @@ -188,6 +190,49 @@ (define-public nss-certs (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") (license license:mpl2.0))) +(define-public nss-certs-for-test + (hidden-package + (package + (inherit nss-certs) + (name "nss-certs-for-test") + (source #f) + (build-system trivial-build-system) + (native-inputs (list nss-certs)) + (inputs '()) + (propagated-inputs '()) + (arguments + (list #:modules '((guix build utils) + (rnrs io ports) + (srfi srfi-26)) + #:builder + #~(begin + (use-modules (guix build utils) + (rnrs io ports) + (srfi srfi-26)) + (define certs-dir (string-append #$output "/etc/ssl/certs/")) + (define ca-files + (find-files (string-append #+(this-package-native-input + "nss-certs") + "/etc/ssl/certs") + (lambda (file stat) + (string-suffix? ".pem" file)))) + (define (concatenate-files files result) + "Make RESULT the concatenation of all of FILES." + (define (dump file port) + (display (call-with-input-file file get-string-all) port) + (newline port)) + (call-with-output-file result + (lambda (port) + (for-each (cut dump <> port) files)))) + + (mkdir-p certs-dir) + (concatenate-files + ca-files (string-append certs-dir "/ca-certificates.crt")) + (for-each (cut install-file <> certs-dir) ca-files)))) + (native-search-paths + (list $SSL_CERT_DIR + $SSL_CERT_FILE))))) + (define-public le-certs (package (name "le-certs") diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 5bc57fe0e5..1ca13c9bf9 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -66,6 +66,7 @@ ;;; Copyright © 2024 normally_js ;;; Copyright © 2024 Markku Korkeala ;;; Copyright © 2024 Nguyễn Gia Phong +;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ (define-module (gnu packages python-web) #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages certs) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crates-io) @@ -3677,6 +3679,8 @@ (define-public python-requests-next (base32 "0q5742pnibwy74169kacin3dmqg9jzmzk7qab5aq5caffcbm8djm")))) (build-system python-build-system) + (native-inputs + (list nss-certs-for-test)) (propagated-inputs (list python-certifi python-charset-normalizer