* [PATCH 1/2] gnu: Add perl-net-psyc. @ 2016-09-13 11:32 ng0 2016-09-13 11:32 ` [PATCH 2/2] gnu: Add libpsyc ng0 2016-09-13 19:16 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 0 siblings, 2 replies; 20+ messages in thread From: ng0 @ 2016-09-13 11:32 UTC (permalink / raw) To: guix-devel * 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 <mhw@netris.org> # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> # Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +# Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> # # 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..3c4a330 --- /dev/null +++ b/gnu/packages/psyc.scm @@ -0,0 +1,105 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; +;;; 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. + (delete 'build) + (add-before 'build 'build-manuals + (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")) + (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))) + (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] 20+ messages in thread
* [PATCH 2/2] gnu: Add libpsyc. 2016-09-13 11:32 [PATCH 1/2] gnu: Add perl-net-psyc ng0 @ 2016-09-13 11:32 ` ng0 2016-09-13 19:17 ` Leo Famulari 2016-09-13 19:16 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 1 sibling, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-13 11:32 UTC (permalink / raw) To: guix-devel * 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 3c4a330..ce87991 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 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 2/2] gnu: Add libpsyc. 2016-09-13 11:32 ` [PATCH 2/2] gnu: Add libpsyc ng0 @ 2016-09-13 19:17 ` Leo Famulari 0 siblings, 0 replies; 20+ messages in thread From: Leo Famulari @ 2016-09-13 19:17 UTC (permalink / raw) To: ng0; +Cc: guix-devel On Tue, Sep 13, 2016 at 11:32:37AM +0000, ng0 wrote: > * gnu/packages/psyc.scm (libpsyc): New variable. LGTM! ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-13 11:32 [PATCH 1/2] gnu: Add perl-net-psyc ng0 2016-09-13 11:32 ` [PATCH 2/2] gnu: Add libpsyc ng0 @ 2016-09-13 19:16 ` Leo Famulari 2016-09-13 19:34 ` ng0 1 sibling, 1 reply; 20+ messages in thread From: Leo Famulari @ 2016-09-13 19:16 UTC (permalink / raw) To: ng0; +Cc: guix-devel 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. > + (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? ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-13 19:16 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari @ 2016-09-13 19:34 ` ng0 2016-09-13 20:55 ` ng0 0 siblings, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-13 19:34 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Leo Famulari <leo@famulari.name> 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-13 19:34 ` ng0 @ 2016-09-13 20:55 ` ng0 2016-09-21 9:17 ` ng0 0 siblings, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-13 20:55 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel [-- Attachment #1.1: 0001-gnu-Add-perl-net-psyc.patch --] [-- Type: text/x-patch, Size: 6364 bytes --] From 8ff11b44ac9c2f3d9b6cd53497c903135df3f1ff Mon Sep 17 00:00:00 2001 From: ng0 <ng0@we.make.ritual.n0.is> 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 <mhw@netris.org> # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> # Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +# Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> # # 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 <ng0@we.make.ritual.n0.is> +;;; +;;; 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0002-gnu-Add-libpsyc.patch --] [-- Type: text/x-patch, Size: 2741 bytes --] From 7749eee5788a3e46d95b687058762f9b186c0894 Mon Sep 17 00:00:00 2001 From: ng0 <ng0@we.make.ritual.n0.is> 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 [-- Attachment #1.3: Type: text/plain, Size: 2904 bytes --] ng0 <ng0@we.make.ritual.n0.is> writes: > Leo Famulari <leo@famulari.name> 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-13 20:55 ` ng0 @ 2016-09-21 9:17 ` ng0 2016-09-21 10:34 ` ng0 0 siblings, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-21 9:17 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel 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 <ng0@we.make.ritual.n0.is> writes: > [ Unknown signature status ] > From 8ff11b44ac9c2f3d9b6cd53497c903135df3f1ff Mon Sep 17 00:00:00 2001 > From: ng0 <ng0@we.make.ritual.n0.is> > 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 <mhw@netris.org> > # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> > # Copyright © 2016 Kei Kebreau <kei@openmailbox.org> > +# Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> > # > # 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 <ng0@we.make.ritual.n0.is> > +;;; > +;;; 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 <ng0@we.make.ritual.n0.is> > 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 <ng0@we.make.ritual.n0.is> writes: > >> Leo Famulari <leo@famulari.name> 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-21 9:17 ` ng0 @ 2016-09-21 10:34 ` ng0 2016-09-21 18:46 ` ng0 2016-09-27 16:49 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 0 siblings, 2 replies; 20+ messages in thread From: ng0 @ 2016-09-21 10:34 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 472 bytes --] > 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. Where the group means other developers hacking around psyced.org, secushare.org etc. I also changed my email address, which will make its way into .mailmap in a commit which happened in the "tinycm" patch series I am working on. [-- Attachment #1.2: 0001-gnu-Add-perl-net-psyc.patch --] [-- Type: text/x-patch, Size: 6390 bytes --] From 33d8584709a74e20924743b2606158cacd5ed0c6 Mon Sep 17 00:00:00 2001 From: ng0 <ng0@we.make.ritual.n0.is> 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 | 1 + gnu/packages/psyc.scm | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 gnu/packages/psyc.scm diff --git a/gnu/local.mk b/gnu/local.mk index e2cf40d..2957e16 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -293,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..dd8a3eb --- /dev/null +++ b/gnu/packages/psyc.scm @@ -0,0 +1,111 @@ +;;; 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)) + +;; The URL at sdf.org is a mirror, officially known. The host www.psyced.org +;; is running on is sometimes (rarely) attacked and this ensure that the files +;; are available. +(define-public perl-net-psyc + (package + (name "perl-net-psyc") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (list + (string-append "http://perl.psyc.eu/" + "perlpsyc-" version ".zip") + (string-append "http://krosos.sdf.org/static/unix/" + "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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-gnu-Add-libpsyc.patch --] [-- Type: text/x-patch, Size: 2914 bytes --] From 3b20fd89b6f6e6d1fe00b89bcb1a8ec80853157e Mon Sep 17 00:00:00 2001 From: ng0 <ng0@we.make.ritual.n0.is> 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 | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index dd8a3eb..58ce3c6 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)) @@ -109,3 +112,42 @@ 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 (list + (string-append "http://www.psyced.org/files/" + name "-" version ".tar.xz") + (string-append "http://krosos.sdf.org/static/unix/" + "perlpsyc-" version ".zip"))) + (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 [-- Attachment #1.4: Type: text/plain, Size: 26 bytes --] -- ng0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-21 10:34 ` ng0 @ 2016-09-21 18:46 ` ng0 2016-09-27 16:56 ` Leo Famulari 2016-09-27 16:49 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 1 sibling, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-21 18:46 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 231 bytes --] Patch on top of this, containing psyclpc. The psyced package which follows as the last one after all of this needs some minor adjustments and then I need to write a service (and/or guile bindings. Hopefully a service is enough.). [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-gnu-Add-psyclpc.patch --] [-- Type: text/x-patch, Size: 4467 bytes --] From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001 From: ng0 <ngillmann@runbox.com> Date: Wed, 21 Sep 2016 18:08:42 +0000 Subject: [PATCH 1/2] gnu: Add psyclpc. * gnu/packages/psyc.scm (psyclpc): New variable. --- gnu/packages/psyc.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index 58ce3c6..5a6f1db 100644 --- a/gnu/packages/psyc.scm +++ b/gnu/packages/psyc.scm @@ -24,9 +24,16 @@ #:use-module (guix build-system perl) #: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 pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages web)) ;; The URL at sdf.org is a mirror, officially known. The host www.psyced.org @@ -151,3 +158,68 @@ PSYC, useful for all kinds of clients and servers including psyced.") (license (list license:agpl3+ ;; test/test.c is based on a public-domain test license:public-domain)))) + +(define-public psyclpc + (package + (name "psyclpc") + (version "20160821") + (source (origin + (method url-fetch) + (uri (list (string-append "http://www.psyced.org/files/" + name "-" version ".tar.xz") + (string-append "http://krosos.sdf.org/static/unix/" + "perlpsyc-" version ".zip"))) + (sha256 + (base32 + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests/checks. + #:configure-flags (list + "--enable-use-tls=yes" + "--enable-use-mccp" + (string-append "--with-openssl=" + (assoc-ref %build-inputs "openssl")) + (string-append "--prefix=" + (assoc-ref %outputs "out")) + (string-append "--libdir=" ; "-DMUD_LIB=" + (assoc-ref %outputs "out") + "/opt/psyced/world") + (string-append "--bindir=" + (assoc-ref %outputs "out") + "/opt/psyced/bin") + (string-append "--libexecdir=" ; "-DERQ_DIR=" + (assoc-ref %outputs "out") + "/opt/psyced/run")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-to-src + (lambda _ + (chdir "src") + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "SHELL" (which "sh")))) + (replace 'install + (lambda _ + (zero? (system* "make" "install-all"))))))) + (inputs + `(("zlib" ,zlib) + ("openssl" ,openssl))) + ;; pcre is bundled to ensure the version is compatible. XXX: look into + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For + ;; functionality reasons we can not unbundle it now. + ;; ("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 [-- Attachment #1.3: Type: text/plain, Size: 10364 bytes --] ng0 <ngillmann@runbox.com> writes: > [ Unknown signature status ] > >> 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. > > Where the group means other developers hacking around psyced.org, > secushare.org etc. > I also changed my email address, which will make its way into .mailmap > in a commit which happened in the "tinycm" patch series I am working > on. > > From 33d8584709a74e20924743b2606158cacd5ed0c6 Mon Sep 17 00:00:00 2001 > From: ng0 <ng0@we.make.ritual.n0.is> > 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 | 1 + > gnu/packages/psyc.scm | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 112 insertions(+) > create mode 100644 gnu/packages/psyc.scm > > diff --git a/gnu/local.mk b/gnu/local.mk > index e2cf40d..2957e16 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -293,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..dd8a3eb > --- /dev/null > +++ b/gnu/packages/psyc.scm > @@ -0,0 +1,111 @@ > +;;; 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)) > + > +;; The URL at sdf.org is a mirror, officially known. The host www.psyced.org > +;; is running on is sometimes (rarely) attacked and this ensure that the files > +;; are available. > +(define-public perl-net-psyc > + (package > + (name "perl-net-psyc") > + (version "1.1") > + (source > + (origin > + (method url-fetch) > + (uri (list > + (string-append "http://perl.psyc.eu/" > + "perlpsyc-" version ".zip") > + (string-append "http://krosos.sdf.org/static/unix/" > + "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 3b20fd89b6f6e6d1fe00b89bcb1a8ec80853157e Mon Sep 17 00:00:00 2001 > From: ng0 <ng0@we.make.ritual.n0.is> > 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 | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm > index dd8a3eb..58ce3c6 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)) > @@ -109,3 +112,42 @@ 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 (list > + (string-append "http://www.psyced.org/files/" > + name "-" version ".tar.xz") > + (string-append "http://krosos.sdf.org/static/unix/" > + "perlpsyc-" version ".zip"))) > + (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 -- ng0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-21 18:46 ` ng0 @ 2016-09-27 16:56 ` Leo Famulari 2016-09-27 21:41 ` ng0 ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Leo Famulari @ 2016-09-27 16:56 UTC (permalink / raw) To: ng0; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2420 bytes --] On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: > From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001 > From: ng0 <ngillmann@runbox.com> > Date: Wed, 21 Sep 2016 18:08:42 +0000 > Subject: [PATCH 1/2] gnu: Add psyclpc. > > * gnu/packages/psyc.scm (psyclpc): New variable. > + (source (origin > + (method url-fetch) > + (uri (list (string-append "http://www.psyced.org/files/" > + name "-" version ".tar.xz") > + (string-append "http://krosos.sdf.org/static/unix/" > + "perlpsyc-" version ".zip"))) > + (sha256 > + (base32 > + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) Do both of those URLs provide a file with the same hash? > + (arguments > + `(#:tests? #f ; There are no tests/checks. > + #:configure-flags (list > + "--enable-use-tls=yes" > + "--enable-use-mccp" The "Mud Client Compression Protocol"? > + (string-append "--with-openssl=" > + (assoc-ref %build-inputs "openssl")) > + (string-append "--prefix=" > + (assoc-ref %outputs "out")) > + (string-append "--libdir=" ; "-DMUD_LIB=" What does this commented text mean? > + (assoc-ref %outputs "out") > + "/opt/psyced/world") > + (string-append "--bindir=" > + (assoc-ref %outputs "out") > + "/opt/psyced/bin") > + (string-append "--libexecdir=" ; "-DERQ_DIR=" Same question here. > + (inputs > + `(("zlib" ,zlib) > + ("openssl" ,openssl))) > + ;; pcre is bundled to ensure the version is compatible. XXX: look into > + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For > + ;; functionality reasons we can not unbundle it now. > + ;; ("pcre" ,pcre))) That version of PCRE was released in 2003. We might want to add a warning to the package description... https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-27 16:56 ` Leo Famulari @ 2016-09-27 21:41 ` ng0 2016-09-28 14:03 ` ng0 2016-09-29 8:58 ` [PATCH 1/2] gnu: Add perl-net-psyc. [pcre] ng0 2 siblings, 0 replies; 20+ messages in thread From: ng0 @ 2016-09-27 21:41 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Thanks for reviewing, Leo Famulari <leo@famulari.name> writes: > [ Unknown signature status ] > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >> From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001 >> From: ng0 <ngillmann@runbox.com> >> Date: Wed, 21 Sep 2016 18:08:42 +0000 >> Subject: [PATCH 1/2] gnu: Add psyclpc. >> >> * gnu/packages/psyc.scm (psyclpc): New variable. > >> + (source (origin >> + (method url-fetch) >> + (uri (list (string-append "http://www.psyced.org/files/" >> + name "-" version ".tar.xz") >> + (string-append "http://krosos.sdf.org/static/unix/" >> + "perlpsyc-" version ".zip"))) >> + (sha256 >> + (base32 >> + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) > > Do both of those URLs provide a file with the same hash? They should. But the server of psyced.org recently had to move, like you already noticed there's a mismatch now everywhere. I'll adjust again, try tomorrow around 11:59 AM UTC if I don't run into a problem I can't control. Updated patches will follow before this. >> + (arguments >> + `(#:tests? #f ; There are no tests/checks. >> + #:configure-flags (list >> + "--enable-use-tls=yes" >> + "--enable-use-mccp" > > The "Mud Client Compression Protocol"? Probably. For the why/how/what refer to the source and the Gentoo ebuild. I just do the integration/packaging. >> + (string-append "--with-openssl=" >> + (assoc-ref %build-inputs "openssl")) >> + (string-append "--prefix=" >> + (assoc-ref %outputs "out")) >> + (string-append "--libdir=" ; "-DMUD_LIB=" > > What does this commented text mean? References taken how I translated the buildsystem. >> + (assoc-ref %outputs "out") >> + "/opt/psyced/world") >> + (string-append "--bindir=" >> + (assoc-ref %outputs "out") >> + "/opt/psyced/bin") >> + (string-append "--libexecdir=" ; "-DERQ_DIR=" > > Same question here. > >> + (inputs >> + `(("zlib" ,zlib) >> + ("openssl" ,openssl))) >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >> + ;; functionality reasons we can not unbundle it now. >> + ;; ("pcre" ,pcre))) > > That version of PCRE was released in 2003. We might want to add a > warning to the package description... > > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre Let's wait with the commit then, I've asked the people at our side who are working on the code about a statement as I don't have a full understanding of psyclpc. I've also pointed out that we (psyc/secushare) are advised to update pcre (before you've sent this) to fix CVEs. I have to send a new patchseries anyway, so I can adjust this. If we'll add a comment, it's useful to point out that this is being fixed. psyclpc in the wild is not used by anything other than psyced these days, so I don't know if what's being used by psyclpc is worth to point out. -- ng0 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-27 16:56 ` Leo Famulari 2016-09-27 21:41 ` ng0 @ 2016-09-28 14:03 ` ng0 2016-09-29 8:58 ` [PATCH 1/2] gnu: Add perl-net-psyc. [pcre] ng0 2 siblings, 0 replies; 20+ messages in thread From: ng0 @ 2016-09-28 14:03 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Leo Famulari <leo@famulari.name> writes: > [ Unknown signature status ] > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >> From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001 >> From: ng0 <ngillmann@runbox.com> >> Date: Wed, 21 Sep 2016 18:08:42 +0000 >> Subject: [PATCH 1/2] gnu: Add psyclpc. >> >> * gnu/packages/psyc.scm (psyclpc): New variable. ^--------------------------------------------------| >> + (source (origin | >> + (method url-fetch) | >> + (uri (list (string-append "http://www.psyced.org/files/" | >> + name "-" version ".tar.xz") | >> + (string-append "http://krosos.sdf.org/static/unix/" | >> + "perlpsyc-" version ".zip"))) | >> + (sha256 ^-------------------------------- >> + (base32 >> + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) > > Do both of those URLs provide a file with the same hash? So there was a classic copy&paste and commit too early mistake.... Sorry for the mix up. Mirror will be added back when we still haven't solved the attacks now. Looks very stable now. I'm preparing new patches. >> + (arguments >> + `(#:tests? #f ; There are no tests/checks. >> + #:configure-flags (list >> + "--enable-use-tls=yes" >> + "--enable-use-mccp" > > The "Mud Client Compression Protocol"? > >> + (string-append "--with-openssl=" >> + (assoc-ref %build-inputs "openssl")) >> + (string-append "--prefix=" >> + (assoc-ref %outputs "out")) >> + (string-append "--libdir=" ; "-DMUD_LIB=" > > What does this commented text mean? > >> + (assoc-ref %outputs "out") >> + "/opt/psyced/world") >> + (string-append "--bindir=" >> + (assoc-ref %outputs "out") >> + "/opt/psyced/bin") >> + (string-append "--libexecdir=" ; "-DERQ_DIR=" > > Same question here. > >> + (inputs >> + `(("zlib" ,zlib) >> + ("openssl" ,openssl))) >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >> + ;; functionality reasons we can not unbundle it now. >> + ;; ("pcre" ,pcre))) > > That version of PCRE was released in 2003. We might want to add a > warning to the package description... > > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre -- ng0 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre] 2016-09-27 16:56 ` Leo Famulari 2016-09-27 21:41 ` ng0 2016-09-28 14:03 ` ng0 @ 2016-09-29 8:58 ` ng0 2016-10-02 1:50 ` Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) Leo Famulari 2 siblings, 1 reply; 20+ messages in thread From: ng0 @ 2016-09-29 8:58 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Leo Famulari <leo@famulari.name> writes: > [ Unknown signature status ] > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >> From 74a6c1e552a6ae8f438e91cbe318882401b440f8 Mon Sep 17 00:00:00 2001 >> From: ng0 <ngillmann@runbox.com> >> Date: Wed, 21 Sep 2016 18:08:42 +0000 >> Subject: [PATCH 1/2] gnu: Add psyclpc. >> >> * gnu/packages/psyc.scm (psyclpc): New variable. > >> + (source (origin >> + (method url-fetch) >> + (uri (list (string-append "http://www.psyced.org/files/" >> + name "-" version ".tar.xz") >> + (string-append "http://krosos.sdf.org/static/unix/" >> + "perlpsyc-" version ".zip"))) >> + (sha256 >> + (base32 >> + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) > > Do both of those URLs provide a file with the same hash? > >> + (arguments >> + `(#:tests? #f ; There are no tests/checks. >> + #:configure-flags (list >> + "--enable-use-tls=yes" >> + "--enable-use-mccp" > > The "Mud Client Compression Protocol"? > >> + (string-append "--with-openssl=" >> + (assoc-ref %build-inputs "openssl")) >> + (string-append "--prefix=" >> + (assoc-ref %outputs "out")) >> + (string-append "--libdir=" ; "-DMUD_LIB=" > > What does this commented text mean? > >> + (assoc-ref %outputs "out") >> + "/opt/psyced/world") >> + (string-append "--bindir=" >> + (assoc-ref %outputs "out") >> + "/opt/psyced/bin") >> + (string-append "--libexecdir=" ; "-DERQ_DIR=" > > Same question here. > >> + (inputs >> + `(("zlib" ,zlib) >> + ("openssl" ,openssl))) >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >> + ;; functionality reasons we can not unbundle it now. >> + ;; ("pcre" ,pcre))) > > That version of PCRE was released in 2003. We might want to add a > warning to the package description... > > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre Update on this: the pcre bundling was inherited from ldmud, current ldmud has unbundled pcre, so we will be able to unbundle pcre. I'd still like to have the patches in their current form and update psyclpc when the next version without pcre is out. -- ng0 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) 2016-09-29 8:58 ` [PATCH 1/2] gnu: Add perl-net-psyc. [pcre] ng0 @ 2016-10-02 1:50 ` Leo Famulari 2016-10-02 10:30 ` ng0 2016-10-03 15:44 ` Ludovic Courtès 0 siblings, 2 replies; 20+ messages in thread From: Leo Famulari @ 2016-10-02 1:50 UTC (permalink / raw) To: ng0; +Cc: guix-devel On Thu, Sep 29, 2016 at 08:58:29AM +0000, ng0 wrote: > Leo Famulari <leo@famulari.name> writes: > > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: > >> Subject: [PATCH 1/2] gnu: Add psyclpc. > >> > >> * gnu/packages/psyc.scm (psyclpc): New variable. > >> + (inputs > >> + `(("zlib" ,zlib) > >> + ("openssl" ,openssl))) > >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into > >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For > >> + ;; functionality reasons we can not unbundle it now. > >> + ;; ("pcre" ,pcre))) > > > > That version of PCRE was released in 2003. We might want to add a > > warning to the package description... > > > > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre > > Update on this: the pcre bundling was inherited from ldmud, current > ldmud has unbundled pcre, so we will be able to unbundle pcre. > > I'd still like to have the patches in their current form and update > psyclpc when the next version without pcre is out. I'd like some more opinions on this. Should we add this package even though we know it contains some security bugs (linked above)? ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) 2016-10-02 1:50 ` Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) Leo Famulari @ 2016-10-02 10:30 ` ng0 2016-10-02 10:40 ` ng0 2016-10-03 15:44 ` Ludovic Courtès 1 sibling, 1 reply; 20+ messages in thread From: ng0 @ 2016-10-02 10:30 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Leo Famulari <leo@famulari.name> writes: > On Thu, Sep 29, 2016 at 08:58:29AM +0000, ng0 wrote: >> Leo Famulari <leo@famulari.name> writes: >> > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >> >> Subject: [PATCH 1/2] gnu: Add psyclpc. >> >> >> >> * gnu/packages/psyc.scm (psyclpc): New variable. > >> >> + (inputs >> >> + `(("zlib" ,zlib) >> >> + ("openssl" ,openssl))) >> >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >> >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >> >> + ;; functionality reasons we can not unbundle it now. >> >> + ;; ("pcre" ,pcre))) >> > >> > That version of PCRE was released in 2003. We might want to add a >> > warning to the package description... >> > >> > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre >> >> Update on this: the pcre bundling was inherited from ldmud, current >> ldmud has unbundled pcre, so we will be able to unbundle pcre. >> >> I'd still like to have the patches in their current form and update >> psyclpc when the next version without pcre is out. Where do you take this information from? You must have picked the wrong thread. We updated psyclpc and I added a version which uses a git commit. > I'd like some more opinions on this. Should we add this package even > though we know it contains some security bugs (linked above)? > -- ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) 2016-10-02 10:30 ` ng0 @ 2016-10-02 10:40 ` ng0 0 siblings, 0 replies; 20+ messages in thread From: ng0 @ 2016-10-02 10:40 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel ng0 <ngillmann@runbox.com> writes: > Leo Famulari <leo@famulari.name> writes: > >> On Thu, Sep 29, 2016 at 08:58:29AM +0000, ng0 wrote: >>> Leo Famulari <leo@famulari.name> writes: >>> > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >>> >> Subject: [PATCH 1/2] gnu: Add psyclpc. >>> >> >>> >> * gnu/packages/psyc.scm (psyclpc): New variable. >> >>> >> + (inputs >>> >> + `(("zlib" ,zlib) >>> >> + ("openssl" ,openssl))) >>> >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >>> >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >>> >> + ;; functionality reasons we can not unbundle it now. >>> >> + ;; ("pcre" ,pcre))) >>> > >>> > That version of PCRE was released in 2003. We might want to add a >>> > warning to the package description... >>> > >>> > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre >>> >>> Update on this: the pcre bundling was inherited from ldmud, current >>> ldmud has unbundled pcre, so we will be able to unbundle pcre. >>> >>> I'd still like to have the patches in their current form and update >>> psyclpc when the next version without pcre is out. > > Where do you take this information from? You must have picked the wrong > thread. We updated psyclpc and I added a version which uses a git commit. Just to be clear on this, this is the current patch version: https://lists.gnu.org/archive/html/guix-devel/2016-09/msg02219.html everything else is outdated. >> I'd like some more opinions on this. Should we add this package even >> though we know it contains some security bugs (linked above)? >> > > -- > > -- ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) 2016-10-02 1:50 ` Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) Leo Famulari 2016-10-02 10:30 ` ng0 @ 2016-10-03 15:44 ` Ludovic Courtès 2016-10-03 21:06 ` ng0 1 sibling, 1 reply; 20+ messages in thread From: Ludovic Courtès @ 2016-10-03 15:44 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel Leo Famulari <leo@famulari.name> skribis: > On Thu, Sep 29, 2016 at 08:58:29AM +0000, ng0 wrote: >> Leo Famulari <leo@famulari.name> writes: >> > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >> >> Subject: [PATCH 1/2] gnu: Add psyclpc. >> >> >> >> * gnu/packages/psyc.scm (psyclpc): New variable. > >> >> + (inputs >> >> + `(("zlib" ,zlib) >> >> + ("openssl" ,openssl))) >> >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >> >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >> >> + ;; functionality reasons we can not unbundle it now. >> >> + ;; ("pcre" ,pcre))) >> > >> > That version of PCRE was released in 2003. We might want to add a >> > warning to the package description... >> > >> > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre >> >> Update on this: the pcre bundling was inherited from ldmud, current >> ldmud has unbundled pcre, so we will be able to unbundle pcre. >> >> I'd still like to have the patches in their current form and update >> psyclpc when the next version without pcre is out. > > I'd like some more opinions on this. Should we add this package even > though we know it contains some security bugs (linked above)? I don’t think so. From the comment above, it seems difficult to have this package use a current version of PCRE, right? Then I would suggest discussing it with upstream. After all, they’re developing network-facing software, so they’re probably interested in avoiding security issues. ng0, could you take it with them? TIA, Ludo’. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) 2016-10-03 15:44 ` Ludovic Courtès @ 2016-10-03 21:06 ` ng0 0 siblings, 0 replies; 20+ messages in thread From: ng0 @ 2016-10-03 21:06 UTC (permalink / raw) To: Ludovic Courtès, Leo Famulari; +Cc: guix-devel Ludovic Courtès <ludo@gnu.org> writes: > Leo Famulari <leo@famulari.name> skribis: > >> On Thu, Sep 29, 2016 at 08:58:29AM +0000, ng0 wrote: >>> Leo Famulari <leo@famulari.name> writes: >>> > On Wed, Sep 21, 2016 at 06:46:31PM +0000, ng0 wrote: >>> >> Subject: [PATCH 1/2] gnu: Add psyclpc. >>> >> >>> >> * gnu/packages/psyc.scm (psyclpc): New variable. >> >>> >> + (inputs >>> >> + `(("zlib" ,zlib) >>> >> + ("openssl" ,openssl))) >>> >> + ;; pcre is bundled to ensure the version is compatible. XXX: look into >>> >> + ;; unbundling it. Upstream should update from pcre 4.5 to 8.38. For >>> >> + ;; functionality reasons we can not unbundle it now. >>> >> + ;; ("pcre" ,pcre))) >>> > >>> > That version of PCRE was released in 2003. We might want to add a >>> > warning to the package description... >>> > >>> > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre >>> >>> Update on this: the pcre bundling was inherited from ldmud, current >>> ldmud has unbundled pcre, so we will be able to unbundle pcre. >>> >>> I'd still like to have the patches in their current form and update >>> psyclpc when the next version without pcre is out. >> >> I'd like some more opinions on this. Should we add this package even >> though we know it contains some security bugs (linked above)? > > I don’t think so. > > From the comment above, it seems difficult to have this package use a > current version of PCRE, right? Then I would suggest discussing it with > upstream. After all, they’re developing network-facing software, so > they’re probably interested in avoiding security issues. > > ng0, could you take it with them? > > TIA, > Ludo’. > Leo, Ludovic: I really appreciate the review, but please use the more current thread. I commented that this is the wrong thread and that we already fixed the pcre, last week. No need to discuss about pcre anymore. Thanks -- ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 1/2] gnu: Add perl-net-psyc. 2016-09-21 10:34 ` ng0 2016-09-21 18:46 ` ng0 @ 2016-09-27 16:49 ` Leo Famulari 2016-09-28 15:47 ` [PATCH] Add psyc* suite ng0 1 sibling, 1 reply; 20+ messages in thread From: Leo Famulari @ 2016-09-27 16:49 UTC (permalink / raw) To: ng0; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1515 bytes --] On Wed, Sep 21, 2016 at 10:34:15AM +0000, ng0 wrote: > From 33d8584709a74e20924743b2606158cacd5ed0c6 Mon Sep 17 00:00:00 2001 > From: ng0 <ng0@we.make.ritual.n0.is> > 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. The hash is incorrect: Starting download of /gnu/store/7kl9swdb9215lzdg1f7z4y41z4jssb7w-perl-net-psyc-1.1.zip From http://perl.psyc.eu/perlpsyc-1.1.zip... perlpsyc-1.1.zip 174KiB 282KiB/s 00:01 [####################] 100.0% output path `/gnu/store/7kl9swdb9215lzdg1f7z4y41z4jssb7w-perl-net-psyc-1.1.zip' should have sha256 hash `1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42', instead has `02isxl14n7jb18s5qr482y5ndj3cy04xw3699wvcxrr98lxj7xim' @ build-failed /gnu/store/6lfrf1q84v86l5bvh1sf9x6zv3k9gv4j-perl-net-psyc-1.1.zip.drv - 1 output path `/gnu/store/7kl9swdb9215lzdg1f7z4y41z4jssb7w-perl-net-psyc-1.1.zip' should have sha256 hash `1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42', instead has `02isxl14n7jb18s5qr482y5ndj3cy04xw3699wvcxrr98lxj7xim' cannot build derivation `/gnu/store/i4xfmwz4jiqw7jcs2njhgddq4a4l28ws-perl-net-psyc-1.1.tar.xz.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/amg0r4pkn9pky2v931ipd4r2sh66kaj1-perl-net-psyc-1.1.drv': 1 dependencies couldn't be built guix build: error: build failed: build of `/gnu/store/amg0r4pkn9pky2v931ipd4r2sh66kaj1-perl-net-psyc-1.1.drv' failed [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] Add psyc* suite 2016-09-27 16:49 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari @ 2016-09-28 15:47 ` ng0 0 siblings, 0 replies; 20+ messages in thread From: ng0 @ 2016-09-28 15:47 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 168 bytes --] Hi, so next try. The First 3 patches intended for review and possible merge, for patch 4 (psyced) I want some input, this needs hopefully only a simply guix service. [-- Attachment #1.2: 0001-gnu-Add-perl-net-psyc.patch --] [-- Type: text/x-patch, Size: 6058 bytes --] From 5bfb62bbce996f718bf184a07f163a932975a730 Mon Sep 17 00:00:00 2001 From: ng0 <ngillmann@runbox.com> Date: Wed, 28 Sep 2016 13:48:22 +0000 Subject: [PATCH 1/4] gnu: Add perl-net-psyc. * 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-gnu-Add-libpsyc.patch --] [-- Type: text/x-patch, Size: 2687 bytes --] From 3b892ba74e9cbcc933dee1353c817b72f12608e4 Mon Sep 17 00:00:00 2001 From: ng0 <ngillmann@runbox.com> Date: Wed, 28 Sep 2016 13:57:14 +0000 Subject: [PATCH 2/4] gnu: Add libpsyc. * 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.4: 0003-gnu-Add-psyclpc.patch --] [-- Type: text/x-patch, Size: 4409 bytes --] From e9d543c317e31cfc90367f8acd0b9221f28053d4 Mon Sep 17 00:00:00 2001 From: ng0 <ngillmann@runbox.com> Date: Wed, 28 Sep 2016 15:20:29 +0000 Subject: [PATCH 3/4] gnu: Add psyclpc. * gnu/packages/psyc.scm (psyclpc): New variable. --- gnu/packages/psyc.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index 253fa64..2a49579 100644 --- a/gnu/packages/psyc.scm +++ b/gnu/packages/psyc.scm @@ -24,9 +24,16 @@ #: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 pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages web)) (define-public perl-net-psyc @@ -144,3 +151,73 @@ including psyced.") (license (list license:agpl3+ ;; test/test.c is based on a public-domain test license:public-domain)))) + +(define-public psyclpc + (package + (name "psyclpc") + (version "20160821") + (source (origin + (method url-fetch) + (uri (string-append "http://www.psyced.org/files/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0c2afcj8b2yr2vmy9sy0528iqs9sw01j6q35lvxicm42gs7vnik2")))) + (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 is bundled to ensure the version is compatible. XXX: look into + ;; unbundling it. Upstream will update pcre. For functionality + ;; reasons we can not unbundle it right now. + ;; https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=pcre + ;; ("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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.5: 0004-gnu-Add-psyced.patch --] [-- Type: text/x-patch, Size: 6042 bytes --] From b683f28fc7d91be19534971ab1cba944f882f2d9 Mon Sep 17 00:00:00 2001 From: ng0 <ngillmann@runbox.com> Date: Wed, 28 Sep 2016 15:40:50 +0000 Subject: [PATCH 4/4] gnu: Add psyced. * gnu/packages/psyc.scm (psyced): New variable. --- gnu/packages/psyc.scm | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index 2a49579..2d10a26 100644 --- a/gnu/packages/psyc.scm +++ b/gnu/packages/psyc.scm @@ -18,6 +18,7 @@ (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) @@ -221,3 +222,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 [-- Attachment #1.6: Type: text/plain, Size: 26 bytes --] -- ng0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply related [flat|nested] 20+ messages in thread
end of thread, other threads:[~2016-10-03 21:06 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-13 11:32 [PATCH 1/2] gnu: Add perl-net-psyc ng0 2016-09-13 11:32 ` [PATCH 2/2] gnu: Add libpsyc ng0 2016-09-13 19:17 ` Leo Famulari 2016-09-13 19:16 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 2016-09-13 19:34 ` ng0 2016-09-13 20:55 ` ng0 2016-09-21 9:17 ` ng0 2016-09-21 10:34 ` ng0 2016-09-21 18:46 ` ng0 2016-09-27 16:56 ` Leo Famulari 2016-09-27 21:41 ` ng0 2016-09-28 14:03 ` ng0 2016-09-29 8:58 ` [PATCH 1/2] gnu: Add perl-net-psyc. [pcre] ng0 2016-10-02 1:50 ` Adding packages with vulnerabilities (was Re: [PATCH 1/2] gnu: Add perl-net-psyc. [pcre]) Leo Famulari 2016-10-02 10:30 ` ng0 2016-10-02 10:40 ` ng0 2016-10-03 15:44 ` Ludovic Courtès 2016-10-03 21:06 ` ng0 2016-09-27 16:49 ` [PATCH 1/2] gnu: Add perl-net-psyc Leo Famulari 2016-09-28 15:47 ` [PATCH] Add psyc* suite ng0
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).