From 77037b903a32dd61bd081a41ca7ff0b9ab6fa7f9 Mon Sep 17 00:00:00 2001 From: "Collin J. Doering" Date: Sun, 16 Jan 2022 23:58:00 -0500 Subject: [PATCH] perl.scm: Initial packaging of imapsync and missing dependencies --- rekahsoft-gnu/packages/perl.scm | 539 ++++++++++++++++++++++++++++++++ 1 file changed, 539 insertions(+) create mode 100644 rekahsoft-gnu/packages/perl.scm diff --git a/rekahsoft-gnu/packages/perl.scm b/rekahsoft-gnu/packages/perl.scm new file mode 100644 index 0000000..833603f --- /dev/null +++ b/rekahsoft-gnu/packages/perl.scm @@ -0,0 +1,539 @@ +;; (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 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)))