From 10eeb85733c67c4fdd5cd4df84457a565e45971e Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 15 Jun 2016 16:30:30 +0000 Subject: [PATCH] gnu: Add perl-net-psyc. * gnu/packages/perl.scm (perl-net-psyc): New Variable. --- gnu/packages/perl.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e7e7967..8772d0a 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016 Efraim Flashner +;;; Coypright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl)) @@ -3865,6 +3867,75 @@ cycle. Functions called in the package itself will still be bound by their name, but they won't show up as methods on your class or instances.") (license (package-license perl)))) +;; highly optional dependencies: rxaudio (mp3 binary from 1996) +;; opt. perl: MP3::List (psycmp3), Curses (psycion), pwd.pl +;; (psyccmd), SGI::FAM module (psycfilemonitor); for full +;; functionality package all except MP3::List. +(define-public perl-net-psyc + (let ((commit "4176f5236e73e99391c0877152d5596ab0a9b154")) + (package + (name "perl-net-psyc") + (version (string-append "1.0" "-" + (string-take commit 8))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.psyced.org/git/perlpsyc") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "19msvr1kriqa6n8cnk8z96xd5i0v5cy2y52jsj08vaj79b4m7sph")))) + (build-system perl-build-system) + (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 "\\.*$")) + ;; XXX: hooks/dpa2psyc,examples/{recvtest,sendtest}, + ;; cgi/psycpager,contrib/{makenoise,keefchat + ;; contrib/MovableTypeBlog/plugins/psyc.pl + #t)))))) + (description + "Net::PSYC with support for TCP, UDP, Event.pm, 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. +Further information is included in the package source and on the website.") + (synopsis "Perl implementation of PSYC protocol") + (home-page "http://perlpsyc.psyc.eu/") + ;;dual licensed: gpl2+ Artistic + (license (list gpl2+ (package-license perl)))))) + (define-public perl-number-compare (package (name "perl-number-compare") -- 2.8.4