From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: [PATCH] gnu: Add perl-net-psyc. Date: Fri, 19 Aug 2016 14:15:06 +0000 Message-ID: <87inuwu9p1.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]:40696) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bakZl-0000at-7l for guix-devel@gnu.org; Fri, 19 Aug 2016 10:15:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bakZh-0006sb-Dm for guix-devel@gnu.org; Fri, 19 Aug 2016 10:15:13 -0400 Received: from mithlond.libertad.in-berlin.de ([2001:67c:1400:2490::1]:52041 helo=beleriand.n0.is) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bakZg-0006r1-Pc for guix-devel@gnu.org; Fri, 19 Aug 2016 10:15:09 -0400 Received: by beleriand.n0.is (OpenSMTPD) with ESMTPSA id 943968ad TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO for ; Fri, 19 Aug 2016 14:15:07 +0000 (UTC) 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 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. Thanks for reviewing. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-perl-net-psyc.patch Content-Transfer-Encoding: 8bit >From 45e070993ebc28b0fa5f76cc1b1005a56e75238f Mon Sep 17 00:00:00 2001 From: ng0 Date: Fri, 19 Aug 2016 13:15:01 +0000 Subject: [PATCH] gnu: Add perl-net-psyc. * gnu/packages/psyc.scm (perl-net-psyc): New variable. --- gnu/local.mk | 1 + gnu/packages/psyc.scm | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 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..c78addf --- /dev/null +++ b/gnu/packages/psyc.scm @@ -0,0 +1,98 @@ +;;; 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 git-download) + #:use-module (guix build-system perl) + #:use-module (gnu packages) + #:use-module (gnu packages perl)) + +;; Tarball releases are made rarely, in fact the developer team prefers git for +;; security reasons, this is why we stick to the git checkout which has bugs +;; fixed needed to build this on Guix. +(define-public perl-net-psyc + (let ((revision "1") + (commit "7f1f7a208510e21cec88fe902bd1399d4b022009")) + (package + (name "perl-net-psyc") + (version (string-append "1.0-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.psyced.org/git/perlpsyc") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1b8gwkii4kdjgza6qzv09mwigibp8d68sxnm2hx4v90p373vaxx1")) + ;; psycmp3 currently depends on MP3::List and rxaudio (shareware), + ;; we can add it back when this is no longer the case. + (snippet '(delete-file "bin/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) + ;; There is a Makefile, but the current Makefile is incomplete. + ;; This will be fixed at some point. + (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 --=-=-=--