;;; 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 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Nils Gillmann <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 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)
(define-public quassel
(package
(name "quassel")
- (version "0.13.0")
+ (version "0.13.1")
(source
(origin
(method url-fetch)
- (uri (string-append "http://quassel-irc.org/pub/quassel-"
+ (uri (string-append "https://quassel-irc.org/pub/quassel-"
version ".tar.bz2"))
(sha256
(base32
- "0xp9mppxl63qzgsdyprmblvfrj0bb9z57kfc088gvcavvq1210nr"))
+ "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/")
(define-public irssi
(package
(name "irssi")
- (version "1.1.2")
+ (version "1.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
version ".tar.xz"))
(sha256
(base32
- "0clppwqhllrmqjg1dd47v9v1qiqx7cf9afm81bm1pscllf4jpk2w"))))
+ "17vninwcdfxw39xl2q55qircckckjk2xlvkvlwgj5lhlxppvyix6"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(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)
(define-public weechat
(package
(name "weechat")
- (version "2.1")
+ (version "3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://weechat.org/files/src/weechat-"
version ".tar.xz"))
(sha256
(base32
- "0f7d2vdbxc5kgjl7lkamnbxvidgxwa8f9j3nr9fd4gr4z0gzi86d"))
- (patches (search-patches "weechat-python.patch"))))
+ "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)
- ("guile" ,guile-2.0)
- ("lua" ,lua-5.1)
- ("python" ,python-2)
- ("perl" ,perl)
- ("tcl" ,tcl)))
+ (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)))
(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"
- ((".*\\{ \"(jvascript|php|ruby)\", " all) ; sic
- (string-append "// SKIP" all)))
- #t))
- (add-after 'install 'wrap
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (py2 (assoc-ref inputs "python")))
- (wrap-program (string-append out "/bin/weechat")
- `("PATH" ":" prefix (,(string-append py2 "/bin"))))
- #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.
(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
"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 "2017.10.01")
+ (version "2019.11.22")
(source
(origin
(method url-fetch)
(uri (pypi-uri "limnoria" version))
(sha256
- (base32
- "1hd8h257x7a0s4rvb4aqvfi77qfcyv6jaz70nndg7y6p4yhvjmy6"))))
+ (base32 "0853xk1ps3v6lkmfx50wv56vynnzpl84v66hxnhl8i34zl36kk3c"))))
(build-system python-build-system)
(inputs
`(("python-pytz" ,python-pytz)
;; "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)))