View previous topic :: View next topic |
Author |
Message |
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Sun Feb 01, 2004 9:01 pm Post subject: The GPL says I can rip off other's code but can I REALLY do? |
|
|
I know that with GPL licensed code I am allowed ( at least that's how I understand it ) to either take some code from a program I like and put it in my new GPL program I am coding. I could also take this program and just fork it.
That's what the license states. But in reality can I just do this ? Is it considered bad ? Should I ask the original code authors permission ? What if they refuse ? I imagine I must give them credit for their code ( which I will be more than grateful to do ) somewhere in my program ?
Are there some things there are polite/impolite to do when doing this ?
Or does the original code sitll belongs to it's author because of copyright and the GPL still requires me to have permission from the author ?
I have all these questions because I have begun coding a small program as a hobby ( a game which probably will never be finished ) and was thinking of re-using the code from another linux game ( I have already looked at the code ) but I don't know the etiquette and how it's really done in real life about GPL code reuse. Also how to approach other poeple about it.
I don't want to be branded as a low-life thief for having made a "faux pas" or broken an unwritten rule. |
|
Back to top |
|
|
CheshireCat Guru
Joined: 25 Aug 2002 Posts: 572
|
Posted: Sun Feb 01, 2004 9:24 pm Post subject: |
|
|
The original author still owns the code after you incorporate it into your program. By licensing it under the GPL, they have explicitly granted permission for you to do this, as long as you follow the requirements outlined in the GPL. |
|
Back to top |
|
|
TheCoop Veteran
Joined: 15 Jun 2002 Posts: 1814 Location: Where you least expect it
|
Posted: Sun Feb 01, 2004 9:27 pm Post subject: |
|
|
It is perfectly legal, but there IS significant community opposition to it. Basically, it splits the available thinking-time into two, which can only be bad for both projects. For more details, have a look at http://www.catb.org/~esr/writings/cathedral-bazaar/homesteading/ by ESR _________________ 95% of all computer errors occur between chair and keyboard (TM)
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Führer" - Adolf Hitler
Change the world - move a rock |
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Sun Feb 01, 2004 9:45 pm Post subject: |
|
|
I have read most of the essay and basicly it says not to fork and not to create rogue binaries, rogue patches, etc. And that code reuse like I was talking about is a big taboo and for good reasons.
Personnally I think this sucks big time. Why have a gpl like license then ?
If even with all those GPL programs around I am supposed to either :
1: patch a near complete project when I would rather develop my own
2: Write everything from scratch and not reuse any code, just like in the windows propriety world
I am not trying to fit in a "gift culture" as the author puts it. I tought it would be more fun to do something on my own. |
|
Back to top |
|
|
TheCoop Veteran
Joined: 15 Jun 2002 Posts: 1814 Location: Where you least expect it
|
Posted: Sun Feb 01, 2004 9:51 pm Post subject: |
|
|
there is nothing against you using some other projects code in your own seperate project, and that is in fact welcomed - 'dont waste time reinventing the wheel', as long as you give credit. But there is community pressure not to fork and not to plagerise (but they are still legal) _________________ 95% of all computer errors occur between chair and keyboard (TM)
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Führer" - Adolf Hitler
Change the world - move a rock |
|
Back to top |
|
|
Lews_Therin l33t
Joined: 03 Oct 2003 Posts: 657 Location: Banned
|
Posted: Sun Feb 01, 2004 10:03 pm Post subject: |
|
|
From what you say, it seems your use for the code would be OK. Just put a little comment in there, like:
Code: | This is some code I used from game X, in foo.cpp |
Forking is when an existing project gets split apart (think *BSD) and plagarising would be if you took something, changed the name, and called it yours. It's not illegal, but it's not nice.
Code resuse like you plan is the whole idea behind Open Source, there's no point in writing the same code 200 times for 200 projects. As long as you're nice about it, there's no problem. Rogue patches and rogue binaries are supposedly program X, when they are actually the author's veiw of what program X should be. I would make a new program if you don't like the old one, or submit my patch to the devs.
If you want to create a new program on your own that is distinct from the old one, such as Quake 3 is different from ET, then by all means go ahead. But if you just want to make a new program in a niche that already exists when the old one is active and can be patched, that is a Bad Thing.
For example, say you want to make a new IRC chat program because XChat doesn't support some feature. The polite thing to do is to make a patch for XChat and submit it to the devs, so that there is a superior product available. Making your own will probably not succede, there will not be a program anywhere with that ability, and the community will have lost something.
I hope my post was at least halfway coherant. |
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Sun Feb 01, 2004 10:16 pm Post subject: |
|
|
So I can better understand your post what is ET ( sorry ).
When you compare Quake 3 to ET ?
EDIT : Ok I just got it, must be a typo, it must be UT right ? |
|
Back to top |
|
|
CheshireCat Guru
Joined: 25 Aug 2002 Posts: 572
|
Posted: Sun Feb 01, 2004 10:21 pm Post subject: |
|
|
Heh, UT would be a good example as well, I suppose. ET refers to Enemy Territory, a free game based on Return to Castle Wolfenstein. |
|
Back to top |
|
|
Boris27 Guru
Joined: 05 Nov 2003 Posts: 562 Location: Almelo, The Netherlands
|
Posted: Sun Feb 01, 2004 10:43 pm Post subject: |
|
|
CheshireCat wrote: | Heh, UT would be a good example as well, I suppose. ET refers to Enemy Territory, a free game based on Return to Castle Wolfenstein. |
And RTCW in return, is based on Quake3.
Basically, ET runs on the Quake3 engine. ET is a reuse of the Q3 engine, but with different weapons. |
|
Back to top |
|
|
Lews_Therin l33t
Joined: 03 Oct 2003 Posts: 657 Location: Banned
|
Posted: Sun Feb 01, 2004 11:24 pm Post subject: |
|
|
I thought the game ET ran on the Quake3 engine, sorry. But hopefully you get the idea. |
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Sun Feb 01, 2004 11:27 pm Post subject: |
|
|
So I can take code from other projects but it's better not to.
I may be better off writing patches for a game which has a project on sourceforge or something. So that's probably what I will do. |
|
Back to top |
|
|
EzInKy Veteran
Joined: 11 Oct 2002 Posts: 1742 Location: Kentucky
|
Posted: Sun Feb 01, 2004 11:45 pm Post subject: |
|
|
bleakcabal wrote: | So I can take code from other projects but it's better not to.
I may be better off writing patches for a game which has a project on sourceforge or something. So that's probably what I will do. |
That's why forking simply for the sake is forking is frowned upon. Ten people submitting improvements to an existing project is just more efficient than ten people starting the same project from scratch. But I do think the "don't reinvent the wheel" phrase is way overused. How is one to get a better wheel, or even a replacement for it, if the basic concept isn't reexamined now and then? If you look at Linux as a reinvention of Unix then the benefits of occasionally starting from scratch become obvious. |
|
Back to top |
|
|
StringCheesian l33t
Joined: 21 Oct 2003 Posts: 887
|
Posted: Mon Feb 02, 2004 2:51 am Post subject: |
|
|
IANAL (I Am Not A Lawyer)
TheCoop wrote: | But there is community pressure not to fork and not to plagerise (but they are still legal) |
It's never legal to plagerise, not even if the code is GPL. Sure you can take the code and use/fork it because of the GPL, but you cannot put your name on it, say you wrote it yourself, and change the copyright notice to have your name instead. That's more than just "not nice" - it really is illegal.
This is exactly the kind of misconception that makes people think that open source is communistic. You're just giving SCO ammunition. Get it straight, ok?
You can use other people's GPL code for free, but you can't (to quote the topic title) "rip [it] off". |
|
Back to top |
|
|
beowulf Apprentice
Joined: 07 Apr 2003 Posts: 225
|
Posted: Mon Feb 02, 2004 11:09 am Post subject: |
|
|
I don't think anyone would mind terribly... they say immatation is the finest form of flatery... whether you think that or not however doesn't really matter....
What would appear to be taboo, or against the un-written rules would be to fork code, but make trivial changes to it so that it runs exactly the same and any enhancements you have made could easily be sent to the original authors for incorporation in the already existing code... This is what many developers find annoying... your changes are so small that instead of sending in a patch, or feature enhancement, you fork it and keep the changes for yourself.
To borrow code though is fine... Just make a little note about it... for instance: "This algorithm was copied from the XXXX project"... I see nothing wrong with that... and imo, that is proper code re-use... Copying algo's is the best thing about GPL... I don't have to solve the same problem that's been solved countless other times....
IMO projects are only forked (and accepted whole heartily by the community) when you have made an effort to get your rather large changes into a project, been declined... and then decided to fork the code.... _________________ I have nothing witty to say here... ever |
|
Back to top |
|
|
Arker Apprentice
Joined: 10 Sep 2002 Posts: 205
|
Posted: Mon Feb 02, 2004 1:38 pm Post subject: |
|
|
I am also a little unsure about how these things work as well. I use a little application Z. There are a handful of features that many users and me would like to see in Z, but the Z developers refuse to include the features for whatever reason (even when the work is done/ patch is submitted). I most certainly respect their decision to not include these features, after all, it is their project.
But now, I end up modifying my own copy of application Z. I add the features that several users would like but will never see. I keep my patches current with the project's CVS. But I cannot make these patches available to others even though I want to. These are what the essay refers to as "rogue patches" I assume.
I also do not want to anger anyone or break any unwritten rules, so I will just keep my patches to myself. It is a shame though, because I believe strongly in sharing software, and I know many others would like these extensions to application Z.
Cheers,
~djc |
|
Back to top |
|
|
gsfgf Veteran
Joined: 08 May 2002 Posts: 1266
|
Posted: Mon Feb 02, 2004 2:12 pm Post subject: |
|
|
For a game, you're fin as long as the game is unique. You will be creating gameplay, not technology, so use what's available. _________________ Aim:gsfgf0 |
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Mon Feb 02, 2004 3:16 pm Post subject: |
|
|
Quote: | For a game, you're fin as long as the game is unique. You will be creating gameplay, not technology, so use what's available. |
That is another aspect which I think is important. Games are also about gameplay, content, game mechanics and storyline.
When I play a game I don't care how the pathing algorythm has been implemented. All I care about is wether the game is fun to play, if it isn't I would'nt be playing it anyway.
I think that when you are creating a new game it isn't the same as creating another text editor in a crowded environment full of text editors.
I always use the same text editors and im sure most poeple don't use more than 1, 2 or 3 different text editors frequently. ( Im not saying that there is no more than 3 frequently used text editors, but that poeple don't use a lot of these ).
On the other hand I have played a countless number of games on the various consoles and the PC. I am currently playing 2 games at the same time right now and I don't see how having more games on linux could be considered a problem.
Of course if there were just plain to many half-finished projects ( which may be the case ), but also when you want to create a game that is your own and you have some ideas for it, your sometimes not as motivated working on another game where all the ideas and concept work has already been done for you. |
|
Back to top |
|
|
AgenT Apprentice
Joined: 18 May 2003 Posts: 280
|
Posted: Mon Feb 02, 2004 3:50 pm Post subject: |
|
|
From the looks of it, you want to create something unique. And this new game will incorporate GPL code (plus your own code). Unless your are just forking a game (and therefore making a copy with a few improvements), I say go for it. So for example, if you want to start from an existing 3d engine, use it! However, if you just want to make improvements, work on an existing project and submit patches. In fact, if you are making a unique game, I would highly suggest using GPL code as this would save precious time and you would not have to 'reinvent the wheel'. Of course, you will have to release your game under the GPL liscence when you release it to the public. |
|
Back to top |
|
|
WindKin n00b
Joined: 23 Jul 2003 Posts: 40 Location: Sarpsborg, Norway
|
Posted: Mon Feb 02, 2004 4:23 pm Post subject: Another PoV |
|
|
For an example on how this may be a good thing to do, take a look
at two common vm's.
Waimea vs Kahakai.
Kahakai != Waimea.
Waimea "died", or at least no one has heard anything, and the webpage has been stating "coming soon" for a pretty long time now.
When a good project suffers a sudden death like that, a fork might be a good option. Althoug I generally agree to what is said, I just wantet to point out an exeption.
Cheers _________________ There are 10 kinds of people. Those who understand binary, and those who don't. |
|
Back to top |
|
|
zojas Veteran
Joined: 22 Apr 2002 Posts: 1138 Location: Phoenix, AZ
|
Posted: Mon Feb 02, 2004 9:43 pm Post subject: |
|
|
Arker wrote: | I am also a little unsure about how these things work as well. I use a little application Z. There are a handful of features that many users and me would like to see in Z, but the Z developers refuse to include the features for whatever reason (even when the work is done/ patch is submitted). I most certainly respect their decision to not include these features, after all, it is their project.
But now, I end up modifying my own copy of application Z. I add the features that several users would like but will never see. I keep my patches current with the project's CVS. But I cannot make these patches available to others even though I want to. These are what the essay refers to as "rogue patches" I assume.
I also do not want to anger anyone or break any unwritten rules, so I will just keep my patches to myself. It is a shame though, because I believe strongly in sharing software, and I know many others would like these extensions to application Z.
Cheers,
~djc |
this sounds like an appropriate situation to start a fork. you want to take an existing code base in a new direction _________________ http://www.desertsol.com/~kevin/ppc |
|
Back to top |
|
|
Arker Apprentice
Joined: 10 Sep 2002 Posts: 205
|
Posted: Tue Feb 03, 2004 12:19 pm Post subject: |
|
|
zojas wrote: | this sounds like an appropriate situation to start a fork. you want to take an existing code base in a new direction |
Well that's just it, I really don't think the changes I've made warrant their own fork, nor do I have enough interest in the project to fork it. These are just features that myself and others felt were appropriate for such an application, and they were very easy to implement, so I made them.
This really isn't such a big deal or anything, It's just one of the dilemmas of GPL'd software I guess. It's a shame that for software that is so free, that one can't make such patches public without feeling guilty. I do understand the reasons though, and the people who want the features that I've implemented will live long and may even prosper without them still.
~djc |
|
Back to top |
|
|
zojas Veteran
Joined: 22 Apr 2002 Posts: 1138 Location: Phoenix, AZ
|
Posted: Tue Feb 03, 2004 12:30 pm Post subject: |
|
|
you could just put your patches up on a webpage somewhere, that's what I do _________________ http://www.desertsol.com/~kevin/ppc |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9605 Location: beyond the rim
|
Posted: Tue Feb 03, 2004 3:29 pm Post subject: |
|
|
No reason to feel guilty for making patches public after they were rejected. What should not be done is advertising them without asking the original authors to include them. |
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Tue Feb 03, 2004 8:47 pm Post subject: |
|
|
Genone wrote: | No reason to feel guilty for making patches public after they were rejected. What should not be done is advertising them without asking the original authors to include them. |
That's a great idea. I could make my mods, email the original authors, say if they wish to include them in the game or as a separate similar one. If they refuse, I will publish them quietly on some web page. |
|
Back to top |
|
|
polin8 n00b
Joined: 03 Oct 2002 Posts: 74 Location: Baltimore, MD USA
|
Posted: Tue Feb 03, 2004 9:14 pm Post subject: |
|
|
Are you creating a clone of the game? Or a totally new game that uses some of the same code?
Example:
You want to write pacman
Pacman allready exists, but you don't like the color of the ghosts.
so don't write Ms. Pacman with no difference but the new ghost color. send a patch to change the color.
On the other hand. If you want to write asteroids. and you want to use the rotation code from pacman. please do, don't write new rotation code. but politely cite the source. |
|
Back to top |
|
|
|