;;; 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)) (define-public perl-net-psyc (let ((revision "1") (commit "6bb3e0f550fc60ea34f7e0e2cd3ba8ece1a27be5")) (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 "1xn7xdi9ngqdmknhihr4cmsa2azph226a0sj1zd75435r6sxwy3b")))) (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+ Artistic (license (list license:gpl2 (package-license perl) ;; contrib/irssi-psyc.pl: Public-Domain license:public-domain)))))