summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-05-22 09:15:47 +0900
committerAndreas Enge <andreas@enge.fr>2025-08-17 22:34:42 +0200
commitaf9e540b716402df983935eeabedc4572d6565ce (patch)
treecf4c2def70f869a82625b147dacf944aa414766b
parent4918534be1ffc1896a59e2fb69a9eaaa3140a0b8 (diff)
gnu: nss-certs: Relocate to (gnu packages nss).
This is made so that the source can be shared without introducing module circular dependencies. * gnu/packages/certs.scm (nss-certs) (nss-certs-for-test): Move to... * gnu/packages/nss.scm: ... here. Adjust the module imports via: git grep -l '(gnu packages certs)' | xargs sed 's/(gnu packages certs)/(gnu packages nss)/' -i Change-Id: I56d7bc52ddcdffbced8a162e8db8ea5071b0cb0f
-rw-r--r--gnu/packages/astronomy.scm2
-rw-r--r--gnu/packages/benchmark.scm2
-rw-r--r--gnu/packages/bioinformatics.scm1
-rw-r--r--gnu/packages/bittorrent.scm2
-rw-r--r--gnu/packages/certs.scm191
-rw-r--r--gnu/packages/check.scm2
-rw-r--r--gnu/packages/crates-io.scm2
-rw-r--r--gnu/packages/databases.scm2
-rw-r--r--gnu/packages/disk.scm2
-rw-r--r--gnu/packages/geo.scm2
-rw-r--r--gnu/packages/java.scm2
-rw-r--r--gnu/packages/messaging.scm2
-rw-r--r--gnu/packages/nim.scm2
-rw-r--r--gnu/packages/nss.scm91
-rw-r--r--gnu/packages/pypy.scm2
-rw-r--r--gnu/packages/python-check.scm2
-rw-r--r--gnu/packages/python-crypto.scm2
-rw-r--r--gnu/packages/python-web.scm2
-rw-r--r--gnu/packages/python-xyz.scm2
-rw-r--r--gnu/packages/sphinx.scm2
-rw-r--r--gnu/packages/textutils.scm1
-rw-r--r--gnu/packages/tls.scm1
-rw-r--r--gnu/packages/video.scm2
-rw-r--r--gnu/packages/web.scm2
-rw-r--r--gnu/services/admin.scm2
-rw-r--r--gnu/services/telephony.scm2
-rw-r--r--gnu/system.scm2
-rw-r--r--gnu/system/hurd.scm2
-rw-r--r--gnu/system/images/pine64.scm2
29 files changed, 156 insertions, 177 deletions
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 0960b567a5c..0c63e302cb2 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -43,7 +43,7 @@
43 #:use-module (gnu packages boost) 43 #:use-module (gnu packages boost)
44 #:use-module (gnu packages build-tools) 44 #:use-module (gnu packages build-tools)
45 #:use-module (gnu packages c) 45 #:use-module (gnu packages c)
46 #:use-module (gnu packages certs) 46 #:use-module (gnu packages nss)
47 #:use-module (gnu packages check) 47 #:use-module (gnu packages check)
48 #:use-module (gnu packages cmake) 48 #:use-module (gnu packages cmake)
49 #:use-module (gnu packages compression) 49 #:use-module (gnu packages compression)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 07de4cae645..c20722245f7 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -47,7 +47,7 @@
47 #:use-module (gnu packages base) 47 #:use-module (gnu packages base)
48 #:use-module (gnu packages bash) 48 #:use-module (gnu packages bash)
49 #:use-module (gnu packages c) 49 #:use-module (gnu packages c)
50 #:use-module (gnu packages certs) 50 #:use-module (gnu packages nss)
51 #:use-module (gnu packages check) 51 #:use-module (gnu packages check)
52 #:use-module (gnu packages compression) 52 #:use-module (gnu packages compression)
53 #:use-module (gnu packages databases) 53 #:use-module (gnu packages databases)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 55087ed54ae..e68c8018667 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -137,6 +137,7 @@
137 #:use-module (gnu packages mpi) 137 #:use-module (gnu packages mpi)
138 #:use-module (gnu packages ncurses) 138 #:use-module (gnu packages ncurses)
139 #:use-module (gnu packages node) 139 #:use-module (gnu packages node)
140 #:use-module (gnu packages nss)
140 #:use-module (gnu packages ocaml) 141 #:use-module (gnu packages ocaml)
141 #:use-module (gnu packages pcre) 142 #:use-module (gnu packages pcre)
142 #:use-module (gnu packages package-management) 143 #:use-module (gnu packages package-management)
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index ac8e496201f..c2d2fe0ff2e 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -59,7 +59,7 @@
59 #:use-module (gnu packages autotools) 59 #:use-module (gnu packages autotools)
60 #:use-module (gnu packages bash) 60 #:use-module (gnu packages bash)
61 #:use-module (gnu packages boost) 61 #:use-module (gnu packages boost)
62 #:use-module (gnu packages certs) 62 #:use-module (gnu packages nss)
63 #:use-module (gnu packages check) 63 #:use-module (gnu packages check)
64 #:use-module (gnu packages cmake) 64 #:use-module (gnu packages cmake)
65 #:use-module (gnu packages compression) 65 #:use-module (gnu packages compression)
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index e2de6b168b4..aed87ea144e 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -1,13 +1,8 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2016-2017, 2021-2022 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2016-2017, 2021-2022 Ludovic Courtès <ludo@gnu.org>
5;;; Copyright © 2017 Leo Famulari <leo@famulari.name> 3;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
6;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
7;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> 4;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
8;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
9;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> 5;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
10;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
11;;; 6;;;
12;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
13;;; 8;;;
@@ -26,7 +21,6 @@
26 21
27(define-module (gnu packages certs) 22(define-module (gnu packages certs)
28 #:use-module ((guix licenses) #:prefix license:) 23 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
30 #:use-module (guix packages) 24 #:use-module (guix packages)
31 #:use-module (guix utils) 25 #:use-module (guix utils)
32 #:use-module (guix download) 26 #:use-module (guix download)
@@ -36,11 +30,51 @@
36 #:use-module (guix build-system gnu) 30 #:use-module (guix build-system gnu)
37 #:use-module (guix build-system trivial) 31 #:use-module (guix build-system trivial)
38 #:use-module (gnu packages) 32 #:use-module (gnu packages)
33 #:use-module (gnu packages nss)
39 #:use-module (gnu packages curl) 34 #:use-module (gnu packages curl)
40 #:use-module (gnu packages python) 35 #:use-module (gnu packages python)
41 #:use-module (gnu packages perl) 36 #:use-module (gnu packages perl)
42 #:use-module (gnu packages tls)) 37 #:use-module (gnu packages tls))
43 38
39(define-public certdata2pem
40 (let ((revision "1")
41 (commit "4c576f350f44186d439179f63d5be19f710a73f5"))
42 (package
43 (name "certdata2pem")
44 (version "0.0.0") ;no version
45 (source (origin
46 (method url-fetch)
47 (uri (string-append
48 "https://raw.githubusercontent.com/sabotage-linux/sabotage/"
49 commit "/KEEP/certdata2pem.c"))
50 (sha256
51 (base32
52 "1rywp29q4l1cs2baplkbcravxqs4kw2cys4yifhfznbc210pskq6"))))
53 (build-system gnu-build-system)
54 (arguments
55 `(#:phases (modify-phases %standard-phases
56 (delete 'configure)
57 (add-before 'build 'fix-extension
58 (lambda _
59 (substitute* "certdata2pem.c"
60 (("\\.crt")
61 ".pem"))))
62 (replace 'build
63 (lambda _
64 (invoke ,(cc-for-target) "certdata2pem.c"
65 "-o" "certdata2pem")))
66 (delete 'check) ;no test suite
67 (replace 'install
68 (lambda* (#:key outputs #:allow-other-keys)
69 (let ((out (assoc-ref outputs "out")))
70 (install-file "certdata2pem"
71 (string-append out "/bin"))))))))
72 (home-page "https://github.com/sabotage-linux/")
73 (synopsis "Utility to split TLS certificates data into multiple PEM files")
74 (description "This is a C version of the certdata2pem Python utility
75that was originally contributed to Debian.")
76 (license license:isc))))
77
44(define-public desec-certbot-hook 78(define-public desec-certbot-hook
45 (let ((commit "68da7abc0793602fd336962a7e2348b57c5d6fd6") 79 (let ((commit "68da7abc0793602fd336962a7e2348b57c5d6fd6")
46 (revision "0")) 80 (revision "0"))
@@ -88,151 +122,6 @@ port forwarding to your local machine.")
88 (home-page "https://desec.io") 122 (home-page "https://desec.io")
89 (license license:expat)))) 123 (license license:expat))))
90 124
91(define-public certdata2pem
92 (let ((revision "1")
93 (commit "4c576f350f44186d439179f63d5be19f710a73f5"))
94 (package
95 (name "certdata2pem")
96 (version "0.0.0") ;no version
97 (source (origin
98 (method url-fetch)
99 (uri (string-append
100 "https://raw.githubusercontent.com/sabotage-linux/sabotage/"
101 commit "/KEEP/certdata2pem.c"))
102 (sha256
103 (base32
104 "1rywp29q4l1cs2baplkbcravxqs4kw2cys4yifhfznbc210pskq6"))))
105 (build-system gnu-build-system)
106 (arguments
107 `(#:phases (modify-phases %standard-phases
108 (delete 'configure)
109 (add-before 'build 'fix-extension
110 (lambda _
111 (substitute* "certdata2pem.c"
112 (("\\.crt")
113 ".pem"))))
114 (replace 'build
115 (lambda _
116 (invoke ,(cc-for-target) "certdata2pem.c"
117 "-o" "certdata2pem")))
118 (delete 'check) ;no test suite
119 (replace 'install
120 (lambda* (#:key outputs #:allow-other-keys)
121 (let ((out (assoc-ref outputs "out")))
122 (install-file "certdata2pem"
123 (string-append out "/bin"))))))))
124 (home-page "https://github.com/sabotage-linux/")
125 (synopsis "Utility to split TLS certificates data into multiple PEM files")
126 (description "This is a C version of the certdata2pem Python utility
127that was originally contributed to Debian.")
128 (license license:isc))))
129
130(define-public nss-certs
131 (package
132 (name "nss-certs")
133 ;; FIXME We used to refer to the nss package here, but that eventually caused
134 ;; module cycles. The below is a quick copy-paste job that must be kept in
135 ;; sync manually. Surely there's a better way…?
136 (version "3.99")
137 (source (origin
138 (method url-fetch)
139 (uri (let ((version-with-underscores
140 (string-join (string-split version #\.) "_")))
141 (string-append
142 "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
143 "releases/NSS_" version-with-underscores "_RTM/src/"
144 "nss-" version ".tar.gz")))
145 (sha256
146 (base32
147 "1g89ig40gfi1sp02gybvl2z818lawcnrqjzsws36cdva834c5maw"))
148 ;; Create nss.pc and nss-config.
149 (patches (search-patches "nss-3.56-pkgconfig.patch"
150 "nss-getcwd-nonnull.patch"
151 "nss-increase-test-timeout.patch"))
152 (modules '((guix build utils)))
153 (snippet
154 '(begin
155 ;; Delete the bundled copy of these libraries.
156 (delete-file-recursively "nss/lib/zlib")
157 (delete-file-recursively "nss/lib/sqlite")))))
158 (build-system gnu-build-system)
159 (outputs '("out"))
160 (native-inputs
161 (list certdata2pem openssl))
162 (inputs '())
163 (propagated-inputs '())
164 (arguments
165 (list #:modules '((guix build gnu-build-system)
166 (guix build utils)
167 (rnrs io ports)
168 (srfi srfi-26))
169 #:phases
170 #~(modify-phases
171 (map (cut assq <> %standard-phases)
172 '(set-paths install-locale unpack))
173 (add-after 'unpack 'install
174 (lambda _
175 (let ((certsdir (string-append #$output
176 "/etc/ssl/certs/")))
177 (with-directory-excursion "nss/lib/ckfw/builtins/"
178 (unless (file-exists? "blacklist.txt")
179 (call-with-output-file "blacklist.txt" (const #t)))
180 ;; Extract selected single certificates from blob.
181 (invoke "certdata2pem")
182 ;; Copy .pem files into the output.
183 (for-each (cut install-file <> certsdir)
184 (find-files "." ".*\\.pem$")))
185 (invoke "openssl" "rehash" certsdir)))))))
186 (synopsis "CA certificates from Mozilla")
187 (description
188 "This package provides certificates for Certification Authorities (CA)
189taken from the NSS package and thus ultimately from the Mozilla project.")
190 (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
191 (license license:mpl2.0)))
192
193(define-public nss-certs-for-test
194 (hidden-package
195 (package
196 (inherit nss-certs)
197 (name "nss-certs-for-test")
198 (source #f)
199 (build-system trivial-build-system)
200 (native-inputs (list nss-certs))
201 (inputs '())
202 (propagated-inputs '())
203 (arguments
204 (list #:modules '((guix build utils)
205 (rnrs io ports)
206 (srfi srfi-26))
207 #:builder
208 #~(begin
209 (use-modules (guix build utils)
210 (rnrs io ports)
211 (srfi srfi-26))
212 (define certs-dir (string-append #$output "/etc/ssl/certs/"))
213 (define ca-files
214 (find-files (string-append #+(this-package-native-input
215 "nss-certs")
216 "/etc/ssl/certs")
217 (lambda (file stat)
218 (string-suffix? ".pem" file))))
219 (define (concatenate-files files result)
220 "Make RESULT the concatenation of all of FILES."
221 (define (dump file port)
222 (display (call-with-input-file file get-string-all) port)
223 (newline port))
224 (call-with-output-file result
225 (lambda (port)
226 (for-each (cut dump <> port) files))))
227
228 (mkdir-p certs-dir)
229 (concatenate-files
230 ca-files (string-append certs-dir "/ca-certificates.crt"))
231 (for-each (cut install-file <> certs-dir) ca-files))))
232 (native-search-paths
233 (list $SSL_CERT_DIR
234 $SSL_CERT_FILE)))))
235
236(define-public le-certs 125(define-public le-certs
237 (package 126 (package
238 (name "le-certs") 127 (name "le-certs")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 9272c1dfc18..247b8a9dd46 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -83,7 +83,7 @@
83 #:use-module (gnu packages crates-check) 83 #:use-module (gnu packages crates-check)
84 #:use-module (gnu packages crates-graphics) 84 #:use-module (gnu packages crates-graphics)
85 #:use-module (gnu packages crates-io) 85 #:use-module (gnu packages crates-io)
86 #:use-module (gnu packages certs) 86 #:use-module (gnu packages nss)
87 #:use-module (gnu packages cmake) 87 #:use-module (gnu packages cmake)
88 #:use-module (gnu packages compression) 88 #:use-module (gnu packages compression)
89 #:use-module (gnu packages cpp) 89 #:use-module (gnu packages cpp)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9c4496878df..3132833ecc6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -84,7 +84,7 @@
84 #:use-module (gnu packages base) 84 #:use-module (gnu packages base)
85 #:use-module (gnu packages bash) 85 #:use-module (gnu packages bash)
86 #:use-module (gnu packages c) 86 #:use-module (gnu packages c)
87 #:use-module (gnu packages certs) 87 #:use-module (gnu packages nss)
88 #:use-module (gnu packages cmake) 88 #:use-module (gnu packages cmake)
89 #:use-module (gnu packages compression) 89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages cpp) 90 #:use-module (gnu packages cpp)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 00fa3908864..d9859069cc9 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -92,7 +92,7 @@
92 #:use-module (gnu packages bash) 92 #:use-module (gnu packages bash)
93 #:use-module (gnu packages bison) 93 #:use-module (gnu packages bison)
94 #:use-module (gnu packages boost) 94 #:use-module (gnu packages boost)
95 #:use-module (gnu packages certs) 95 #:use-module (gnu packages nss)
96 #:use-module (gnu packages check) 96 #:use-module (gnu packages check)
97 #:use-module (gnu packages cmake) 97 #:use-module (gnu packages cmake)
98 #:use-module (gnu packages compression) 98 #:use-module (gnu packages compression)
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index a1767a3ea5d..ce14309e5c4 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -74,7 +74,7 @@
74 #:use-module (gnu packages bash) 74 #:use-module (gnu packages bash)
75 #:use-module (gnu packages build-tools) 75 #:use-module (gnu packages build-tools)
76 #:use-module (gnu packages c) 76 #:use-module (gnu packages c)
77 #:use-module (gnu packages certs) 77 #:use-module (gnu packages nss)
78 #:use-module (gnu packages check) 78 #:use-module (gnu packages check)
79 #:use-module (gnu packages compression) 79 #:use-module (gnu packages compression)
80 #:use-module (gnu packages crypto) 80 #:use-module (gnu packages crypto)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index a1095a7fbaa..be73ca3a874 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -78,7 +78,7 @@
78 #:use-module (gnu packages build-tools) 78 #:use-module (gnu packages build-tools)
79 #:use-module (gnu packages busybox) 79 #:use-module (gnu packages busybox)
80 #:use-module (gnu packages c) 80 #:use-module (gnu packages c)
81 #:use-module (gnu packages certs) 81 #:use-module (gnu packages nss)
82 #:use-module (gnu packages check) 82 #:use-module (gnu packages check)
83 #:use-module (gnu packages cmake) 83 #:use-module (gnu packages cmake)
84 #:use-module (gnu packages compression) 84 #:use-module (gnu packages compression)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 885f8ea8c41..7da4cce23e1 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -58,7 +58,7 @@
58 #:use-module (gnu packages autotools) 58 #:use-module (gnu packages autotools)
59 #:use-module (gnu packages base) 59 #:use-module (gnu packages base)
60 #:use-module (gnu packages bash) 60 #:use-module (gnu packages bash)
61 #:use-module (gnu packages certs) 61 #:use-module (gnu packages nss)
62 #:use-module (gnu packages cpio) 62 #:use-module (gnu packages cpio)
63 #:use-module (gnu packages cups) 63 #:use-module (gnu packages cups)
64 #:use-module (gnu packages compression) 64 #:use-module (gnu packages compression)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index cda2ea5cb84..299ee0d55c2 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -77,7 +77,7 @@
77 #:use-module (gnu packages cmake) 77 #:use-module (gnu packages cmake)
78 #:use-module (gnu packages boost) 78 #:use-module (gnu packages boost)
79 #:use-module (gnu packages check) 79 #:use-module (gnu packages check)
80 #:use-module (gnu packages certs) 80 #:use-module (gnu packages nss)
81 #:use-module (gnu packages code) 81 #:use-module (gnu packages code)
82 #:use-module (gnu packages compression) 82 #:use-module (gnu packages compression)
83 #:use-module (gnu packages cpp) 83 #:use-module (gnu packages cpp)
diff --git a/gnu/packages/nim.scm b/gnu/packages/nim.scm
index 048e6358b92..eab2e80964f 100644
--- a/gnu/packages/nim.scm
+++ b/gnu/packages/nim.scm
@@ -31,7 +31,7 @@
31 #:use-module ((guix licenses) #:prefix license:) 31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix packages) 32 #:use-module (guix packages)
33 #:use-module (gnu packages bdw-gc) 33 #:use-module (gnu packages bdw-gc)
34 #:use-module (gnu packages certs) 34 #:use-module (gnu packages nss)
35 #:use-module (gnu packages parallel) 35 #:use-module (gnu packages parallel)
36 #:use-module (gnu packages pcre) 36 #:use-module (gnu packages pcre)
37 #:use-module (gnu packages sqlite) 37 #:use-module (gnu packages sqlite)
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index fb056248559..873e661dab3 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -1,12 +1,13 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013-2019, 2023 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013-2019, 2023 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2021 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2014-2021 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2016-2019, 2021-2024 Efraim Flashner <efraim@flashner.co.il> 4;;; Copyright © 2016-2019, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
5;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> 5;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
6;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> 6;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
7;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> 7;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
8;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> 8;;; Copyright © 2021-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
9;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> 9;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
10;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
10;;; 11;;;
11;;; This file is part of GNU Guix. 12;;; This file is part of GNU Guix.
12;;; 13;;;
@@ -25,6 +26,7 @@
25 26
26(define-module (gnu packages nss) 27(define-module (gnu packages nss)
27 #:use-module (guix packages) 28 #:use-module (guix packages)
29 #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
28 #:use-module (guix utils) 30 #:use-module (guix utils)
29 #:use-module (guix gexp) 31 #:use-module (guix gexp)
30 #:use-module (guix download) 32 #:use-module (guix download)
@@ -32,10 +34,12 @@
32 #:use-module (guix build-system cargo) 34 #:use-module (guix build-system cargo)
33 #:use-module (guix build-system gnu) 35 #:use-module (guix build-system gnu)
34 #:use-module (guix build-system mozilla) 36 #:use-module (guix build-system mozilla)
37 #:use-module (guix build-system trivial)
35 #:use-module ((guix licenses) #:prefix license:) 38 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (gnu packages) 39 #:use-module (gnu packages)
37 #:use-module (gnu packages base) 40 #:use-module (gnu packages base)
38 #:use-module (gnu packages bash) 41 #:use-module (gnu packages bash)
42 #:use-module (gnu packages certs)
39 #:use-module (gnu packages check) 43 #:use-module (gnu packages check)
40 #:use-module (gnu packages crates-check) 44 #:use-module (gnu packages crates-check)
41 #:use-module (gnu packages crates-io) 45 #:use-module (gnu packages crates-io)
@@ -43,6 +47,7 @@
43 #:use-module (gnu packages perl) 47 #:use-module (gnu packages perl)
44 #:use-module (gnu packages sqlite) 48 #:use-module (gnu packages sqlite)
45 #:use-module (gnu packages time) 49 #:use-module (gnu packages time)
50 #:use-module (gnu packages tls)
46 #:use-module (srfi srfi-1) 51 #:use-module (srfi srfi-1)
47 #:use-module (srfi srfi-26)) 52 #:use-module (srfi srfi-26))
48 53
@@ -349,6 +354,88 @@ security standards.
349 354
350This package tracks the Rapid Release channel, which updates frequently."))) 355This package tracks the Rapid Release channel, which updates frequently.")))
351 356
357(define-public nss-certs
358 (package
359 (inherit nss)
360 (name "nss-certs")
361 (build-system gnu-build-system)
362 (outputs '("out"))
363 (native-inputs
364 (list certdata2pem openssl))
365 (inputs '())
366 (propagated-inputs '())
367 (arguments
368 (list #:modules '((guix build gnu-build-system)
369 (guix build utils)
370 (rnrs io ports)
371 (srfi srfi-26))
372 #:phases
373 #~(modify-phases
374 (map (cut assq <> %standard-phases)
375 '(set-paths install-locale unpack))
376 (add-after 'unpack 'install
377 (lambda _
378 (let ((certsdir (string-append #$output
379 "/etc/ssl/certs/")))
380 (with-directory-excursion "nss/lib/ckfw/builtins/"
381 (unless (file-exists? "blacklist.txt")
382 (call-with-output-file "blacklist.txt" (const #t)))
383 ;; Extract selected single certificates from blob.
384 (invoke "certdata2pem")
385 ;; Copy .pem files into the output.
386 (for-each (cut install-file <> certsdir)
387 (find-files "." ".*\\.pem$")))
388 (invoke "openssl" "rehash" certsdir)))))))
389 (synopsis "CA certificates from Mozilla")
390 (description
391 "This package provides certificates for Certification Authorities (CA)
392taken from the NSS package and thus ultimately from the Mozilla project.")
393 (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
394 (license license:mpl2.0)))
395
396(define-public nss-certs-for-test
397 (hidden-package
398 (package
399 (inherit nss-certs)
400 (name "nss-certs-for-test")
401 (source #f)
402 (build-system trivial-build-system)
403 (native-inputs (list nss-certs))
404 (inputs '())
405 (propagated-inputs '())
406 (arguments
407 (list #:modules '((guix build utils)
408 (rnrs io ports)
409 (srfi srfi-26))
410 #:builder
411 #~(begin
412 (use-modules (guix build utils)
413 (rnrs io ports)
414 (srfi srfi-26))
415 (define certs-dir (string-append #$output "/etc/ssl/certs/"))
416 (define ca-files
417 (find-files (string-append #+(this-package-native-input
418 "nss-certs")
419 "/etc/ssl/certs")
420 (lambda (file stat)
421 (string-suffix? ".pem" file))))
422 (define (concatenate-files files result)
423 "Make RESULT the concatenation of all of FILES."
424 (define (dump file port)
425 (display (call-with-input-file file get-string-all) port)
426 (newline port))
427 (call-with-output-file result
428 (lambda (port)
429 (for-each (cut dump <> port) files))))
430
431 (mkdir-p certs-dir)
432 (concatenate-files
433 ca-files (string-append certs-dir "/ca-certificates.crt"))
434 (for-each (cut install-file <> certs-dir) ca-files))))
435 (native-search-paths
436 (list $SSL_CERT_DIR
437 $SSL_CERT_FILE)))))
438
352(define-public nsncd 439(define-public nsncd
353 (package 440 (package
354 (name "nsncd") 441 (name "nsncd")
diff --git a/gnu/packages/pypy.scm b/gnu/packages/pypy.scm
index 90986ac0960..38fe44f78ab 100644
--- a/gnu/packages/pypy.scm
+++ b/gnu/packages/pypy.scm
@@ -22,7 +22,7 @@
22(define-module (gnu packages pypy) 22(define-module (gnu packages pypy)
23 #:use-module ((guix licenses) #:prefix license:) 23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (gnu packages base) 24 #:use-module (gnu packages base)
25 #:use-module (gnu packages certs) 25 #:use-module (gnu packages nss)
26 #:use-module (gnu packages compression) 26 #:use-module (gnu packages compression)
27 #:use-module (gnu packages dbm) 27 #:use-module (gnu packages dbm)
28 #:use-module (gnu packages libffi) 28 #:use-module (gnu packages libffi)
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index f43b49163d9..5bd98ba01a0 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -55,7 +55,7 @@
55 #:use-module (gnu packages admin) 55 #:use-module (gnu packages admin)
56 #:use-module (gnu packages base) 56 #:use-module (gnu packages base)
57 #:use-module (gnu packages bash) 57 #:use-module (gnu packages bash)
58 #:use-module (gnu packages certs) 58 #:use-module (gnu packages nss)
59 #:use-module (gnu packages check) 59 #:use-module (gnu packages check)
60 #:use-module (gnu packages django) 60 #:use-module (gnu packages django)
61 #:use-module (gnu packages jupyter) 61 #:use-module (gnu packages jupyter)
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 79bbf1b08bc..8887da9e002 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -57,7 +57,7 @@
57 #:use-module (guix build-system python) 57 #:use-module (guix build-system python)
58 #:use-module (guix utils) 58 #:use-module (guix utils)
59 #:use-module (gnu packages) 59 #:use-module (gnu packages)
60 #:use-module (gnu packages certs) 60 #:use-module (gnu packages nss)
61 #:use-module (gnu packages check) 61 #:use-module (gnu packages check)
62 #:use-module (gnu packages crates-io) 62 #:use-module (gnu packages crates-io)
63 #:use-module (gnu packages crates-tls) 63 #:use-module (gnu packages crates-tls)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 4f6a237ae07..7f7c9ceff19 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -107,7 +107,7 @@
107 #:use-module (gnu packages admin) 107 #:use-module (gnu packages admin)
108 #:use-module (gnu packages base) 108 #:use-module (gnu packages base)
109 #:use-module (gnu packages bash) 109 #:use-module (gnu packages bash)
110 #:use-module (gnu packages certs) 110 #:use-module (gnu packages nss)
111 #:use-module (gnu packages check) 111 #:use-module (gnu packages check)
112 #:use-module (gnu packages cmake) 112 #:use-module (gnu packages cmake)
113 #:use-module (gnu packages compression) 113 #:use-module (gnu packages compression)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0107f3f08ea..fcf9c8e20cc 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -197,7 +197,7 @@
197 #:use-module (gnu packages bdw-gc) 197 #:use-module (gnu packages bdw-gc)
198 #:use-module (gnu packages bioinformatics) 198 #:use-module (gnu packages bioinformatics)
199 #:use-module (gnu packages build-tools) 199 #:use-module (gnu packages build-tools)
200 #:use-module (gnu packages certs) 200 #:use-module (gnu packages nss)
201 #:use-module (gnu packages check) 201 #:use-module (gnu packages check)
202 #:use-module (gnu packages cmake) 202 #:use-module (gnu packages cmake)
203 #:use-module (gnu packages compression) 203 #:use-module (gnu packages compression)
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index 90bf376b390..6d7875e8448 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -47,7 +47,7 @@
47 #:use-module (guix build-system pyproject) 47 #:use-module (guix build-system pyproject)
48 #:use-module ((guix licenses) #:prefix license:) 48 #:use-module ((guix licenses) #:prefix license:)
49 #:use-module (gnu packages) 49 #:use-module (gnu packages)
50 #:use-module (gnu packages certs) 50 #:use-module (gnu packages nss)
51 #:use-module (gnu packages check) 51 #:use-module (gnu packages check)
52 #:use-module (gnu packages fonts) 52 #:use-module (gnu packages fonts)
53 #:use-module (gnu packages fontutils) 53 #:use-module (gnu packages fontutils)
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index dc5c7c6849e..8c829749c7d 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -80,6 +80,7 @@
80 #:use-module (gnu packages golang-xyz) 80 #:use-module (gnu packages golang-xyz)
81 #:use-module (gnu packages java) 81 #:use-module (gnu packages java)
82 #:use-module (gnu packages ncurses) 82 #:use-module (gnu packages ncurses)
83 #:use-module (gnu packages nss)
83 #:use-module (gnu packages pcre) 84 #:use-module (gnu packages pcre)
84 #:use-module (gnu packages perl) 85 #:use-module (gnu packages perl)
85 #:use-module (gnu packages pkg-config) 86 #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 8dd820429cd..d3e4be0894b 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -75,6 +75,7 @@
75 #:use-module (gnu packages ncurses) 75 #:use-module (gnu packages ncurses)
76 #:use-module (gnu packages nettle) 76 #:use-module (gnu packages nettle)
77 #:use-module (gnu packages networking) 77 #:use-module (gnu packages networking)
78 #:use-module (gnu packages nss)
78 #:use-module (gnu packages perl) 79 #:use-module (gnu packages perl)
79 #:use-module (gnu packages pkg-config) 80 #:use-module (gnu packages pkg-config)
80 #:use-module (gnu packages python) 81 #:use-module (gnu packages python)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fedc4827aae..eb4815bdd9d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -130,7 +130,7 @@
130 #:use-module (gnu packages bittorrent) 130 #:use-module (gnu packages bittorrent)
131 #:use-module (gnu packages boost) 131 #:use-module (gnu packages boost)
132 #:use-module (gnu packages cdrom) 132 #:use-module (gnu packages cdrom)
133 #:use-module (gnu packages certs) 133 #:use-module (gnu packages nss)
134 #:use-module (gnu packages check) 134 #:use-module (gnu packages check)
135 #:use-module (gnu packages cmake) 135 #:use-module (gnu packages cmake)
136 #:use-module (gnu packages compression) 136 #:use-module (gnu packages compression)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index de59e8dbb84..a56b313e2c8 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -130,7 +130,7 @@
130 #:use-module (gnu packages bittorrent) 130 #:use-module (gnu packages bittorrent)
131 #:use-module (gnu packages boost) 131 #:use-module (gnu packages boost)
132 #:use-module (gnu packages build-tools) 132 #:use-module (gnu packages build-tools)
133 #:use-module (gnu packages certs) 133 #:use-module (gnu packages nss)
134 #:use-module (gnu packages check) 134 #:use-module (gnu packages check)
135 #:use-module (gnu packages compression) 135 #:use-module (gnu packages compression)
136 #:use-module (gnu packages cpp) 136 #:use-module (gnu packages cpp)
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 856e6f375a2..8f24950752f 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -27,7 +27,7 @@
27 #:use-module ((gnu packages base) 27 #:use-module ((gnu packages base)
28 #:select (canonical-package findutils coreutils sed)) 28 #:select (canonical-package findutils coreutils sed))
29 #:use-module (gnu packages file-systems) 29 #:use-module (gnu packages file-systems)
30 #:use-module (gnu packages certs) 30 #:use-module (gnu packages nss)
31 #:use-module (gnu packages disk) 31 #:use-module (gnu packages disk)
32 #:use-module (gnu packages package-management) 32 #:use-module (gnu packages package-management)
33 #:use-module (gnu packages linux) 33 #:use-module (gnu packages linux)
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index 9926f4107de..423e0078711 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -24,7 +24,7 @@
24 #:use-module (gnu services shepherd) 24 #:use-module (gnu services shepherd)
25 #:use-module (gnu system shadow) 25 #:use-module (gnu system shadow)
26 #:use-module (gnu packages admin) 26 #:use-module (gnu packages admin)
27 #:use-module (gnu packages certs) 27 #:use-module (gnu packages nss)
28 #:use-module (gnu packages glib) 28 #:use-module (gnu packages glib)
29 #:use-module (gnu packages guile-xyz) 29 #:use-module (gnu packages guile-xyz)
30 #:use-module (gnu packages jami) 30 #:use-module (gnu packages jami)
diff --git a/gnu/system.scm b/gnu/system.scm
index 06181606fa4..78a30646e1b 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -51,7 +51,7 @@
51 #:use-module (gnu packages admin) 51 #:use-module (gnu packages admin)
52 #:use-module (gnu packages base) 52 #:use-module (gnu packages base)
53 #:use-module (gnu packages bash) 53 #:use-module (gnu packages bash)
54 #:use-module ((gnu packages certs) #:select (nss-certs)) 54 #:use-module ((gnu packages nss) #:select (nss-certs))
55 #:use-module (gnu packages compression) 55 #:use-module (gnu packages compression)
56 #:use-module (gnu packages cross-base) 56 #:use-module (gnu packages cross-base)
57 #:use-module (gnu packages firmware) 57 #:use-module (gnu packages firmware)
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index a54c95a9576..5e47798cbd9 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -27,7 +27,7 @@
27 #:use-module (gnu packages admin) 27 #:use-module (gnu packages admin)
28 #:use-module (gnu packages base) 28 #:use-module (gnu packages base)
29 #:use-module (gnu packages bash) 29 #:use-module (gnu packages bash)
30 #:use-module (gnu packages certs) 30 #:use-module (gnu packages nss)
31 #:use-module (gnu packages compression) 31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages cross-base) 32 #:use-module (gnu packages cross-base)
33 #:use-module (gnu packages file) 33 #:use-module (gnu packages file)
diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm
index 43c99c231f8..bd7a39ee75d 100644
--- a/gnu/system/images/pine64.scm
+++ b/gnu/system/images/pine64.scm
@@ -22,7 +22,7 @@
22 #:use-module (gnu bootloader u-boot) 22 #:use-module (gnu bootloader u-boot)
23 #:use-module (gnu image) 23 #:use-module (gnu image)
24 #:use-module (gnu packages linux) 24 #:use-module (gnu packages linux)
25 #:use-module (gnu packages certs) 25 #:use-module (gnu packages nss)
26 #:use-module (guix platforms arm) 26 #:use-module (guix platforms arm)
27 #:use-module (gnu services) 27 #:use-module (gnu services)
28 #:use-module (gnu services base) 28 #:use-module (gnu services base)