Open Source Downgration

Started by
31 comments, last by Heath 11 years, 6 months ago

It's funny, because I've seen it so often, when people release their software under an expatlike license (one of the many-fold MIT, BSD, or zlib licenses) and then get all round-eyed and outraged because someone else takes the code and modifies it and sells the software for a fee and doesn't make their code available or even acknowledge the original author.

I feel open source programs are good to release under GPL, large libraries and frameworks are good under LGPL, and code snippets or small libraries are best under zlib or similar.

Really, I don't like it when there is a 20 line piece of code that is available for free, that I then have to bother tracking who created it, and make sure to give them credit for their 1/200000th share of the code in my project. Oftentimes, I find it easier to just to write my own so I don't have to bother with their version. But if they truly want to make something available for use that can fit within a single blog post, or is a single header file, make it public domain or MIT-like.

It's not that I don't want to give credit where credit is due, it's just that for a small chunk of code, it's just not worth the hassle and legal risk if I forget to credit all 30 people that once posted something on some site somewhere that I once used sometime in the past two years in one codebase that now is being used in a new project. It's not just the crediting either - I have to get their licenses, and make sure users can tell license #22 goes to code snippet #22, even though license #22 is the same license as license #15, #17, and #4, and a slightly modified version of license #12 and #14. rolleyes.gif

For larger chunks of code (like libraries) it's totally worth the minor inconvenience.
In a related note, it's a pain to track down all the licenses for the sound samples maybe-used by the composer who's working for you (quite generously for free! So it's worth the hassle - but it's still a pain), because the composer doesn't fully understand the legal aspect of "free" sound samples downloaded from sites.

Creative Commons Attribution is great! Except for a 1/15th second whistle that's only used once in a 5 minute song. dry.png
Advertisement
Really, I don't like it when there is a 20 line piece of code that is available for free, that I then have to bother tracking who created it, and make sure to give them credit for their 1/200000th share of the code in my project. Oftentimes, I find it easier to just to write my own so I don't have to bother with their version. But if they truly want to make something available for use that can fit within a single blog post, or is a single header file, make it public domain or MIT-like.

It's not that I don't want to give credit where credit is due, it's just that for a small chunk of code, it's just not worth the hassle and legal risk if I forget to credit all 30 people that once posted something on some site somewhere that I once used sometime in the past two years in one codebase that now is being used in a new project. It's not just the crediting either - I have to get their licenses, and make sure users can tell license #22 goes to code snippet #22, even though license #22 is the same license as license #15, #17, and #4, and a slightly modified version of license #12 and #14.

Does that really happen to you often? I can't imagine this happening all that often.

In a related note, it's a pain to track down all the licenses for the sound samples maybe-used by the composer who's working for you (quite generously for free! So it's worth the hassle - but it's still a pain), because the composer doesn't fully understand the legal aspect of "free" sound samples downloaded from sites.

Creative Commons Attribution is great! Except for a 1/15th second whistle that's only used once in a 5 minute song.[/quote]Sound samples are a mess. Have you seen that "Copyright Criminals" documentary on Netflix? It's interesting, and it covers a lot of the basic problems with owning the rights to sounds, and just how that has affected music since sampling and turn-tables became instruments unto themselves.

(GPLv3 isn't anywhere near as popular as v2 was)


What is the difference, if I release something with GPL version 2 or 3?
So if I use QT to develop my application, then the overall application could be, say, MIT, because it is compatible with GPL? And what is the difference between GPL3 and GPL2?
What's This?: basically, it's my blog. Click on it.

[quote name='Servant of the Lord' timestamp='1349816234' post='4988482']Really, I don't like it when there is a 20 line piece of code that is available for free, that I then
It's not that I don't want to give credit where credit is due, it's just that for a small chunk of code, it's just not worth the hassle and legal risk if I forget to credit all 30 people that once posted something on some site somewhere that I once used sometime in the past two years in one codebase that now is being used in a new project. It's not just the crediting either - I have to get their licenses, and make sure users can tell license #22 goes to code snippet #22, even though license #22 is the same license as license #15, #17, and #4, and a slightly modified version of license #12 and #14.

Does that really happen to you often? I can't imagine this happening all that often.[/quote]
Excluding third-party libraries, I use several pieces of code found online (probably 4 or 5. Much less than 1% of my code) and avoid adding more if it's a small code snippets I can write myself, because I am (or think I am) required to distribute a license for each piece of code. I've never gotten into legal trouble, but since I am working on my first commercial game, I'm trying to be extra careful.

I don't mind libraries - I remember and can list every library I use just from memory: Lua, Boost Filesystem, Qt 4.8, SFML 2. I can look up their licenses (and the licenses of the libraries they use) at any time, before I have to ship. The information is recorded for me.

However, it's much harder for me to remember: "The string to int conversion code is code I once downloaded from sourceforge"; but even that's not bad: I paste a copy of the URL as a comment next to the function, so I can refind the license if I forgot... though I still have to remember that the code is even being used.
Even worse is when the URL I got it from isn't someplace like SourceForge, but someone's blog, and the URL can go dead. The code snippet doesn't have a name identifying it, so it's harder to track down.
Further, what counts as giving the coder credit? "One of the code snippets use in this game, which doesn't have a name, was downloaded from a URL that no longer works, on a domain name that has expired, and was once posted five years ago by a blogger going by the name '2cool4you'."

Why must I go through the hassle of giving 'credit' when the end result doesn't actually give credit, and for only a 4-line algorithm? Release it to the public domain, and don't worry about credit! If paranoid, slap on a "I claim no responsibility for any damage this code might do, or for any flaws within it. Use at your own risk."

Coders slapping on, "yeah, and give me credit if you use it" probably don't really care for credit for a 20 line or less piece of code when it's used 5 years later, but it gives the person using it extra work which actually discourages them (or at least me) from using it unless they need it badly enough.

If your code isn't large enough to actually have a name, it's probably not large enough to bother asking credit for. dry.png
If you really want credit for it, at least do the future users the great kindness of putting the license (or a permalink to the license) as a comment in the main header file, along with the name or username you wish to be credited under, and a link to the website you'd like us to link to, with permission to not link to the website if it no longer exists.
And if you don't care about credit: Release as public domain and do us all a big favor!

So no, it's not that big of a problem for me, since I avoid using that code unless I really need it.

In a related note, it's a pain to track down all the licenses for the sound samples maybe-used by the composer who's working for you (quite generously for free! So it's worth the hassle - but it's still a pain), because the composer doesn't fully understand the legal aspect of "free" sound samples downloaded from sites.

Creative Commons Attribution is great! Except for a 1/15th second whistle that's only used once in a 5 minute song.[/quote]Sound samples are a mess. Have you seen that "Copyright Criminals" documentary on Netflix? It's interesting, and it covers a lot of the basic problems with owning the rights to sounds, and just how that has affected music since sampling and turn-tables became instruments unto themselves.
[/quote]
I have not seen it - just added to the top of my instant-watch queue, thanks! I love netflix. happy.png
I'm referring more to legitimate websites like Freesound.org, where I have to make sure my musician doesn't accidentally use any non-commercial samples, and badger him to provide links to each samples he did use, so I can credit the users (for each individual sample) where the license requires attribution. sad.png

Unfortunately, Creative Commons got rid of the non-attribution license, so it's not possible for people to say "share-alike non-attribution". Either it's completely public domain (which is good and they have a license for - but I wish they'd promote it more on their 'build-a-license' page), or it's "attribution" by default, with no way to uncheck that (as far as I can tell).


So if I use QT to develop my application, then the overall application could be, say, MIT, because it is compatible with GPL? And what is the difference between GPL3 and GPL2?


Sure, Qt under LGPL, you can license your own code under anything you want. I'm using Qt for a commercial game.
You only need to worry about the following things: If you modify Qt itself, you must release the modifications (but the rest of the code is still yours and doesn't have to be released), and if you statically link to LGPL software, your code (or object files) must be available for people to rebuild your project, though you can still choose under what license (even non-opensource licenses). So just be sure you dynamically link (use DLLs instead of injecting the Qt code into your executable).

Those two notes are easy enough to avoid, and well worth the non-hassle they introduce. "Use DLLs instead of static linking. Got it!"

So if I use QT to develop my application, then the overall application could be, say, MIT, because it is compatible with GPL?

No, it's because it's compatible with the LGPL. LGPL != GPL. Your conclusion is correct (you can license your app under the MIT license), but your reasoning is wrong (not because it's compatible with the GPL). You can use Qt under the GPL, in which case you have to license your code as GPL, or you can use Qt under the LGPL, in which case you can license your code however you want (or keep it closed source), so long as you properly use/link to Qt (namely, dynamically link to it).

You can dual-license a library and allow people to use it under two different licences (for example, GPL and LGPL), whichever they prefer. You can triple-license, or N-license (where N is any number) it, and let users choose which license to use (or pay for the option to use a particular license).
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

[quote name='SimonForsman' timestamp='1349802550' post='4988411']
(GPLv3 isn't anywhere near as popular as v2 was)


What is the difference, if I release something with GPL version 2 or 3?
[/quote]
Do not quote me on this, because I'm not sure, but I recall reading that the main difference between the (L)GPL v2 and v3 is that v3 allows the library to link to and use other libraries that may be using licenses different from the (L)GPL. It arose from some ambiguous wording in v2, so they modified v2 to clarify their intention. I think they clarified some other ambiguities as well. It's essentially the same, but more explicit in some of the previously ambiguous areas. This is just what I remember reading, and it could entirely wrong.
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

[quote name='SimonForsman' timestamp='1349802550' post='4988411']
(GPLv3 isn't anywhere near as popular as v2 was)


What is the difference, if I release something with GPL version 2 or 3?
[/quote]
The main difference is that if you distribute something under GPLv2 and own patents on some of the thoughts and ideas represented by that code, if you're in the USA you can sue the fiving luck out of whoever uses the software built from your code for anything. GPLv3 basically adds a clause saying that if you have patents on the software you can not use the GPLv3. The GPLv3 also has an anti-tivoization clause (if your binaries are encrypted, the encryption key must be distributed so they can be replaced). Note that GPLv2 is not compatible with GPLv3.

A lot of people do not use the GPLv3 because Linus Torvalds says it sucks. If through some miracle he could convince all of the copyright holders i the Linux kernel, living and dead, to switch to the GPLv3 then Linux would disappear from the face of the earth because all the billion-dollar companies that back it (like IBM, Google, Red Hat and Microsoft) would run like little girls from the creeper van. Those companies rely on patents for much of their livelihoods.

Where I work we are required to use GPLv3 for most of our code.

Stephen M. Webb
Professional Free Software Developer

If I had to choose between the two I'd prefer GPL3 because of the greater clarity in the system library stuff, but on balance my preferred approach if releasing code is to just public domain it. Sure, it means that nasty evil bad people can take it, use it, sell it, not give credit and not contribute it back, but hey - I'll live with that.

That's one area where I take issue with the GPL concept of "freedom" - unless you're free to also do the wrong thing, I don't really see it as being "free".

Regarding the mention of Doom on the previous page, as id Software are the original copyright holders they are perfectly allowed to relicense the (original) code under any other terms they wish to other parties if they wish, or even reuse it themselves if they so wish. There's absolutely nothing different there to what you see with other programs where two or more licensing options may be available.

This is addressed in the GPL FAQ here: http://www.gnu.org/licenses/gpl-faq.html#ReleaseUnderGPLAndNF (although interestingly a subsequent entry seems to contradict it).

This is another problem with the GPL. A lot of what you may call "GPL zealots" (for want of a better term) seem to have a rather poor understanding of what actually is or isn't allowed by the GPL, and many seem to have never actually read the license. That leads to fiascos such as cries of "GPL violation!" when someone tries to sell a GPL program (which is in fact perfectly legal) and the whole shitstorm around Nexuiz (see http://games.slashdot.org/story/10/03/22/1859212/Nexuiz-Founder-Licenses-It-For-Non-GPL-Use).

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

@mhagain: Or like this? http://linux.slashdo...ant-use-dma-buf smile.png

This topic is closed to new replies.

Advertisement