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