unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 1/4] gnu: Add perl-net-psyc.
@ 2016-09-29 10:38 ng0
  2016-09-29 10:38 ` [PATCH 2/4] gnu: Add libpsyc ng0
                   ` (4 more replies)
  0 siblings, 5 replies; 22+ messages in thread
From: ng0 @ 2016-09-29 10:38 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk          |   1 +
 gnu/packages/psyc.scm | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 106 insertions(+)
 create mode 100644 gnu/packages/psyc.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index b864ea9..d49d458 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -296,6 +296,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/pumpio.scm			\
   %D%/packages/pretty-print.scm			\
   %D%/packages/protobuf.scm			\
+  %D%/packages/psyc.scm                         \
   %D%/packages/pv.scm				\
   %D%/packages/python.scm			\
   %D%/packages/qemu.scm				\
diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
new file mode 100644
index 0000000..4d53dfd
--- /dev/null
+++ b/gnu/packages/psyc.scm
@@ -0,0 +1,105 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages psyc)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix build-system perl)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages web))
+
+(define-public perl-net-psyc
+  (package
+    (name "perl-net-psyc")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://perl.psyc.eu/"
+                           "perlpsyc-" version ".zip"))
+       (file-name (string-append name "-" version ".zip"))
+       (sha256
+        (base32
+         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
+       ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
+       ;; we can add it back when this is no longer the case.
+       (snippet '(delete-file "contrib/psycmp3"))))
+    (build-system perl-build-system)
+    (inputs
+     `(("perl-curses" ,perl-curses)
+       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; No configure script
+         ;; There is a Makefile, but it does not install everything
+         ;; (leaves out psycion) and says
+         ;; "# Just to give you a rough idea". XXX: Fix it upstream.
+         (replace 'build
+           (lambda _
+             (zero? (system* "make" "manuals"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/perl-net-psyc"))
+                    (man1 (string-append out "/share/man/man1"))
+                    (man3 (string-append out "/share/man/man3"))
+                    (bin (string-append out "/bin"))
+                    (libpsyc (string-append out "/lib/psyc/ion"))
+                    (libperl (string-append out "/lib/perl5/site_perl/"
+                                            ,(package-version perl))))
+
+               (copy-recursively "lib/perl5" libperl)
+               (copy-recursively "lib/psycion" libpsyc)
+               (copy-recursively "bin" bin)
+               (install-file "cgi/psycpager" (string-append doc "/cgi"))
+               (copy-recursively "contrib" (string-append doc "/contrib"))
+               (copy-recursively "hooks" (string-append doc "/hooks"))
+               (copy-recursively "sdj" (string-append doc "/sdj"))
+               (install-file "README.txt" doc)
+               (install-file "TODO.txt" doc)
+               (copy-recursively "share/man/man1" man1)
+               (copy-recursively "share/man/man3" man3)
+               #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 (getenv "PERL5LIB")))
+               (for-each (lambda (file)
+                           (wrap-program file
+                             `("PERL5LIB" ":" prefix (,path))))
+                         (find-files bin "\\.*$"))
+               #t))))))
+    (description
+     "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and
+Gtk2 event loops.  This package includes 12 applications and additional scripts:
+psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console
+for @uref{https://torproject.org,tor} router) and many more.")
+    (synopsis "Perl implementation of PSYC protocol")
+    (home-page "http://perlpsyc.pages.de")
+    (license (list license:gpl2 (package-license perl)
+                   ;; contrib/irssi-psyc.pl:
+                   license:public-domain
+                   ;; bin/psycplay states AGPL with no version:
+                   license:agpl3+))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/4] gnu: Add libpsyc.
  2016-09-29 10:38 [PATCH 1/4] gnu: Add perl-net-psyc ng0
@ 2016-09-29 10:38 ` ng0
  2016-10-30  5:57   ` Ricardo Wurmus
  2016-09-29 10:38 ` [PATCH 3/4] gnu: Add psyclpc ng0
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 22+ messages in thread
From: ng0 @ 2016-09-29 10:38 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm (libpsyc): New variable.
---
 gnu/packages/psyc.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index 4d53dfd..253fa64 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -21,7 +21,10 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages web))
@@ -103,3 +106,41 @@ for @uref{https://torproject.org,tor} router) and many more.")
                    license:public-domain
                    ;; bin/psycplay states AGPL with no version:
                    license:agpl3+))))
+
+(define-public libpsyc
+  (package
+    (name "libpsyc")
+    (version "20160913")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.psyced.org/files/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("netcat" ,netcat)
+       ("procps" ,procps)))
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The rust bindings are the only ones in use, the lpc bindings
+         ;; are in psyclpc.  The other bindings are not used by anything,
+         ;; the chances are high that the bindings do not even work,
+         ;; therefore we do not include them.
+         ;; TODO: Get a cargo build system in Guix.
+         (delete 'configure)))) ; no configure script
+    (home-page "http://about.psyc.eu/libpsyc")
+    (description
+     "@code{libpsyc} is a PSYC library in C which implements
+core aspects of PSYC, useful for all kinds of clients and servers
+including psyced.")
+    (synopsis "PSYC library in C")
+    (license (list license:agpl3+
+                   ;; test/test.c is based on a public-domain test
+                   license:public-domain))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/4] gnu: Add psyclpc.
  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-09-29 10:38 ` ng0
  2016-10-30  6:03   ` Ricardo Wurmus
  2016-09-29 10:38 ` [PATCH 4/4] gnu: Add psyced ng0
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 22+ messages in thread
From: ng0 @ 2016-09-29 10:38 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm (psyclpc): New variable.
---
 gnu/packages/psyc.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index 253fa64..75d861e 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -18,15 +18,24 @@
 
 (define-module (gnu packages psyc)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
 (define-public perl-net-psyc
@@ -144,3 +153,73 @@ including psyced.")
     (license (list license:agpl3+
                    ;; test/test.c is based on a public-domain test
                    license:public-domain))))
+
+;; This commit removes the historic bundled pcre, not released as a tarball so far.
+(define-public psyclpc
+  (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e")
+         (revision "1"))
+  (package
+    (name "psyclpc")
+    (version (string-append "20160821-" revision "." (string-take commit 7)))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.psyced.org/git/psyclpc")
+                    (commit commit)))
+              (sha256
+               (base32
+                "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests/checks.
+       #:configure-flags
+       ;; If you have questions about this part, look at
+       ;; "src/settings/psyced" and the ebuild.
+       (list
+        "--enable-use-tls=yes"
+        "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
+        (string-append "--prefix="
+                       (assoc-ref %outputs "out"))
+        ;; src/Makefile: Set MUD_LIB to the directory which contains
+        ;; the mud data. defaults to MUD_LIB = @libdir@
+        (string-append "--libdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/world")
+        (string-append "--bindir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/bin")
+        ;; src/Makefile: Set ERQ_DIR to directory which contains the
+        ;; stuff which ERQ can execute (hopefully) savely.  Was formerly
+        ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
+        (string-append "--libexecdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/run"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir-to-src
+           ;; We need to pass this as env variables
+           ;; and manually change the directory.
+           (lambda _
+             (chdir "src")
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (setenv "SHELL" (which "sh")))))
+       #:make-flags (list "install-all")))
+    (inputs
+     `(("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("pcre" ,pcre)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("bison" ,bison)
+       ("gnu-gettext" ,gnu-gettext)
+       ("help2man" ,help2man)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "http://lpc.psyc.eu/")
+    (synopsis "psycLPC is a multi-user network server programming language")
+    (description
+     "LPC is a bytecode language, invented to specifically implement
+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))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/4] gnu: Add psyced.
  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-09-29 10:38 ` [PATCH 3/4] gnu: Add psyclpc ng0
@ 2016-09-29 10:38 ` ng0
  2016-09-29 10:44   ` ng0
  2016-10-30  5:48   ` Ricardo Wurmus
  2016-10-02  1:46 ` [PATCH 1/4] gnu: Add perl-net-psyc Leo Famulari
  2016-10-30  5:54 ` [PATCH 1/4] gnu: Add perl-net-psyc Ricardo Wurmus
  4 siblings, 2 replies; 22+ messages in thread
From: ng0 @ 2016-09-29 10:38 UTC (permalink / raw)
  To: guix-devel

* 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

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] gnu: Add psyced.
  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
  1 sibling, 1 reply; 22+ messages in thread
From: ng0 @ 2016-09-29 10:44 UTC (permalink / raw)
  To: guix-devel

Like in the old patch (I don't know how to pass git sendemail the root
of another thread), this is not a finished patch but I require input on
this. I have to debug by writing the service.

ng0 <ngillmann@runbox.com> 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)))
> +      (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
>
>

-- 
              ng0

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] gnu: Add perl-net-psyc.
  2016-09-29 10:38 [PATCH 1/4] gnu: Add perl-net-psyc ng0
                   ` (2 preceding siblings ...)
  2016-09-29 10:38 ` [PATCH 4/4] gnu: Add psyced ng0
@ 2016-10-02  1:46 ` Leo Famulari
  2016-10-02 10:35   ` ng0
  2016-10-30  5:54 ` [PATCH 1/4] gnu: Add perl-net-psyc Ricardo Wurmus
  4 siblings, 1 reply; 22+ messages in thread
From: Leo Famulari @ 2016-10-02  1:46 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

On Thu, Sep 29, 2016 at 10:38:07AM +0000, ng0 wrote:
> * gnu/packages/psyc.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "http://perl.psyc.eu/"
> +                           "perlpsyc-" version ".zip"))
> +       (file-name (string-append name "-" version ".zip"))
> +       (sha256
> +        (base32
> +         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))

This is the wrong hash.
http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02076.html

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] gnu: Add perl-net-psyc.
  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
  0 siblings, 1 reply; 22+ messages in thread
From: ng0 @ 2016-10-02 10:35 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Leo Famulari <leo@famulari.name> writes:

> On Thu, Sep 29, 2016 at 10:38:07AM +0000, ng0 wrote:
>> * gnu/packages/psyc.scm: New file.
>> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
>
>> +    (source
>> +     (origin
>> +       (method url-fetch)
>> +       (uri (string-append "http://perl.psyc.eu/"
>> +                           "perlpsyc-" version ".zip"))
>> +       (file-name (string-append name "-" version ".zip"))
>> +       (sha256
>> +        (base32
>> +         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
>
> This is the wrong hash.
> http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02076.html

No, it's not. Our server recently had to be moved and I don't know what
happened during that time, but to make sure I checked the download
before I commited the new series and repeated that check just now:

ng0@shadowwalker ~/re-src$ wget http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
--2016-10-02 10:34:12--  http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
Resolving perlpsyc.psyc.eu (perlpsyc.psyc.eu)... 188.40.42.221
Connecting to perlpsyc.psyc.eu (perlpsyc.psyc.eu)|188.40.42.221|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 444423 (434K) [application/zip]
Saving to: ‘perlpsyc-1.1.zip’

perlpsyc-1.1.zip           100%[=====================================>] 434.01K   927KB/s    in 0.5s    

2016-10-02 10:34:12 (927 KB/s) - ‘perlpsyc-1.1.zip’ saved [444423/444423]

ng0@shadowwalker ~/re-src$ guix hash perlpsyc-1.1.zip 
1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42
ng0@shadowwalker ~/re-src$ 

-- 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] gnu: Add perl-net-psyc.
  2016-10-02 10:35   ` ng0
@ 2016-10-04  2:24     ` Leo Famulari
  2016-10-04  8:23       ` ng0
  0 siblings, 1 reply; 22+ messages in thread
From: Leo Famulari @ 2016-10-04  2:24 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

On Sun, Oct 02, 2016 at 10:35:43AM +0000, ng0 wrote:
> Leo Famulari <leo@famulari.name> writes:
> 
> > On Thu, Sep 29, 2016 at 10:38:07AM +0000, ng0 wrote:
> >> * gnu/packages/psyc.scm: New file.
> >> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> >
> >> +    (source
> >> +     (origin
> >> +       (method url-fetch)
> >> +       (uri (string-append "http://perl.psyc.eu/"
> >> +                           "perlpsyc-" version ".zip"))
> >> +       (file-name (string-append name "-" version ".zip"))
> >> +       (sha256
> >> +        (base32
> >> +         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
> >
> > This is the wrong hash.
> > http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02076.html
> 
> No, it's not. Our server recently had to be moved and I don't know what
> happened during that time, but to make sure I checked the download
> before I commited the new series and repeated that check just now:
> 
> ng0@shadowwalker ~/re-src$ wget http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
> --2016-10-02 10:34:12--  http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
> Resolving perlpsyc.psyc.eu (perlpsyc.psyc.eu)... 188.40.42.221
> Connecting to perlpsyc.psyc.eu (perlpsyc.psyc.eu)|188.40.42.221|:80... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 444423 (434K) [application/zip]
> Saving to: ‘perlpsyc-1.1.zip’
> 
> perlpsyc-1.1.zip           100%[=====================================>] 434.01K   927KB/s    in 0.5s    
> 
> 2016-10-02 10:34:12 (927 KB/s) - ‘perlpsyc-1.1.zip’ saved [444423/444423]
> 
> ng0@shadowwalker ~/re-src$ guix hash perlpsyc-1.1.zip 
> 1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42

The URL you used with wget is different from the URL used in the patch.

The download from perlpsyc.psyc.eu is a Git repo whereas the download
from perl.psyc.eu is a plain directory.

The patch uses the URL for the plain directory while the hash is of the
Git repo.

Can you clarify which download the package should use?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] gnu: Add perl-net-psyc.
  2016-10-04  2:24     ` Leo Famulari
@ 2016-10-04  8:23       ` ng0
  2016-10-04  8:34         ` psyc.scm: new patch series ng0
  0 siblings, 1 reply; 22+ messages in thread
From: ng0 @ 2016-10-04  8:23 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Leo Famulari <leo@famulari.name> writes:

> On Sun, Oct 02, 2016 at 10:35:43AM +0000, ng0 wrote:
>> Leo Famulari <leo@famulari.name> writes:
>> 
>> > On Thu, Sep 29, 2016 at 10:38:07AM +0000, ng0 wrote:
>> >> * gnu/packages/psyc.scm: New file.
>> >> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
>> >
>> >> +    (source
>> >> +     (origin
>> >> +       (method url-fetch)
>> >> +       (uri (string-append "http://perl.psyc.eu/"
>> >> +                           "perlpsyc-" version ".zip"))
>> >> +       (file-name (string-append name "-" version ".zip"))
>> >> +       (sha256
>> >> +        (base32
>> >> +         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
>> >
>> > This is the wrong hash.
>> > http://lists.gnu.org/archive/html/guix-devel/2016-09/msg02076.html
>> 
>> No, it's not. Our server recently had to be moved and I don't know what
>> happened during that time, but to make sure I checked the download
>> before I commited the new series and repeated that check just now:
>> 
>> ng0@shadowwalker ~/re-src$ wget http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
>> --2016-10-02 10:34:12--  http://perlpsyc.psyc.eu/perlpsyc-1.1.zip
>> Resolving perlpsyc.psyc.eu (perlpsyc.psyc.eu)... 188.40.42.221
>> Connecting to perlpsyc.psyc.eu (perlpsyc.psyc.eu)|188.40.42.221|:80... connected.
>> HTTP request sent, awaiting response... 200 OK
>> Length: 444423 (434K) [application/zip]
>> Saving to: ‘perlpsyc-1.1.zip’
>> 
>> perlpsyc-1.1.zip           100%[=====================================>] 434.01K   927KB/s    in 0.5s    
>> 
>> 2016-10-02 10:34:12 (927 KB/s) - ‘perlpsyc-1.1.zip’ saved [444423/444423]
>> 
>> ng0@shadowwalker ~/re-src$ guix hash perlpsyc-1.1.zip 
>> 1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42
>
> The URL you used with wget is different from the URL used in the patch.
>
> The download from perlpsyc.psyc.eu is a Git repo whereas the download
> from perl.psyc.eu is a plain directory.
>
> The patch uses the URL for the plain directory while the hash is of the
> Git repo.
>
> Can you clarify which download the package should use?
>

Okay so

+     (origin
+       (method url-fetch)
+       (uri (string-append "http://perl.psyc.eu/"
+                           "perlpsyc-" version ".zip"))

is wrong. it hsould've been

+     (origin
+       (method url-fetch)
+       (uri (string-append "http://perlpsyc.eu/"
+                           "perlpsyc-" version ".zip"))

The new patch series which will be coming as the next messages fixes
this. This is the only location of the perlpsyc downloads, my mistake,
Sorry.
The archive is indeed just a zipped git repository, that's correct.
It did not affect building and installing for me. I'll address it in one
of our TODO lists if it is a problem for you.
-- 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* psyc.scm: new patch series.
  2016-10-04  8:23       ` ng0
@ 2016-10-04  8:34         ` ng0
  2016-10-04  8:34           ` [PATCH 1/4] gnu: Add perl-net-psyc ng0
                             ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: ng0 @ 2016-10-04  8:34 UTC (permalink / raw)
  To: guix-devel

Please either ignore "4/4: gnu: Add psyced" or review while keeping in mind that this is still subject to changes as I am writing the psyced-service.

Thanks for reviewing

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/4] gnu: Add perl-net-psyc.
  2016-10-04  8:34         ` psyc.scm: new patch series ng0
@ 2016-10-04  8:34           ` ng0
  2016-10-04  8:34           ` [PATCH 2/4] gnu: Add libpsyc ng0
                             ` (2 subsequent siblings)
  3 siblings, 0 replies; 22+ messages in thread
From: ng0 @ 2016-10-04  8:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk          |   1 +
 gnu/packages/psyc.scm | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 106 insertions(+)
 create mode 100644 gnu/packages/psyc.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index b864ea9..d49d458 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -296,6 +296,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/pumpio.scm			\
   %D%/packages/pretty-print.scm			\
   %D%/packages/protobuf.scm			\
+  %D%/packages/psyc.scm                         \
   %D%/packages/pv.scm				\
   %D%/packages/python.scm			\
   %D%/packages/qemu.scm				\
diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
new file mode 100644
index 0000000..24c97ea
--- /dev/null
+++ b/gnu/packages/psyc.scm
@@ -0,0 +1,105 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages psyc)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix build-system perl)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages web))
+
+(define-public perl-net-psyc
+  (package
+    (name "perl-net-psyc")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://perlpsyc.psyc.eu/"
+                           "perlpsyc-" version ".zip"))
+       (file-name (string-append name "-" version ".zip"))
+       (sha256
+        (base32
+         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
+       ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
+       ;; we can add it back when this is no longer the case.
+       (snippet '(delete-file "contrib/psycmp3"))))
+    (build-system perl-build-system)
+    (inputs
+     `(("perl-curses" ,perl-curses)
+       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; No configure script
+         ;; There is a Makefile, but it does not install everything
+         ;; (leaves out psycion) and says
+         ;; "# Just to give you a rough idea". XXX: Fix it upstream.
+         (replace 'build
+           (lambda _
+             (zero? (system* "make" "manuals"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/perl-net-psyc"))
+                    (man1 (string-append out "/share/man/man1"))
+                    (man3 (string-append out "/share/man/man3"))
+                    (bin (string-append out "/bin"))
+                    (libpsyc (string-append out "/lib/psyc/ion"))
+                    (libperl (string-append out "/lib/perl5/site_perl/"
+                                            ,(package-version perl))))
+
+               (copy-recursively "lib/perl5" libperl)
+               (copy-recursively "lib/psycion" libpsyc)
+               (copy-recursively "bin" bin)
+               (install-file "cgi/psycpager" (string-append doc "/cgi"))
+               (copy-recursively "contrib" (string-append doc "/contrib"))
+               (copy-recursively "hooks" (string-append doc "/hooks"))
+               (copy-recursively "sdj" (string-append doc "/sdj"))
+               (install-file "README.txt" doc)
+               (install-file "TODO.txt" doc)
+               (copy-recursively "share/man/man1" man1)
+               (copy-recursively "share/man/man3" man3)
+               #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 (getenv "PERL5LIB")))
+               (for-each (lambda (file)
+                           (wrap-program file
+                             `("PERL5LIB" ":" prefix (,path))))
+                         (find-files bin "\\.*$"))
+               #t))))))
+    (description
+     "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and
+Gtk2 event loops.  This package includes 12 applications and additional scripts:
+psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console
+for @uref{https://torproject.org,tor} router) and many more.")
+    (synopsis "Perl implementation of PSYC protocol")
+    (home-page "http://perlpsyc.psyc.eu/")
+    (license (list license:gpl2 (package-license perl)
+                   ;; contrib/irssi-psyc.pl:
+                   license:public-domain
+                   ;; bin/psycplay states AGPL with no version:
+                   license:agpl3+))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/4] gnu: Add libpsyc.
  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           ` 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
  3 siblings, 0 replies; 22+ messages in thread
From: ng0 @ 2016-10-04  8:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm (libpsyc): New variable.
---
 gnu/packages/psyc.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index 24c97ea..c190518 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -21,7 +21,10 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages web))
@@ -103,3 +106,41 @@ for @uref{https://torproject.org,tor} router) and many more.")
                    license:public-domain
                    ;; bin/psycplay states AGPL with no version:
                    license:agpl3+))))
+
+(define-public libpsyc
+  (package
+    (name "libpsyc")
+    (version "20160913")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.psyced.org/files/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("netcat" ,netcat)
+       ("procps" ,procps)))
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The rust bindings are the only ones in use, the lpc bindings
+         ;; are in psyclpc.  The other bindings are not used by anything,
+         ;; the chances are high that the bindings do not even work,
+         ;; therefore we do not include them.
+         ;; TODO: Get a cargo build system in Guix.
+         (delete 'configure)))) ; no configure script
+    (home-page "http://about.psyc.eu/libpsyc")
+    (description
+     "@code{libpsyc} is a PSYC library in C which implements
+core aspects of PSYC, useful for all kinds of clients and servers
+including psyced.")
+    (synopsis "PSYC library in C")
+    (license (list license:agpl3+
+                   ;; test/test.c is based on a public-domain test
+                   license:public-domain))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/4] gnu: Add psyclpc.
  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           ` ng0
  2016-10-04  8:34           ` [PATCH 4/4] gnu: Add psyced ng0
  3 siblings, 0 replies; 22+ messages in thread
From: ng0 @ 2016-10-04  8:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/psyc.scm (psyclpc): New variable.
---
 gnu/packages/psyc.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
index c190518..2a2ddc1 100644
--- a/gnu/packages/psyc.scm
+++ b/gnu/packages/psyc.scm
@@ -18,15 +18,24 @@
 
 (define-module (gnu packages psyc)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
 (define-public perl-net-psyc
@@ -144,3 +153,73 @@ including psyced.")
     (license (list license:agpl3+
                    ;; test/test.c is based on a public-domain test
                    license:public-domain))))
+
+;; This commit removes the historic bundled pcre, not released as a tarball so far.
+(define-public psyclpc
+  (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e")
+         (revision "1"))
+  (package
+    (name "psyclpc")
+    (version (string-append "20160821-" revision "." (string-take commit 7)))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.psyced.org/git/psyclpc")
+                    (commit commit)))
+              (sha256
+               (base32
+                "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests/checks.
+       #:configure-flags
+       ;; If you have questions about this part, look at
+       ;; "src/settings/psyced" and the ebuild.
+       (list
+        "--enable-use-tls=yes"
+        "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
+        (string-append "--prefix="
+                       (assoc-ref %outputs "out"))
+        ;; src/Makefile: Set MUD_LIB to the directory which contains
+        ;; the mud data. defaults to MUD_LIB = @libdir@
+        (string-append "--libdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/world")
+        (string-append "--bindir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/bin")
+        ;; src/Makefile: Set ERQ_DIR to directory which contains the
+        ;; stuff which ERQ can execute (hopefully) savely.  Was formerly
+        ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
+        (string-append "--libexecdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/run"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir-to-src
+           ;; We need to pass this as env variables
+           ;; and manually change the directory.
+           (lambda _
+             (chdir "src")
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (setenv "SHELL" (which "sh")))))
+       #:make-flags (list "install-all")))
+    (inputs
+     `(("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("pcre" ,pcre)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("bison" ,bison)
+       ("gnu-gettext" ,gnu-gettext)
+       ("help2man" ,help2man)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "http://lpc.psyc.eu/")
+    (synopsis "psycLPC is a multi-user network server programming language")
+    (description
+     "LPC is a bytecode language, invented to specifically implement
+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))))
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/4] gnu: Add psyced.
  2016-10-04  8:34         ` psyc.scm: new patch series ng0
                             ` (2 preceding siblings ...)
  2016-10-04  8:34           ` [PATCH 3/4] gnu: Add psyclpc ng0
@ 2016-10-04  8:34           ` ng0
  2016-10-26 11:37             ` Efraim Flashner
  3 siblings, 1 reply; 22+ messages in thread
From: ng0 @ 2016-10-04  8:34 UTC (permalink / raw)
  To: guix-devel

* 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)
+
+                 (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

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] gnu: Add psyced.
  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
  0 siblings, 1 reply; 22+ messages in thread
From: Efraim Flashner @ 2016-10-26 11:37 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 6242 bytes --]

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?

> +                 (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
> 
> 

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] gnu: Add psyced.
  2016-10-26 11:37             ` Efraim Flashner
@ 2016-10-28 10:04               ` ng0
  0 siblings, 0 replies; 22+ messages in thread
From: ng0 @ 2016-10-28 10:04 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

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

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] gnu: Add psyced.
  2016-09-29 10:44   ` ng0
@ 2016-10-30  5:42     ` Ricardo Wurmus
  0 siblings, 0 replies; 22+ messages in thread
From: Ricardo Wurmus @ 2016-10-30  5:42 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> Like in the old patch (I don't know how to pass git sendemail the root
> of another thread), this is not a finished patch but I require input on
> this. I have to debug by writing the service.

You can pass “--in-reply-to=<identifier>” to “git send-email”.

~~ Ricardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] gnu: Add psyced.
  2016-09-29 10:38 ` [PATCH 4/4] gnu: Add psyced ng0
  2016-09-29 10:44   ` ng0
@ 2016-10-30  5:48   ` Ricardo Wurmus
  1 sibling, 0 replies; 22+ messages in thread
From: Ricardo Wurmus @ 2016-10-30  5:48 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> 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?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] gnu: Add perl-net-psyc.
  2016-09-29 10:38 [PATCH 1/4] gnu: Add perl-net-psyc ng0
                   ` (3 preceding siblings ...)
  2016-10-02  1:46 ` [PATCH 1/4] gnu: Add perl-net-psyc Leo Famulari
@ 2016-10-30  5:54 ` Ricardo Wurmus
  4 siblings, 0 replies; 22+ messages in thread
From: Ricardo Wurmus @ 2016-10-30  5:54 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> * gnu/packages/psyc.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu/local.mk          |   1 +
>  gnu/packages/psyc.scm | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 106 insertions(+)
>  create mode 100644 gnu/packages/psyc.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index b864ea9..d49d458 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -296,6 +296,7 @@ GNU_SYSTEM_MODULES =				\
>    %D%/packages/pumpio.scm			\
>    %D%/packages/pretty-print.scm			\
>    %D%/packages/protobuf.scm			\
> +  %D%/packages/psyc.scm                         \
>    %D%/packages/pv.scm				\
>    %D%/packages/python.scm			\
>    %D%/packages/qemu.scm				\
> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
> new file mode 100644
> index 0000000..4d53dfd
> --- /dev/null
> +++ b/gnu/packages/psyc.scm

Could you add this to “messaging” instead?


> @@ -0,0 +1,105 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages psyc)
> +  #:use-module (guix download)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system perl)
> +  #:use-module (gnu packages)
> +  #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages web))
> +
> +(define-public perl-net-psyc
> +  (package
> +    (name "perl-net-psyc")
> +    (version "1.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "http://perl.psyc.eu/"
> +                           "perlpsyc-" version ".zip"))
> +       (file-name (string-append name "-" version ".zip"))
> +       (sha256
> +        (base32
> +         "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
> +       ;; psycmp3 currently depends on MP3::List and rxaudio
> (shareware),

Let’s just call this “non-free”.

> +       ;; we can add it back when this is no longer the case.
> +       (snippet '(delete-file "contrib/psycmp3"))))
> +    (build-system perl-build-system)
> +    (inputs
> +     `(("perl-curses" ,perl-curses)
> +       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure) ; No configure script
> +         ;; There is a Makefile, but it does not install everything
> +         ;; (leaves out psycion) and says
> +         ;; "# Just to give you a rough idea". XXX: Fix it upstream.

Since you appear to be involved with the project surrounding psyced
could you send a fix upstream instead of building a custom install phase
here?

> +         (replace 'build
> +           (lambda _
> +             (zero? (system* "make" "manuals"))))

This might need a comment.  By default the “build” phase runs the
“Build” script if it exists or runs the default gnu-build-system’s build
phase.   If the only buildable thing really are the manuals (which would
be odd), then this should be a make-flag.

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (doc (string-append out "/share/doc/perl-net-psyc"))
> +                    (man1 (string-append out "/share/man/man1"))
> +                    (man3 (string-append out "/share/man/man3"))
> +                    (bin (string-append out "/bin"))
> +                    (libpsyc (string-append out "/lib/psyc/ion"))
> +                    (libperl (string-append out "/lib/perl5/site_perl/"
> +                                            ,(package-version perl))))
> +
> +               (copy-recursively "lib/perl5" libperl)
> +               (copy-recursively "lib/psycion" libpsyc)
> +               (copy-recursively "bin" bin)
> +               (install-file "cgi/psycpager" (string-append doc "/cgi"))
> +               (copy-recursively "contrib" (string-append doc "/contrib"))
> +               (copy-recursively "hooks" (string-append doc "/hooks"))
> +               (copy-recursively "sdj" (string-append doc "/sdj"))
> +               (install-file "README.txt" doc)
> +               (install-file "TODO.txt" doc)
> +               (copy-recursively "share/man/man1" man1)
> +               (copy-recursively "share/man/man3" man3)
> +               #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 (getenv "PERL5LIB")))
> +               (for-each (lambda (file)
> +                           (wrap-program file
> +                             `("PERL5LIB" ":" prefix (,path))))
> +                         (find-files bin "\\.*$"))
> +               #t))))))
> +    (description
> +     "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and
> +Gtk2 event loops.  This package includes 12 applications and additional scripts:
> +psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console
> +for @uref{https://torproject.org,tor} router) and many more.")

Please use full sentences.  Please also say what it’s used for.

> +    (synopsis "Perl implementation of PSYC protocol")
> +    (home-page "http://perlpsyc.pages.de")
> +    (license (list license:gpl2 (package-license perl)

What is GPLv2 only and what code does the Perl license apply to?

> +                   ;; contrib/irssi-psyc.pl:
> +                   license:public-domain
> +                   ;; bin/psycplay states AGPL with no version:
> +                   license:agpl3+))))

~~ Ricardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/4] gnu: Add libpsyc.
  2016-09-29 10:38 ` [PATCH 2/4] gnu: Add libpsyc ng0
@ 2016-10-30  5:57   ` Ricardo Wurmus
  0 siblings, 0 replies; 22+ messages in thread
From: Ricardo Wurmus @ 2016-10-30  5:57 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> * gnu/packages/psyc.scm (libpsyc): New variable.
> ---
>  gnu/packages/psyc.scm | 41 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
> index 4d53dfd..253fa64 100644
> --- a/gnu/packages/psyc.scm
> +++ b/gnu/packages/psyc.scm
> @@ -21,7 +21,10 @@
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
>    #:use-module (guix build-system perl)
> +  #:use-module (guix build-system gnu)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages admin)
> +  #:use-module (gnu packages linux)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages web))
> @@ -103,3 +106,41 @@ for @uref{https://torproject.org,tor} router) and many more.")
>                     license:public-domain
>                     ;; bin/psycplay states AGPL with no version:
>                     license:agpl3+))))
> +
> +(define-public libpsyc
> +  (package
> +    (name "libpsyc")
> +    (version "20160913")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://www.psyced.org/files/"
> +                                  name "-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +                "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("perl" ,perl)
> +       ("netcat" ,netcat)
> +       ("procps" ,procps)))
> +    (arguments
> +     `(#:make-flags
> +       (list "CC=gcc"
> +             (string-append "PREFIX=" (assoc-ref %outputs "out")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         ;; The rust bindings are the only ones in use, the lpc bindings
> +         ;; are in psyclpc.  The other bindings are not used by anything,
> +         ;; the chances are high that the bindings do not even work,
> +         ;; therefore we do not include them.
> +         ;; TODO: Get a cargo build system in Guix.
> +         (delete 'configure)))) ; no configure script
> +    (home-page "http://about.psyc.eu/libpsyc")
> +    (description
> +     "@code{libpsyc} is a PSYC library in C which implements
> +core aspects of PSYC, useful for all kinds of clients and servers
> +including psyced.")
> +    (synopsis "PSYC library in C")
> +    (license (list license:agpl3+
> +                   ;; test/test.c is based on a public-domain test
> +                   license:public-domain))))

This looks okay to me, although the unusual order of package fields
really throws me off.  We normally have “arguments” after “build-system”
(because they are arguments to the build-side code), “*inputs” below
“arguments”, “synopsis” above “description”, etc.

I also think all of psyc should go to “messaging” instead of getting its
own module.

~~ Ricardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] gnu: Add psyclpc.
  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
  0 siblings, 1 reply; 22+ messages in thread
From: Ricardo Wurmus @ 2016-10-30  6:03 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel


ng0 <ngillmann@runbox.com> writes:

> * gnu/packages/psyc.scm (psyclpc): New variable.
> ---
>  gnu/packages/psyc.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 79 insertions(+)
>
> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm

As before, please add this to “messaging”.

> +
> +;; This commit removes the historic bundled pcre, not released as a tarball so far.
> +(define-public psyclpc
> +  (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e")
> +         (revision "1"))

Okay.

> +  (package
> +    (name "psyclpc")
> +    (version (string-append "20160821-" revision "." (string-take commit 7)))
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "git://git.psyced.org/git/psyclpc")
> +                    (commit commit)))
> +              (sha256
> +               (base32
> +                "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f ; There are no tests/checks.
> +       #:configure-flags
> +       ;; If you have questions about this part, look at
> +       ;; "src/settings/psyced" and the ebuild.

Please don’t do this.  Guix is not a derivative of Gentoo.  This should
be explained right here.

> +       (list
> +        "--enable-use-tls=yes"
> +        "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
> +        (string-append "--prefix="
> +                       (assoc-ref %outputs "out"))
> +        ;; src/Makefile: Set MUD_LIB to the directory which contains
> +        ;; the mud data. defaults to MUD_LIB = @libdir@
> +        (string-append "--libdir="
> +                       (assoc-ref %outputs "out")
> +                       "/opt/psyced/world")
> +        (string-append "--bindir="
> +                       (assoc-ref %outputs "out")
> +                       "/opt/psyced/bin")
> +        ;; src/Makefile: Set ERQ_DIR to directory which contains the
> +        ;; stuff which ERQ can execute (hopefully) savely.  Was formerly
> +        ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
> +        (string-append "--libexecdir="
> +                       (assoc-ref %outputs "out")
> +                       "/opt/psyced/run"))

I don’t think it’s wise to override the target directories to have a
prefix of “/opt/psyced”.  We already have a prefix:
“/gnu/store/<hash>-<name>-<version>/”.  If this is needed at runtime for
some reason it should be done by a service.

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'chdir-to-src
> +           ;; We need to pass this as env variables
> +           ;; and manually change the directory.

What is “this”?

> +           (lambda _
> +             (chdir "src")
> +             (setenv "CONFIG_SHELL" (which "sh"))
> +             (setenv "SHELL" (which "sh")))))

CONFIG_SHELL and SHELL are usually set for autoconf.  Why does this not
work in this case?

Please end the phase with #t.

> +       #:make-flags (list "install-all")))
> +    (inputs
> +     `(("zlib" ,zlib)
> +       ("openssl" ,openssl)
> +       ("pcre" ,pcre)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("bison" ,bison)
> +       ("gnu-gettext" ,gnu-gettext)
> +       ("help2man" ,help2man)
> +       ("autoconf" ,autoconf)
> +       ("automake" ,automake)))
> +    (home-page "http://lpc.psyc.eu/")
> +    (synopsis "psycLPC is a multi-user network server programming
> language")

s/psycLPC is a//

> +    (description
> +     "LPC is a bytecode language, invented to specifically implement
> +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.")

Please fix the line lengths.

> +    (license license:gpl2))))

GPLv2 only?

~~ Ricardo

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] gnu: Add psyclpc.
  2016-10-30  6:03   ` Ricardo Wurmus
@ 2016-10-30 12:46     ` ng0
  0 siblings, 0 replies; 22+ messages in thread
From: ng0 @ 2016-10-30 12:46 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> writes:

> ng0 <ngillmann@runbox.com> writes:
>
>> * gnu/packages/psyc.scm (psyclpc): New variable.
>> ---
>>  gnu/packages/psyc.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 79 insertions(+)
>>
>> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
>
> As before, please add this to “messaging”.

Okay. I will move the already added module psyc.scm in master to
messaging then. It's not exclusive messaging, but I don't really
care where it ends up. psyc.scm was just a suggestion I made
(which can be read in the very first message for this patch set).

>> +
>> +;; This commit removes the historic bundled pcre, not released as a tarball so far.
>> +(define-public psyclpc
>> +  (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e")
>> +         (revision "1"))
>
> Okay.
>
>> +  (package
>> +    (name "psyclpc")
>> +    (version (string-append "20160821-" revision "." (string-take commit 7)))
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "git://git.psyced.org/git/psyclpc")
>> +                    (commit commit)))
>> +              (sha256
>> +               (base32
>> +                "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz"))))
>> +    (build-system gnu-build-system)
>> +    (arguments
>> +     `(#:tests? #f ; There are no tests/checks.
>> +       #:configure-flags
>> +       ;; If you have questions about this part, look at
>> +       ;; "src/settings/psyced" and the ebuild.
>
> Please don’t do this.  Guix is not a derivative of Gentoo.  This should
> be explained right here.
>
>> +       (list
>> +        "--enable-use-tls=yes"
>> +        "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
>> +        (string-append "--prefix="
>> +                       (assoc-ref %outputs "out"))
>> +        ;; src/Makefile: Set MUD_LIB to the directory which contains
>> +        ;; the mud data. defaults to MUD_LIB = @libdir@
>> +        (string-append "--libdir="
>> +                       (assoc-ref %outputs "out")
>> +                       "/opt/psyced/world")
>> +        (string-append "--bindir="
>> +                       (assoc-ref %outputs "out")
>> +                       "/opt/psyced/bin")
>> +        ;; src/Makefile: Set ERQ_DIR to directory which contains the
>> +        ;; stuff which ERQ can execute (hopefully) savely.  Was formerly
>> +        ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
>> +        (string-append "--libexecdir="
>> +                       (assoc-ref %outputs "out")
>> +                       "/opt/psyced/run"))
>
> I don’t think it’s wise to override the target directories to have a
> prefix of “/opt/psyced”.  We already have a prefix:
> “/gnu/store/<hash>-<name>-<version>/”.  If this is needed at runtime for
> some reason it should be done by a service.
>
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-before 'configure 'chdir-to-src
>> +           ;; We need to pass this as env variables
>> +           ;; and manually change the directory.
>
> What is “this”?
>
>> +           (lambda _
>> +             (chdir "src")
>> +             (setenv "CONFIG_SHELL" (which "sh"))
>> +             (setenv "SHELL" (which "sh")))))
>
> CONFIG_SHELL and SHELL are usually set for autoconf.  Why does this not
> work in this case?
>
> Please end the phase with #t.
>
>> +       #:make-flags (list "install-all")))
>> +    (inputs
>> +     `(("zlib" ,zlib)
>> +       ("openssl" ,openssl)
>> +       ("pcre" ,pcre)))
>> +    (native-inputs
>> +     `(("pkg-config" ,pkg-config)
>> +       ("bison" ,bison)
>> +       ("gnu-gettext" ,gnu-gettext)
>> +       ("help2man" ,help2man)
>> +       ("autoconf" ,autoconf)
>> +       ("automake" ,automake)))
>> +    (home-page "http://lpc.psyc.eu/")
>> +    (synopsis "psycLPC is a multi-user network server programming
>> language")
>
> s/psycLPC is a//
>
>> +    (description
>> +     "LPC is a bytecode language, invented to specifically implement
>> +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.")
>
> Please fix the line lengths.

As far as I know you picked an old thread and I fixed this in a
newer one. If I'm wrong about this, there'll be a new thread
soon enough.

>> +    (license license:gpl2))))
>
> GPLv2 only?

Yes, but since 2010 there's also a different license, as this was
originally up to someone else to review, I'll add again: I have
to send in a new patch revisision. psyclpc also needs a fix for
reproducibility which I will pass on directly to one of us with
push access. After psyclpc is fixed at our end, I will send new
versions to guix.

>
> ~~ Ricardo
>

Thanks for review

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2016-10-30 12:47 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2016-10-30  5:54 ` [PATCH 1/4] gnu: Add perl-net-psyc Ricardo Wurmus

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).