Ricardo Wurmus <rek...@elephly.net> writes:

> Zheng Junjie <zhengjun...@iscas.ac.cn> writes:
>
>> This patch should fix it.
>
> Thank you for the patch!
>
>> From f41bf905cfb1395a53cfc0d79315148ac9ba0a79 Mon Sep 17 00:00:00 2001
>> Message-ID: 
>> <f41bf905cfb1395a53cfc0d79315148ac9ba0a79.1721059686.git.zhengjun...@iscas.ac.cn>
>> From: Zheng Junjie <zhengjun...@iscas.ac.cn>
>> Date: Tue, 16 Jul 2024 00:06:39 +0800
>> Subject: [PATCH] gnu: python-requests-next: Fix build.
>>
>> * gnu/packages/python-web.scm (python-requests-next): Fix build.
>> [native-inputs]: Add nss-certs.
>> [arguments]: Add set-SSL_CERT_FILE phase.
>> <#:modules>: Adjust it.
>
> This seems rather complicated for something that may have to be added to
> a number of packages.  Would it make sense to create a package
> containing this bundle file, set a search path specification, and add
> that to the packages needing it?

Indeed, please try these patches

From 0ad24103d82147eece6bd546fc31a9f81e2d17fd Mon Sep 17 00:00:00 2001
Message-ID: <0ad24103d82147eece6bd546fc31a9f81e2d17fd.1721063765.git.zhengjun...@iscas.ac.cn>
From: Zheng Junjie <zhengjun...@iscas.ac.cn>
Date: Tue, 16 Jul 2024 01:13:35 +0800
Subject: [PATCH 1/2] gnu: Add nss-certs-for-test.

* gnu/packages/certs.scm (nss-certs-for-test): New variable.

Change-Id: Id808e058835556717a6585ecd86dd14d0d2a5039
---
 gnu/packages/certs.scm | 45 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

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 <maxim.courno...@gmail.com>
 ;;; Copyright © 2021 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2021 Raghav Gururajan <r...@raghavgururajan.name>
+;;; Copyright © 2024 Zheng Junjie <873216...@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")

base-commit: 05e6bd3efe1b03190839d2b91b09fa768c4ef83c
-- 
2.45.2

From 5417197e22dd7efa6732ea8de188f2f94bfc3ccc Mon Sep 17 00:00:00 2001
Message-ID: <5417197e22dd7efa6732ea8de188f2f94bfc3ccc.1721063765.git.zhengjun...@iscas.ac.cn>
In-Reply-To: <0ad24103d82147eece6bd546fc31a9f81e2d17fd.1721063765.git.zhengjun...@iscas.ac.cn>
References: <0ad24103d82147eece6bd546fc31a9f81e2d17fd.1721063765.git.zhengjun...@iscas.ac.cn>
From: Zheng Junjie <zhengjun...@iscas.ac.cn>
Date: Tue, 16 Jul 2024 00:06:39 +0800
Subject: [PATCH 2/2] gnu: python-requests-next: Fix build.

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

Change-Id: I1592ef3329fdcd681df618bb12fbc205aa028be3
---
 gnu/packages/python-web.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index bca7da9139..9367dfba34 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -65,6 +65,7 @@
 ;;; Copyright © 2024 Sharlatan Hellseher <sharlata...@gmail.com>
 ;;; Copyright © 2024 normally_js <normally...@posteo.net>
 ;;; Copyright © 2024 Markku Korkeala <markku.korke...@iki.fi>
+;;; Copyright © 2024 Zheng Junjie <873216...@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -94,6 +95,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 curl)
@@ -3614,6 +3616,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
-- 
2.45.2

Attachment: signature.asc
Description: PGP signature

Reply via email to