rekahsoft-guix/rekahsoft-gnu/packages/perl.scm

540 lines
18 KiB
Scheme

;; (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 <http://www.gnu.org/licenses/>.
;; File: perl.scm
;; Author: Collin J. Doering <collin.doering@rekahsoft.ca>
;; 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 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))
(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 ;; TODO: this dep fails to build currently
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)))