Subject: [bug#42500] [PATCH] gnu: Add srain.

From: Vinicius Monego <[email-masked]>
Date: Thu, 23 Jul 2020 22:14:49 -0300

* gnu/packages/irc.scm (srain): New package.
---
I get a "bus error" when I try to leave a channel. Can someone take a look at this?

It doesn't happen in the flatpak or deb version. Everything else works.

 gnu/packages/irc.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 81e4205acf..8edb2f6bcb 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Marius Bakke <[email-masked]>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2020 Oleg Pykhalov <[email-masked]>
+;;; Copyright © 2020 Vinicius Monego <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,8 +27,10 @@
 (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 (gnu packages)
@@ -45,7 +48,9 @@
   #:use-module (gnu packages file)
   #:use-module (gnu packages gettext)
   #: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)
@@ -60,6 +65,7 @@
   #:use-module (gnu packages ruby)
   #: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)
@@ -238,6 +244,48 @@ 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.1")
+    (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 "1ypaxdnag61smd8vy4rzl8sarwxa85543nzp0c9zfq02jqmz1gah"))))
+    (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)
+       ("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")
-- 
2.20.1