gnu: Add nss-certs-for-test.

* gnu/packages/certs.scm (nss-certs-for-test): New variable.
* gnu/packages/python-web.scm (python-requests-next)[native-inputs]: Add it.

Change-Id: Id808e058835556717a6585ecd86dd14d0d2a5039
This commit is contained in:
Zheng Junjie 2024-07-16 01:20:44 +08:00 committed by Ludovic Courtès
parent 4f13ad4aa4
commit 38e27332d6
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 49 additions and 0 deletions

View file

@ -7,6 +7,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; 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")

View file

@ -66,6 +66,7 @@
;;; Copyright © 2024 normally_js <normally_js@posteo.net>
;;; Copyright © 2024 Markku Korkeala <markku.korkeala@iki.fi>
;;; Copyright © 2024 Nguyễn Gia Phong <mcsinyx@disroot.org>
;;; 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