From patchwork Thu Apr 25 22:08:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesse Eisses X-Patchwork-Id: 63376 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id DB35B27BBEA; Thu, 25 Apr 2024 23:22:08 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 740B827BBE2 for ; Thu, 25 Apr 2024 23:22:07 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s07Th-0004Zj-BB; Thu, 25 Apr 2024 18:22:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s07Ta-0004ZJ-27 for guix-patches@gnu.org; Thu, 25 Apr 2024 18:22:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s07TZ-00037a-6L for guix-patches@gnu.org; Thu, 25 Apr 2024 18:21:57 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s07Tq-00024I-Gy for guix-patches@gnu.org; Thu, 25 Apr 2024 18:22:14 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#70317] [PATCH v2 13/13] gnu: packages: Add soju Resent-From: Jesse Eisses Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 25 Apr 2024 22:22:13 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70317 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 70317@debbugs.gnu.org Cc: Jesse Eisses Received: via spool by 70317-submit@debbugs.gnu.org id=B70317.17140836807415 (code B ref 70317); Thu, 25 Apr 2024 22:22:13 +0000 Received: (at 70317) by debbugs.gnu.org; 25 Apr 2024 22:21:20 +0000 Received: from localhost ([127.0.0.1]:33429 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s07So-0001tk-AN for submit@debbugs.gnu.org; Thu, 25 Apr 2024 18:21:19 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:47278) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s07QJ-0001Th-3J for 70317@debbugs.gnu.org; Thu, 25 Apr 2024 18:18:43 -0400 Authentication-Results: purelymail.com; auth=pass DKIM-Signature: a=rsa-sha256; b=AsAqe/QQgW7lR6mVxebxa979hvUWhFSr+r4jR9qjPqKPxHweou1sM5SwLLp8WzJr1roiko/kyEcbVQMhJ6tQHztU9IOgDlo/7zWjpCFj5vzxvIj/CznPno831ZOABPqj0GjMQiIfaHX/yYi3UOjeRMLOqgOL6DLvpiTWlwIdmCbTRQjGoI8HtQ3WNFiELYp9EEYGUU2qFxYfZTK422VeBRUDynisSKwcVLWSCKi0dGTZJxnDfjKW6s9LoLtj+Dpj0P5xltVMaOd/J50zBxykfCGtVIkWNS7iTRRG4BmnfhwzMoU3jAAmbRuqlSB9roaYYnLo+AZ/VN/IzvVyahW8Kg==; s=purelymail3; d=eisses.email; v=1; bh=A3nrJufWfw75dX5p/2vONlZQf/ZuaMOsIjzV5pxkyIw=; h=Received:From:To:Subject; DKIM-Signature: a=rsa-sha256; b=jGGiKjTdefKG7nd1AdVaiTTPYb5Y5KbUjv/BquwhiIrpFDb5S4OU2JV/Bvv3hhGjcEJlr6TjB0Ww1wP57WvTLOROhNlUtcpGpNtrcYM6rmG23MAWoNCYyM9c1TD9znjE4RTMkaDQkCMNsqcfKMJ3FnMVEB5LmhpU/2giTKQXBHiDvVlpAMu4qA/yie/h2Vvv3AVd4/XeiJ5nKyomQbZnzkbr+JWcPFM9Xi1o8bFds5bsrCtz0JKH4/mLAp8WL4rtsmSbkKurBpVxDis6h8WCDU3xf9SAE1XVhP4xw73mjE5bfzkZIq8YYXF9gu58G9c5T5TBZWfR2cpFaT9xrucysw==; s=purelymail3; d=purelymail.com; v=1; bh=A3nrJufWfw75dX5p/2vONlZQf/ZuaMOsIjzV5pxkyIw=; h=Feedback-ID:Received:From:To:Subject; Feedback-ID: 18307:3403:null:purelymail X-Pm-Original-To: 70317@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1418135011; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 25 Apr 2024 22:17:46 +0000 (UTC) Date: Fri, 26 Apr 2024 00:08:24 +0200 Message-ID: <20240425221648.5322-15-jesse@eisses.email> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240425221648.5322-2-jesse@eisses.email> References: <20240425221648.5322-2-jesse@eisses.email> MIME-Version: 1.0 X-MIME-Autoconverted: from 8bit to quoted-printable by Purelymail X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Jesse Eisses X-ACL-Warn: , Jesse Eisses via Guix-patches X-Patchwork-Original-From: Jesse Eisses via Guix-patches via From: Jesse Eisses Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/irc.scm | 77 ++++++++++++++++++++++++++++++++++++ gnu/packages/messaging.scm | 81 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 80b2e740ee..90dad61eb9 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -1032,3 +1032,80 @@ (define-public snuik now). It has some basic functionality only, such as seen, tell, and what.") (license license:gpl3+))) + +(define-public soju + (package + (name "soju") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~emersion/soju") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a0mp8f5i1ajh67y6fasmzgca3w1ccaiz19sx87rflbyi1mrhdlz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "git.sr.ht/~emersion/soju" + #:go go-1.19 + #:install-source? #f + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/git.sr.ht/~emersion/soju" + (setenv "SYSCONFDIR" + (string-append (assoc-ref outputs "out") + "/etc")) + (invoke "make")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/git.sr.ht/~emersion/soju" + (let ((bin-dir (string-append (assoc-ref outputs "out") + "/bin")) + (conf-dir (string-append (assoc-ref outputs + "out") + "/etc/soju"))) + (install-file "soju" bin-dir) + (install-file "sojudb" bin-dir) + (install-file "sojuctl" bin-dir) + ;; the default config file is not useful so we empty it for now + (substitute* "config.in" ((".*") "")) + (mkdir-p conf-dir) + (copy-file "config.in" + (string-append conf-dir "/config")))))) + (add-before 'build 'set-flags + (lambda _ + (begin + (setenv "CGO_LDFLAGS" + "-Wl,--unresolved-symbols=ignore-in-object-files") #t)))))) + (native-inputs (list scdoc)) + (inputs (list go-google-golang-org-protobuf go-1.19)) + (propagated-inputs + (list go-nhooyr-io-websocket + go-gopkg-in-irc + go-golang-org-x-time + go-golang-org-x-crypto + go-github-com-prometheus-client-golang + go-github-com-pires-go-proxyproto + go-github-com-msteinert-pam + go-github-com-mattn-go-sqlite3 + go-github-com-lib-pq + go-github-com-emersion-go-sasl + go-github-com-sherclockholmes-webpush-go + go-git-sr-ht-sircmpwn-go-bare + go-git-sr-ht-emersion-go-sqlite3-fts5 + go-git-sr-ht-emersion-go-scfg)) + (home-page "https://git.sr.ht/~emersion/soju") + (synopsis "User-friendly IRC bouncer") ; + (description + "Connects to upstream IRC servers on behalf of the user to provide +extra functionality. soju supports many features +such as multiple users, numerous @@url{https://ircv3.net/,IRCv3} extensions, +chat history playback and detached channels. It is well-suited for both small +and large deployments.") + (license license:agpl3))) + diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 20bdb713b5..f2529f6cb3 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -88,6 +88,7 @@ (define-module (gnu packages messaging) #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gperf) #:use-module (gnu packages graphviz) @@ -96,6 +97,7 @@ (define-module (gnu packages messaging) #:use-module (gnu packages guile) #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) + #:use-module (gnu packages irc) #:use-module (gnu packages image) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) @@ -3625,4 +3627,83 @@ (define-public senpai "@code{senpai} is an IRC client that works best with bouncers.") (license license:isc))) +(define-public soju + (package + (name "soju") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~emersion/soju") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a0mp8f5i1ajh67y6fasmzgca3w1ccaiz19sx87rflbyi1mrhdlz")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.sr.ht/~emersion/soju" + #:go ,go-1.19 + #:install-source? #f + #:phases (modify-phases %standard-phases + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/git.sr.ht/~emersion/soju" + (setenv "SYSCONFDIR" + (string-append (assoc-ref outputs "out") + "/etc")) + (invoke "make")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/git.sr.ht/~emersion/soju" + (let ((bin-dir (string-append (assoc-ref outputs "out") + "/bin")) + (conf-dir (string-append (assoc-ref outputs + "out") + "/etc/soju"))) + (install-file "soju" bin-dir) + (install-file "sojudb" bin-dir) + (install-file "sojuctl" bin-dir) + ;; the default config file is not useful so we empty it for now + (substitute* "config.in" ((".*") "")) + (mkdir-p conf-dir) + (copy-file "config.in" + (string-append conf-dir "/config")))))) + (add-before 'build 'set-flags + (lambda _ + (begin + (setenv "CGO_LDFLAGS" + "-Wl,--unresolved-symbols=ignore-in-object-files") #t)))))) + (native-inputs `(("scdoc" ,scdoc))) + (inputs `(("go-google-golang-org-protobuf" ,go-google-golang-org-protobuf) + ("go" ,go-1.19))) + (propagated-inputs + `(("go-nhooyr-io-websocket" ,go-nhooyr-io-websocket) + ("go-gopkg-in-irc-v4" ,go-gopkg-in-irc-v4) + ("go-golang-org-x-time" ,go-golang-org-x-time) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-github-com-prometheus-client-golang" + ,go-github-com-prometheus-client-golang-v1.17) + ("go-github-com-pires-go-proxyproto" + ,go-github-com-pires-go-proxyproto) + ("go-github-com-msteinert-pam" ,go-github-com-msteinert-pam) + ("go-github-com-mattn-go-sqlite3" + ,go-github-com-mattn-go-sqlite3) + ("go-github-com-lib-pq" ,go-github-com-lib-pq) + ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl) + ("go-github-com-sherclockholmes-webpush-go" + ,go-github-com-sherclockholmes-webpush-go) + ("go-git-sr-ht-sircmpwn-go-bare" ,go-git-sr-ht-sircmpwn-go-bare) + ("go-git-sr-ht-emersion-go-sqlite3-fts5" ,go-git-sr-ht-emersion-go-sqlite3-fts5) + ("go-git-sr-ht-emersion-go-scfg" ,go-git-sr-ht-emersion-go-scfg))) + (home-page "https://git.sr.ht/~emersion/soju") + (synopsis "User-friendly IRC bouncer") ; + (description + "Connects to upstream IRC servers on behalf of the user to provide +extra functionality. soju supports many features +such as multiple users, numerous @@url{https://ircv3.net/,IRCv3} extensions, +chat history playback and detached channels. It is well-suited for both small +and large deployments.") + (license license:agpl3))) + ;;; messaging.scm ends here