On the Ethics of a Code Split?
McWizard asks: "We've recently had a code split at a project I'm leading. (No name given, as this is a question, not an advertisement campaign). While both projects have done some major design decisions in opposing directions, we've been keeping a close eye on the changelog of the spinoff for small changes that could be used. So, whenever we've found an interesting piece of code (mostly GUI stuff, nothing longer than 20 lines of code), we transferred it to our project and gave credit to the spinoff team in the changelog.
What does Slashdot say on that matter? Is this unethical or are such things fair game?"
"Yesterday, I was contacted by the leader of the spinoff project who told me that he's quiet angry at us for doing that and that it's considered unethical and rude to copy code from the spinoff.
As both projects are under the GPL, we have an opposing opinion on that matter and we've more than once invited him to copy code from our project. Nevertheless he's thinking about obfuscating his changelog and only open the source as packages when he's doing a release, which is, as he says, his right under the GPL."
Legally, there's nothing wrong since both projects are GPL'ed (I presume).
Ethically, I don't see anything wrong with it. In the end, it's your design decisions that are going to make a difference, which is why the code split in the first place. In fact, there's no reason why both projects shouldn't take code from each other; if there are common areas where there's actually no disagreement, this will help to reduce duplication of effort.
Gan Family Homepage
are you losing sleep over the matter? if not. don't worry about it and get on with the better things in life. let the weenie at the other project be a weenie.
abcdefghijklmnopqrstuvwxyz
That is the spirit of the GPL! You are allowed to copy and use GPL code if your code is also GPL!
Weird.
The other developer obviously does not understand the GPL. Of course you can use the code, just as long as you preserved the copyright notice.
Use & share the code - thats the whole point of the GPL anyway.
My pics.
If the idiot who forked from you really wants to go closed source with it, he's going to have to change the license, and I bet most of that code was written by people on your side of the camp. I wish him lots of luck getting them to agree to license it to him under closed terms. If he just wants to close the CVS repository, or obscure the changelog, that's up to him, and the GPL permits this, but that would seriously hurt his fork, as people would be far less willing to get involved with it.
So in short, it's not at all unethical. But is it rude?
Again, I'm going to say no. It is, after all, a GPL project. You have to expect your code is going to wind up reused in other GPL projects sooner or later. That's a sign that you're writing good code. He should be flattered, not offended.
In the long term, the politics are likely going to wind up killing one or both projects, so I'd suggest you try to keep the moral high ground, as it were, and let this guy run his fork into the ground. It sounds like he's well on his way there already.
How am I supposed to fit a pithy, relevant quote into 120 characters?
Yes? Then I fail to see how this is an ethical question at all. If they didn't want others using it, they wouldn't have made it available for others to use.
Never let your ego stand in the way of improving the software.
Disgruntled XFree86 developer, are we?
Real programmers can write assembly code in any language. -- Larry Wall
... die by the GPL.
You're fine. If they didnt want to share, they shouldn't have stayed with the GPL.
At least you're giving credit, which is a pile more then most bother to do.
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
Isn't the whole point of Open Source to share ideas and improve everybody's work?
As long as you give credit and don't try to pass it off as your own, I don't see the problem... unless you are selling this product, in which case it's a tricky situation. Maybe take the idea and give credit but rewrite the code your own way?
If you shared code originally, what's wrong with sharing it now?
He's a twit. How did he get his code base in the first place? By copying it, under GPL, from a community of people who wrote it and released it.
They didn't have veto power over others using their code and neither does he.
It's open-source. If he doesn't want certain people re-using the code, well, then he shouldn't release his code under the GPL. Trying to restrict use of open-source code because he has a personal grudge with a project he split off of is the real unethical behavior.
If he wants to do this and not share with everyone, he needs to start over with his own commercial implementation from scratch. Until he does, just tell him to suck down a nice big mug of STFU.
If it's unethical to legally bring in code from the spinoff project with full credit given and the license terms followed, then how could it have been ethical for them to legally take your code base and spin it off within the terms of the license?
I see both as being perfectly fine, but if they're going to get angry about it, that's just hypocracy on their part. (At least that's what it looks like without reading their side of the story.)
this guy needs to grow up. (Mods: I'm not trolling here). This is the worst thing about working in software: some developer's baby-like attitude about the code they write. Every fucking place I've worked has always had some guy who's pathological about his code. (for the peanut gallery: no, it's not me).
What is it about coding that draws these types? Was it being beaten up in school, and now they're nuts about the one thing they're good at?
Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
Can you imagine human history without being able to use other people's good ideas? I mean even if it's not derived? "I'm sorry, you can't have that steam train - I represent the estate of the ancient greeks, and we have a patent on the steam engine."
Having said all that, accreditation is nice - aknowledge the work that people have done, it's cool that you are doing this. This is what polite people in academia do - just recognise the derivation of the idea, then use it with what you're doing.
T
Oh, that already happened.
If you have a good reason, just split the code - emacs survived it, XFree86 survived it.
Arguably, it might have been more polically aware to ask permission before using the code, but I'd say the more serious problem is that the leader of the spinoff doesn't appear to fully understand the concept of the GPL. Anybody can take a project and expand on it. That code can, in turn, be added to any other project. It's all about sharing and showing your stuff, so someone using your code should be taken as a compliment, not theft.
Maybe you could try and talk to him and ask why this is a problem; perhaps it's a matter that can be settled. In any case I wouldn't borrow any more of their code until the matter is cleared up since that would only escalate the feud.
===== Murphy's Law is recursive. =====
Is it ethical? Hell, yes! The whole idea of Open Source is to produce the best damn code possible. If it weren't, there'd be no point. It'd just be an ego-trip and flag-waving exhibition. Sure, some projects are just that, and some developers are only concerned with themselves. Such projects and such people rarely last, either in open or closed-source environments. When all you can see is yourself, you're obstructing the view of any goal you might want to reach.
You cut bits out & give them credit. They do the same with what you produce. In the end, the fork will either produce two completely different products that were initially entangled, or will re-merge when it's finally understood that the different people were viewing the same problem, only from different viewpoints and/or with a focus on some specific part of it.
For what it's worth, I say go for it. The other person has neither ethical nor legal ground to stand on, if it's GPL, LGPL or BSD.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I've seen this happen in pretty important chunks of code - even gcc - which is pretty sad.
As a maintainer for a file system, I try to treat people as "customers". Sure, unless they're paying, they don't have any legal rights, but there is still some moral obligation to serve. I try to add the features that people want without breaking the design goals etc. I'm sure this is easier with a file system which is very deeply buried than with a userpsace program where everybody has a beef about itty-bitty features.
Engineering is the art of compromise.
If anyone is being unethical it is the other party for trying to browbeat into place additional restrictions on top of the GPL
Open Source and Free Software work so well because no matter what differing motivations and desires different people have we all can all come together with a given licence as a basis for a sort of social contract.
If a party is trying to restrict what the licence in question normally allows then it is they that is being unethical.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
How, exactly, is it unethical to take small snippets of code from a fork? Remember, to start the fork the spin-off team took the original project's entire codebase. All of it. You are not in the wrong here. The fork has to maintain the GPL license (or completely rewrite all the pre-existing code). Given that the GPL made it ok for them to take your project's codebase and start a fork, they can not claim foul when you do the same thing to them.
This is all about someone's ego. Squash it or not as you see fit.
In other words, do *you* care what they think of your use of their code. In this situation, that is about all that really matters.
Furthermore you have the issue here hypocracy. Obviously one branch seems to think it is OK for them to use a common codebase developed by the other side, but not OK for the other side to do the same thing.
If the guy doesn;t want to allow you to use his code, he shouldn't have used your code in the first place. What strikes me as particularly unethical here is that he used the common code base but did not want to return the favor, despite the fact that this use was dependent on such permission (the GPL). So in the end, this guy (the one who doesn't want to share his code) is essentially stealing by his own account and by his own standards. This is unethical by any reasonable standard.
Again I think it is appropriate to use whatever code you want provided that you have legal permission to do so. I don't see any ethical issues because reciprocity exists.
LedgerSMB: Open source Accounting/ERP
McWizard in the red corner with Megameknet/Megamek:
http://sourceforge.net/projects/megameknet/
and in the blue corner urgru with mekwars:
http://sourceforge.net/projects/mekwars/
Is this what its all about?
This is laid out in the open source definition, of which the GPL fits, which explicitly forbids obfuscated source.
Whether and how this applies to changelogs is another matter, since those could be interpreted as not being part of the source.
However, if the changelog is important for understanding the source, then I would interpret the GPL as regarding the changelog as part of the source code for the project, and therefore subject to the redistribution clause of the GPL.
Say to him "No, rude would be if I told you to go get stuffed, like I'm about to do." You are using the code in a manner that isn't just permmited by the license, it's intended by the license.
I'm sick and tired of these fairweather open source developers. They're all for it when it means they can get a jumpstart on their project using freely available code and not have to ask permission. They're all for it when it means they look at what others have done for inspiration. They're all for it when it means they can attract more developers with the promise that their code won't be locked away to wither and rot so long as someone, anyone is interested in it. But once someone starts using it in a manner they don't approve of, they're up in arms.
Hey, that's the GPL. If it's all his code, he can stop releasing it under the GPL and use a more restrictive license. Otherwise, tell that arrogant bastard he needs to look down on all the GPL shoulders he's standing on and rethink his position.
Ah, but the GPL is also an ETHICAL document. The purpose of the GPL is to share code. It's not merely that sharing code is *permitted* by the GPL, but that it is *encouraged* - indeed, prescribed by the GPL. The purpose of the GPL is to disseminated shared and reused code, and obfuscation and claims of "code theft" are in direct opposition to the moral basis of the GPL. In other words, you're comparing a prescription to a proscription.
yeah, he has used reverse psychology on all of us to get us to go check out and play his mech board game now that we are all ready to get some practice in before the mech from alaska takes over.
My two step plan for dealing with the problem.
Step 1:
Politely and calmly explain it to him that as both code bases are GPL'd it's perfectly legal to do what you're doing. Also point out that he's benefitted from this arrangement by not having to recode everything to get the spin-off off the ground and doing what he's planning on doing will harm the spin-off.
Step 2:
If step 1 doesn't solve the problem then tell him to go fuck himself and use the code anyway.
Nerd: Derogatory term typically directed at anybody with a lower Slashdot ID than you.
of course everyone here thinks picking code out of the split is a good idea. but... let's consider the flip side for a moment:
why did the code base split in the first place? obviously, because a group of developers in the team felt they had a better vision or method or whatever than the team leads. a code split is only a last resort, so we can probably assume that the developers who went on to form the split put a lot of effort into trying to get their ideas into the original source tree and were unsuccessful.
so, now that the split team has got a project up and running and is writing new code that embodies their vision of the project, they find that the original team who probably rejected at least some of the split team's ideas before the split is now suitably impressed with the results to roll them into the original source tree.
the question the split team may be asking themselves right now is this: if our ideas and code are so hot, why didn't you pay attention to them originally? and, furthermore, if the original team is so impressed with the features of the split project, why don't they put their effort into working on the split instead of the first source tree?
not meant to be flamebait: just trying to consider the motivations and rationales of the split team since no member of that team was given the opportunity to present their opinions or views in the original post.
2 1337 4 u!
On a personal and social footing, however, if you've got an angry 'contributor' then you've got a problem on your hands. If it gets to the point where he's obfuscating his change logs, it's going to hurt his project and the bad blood can't do you any good.
I'm guessing that he's upset about something else to do with the split (i.e. he may feel seriously unacknowledged for the work that he put into the project pre-split or dissed as a side-effect or something like that), and seeing 'his' code being 'lifted' into your fork is just re-opening old wounds for him.
I think you're gonna have to do something to diagnose and heal that old wound, or the whole thing's just gonna end up an infected stinky mess.
Free Software: Like love, it grows best when given away.
I'd suggest replying to the guy with a limerick:
Do not look into laser with remaining eye.
If he doesn't like people poaching "his code", he shouldn't use a free license.
If he starts to obfuscate everything, then he'll likely end up killing his fork anyway.
I see a lot of posts here that are assuming that the question came up because the person who forked the code is griping. Though the parent posting here doesn't explicitly say that, it is the first moderated-into-default-visibility where that possibility is implied. Hence I have chosen it for my reply.
The original posting doesn't claim that there ever was any gripe. It is phrased as a simple question, by someone who is just concerned, himself, about possible ethical issues.
Maybe it DID come up because there was a gripe. But let's assume not unless/until the the article author or someone else in the know says otherwise.
Having said that, I'll now chime in on the original question.
A number of other posters have already pointed out that due to the open license (clearly implied by the circumstances) it's squeaky-clean legal to backport any good pieces. And both because that's the intent of open licenses and because the fork essentially lifted the whole project, it's also fair. I concur with both points.
Additionally, from a practical standpoint, backporting the good stuff from the fork to the main reduces the divergence (and reduces the total effort). This is good for both prongs: It makes it easier for someone familiar with one to work with, or work on, the other. And it simplifies matters if the two forks are ever to be remerged into a single project. These two argue for merging, not just where improvements or bug fixes are major, but even if the improvement is minor, cosmetic, or even when it makes an arbitrary choice among several roughly equal alternatives.
So feel free to merge whenever it makes any sense at all for your branch of the tree.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
I work for a primarily FLOSS company. We recently developed an application which we were pushing at trade shows all over Europe. During our travels, we met several other companies' suits who were developing similar or identical solutions. Even though some of these companies are direct competitors, we encouraged them to look at our code, see the solutions we had created and adopt some of our code. Result: Out of 22 companies we talked to 20 made their solutions OSS. We have now integrated some of their code into our own product just as they have used our code. Moral of the story: Sharing makes the community stronger, eliminates much inefficiency and makes the software better! We survive separately BECAUSE we have different ideas of how features should be implemented.
--cros13