;; (C) Copyright Collin J. Doering 2022 ;; ;; This program 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. ;; ;; This program 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 this program. If not, see . ;; File: perl.scm ;; Author: Collin J. Doering ;; Date: Jan 16, 2022 (define-module (rekahsoft-gnu packages perl) #:use-module (srfi srfi-1) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) #:use-module (gnu packages version-control) #:use-module (gnu packages admin) #:use-module (gnu packages web) #:use-module (gnu packages tls) #:use-module (gnu packages networking) #:use-module (gnu packages gnupg) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-compression) #:use-module (gnu packages tcl) #:use-module (guix build-system perl) #:use-module (guix build-system gnu)) (define-public perl-ntlm (package (name "perl-ntlm") (version "1.09") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-" version ".tar.gz")) (sha256 (base32 "118z2n9qhjalfj7l9hhpjppyxdg2c34h4hsqdriibg3nv86f68y8")))) (build-system perl-build-system) (propagated-inputs `(("perl-digest-hmac" ,perl-digest-hmac))) (home-page "https://metacpan.org/release/NTLM") (synopsis "An NTLM authentication module") (description "An NTLM authentication module.") (license license:perl-license))) (define-public perl-encode-imaputf7 (package (name "perl-encode-imaputf7") (version "1.05") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-" version ".tar.gz")) (sha256 (base32 "1q9pgjckjxz0qfwaqmzm1dh1y09819vi6vf1sglcz0vlqgfha0s7")))) (build-system perl-build-system) (propagated-inputs `(("perl-test-nowarnings" ,perl-test-nowarnings))) (home-page "https://metacpan.org/release/Encode-IMAPUTF7") (synopsis "Modification of UTF-7 encoding for IMAP") (description "Modification of UTF-7 encoding for IMAP") (license #f))) (define-public perl-file-tail (package (name "perl-file-tail") (version "1.3") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-" version ".tar.gz")) (sha256 (base32 "1ixg6kn4h330xfw3xgvqcbzfc3v2wlzjim9803jflhvfhf0rzl16")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/File-Tail") (synopsis "Perl extension for reading from continously updated files") (description "Perl extension for reading from continously updated files.") (license license:perl-license))) (define-public perl-io-socket-ssl (package (name "perl-io-socket-ssl") (version "2.073") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-" version ".tar.gz")) (sha256 (base32 "1j2prw40s3m3i41q3nnbdjw8kz8y992y5ki1ca0smcbwz56v7h5j")))) (build-system perl-build-system) (native-inputs `(("perl-net-ssleay" ,perl-net-ssleay))) (propagated-inputs `(("perl-mozilla-ca" ,perl-mozilla-ca) ("perl-net-ssleay" ,perl-net-ssleay))) (home-page "https://metacpan.org/release/IO-Socket-SSL") (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET.") (description "Nearly transparent SSL encapsulation for IO::Socket::INET.") (license license:perl-license))) (define-public perl-io-tee (package (name "perl-io-tee") (version "0.66") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-" version ".tar.gz")) (sha256 (base32 "1q2jhp02rywrbyhvl2lv6qp70dcv5cfalrx3cc4c7y8nclhfg71d")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/IO-Tee") (synopsis "Multiplex output to multiple output handles") (description "Multiplex output to multiple output handles") (license license:perl-license))) (define-public perl-json-webtoken (package (name "perl-json-webtoken") (version "0.10") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-" version ".tar.gz")) (sha256 (base32 "12r40z7j8gs1p6wqn4k9f3k97p5lngaliidgh96p3w98hnlq5hbp")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) ("perl-test-mock-guard" ,perl-test-mock-guard) ("perl-test-requires" ,perl-test-requires))) (propagated-inputs `(("perl-json" ,perl-json) ("perl-module-runtime" ,perl-module-runtime))) (home-page "https://metacpan.org/release/JSON-WebToken") (synopsis "JSON Web Token (JWT) implementation") (description "JSON Web Token (JWT) implementation") (license license:perl-license))) (define-public perl-mail-imapclient (package (name "perl-mail-imapclient") (version "3.43") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-" version ".tar.gz")) (sha256 (base32 "0vxl3xfr9fr844nhjx5br1yggavpycnyydi99pzahisvq7x9fg09")))) (build-system perl-build-system) (propagated-inputs `(("perl-parse-recdescent" ,perl-parse-recdescent))) (home-page "https://metacpan.org/release/Mail-IMAPClient") (synopsis "IMAP4 client library") (description "IMAP4 client library.") (license license:perl-license))) (define-public perl-getopt-argvfile (package (name "perl-getopt-argvfile") (version "1.11") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-" version ".tar.gz")) (sha256 (base32 "08jvhfqcjlsn013x96qa6paif0095x6y60jslp8p3zg67i8sl29p")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/Getopt-ArgvFile") (synopsis "Interpolates script options from files into @ARGV or another array") (description "Interpolates script options from files into @ARGV or another array.") (license #f))) (define-public perl-module-signature (package (name "perl-module-signature") (version "0.88") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-" version ".tar.gz")) (sha256 (base32 "14i6yg7z4shsmzzdjzamcyjxpci8jxr0z336a3iy7n9plmss2z3p")))) (build-system perl-build-system) (native-inputs (list perl-ipc-run gnupg)) (home-page "https://metacpan.org/release/Module-Signature") (synopsis "Module signature file manipulation") (description "Module signature file manipulation.") (license #f))) (define-public perl-par (package (name "perl-par") (version "1.017") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-" version ".tar.gz")) (sha256 (base32 "0l4nfab7sh7452wgfnn0gdlh8pnrlnvim8njrfgkhk3miqjmnzf3")))) (build-system perl-build-system) (propagated-inputs `(("perl-archive-zip" ,perl-archive-zip) ("perl-par-dist" ,perl-par-dist))) (home-page "https://metacpan.org/release/PAR") (synopsis "Perl Archive Toolkit") (description "Perl Archive Toolkit.") (license license:perl-license))) (define-public perl-tk-canvas-gradientcolor (package (name "perl-tk-canvas-gradientcolor") (version "1.06") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/D/DJ/DJIBEL/Tk-Canvas-GradientColor-" version ".tar.gz")) (sha256 (base32 "07nw0xm30kb6mxjxgla2m28npnmrxz46xmvi9n2rhr5fv99jfymj")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) ("perl-tk" ,perl-tk))) (home-page "https://metacpan.org/release/Tk-Canvas-GradientColor") (synopsis "To create a Canvas widget with background gradient color") (description "To create a Canvas widget with background gradient color.") (license license:perl-license))) (define-public perl-tk-coloredbutton (package (name "perl-tk-coloredbutton") (version "1.05") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/D/DJ/DJIBEL/Tk-ColoredButton-" version ".tar.gz")) (sha256 (base32 "0hngxviz5jbqchicjdqgby2ibwgr1glyimf88bfmbwk0i4x7h5zj")))) (build-system perl-build-system) (native-inputs (list perl-module-build perl-tk perl-tk-canvas-gradientcolor)) (home-page "https://metacpan.org/release/Tk-ColoredButton") (synopsis "Button widget with background gradient color") (description "Button widget with background gradient color.") (license license:perl-license))) (define-public perl-tk-entrycheck (package (name "perl-tk-entrycheck") (version "0.04") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/ST/STRAT/Tk-EntryCheck-" version ".tar.gz")) (sha256 (base32 "0phx2ppgf8flcv7ap2zx705glz97mnc0cyp0pfibbwqlj3a4hcg8")))) (build-system perl-build-system) ;; (native-inputs (list perl-tk)) ; TODO: needed for tests, but tests fail to open display :0 (depend on xorg) (arguments `(#:tests? #f)) (home-page "https://metacpan.org/release/Tk-EntryCheck") (synopsis "Interface to Tk::Entry for controlling its maximum length and content in an easy way") (description "Interface to Tk::Entry for controlling its maximum length and content in an easy way.") (license license:perl-license))) (define-public perl-tk-fontdialog (package (name "perl-tk-fontdialog") (version "0.18") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/SR/SREZIC/Tk-FontDialog-" version ".tar.gz")) (sha256 (base32 "0ck3h2ssiisbk46l66shzpj7n06pjilx8h007appz2ry46vyh03w")))) (build-system perl-build-system) (propagated-inputs `(("perl-tk" ,perl-tk))) (home-page "https://metacpan.org/release/Tk-FontDialog") (synopsis "A font dialog widget for perl/Tk") (description "A font dialog widget for perl/Tk.") (license #f))) (define-public perl-tk-getopt (package (name "perl-tk-getopt") (version "0.51") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/SR/SREZIC/Tk-Getopt-" version ".tar.gz")) (sha256 (base32 "0b7kln2614a9sycbbfjj23vpfn3r5rbshi0571wbcrmkjjpm90kg")))) (build-system perl-build-system) (propagated-inputs (list perl-tk perl-tk-fontdialog)) (home-page "https://metacpan.org/release/Tk-Getopt") (synopsis "User configuration window for Tk with interface to Getopt::Long") (description "User configuration window for Tk with interface to Getopt::Long.") (license license:perl-license))) (define-public perl-par-packer (package (name "perl-par-packer") (version "1.052") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Packer-" version ".tar.gz")) (sha256 (base32 "16il9sgcnjg9w07grwrxagvk30bfn0hhrqa9f5z606k7yhvdbypz")))) (build-system perl-build-system) (native-inputs (list perl-ipc-run3)) (propagated-inputs (list perl-archive-zip perl-getopt-argvfile perl-module-scandeps perl-module-signature perl-par perl-par-dist perl-tk perl-tk-coloredbutton perl-tk-entrycheck perl-tk-getopt)) (home-page "https://metacpan.org/release/PAR-Packer") (synopsis "PAR Packager") (description "PAR Packager.") (license license:perl-license))) (define-public perl-sys-meminfo (package (name "perl-sys-meminfo") (version "0.99") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-" version ".tar.gz")) (sha256 (base32 "0fryrzj06wk2kxg4swsj9xqhn53yy55j8fbrf9fsx2rs7afk31h7")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/Sys-MemInfo") (synopsis "Query the total free and used physical memory") (description "Query the total free and used physical memory.") (license #f))) (define-public perl-test-mock-guard (package (name "perl-test-mock-guard") (version "0.10") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-" version ".tar.gz")) (sha256 (base32 "0gdx1nahk5sgg5ns1v1m50di4wshx09hl244lwmbkknnz1iql8kz")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) (propagated-inputs `(("perl-class-load" ,perl-class-load))) (home-page "https://metacpan.org/release/Test-Mock-Guard") (synopsis "Simple mock test library using RAII") (description "Simple mock test library using RAII.") (license license:perl-license))) (define-public perl-unicode-string (package (name "perl-unicode-string") (version "2.10") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-" version ".tar.gz")) (sha256 (base32 "0s4vp8k7ag7z9lsnnkpa9mnch83kxhp9gh7yiapld5a7rq712jl9")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/Unicode-String") (synopsis "String of Unicode characters (UTF-16BE)") (description "String of Unicode characters (UTF-16BE).") (license #f))) (define-public perl-app-cpanminus (package (name "perl-app-cpanminus") (version "1.7044") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-" version ".tar.gz")) (sha256 (base32 "1ww11x87b6z14yc3xk1sqajqjcx6c28g24rzkmxfylh7wizpcq4v")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/App-cpanminus") (synopsis "Get, unpack, build and install modules from CPAN") (description "Get, unpack, build and install modules from CPAN.") (license license:perl-license))) (define-public imapsync (package (name "imapsync") (version "2.140") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/imapsync/imapsync") (commit (string-append "imapsync-" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1k4rf582c3434yxj9brsjz0awakd84xwikghyq0h54darqwfm23j")))) (build-system gnu-build-system) (native-inputs (list inetutils perl)) ;; TODO: these should be normal inputs, but currently the executable produced is not wrapped, so it fails to load the required libs (propagated-inputs (list perl-cgi perl-app-cpanminus perl-crypt-openssl-rsa perl-data-uniqid perl-digest-hmac perl-dist-checkconflicts perl-encode perl-encode-imaputf7 perl-file-copy-recursive perl-file-tail perl-io-socket-inet6 perl-io-socket-ssl perl-io-tee perl-json perl-json-webtoken perl-libwww perl-mail-imapclient perl-module-implementation perl-module-scandeps perl-net-ssleay perl-ntlm perl-package-stash perl-par-packer perl-parse-recdescent perl-readonly perl-regexp-common perl-sys-meminfo perl-term-readkey perl-test-deep perl-test-fatal perl-test-mock-guard perl-test-mockobject perl-test-pod perl-test-requires perl-unicode-string perl-uri perl-try-tiny)) (arguments `(#:phases (modify-phases %standard-phases (delete 'configure) (replace 'build (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (invoke "make") #t))) (delete 'check) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) (mkdir-p "./W") ;make install fails unless a W directory exists (invoke "make" "install" "PREFIX=/" (string-append "DESTDIR=" out)) #t)))))) (synopsis "Imapsync is an IMAP transfers tool") (description "Imapsync is an IMAP transfers tool. The purpose of imapsync is to migrate IMAP accounts or to backup IMAP accounts. IMAP is one of the three current standard protocols to access mailboxes, the two others are POP3 and HTTP with webmails, webmails are often tied to an IMAP server.") (home-page "https://imapsync.lamiral.info/") (license license:public-domain)))