Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What's your objective? IANAL, but here's how I see it:

If it is "I want as many people to use it, regardless if I get anything in return, even credit, or even get to know about it" - then you should do BSD/MIT/Public domain. It makes sense for some projects, especially if they want to reach critical user mass, e.g. zlib, png, vorbis (the common theme I find that makes sense for this is "network effect")

If it is "I want people to be able to use it, but they have to give back to the community if they improve it", then LGPL is the right fit.

If it is "I want people who use it to share their use of it as a free product itself", use GPL (if you just want whoever distributes a binary to also distribute the source), or AGPL (if you want whoever makes the binary available for use, e.g. in a web server).

As a consumer, of course I like all libraries BSD - I never have to answer to everyone, everything is available to me for free, I can sell it, etc. That's the spoiled brat in me talking.

But as a mature member of the free software community, I ask everyone to consider GPL or even AGPL for code they release, unless they have a very good reason to do otherwise. Why would you want to support someone who does not support you back?

Specifically, I've so far only submitted patches (and signed over copyright when I did and the project requested), but if I ever release a full project on my own, it will definitely be GPL/AGPL with possibility for a proprietary license.

If GCC, which serves us all, had been BSD, it would probably not have been half as good as it is today: e.g. I suspect Sony would not have contributed back at all, IBM and Intel wouldn't have contributed as much, as many others. Furthermore, if GCC was AGPL, coverity would also have been free software.

ffmpeg/libav is the best media decoding library bar none (If you need control, the closest contender, Microsoft's stack, is not even close, and everyone else is much farther away). Many projects are violating ffmpeg terms left and right, but enough users respect the LGPL/GPL to make contributions significant, and everyone enjoys that. By the amount of projects that violate the terms, I suspect that a BSD license on ffmpeg would have been detrimental to the project.

Licensing something (A|L|)GPL still allows you to negotiate specific licenses for some compensation, e.g. patent protection from the user, or some payment.

We really need a "free software library/app store", where people can get compensated for their project in return for giving it under a non-GPLish license by a user who has problems with the GPL. If they have a problem with the GPL, they're obviously profiting of it, and they should expect to give something back (even if it is just a patent pledge or something else which does not cost money out of pocket)



How does dual licensing work when other people contribute code to the GPL codebase? Either they should still own their contributions and you won't be able to sell them as non-GPL, or you need to make them sign some extra contract to assign their copyright to you... Or am I missing something?


They have to sign copyright over (or otherwise license their contributions to you in a way you can relicense). Many projects require you to sign over copyright if you contribute - e.g. Cygwin, and IIRC ZeroMQ too.

Others just require you to let THEM relicense it, e.g. web2py.

And other projects (mostly those that consider closing source at some point) just refuse contributions.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: