Complete the README [skip ci]
This commit is contained in:
parent
b27fa39109
commit
3dcded9a03
166
README.md
166
README.md
@ -5,6 +5,172 @@
|
||||
[0]: https://circleci.com/gh/jpvillaisaza/licensor
|
||||
[1]: https://circleci.com/gh/jpvillaisaza/licensor.svg?style=svg
|
||||
|
||||
![][2]
|
||||
![][3]
|
||||
|
||||
[2]: https://www.stackage.org/package/licensor/badge/lts
|
||||
[3]: https://www.stackage.org/package/licensor/badge/nightly
|
||||
|
||||
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.
|
||||
|
||||
## Related programs
|
||||
|
||||
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][rp-01] program.
|
||||
|
||||
[rp-01]: https://hackage.haskell.org/package/cabal-dependency-licenses
|
||||
|
||||
## 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.2.0
|
||||
|
||||
licensor [OPTIONS]
|
||||
|
||||
Common flags:
|
||||
-? --help Display help message
|
||||
-V --version Print version information
|
||||
--numeric-version Print just the version number
|
||||
```
|
||||
|
||||
## 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.md).
|
||||
|
||||
### License report
|
||||
|
||||
Licensor (0.2.0) depends on the following libraries:
|
||||
|
||||
Library | License
|
||||
------------------------- | -------------------------
|
||||
base | BSD3
|
||||
bytestring | BSD3
|
||||
Cabal | BSD3
|
||||
cmdargs | BSD3
|
||||
containers | BSD3
|
||||
directory | BSD3
|
||||
http-conduit | BSD3
|
||||
process | BSD3
|
||||
|
||||
And the following licenses (including transitive dependencies):
|
||||
|
||||
License | Number of libraries
|
||||
------------------------- | -------------------------
|
||||
BSD3 | 68
|
||||
MIT | 7
|
||||
|
||||
(Tested with Licensor 0.2.0, Stack 1.2.0, and LTS 7.0.)
|
||||
|
||||
## Additional resources
|
||||
|
||||
- [Choose a License](http://choosealicense.com/)
|
||||
- [License compatibility][ar-01]
|
||||
- [Understanding open source and free software licensing][ar-02]
|
||||
(Andrew M. St. Laurent)
|
||||
|
||||
[ar-01]: https://en.wikipedia.org/wiki/License_compatibility
|
||||
[ar-02]: http://www.oreilly.com/openbook/osfreesoft/book/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user