guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] gnu: Add perl-net-psyc.


From: ng0
Subject: Re: [PATCH 1/2] gnu: Add perl-net-psyc.
Date: Wed, 21 Sep 2016 09:17:55 +0000

I will resend this patch with the fail-safe mirror I just added on
sdf.org. This is okay with the others in group and very much welcomed.
The shasum file is signed by my rsa opengpg key which is also used by
some releases of Gnurl.

ng0 <address@hidden> writes:

> [ Unknown signature status ]
> From 8ff11b44ac9c2f3d9b6cd53497c903135df3f1ff Mon Sep 17 00:00:00 2001
> From: ng0 <address@hidden>
> Date: Tue, 13 Sep 2016 10:20:31 +0000
> Subject: [PATCH 1/2] gnu: Add perl-net-psyc.
>
> * gnu/packages/psyc.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu/local.mk          |   2 +
>  gnu/packages/psyc.scm | 105 
> ++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 107 insertions(+)
>  create mode 100644 gnu/packages/psyc.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5714009..c01f47a 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -5,6 +5,7 @@
>  # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <address@hidden>
>  # Copyright © 2016 Chris Marusich <address@hidden>
>  # Copyright © 2016 Kei Kebreau <address@hidden>
> +# Copyright © 2016 ng0 <address@hidden>
>  #
>  # This file is part of GNU Guix.
>  #
> @@ -292,6 +293,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..ea1b513
> --- /dev/null
> +++ b/gnu/packages/psyc.scm
> @@ -0,0 +1,105 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 ng0 <address@hidden>
> +;;;
> +;;; 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
>
> From 7749eee5788a3e46d95b687058762f9b186c0894 Mon Sep 17 00:00:00 2001
> From: ng0 <address@hidden>
> Date: Tue, 13 Sep 2016 10:57:12 +0000
> Subject: [PATCH 2/2] gnu: Add libpsyc.
>
> * gnu/packages/psyc.scm (libpsyc): New variable.
> ---
>  gnu/packages/psyc.scm | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm
> index ea1b513..e688f33 100644
> --- a/gnu/packages/psyc.scm
> +++ b/gnu/packages/psyc.scm
> @@ -20,8 +20,11 @@
>    #:use-module (guix download)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
> +  #:use-module (guix build-system gnu)
>    #:use-module (guix build-system perl)
>    #: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,39 @@ 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.
> +         (delete 'configure)))) ; no configure script
> +    (home-page "http://about.psyc.eu/libpsyc";)
> +    (description "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 useful for all kinds of clients and 
> servers")
> +    (license (list license:agpl3+
> +                   ;; test/test.c is based on a public-domain test
> +                   license:public-domain))))
> -- 
> 2.10.0
>
>
>
> ng0 <address@hidden> writes:
>
>> Leo Famulari <address@hidden> writes:
>>
>>> On Tue, Sep 13, 2016 at 11:32:36AM +0000, ng0 wrote:
>>>> * gnu/packages/psyc.scm: New file.
>>>> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
>>>
>>> This package looks pretty good to me!
>>>
>>>> +         (replace 'install
>>>> +           (lambda* (#:key outputs #:allow-other-keys)
>>>> +             (let* ((out (assoc-ref outputs "out"))
>>>> +                    (doc (string-append out "/share/doc/perl-net-psyc"))
>>>> +                    (man (string-append out "/share/man"))
>>>> +                    (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" (string-append man 
>>>> "/man1"))
>>>> +               (copy-recursively "share/man/man3" (string-append man 
>>>> "/man3"))
>>>> +               #t)))
>>>
>>> But, there aren't any man pages in the built package.
>>
>> Oh? Then the change I applied before submitting it broke it. There are
>> manpages, I just thought I could save a line by using
>> (let (man (string-append out "/share/man"))
>>   (copy-recursively "share/man/man1" (string-append man "/man1"))
>>   (copy-recursively "share/man/man3" (string-append man "/man3"))
>>
>> and not 
>>
>> (let (man1 (string-append out "/share/man/man1"))
>>      (man3 (string-append out "/share/man/man3"))
>>   (copy-recursively "share/man/man1" man1))
>>   (copy-recursively "share/man/man3" man3))
>>
>>>> +    (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.")
>>>
>>> Also, I don't know this word "remotor". Is it related to PSYC?
>>
>> Then I need to restructur my sentence. If you take a look at the website
>> you will see that it is one of the many applications perlpsyc has.
>>
>> -- 
>>               ng0
>>
>>
>
> -- 
>               ng0

-- 
              ng0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]