From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: [PATCH 4/4] gnu: Add psyced. Date: Thu, 29 Sep 2016 10:38:10 +0000 Message-ID: <20160929103810.10273-4-ngillmann@runbox.com> References: <20160929103810.10273-1-ngillmann@runbox.com> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54357) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpYjs-0000mp-MA for guix-devel@gnu.org; Thu, 29 Sep 2016 06:38:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpYjp-0008WE-Bv for guix-devel@gnu.org; Thu, 29 Sep 2016 06:38:51 -0400 Received: from aibo.runbox.com ([91.220.196.211]:39200) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpYjp-0008W5-0y for guix-devel@gnu.org; Thu, 29 Sep 2016 06:38:49 -0400 Received: from [10.9.9.211] (helo=mailfront11.runbox.com) by bars.runbox.com with esmtp (Exim 4.71) (envelope-from ) id 1bpYjo-0005R6-DI for guix-devel@gnu.org; Thu, 29 Sep 2016 12:38:48 +0200 In-Reply-To: <20160929103810.10273-1-ngillmann@runbox.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * 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