Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

license: make all installed libraries LGPLv2.1+ #1788

Merged
merged 15 commits into from Nov 1, 2018

Conversation

Projects
None yet
5 participants
@garlick
Copy link
Member

garlick commented Oct 31, 2018

As discussed in #1646, this changes the license boiler plate on all original flux source in src/common to LGPLv2.1+ (except tests). It also converts the liblsd copyright headers with permission from the author as discussed in #1667. Finally, it ensures there is boiler plate in all installed header files.

If this goes in after #1786 then I think the installed libraries will be LGPL clean.

@garlick garlick force-pushed the garlick:lgpl2_libflux branch from 60af79f to 954ca77 Oct 31, 2018

@SteVwonder

This comment has been minimized.

Copy link
Member

SteVwonder commented Oct 31, 2018

Thanks @garlick for putting this together!

As a sanity check, I wrote a quick script to parse the files that changed in this PR to LGPL and look at the header they include to ensure they are LGPL as well. After hand checking a few files in the script output, it appears that some headers included by the files in this PR aren't LGPL. For example, dirwalk.c was changed to LGPL but it's header dirwalk.h stayed GPL. I don't know if this matters since my license understanding is weak at best, but I figured I would bring it up just in case.

@garlick

This comment has been minimized.

Copy link
Member Author

garlick commented Oct 31, 2018

I didn't add license boilerplate to non-installed headers that didn't already have one, but I did miss that libutil/cleanup.h and libutil/dirwalk.h had GPL headers already. Will fix.

Any others like that?

@garlick garlick force-pushed the garlick:lgpl2_libflux branch from 135e270 to 3e9afb5 Oct 31, 2018

@garlick

This comment has been minimized.

Copy link
Member Author

garlick commented Oct 31, 2018

I went ahead and squashed that change and rebased on current master.

@codecov-io

This comment has been minimized.

Copy link

codecov-io commented Oct 31, 2018

Codecov Report

❗️ No coverage uploaded for pull request base (master@31a60be). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1788   +/-   ##
=========================================
  Coverage          ?   79.64%           
=========================================
  Files             ?      187           
  Lines             ?    34724           
  Branches          ?        0           
=========================================
  Hits              ?    27657           
  Misses            ?     7067           
  Partials          ?        0
Impacted Files Coverage Δ
src/common/libflux/event.c 79.57% <ø> (ø)
src/common/libsubprocess/server.c 69.75% <ø> (ø)
src/common/libsubprocess/command.c 70.87% <ø> (ø)
src/common/libflux/buffer.c 95.52% <ø> (ø)
src/common/libutil/popen2.c 76.23% <ø> (ø)
src/common/libpmi/simple_server.c 52.94% <ø> (ø)
src/common/libkz/kz.c 81.59% <ø> (ø)
src/common/libsubprocess/local.c 76.27% <ø> (ø)
src/common/libutil/wallclock.c 50% <ø> (ø)
src/common/libutil/ipaddr.c 61.53% <ø> (ø)
... and 78 more
@SteVwonder

This comment has been minimized.

Copy link
Member

SteVwonder commented Nov 1, 2018

Any others like that?

I tweaked the script a bit to grep the included headers not affected by this PR for the existence of "GNU General Public License" and non-existence of "GNU Lesser". The only header that pops up is ./src/common/libev/ev.h, which is dual-licensed. So I think we are all good, given your previous caveat:

I didn't add license boilerplate to non-installed headers that didn't already have one

@trws

This comment has been minimized.

Copy link
Member

trws commented Nov 1, 2018

This looks great, thanks @garlick! I'm going to follow up with IPO about the re-license, and after I'll put up a PR to do the rest of this translation. What do you think about using SPDX-style license notices for the final round? It changes the license and its implications not at all, but would save us some space and some visual clutter. Spack, and my camp library, recently got permission to use them, it would look something like this:

(edit: accidentally mis-fired)

/* Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
    Spack Project Developers. See the top-level COPYRIGHT file for details.

    SPDX-License-Identifier: GNU LGPL */
@garlick

This comment has been minimized.

Copy link
Member Author

garlick commented Nov 1, 2018

I was unaware of SPDX. Interesting and useful!

https://spdx.org/about

Their stance on recommended notices (e.g. the FSF boilerplate) is to follow the "upstream" recommendation, e.g. FSF's. So I'm not sure of the wisdom of dropping that.

https://spdx.org/ids-how

Interestingly, the linux kernel has adopted SPDX, and here's a long commit message from Greg K-H that's fairly interesting

torvalds/linux@b244131

At minimum it seems like our sources (including the .h files I left unadorned) ought to include:

/* SPDX-License-Identifier: LGPL-3.0-or-later */
@garlick

This comment has been minimized.

Copy link
Member Author

garlick commented Nov 1, 2018

Is it useful to get this PR merged or should I withdraw pending the v3 approval so we can just change it once?

I guess it depends on how long we think that's going to take.

(Or I could drop the Flux original code changes and just include the GPL->LGPL changes approved by @dun to his work that we pilfered?)

@trws

This comment has been minimized.

Copy link
Member

trws commented Nov 1, 2018

I'd say lets just do it. It's all more correct regardless of anything else. If you'd prefer to trim it back to the fixes for base64 et. al. that's fine with me too, but it doesn't hurt to touch the comments twice.

@SteVwonder

This comment has been minimized.

Copy link
Member

SteVwonder commented Nov 1, 2018

I also vote for merging this. That way if the conversation with IPO grinds to a halt (or really any other delay comes up), we can at least have collaborators link against LGPL libflux in the meantime.

@dongahn

This comment has been minimized.

Copy link
Contributor

dongahn commented Nov 1, 2018

I agree!

@garlick

This comment has been minimized.

Copy link
Member Author

garlick commented Nov 1, 2018

I'm fine with it if someone wants to push the button then.

@trws trws merged commit a84b55e into flux-framework:master Nov 1, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@trws

This comment has been minimized.

Copy link
Member

trws commented Nov 1, 2018

Thanks @garlick!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.