@@ -2,6 +2,7 @@
;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info>
+;;; Copyright © 2024 Sergio Durigan Junior <sergiodj@sergiodj.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,12 +24,15 @@ (define-module (gnu packages fediverse)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages check)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
@@ -44,6 +48,7 @@ (define-module (gnu packages fediverse)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages time)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages xml))
(define-public toot
@@ -190,3 +195,57 @@ (define-public python-mastodon-py
(description
"This package provides a python wrapper for the Mastodon API.")
(license license:expat)))
+
+(define-public snac2
+ (package
+ (name "snac2")
+ (version "2.55")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/grunfink/snac2")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06qmg0wy1f4r6l8j52jnma4d2b8sj8fqf52vn7qqbbs8jz7aj74s"))))
+ (build-system gnu-build-system)
+ (inputs `(,curl ,openssl))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'remove-usr-local
+ (lambda _
+ (substitute* "Makefile"
+ (("-I/usr/local/include")
+ "")
+ (("-L/usr/local/lib")
+ "")) #t)))
+ #:tests? #f
+ #:make-flags (list ,(string-append "CC="
+ (cc-for-target))
+ ,(string-append "CFLAGS=-O2 -g -Wall -Wextra")
+ (string-append "PREFIX=" %output))))
+ (home-page "https://codeberg.org/grunfink/snac2")
+ (synopsis
+ "Simple, minimalistic ActivityPub instance written in portable C")
+ (description
+ "Snac is a simple, minimalistic ActivityPub instance written in
+portable C.
+
+It features:
+
+@itemize
+@item Lightweight, minimal dependencies
+@item Extensive support of ActivityPub operations, e.g. write public notes,
+follow users, be followed, reply to the notes of others, admire wonderful
+content (like or boost), write private messages, etc.
+@item Multiuser support
+@item Mastodon API support, so Mastodon-compatible apps can be used
+@item Simple but effective web interface
+@item Easily-accessed MUTE button to silence users
+@item Tested interoperability with related software
+@item No database needed
+@item Totally JavaScript-free; no cookies either
+@end itemize")
+ (license license:expat)))
* gnu/packages/fediverse.scm (snac2): New variable. Change-Id: I085a53d0fea909c19f0ec562cc361ead3e849a40 Signed-off-by: Sergio Durigan Junior <sergiodj@sergiodj.net> Change-Id: I6ffcb08c13953baec32dc8a0f50cdc0deee76956 --- gnu/packages/fediverse.scm | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+)