gnu: libdvdcss: Update to 1.4.3.
[jackhill/guix/guix.git] / gnu / packages / irc.scm
index 4a2e33d..36c4fac 100644 (file)
@@ -2,10 +2,15 @@
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 ng0 <ng0@n0.is>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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>
+;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 (define-module (gnu packages irc)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aspell)
   #: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)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #: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 password-utils)
+  #: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)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
         (sha256
          (base32
           "0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
+        (patches (search-patches "quassel-qt-514-compat.patch"))
         (modules '((guix build utils)))
-        ;; We don't want to install the bundled scripts.
+        ;; We don't want to install the bundled inxi script.
         (snippet
          '(begin
-            (delete-file-recursively "data/scripts")
-            (substitute* "data/CMakeLists.txt"
-              (("NOT WIN32") "WIN32"))
+            (delete-file "data/scripts/inxi")
             #t))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
       ;; The three binaries are not mutually exlusive, and are all built
       ;; by default.
          (add-after 'unpack 'patch-inxi-reference
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((inxi (string-append (assoc-ref inputs "inxi") "/bin/inxi")))
-               (substitute* "src/common/aliasmanager.cpp"
-                 ((" inxi ") (string-append " " inxi " ")))
+               (symlink inxi "data/scripts/inxi")
                #t))))
        #:tests? #f)) ; no test target
     (native-inputs
        ("qttools" ,qttools)))
     (inputs
      `(("inxi" ,inxi-minimal)
+       ("libdbusmenu-qt" ,libdbusmenu-qt)
        ("qca" ,qca)
        ("qtbase" ,qtbase)
        ("qtmultimedia" ,qtmultimedia)
        ("qtscript" ,qtscript)
+       ("qtsvg" ,qtsvg)
        ("snorenotify" ,snorenotify)
        ("zlib" ,zlib)))
     (home-page "https://quassel-irc.org/")
@@ -127,7 +146,7 @@ irssi, but graphical.")
 (define-public irssi
   (package
     (name "irssi")
-    (version "1.1.3")
+    (version "1.2.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/irssi/irssi/"
@@ -135,7 +154,7 @@ irssi, but graphical.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0jq8zjdhdjxkjbfl4g4nfr1ninyfxffa27lm8vcyrihhhkrn65yf"))))
+                "17vninwcdfxw39xl2q55qircckckjk2xlvkvlwgj5lhlxppvyix6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -148,7 +167,10 @@ irssi, but graphical.")
                        (string-append "--prefix=" out)
                        (string-append "--with-proxy")
                        (string-append "--with-socks")
-                       (string-append "--with-bot"))))))))
+                       (string-append "--with-bot")))))
+         (add-before 'check 'set-home
+           (lambda _
+             (setenv "HOME" (getcwd)))))))
     (inputs
      `(("glib" ,glib)
        ("ncurses" ,ncurses)
@@ -166,56 +188,44 @@ SILC and ICB protocols via plugins.")
 (define-public weechat
   (package
     (name "weechat")
-    (version "2.6")
+    (version "3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://weechat.org/files/src/weechat-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0j2iflnfvv31q2l9r67r8aj3ipggqfm2r2dpy7pvdpxgwwq337ps"))))
+                "1xx4fx7785yw3ml3k1z08h3qvrizvcypwl0j6jc7d7qim9sjjnm5"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
        ;; For tests.
        ("cpputest" ,cpputest)))
-    (inputs `(("ncurses" ,ncurses)
-              ("libgcrypt" ,libgcrypt "out")
-              ("zlib" ,zlib)
-              ("aspell" ,aspell)
-              ("curl" ,curl)
-              ("gnutls" ,gnutls)
+    (inputs
+     `(("aspell" ,aspell)
+       ("curl" ,curl)
+       ("gnutls" ,gnutls)
+       ("libgcrypt" ,libgcrypt "out")
+       ("ncurses" ,ncurses)
+       ("zlib" ,zlib)
 
-              ;; Scripting language plug-ins.
-              ("guile" ,guile-2.0)
-              ("lua" ,lua-5.1)
-              ("python" ,python)
-              ("perl" ,perl)
-              ("tcl" ,tcl)))
+       ;; Scripting language plug-ins.
+       ("guile" ,guile-3.0)
+       ("lua" ,lua-5.1)
+       ("perl" ,perl)
+       ("python" ,python)
+       ("tcl" ,tcl)))
     (arguments
      `(#:configure-flags
-       (list "-DENABLE_TESTS=ON")       ; ‘make test’ fails otherwise
-       ;; Tests hang indefinately on non-Intel platforms.
+       (list "-DENABLE_PHP=OFF"
+             "-DENABLE_RUBY=OFF"
+             "-DENABLE_TESTS=ON")       ; ‘make test’ fails otherwise
+       ;; Tests hang indefinitely on non-Intel platforms.
        #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
                                                       (%current-system)))
                           '("i686" "x86_64"))
-                   '#t '#f)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-tests
-           ;; For reasons best left to the imagination, CppUTest cannot skip
-           ;; more than one single test...  Resort to manual patching instead.
-           ;; See <https://cpputest.github.io/manual.html#command_line>.
-           (λ _
-             ;; Don't test plugin support for languages we don't enable.
-             (substitute* "tests/unit/test-plugins.cpp"
-               ((".*\\$\\{plugin.name\\} == (javascript|php|ruby)" all)
-                (string-append "// SKIP" all)))
-             (substitute* "tests/scripts/test-scripts.cpp"
-               ((".*\\{ \"(javascript|php|ruby)\", " all)
-                (string-append "// SKIP" all)))
-             #t)))))
+                   '#t '#f)))
     (synopsis "Extensible chat client")
     (description "WeeChat (Wee Enhanced Environment for Chat) is an
 @dfn{Internet Relay Chat} (IRC) client, which is designed to be light and fast.
@@ -227,17 +237,61 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
     (home-page "https://www.weechat.org/")
     (license license:gpl3)))
 
+(define-public srain
+  (package
+    (name "srain")
+    (version "1.1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/SrainApp/srain")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vqjjsxzc4601dpc8lf9k25rp2c7sjab7l5a6cbfygpr8dqvm6vq"))))
+    (arguments
+     `(#:tests? #f ;there are no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'fix-permissions
+           ;; Make po folder writable for gettext to install translations.
+           (lambda _
+             (for-each make-file-writable
+                       (find-files "po" "." #:directories? #t)))))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("glib-networking" ,glib-networking)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gtk+" ,gtk+)
+       ("libconfig" ,libconfig)
+       ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
+       ("openssl" ,openssl)))
+    (home-page "https://srain.im")
+    (synopsis "Modern IRC client written in GTK")
+    (description
+     "Srain is an IRC client written in GTK.  It aims to be modern and easy to
+use while still remaining useful to power users.  It also has partial support
+for the IRCv3 protocol.")
+    (license license:gpl3+)))
+
 (define-public ircii
   (package
     (name "ircii")
-    (version "20151120")
+    (version "20210314")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ircii.warped.com/"
                                  name "-" version ".tar.gz"))
              (sha256
               (base32
-               "178dc279f5j894qvp96dzz7c0jpryqlcqw5g0dc9yaxg9kgw1lqm"))))
+               "04jczayv1vdn21fcf5zkfaa98sy7d6ydrv2sns2i67gvya2z28j3"))))
     (build-system gnu-build-system)
     ;; TODO: We should package a small socks4/5 library/server to configure
     ;; ircii with socks client. `ghc-socks' pulls in lots of haskell, which
@@ -324,16 +378,46 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
      "sic is a simple IRC client, even more minimalistic than ii.")
     (license license:expat)))
 
+(define-public kirc
+  (package
+    (name "kirc")
+    (version "0.2.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mcpcpc/kirc")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "11pwbil44q7sm3mp1khgw8wmwln2n03f1qawlgmg168jzyxqrs16"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; No ./configure script
+    (synopsis "IRC client written in POSIX C99")
+    (description "Kirc is an Internet Relay Chat (IRC) client.  It includes
+support for Simple Authentication and Security Layer (SASL), the
+client-to-client (CTCP) protocol, simple chat history logging, synchronous
+message handling, multi-channel joining at server connection, full support for
+all RFC 2812 commands, and customized color scheme definitions.")
+    (home-page "http://kirc.io/index.html")
+    (license license:expat)))
+
 (define-public limnoria
   (package
     (name "limnoria")
-    (version "2019.11.09")
+    (version "2019.11.22")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "limnoria" version))
        (sha256
-        (base32 "1ni25jmri0928jj2c24xw5f2fzljjla54zh80fimks1aa5752j29"))))
+        (base32 "0853xk1ps3v6lkmfx50wv56vynnzpl84v66hxnhl8i34zl36kk3c"))))
     (build-system python-build-system)
     (inputs
      `(("python-pytz" ,python-pytz)
@@ -445,3 +529,78 @@ 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.8.1")
+    (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 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (map (lambda (module)
+                                (string-append "--enable-extras=" module))
+                              '("m_argon2.cpp"
+                                "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
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("argon2" ,argon2)
+       ("gnutls" ,gnutls)
+       ("libmaxminddb" ,libmaxminddb)
+       ("mbedtls-apache" ,mbedtls-apache)
+       ("mysql" ,mysql)
+       ("openldap" ,openldap)
+       ("openssl" ,openssl)
+       ("pcre" ,pcre "bin")
+       ("perl" ,perl)
+       ("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)))