aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Gilio <brettg@gnu.org>2020-08-03 22:12:41 -0500
committerBrett Gilio <brettg@gnu.org>2020-08-03 22:12:41 -0500
commitc0a4cde04c679ef7b3e27eb12476379c7a912234 (patch)
tree9c64bfbf88187d6f07c96e75582ccbadb7fa85bb
parent4fe1b2e69ee29f707b1b33957c570b515928c783 (diff)
downloadguix-c0a4cde04c679ef7b3e27eb12476379c7a912234.tar.gz
guix-c0a4cde04c679ef7b3e27eb12476379c7a912234.zip
gnu: Add inspircd.
* gnu/packages/irc.scm (inspircd): New variable.
-rw-r--r--gnu/packages/irc.scm80
1 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 8514334f63..7c47bfc695 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,6 +50,7 @@
#:use-module (gnu packages databases)
#:use-module (gnu packages file)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages geo)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
@@ -57,14 +59,18 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages lxqt)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages openldap)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages qt)
#:use-module (gnu packages tcl)
#:use-module (gnu packages textutils)
@@ -505,3 +511,77 @@ interface for those who are accustomed to the ircII way of doing things.")
;; "Redistribution is permitted" clause of the license if you
;; distribute binaries.
(license:non-copyleft "http://epicsol.org/copyright")))))
+
+(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 (map (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"))
+ (out-lib (string-append out "/lib/"))
+ (out-bin (string-append out "/bin/"))
+ (out-etc (string-append out "/etc/"))
+ (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)))