[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/4] gnu: Add psyced.
From: |
ng0 |
Subject: |
[PATCH 4/4] gnu: Add psyced. |
Date: |
Thu, 29 Sep 2016 10:38:10 +0000 |
* gnu/packages/psyc.scm (psyced): New variable.
---
gnu/packages/psyc.scm | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index 75d861e..cc1da6e 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -223,3 +223,106 @@ multi user virtual environments on the internet. This
technology is used for
MUDs and also the psyced implementation of the Protocol for SYnchronous
Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and
many bug fixes.")
(license license:gpl2))))
+
+;; XXX: We need a service for this which makes it functional, including
+;; copying initial data around.
+(define-public psyced
+ (let* ((commit "18e72b74ccc4edef58751475d15138fb1300a3b1")
+ (revision "1"))
+ (package
+ (name "psyced")
+ (version (string-append "20160830-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.psyced.org/psyced")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1h2cbb14lvnxyqf9g35h78d796hyhafg3h73jv69z6j2cvhka9r2"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("perl" ,perl)))
+ ;; psyced needs psyclpc at runtime, specifically you will also not
+ ;; be able to use psyced witout psyclpc.
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("psyclpc" ,psyclpc)))
+ (arguments
+ `(#:tests? #f ; No tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; No configure
+ (delete 'build) ; no make build needed
+ ;; Much of what install.sh used to do is now handled by psyconf.
Upstream
+ ;; reference is the Gentoo ebuild in the youbroketheinternet-overlay
+ ;; (https://gnunet.org/git/) where equal ways of installing psyced
are applied
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")) ;symlink it?
+ (doc (string-append out "/share/doc"))
+ ;; sandbox in /opt/psyced/world:
+ (opt (string-append out "/opt/psyced"))
+ (var (string-append out "/var/psyced"))
+ (vard (string-append var "/data"))
+ (vardpe (string-append vard "/person"))
+ (vardpl (string-append vard "/place"))
+ (varcon (string-append var "/config"))
+ (etcpsy (string-append out "/etc/psyc")) ;symlink to /
+ (varlp (string-append out "/var/log/psyced")) ;symlink
to /
+ (varlpp (string-append varlp "/place"))) ;symlink to /
+ (mkdir-p bin)
+ (mkdir-p doc)
+ (mkdir-p opt)
+ (mkdir-p var)
+ (mkdir-p vard)
+ (mkdir-p vardpe)
+ (mkdir-p vardpl)
+ (mkdir-p varcon)
+ (mkdir-p etcpsy)
+ (mkdir-p varlp)
+ (mkdir-p varlpp)
+
+ (copy-recursively "bin" bin)
+
+ (install-file "config/psyced.ini" etcpsy)
+
+ (install-file "AGENDA.txt" doc)
+ (install-file "CHANGESTODO" doc)
+ (install-file "COPYLEFT.txt" doc)
+ (install-file "LICENSE.txt" doc)
+
+ (copy-recursively "pike" opt)
+ (copy-recursively "place" opt)
+ (copy-recursively "run" opt)
+ (copy-recursively "tor" opt)
+ (copy-recursively "config" opt)
+ (copy-recursively "trust" opt)
+ (copy-recursively "utility" opt)
+ (copy-recursively "world" opt)
+ #t)))
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Make sure all executables in "bin" find the Perl modules
+ ;; provided by this package at runtime.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (path (string-append out "/lib/perl5/site_perl")))
+ (for-each (lambda (file)
+ (wrap-program file
+ `("PERL5LIB" ":" prefix (,path))))
+ (find-files bin "\\.*$"))
+ #t))))))
+ (home-page "http://www.psyced.org")
+ (synopsis "Server for Federated Messaging and Chat over PSYC, IRC, XMPP,
and more")
+ (description
+ "psyced is a scalable multi-protocol multi-casting chat, messaging
+and social server solution to build decentralized chat networks upon.
+Powerful, not bloated, not too hard to get into. It supports the
+following protocols and formats: PSYC, XMPP S2S, IRC, TELNET, HTTP, SMTP,
+OAuth, XML, RSS. It also has limited/experimental code for the following
+things: Clients using XMPP C2S, Java Applets, Status.Net, WAP, NNTP.")
+ (license license:gpl2))))
--
2.10.0