X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/2cb827b38ede254f87d3ce745a95f51f238c4373..7cd50ad7faef745dc6c68e749ae97dc6b526ffca:/gnu/packages/irc.scm diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 622f1253d8..0d9908c771 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -2,10 +2,14 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014 Kevin Lemonnier ;;; Copyright © 2015, 2017 Ludovic Courtès -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner +;;; Copyright © 2016 Nikita ;;; Copyright © 2017 Marius Bakke -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; 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. ;;; @@ -25,10 +29,13 @@ (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 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) @@ -43,21 +50,30 @@ #: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 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) @@ -76,15 +92,14 @@ (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. @@ -100,8 +115,7 @@ (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 @@ -110,10 +124,12 @@ ("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 +143,7 @@ irssi, but graphical.") (define-public irssi (package (name "irssi") - (version "1.1.3") + (version "1.2.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/irssi/irssi/" @@ -135,7 +151,7 @@ irssi, but graphical.") version ".tar.xz")) (sha256 (base32 - "0jq8zjdhdjxkjbfl4g4nfr1ninyfxffa27lm8vcyrihhhkrn65yf")))) + "0y3mhnyr7x8ir8dlj83vbnchpfld28vdfni9yhpvls45j460c9v7")))) (build-system gnu-build-system) (arguments `(#:phases @@ -148,7 +164,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,62 +185,44 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "2.5") + (version "2.9") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "09sc5lf7z70x3iw87q4zh8rbyngsw89pwnzs5jk195zzqdspgj2j")) - (patches (search-patches "weechat-python.patch")))) + "03psmp4hxsb9sz35i4cyz6dcbs3ab73amhyx0w0hv8f3hp1hdd7a")))) (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 . - (λ _ - ;; 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)) - (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. @@ -233,6 +234,49 @@ 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.2") + (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 "1jjs3lrlz67z9ghpc4c406a5r3naisn1famdh9rwwcg4y4y1vcws")))) + (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))) + (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") @@ -333,14 +377,13 @@ using a mouse. It is customizable and extensible with plugins and scripts.") (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) @@ -452,3 +495,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)))