From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH 4/4] gnu: Add psyced. Date: Sun, 30 Oct 2016 06:48:16 +0100 Message-ID: <87h97u9ylb.fsf@elephly.net> References: <20160929103810.10273-1-ngillmann@runbox.com> <20160929103810.10273-4-ngillmann@runbox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0iyq-0002pj-R8 for guix-devel@gnu.org; Sun, 30 Oct 2016 01:48:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c0iyn-000083-Le for guix-devel@gnu.org; Sun, 30 Oct 2016 01:48:28 -0400 Received: from sender163-mail.zoho.com ([74.201.84.163]:21322) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c0iyn-00007P-CY for guix-devel@gnu.org; Sun, 30 Oct 2016 01:48:25 -0400 In-reply-to: <20160929103810.10273-4-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: ng0 Cc: guix-devel@gnu.org ng0 writes: > * 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))) This comment should go above “propagated-inputs”, not “native-inputs” > + (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")) I don’t understand the meaning of this. > + (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) Most of these are empty. Since at runtime we cannot write to the store anyway I wonder why you need them. This should be handled by a service IMO. > + > + (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) (for-each (cut install-file <> doc) '("AGENDA.txt" "CHANGESTODO" "COPYLEFT.txt" "LICENSE.txt")) However, I don’t think we normally copy licenses and TODO files. > + > + (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) Same as above. Use “for-each” here. > + #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") Could you shorten this? > + (description > + "psyced is a scalable multi-protocol multi-casting chat, > messaging This should start with a capital letter. > +and social server solution to build decentralized chat networks upon. > +Powerful, not bloated, not too hard to get into. It supports the Please remove the sentence “Powerful, not bloated…”. > +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)))) GPLv2 only? No “or later” clause?