GithubHelp home page GithubHelp logo

Comments (8)

mikepurvis avatar mikepurvis commented on August 18, 2024

According to the GPL FAQ, a three-clause BSD license is compatible:

Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. Section 6 of GPLv2 states:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.

GPLv3 says something similar in section 10. The advertising clause provides just such a further restriction, and thus is GPL-incompatible.

The revised BSD license does not have the advertising clause, which eliminates the problem.

Do I understand from this that it would be acceptable to link to GPLv3-licensed shared objects from my otherwise 3-clause BSD-licensed robot software?

@tfoote Do you have an understanding of this? Is there an official OSRF policy on linking to GPL software?

from imu_tools.

tfoote avatar tfoote commented on August 18, 2024

From the GNU quick summary of GPLv3 https://www.gnu.org/licenses/quick-guide-gplv3.html says that it's fine for all the shortened BSD licenses. Just not the original with the advertising.

"""
However, some licenses had requirements that weren't really restrictive, because they were so easy to comply with. For example, some licenses say that they don't give you permission to use certain trademarks. That's not really an additional restriction: if that clause wasn't there, you still wouldn't have permission to use the trademark. We always said those licenses were compatible with GPLv2, too.

Now, GPLv3 explicitly gives everyone permission to use code that has requirements like this. These new terms should help clear up misunderstandings about which licenses are GPL-compatible, why that is, and what you can do with GPL-compatible code.
""""

As a policy we generally try to avoid all copyleft licenses due to their viral and invasive nature. If there's something you need from GPL I would definitely suggest isolating it in a node and not building a nodelet for it.

from imu_tools.

mikepurvis avatar mikepurvis commented on August 18, 2024

This seems contradictory— the GNU summary is asserting that GPLv3 and three-clause BSD are "compatible", but you're still counselling to avoid linking to GPLv3 code.

In the case I'm considering, imu_filter_madgwick is the GPLv3 package, and a separate package would have a build/run depend on it, and link to the shared object supplied. This dependent package would be three-clause BSD.

from imu_tools.

tfoote avatar tfoote commented on August 18, 2024

Compatibilty means that they can be used together. Compatibility does not mean that the requirements for redistribution of the source of other linked resources are removed. It is just true that you can release them under a more permissive license such as the New-BSD license, not just the GPL.

Your original guideline should read more like "no static or dynamic linking to it, except from other open source code which is GPL or more permissively licensed"

from imu_tools.

mikepurvis avatar mikepurvis commented on August 18, 2024

Okay, I think I've got it. The license compatibility article from Wikipedia was helpful to me (emphasis mine):

Many of the most common free software licenses ... are "GPL-compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole). When it comes to copyleft software licenses, they are not inherently GPL-compatible, even the GPLv2 is, by itself, not compatible with GPLv3.

So it's a one-way street. Linking to imu_filter_madgwick means everything else in that binary is distributed under GPL. Will stick to the node usage; perhaps in the fullness of time someone can create a BSD implementation based on the original paper.

from imu_tools.

paulbovbel avatar paulbovbel commented on August 18, 2024

Interestingly enough, the original Madwick AHRS filter code (https://code.google.com/p/imumargalgorithm30042010sohm/downloads/list) was distributed under LGPL. This should make it possible to do a straightforward wrapper nodelet under LGPL that could be integrated with BSD components.

from imu_tools.

mintar avatar mintar commented on August 18, 2024

Hmm, where's the statement that it's LGPL? Can't find it in the google code repo you linked to. Anyway, the original code used here comes from this website: http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/

... and there, it says:

Open-source resources available on this website are provided under the GNU General Public Licence unless an alternative licence is provided in source.

from imu_tools.

paulbovbel avatar paulbovbel commented on August 18, 2024

In the Project Home, the release is licensed LGPL. I believe he re-licensed the code after it was moved to x-io.

from imu_tools.

Related Issues (20)

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.