From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: Re: [PATCH 4/4] gnu: Add psyced. Date: Fri, 28 Oct 2016 10:04:27 +0000 Message-ID: <87zilovlg4.fsf@we.make.ritual.n0.is> References: <871szw1q1f.fsf@we.make.ritual.n0.is> <20161004083429.3409-1-ngillmann@runbox.com> <20161004083429.3409-5-ngillmann@runbox.com> <20161026113712.GA9130@macbook42.flashner.co.il> 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]:56460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c042H-0003zZ-76 for guix-devel@gnu.org; Fri, 28 Oct 2016 06:05:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c042D-00037b-Ve for guix-devel@gnu.org; Fri, 28 Oct 2016 06:05:17 -0400 Received: from aibo.runbox.com ([91.220.196.211]:48394) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c042D-00037G-Ko for guix-devel@gnu.org; Fri, 28 Oct 2016 06:05:13 -0400 In-Reply-To: <20161026113712.GA9130@macbook42.flashner.co.il> (Efraim Flashner's message of "Wed, 26 Oct 2016 14:37:12 +0300") 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: Efraim Flashner Cc: guix-devel@gnu.org Efraim Flashner writes: > On Tue, Oct 04, 2016 at 08:34:29AM +0000, ng0 wrote: >> * 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 2a2ddc1..e929866 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) >> + > > I don't see any files being installed into %out/var/*, is psyced > supposed to be able to write to these directories at runtime? My idea was to create a directory structure as a first try to get psyced to work. It requires some symlinks at runtime. I have some notes, but those are mostly copy and paste from chatlogs between lynX and myself. No files are installed into var but later folders are symlinked into it. Because it must be /var and not %out/var I will populate this at first-use of service. This is, like I mentioned before, not a finished package. >> + (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)))) It also lists only the gp2, so it must be an old version of the package. I'll send in a new one soon. >> -- >> 2.10.0 >> >> -- ♥Ⓐ ng0 | ng0.chaosnet.org