Patchwork [2/4] gnu: Add libpsyc.

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

Comments

ng0 - Sept. 29, 2016, 10:38 a.m.
* gnu/packages/psyc.scm (libpsyc): New variable.
---
 gnu/packages/psyc.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
Ricardo Wurmus - Oct. 30, 2016, 5:57 a.m.
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

Patch

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