lc-soft / LCUI

C library for building user interfaces
https://lcui-dev.github.io
MIT License
4.15k stars 357 forks source link

[License] Consider change license to MIT license #127

Closed lc-soft closed 6 years ago

lc-soft commented 6 years ago

Some developer don't like GPL license, and their project source code is not very useful to me, so I will consider change license to MIT in 1.0.0 stable version.

Raymonf commented 6 years ago

Yes, please!

This project looks really cool but I don't really want to touch GPLv2 code because of the source code clause.

mqudsi commented 6 years ago

Thank you. Libraries really should always use MIT/BSD/LGPL to boost adoption.

aggsol commented 6 years ago

I vote for sticking to GPL even though their code is not useful to you it might be useful to somebody else using LCUI. Also the GPL is not for "usefulness" but to share knowledge. With LGPL you give people and companies to rely on LCUI and create commercial products without giving back.

Please have a read from GNU on why not to use LGPL on new libraries.

https://www.gnu.org/licenses/why-not-lgpl.en.html https://www.gnu.org/licenses/why-not-lgpl.zh-cn.html

Thank you for your great work!

baybal commented 6 years ago

Consider v3 or v3l

Then, you can use code from qt and gtk

baybal commented 6 years ago

Other than for projects that are too big to change license V2 codebase is pretty much dead

codecat commented 6 years ago

Ah damn. I wanted to use this but didn't realize it was GPL'd. Would much prefer an MIT license!

Raymonf commented 6 years ago

@aggsol I understand where you're coming from, but in that case most people will just not use the library. That group includes me.

We're totally fine with not using this, but we'd love to. That's all.

lieff commented 6 years ago

+1 for more permissive license.

lc-soft commented 6 years ago

@aggsol

Yes, I think so before open this project source, I just hope someone can tell me how to write code and make this project better. But what I can not understand is that with so many GUI libraries can be use, why use this project?

Many people are selfish, do not want to open source their own projects, do not like the GPL license, So the GPL library will not be formally used in their own projects, which also led to a chain reaction:

  1. nobody used this project
  2. nobody found this project bugs
  3. nobody study source code to fix bug
  4. nobody share this bug's patch
  5. This project will not be developed speed

So, I think the switch to LGPL license might solve the problem.

But if I switch to another license, may be will bring more users, these users will bring more needs, and my free time is limited, I will certainly not totally agree with their needs, I guess some bad attitude users are dissatisfied, and then do some unpleasant things, just as this developer's article said.

Think carefully, use what license has little effect on me, the number of users and the number of stars is just a number, the benefits they bring to me are just making it easier for me to find new jobs.

Raymonf commented 6 years ago

That being said...

@lc-soft Is lc-ui/LCUI-Guide up to date? I'd like to translate it since we're missing an English version.

baybal commented 6 years ago

@lc-soft the bigger issue is the version. You can't use (L)GPL V2 code in a (L)GPL V3 project, and vice versa. And GPL V2 codebase is getting vanishingly small these days with exception of projects that stuck with V2 because of their size.

So, even if I will release my software under the same license as LCUI, I will not be able to use any of popular third party libraries, and that is a showstopper. Why would I be using LCUI if I can't use any other third party library with it.

aggsol commented 6 years ago

In this cas LGPL might be a good choice for @lc-soft .

@baybal If you just link to LCUI what most people will do you can use ANY compatible license for your project. If v2 or v2 is no matter then.

baybal commented 6 years ago

@aggsol what you are saying is wrong. Linking to a library invariably creates a derived work as per GPL's language. That way your binary turns into GPLV2 code which can't use v3 libs

codecat commented 6 years ago

@baybal What about with LGPL though?

baybal commented 6 years ago

@codecat LGPL allows linking without relicensing of a derived work.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications

aggsol commented 6 years ago

@baybal Yes, I was talking about LGPL. Just to be clear. I hind sight LGPL might a good choice after all in this case.

ForsakenHarmony commented 6 years ago

Just use MIT and be done with it

lc-soft commented 6 years ago

Is lc-ui/LCUI-Guide up to date? I'd like to translate it since we're missing an English version.

@Raymonf

No, I have plans to rewrite some chapters, only one hello world demo code in this tutorial may not be enough, you can recommend some examples, like: news list, login panel, etc.

But these may take a long time, because now I need to develop LCUI.css 0.1 version.

herrbischoff commented 6 years ago

It’s pretty simple really. Just look at the discussion here and you’ll realize what a mess GPL licenses are. No one truly knows what its effects are, not even the FSF who created them. This creates ambiguity and leads to projects not using your library. Those actors who would abuse a license you will never catch anyway. You’re just making it harder for everyone else.

If you don’t want to support it because your time is limited, well, then don’t. All the more reason to liberally license the code so people can take it and do anything they want with it. Trying to force people to open source their code has never worked in my experience. They just move on to the next thing. Same reason the Nintendo Switch, PS4 and many other devices of quality are based on FreeBSD rather than Linux: the license. Well, that and the fact it’s a full operating system, not just a collection of a kernel and packages. But mainly because of the license. And yes, those companies do give back because it’s in their own economic interest to have the core features they care about supported and checked for issues – with no cost to them.

It comes down to an ideological choice: do you want to see the broadest possible usage of your library because you’re invested in free and open software or are you really just sharing code to show off your skills in hopes of attracting business? Both are valid choices. You should be clear and upfront about it though.

Suitable licenses for libraries outside the Linux ecosystem are MIT, BSD and even Apache if you want to prevent certain commercial usage.

sam0x17 commented 6 years ago

These days I don't really understand why any open source project wouldn't use the MIT license unless they intend to make money off of restricting/licensing the code in some way. LGPL is a step in the right direction, but MIT would be even less onerous.

codecat commented 6 years ago

I typically pick MIT for libraries (so that they're actually useful in closed-source projects) and GPL for programs (because why would anyone want to use that code in closed-source?)

lc-soft commented 6 years ago

OK, I can consider choosing the MIT license to reduce your constraints, and it can reduce my stress. Becuase this is a personal project, did not like Qt have a company to maintain it and have time to provide technical services to users of commercial license. Rely on the use of LGPL license and commercial license mode to obtain financial income is unrealistic.

but the development of this project is slow, I hope you do not complain.

baybal commented 6 years ago

The flaws of "freeloader licensing" like mit, 2c BSD, APL and on are that nobody is being forced by the contract to contribute back.

This is important because there are no decent free native GUI toolkits. For as long as there are no alternatives to GTK or Qt, freeloading devs are being limited to using something like Electron. They either have to open their code or not being able to sell their stuff. Very simple.

The best proof for that the fact that out of all free gui toolkits released over last 3 decades, only genuine opensource projects - Qt and GTK lasted to this day, and all others turned abandonware as soon as their sponsors' interest faded.

LCUI might not be a big project now, but it has all chances to become one one. Qt and GTK do have problems with being to huge. LCUI as it is now, has appeal for being small, GL oriented, and not having huge dependency trail.

lc-soft commented 6 years ago

So, what tool can replace header license text in all source files? manual replacement is very troublesome.

codecat commented 6 years ago

@baybal WxWidgets is still maintained, though.

@lc-soft It's probably possible to do a search & replace in any IDE, I would imagine.

baybal commented 6 years ago

@codecat WxWidgets is just a thin layer on top of gtk+/cocoa/gdi+. it does not do much drawing by itself.

codecat commented 6 years ago

@baybal Oh for sure, but it's still a UI framework. It's not hardware accelerated or highly customizable in terms of its looks, but it's still a framework. :D

herrbischoff commented 6 years ago

but the development of this project is slow, I hope you do not complain.

Not at all. I for one am actually happy it exists at all and you now chose a liberal license based on the feedback here. I'm confident it will positively influence adaption and hopefully contribution. I really don't like stuff like Electron (and JavaScript in general for that matter) too much. It's a step in the right direction for non-complex UIs.

technosaurus commented 6 years ago

I had completely written this project off due to the license and couldn't for the life of me figure out why it started trending. Now I understand; and can stop messing with tekui (a similar permissibly licensed project written in c and lua)

Thanks.