unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ng0 <ng0@we.make.ritual.n0.is>
To: Efraim Flashner <efraim@flashner.co.il>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 4/4] gnu: Add psyced.
Date: Fri, 28 Oct 2016 10:04:27 +0000	[thread overview]
Message-ID: <87zilovlg4.fsf@we.make.ritual.n0.is> (raw)
In-Reply-To: <20161026113712.GA9130@macbook42.flashner.co.il> (Efraim Flashner's message of "Wed, 26 Oct 2016 14:37:12 +0300")

Efraim Flashner <efraim@flashner.co.il> 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

  reply	other threads:[~2016-10-28 10:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-29 10:38 [PATCH 1/4] gnu: Add perl-net-psyc ng0
2016-09-29 10:38 ` [PATCH 2/4] gnu: Add libpsyc ng0
2016-10-30  5:57   ` Ricardo Wurmus
2016-09-29 10:38 ` [PATCH 3/4] gnu: Add psyclpc ng0
2016-10-30  6:03   ` Ricardo Wurmus
2016-10-30 12:46     ` ng0
2016-09-29 10:38 ` [PATCH 4/4] gnu: Add psyced ng0
2016-09-29 10:44   ` ng0
2016-10-30  5:42     ` Ricardo Wurmus
2016-10-30  5:48   ` Ricardo Wurmus
2016-10-02  1:46 ` [PATCH 1/4] gnu: Add perl-net-psyc Leo Famulari
2016-10-02 10:35   ` ng0
2016-10-04  2:24     ` Leo Famulari
2016-10-04  8:23       ` ng0
2016-10-04  8:34         ` psyc.scm: new patch series ng0
2016-10-04  8:34           ` [PATCH 1/4] gnu: Add perl-net-psyc ng0
2016-10-04  8:34           ` [PATCH 2/4] gnu: Add libpsyc ng0
2016-10-04  8:34           ` [PATCH 3/4] gnu: Add psyclpc ng0
2016-10-04  8:34           ` [PATCH 4/4] gnu: Add psyced ng0
2016-10-26 11:37             ` Efraim Flashner
2016-10-28 10:04               ` ng0 [this message]
2016-10-30  5:54 ` [PATCH 1/4] gnu: Add perl-net-psyc Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zilovlg4.fsf@we.make.ritual.n0.is \
    --to=ng0@we.make.ritual.n0.is \
    --cc=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).