From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: Re: [PATCH] gnu: Add perl-net-psyc. Date: Sat, 20 Aug 2016 16:38:17 +0000 Message-ID: <87zio7wg3q.fsf@we.make.ritual.n0.is> References: <87inuwu9p1.fsf@we.make.ritual.n0.is> <874m6fg5fx.fsf@we.make.ritual.n0.is> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52908) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bb9Hu-0003t7-F2 for guix-devel@gnu.org; Sat, 20 Aug 2016 12:38:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bb9Hp-0001Rz-Qr for guix-devel@gnu.org; Sat, 20 Aug 2016 12:38:25 -0400 Received: from mithlond.libertad.in-berlin.de ([2001:67c:1400:2490::1]:58387 helo=beleriand.n0.is) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bb9Hp-0001Ro-Fj for guix-devel@gnu.org; Sat, 20 Aug 2016 12:38:21 -0400 Received: by beleriand.n0.is (OpenSMTPD) with ESMTPSA id 97fc6292 TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO for ; Sat, 20 Aug 2016 16:38:18 +0000 (UTC) In-Reply-To: <874m6fg5fx.fsf@we.make.ritual.n0.is> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-=-= Content-Type: text/plain ng0 writes: > ng0 writes: > >> Net::PSYC binary "psycion" requires perl-curses, which has been packaged >> and send for review. >> >> psycion is being bugfixed, it is functional but the server application >> it functions with needs to update the internal policies on how to treat >> native psyc clients. It's on the todo list and will be fixed >> eventually. As psycion is not the only part of Net::PSYC I find it okay >> to submit the entire perl-net-psyc now instead of waiting for psyced to >> have this policy fixed. >> >> There is psycmp3 which currently depends on MP3::List and the rxaudio >> shareware, it will be fixed to function with current free software >> equivalents of dependencies. It is deleted in a snippet phase for now >> and will be added back when it no longer "recommends non-free >> software". >> >> For another binary, I would have to package fam and SGI::FAM, this is >> reflected in the most recent commit: >> "moving bin/psycfilemonitor to contrib until somebody upgrades it to use >> inotify instead of fam". No one uses this binary currently, so it can be >> left where it is and will be updated in time. >> >> I created the file gnu/packages/psyc.scm because I am working on more >> applications: psyced, libpsyc, psyclpc and future releases. As they all >> circle around the psyced.org domain and the protocol PSYC, a dedicated >> file is the only logic choice. libpsyc will follow soon after this >> (perl-net-psyc) patch. >> I am working close with upstream to address issues on different >> operating systems. Upstream developers do very rarely release tarballs, >> in the case of Net::PSYC this git commit has more bugfixes than the >> latest tarball. As soon as the tarball catches up I will consider to >> change it, however this is a very small application collection, so a >> checkout will not take that much space on distributing servers. > > Corrections appending to this: > > "needs to update the internal policies on how to treat native psyc > clients" <- only when the welcome channel has secure set, a default > psyced without any changes does not complain about this. > > The plan for the future is to run psycion with localhost psyced and > cadet (gnunet), not via the insecure internet Release version 1.1 of Net::PSYC is out, using the zip archive of it for now. Patches rebased on master. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-Add-perl-curses.patch >From 1f86f2a4b47df27e6540e64fb704bbcb4c8c9b53 Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 19 Aug 2016 13:13:42 +0000 Subject: [PATCH 1/2] gnu: Add perl-curses. * gnu/packages/perl.scm (perl-curses): New variable. --- gnu/packages/perl.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index aef92f4..170eacd 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -30,6 +30,7 @@ (define-module (gnu packages perl) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages ncurses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -1138,6 +1139,57 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated Password Generator\".") (license (package-license perl)))) +(define-public perl-curses + (package + (name "perl-curses") + (version "1.36") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/G/GI/GIRAFFED/" + "Curses-" version ".tar.gz")) + (sha256 + (base32 + "0r6xd9wr0c25rr28zixhqipak575zqsfb7r7f2693i9il1dpj554")))) + (build-system perl-build-system) + (inputs + `(("ncurses" ,ncurses))) + (arguments + `(#:make-maker-flags (list "PANELS" "MENUS") ; FORMS seems faulty. + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-curses-ldflags + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CURSES_LIBTYPE" "ncurses") + (setenv "CURSES_CFLAGS" + (string-append "-I" (assoc-ref inputs "ncurses") + "/include")) + (setenv "CURSES_PANEL_CFLAGS" + (string-append "-I" (assoc-ref inputs "ncurses") + "/include")) + (setenv "CURSES_MENU_CFLAGS" + (string-append "-I" (assoc-ref inputs "ncurses") + "/include")) + (setenv "CURSES_FORM_CFLAGS" + (string-append "-I" (assoc-ref inputs "ncurses") + "/include")) + (setenv "CURSES_LDFLAGS" + (string-append "-L" (assoc-ref inputs "ncurses") + "/lib -lncurses")) + (setenv "CURSES_PANEL_LDFLAGS" + (string-append "-L" (assoc-ref inputs "ncurses") + "/lib -lpanel")) + (setenv "CURSES_MENU_LDFLAGS" + (string-append "-L" (assoc-ref inputs "ncurses") + "/lib -lmenu")) + (setenv "CURSES_FORM_LDFLAGS" + (string-append "-L" (assoc-ref inputs "ncurses") + "/lib -lform"))))))) + (home-page "http://search.cpan.org/dist/Curses") + (synopsis "Terminal screen handling and optimization") + (description + "@code{Curses} is the interface between Perl and the curses library of your system.") + (license (package-license perl)))) + (define-public perl-czplib (package (name "perl-czplib") -- 2.9.3 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0002-gnu-Add-perl-net-psyc.patch Content-Transfer-Encoding: 8bit >From ff33e33d302690cf31984c1b14e18560e96d15c9 Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 19 Aug 2016 13:15:01 +0000 Subject: [PATCH 2/2] gnu: Add perl-net-psyc. * gnu/packages/psyc.scm (perl-net-psyc): New variable. --- gnu/local.mk | 1 + gnu/packages/psyc.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 gnu/packages/psyc.scm diff --git a/gnu/local.mk b/gnu/local.mk index 15538df..8ad9106 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -287,6 +287,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..519581c --- /dev/null +++ b/gnu/packages/psyc.scm @@ -0,0 +1,91 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 ng0 +;;; +;;; 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 . + +(define-module (gnu packages psyc) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system perl) + #:use-module (gnu packages) + #:use-module (gnu packages perl)) + +(define-public perl-net-psyc + (let ((upstream-name "perlpsyc")) + (package + (name "perl-net-psyc") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append "http://perl.psyc.eu/" + upstream-name "-" 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))) ; Dependency for psycion binary + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/perl-net-psyc")) + (libpsyc (string-append out "/lib/psyc/ion")) + (libperl (string-append out "/lib/perl5/site_perl/" + ,(package-version perl))) + (bin (string-append out "/bin"))) + (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) + #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)))))) + (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") + ;;dual licensed: gpl2 and Artistic + (license (list license:gpl2 (package-license perl) + ;; contrib/irssi-psyc.pl: Public-Domain + license:public-domain))))) -- 2.9.3 --=-=-= Content-Type: text/plain -- ng0 For non-prism friendly talk find me on http://www.psyced.org --=-=-=--