;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages license)
- #:use-module (guix licenses)
#:use-module (gnu packages)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system perl)
+ #:use-module (gnu packages check)
#:use-module (gnu packages perl)
- #:use-module (gnu packages perl-check))
+ #:use-module (gnu packages perl-check)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (guix build-system perl)
+ #:use-module (guix build-system python)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix licenses)
+ #:use-module (guix packages))
;;;
;;; Please: Try to add new module packages in alphabetic order.
(define-public perl-regexp-pattern-license
(package
(name "perl-regexp-pattern-license")
- (version "3.1.0")
+ (version "3.1.94")
(source
(origin
(method url-fetch)
"mirror://cpan/authors/id/J/JO/JONASS/Regexp-Pattern-License-"
"v" version ".tar.gz"))
(sha256
- (base32
- "1479ismcgq1mx712yhw0qswb4z75spc81f9k621vfpkji0smpyk2"))))
+ (base32 "0kznpv628jrndn4nw646f6pl7yqvmacwljlygvsjfdkyh0i4sr2k"))))
(build-system perl-build-system)
(native-inputs
`(("perl-regexp-pattern" ,perl-regexp-pattern)
("perl-test-exception" ,perl-test-exception)))
(propagated-inputs
- `(("perl-strictures" ,perl-strictures-2)))
- (home-page "http://search.cpan.org/dist/Regexp-Pattern-License/")
+ `(("perl-strictures" ,perl-strictures-2)
+ ("perl-try-tiny" ,perl-try-tiny)))
+ (home-page "https://metacpan.org/release/Regexp-Pattern-License")
(synopsis "Regular expressions for legal licenses")
(description "Regexp::Pattern::License provides a hash of regular
expression patterns related to legal software licenses.
Regexp::Pattern is a convention for organizing reusable regex patterns.")
(license gpl3+)))
+
+(define-public perl-string-copyright
+ (package
+ (name "perl-string-copyright")
+ (version "0.003006")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JO/JONASS/String-Copyright-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0fzymv065nn3glwnw34nkyadzw2dh4rcz8avmki4zrnk4k45m01a"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-number-range" ,perl-number-range)))
+ (propagated-inputs
+ `(("perl-exporter-tiny" ,perl-exporter-tiny)))
+ (home-page "https://metacpan.org/release/String-Copyright")
+ (synopsis "Representation of text-based copyright statements")
+ (description "String::Copyright Parses common styles of copyright
+statements and serializes in normalized format.")
+ (license gpl3+)))
+
+(define-public perl-software-license
+ (package
+ (name "perl-software-license")
+ (version "0.103014")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/L/LE/LEONT/Software-License-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "128pbm9pf5drakm9bpkifc1zg8f005xabfwzg21nc03m5mhfligb"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-try-tiny" ,perl-try-tiny)))
+ (propagated-inputs
+ `(("perl-data-section" ,perl-data-section)
+ ("perl-text-template" ,perl-text-template)))
+ (home-page "https://metacpan.org/release/Software-License")
+ (synopsis "Templated software licenses")
+ (description "This package provides templated software licenses.")
+ (license (package-license perl))))
+
+(define-public licensecheck
+ (package
+ (name "licensecheck")
+ (version "3.0.37")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JO/JONASS/App-Licensecheck-"
+ "v" version ".tar.gz"))
+ (sha256
+ (base32
+ "12l83zf85zagpagizmzy3bwkc659sbzqf18cycx8g4h6d3mc5kqw"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-regexp-pattern" ,perl-regexp-pattern)
+ ("perl-software-license" ,perl-software-license)
+ ("perl-test-requires" ,perl-test-requires)
+ ("perl-test-roo" ,perl-test-roo)
+ ("perl-test-script" ,perl-test-script)
+ ("perl-universal-require" ,perl-universal-require)
+ ("perl-number-range" ,perl-number-range)
+ ("perl-sub-quote" ,perl-sub-quote)))
+ (propagated-inputs
+ `(("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
+ ("perl-moo" ,perl-moo-2)
+ ("perl-namespace-clean" ,perl-namespace-clean)
+ ("perl-path-iterator-rule" ,perl-path-iterator-rule)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-pod-constants" ,perl-pod-constants)
+ ("perl-regexp-pattern-license" ,perl-regexp-pattern-license)
+ ("perl-sort-key" ,perl-sort-key)
+ ("perl-strictures" ,perl-strictures-2)
+ ("perl-string-copyright" ,perl-string-copyright)
+ ("perl-string-escape" ,perl-string-escape)
+ ("perl-try-tiny" ,perl-try-tiny)
+ ("perl-module-runtime" ,perl-module-runtime)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (perllib (string-append out "/lib/perl5/site_perl/"
+ ,(package-version perl))))
+ (wrap-program (string-append out "/bin/licensecheck")
+ `("PERL5LIB" ":"
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
+ #t))))))
+ (home-page "https://metacpan.org/release/App-Licensecheck")
+ (synopsis "License checker for source files")
+ (description "Licensecheck attempts to determine the license that applies
+to each file passed to it, by searching the start of the file for text
+belonging to various licenses.")
+ (license (package-license perl))))
+
+(define-public reuse
+ (package
+ (name "reuse")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "reuse" version))
+ (sha256
+ (base32 "16wn28xxjcm5qlb7bs6jmdkfrkr5v97s59nmi9cn85qcg4gmj7lk"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (inputs
+ `(("python-binaryornot" ,python-binaryornot)
+ ("python-boolean.py" ,python-boolean.py)
+ ("python-debian" ,python-debian)
+ ("python-jinja2" ,python-jinja2)
+ ("python-license-expression" ,python-license-expression)
+ ("python-requests" ,python-requests)))
+ (home-page "https://reuse.software/")
+ (synopsis "Provide and verify copyright and licensing information")
+ (description
+ "The REUSE tool helps you achieve and confirm license compliance with the
+@uref{https://reuse.software, REUSE specification}, a set of recommendations
+for licensing Free Software projects. REUSE makes it easy to declare the
+licenses under which your works are released, especially when reusing software
+from different projects released under different licenses. It avoids reliance
+on fuzzy heuristicts and allows both legal experts and computers to understand
+how your project is licensed. This allows generating a \"bill of materials\"
+for software.
+
+This tool downloads full license texts, adds copyright and license information
+to file headers, and contains a linter to identify problems. There are other
+tools that have a lot more features and functionality surrounding the analysis
+and inspection of copyright and licenses in software projects. This one is
+designed to be simple.")
+ (license (list asl2.0 gpl3+))))