# -rw-r--r-- 2.9 KiB View raw
                                                                                
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
(define-public inspircd
  (package
    (name "inspircd")
    (version "3.7.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/inspircd/inspircd")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
         "1npzp23c3ac7m1grkm39i1asj04rs4i0jwf5w0c0j0hmnwslnz7a"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (for-each (lambda (module)
                                           (string-append "--enable-extras=" module))
                                         '("m_geo_maxmind.cpp"
                                           "m_ldap.cpp"
                                           "m_mysql.cpp"
                                           "m_pgsql.cpp"
                                           "m_regex_pcre.cpp"
                                           "m_regex_posix.cpp"
                                           "m_regex_stdlib.cpp"
                                           "m_regex_re2.cpp"
                                           "m_regex_tre.cpp"
                                           "m_sqlite3.cpp"
                                           "m_ssl_gnutls.cpp"
                                           "m_ssl_openssl.cpp"
                                           "m_ssl_mbedtls.cpp"
                                           "m_sslrehashsignal.cpp")))
       #:tests? #f ; Figure out later.
       #:phases
       (modify-phases %standard-phases
         (add-before 'configure 'module-configure
           (lambda* (#:key configure-flags #:allow-other-keys)
             (apply invoke "./configure"
                    configure-flags)
             #t))
         (replace 'configure
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out"))
                   (name "inspircd"))
               (invoke "./configure"
                       (string-append "--prefix=" out "/lib/" name)
                       (string-append "--binary-dir=" out "/bin/")
                       (string-append "--module-dir=" out "/lib/" name "/modules/")
                       (string-append "--config-dir=" out "/etc/" name)))
             #t)))))
    (native-inputs
     `(("gnutls" ,gnutls)
       ("libgcrypt" ,libgcrypt)
       ("libmaxminddb" ,libmaxminddb)
       ("mysql" ,mysql)
       ("mbedtls-apache" ,mbedtls-apache)
       ("openldap" ,openldap)
       ("openssl" ,openssl)
       ("pcre" ,pcre "bin")
       ("perl" ,perl)
       ("pkg-config" ,pkg-config)
       ("postgresql" ,postgresql)
       ("re2" ,re2)
       ("sqlite" ,sqlite)
       ("tre" ,tre)))
    (synopsis "Modular IRC server written in C++")
    (description "InspIRCd is a modular Internet Relay Chat
server written in C++ for Unix-like operating systems.")
    (home-page "https://www.inspircd.org/")
    (license license:gpl2)))