diff --git a/README.org b/README.org new file mode 100644 index 0000000..5961c47 --- /dev/null +++ b/README.org @@ -0,0 +1,22 @@ +* About +kulupu mi is a guix channel which packages various federated servers. + +To use this channel, add the following entry to your default-channels: + +#+begin_src scheme + (channel + (name 'kulupu-mi) + (url "https://git.solarpunk.moe/TakeV/kulupu-mi.git") + (branch "main") + (introduction + (make-channel-introduction + "cc9a267ed48680f3cb7319f6c1fa5d6f6800b4b7" + (openpgp-fingerprint + "1086 326D E207 068C 1C02 5129 A64F 4134 5C74 00AF")))) +#+end_src + +* Packages +** [[https://docs.gotosocial.org/en/latest/][GoToSocial]] +Lightweight ActivityPub server, intended to be used with third party ActivityPub client. + +*Only includes backend server. No front end files at the moment.* diff --git a/kulupu/packages/gotosocial.scm b/kulupu/packages/gotosocial.scm new file mode 100644 index 0000000..765d8da --- /dev/null +++ b/kulupu/packages/gotosocial.scm @@ -0,0 +1,62 @@ +(define-module (kulupu packages gotosocial) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages golang) + #:use-module (gnu packages shells) + #:use-module (gnu packages python) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix build-system go)) + +(define-public gotosocial + (let* ((import-path "github.com/superseriousbusiness/gotosocial") + (working-path (string-append "src/" import-path))) + (package + (name "gotosocial") + (version "0.8.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/superseriousbusiness/gotosocial") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cxdk59r57hbg5pwpg5vhhdzwcgpa6jdwhhblhhyk7pq1ym386n1")))) + (build-system go-build-system) + (arguments + (list #:go go-1.20 + #:import-path import-path + #:phases #~(modify-phases %standard-phases + (add-before 'build 'chdir + (lambda _ + (setenv "ORIG_DIR" + (getcwd)) + (chdir #$working-path))) + (replace 'build + (lambda _ + (setenv "VERSION" + #$version) + (invoke "sh" + (string-append (getcwd) + "/scripts/build.sh")))) + (replace 'check + (lambda _ + (invoke "sh" "test/envparsing.sh"))) + (add-after 'install 'install-binary + (lambda _ + (install-file "gotosocial" + (string-append #$output "/bin")))) + (add-before 'install-license-files 'chdir-back + (lambda _ + (chdir (getenv "ORIG_DIR"))))))) + (propagated-inputs (list python-minimal-wrapper zsh)) + (home-page "https://github.com/superseriousbusiness/gotosocial") + (synopsis "GoToSocial") + (description + "GoToSocial is an @@url{https://activitypub.rocks/,ActivityPub} social network server, written in Golang.") + (license license:agpl3))))