summaryrefslogtreecommitdiff
path: root/modules/freya/certs.scm
blob: 71fa1bdf48a61929cf81b4759da5ee595c43cb0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 "../../files/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)))