From c0a4cde04c679ef7b3e27eb12476379c7a912234 Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Mon, 3 Aug 2020 22:12:41 -0500 Subject: gnu: Add inspircd. * gnu/packages/irc.scm (inspircd): New variable. --- gnu/packages/irc.scm | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) 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 ;;; Copyright © 2020 Vinicius Monego ;;; Copyright © 2020 Jakub Kądziołka +;;; Copyright © 2020 Brett Gilio ;;; ;;; 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))) -- cgit v1.2.3