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

Alternatives to GPL-2.0 license? #58

Closed
peterbrittain opened this issue Sep 11, 2018 · 42 comments

Comments

Projects
None yet
@peterbrittain
Copy link
Contributor

commented Sep 11, 2018

First off, I just wanted to say that I love that you've spent the time to port FIGlet to Python. This is a great project and I want to say thank you for creating it. But that's not why I've raised this issue... :-)

It turns out that many of your dependent projects/packages (https://github.com/pwaller/pyfiglet/network/dependents) are using pyfiglet, but are not redistributing under the terms of the GPL-2.0 license that you are using. My own package (https://github.com/peterbrittain/asciimatics) appears to have fallen foul of this.

I really want to continue to deploy my package under the terms of the Apache-2.0 license, which as I understand it means I have to follow one of the following options:

  1. Remove/replace the use of your package
  2. Convert all direct use of pyfiglet (via import) into separate process calls (via your command-line script).
  3. Agree with you (as the copyright holders) a separate license for my project.
  4. Persuade you to change your standard license to something that allows for this use case - e.g. LGPL-3.0.

Given how many other projects depend on this one (and are actually breaking the terms as I now understand them), I'd like to try to do the right thing here and explore options 3 and 4 with you before just diving into options 1 or 2.

So... Would you be willing to consider some other form of licensing like LGPL?

@pwaller

This comment has been minimized.

Copy link
Owner

commented Sep 11, 2018

I would have no problem personally with changing the license, but I am A) not the only author B) not the original author C) only a maintainer.

Unfortunately I have no idea how to achieve a relicensing, and since this is a spare time project, it's not something I'm able to devote any resources to.

If everyone who had contributed could be A) contacted and B) agree to the change, then I would change it in a heartbeat. I suspect this is not simple to do.

Aside from that, if someone else did the legwork and somehow demonstrated that it was an appropriate thing to do somehow without the above success, then sure. I don't have access to a lawyer who could tell me whether what we were doing was sound.

Would you be willing to do such legwork? Can you discover anyone or any forum with the requisite knowledge and experience which can advise?

If the answer is "Yes", then I'll reopen the issue - but if no activity occurs in a number of months I'll close the issue again after that. Hope that makes sense.

@pwaller pwaller closed this Sep 11, 2018

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 11, 2018

As I understand it, you don't need a lawyer to do this. This is a pretty common thing with open source and so there are precedents out there. For example, general principles are covered here: https://opensource.stackexchange.com/questions/33/how-can-a-project-be-relicensed

However, that doesn't change the fact that it would need approval of all previous contributors and a good reason to change. Finding contributors isn't hard - just look at the list in github plus anyone you're aware of before you set up this project.

Getting the approval may be more difficult... As you can see in the referenced article, it took a year to re-license Eclipse. Others wish to do it, but clearly find it hard and so it drags on for years. For example: urwid/urwid#135

As for the good reason? This is an pretty much a religious thing... If your contributors believe in copyleft, there's little I can do to persuade them otherwise. On the other hand, if they want to make it easy for anyone to use this project without major concerns, a more permissive license (especially MIT or Apache-2.0) would help.

Maybe a simple poll to all contributors through github notifications (like the example used for urwid) would settle this quickly?

@pwaller

This comment has been minimized.

Copy link
Owner

commented Sep 11, 2018

The only contributor I'm aware of who isn't on GitHub is the original author, Christopher Jones, who is mentioned in the readme. You're welcome to try and reach out (please CC me, email in my github profile) and see if he and the other 12 authors agree.

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 11, 2018

OK - let's test the water for MIT...

Dear Contributor, the pyfiglet project is trying to switch from the GPL-2.0 to the MIT license. This is proposed in order to reduce concerns about using this library with other projects (both commercial and more permissive open source projects). For some examples of the confusion and difficulties, see the projects linked earler in this issue.

Please acknowledge this message with a comment here and let us know whether you agree 👍 or disagree 👎 to relicense your project contribution under said license.

Many thanks for your time and consideration.

@llimllib

This comment has been minimized.

Copy link
Contributor

commented Sep 11, 2018

👍

@llimllib

This comment has been minimized.

Copy link
Contributor

commented Sep 11, 2018

Oof, also realized I’m violating your license as well 😣

@irskep

This comment has been minimized.

Copy link
Contributor

commented Sep 11, 2018

👍🏻

1 similar comment
@grandemk

This comment has been minimized.

Copy link
Contributor

commented Sep 12, 2018

+1

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 12, 2018

@cjones Are you the original author for this project? If so, could you also please add your vote?

@mnunezdm

This comment has been minimized.

Copy link
Contributor

commented Sep 12, 2018

👍

2 similar comments
@MinchinWeb

This comment has been minimized.

Copy link
Contributor

commented Sep 12, 2018

👍

@livibetter

This comment has been minimized.

Copy link
Contributor

commented Sep 13, 2018

👍

@pmlandwehr

This comment has been minimized.

Copy link
Contributor

commented Sep 13, 2018

Thumbs up

@cjones

This comment has been minimized.

Copy link

commented Sep 13, 2018

hey, yeah i threw this together years ago when i was learning python, heh. scared to even look at how messy the code is, but cool someone picked it up. do whatever you need to do to get the licensing in order, i didn't put much thought into it. i usually use the modified bsd 2-clause license but mit is fine. not sure why i used gpl tbh.

@cjones

This comment has been minimized.

Copy link

commented Sep 13, 2018

i didn't read this whole thread, but if the issue is my original licensing being gpl, you have my express permission to change it to something less.. viral.

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 13, 2018

Much appreciated. Thanks @cjones !

@Alexey-T

This comment has been minimized.

Copy link
Contributor

commented Sep 23, 2018

other form of licensing like LGPL?

+1

@asakasinsky

This comment has been minimized.

Copy link
Contributor

commented Sep 26, 2018

+1

@MinchinWeb

This comment has been minimized.

Copy link
Contributor

commented Sep 28, 2018

It occurred to me today that most of what I contributed was actually other people's code: I rounded up a bunch of other people's fonts from the earlier days of Figlet. Accordingly, each font file is probably licensed separately, though most seem to be under the same license as Figlet itself (New BSD).

A summary of the font files by license details is here --> #46 (comment)

Not sure if it makes a difference, as it didn't seem to be a concern to include them earlier.

@pwaller

This comment has been minimized.

Copy link
Owner

commented Sep 28, 2018

Hmm. I'm uncertain of how to handle fonts which are not liberally licensed (edit: see #59). I think I missed that before. I guess it deserves a mention somewhere, at least. Does anyone have any thoughts about what the right thing to do there is? At least they can have a different license to the source code, but I don't know how that impacts their use. Perhaps they should be shipped in a separate package.

With respect to this proposal, we're still missing @stefanor's input, and I don't want to proceed without that, since he is one of the most significant contributors. I have pinged him by email but haven't had a response.

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 28, 2018

Licences aren't tied to the original contribution. If the project is redistributed later under a new licence, all distributed content is subject to that new licence. So if the project was properly relicensed and you have taken files that are identical to the later license, then that's fine.

@peterbrittain

This comment was marked as off-topic.

Copy link
Contributor Author

commented Sep 28, 2018

Looks like figlet 2.2.5 was under BSD 3-clause, so you just need to reference the original license and copyright from figlet for those fonts if that's the source. Woot!

Unfortunately, if the fonts are specific to JavE, then you are subject to its licence... which either is totally unlicensed (if you go by the font download tarball) or a custom OS licence, which appears to insist that you take all or nothing (if you believe the JavE licence holds). The latter is mentioned here: http://www.jave.de/docs/index.html. Moreover, unlicensed code cannot be re-used at all as covered in https://help.github.com/articles/licensing-a-repository/

Unfortunately, that means either way, we can't just use those font files in isolation. To make it legal, we need Markus Gebhard's permission, or to show that individual files have separate redistribution licenses from JavE. And, while I am not a lawyer, I'm pretty sure that permission to modify is NOT also premission to redistribute.

@peterbrittain

This comment was marked as off-topic.

Copy link
Contributor Author

commented Sep 28, 2018

Simplest thing is probably to document where to get the files and provide an easy way to unzip them to the right location.

@mnunezdm

This comment has been minimized.

Copy link
Contributor

commented Sep 29, 2018

I just contacted @stefanor via LinkedIn, hope he checks that more often than the email

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Sep 29, 2018

And it would be good to get stefano's views... I see he has not been active on github recently. Might be worth following up some of his other contacts (http://tumbleweed.org.za/me/contact) if we get no response soon.

@cjones

This comment was marked as off-topic.

Copy link

commented Sep 30, 2018

Most linux distros split nonfree fonts for figlet (and cows for cowsay) into packages to avoid this kind of hassle, but I don't know what the equivalent would be for a source repository. I'm not an expert on FOSS licenses by any means, but it has always been my understanding that as long as you include all the licenses that are in use and document which go to what, that is fine? Or does the GPL have language that complicates even that?

@peterbrittain

This comment was marked as off-topic.

Copy link
Contributor Author

commented Oct 1, 2018

Yeah - I found this trail (https://bugzilla.redhat.com/show_bug.cgi?id=820642) which basically concluded they had to move all unlicensed fonts (or ones with dodgy licenses) into a separate package (which has never been created AFAICS).

The question of source/binary isn't really a concern here; it is the redistribution of the font definition files which matters. If you have not been given a license to redistribute, you simply can't do it. It's that simple legally. And, sadly, no license at all defaults to no permission to re-distribute.

In the case of JavE, there is no suitable license:

  1. The JavE license (http://www.jave.de/docs/license.txt) that is very clear that you cannot only re-distribute some of the product.
  2. There is no clear separate license for the font library.
  3. The individual files have some information in them (as per #46), but none provide permission to re-distribute (which is not the same as permission to modify).

I am not a lawyer, but I think we either need a new clear license from Markus for the font definitions (which may require him to get permission for his redistribution if he didn't already have it), or to remove them from this package. :-(

@pwaller

This comment was marked as off-topic.

Copy link
Owner

commented Oct 8, 2018

Thanks for bringing that up @peterbrittain. I'm not sure on how to proceed from here.

What about a third option: can we redistribute everything within a subdirectory? i.e, don't decouple and therefore avoid falling afoul of "It may be freely distributed, as long as there are no files from the package removed or modified."

@peterbrittain

This comment was marked as off-topic.

Copy link
Contributor Author

commented Oct 8, 2018

I don't think I can give you the go ahead on that... If you are asking my opinion, the licence is unclear (given that he has already split his software distribution in two) and so I'd still recommend asking Markus to confirm the terms for his fonts package.

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Oct 14, 2018

@stefanor bump! Any chance you could vote on the licence?

@pwaller

This comment has been minimized.

Copy link
Owner

commented Oct 15, 2018

@peterbrittain: I have moved the conversation about font licensing into #59. I'll hide the comments from this thread, so if anyone is watching: the hidden threads above are related to issue #59.

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Nov 14, 2018

Still no answer from @stefanor ... Anyone able to contact him on his Facebokk account (from http://tumbleweed.org.za/me/contact)? (No - I'm not on it...)

@SecT0uch

This comment has been minimized.

Copy link

commented Nov 16, 2018

Still no answer from @stefanor ... Anyone able to contact him on his Facebokk account (from http://tumbleweed.org.za/me/contact)? (No - I'm not on it...)

Done. Let's see if he replies. There is still IRC to try to contact him : tumbleweed on Atrum, Freenode, and WUG ZA.

What about @marlboromoo ? (edit: Just mailed him)

@Eeems

This comment has been minimized.

Copy link

commented Nov 21, 2018

@SecT0uch I'm guessing there has been no replies yet?

@SecT0uch

This comment has been minimized.

Copy link

commented Nov 21, 2018

Nope, even on IRC (freenode)

@peterbrittain

This comment has been minimized.

Copy link
Contributor Author

commented Nov 22, 2018

That's a shame... I don't want to give up, so I've been reading this very useful doc (http://www.catb.org/esr/Licensing-HOWTO.html) in more detail to see if there's anything more we can do. There might be a light at the end of the tunnel...

It would appear that despite current expectations in the community, the copyright owners (as asserted in the license) have the right to change the license to the project unilaterally as a collective work. In particular, they do not need the permission of all other contributors to do this. See http://www.catb.org/esr/Licensing-HOWTO.html#id2790762 in particular.

Given that we have cjones blessing, you could argue that this is now sufficient. We just move to the new license (as proposed and with his blessing) and be done with it. Yes - it is a bit pushy, but given the lack of response and the precedents explained in that doc, it would appear that this is all perfectly legal.

At the same time, it might make sense to agree a "license czar" as recommended later, who has the express permission of the contributors to relicense the project in the future. Seems obvious to me that we should make that the current maintainer (i.e. pwaller) and then we never need to jump through such hoops again.

Thoughts?

@SecT0uch

This comment has been minimized.

Copy link

commented Dec 2, 2018

Still no reply so far.
@pwaller any thought about the last message?

@stefanor

This comment has been minimized.

Copy link
Collaborator

commented Dec 5, 2018

Sorry for the delay.

I'm quite happy for my changes to be published under the MIT license. 👍

@pwaller

This comment has been minimized.

Copy link
Owner

commented Dec 5, 2018

Thanks for your input!

Right, we can action this now! @peterbrittain would you like the honor of submitting a PR to update the license? Otherwise it will be when I get around to it :)

@pwaller

This comment has been minimized.

Copy link
Owner

commented Dec 5, 2018

OK everyone, I've made a PR (#62) with the new LICENSE. I'll merge it some time within the next week to allow for any last comments - please take a look and leave comments or contact me if you spot anything wrong.

@pwaller pwaller closed this in #62 Dec 6, 2018

@pwaller

This comment has been minimized.

Copy link
Owner

commented Dec 6, 2018

Released in v0.8.0 (and v0.8.post0 due to a minor mistake of mine and PyPI's not allowing you to reupload archives with the same number...).

@nyov

This comment has been minimized.

Copy link

commented Jan 10, 2019

I noticed this through the backlink on the urwid project, and just wanted to say it's pretty awesome to see another project having managed to make this relicensing work, in a similar fashion to my effort - through a github poll. Congratulations to all involved :)

And such a cool FIGlet adaption in python, to boot. I'll definitely be using this some time. I was only aware of TOIlet, as a clone, until now.

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.