This topic is 4204 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

I'm almost finished with my Window Manager and tutorial on how to make your own WM. I haven't uploaded the code yet though since i haven't decided what license to use. GPL is probably the best choice but there is one thing that worries me:
Quote:
 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Can I change it and say that only version 2 is allowed? The reason for this is that Stallman and Co can add anything in newer versions of the license and that worries me. For example I don't agree with him on the on proprietary drivers-issue. Secondly: I would like my site to be a center for WM-development where others can upload their tutorials on the subject. Shall I let the author keep the copyright for his tutorial? I think that forcing the author to give the copyright to me is a bit to Nazi. The best would be a license that gave me the right to post the tutorial but that the author keeps the right to remove his work. And what if I later on start selling CDs (similar to NeHe's CD) to fund the site? I can't recall all the CDs just because one author decides to remove his turial! Anyone got a license to recommend for this? What are your thoughts?

Share on other sites
Quote:
 Original post by BBBCan I change it and say that only version 2 is allowed?

Yes - the bit of text you posted is not actually part of the license, so you are free to change/remove it. Note that the Linux kernel does exactly this - at the top of their "COPYING" file, above the text of the GPLv2, it states:

Quote:
 ...Also note that the only valid version of the GPL as far as the kernel is concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x or whatever), unless explicitly otherwise stated.

Share on other sites
Really, I should think that you can put whatever licensing conditions you'd like, it is your product.

On a somewhat humorous note, a guy I used to know once created a piece of software with what he called the 'Adam Public License (APL)', in which he stated that the software could only be distributed by the concent by our mutual friend, Adam. If he didn't like you, then too bad, no license. (No, this wasn't a serious thing and the software was never distributed ;)

Share on other sites
Wouldn't the LGPL be more suitable for this?

Share on other sites
Quote:
 Original post by SanderWouldn't the LGPL be more suitable for this?

Not really. SimpleWM is designed to be a standalone program, trying to put it into a library would be just wierd.

But thx bakery2k1 for the clarification. I'll use GPL v2.

Share on other sites
The GPL does not cover tutorials made about the software, nor does it cover work authored with the software (IE: just because you use GIMP to make an Image doesnt mean the Image is GPL), so any tutorials made by your users remain their own work, and you would in fact require their permision to post them in your site.

So if you're going to have some sort of upload mechanism, be sure to include a notice that reads something like "by uploading your tutorial you agree to give permision to have it posted on www.whatever.com, and/or used for commercial gain by the owner of the site", or you could ask for a separate permision when you decide to sell the CDs.

Share on other sites
Yes I know but I was thinking that It's probably better to use some well-known license (like for example Creative Commons) then my own since I don't have the knowledge to deal with all legal issues.

Share on other sites
BBB, you're right to want to use a standard license to help avoid confusion for the end user. As for the license for tutorials, one of the Creative Commons licenses should be fine. There is also the Gnu Free Documentation License, although CC is a lot more popular and well-known, I think.

Share on other sites
Quote:
 Can I change it and say that only version 2 is allowed? The reason for this is that Stallman and Co can add anything in newer versions of the license and that worries me. For example I don't agree with him on the on proprietary drivers-issue.

You mean you think proprietary driver development is a good thing for everyone? It's pretty obvious to me it's only good for chipset manufacturers. How do we benefit from them having closed drivers?

Anyway, you also have a misunderstanding of the "at your option" note. Just because it says that does not mean that automatically when version 3 comes out you will be under that license. The license that your application is under is still whatever you choose. "your" option referenced in the file is yours, not that of the person downloading the source code. Whatever license you distribute with the application source code will be the license it falls under.

Share on other sites
Quote:
 Original post by Xanas"your" option referenced in the file is yours, not that of the person downloading the source code. Whatever license you distribute with the application source code will be the license it falls under.

Yes it is. When GPL v3 comes out then I can download a GPL v2 or later application, make some changes, and redistribute the result as GPL v3 or later.

Share on other sites
Not as limiting as GPL in some respects.

Share on other sites
Quote:
Original post by Sander
Quote:
 Original post by Xanas"your" option referenced in the file is yours, not that of the person downloading the source code. Whatever license you distribute with the application source code will be the license it falls under.

Yes it is. When GPL v3 comes out then I can download a GPL v2 or later application, make some changes, and redistribute the result as GPL v3 or later.

You sure about that? If someone can change it to GLP3 then what keeps them to changing to another license, say BSD?

Share on other sites

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License

If you do NOT add the "or (at your option) any later version" part, then a user can only use your code under GPL v2. But if you write it as above, then he can use GPL v2, GPL v3 or later maybe even GPL v4 when that comes out in 20 years.

For example, the Linux kernel does not have the "at your option...." text. The GNU applications do have it. This means that everyone can make a copy of, for example, GNU libc, make some changes and release it under GPL v3 or higher. You cannot do that with Linux, because the Linux kernel is only GPL v2.

It is possible that some day Linux will have a GPL v3 kernel, but in order to do that, all copyright holders have to agree to do so. There are hunderds of copyright holders in the Linux kernel. Even just finding all of them is nearly impossible. Some are dead and cannot give permission. Some are alive and have said that hey will never give permission for a GPL v3 kernel.

I hope this illustrates the use of the "or at your option..." part.

Share on other sites
I recently saw an interview with Linus Torvalds where he said that that particular clause is for the person who originally developed the program NOT so that anyone who downloads it can use a later version of the GPL. On the other hand I think it's a fairly questionable and confusing choice of words if that is the intended meaning so take it out if you don't want the more obvious meaning to apply.

Share on other sites
Quote:
 Original post by ZQJI recently saw an interview with Linus Torvalds where he said that that particular clause is for the person who originally developed the program NOT so that anyone who downloads it can use a later version of the GPL.

That's silly. It must be a mistranslation, a misquote or a misinterpretation because it's not true. But then again. Linus does say silly thing in the heat of the moment on occasion :-) Anyway, let's get technical here. Here's a pseudo program licensed under GPL v2 or later (I'll omit the GPL blurb):

#include <stdio>int main(){  cout << "hello world!";  return 0;}

#include <stdio>int main(){  cout << "goodbye cruel world!";  return 0;}

Then I license my changes under GPL v3. The original code is still GPL v2+, but the only way you can distribute the full, new program now is under GPL v3 because my change is GPL v3 and you cannot distribute my change under GPL v2.

It's really not that hard to understand once you wrap your mind around the GPL. If it still doesn't make sense the I suggest you ask on groklaw, where some really smart people who are really good at explaning legal stuff are, or contact the Free Software Foundation. Sadly there is no entry in the GPL FAQ on GPL transistions (yet).

Share on other sites
On a sidenote, if you're afraid of changes in the GPL, why don't you go with a more easy going license? Such as the BSD or ZLib license?

Toolmaker

Share on other sites
Because he might like the GPL, but not the upcoming anti-DRM clauses in GPL v3? BSD is only nice if you don't mind other people having the ability to make your code proprietry again.

Share on other sites
Quote:
 Original post by SanderBecause he might like the GPL, but not the upcoming anti-DRM clauses in GPL v3? BSD is only nice if you don't mind other people having the ability to make your code proprietry again.

Precisly. Or actually; I am against DRM, but thats another story. The problem is that by saying "...or any other version" anything can happen. Heck, in the worst case scenario "Evil corporation X" might buy GNU and do god knows what. Okay this is not very likely but you never know.

Also, I'm not really against closed-source and if someone asked if they could include my code in their close-sourced-software I would probably let them but for some cases I wouldn't and therefore BSD doesn't fit the bill.

Anyways, I'm almost done with my Window Manager and tutorial on how to make your own. The website is actually up; I just have to upload the code to the Subversion repos. and finish the last pieces in the tutorial but I'm having problems in finding the motivation [sad]. Are you guys interested in making your own Window Manager?

Share on other sites
Quote:
 Original post by BBBPrecisly. Or actually; I am against DRM, but thats another story. The problem is that by saying "...or any other version" anything can happen. Heck, in the worst case scenario "Evil corporation X" might buy GNU and do god knows what. Okay this is not very likely but you never know.

Nah, the biggest danger is that GPL v4 or later accidentally has a loophole which would allow someone to make your code proprietry.

Anyway:

[1] License your program under GPL v2 only and remove the "at your option" bit from the GPL blurb at the top of your files.
[2] Remove any code from your program that you did not write. The object is that all the copyrights on your program are yours.
[3] Put a statement on your website and in your HACKING file that anyone who submits a patch must assign the copyright on it to you.
[4] When someone submits a patch, verify they assign the copyright to you. Keep the e-mails that say they do (and make backups!)

This way, all the copyrights will be yours. This means that you can easily switch licenses when you want to. So, when GPL v3 comes out and you like it, then you can switch to GPL v3 without having to track down all the contributers. If you don't like it then don't switch (and wait for GPL v4 :-). You will scare off potential contributors a bit this way, but that's the cost of having all the copyrights.

Share on other sites
Quote:
 Original post by BBBI just have to upload the code to the Subversion repos. and finish the last pieces in the tutorial but I'm having problems in finding the motivation [sad]. Are you guys interested in making your own Window Manager?

I'll probably never actually try to write one but a tutorial on the subject would be interesting to read anyway.

Share on other sites
Quote:
 Original post by BBBAre you guys interested in making your own Window Manager?

I am.

Share on other sites
I got an idea! Making the contributors surrender their copyright sounds a bit nazi and I really want to avoid that, but on the other side something might come up in the future that justifies a change of license. So how about I say: "You will keep your copyright, as long as you license it using the license I want to use. So if I, in the future, change the license then your work will fall under that license". Does that sounds as a good idea?

Or perhaps a dual-copyright? We both get the copyright that is. However I'm not entirely sure on how this works?

Quote:
Original post by Ravuya
Quote:
 Original post by BBBAre you guys interested in making your own Window Manager?

I am.

Thats all I needed to hear [smile].

Edit:
Typo.

[Edited by - BBB on June 21, 2006 11:57:11 PM]

Share on other sites
After googling for Dual-Copyright I found this and find it very disturbing.

Share on other sites
For anything greater than a few lines of patch, I would refuse to surrender copyright or even dual-copyright to an individual. To a group (something like a standards body) I'd be more trustful. I have declared public domain at least one large patch (somewhat like the latter option), but that was mainly not to step on any corporate toes when I submitted it (it modified dozens of source files and I didn't want the maintainers to have any questions about license when they merged my patch; the merging process was quick and painless, possibly as a result).

Most projects just have a policy of "at least as big-F Free as our license". So, one could submit a zlib or new-BSD licensed patch to a GPL licensed project without problems (as long as it's done properly, those licenses allow their source to be relicensed under the GPL and still remain the property of their copyright owner since they're even less restrictive than the GPL). You could not change a GPL-with-later-versions to a GPL-2.0-only or vice versa though.

So, you could require that the source is submitted to you in "an at least as Free" manner and then add it to your code under said license or then relicense (still under the rightful owner's copyright) and the add it to your code.

Personally, for tutorial code, I'd probably use a zlib or new-BSD license. It's going to be copied-and-pasted anyway, no? Not that the GPL disallows copying-and-pasting the code, but it complicates distribution, not that that should interfere with the learning process in any real way. But you do say you want this to become bigger than a tutorial, so you might want to consider the LGPL. LGPL keeps any redistribution from legally hiding away your contribution to the code and still keeps it as free as possible; the GPL doesn't seem necessary to keeping your code free and attributed though.

Share on other sites
Quote:
 Original post by BBBAfter googling for Dual-Copyright I found this and find it very disturbing.

Check the date on that. It's from 2001. In IT that's half a century. If that really applied the way it reads (and would still do today), don't you think RMS and the FSF would have plastered the internet full with warnings about this? The lack of replies to that e-mail says enough. Also, the Passport.net terms have long since changed. If anything, it's a good reason not to use MSN or Hotmail.

Quote:
 Original post by Null and VoidSo, one could submit a zlib or new-BSD licensed patch to a GPL licensed project without problems (as long as it's done properly, those licenses allow their source to be relicensed under the GPL and still remain the property of their copyright owner since they're even less restrictive than the GPL). You could not change a GPL-with-later-versions to a GPL-2.0-only or vice versa though.

Actually, you can license a GPL v2+ patch to GPL v2 only. The reverse is not true. The patch itself would remain GPL v2+, but if the rest of the file would chnage from GPL v2+ to GPL v2 only then the only license that allows distributing the combined work (original + patch) would be the GPL v2 and not any later versions.

The thing about relicensing this way is that you can never apply it to already released versions (technically you can, but already distributed versions keep the old license so relicensing old versions makes no sense). Short example: your software version 1.0 is GPL v2+. People contribute patches under GPL v2+, under BSD, ZLib, etcetera. Then you release version 1.1 of your software under GPL v2+. You change some more stuff and release version 1.2 under GPL v2 only. This is perfectly legal. Version 1.2 cannot be used under GPL v3, but version 1.0 and 1.1 can.

You can even cherry pick licenses. Suppose BBB likes GPL v3. He could release version 1.0 under GPL v2+. Then he starts writing version 2.0. In the mean time, RMS starts writing GPL v4 and BBB thinks it sucks. BBB then releases version 2.0 of his software under "GPL v2 or GPL v3" because GPL v4 sucks. That's no problem at all. Note that his old version 1.0 could be used under GPL v4 though, but not his new version.

To recap, you can license a piece of code (A) under any combination of licenses you want (say, license X and Y), and cherry pick from that set of licenses. You can combine that work with other software (B) licensed under a different set of licenses (say, Y and Z). But, you can only distribute the combined work (AB) under a license that satisfies both A's and B's license (in this case, only Y). It all comes down to basic set theory :-)