aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/guile-xyz.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-12-18 22:36:41 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-12-18 22:37:20 +0100
commitd083809c8048a64f71a40f0657c217c9dd230428 (patch)
tree9d67b24e0816e17caf8d425ccb8376a95c200c67 /gnu/packages/guile-xyz.scm
parent422e571d4a967c42149512acb29dc5e6025d65fc (diff)
downloadguix-d083809c8048a64f71a40f0657c217c9dd230428.tar
guix-d083809c8048a64f71a40f0657c217c9dd230428.tar.gz
gnu: Add guile-pubstrate.
* gnu/packages/guile-xyz.scm (guile-pubstrate): New variable.
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r--gnu/packages/guile-xyz.scm66
1 files changed, 66 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index e3c4d7c10f..745c7b3217 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -337,6 +337,72 @@ to UNIX pipes (@code{|}), Clojure's threading macros (@code{->} and
@code{->>}).")
(license license:gpl3+))))
+(define-public guile-pubstrate
+ (let ((commit "b11b7df5e7ffefa45c5859b868d8125c4d939418")
+ (revision "1"))
+ (package
+ (name "guile-pubstrate")
+ (version (git-version "0.1.dev" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/dustyweb/pubstrate")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qk45b3hjhzzq3dim699jrbmlc7ryr4s1fiz99ljz16rag2rr5p4"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ '(list "GUILE_AUTO_COMPILE=0")
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'fix-build-system
+ (lambda _
+ (substitute* "configure.ac"
+ (("GUILE_PROGS" m)
+ (string-append m "
+guilemoduledir=\"${datarootdir}/guile/site/${GUILE_EFFECTIVE_VERSION}\"
+AC_SUBST([guilemoduledir])
+AC_SUBST([GUILE_EFFECTIVE_VERSION])
+")))
+ ;; The user.scm line is doubled
+ (substitute* "Makefile.am"
+ ((".*pubstrate/webapp/user.scm.*") "")
+ ((".*pubstrate/webapp/app.scm.*" m)
+ (string-append m "pubstrate/webapp/user.scm \\\n"))
+ (("/ccache") "/site-ccache"))))
+ (add-after 'unpack 'fix-srfi64-tests
+ (lambda _
+ (substitute* (find-files "tests/" "test-.*\\.scm$")
+ (("\\(test-exit\\)") "")
+ (("\\(test-end.*" m)
+ (string-append "(test-exit)" m))))))))
+ (native-inputs
+ (list autoconf
+ automake
+ pkg-config
+ texinfo))
+ (inputs
+ (list guile-3.0
+ libgcrypt))
+ (propagated-inputs
+ (list gnutls
+ guile-8sync-for-pubstrate
+ guile-gcrypt
+ guile-gdbm-ffi
+ guile-irregex
+ guile-lib
+ guile-sjson
+ guile-webutils))
+ (home-page "https://gitlab.com/dustyweb/pubstrate/")
+ (synopsis "ActivityStreams and ActivityPub implementation in Guile")
+ (description "This package provides an implementation of ActivityStreams
+and ActivityPub in Guile. It includes a full (currently demo) web server.")
+ (license license:gpl3+))))
+
(define-public guile-f-scm
(package
(name "guile-f-scm")