Subject: [bug#51042] [PATCH] gnu: Add catgirl.

From: jgart <[email-masked]>
Date: Tue, 5 Oct 2021 16:48:35 -0400

* gnu/packages/irc.scm (catgirl): New variable.
---
 gnu/packages/irc.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 9258d1ee32..072ec41349 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -47,6 +47,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
   #: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)
@@ -325,6 +326,66 @@ for the IRCv3 protocol.")
      "ircII is a terminal based IRC and ICB client for UNIX systems.")
     (license license:bsd-3)))
 
+(define-public catgirl
+  (package
+    (name "catgirl")
+    (version "1.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://git.causal.agency/catgirl/snapshot/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0svpd2nqsr55ac98vczyhihs6pvgw7chspf6bdlwl98gch39dxif"))))
+    (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
+      `(("universal-ctags" ,universal-ctags)
+        ("pkg-config" ,pkg-config)))
+    (inputs
+      `(("libressl" ,libressl)
+        ("ncurses" ,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.
+@item Ignore: visibility of filtered messages can be toggled.
+@item Security: on FreeBSD and OpenBSD, the restrict option enables tight
+sandboxing.  Sandboxing is always used on OpenBSD.
+@end itemize
+Non-features include:
+@itemize
+@item Dynamic configuration: all configuration happens in a simple text file
+or on the command line.
+@item Multi-network: a terminal multiplexer such as @command{screen} or
+@command{tmux} can be used to connect catgirl to multiple networks.
+@item Reconnection: when the connection to the server is lost,
+@command{catgirl} exits.  It can be run in a loop or connected to a bouncer,
+such as pounce. @item CTCP: apart from ACTION, this protocol is useless at
+best and enables abuse at worst.
+@item Protocol coverage: IRCv3 extensions are implemented only where they
+contribute to the intended user experience.
+@item Cleartext IRC: TLS is now ubiquitous and certificates are easy to obtain.
+@end itemize")
+    (license license:gpl3+)))
+
 (define-public ii
   (package
     (name "ii")
-- 
2.33.0