Giter Site home page Giter Site logo

librariesio / license-compatibility Goto Github PK

View Code? Open in Web Editor NEW
34.0 7.0 5.0 81 KB

:copyright: Check compatibility between different SPDX licenses

Home Page: https://libraries.io/github/librariesio/license-compatibility

License: MIT License

Ruby 99.04% Shell 0.96%
spdx-licenses licensing compatibility librariesio

license-compatibility's Introduction

License::Compatibility

Check compatibility between different SPDX licenses, used by Libraries.io for checking dependency license compatibility.

Build Status Code Climate Test Coverage Code Climate license

n.b. I am not a lawyer and any results should be confirmed with a copyright lawyer if it's important to you.

Installation

Add this line to your application's Gemfile:

gem 'license-compatibility'

And then execute:

$ bundle

Or install it yourself as:

$ gem install license-compatibility

Usage

On the command-line:

license-compatibility [-h] [-v] [-l] [-r file] [args]

Arguments are a list of licenses or a list of package:license couples. Examples:

license-compatibility MIT GPL-3.0 Unlicense
license-compatibility my_package:ISC other_pkg:BSD-2-Clause

Mixing the two formats is not allowed. Additional args after a --read option are accepted.

Options:

  • -l, --list: Print the list of supported licenses.
  • -r, --read FILE: Read arguments from file.
  • -v, --version: Show the program version.
  • -h, --help: Print help message.

In your code:

License::Compatibility.forward_compatibility('MIT', 'GPL-3.0') #=> true

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/librariesio/license-compatibility. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

license-compatibility's People

Contributors

andrew avatar jayfk avatar kemitchell avatar pawamoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

license-compatibility's Issues

CLI tool

Would it be possible to have an executable installed in the path when gem installing? We would pass a list of licenses (or maybe tuples [package, license]), and it would output conflicts found.

Also interesting resources as of today:

https://choosealicense.com/appendix/
quick-guide-gplv3-compatibility svg
software-license-compatiblity-graph svg
floss-license-slide-image

Not getting any output

I want to know if MPL 2.0 and EPL 1.0 are compatible, same with Apache 2.0 and EPL 1.0. But when I am trying license-compatibility EPL-1.0 MPL-2.0, I am not getting any output.

Apache 1.1 and Apache 2.0 compatability

I am curious to know if apache-1.1 is compatible with apache-2.0. Can a software licenses under apache 1.1 can be used with a software licensed under apache-2.0. Any help would be appreciated.

Sanity checking

Hello all,
I did a little research and I tried to come up with a new license tree. Please refer the attachment. If anybody here could review it or add any comment's it would be really helpful.
screenshot from 2017-12-19 16-57-42

Split off data package

Hello! This is an interesting project. I think the most valuable part of it is going to end up being not the code, but rather the data that's collected about which categories licenses fall under, and which categories are deemed "compatible".

To that end, what do you think about splitting off the data as a separate package (e.g., a package of just JSON files)? That way it could be used more readily in other projects & languages, and draw a bigger contributor base beyond Rubyists.

I have seen this pattern a few times for repos that are really about data at their heart.

Need help

I need to do a license compatibility check. I am writing a pyhton script for the same. Could anyone take me through the algorithm used in this license-compatibility module. Any sort of help would be appreciated.

Add at least all OSI approved licenses

  • AFL-1.1 (Academic Free License v1.1)
  • AFL-1.2 (Academic Free License v1.2)
  • AFL-2.0 (Academic Free License v2.0)
  • AFL-2.1 (Academic Free License v2.1)
  • AFL-3.0 (Academic Free License v3.0)
  • APL-1.0 (Adaptive Public License 1.0)
  • Apache-1.1 (Apache License 1.1)
  • Apache-2.0 (Apache License 2.0)
  • APSL-1.0 (Apple Public Source License 1.0)
  • APSL-1.1 (Apple Public Source License 1.1)
  • APSL-1.2 (Apple Public Source License 1.2)
  • APSL-2.0 (Apple Public Source License 2.0)
  • Artistic-1.0 (Artistic License 1.0)
  • Artistic-1.0-Perl (Artistic License 1.0 (Perl))
  • Artistic-1.0-cl8 (Artistic License 1.0 w/clause 8)
  • Artistic-2.0 (Artistic License 2.0)
  • AAL (Attribution Assurance License)
  • BSL-1.0 (Boost Software License 1.0)
  • BSD-2-Clause (BSD 2-clause "Simplified" License)
  • BSD-3-Clause (BSD 3-clause "New" or "Revised" License)
  • CNRI-Python (CNRI Python License)
  • CDDL-1.0 (Common Development and Distribution License 1.0)
  • CPAL-1.0 (Common Public Attribution License 1.0)
  • CPL-1.0 (Common Public License 1.0)
  • CATOSL-1.1 (Computer Associates Trusted Open Source License 1.1)
  • CUA-OPL-1.0 (CUA Office Public License v1.0)
  • EPL-1.0 (Eclipse Public License 1.0)
  • ECL-1.0 (Educational Community License v1.0)
  • ECL-2.0 (Educational Community License v2.0)
  • EFL-1.0 (Eiffel Forum License v1.0)
  • EFL-2.0 (Eiffel Forum License v2.0)
  • Entessa (Entessa Public License v1.0)
  • EUDatagrid (EU DataGrid Software License)
  • EUPL-1.1 (European Union Public License 1.1)
  • Fair (Fair License)
  • Frameworx-1.0 (Frameworx Open License 1.0)
  • AGPL-3.0 (GNU Affero General Public License v3.0)
  • GPL-2.0 (GNU General Public License v2.0 only)
  • GPL-2.0+ (GNU General Public License v2.0 or later)
  • GPL-2.0-with-autoconf-exception (GNU General Public License v2.0 w/Autoconf exception)
  • GPL-2.0-with-bison-exception (GNU General Public License v2.0 w/Bison exception)
  • GPL-2.0-with-classpath-exception (GNU General Public License v2.0 w/Classpath exception)
  • GPL-2.0-with-font-exception (GNU General Public License v2.0 w/Font exception)
  • GPL-2.0-with-GCC-exception (GNU General Public License v2.0 w/GCC Runtime Library exception)
  • GPL-3.0 (GNU General Public License v3.0 only)
  • GPL-3.0+ (GNU General Public License v3.0 or later)
  • GPL-3.0-with-autoconf-exception (GNU General Public License v3.0 w/Autoconf exception)
  • GPL-3.0-with-GCC-exception (GNU General Public License v3.0 w/GCC Runtime Library exception)
  • LGPL-2.1 (GNU Lesser General Public License v2.1 only)
  • LGPL-2.1+ (GNU Lesser General Public License v2.1 or later)
  • LGPL-3.0 (GNU Lesser General Public License v3.0 only)
  • LGPL-3.0+ (GNU Lesser General Public License v3.0 or later)
  • LGPL-2.0 (GNU Library General Public License v2 only)
  • LGPL-2.0+ (GNU Library General Public License v2 or later)
  • HPND (Historic Permission Notice and Disclaimer)
  • IPL-1.0 (IBM Public License v1.0)
  • Intel (Intel Open Source License)
  • IPA (IPA Font License)
  • ISC (ISC License)
  • LPPL-1.3c (LaTeX Project Public License v1.3c)
  • LPL-1.02 (Lucent Public License v1.02)
  • LPL-1.0 (Lucent Public License Version 1.0)
  • MS-PL (Microsoft Public License)
  • MS-RL (Microsoft Reciprocal License)
  • MirOS (MirOS Licence)
  • MIT (MIT License)
  • Motosoto (Motosoto License)
  • MPL-1.0 (Mozilla Public License 1.0)
  • MPL-1.1 (Mozilla Public License 1.1)
  • MPL-2.0 (Mozilla Public License 2.0)
  • MPL-2.0-no-copyleft-exception (Mozilla Public License 2.0 (no copyleft exception))
  • Multics (Multics License)
  • NASA-1.3 (NASA Open Source Agreement 1.3)
  • Naumen (Naumen Public License)
  • NGPL (Nethack General Public License)
  • Nokia (Nokia Open Source License)
  • NPOSL-3.0 (Non-Profit Open Software License 3.0)
  • NTP (NTP License)
  • OCLC-2.0 (OCLC Research Public License 2.0)
  • OGTSL (Open Group Test Suite License)
  • OSL-1.0 (Open Software License 1.0)
  • OSL-2.0 (Open Software License 2.0)
  • OSL-2.1 (Open Software License 2.1)
  • OSL-3.0 (Open Software License 3.0)
  • PHP-3.0 (PHP License v3.0)
  • PostgreSQL (PostgreSQL License)
  • Python-2.0 (Python License 2.0)
  • QPL-1.0 (Q Public License 1.0)
  • RPSL-1.0 (RealNetworks Public Source License v1.0)
  • RPL-1.1 (Reciprocal Public License 1.1)
  • RPL-1.5 (Reciprocal Public License 1.5)
  • RSCPL (Ricoh Source Code Public License)
  • OFL-1.1 (SIL Open Font License 1.1)
  • SimPL-2.0 (Simple Public License 2.0)
  • Sleepycat (Sleepycat License)
  • SISSL (Sun Industry Standards Source License v1.1)
  • SPL-1.0 (Sun Public License v1.0)
  • Watcom-1.0 (Sybase Open Watcom Public License 1.0)
  • NCSA (University of Illinois/NCSA Open Source License)
  • VSL-1.0 (Vovida Software License v1.0)
  • W3C (W3C Software Notice and License)
  • WXwindows (wxWindows Library License)
  • Xnet (X.Net License)
  • Zlib (zlib License)
  • ZPL-2.0 (Zope Public License 2.0)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.