diff options
author | Maxim Cournoyer <[email protected]> | 2022-01-25 22:07:13 -0500 |
---|---|---|
committer | Maxim Cournoyer <[email protected]> | 2022-01-25 22:07:13 -0500 |
commit | 1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch) | |
tree | ac7810c88b560532f22d2bab2e59609cd7305c21 /gnu/packages/irc.scm | |
parent | 3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff) | |
parent | 070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (diff) |
Merge branch 'master' into staging.
With "conflicts" solved (all in favor of master except git) in:
gnu/local.mk
gnu/packages/databases.scm
gnu/packages/glib.scm
gnu/packages/gnome.scm
gnu/packages/gnupg.scm
gnu/packages/gnuzilla.scm
gnu/packages/graphics.scm
gnu/packages/gstreamer.scm
gnu/packages/gtk.scm
gnu/packages/linux.scm
gnu/packages/machine-learning.scm
gnu/packages/networking.scm
gnu/packages/polkit.scm
gnu/packages/pulseaudio.scm
gnu/packages/rpc.scm
gnu/packages/rust.scm
gnu/packages/version-control.scm
gnu/packages/w3m.scm
Diffstat (limited to 'gnu/packages/irc.scm')
-rw-r--r-- | gnu/packages/irc.scm | 377 |
1 files changed, 231 insertions, 146 deletions
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index d95c1a716a..72f9fd5c96 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -2,10 +2,10 @@ ;;; Copyright © 2013 Cyril Roelandt <[email protected]> ;;; Copyright © 2014 Kevin Lemonnier <[email protected]> ;;; Copyright © 2015, 2017 Ludovic Courtès <[email protected]> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <[email protected]> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <[email protected]> ;;; Copyright © 2016 Nikita <[email protected]> ;;; Copyright © 2017 Marius Bakke <[email protected]> -;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <[email protected]> +;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2020 Oleg Pykhalov <[email protected]> ;;; Copyright © 2020, 2021 Vinicius Monego <[email protected]> ;;; Copyright © 2020 Jakub Kądziołka <[email protected]> @@ -28,6 +28,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages irc) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix git-download) @@ -46,7 +47,9 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages backup) + #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -88,55 +91,54 @@ (define-public quassel (package (name "quassel") - (version "0.13.1") + (version "0.14.0") (source (origin (method url-fetch) (uri (string-append "https://quassel-irc.org/pub/quassel-" - version ".tar.bz2")) + version ".tar.xz")) (sha256 (base32 - "0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8")) - (patches (search-patches "quassel-qt-514-compat.patch")) + "042fzssydvv35jjknziph8iyyjsyrsb2hp3d0ix0bqbagbrpf1q9")) (modules '((guix build utils))) ;; We don't want to install the bundled inxi script. (snippet '(begin - (delete-file "data/scripts/inxi") - #t)))) + (delete-file "data/scripts/inxi"))))) (build-system qt-build-system) (arguments ;; The three binaries are not mutually exlusive, and are all built ;; by default. - '(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 6.1 MiB - ;;"-DWANT_CORE=OFF" ; 3.0 MiB - ;;"-DWANT_MONO=OFF" ; 7.6 MiB - "-DWITH_KDE=OFF" ; no to kde integration ... - "-DWITH_BUNDLED_ICONS=ON" ; so we install bundled icons - "-DWITH_OXYGEN_ICONS=ON" ; also the oxygen ones - "-DWITH_WEBENGINE=OFF") ; we don't depend on qtwebengine + '(#:configure-flags '("-DBUILD_TESTING=ON" + ;;"-DWANT_QTCLIENT=OFF" + ;;"-DWANT_CORE=OFF" + ;;"-DWANT_MONO=OFF" + "-DWITH_KDE=OFF" + "-DWITH_BUNDLED_ICONS=ON" + "-DWITH_OXYGEN_ICONS=ON" + ;; This disables link previews. + "-DWITH_WEBENGINE=OFF") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-inxi-reference (lambda* (#:key inputs #:allow-other-keys) - (let ((inxi (string-append (assoc-ref inputs "inxi") "/bin/inxi"))) - (symlink inxi "data/scripts/inxi") - #t)))) - #:tests? #f)) ; no test target + (let ((inxi (search-input-file inputs "/bin/inxi"))) + (symlink inxi "data/scripts/inxi"))))))) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules) - ("pkg-config" ,pkg-config) - ("qttools" ,qttools))) + (list extra-cmake-modules pkg-config qttools)) (inputs - `(("inxi" ,inxi-minimal) - ("libdbusmenu-qt" ,libdbusmenu-qt) - ("qca" ,qca) - ("qtbase" ,qtbase-5) - ("qtmultimedia" ,qtmultimedia) - ("qtscript" ,qtscript) - ("qtsvg" ,qtsvg) - ("snorenotify" ,snorenotify) - ("zlib" ,zlib))) + (list boost + inxi-minimal + libdbusmenu-qt + perl + qca + qtbase-5 + qtmultimedia + qtscript + qtsvg + snorenotify + sonnet + zlib)) (home-page "https://quassel-irc.org/") (synopsis "Distributed IRC client") (description "Quassel is a distributed IRC client, meaning that one or more @@ -167,6 +169,7 @@ irssi, but graphical.") (setenv "CONFIG_SHELL" (which "bash")) (invoke "./configure" (string-append "--prefix=" out) + (string-append "--enable-true-color") (string-append "--with-proxy") (string-append "--with-socks") (string-append "--with-bot"))))) @@ -174,12 +177,9 @@ irssi, but graphical.") (lambda _ (setenv "HOME" (getcwd))))))) (inputs - `(("glib" ,glib) - ("ncurses" ,ncurses) - ("openssl" ,openssl) - ("perl" ,perl))) + (list glib ncurses openssl perl utf8proc)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (home-page "https://irssi.org/") (synopsis "Terminal-based IRC client") (description @@ -190,44 +190,61 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "3.2") + (version "3.4") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "1a47knznlm9f2f83d71s3c4fm50m6iq6iq1bvp4m61p8fkrsva1r")))) + "0k5rgdy0c4dnxvsqjzyrr5czz1lmfk1vrsqkkvj8v24y0b3xrlvw")))) (build-system cmake-build-system) + (outputs '("out" "doc")) (native-inputs - `(("gettext" ,gettext-minimal) + `(("gettext-minimal" ,gettext-minimal) ("pkg-config" ,pkg-config) + ,@(if (or (target-x86-64?) + (target-x86-32?)) + `(("ruby-asciidoctor" ,ruby-asciidoctor)) + '()) ;; For tests. ("cpputest" ,cpputest))) (inputs - `(("aspell" ,aspell) - ("curl" ,curl) - ("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt "out") - ("ncurses" ,ncurses) - ("zlib" ,zlib) - - ;; Scripting language plug-ins. - ("guile" ,guile-3.0) - ("lua" ,lua-5.1) - ("perl" ,perl) - ("python" ,python) - ("tcl" ,tcl))) + (list aspell + curl + gnutls + libgcrypt + ncurses + zlib + ;; Scripting language plug-ins. + guile-3.0 + lua-5.1 + perl + python + ruby + tcl)) (arguments `(#:configure-flags (list "-DENABLE_PHP=OFF" - "-DENABLE_RUBY=OFF" + ,@(if (or (target-x86-64?) + (target-x86-32?)) + '("-DENABLE_MAN=ON" + "-DENABLE_DOC=ON") + '()) "-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 + ,@(if (or (target-x86-64?) + (target-x86-32?)) + '((add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (from (string-append out "/share/doc/weechat")) + (to (string-append doc "/share/doc/weechat"))) + (mkdir-p (string-append doc "/share/doc")) + (rename-file from to))))) + '())))) (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. @@ -236,13 +253,13 @@ Qt, Android, and Emacs. Everything in WeeChat can be done with the keyboard, though it also supports using a mouse. It is customizable and extensible with plugins and scripts.") - (home-page "https://www.weechat.org/") + (home-page "https://weechat.org/") (license license:gpl3))) (define-public srain (package (name "srain") - (version "1.2.4") + (version "1.3.1") (source (origin (method git-fetch) @@ -251,7 +268,7 @@ using a mouse. It is customizable and extensible with plugins and scripts.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0lssrbk03rj92mqfaz5pgm0nplzyxrjywcknbx28lnvyfyzm3bks")))) + (base32 "1xjk3fa3fkmsczif1bzcmi79k4z3jfdgcljfdiyn4iv5bh778swc")))) (build-system meson-build-system) (arguments `(#:tests? #f ;there are no tests @@ -263,13 +280,13 @@ using a mouse. It is customizable and extensible with plugins and scripts.") ("python" ,python-wrapper) ("python-sphinx" ,python-sphinx))) (inputs - `(("glib-networking" ,glib-networking) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gtk+" ,gtk+) - ("libconfig" ,libconfig) - ("libsecret" ,libsecret) - ("libsoup" ,libsoup) - ("openssl" ,openssl))) + (list glib-networking + gsettings-desktop-schemas + gtk+ + libconfig + libsecret + libsoup-minimal-2 + openssl)) (home-page "https://srain.im") (synopsis "Modern IRC client written in GTK") (description @@ -314,28 +331,67 @@ for the IRCv3 protocol.") (("/bin/rm") "rm") (("/bin/mv") "mv"))))))) (inputs - `(("ncurses" ,ncurses) - ("openssl" ,openssl))) + (list ncurses openssl)) (native-inputs - `(("pkg-config" ,pkg-config) - ("perl" ,perl))) + (list pkg-config perl)) (home-page "http://www.eterna.com.au/ircii/") (synopsis "Terminal-based IRC and ICB client") (description "ircII is a terminal based IRC and ICB client for UNIX systems.") (license license:bsd-3))) +(define-public catgirl + (package + (name "catgirl") + (version "1.9a") + (source (origin + (method url-fetch) + (uri (string-append "https://git.causal.agency/catgirl/snapshot/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0pci8crcgm33zb58y7ky2aydzyqsirj8ri8ik1zdlz6npadbjj9h")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list (string-append "PREFIX=" %output) + ,(string-append "CC=" (cc-for-target))))) + (native-inputs + (list universal-ctags pkg-config)) + (inputs + (list libressl ncurses)) + (home-page "https://git.causal.agency/catgirl") + (synopsis "TLS-only terminal IRC client") + (description + "@command{catgirl} is a TLS-only terminal IRC client. + +Notable features include: +@itemize +@item Tab complete: most recently seen or mentioned nicks are completed first. + Commas are inserted between multiple nicks. +@item Prompt: the prompt clearly shows whether input will be interpreted as a +command or sent as a message. +@item Split scroll: keeps the latest messages in view while scrolling. +@item URL detection: recent URLs from a particular user or matching a +substring can be opened or copied. +@item Nick coloring: color generation based on usernames remains stable across +nick changes. Mentions of users in messages are colored. +@item Topic diffing: the modified portion of a channel topic change is +highlighted. +@end itemize") + (license license:gpl3+))) + (define-public ii (package (name "ii") - (version "1.8") + (version "1.9") (source (origin (method url-fetch) (uri (string-append "http://dl.suckless.org/tools/" name "-" version ".tar.gz")) (sha256 (base32 - "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr")))) + "05wcaszm9hap5gqf58bciqm3ad1kfgp976fs3fsn3ll3nliv6345")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -378,7 +434,7 @@ for the IRCv3 protocol.") (define-public kirc (package (name "kirc") - (version "0.2.7") + (version "0.2.9") (source (origin (method git-fetch) (uri (git-reference @@ -386,7 +442,7 @@ for the IRCv3 protocol.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0phx00lr7ya8rx1hskv1wdwbq2vlihiqhnplqdvk1r3m23is7al9")))) + (base32 "0ahmfxhgcvnlgmxxbv9vga5x6krab1n7qq55ygj7hj3x7s7ra419")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -417,16 +473,16 @@ all RFC 2812 commands, and customized color scheme definitions.") (base32 "0853xk1ps3v6lkmfx50wv56vynnzpl84v66hxnhl8i34zl36kk3c")))) (build-system python-build-system) (inputs - `(("python-pytz" ,python-pytz) - ("python-chardet" ,python-chardet) - ("python-dateutil" ,python-dateutil) - ("python-gnupg" ,python-gnupg) - ("python-feedparser" ,python-feedparser) - ("python-sqlalchemy" ,python-sqlalchemy) - ("python-socksipy-branch" ,python-socksipy-branch) - ("python-ecdsa" ,python-ecdsa))) + (list python-pytz + python-chardet + python-dateutil + python-gnupg + python-feedparser + python-sqlalchemy + python-socksipy-branch + python-ecdsa)) (native-inputs - `(("python-mock" ,python-mock))) + (list python-mock)) ;; Despite the existence of a test folder there is no test phase. ;; We need to package https://github.com/ProgVal/irctest and write ;; our own testphase. @@ -504,14 +560,14 @@ other enhancements and bug fixes.") (assoc-ref %build-inputs "tcl") "/lib/tclConfig.sh")))))))) (inputs - `(("libressl" ,libressl) - ("ncurses" ,ncurses) - ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files" - ("perl" ,perl) - ("tcl" ,tcl) - ("ruby" ,ruby))) + (list libressl + ncurses + libarchive ; CHANGELOG: "Support for loading zip files" + perl + tcl + ruby)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (home-page "http://epicsol.org") (synopsis "Epic5 IRC Client") (description @@ -527,10 +583,41 @@ interface for those who are accustomed to the ircII way of doing things.") ;; distribute binaries. (license:non-copyleft "http://epicsol.org/copyright"))))) +(define-public litterbox + (package + (name "litterbox") + (version "1.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://git.causal.agency/litterbox/snapshot/litterbox-" + version ".tar.gz")) + (sha256 + (base32 "0ll5d18slngdg2qhaxkvrcq2p1admh0h7sr06wx8347ka0vvrgjl")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:make-flags + (list + (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" %output)))) + (native-inputs + (list pkg-config universal-ctags)) + (inputs + (list libressl sqlite)) + (home-page "https://code.causal.agency/june/litterbox") + (synopsis "TLS-only IRC logger") + (description +"@command{litterbox} is a TLS-only IRC logger. It logs +events from IRC in a SQLite database, indexing messages for full-text +search. It is intended for use with the IRC bouncer @command{pounce}, +but can also be used independently as a logging bot.") + (license license:gpl3+))) + (define-public inspircd (package (name "inspircd") - (version "3.8.1") + (version "3.12.0") (source (origin (method git-fetch) @@ -539,63 +626,61 @@ interface for those who are accustomed to the ircII way of doing things.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g")))) + (base32 "0xlfs269iaw7dfryzl6vjzqsn2g4nqh6kpf5xfgk3zbjhqaczknx")))) (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))))) + (list #: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 ; XXX 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))) + (replace 'configure + (lambda _ + (let ((lib (string-append #$output "/lib/")) + (bin (string-append #$output "/bin/")) + (etc (string-append #$output "/etc/")) + (name "inspircd")) + (invoke "./configure" + (string-append "--prefix=" lib name) + (string-append "--binary-dir=" bin) + (string-append "--module-dir=" lib name "/modules/") + (string-append "--config-dir=" etc name)))))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list 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))) + (list argon2 + gnutls + libmaxminddb + mbedtls-apache + mysql + openldap + openssl + `(,pcre "bin") + perl + postgresql + re2 + sqlite + 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.") |