licensor: A license compatibility helper

[ distribution, library, mit, program ] [ Propose Tags ]

A license compatibility helper.


[Skip to Readme]

Modules

[Last Documentation]

  • Licensor

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0
Change log CHANGELOG.md
Dependencies base (>=4.8 && <5), Cabal (<3.8), cmdargs, containers, directory, licensor, process [details]
License MIT
Copyright 2016 Juan Pedro Villa Isaza
Author Juan Pedro Villa Isaza <jpvillaisaza@gmail.com>
Maintainer Juan Pedro Villa Isaza <jpvillaisaza@gmail.com>
Revised Revision 1 made by Bodigrim at 2024-02-07T00:31:33Z
Category Distribution
Home page https://jpvillaisaza.co/licensor
Bug tracker https://github.com/jpvillaisaza/licensor/issues
Source repo head: git clone https://github.com/jpvillaisaza/licensor
Uploaded by jpvillaisaza at 2020-04-12T20:53:35Z
Distributions
Executables licensor
Downloads 4549 total (33 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2020-04-13 [all 3 reports]

Readme for licensor-0.4.1

[back to package description]

The not so great automatic Haskell licensor

Licensor is a program that generates a report of the dependencies and transitive dependencies of a Haskell project and their licenses.

Description

Choosing a license for a software project or determining whether a particular dependency can be added to a project can be projects themselves. Unless starting from scratch, programmers should consider the licenses of the dependencies and transitive dependencies of their projects to make informed decisions and avoid license compatibility issues.

Of course, this is just a starting point. "Beyond (...) general observations, it is difficult, if not impossible, to provide precise guidance about what licenses may or may not be compatible with each other. (...) Programmers who are considering combining code governed by two or more different licenses should proceed cautiously" (Andrew M. St. Laurent).

Disclaimer

Licensor is not a lawyer and does not provide legal advice.

For more information about licenses and license compatibility issues, read the text of the licenses or consult with a lawyer before making any decision.

Licensor is not the only license compatibility helper for Haskell:

  • Licensor uses a Cabal library and Stack program approach for detecting licenses and listing dependencies, respectively. For a Cabal library and program approach, consider using the cabal-dependency-licenses program.

Installation and usage

To install Licensor, use Cabal:

$ cabal update && cabal install licensor

Then, run the licensor executable inside a Haskell project:

$ licensor

To see the license report for Licensor, clone the repository:

$ git clone https://github.com/jpvillaisaza/licensor

And run licensor inside the project:

$ cd licensor/ && licensor

Or build and run licensor inside the project:

$ cd licensor/ && stack build --exec licensor

For more information, run licensor --help:

licensor 0.4.0

licensor [OPTIONS]

Common flags:
  -? --help             Display help message
  -V --version          Print version information
     --numeric-version  Print just the version number
  -v --verbose          Loud verbosity
  -q --quiet            Quiet verbosity

Notes

Dependencies

Licensor uses the Stack program to list dependencies for a Haskell project. A future enhancement could be to use the Stack library.

Licenses and license detection

Licensor uses the Cabal library to detect the license of a Haskell project and its dependencies (including transitive dependencies). To do so, it uses the license field in the package description. A future enhancement could be to use both the license and licence file fields in the package description.

Cabal provides an enumeration of common open source and free software licenses. These are the licenses that appear in the reports generated by Licensor:

License Description
GPL GNU General Public License
AGPL GNU Affero General Public License
LGPL GNU Lesser General Public License
BSD2 BSD 2-Clause License
BSD3 BSD 3-Clause License
BSD4 BSD 4-Clause License
MIT MIT License
ISC ISC License
MPL Mozilla Public License
Apache Apache License
PublicDomain Public domain
AllRightsReserved All rights reserved
UnspecifiedLicense Unspecified license (All rights reserved)
OtherLicense Other license
UnknownLicense Unknown license

Contribution guidelines

Feel free to create issues for reporting bugs and suggesting enhancements, or to fork the repository and open a pull request.

License

Licensor is licensed under the MIT License. See LICENSE.md.

License report

Licensor (0.4.0) depends on the following libraries:

Library License
base BSD3
Cabal BSD3
cmdargs BSD3
containers BSD3
directory BSD3
process BSD3

And the following licenses (including transitive dependencies):

License Number of libraries
BSD3 20

(Tested with Licensor 0.4.0, Stack 2.1.3, and LTS Haskell 11.11.)

Additional resources