Patchwork [3/4] gnu: Add psyclpc.

login
register
mail settings
Submitter ng0
Date Sept. 29, 2016, 10:38 a.m.
Message ID <20160929103810.10273-3-ngillmann@runbox.com>
Download mbox | patch
Permalink /patch/16142/
State New
Headers show

Comments

ng0 - Sept. 29, 2016, 10:38 a.m.
* gnu/packages/psyc.scm (psyclpc): New variable.
---
 gnu/packages/psyc.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)
Ricardo Wurmus - Oct. 30, 2016, 6:03 a.m.
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
non such - Oct. 30, 2016, 12:46 p.m.
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

Patch

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