diff options
Diffstat (limited to 'modules/freya/certs.scm')
-rw-r--r-- | modules/freya/certs.scm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/freya/certs.scm b/modules/freya/certs.scm new file mode 100644 index 0000000..9ba1fa2 --- /dev/null +++ b/modules/freya/certs.scm @@ -0,0 +1,51 @@ +(define-module (freya certs) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (guix build-system trivial) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages tls) + #:use-module (gnu packages linux) + #:use-module (gnu packages base)) + +(define-public freya-ca-certs + (package + (name "freya-ca-certs") + (version "1") + (source (local-file "../../certs" + #:recursive? #t)) + (build-system trivial-build-system) + (license license:mpl2.0) + (home-page "https://freya.cat") + (arguments + `(#:modules + ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 ftw)) + (let* ((ca-certificates (assoc-ref %build-inputs "source")) + (crt-suffix ".crt") + (is-certificate? (cut string-suffix? crt-suffix <>)) + (certificates (filter is-certificate? + (scandir ca-certificates))) + (out (assoc-ref %outputs "out")) + (certificate-directory (string-append out "/etc/ssl/certs")) + (openssl (string-append (assoc-ref %build-inputs "openssl") "/bin/openssl"))) + (mkdir-p certificate-directory) + (for-each + (lambda (cert) + (invoke + openssl "x509" + "-in" (string-append ca-certificates "/" cert) + "-outform" "PEM" + "-out" (string-append certificate-directory "/" cert ".pem"))) + certificates) + #t)))) + (native-inputs + (list openssl)) + (synopsis "freya ca certs") + (description synopsis))) |