Abstract Programming and GPL Enforcement
Headius writes "Through events of the past couple months, I've ended up as the lead developer for the Litestep
project, a several-year-old effort to write a GPL'ed shell replacement for Win32 platforms, for use in place of the standard Explorer shell. Current efforts involve a large rewrite of existing code and a complete refactoring of core services. Part of this new architecture is the abstracting of services to simple interfaces. Unfortunately, several other developers have brought up concerns that the hard work they put into developing the implementations of these interfaces (which will not have any dependency on Litestep-specific code) will be silently stolen by other (closed-source) projects in the cutthroat shell replacement arena and elsewhere. Is there any real way to protect GPL'ed code that has no interdependencies and abstracts away all the implementation details (as good OO code should)? I'm not as concerned about license violations as some, but how do I put the other devs' minds at ease? "
More along those ways here.
Thank you.
Taiwan has very weak IP control as well, at least as far as copyright (I'm not sure about patents), and we produce most of the PC hardware used in the world. I hardly think you argument holds up.
:)
Also, there are a huge number of other factors that you'd need to consider as well. I don't know about GB/US vs France/Germany in the 1700s, But I think its pretty stupid to blame IP laws for the difference between N.Koria/S.Koria and E.German/W.Germany. Ever hear of totalitarian Communism? It hasn't been very good for any kind of economic advancement. It's the same with India and the PRC. I suspect that as the PRC moves more to a free market (with more special economic arias) their economic level will increase, regardless of what IP laws they chose to enforce.
Finally, what your talking about has more to do with copyrights then with patents. When you design some new technology, you don't copyright it, you patent it. Copyrights have nothing to do with technological advance in a non-information economy. As we move into a more digital world (where software is the technology), the situation may change. We'll have to see... Of course by then Open Source may have taken over, and the issue will be mute
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
Yeah and when Win2K's TCP stack suddenly sucks, its support for SMP is suddenly kludgey and its default filesystem is like something out of the early 70s.
In any case, the original poster is a moron, equating monetary wealth with usefulness to society.
Their implementation doesn't rely on Litestep-specific code, so the implementation + interface could be lifted out and used by closed-source projects.
The interface certainly could be implemented in a proprietary way but if they put the implementation under the GPL/LPGL then those that want to implement the interface have to start to code the implementation from scratch, without code from the GPL'd implementation.
The interface itself remain copyable fortunately, otherwise their would be no Linux/*BSD/... and not even MS-DOS would have been legal (being a copy of CPM).
"The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
Well, I think there's a fundamental difference between math PhD's and the general populous. IIRC, there are only a few hundred math majors Created in the US each year. The majority of the ethnic Americans actually end up working for the NSA, witch many of us would consider the epitome of proprietary knowledge (about half the math majors are not native born).
Now, contrast this with something like computer sciences or Computer engineering. You have tens, if not hundreds of thousands of people entering this field every year, on many different levels, from your lowly MSCE tech, to your high paid distinguished engineer SUN. Anyone who works an MS for more then five years will be a millionaire.
Certainly, just as in mathematics, there will be people who love CS, and CE just as much as the math people love Math. And those people will become professors, just as those people with Math PhDs do. At the same time however, those people aren't going to be the ones coding the new backend for some server app, or the Document View for Word For Windows 2000. Yes, mathematics advances, but it is a very 'closed' field, only with years of training and understanding can you even begin to understand how its advancing, unlike CS, biotech, or other types of Engineering.
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
People like you make me laugh. You say "karma whore" like it's supposed to be an insult, when 90% of the people who post to Slashdot probably don't care about their karma.
Like me. If I were concerned about karma, I'd be posting this under an account so I can get that happy glow when a moderator scores up my post (this is, of course, assuming that 1) I'm saying this only because I know it'll get moderated up, and b) I know this will get moderated up).
Just because you trolling assholes think you're "smarter" than us because you can post things that you know will cause people to spew coffee on their monitor and grab a keyboard doesn't mean it's true. I've seen trolltalk where you pat each other on the back for being obnoxious, talk about setting up accounts so you can waste modertor points moderating your troll friends and try to figure out how to get moderators to waste the most points on your posts. Lemme tell ya something; you're about as creative and funny as a phoned-in bomb threat or a pulled fire alarm.
Fine, Slashdot sucks. Fine, the discussion is all one-sided or politically correct or full of lAm3rz and not worth your time. Yet it's apparently worth wasting your time showing us what fools we are.
Here's the difference between you and I; I can move on after writing this. You're still going to be stuck here writing first posts and hot grits and Natalie Portman trolls, laughing at what idiots we are.
If any non-troll happens to be reading this, do yourself a favor; ignore the trolls, moderate them down if you want, but don't give them any more time than I've given them tonight. They do it for the attention, that's all; maybe their mommies should have held them more when they were kids.
RMS is an anus. If he wants to argue that runtime linking is equivilant to include a hunk of GPL into the proper of your program, then he must accept the principle re. commercial software. How many pieces of GNU software are or were substantially dependant on commercial APIs? So does that mean that all versions of GCC 1.4 or below and all versions of GCC derived from 1.4 are copyright Sun Microsystems and the Regents of the University of California? How about all GPL-ed code that interfaces to the X libraries? Is it now to be under the Open Group's copyright?
Did you actually read the origional post? This isn't about hiding the interface but about someone stealing this particular implementation of it.
Nobody said anything about keeping the interface proprietary and this isn't a FSF project.
At least a decade ago, I was given some statistics about China (that supposedly were from a very credible source, yadda yadda).
Among them was one about Refrigeration. That far from considering how many Chinese have telephones, televisions, and computers, we should consider how few of them even have refrigeration.
It's likely you've lived in a house with electricity and a refrigerator, and if you're REALLY old, that you had a man bring an ice cube to you on a wagon each day, o maybe you cannot relate to this. But if you can imagine what it must be like to have to get your meat and dairy products on a daily basis, and not have the ability to store food (no leftovers, no frozen pizza!), you probably aren't thinking about whether these people have computers or SDSL lines.
Many of them may not even have the certainty they they will have food from one day to the next.
-fb Everything not expressly forbidden is now mandatory.
"copying the code into another application would be sufficiently easier than..."
But that's not what he's worried about. The GPL already protects against that. He's worried (as far as I can tell) about someone using the interface to the source code.
A Government Is a Body of People, Usually Notably Ungoverned
Ok, nice having met you, don't let the door hit you on the way out.
If you don't care about something, don't read it, and definately don't post telling us you don't care. If you took the time to read it, to post that, you're just proving that you DO care.
Nope, ever heard of the LGPL??
That only works if all the linked in libraries are LGPL. And some GNU pronents (including RMS, IIRC) advocate using GPL for libraries too - just so that code linked with it turns into GPL code.
Of course, this can lead to interesting situations. Suppose I write some code C, under license L, with L != GPL. C needs a library L. I use a non-GPLed implementation of L. Now, I give you the code. Your system has a GPLed implementation of L. Now what?
-- Abigail
It runs on Linux, NT, and the Mac. Why create a new API when you can just use id's?
This is a re-hash of what others have said but:
Code theft happens in many ways. Outright theft, where the code is copied.
Reading the code of one, and re-implementing is another form of theft.
Taking the code, and doing variable replacements.
Is this theft:
two screens. One has what you are copying, the other where you are re-tying the code you are using for guidance.
At what level of theft would a judge agree with you that you have been violated?
In the end, it is far more productive for the coders to stop worring about code theft (because it WILL happen) and if others will make money off their code (Example: Linux) and worry more about doing the best they can with the code.
If it was said on slashdot, it MUST be true!
Didn't "The Saint" from Maximum PC magazine talk about this last year?
Bits in your binary will always be indentical. Like 0x85 will always be indentical to 0x85. On a somewhat large scale things will vary depending on what changes were made. Adding a single C statement to an inner loop can change the code for the rest of the function and will potentially cause a significant difference in the resulting binary image. Using different compilers will result in massive differences and using something as simple as a different optimization option can also result in a completely different object code.
Code auditing is typically done by hand by an expert witness that is paid under observation of the court. The binary almost never enters into the situation at all.
When Win2k starts working :)
Judge Pag, the Learned, Impartial, and Very Relaxed
I misunderstood. I should be moderated down for OT! :)
:) ) is a "thinner than real Operating System basic functionality 'shell'." I am less concerned about deskstop appearance.
:) I wonder if it is possible for small game app to be cross operating system by sitting on top a small lib like such. :) (instead of manually porting the small API to each platform every time).
I finally was able to get on the site. While it is cool what the project is.
What I am looking for (wishful thinking
I am more concerned or interested in some sort of global universal coding project in which a lowest common denominator set of basic Operating System functionality is supported.
This is *different* from Linux or FreeBSD or any other full blown Operating System in the sense that it is both smaller than an Operating System, and most likely sits on top of Operating System.
What I mean by is a small universal library, that gets accurate clock (system timer), that handles directory and data streaming services.
I appear to misunderstand both "shell" (a literal GUI shell, and not an "abstraction shell or layer"), and interface (visual interface, and not "interface into Operating System / hardware / functionality").
For everyone who shall respond to this as: just support "X" Operating System. That is the point.
Apologies for misunderstanding. And moderate me down darn it!
P.S. They are then in fact in the *same* market as Operating System / Linux. They shall have the same "technical support user-friendliness manpower" problem of competing against commercial houses as they do. Thus, some of my above advice shall be more difficult to apply.
It is *easy* to support code for engineers.
It is *too much work* to support "low literacy users" like how can I customize my widget to a different color?
P.P.S. Isn't it annoying or funny Operating System and Open Source have the same initials?
Yes, the GPL covers the expression only, not the ideas. This means a company can't snap up a GPLed program and close the source, but they can rewrite it, or mine it for ideas.
But, ideas aren't protected anyways (except by software patents, spit spit) so they could just disassembled your program to see how you did something anyways.
You can detect your code by looking at the binaries of their program. Usually the compiler used is easy to determine (usually it identifies itself) and if you compiled your code with that compiler and checked for similar strings, you'd be able to detect wholesale copying, especially since you'd probably have an idea of what part of their program was a copy.
The Sun-Blackdown debacle had nothing to do with the merits of the GPL. Blackdown was developing under the Sun Community Source License, which lies nowhere near the GPL and could be liberally translated as "please develop software for us, then let us sell it."
If Blackdown is a bit saddened and deceived by the whole affair, they could have seen it coming. Sun was entirely within its rights through the whole thing. It also took advantage of Blackdown, but the business world exists on principles of bad faith and this is no exception.
--
--
There is no premature anti-fascism. -Ernest Hemingway
there's a bit of the pot calling the kettle black here. don't forget that 99% of what got linux off the ground was copying the semi-standard interfaces that all the proprietary Unix's spent time and effort developing.
Most civil law suits and court cases come down to money.
Courtroom scene:
Plaintiff: they use my GPL code in their closed source code
Defendent: yes we do
Judge: Mr. Plaintiff, what is your lost revenue due to this theft?
Plaintiff: $0.00
Judge: I rule for the plaintiff in the amount of $0.00.
Shells in the Win32 sense replace user interface stuff in the windows GUI, like the start menu, taskbar, tray, and desktop.
Some places to look for info are:
http://www.chunkymunky.com
http://www.desktopian.org
http://floach.pimpin.net
He is refering to explorer shell replacements.
If you go to skinz.org I would say a third of the links down the right side are themes for alternate windowmanagers for windows. Litestep was one of the first and probably one of the most popular.
"Fighting the underpants gnomes since 1998!" "Bruce Schneier knows the state of schroedinger's cat"
[1] Does compiling proprietary code with gcc make it GPL? How do you know which libraries are okay to link in (if any)?
Nope, ever heard of the LGPL??
[2] Does including some GPL tool with your proprietary package put the *whole* package under GPL?
Nope, just make sure the tool is a seperate program and your distro method complies with the GPL.
[3] Does using GPLed software to write *nix drivers for some piece of hardware mean that the the hardware specs/design have to be made "open" now?
Nope, see [1]
--fatboy
It seems obvious to you that your "simple economics" is correct, equally obvious to others that it is directly opposed to common sense.
I make no judgement one way or the other.
But I do want to point out that your example is very weak.
Even to the extent that the lack of software development in China is related to the strength of "intellectual property" controls there, it can not be considered in isolation. Perhaps if they did not have all that marvelous software to import and copy from the USA, they would write their own, even in the absensce of IP enforcement.
Also; it is far from clear that the reason for Chinese people on average produce very little computer software isn't simply that they don't have the kind of pervasive computing infrastructure that we in North America enjoy. Something like >50% of American homes have at least one PC in them. I doubt China can make the same claim.
The analogy to barriers to entry in heavy industry also fails. "Historically", if what you suggest is true, there has been no barrier to plagiarism. What you describe is a barrier to production. Software is different in that it is being treated as a product, not a means of production.
That said, your point is right, you just draw the wrong conclusion: since Big Business uses them against Open Source, yes it is OK to use them back. That's not hypocritical, it's called tit-for-tat in game theory.
I am up in arms against Microsoft because they not only steal ideas, but because they are a monopolist, the worst anti-consumer thing one can be. Apple is an also-ran, but I'd be happy to use whatever means to bring them down too.
The Java API would present no problem (it is included with the compiler), but these APIs are not included, you need to get them separately, which means the exception for things included with the compiler doesn't apply. Personally, I think it wouldn't violate the GPL to distribute just the source, but IANAL and people disagree with me on this quite often .
Oh my god, you mean a person actually did something wrong, immoral, or illegal! Holy shit,I've never heard of such a thing. Why perhaps we could form an organization to stop such people, then maybe we could call them, and report this. Why I have a suggestion, lets use the number 911, thats an easy number to remember, now ..... what to call these enforcers that will make us all correctly following the law.... hummm ..... weird, that we would ever need such a strange organization. My goodness, what shenanigans these GPL types will get themselves and us into.
The current Slashdot moderation system is made by gay communists!
Bash is a program that lets you run other programs by typing their names. Explorer lets you run other programs by clicking with a mouse. Since they basically do the same thing (run programs), people refer to the Windows interface as a "shell" too. It took me a little effort to get my mind around this when I first heard it. :-)
Bash for Windows is cool, however.
except that the analogy between murderers and people who write and sell software is not very good in a strict sense.
by choosing GPL, you are saying that you don't want to play with for-profit software writers who would presumably like to use your code and sell their product to others. by the way, what exactly are they being dishonest about?
incidentally, there is no need to use quotes when describing GPL as less free than other licenses. to the extent that GPL differs from the public domain, it is less free than the public domain. no quotes. less free.
sh_
Interested in learning Chinese or Japanese? check out Chinese/Japanese-English Dictiona
When win2k starts working :) (dangit! had a dupe posted as a seperate string)
Judge Pag, the Learned, Impartial, and Very Relaxed
I know this particular paragraph refers to your own work, but in the context of your previous paragraph you do realize that bit BSD and the X Consortium released their code under licenses that specifically allowed this to happen? And they probably understand licensing issues as well as anybody at the FSF. So it's probably safe to assume that the sentiment expressed (that of some schmuck making money off your work is a sucky thing) is probably not one shared by the people in your examples.
I think the rule was originally designed to prevent people from making proprietary 'add-ons' to open source software. If someone were to make a proprietary front-end to some OSS, there would be grounds for suit based on the GPL. However, if making an OSS front end for proprietary code goes against the GPL, who would sue you? Certainly not the makers of the proprietary software (unless they have restrictions on frontends as well). Obviously, you wouldn't be able to sue the makers of the proprietary software for the link. I don't think you would sue yourself, so that leaves... RMS? What grounds could he possibly have?
So, making your little thing wouldn't piss anyone off enough to sue, and they wouldn't have any grounds if they did.
Did you write your mail client? If you really felt the GPL wouldn't let you do it, you could have gone with the LGPL, or something similar
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
The classical solution would be to watermark the code. Now I really don't know if any techniques are known for watermarking source code in a way that the watermark will still appear in the compiled code. (Watermarking compiled code is a now pretty well established technique.) Especially if the source is to be free (as in speech).
I can suggest a solution that uses obfuscation techniques, but that isn't too intrusive either (in that it doesn't break the modularity of the code too much). The idea is this: somewhere in the code you define a const char copyright = "Copyright (C) 2000- by Me and co". Now you calculate the md5 fingerprint of this string, as well as this string with a few simple strings appended. This will give a few dozen bytes of essentially random data, which can then be combined in various ways (added, XORed, and so on) to give many different constants. Now, you take a hundred places in the code where you have used an absolute constant (like ``42'' - or even ``1'' or ``2'': these happen often enough), and you replace this constant by a computation based on the md5 sums which will yield that constant. Use a different one each time. That takes some work, and it is a disagreeable form of obfuscation (I surely don't like it), but it probably would work. To reuse the code, you either need to include the copyright string (or at least store it in some form so that it will appear in memory at some point, giving a proof of theft), or you need to go through each and every place where a constant has been obfuscated, calculate the md5 strings, and replace by the constant (that is doable, but it requires a lot of effort). So in effect you have a kind of watermark.
I restate that I don't like this idea at all. But that's the best I can think of, to prevent theft of an open source code.
How about educating people so that they don't make scratch apps, so that they just keep the GPL?
Then the bugs will get fixed and be visiable.
Much better then the other two.
If that were true, it would be the end of GPLed software on any OS except Linux. Would they really be that dumb?
RMS once argued that you could not make GPL plugins for Netscape and Netscape is not GPL. I think it would apply the other way to - as you plugin links to a GPL (ie not LGPL) program, your plugin must also be GPL. Of course I guess plugins don't actually have to communicate by linkage - I'm not sure how litestep plugins work...
--
enterfornone - logging in for a change
This is most likely not true, no matter what RMS said.
It's like writing a macro program, to automate system usage, and having the author of a program write to you demanding that you pay him royalties to have your program mimick keyboard/mouse events in his application.
If you write an application that depends on a GPLed program, and won't run with a replacement, then it's likely going to infringe. But if you write a program, like a compiler front-end, and it simply has the option to use a GPLed compiler, among others, then it doesn't infringe.
Similarly, if you wrote a WM replacement for win95 and it has the ability to use GPLed components for Litestep, without depending on those, and without using GPLed Litestep code in doing so, it wouldn't infringe on the GPL.
A user of a program can only infringe on the GPL by distributing a binary without source, or by using GPLed code and not following the license. Anything else they do is kosher. If I wanted to download GCC and write extensions to it, or use it in a non-GPLed wrapper, this would be fine, regardless of how I used it. Only if I released this would it change.
Thus, if you release a program that *can* use GPLed components, you're not responsible for the actions of a user, if they choose to install those GPLed components, or make the whole package dependant on them in some way.
This assumes that your package has other concievable uses, than JUST a wrapper for the GPLed code.
An example would be photoshop filters. Photoshop could write the filter interface such that it could read call binary filters from other programs, and if one of those filters was GPLed, photoshop wouldn't be in violation. But, if photoshop was written such that it required the graphics core from GIMP to even work, then it would be a violation.
Windows has contained OS code from the very beginning; try DOS. Ever wondered why such a primitive OS like DOS had multitasking by way of TSRs? I bet that code was ripped right out of (fill in any OS that Microsoft could bribe, er, steal the code from here). Win 3.x's WM code? Straight from _____. So why was it always so unstable, bad, etc.?
Because the lame "programmers" at MS guessed on how to interface that code with the little bits and pieces that they wrote. Maybe a pointer type isn't the same but is pretty close. Or maybe one function assumed that some other was called first, but the MS developers didn't make sure of that. In such a big piece of ____ like Windows, it's pretty hard not to _____ up.
So why do so many people use Windows, and so many programs are writted for it? Because underneath the cobwebs straining to hold it all together is the rock-solid code right from the core of ____.
Ken
btw, this is posted from mozilla M12. I now know where MS got its code for IE5 from... Just kidding.
I'm pretty sure you can get the source for alladin ghostscript - it's just not Open Source - a bit like MySQL or QT1.
So it would still be possible to steal code...
--
enterfornone - logging in for a change
Dude,
what the hell are you talking about?!
Could you please explain exactly what the problem was with GPL'ing code that used a few Sun Java libraries? I've seen GPL'd java programs out there, so this is very confusing.
I won't copy the email from RMS I got w/o his permission, but I wasn't trying to write one from scratch. I wanted to use the JavaBeans activation framework (JAF) and the JavaMail 1.1 API. These only come as .jar files and you have to pay to get the source to them, therefore not free.
RMS was quite clear that it would violate the GPL to link, even dynamically, with non-free libraries.
On a slightly different note, let's say you have a proprietary library, but with an open API spec. Can you right a GPL'd front-end that uses that proprietary library? Could you distribute the whole thing, front end GPL'd, backend binary only?
This is the same thing as above. The JavaMail API is "open" in that you can download it and write programs against it (we did it here at my job). But the implementation of the API, the source code for it, is licensed only by money.
The frontend I wanted to write would have used the JavaMail IMAP implementation through the JavaMail API. This is not kosher. Again, what NeXT tried to do with obj-c is similar to this: a proprietary, .o-file-only frontend to the GPL'd version of gcc. This did not fly either.
Hope that answers your questions. Again, though, IANAL...
"Honey, it's not working out; I think we should make our relationship open-source."
Trolls are fine as long as they're at least enjoyable reading.
Recent: I wanted to use a few Sun Java libraries in writing a GPL'd frontend for an IMAP client. RMS told me this was not allowed -- even dynamic linking is covered by the GPL.
If this is really true, then GPL really is one crappy, worthless piece of a license. I guess it's time to switch to something that is REALLY open, like BSD.
GPL == Open Source? Bah, what a joke!
Try floach.pimpin.net, under the "Shells" category.
Warning: I've been reading the injunction against 2600, so I'm in sort of a legal mood, but IANAL. So, some interesting thoughts:
Could the GPL be used as a legal lever to open up all source code? Probably not, since I would think that you would have to show "probable cause" to obtain a court order to examine the offending code. What sort of evidence would constitute that "probable cause"?
Any software company would clearly be in violation of the GPL if they re-licensed part or all of a GPL'd piece of software. How does one define "part" of a software program? Is there a certain level of granularity where code becomes generic? I mean, you can't copyright the if-then-else format -- or can you?
Isn't one of the points of the open source movement to improve coding techniques and code quality? Following that line of thought, wouldn't one be at least a little happy if Microsoft (for example, I've nothing against Microsoft) included some code in their product that was known and solid? How far are we willing to go with subverting proprietary code in order to further the open source movement? I mean, by the theories we all hold dear, eventually the proprietary code would fall behind in development, and Microsoft would be forced to update, again using the open source software. As new functionality is added, it would be easier for Microsoft to just use the related open source programs rather than write their own, thus furthering the quality and "known" aspect of their products, probably to the point where most of their product was taken from open sources. Now, that would be in direct conflict with the GPL (assuming Microsoft continued to sell their products under a restrictive license) but how "bad" would that actually be for developers and the world as a whole?
Aetius
As always, flaming, diatribing, thoughtful commentary, and logical destruction of my position is welcome.
This is a different issue, though. He's saying that the interface elements are GPL'ed and he's worried about some company "acquiring" the GPL'ed code and using it for their own needs without giving any recognition to those who originally developed it. Linux may have effectively copied the UI of Unix, but there was (AFAIK) no code stealing involved. If there was, you'd know it, since the source is open. In this case, if a company takes the GPL'ed elements and packages them as their own, who is to really know without the source being open? Sure, there may be suspicions, but unless a court case is brought against the company, I can't see them showing you the source code to prove that it is/isn't stolen.
-mike kania
Get a clue! The JDK that Blackdown is working on is NOT licensed under GPL. It is licensed under Sun's license which basically means Sun can do anything it wants.
The rest of your argument is similarly bogus.
___
___
If you think big enough, you'll never have to do it.
I don't think he's concerned about other people writing modules for litestep. It's the people who write (GPL'd) modules for litestep who are concerned that their code will be apropriated for use in a non-GPL shell replacement. Evidently the problem is made worse than usual because the modules have a very general interface and could (presumably) trivialy be integrated into another shell replacement in a non-GPL way.
Anyway, since I'm posting anyway, I'll put in my $.02. Knowing that someone else has stolen your GPL code could be very difficult. If you know, though, you can take legal action. One option would be to sign the copyright over to the FSF, in which case they will take responsibility for bringing violators to court.
There are closed source shell replacements, which I am assuming is the thing he worried about. I think it is called Icesphere or something...
I use Litestep. I lose some IE tricks, but I can live with that, since I use Netscape/Mozilla mostly. And this doesn't have a Start button. That makes me more happy than any other part.
I honestly think people wouldn't mess with the code, and he only has to look to the previous occurence where they thought someone was selling it without the source code.
Anonymous to test.
It doesn't matter if your code is under the GPL or under the MS EULA, the problem of detecting whether someone has taken your code is the same. If they swipe your code, parts of the resulting binary might be bit for bit identical. Greater similarity could probably be found in the output of a disassembler. Talk to a lawyer if you find this.
If the thief is a large software company, the odds of someone revealing the theft are probably quite high due to the large number of people who will look at the code. In the world of windows shell replacements, it's a lot harder since the teams are small and the software is (lets be honest here) extremely trivial. (not a flame, I've used litestep and it looked cool and all, but it didn't have 1/1000th the impact on my productivity that the cygnus win32 port of bash did.)
--Shoeboy
It's pretty obvious why we don't see a lot of software coming out of China: the people are poor (and can't often afford computers) and the government wants to discourage independent sources of information such as the Internet. Piracy has nothing to do with it.
This person seems like he didn't even read the story, or isn't familiar with the GPL, or something. This is like saying, if Microsoft absolutely, positively does _NOT_ want someone (eg someone who hasn't paid) using MS Windows, don't distribute any copy to anyone, regardless of whether it's one of the people you _DO_ want using it. It's not far from here we can conclude that if you don't want anyone stealing from you, what are you doing owning property in the first place? If you don't want people to kill you, kill yourself first!
People who GPL code don't want proprietary software using it; that's why they GPL it That, in fact, is the entire goal of the GPL. I don't know if perhaps this post was a veiled attempt at BSD-license propaganda, but I suspect the author is just clueless. Meta-moderators, take aim and fire.
While GPL code can be, and possibly is frequently, stolen from smaller firms quite easily, Microsoft (or Sun, or any other giant firm big enough to have lawyers) would never DREAM of it (blackdown had NOTHING to do with the GPL). If they (any big firm) were suspect, they run the risk of the court demanding code be presented before the judge. Trade secret can't help them either - the code would stay off the record, the court would appoint an expert who would sign an NDA, judges eyes only, etc. So the courts would demand the code, and if the judge decided that it should go to trial, it would, and MS(/Sun/etc) would loose far more in public image than the FSF could hope to take in damages.
And what if Microsoft was unable to present code required to compile the suspected software? Wouldn't exactly look good for them, in the court's eyes and especially the public's. Besides, we already know that MS employees aren't even allowed to LOOK at copylefted code.
(There's still a question of how to get the court to consider some code suspect, and I suppose that would be impossible for a lot of things that aren't immediately visible. Then again, I doubt MS is going to run the risk of some bug in the linux IP stack affecting Windows. Besides, there's plenty BSD code they can use all they want.)
..he doesn't understand the problem. The authors of these mods want to GPL their code, and they don't want propriety software makers to rip off the GPL code. If the code were LGPL, or anything else for that matter, the same problem would be. This guy seems to think [something else]. (I dunno if this sounds like a troll, but a 5 post that misunderstands the whole issue is just bad moderating, and should be fixed.)
..because nobody was talking about closing an interface. The interface is already open, and even further, the code behind the interface is GPL. Nothing could be more open. The problem is that software using the interface, which is also GPL, might be stolen and used in proprietary software, illegally.
This person does not understand the issue, and should not have been moderated up. I don't understand what's so hard to understand here. I guess people don't read the story before they post, anymore. Maybe they never did.
[In case you're referring to my own converting-code-to-GPL, that was actually done by the original copyright holder at the time that I was given the code...but I'm just mentioning this for future readers as you probably did not realize that someone in this thread was involved in a similar situation]
..nobody has ever gotten away with any crime. Sorry, this is wrong. Kids may not be willing to work hard to cheat for profit, but plenty of criminals are. Why? Not because they don't have to work, but because they get far greater returns for less or the same amount of work.
*FORCE* you to release your code.
What it does say is that if you *DO* want to release your code that includes GPL
code, that you MUST abide by the GPL. IF you cannot or will not, you simply cannot
release it. IF you had already released it, and realize that it wasn't legal, you must
stop releasing it. Period.
Nothing will put you in a position of forcing you to release your code.
Just to make sure this perfectly clear, what you say is correct, as long as your definition of "release" includes binary distributions . Simply put, if you use GPL code, if you would like to share the fruits of your labor with the world, in an open source way. The GPL has no provisions for binary only releases.
--
--
"In Cyberspace, no one can hear you be sarcastic"
Is there a really good discussion thread about Java and GPL anywhere ?
I think you could quite successfully argue that the dynamic linking facilities of Java allow you to come under the aggregation clause.
I had a look in gnu.misc.discuss and although the topic's raised it's head a few times no real discussion has developed. I know what RMS's opinion is but he seems reluctant to justify it when invited perhaps he realises Java has driven a hole through GPL.
Last post on this, I promise :)
If you write an application that depends on a GPLed program, and won't run with a replacement, then it's likely going to infringe. But if you write a program, like a compiler front-end, and it simply has the option to use a GPLed compiler, among others, then it doesn't infringe.
This was the case with NeXT -- their front end was specifically designed to use gcc -- they tried to get around the GPL by saying that it was only a frontend and not a complete program.
A user of a program can only infringe on the GPL by distributing a binary without source, or by using GPLed code and not following the license. Anything else they do is kosher. If I wanted to download GCC and write extensions to it, or use it in a non-GPLed wrapper, this would be fine, regardless of how I used it. Only if I released this would it change.
This is correct. It may not have been clear that I intended to release my java stuff under the GPL so y'all could derive something useful from it, if anything useful was there. :) :)
So in my case -- using the Sun libs, writing a frontend, and releasing the *frontend* under the GPL was bad, but if I wanted to do it on my own computer and not give it to anyone, of course no one's gonna care. I just wanted to write a decent java email client.
"Honey, it's not working out; I think we should make our relationship open-source."
First off, this is the first time I've ever jumped into a GPL debate, so cut me some slack if I'm wrong about things.
OK, these are indeed Litestep *modules* are they not? I'm of the opinion that a closed source shell could include in its distribution one of these modules (as long as the interface that the module hooked to was developed independently, and could be put under a commercial license) As long as the author of the non-gpl application acknowledged the modules GPL status and distributed them with source, what would be wrong with the main appilcation even depending on these modules?
My reasoning comes from looking at something like perl. There are plenty of people out there selling perl programs under a commercial license. Many of these are not open source and are run through a code-scrambler and then sort of "linked into" a perl binary so they are standalone. Many of these programs use GPL'd perl modules and interfaces to many other closed and open-source applications. E.g. Tk, ImageMagick, GD on the free software side and things like Win32::GUI on the commercial side. As I understand it, the perl application can be licensed under any terms as long as accompanying software is acknowledged as being developed independently.
I'm talking about all these "GPL sucks, good thing it's useless" posts. If you don't like it, then don't read the articles.
Slashdot has the article classification system (those little icons) specifically to save you the time of having to tell us that you hate the GPL, etc.
If you're just going to come in and bitch about the fact that the article exists, then stay out.
No! Look:
Emphasis is mine. It clearly says that the concerns are about the implementations of these interfaces, and not about the interfaces themselves. So many people are having this kneejerk reaction without even reading clearly. The problem is interesting, and genuine.
Recent: I wanted to use a few Sun Java libraries in writing a GPL'd frontend for an IMAP client. RMS told me this was not allowed -- even
dynamic linking is covered by the GPL.
RMS wishes that he'd worded it that way, but he didn't, and you shouldn't let him bludgeon you into not writing good software just because the particular tools you want aren't available under his license.
Presumably you know this, but just in case others
/proc/kcore | grep "Adolph Hitler" /proc/kcore | grep "totally random string" /proc/kcore | grep "I must be doing something wrong, but what???"
get confused, try these sorts of examples and
imagine what must be going on:
strings
strings
strings
This is hypocritical. Interfaces should be open -- to open source developers, to closed source developers, to everyone. If someone -- anyone -- wants to use them, he or she should be able to do so.
Fortunately, interfaces -- unlike code -- are not subject to copyright. The GPL cannot and will not protect them any more than the Microsoft EULA.
What's scarier, though, is the extremism and hypocrisy we see here. Followers of Stallman -- whose agenda already includes driving commercial software companies out of business via anti-competitive practices -- appear to want to adoptyet another leaf from Microsoft's playbook in their attempt to destroy commercial programmers' livelihoods and businesses. Why is it more ethical for the FSF to keep its interfaces proprietary or to run worthy programmers out of business than it is for Microsoft to do this? The answer: It's not. As a project leader, the author of the message which started this discussion should maintain high ethical standards and refuse to yield to such an agenda.
--Brett
> Your system has a GPLed implementation of L. Now what?
Easy. I can compile your C and link it with my GPL library. But I can not distribute the binary. If I would be distributing it, I would need to put it under GPL, which I can not because license L prohibits this.
But I guess when I use dynamic linking, I may be able to distribute it (your code) under L by saying that I have linked it with the non-GPL library - there is no difference in the binary exec anyway!
This is similar problem to non-GPL kernel modules and is a grey area.
Historically, doing a replacement Windows shell has been a misguided last-ditch effort of utility companies whose products Microsoft has copied and given away for free. It's not a hot market at all. Companies find little interest from customers. (How many Windows machines do you see running replacement shells? Virtually none.) And Microsoft does very well at making sure that none of them are fully compatible.
In short, the "excuse" which these people are making for GPLing the code is bogus. It's a bad idea to GPL code to begin with, since the GPL is the embodiment of a spiteful anti-business agenda. But it's worse still to attempt to restrict an interface! Do the project under the MIT X license, and open both the code and the interface to the world -- open source, closed source, anyone. It works for X, and it's the only thing that makes sense for an open source GUI.
--Brett Glass
Some of the people responding to this thread have a clue as to what the real discussion is: protection of intellectual property. It's really not about whether the GNU GPL protects you sufficiently or not, it's about how we view the idea of intellectual property rights.
In today's world of cut-throat business policies, like those exibited by Microsoft, Sun, etc, we find ourselves at the mercy of large corporations and how they dictate the growing technological market. To say that a copyright license will protect your intellectual property from theft is simply laughable. You only need to go so far as the Court headlines about Microsoft stealing Java to see my point. The Sun licensing scheme didn't prevent Microsoft from muscling it's way into the programming lanaguage and transmutating it into a Borg-centric tool.
Face it. In an Open Source community, or any community where you are allowed to read the source code of the product, you are never protected from plagerism. Any programmer who reads your code is influenced by it. "Hey, that's pretty slick." Or, "Why the heck did she do it THAT way?!" You remember what you looked at, use it, or discard it. It's all about interface and learning.
But that's not what we're talking about, right? We're trying to protect our hard-earned, sweat-driven software that consumed hours of our time to write, all in exchange for "free beer". You released it Open Source (BSD style, GNU, Artistic License, whatever) so that others could view your handiwork and say words like, "Awesome!", "Cool!", and "ooooooooo."
What you don't want is some corporate suit to look at it and say, "mmmmmmmoneyyyyyy." Or do you? Mr. Corporate Suit looks at the code, finds the list of individuals who wrote it, and thinks to himself, "These kids know what they're doing. We've got a project coming up that could use their skill..." Now he's seeing money in YOU, the developer -- that is if he's pure in heart and morals, which we all know is a recessive genetic trait not often expressed in the "suits" of the world.
So, how should we look at this? Openly. Recognize that there is always potential for criminal behavior in any community you participate in. Realize that your code is NOT safe from that threat and decide if you want to release it or not. Paranoid schizos need not apply for an Open Source developer's position... Also realize that by releasing your code Open Source, you give EVERYONE the ability to use, change, and improve the software, as well as police others.
As long as there is commercialism in the software industry, there will be an Open Source movement (OSM). You can either be part of it, or just take advantage of it. Just don't let your fear of stolen Intellectual property be a barrier to you, stopping you from contributing to the OSM. Instead, use the OSM as a shield against commercial monopolies in the software industry.
Think about it. What drives software prices down? 1) Better software 2) Equivalent software that is cheaper, i.e. competition 3) Lack of sales. 4) Extreme volume of sales. If you create a piece of software that rivals or surpasses that which is commercially available, you have done your part to drive down market prices and give people alternatives. Who cares if some company steals your code. They'll make a few bucks on it, but it'll still be your intellectual property, free for the world to use and continue to improve....Why pay for something when you can have it for free?...
assert(expired(knowledge));
Only, I don't recall the code given to blackdown everbeing GPLed. I believe the terms of the license said it could be used by Sun @ any time. And they took it.
On a more general note, I can't really think of any way to tell (absolutely) if your code has been stolen, provided its been embedded deeply enough. With something like an IP stack, you might be able to tell because an implementation responds precisely the same way as your piece of code, and may or may not have the same control structures. One thing I found pretty funny was looking in C:\WINNT\SYSTEM32\drivers\etc to find a hosts, and services file, for the first time and wondering which *nix got its code into NT.
So in the end you either have to have someone with the source, who knows its been grabbed, or you have to test the offending software looking for the same performance/functionality signature as your piece of software. Having the same flaws in the ip stack would be an example.
--locust
We could always resort to using geek unity in boycotting products that violate the GPL license.
If something is meant to be used as a component or library then it should probably be under LGPL rather than GPL. Particularly if that component or library is designed and intended for wide spread use and replacement of proprietary code doing a similar job.
Has primarily a systems/infrastructure hacker, I want my code to be used maximally, to be build upon, and improvements to its based to be shared. But it is not my mention to try to tell people how to license their own software that might call mine as a component.
The Java IMAP example is sort of strange. Who would use a component that they cannot use freely as a component?
GPL is not free. public domain is free. also, check out my
sh_
Interested in learning Chinese or Japanese? check out Chinese/Japanese-English Dictiona
"Shell" has a much different meaning here than it usually does in Unix. Litestep and its competitors (Geoshell, EVWM, Darkstep, etc.), as well as the Windows Explorer, are more like the "desktop shell" the the Enlightenment guys are talking about.So we're not dealing with CLI shells, but alternative GUIs for Win32 platforms, mostly inspired by different window managers for X. There's more information at floach.pimpin.net and Tin Toys.
(Disclaimer: IANAL, and I'm in the UK).
:-)) Whelan Associates vs. Jaslow Dential Laboratory Inc. (3rd circuit, 1986), and in the UK Ibcos Computers vs. Barclays Mercantile Highland Finance Ltd (1994).
I'm going to argue wrt UK law, but US law (at least in some circuits) is pretty similar, if a little more developed.
It is perfectly possible to protect interfaces (especially APIs) in the way you suggest, and I don't see why the GPL shouldn't allow you to enforce that protection, though it would probably be easier if there was an explicit notice about APIs and other interfaces being covered.
Relevant cases in the US include (he said, reading from his lecture notes
That said, actually claiming this protection is problematic: protectable expression is subject to a number of tests, and there are several ways in which the defence can argue that the expression they copied isn't protected (including functional expression in the US, but not in the UK), in addition to the inevitable problems involved in showing that copying took place.
Having said that, my advice (though IANAL, and this isn't legal advice of any kind, just my opinion) would be not to bother: relying on emerging concepts in IPR is a high-risk strategy to start with, you're unlikely to want to sue anyway, if you do the damages aren't likely to be high (the defence is likely to argue that since you gave your software away, you have incurred no loss by their action - it probably won't fly, but it might make the judge think), and it's bad manners for the OS movement as a whole to look at commercial interfaces (eg. to lex and yacc) and copy them, then sue the commercial world for copying our interfaces.
However, the biggest reason that you probably don't want to go for this sort of protection is fairly simple: if you protect your interfaces like this, you have to admit that other people can too: a decision in your favour would set a precedent that things like the Win32 API can be protected (so all Win32 programs need to be licenced by Microsoft - there are defences to this which we won't get into, but it's probably going to be ugly even if they are made out). It would also mean that, for example, drop-in replacements for pretty much any library would need to be licensed, and that wouldn't be pretty at all - the GPL'd Qt clone and Lesstif would be two fairly obvious casualties.
In my view, this whole idea of non-literal copying applied to computer programs is a disaster and should be removed by legislation (the EU directive on the protection of computer programs starts to do this, but doesn't seem to go far enough). Encourage it, and one day (probably fairly soon), you'll be the one being sued for writing Hello, World.
the author doesn't even clearly understand the issue at hand...
Copyright pretty much protects the code itself, not the underlying idea behind it. It protects the expression -- you aren't violating copyright when you copy a plotline, after all, just when you copy the expression of that plotline.
Thank goodness -- or else all sitcoms would be horribly mired in copyright law.
I thought part of the great goodness of open source is not needing to reinvent the wheel. We can see/use the code and get a tremendous leg up. Personally I don't care if the leg up is for a competitor that is closed source or not. I still don't want to see a thousand stupid rewrites of some piece of code.
I agree that a serious question about open source is what it will do for and against innovation and the impetus to innovate.
I understand that your opinion differs from mine, and I am not trying to sway you. I would like to make a couple of clarifying remarks.
I am a capitalist. I respect other people's intellectual property, and expect reciprocation. I have no quarrel with anyone selling software (with or without source) or putting his software into the public domain.
Second, I said "arguably." Perhaps comparing commercial SW vendors with murders was not appropriate, but the purpose of the GPL is only to prevent the explicit freedom of distribution (that is being on the receiving end of distribution) from being taken by another licensee (i.e. commercial software vendor.)
If you wrote a piece of software and put it in the public domain there is a very real possibility that it would be rendered obsolete by proprietary extensions/patches/modifications. This is viewed as more distasteful by people who prefer the GPL than restricting the freedom of licensees to make proprietary extensions/patches/modifications that are distributed in a binary only form.
This is, in my opinion, ARGUABLY more free, hence the quotes.
To summarize, the only freedom that a truly free person must give up is the freedom to deprive others of freedom.
-Peter
hey, let me say first that i think you are a very reasonable guy, and i like your way of arguing.
let me say, first, that i respect people's rights to GPL their code. (i don't actually think that was in question) furthermore, like open-source software. however, i don't think that GPL is necessary or even helpful for the adoption of open-source.
the fact is that people already recognize the value of open-source products and of open standards. hence people are today far less likely to be trapped by proprietary standards. what you are using AOL for today, you can use earthlink for tomorrow (not that you are using AOL).
so, if somebody tries to make a program whose value comes mostly from public domain software, and tries to distribute it as proprietary, people will laugh. otoh, if somebody makes a truly useful and original thing, and uses public domain code to do it, he deserves what he earns, and nobody's the poorer.
by contrast, if the original code was not public domain, but GPL, then it could never happen, and nobody's the richer. i am suprised that you don't find this distasteful.
sh_
Interested in learning Chinese or Japanese? check out Chinese/Japanese-English Dictiona
The desktop environment in Win32 is what's being refered to as a shell. Basically, LiteStep is a desktop environment. It replaces the silly little taskbar, the silly little desktop icons, and the silly little start button. It doesn't manage windows (small w). It manages tasks and the desktop. (Go read the revlevant link).. this is for those of you who were comparing it to bash. It's not a CLI. =)
I have no wife nor baby nor...
Ni shi nuren dui bu dui?
You would have a husband, and you would then be his wife.
Will it become a one-man-authored code module like all others
I realize this might seem pedantic(stupid), but you should really say one-woman-authored, or one-person-authored if you want to stay gender neutral. Even the slightest mistakes sound weird to a native English speaker.
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
... why do we see no innovation in Open Source software? Why is it simply a rehashing of what has been done before years after it is done elsewhere?
According to your hypothesis, GPL has infinite manpower. Why, then, do 99% of GPL projects have a single author and why are they only improved by that one author until they are abandoned? You see, the Linux OS and the few other large open source projects are an extreme oddity in the open source world. Yes, they stick out, as they should, they are quite good working copies of other peoples work done as hobbies in peoples spare time.
However, if you consider the tens of thousands of open source programs out there, you will soon see that GPL has severely limited manpower.
Will this change? No. Why? Because the majority of people that program nowadays do not do it as a hobby - they do it as a job. They are not 50 yr old ex-plumbers who picked up programming after a few college courses or college students, which is where the majority of open source software comes from. Either people who picked it up late in life or people just getting started early in life. The people learning programming right now are learning it as their trade skill and that's what they'll get a job doing. If anything, the open source pool of developers should shrink.
As well, the number of projects that are very good but have to be abandoned because someones wife has a baby or because their new "day job" (which they hate) takes too much time is a real shame, but a necessity.
If programming in your field (the open source one) is looked upon as simply a hobby, it will be treated as such.
Esperandi
/me pats you on the head
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
i don't think i heard anyone say in this thread that the GPL is useless. i believe the comment was that it is "complicated." also, i don't think anyone said that they don't care about the GPL, but rather that they find GPL'ed code to be less valuable than public domain code. i would characterize it as preference which is not apathy.
that having been said, you are certainly in the majority in this forum, especially since your post got mod'd up despite your having missed both of our points so well.
sh_
Interested in learning Chinese or Japanese? check out Chinese/Japanese-English Dictiona
Remember that that Linux API is entirely a copy of someone else's API. Either Unix or Plan 9
Linux does implement some API from Plan 9??? I didn't knew (well, I don't know that much about Plan either
"The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
That's not the way it works. If you include GPL'd code, the result cannot be legally distributed unless you GPL it, but the GPL never automagically applies to your code without your consent.
Practice random senselessness and act kind of beautiful.
i believe it's vms actually the more you delve into NT (particularly when enabling registry keys) the less it looks like windows, and the more it looks like a *nix. I don't believe that's a bad thing necessarily though.
Ugh. My brain's parser doesn't go in reverse, I had to get out and push...
Thanks
Bruce
Bruce Perens.
No one is forcing authors to put their code under the GPL. If they wish to put their code under a "crappy, worthless piece of a license" then that's their decision. Personally, I wouldn't want people using my open code in closed source software.
Catching perpetrators using your code in closed-source programs is, admittedly, difficult. As for enforcement, if you assign the copyright to the FSF they will (and have) take legal action *if* you find violators.
You have to assign the copyright to FSF for them to have legal standing in any infringement case.
-- Don't Tase me, bro!
It's my firm belief that the days of closed source software are numbered. The only real way to fix the closed-source pirates is to ensure that the open-source solution is better. Hopefully, eventually, gpl(ed) software will put nasty companies like M$ out of buisness. The only other way I can think of is to have a law firm try and go violators on behalf of the FSF. I think everyone would agree that this is mostly against the spirit of free software.
Court to violators bringing for responsibility take will they case which in, FSF the to over copyright the sign to be would option one. Action legal take can you though, know you if. Difficult very be could code GPL your stolen has else someone that knowing. $.02 my in put I'll, anyway posting I'm since, anyway.
I actually agree 100% with your post. Just didn't want to post a "Me too" post. I know (Score:-1 silly)
Never knock on Death's door:
More race stuff in one place,
than any one place on the net.
When was the last time you bought (or heard of) a piece of software developed in the PRC?
Since I live here in the States, there isn't much a possibility to see such software considering that it'll probably be in Chinese (which I know very little of). However, if you do a detailed search on the 'Net, you could find some floating around. To add to the argument about innovation, I recall a statement made by a Thomas Edison who said something along the lines of "There is no more inventions to be invented." While it is possible that some Chinese coder could write something unique for the programming world, it is more likely that his Western counterparts will release something similar before he does due to economic/computing advantages.
Plaintiff: they posted my closed-source code on their website!
Defendant: But it's legal, because I can prove that the closed-source program incorporates GPL code, and therefore is itself covered by GPL.
Judge: Plaintiff's code is ruled GPL and freely copyable. No damages.
Plaintiff: Damn, there goes my revenue. Next time I'll pay attention to the license.
Well you can elect to receive statuatory damages in the amount of anywhere $200 to $100,000 depending on willfulness of the offense, etc. See 17 USC 504. Also see the rest of 17 USC Chap 5. You can recover attorney's fees, get their stuff impounded, confiscated, subject to remedial modification and/or destroyed. And you can get injunctions filed against them. The proprietary camp uses all of this against us. We should go on the attack and use it against them. It would be great to see Open Source as the plaintiff once, instead of as a defendant. You can read the US CODE at http://www.law.cornell.edu/uscode/
Just because it CAN be done, doesn't mean it should!
This is something people keep saying. The GPL DOES NOT in ANY WAY *FORCE* you to release your code.
What it does say is that if you *DO* want to release your code that includes GPL code, that you MUST abide by the GPL. IF you cannot or will not, you simply cannot release it. IF you had already released it, and realize that it wasn't legal, you must stop releasing it. Period.
Nothing will put you in a position of forcing you to release your code.
This is the way of free software. Many windows programmers have not yet made the context switch from proprietary software [...]
Yeah, they still harbor crazy ideas like actually making a decent living by getting paid for their coding efforts. Vee must crush zee capitalist peegs!
Cheers,
ZicoKnows@hotmail.com
Perhaps Orville was trying to state that a company can steal someone's code and basically say that it is the company's product. This is what Sun did initially (before the Blackdown people and /. got a hold of them).
If GPL'd code is stolen with a little more cunning (ahem, M$) and not just blatantly ripped off, then there is no easy way to find out.
// Good Thing
:)
...
:) ) too quickly too often, too many new devices popping out too fast.
:)
:)
:) ).
/.'ed. I could not get not on the site to review the project's technicality and specification.
The brief description appears to be Very Good Thing. It shall increase the number of applications and games on more OS's.
If it becomes phenomenally successful, your participants would have been instrumental to some large positive contributions to application spread.
Would this "historical" motivation be suficient?
// GPL is the only way
The precise reasons why all the commercial cross-UI projects fail / fall short is
The only way such a layer can be constructed is through GPL.
There are too many platforms, each of those platforms upgrades (downgrades
Any commercial limited-man team (versus the infinite manpower of GPL code resource) shall eventually be outstripped.
GPL is the only chance for a successful implementation of this.
I myself am looking forward to it both as user, and as coder.
Don't even think of anyway to "protect" commercial interests. The moment any part of it becomes "closed" (even in the form of "cannot be modified until after inconvenient beureaucracy") would hamper or destroy this project.
You shall succeed where commercial apps precisely and only because of open-ness.
// Commericial : higher level applications
How do you protect yourself against higher level applications (like games, database applications) that co-opt your code *freely* to provide our commercial applications with your functionality?
1. Credit and Appreciation
We commerical users of GPL code shall do what we always do. Accord code authors and groups with proper credit. Demonstrate our appreciation with thanks.
2. Donation
We commercial users shall thank you, after your code module demonstrates sufficient robustness, by donating actual development budget, to further fund your work.
There is precedence for this, and I do not suspect we shall change.
I shall watch your project very closely, and if I do see many other commercial developers or peers making good use of it in the future, I shall personally goad such peers into donation.
The same speaks for me. If I personally find your code base highly helpful to my commercial projects, I shall contribute what I can, even non-financially, to ensure the continual growth and support of your group.
// Commerical : lower level implementations
How do you protect yourself from commercial developers of low level layers?
The answer is you don't have a thing to worry from them.
1. GPL
That you are GPL and open, and they are closed and have limited manpower, shall easily cause your product (if organized properly, and if sufficient good code is contributed) easily to become technically superior and robust.
As I exposit above, there is no way any commercial company can keep up with all the versions of all the platforms. It shall bankrupt their payroll before this happens.
You *are* at a technological advantage.
2. Free or Pay
What if they just *copy* your layer verbatim and sell it for a profit?
As my understanding, this is exactly what GPL or Free Software is about! People are free to make profit off the code.
How shall your coders protect yourself?
Easy.
Be available to offer good friendly support to "users" (most likely higher level developers like us).
As *competitor* with the above commercial plagiarizer, you are already at an advantage:
1. Your product is free. Theirs cost money.
You are winning on the cost / price competition.
2. Your product can potentially have better technical support than theirs, if you do it right.
You have the resource of the original coders of the modules to support application developers.
They merely have plagiarizers or interpretors. Or a phone technician who did not even work on the code.
You actually have a better chance of this *protection* than Linux.
The average user or target market of Linux are lower literacy non-coders who need a lot of hand-holding ( and all the users who don't belong this category are already using Debian and not Red Hat
The target market or user of your layer are high level application technology literate commerical coders like myself, who are "easier" to support.
The scope of what you need to answer or help, would not run as wide a gamut as an entire Operating System.
// Project Scope Suggestion
I have been thinking the same thing on a much smaller scale for a very small subset of OS services that are needed by most game applications.
If this project is early on, may I suggest a smaller scope of Operating System Services?
In fact I can submit you privately a short spec of a small handful of *essential* functionality.
Besides the obvious personal bias that I am a commerical game developer, there are some gains for you as well:
1. A completed small project is better than a non-completed larger entity.
If done modularly and correctly, such completed small project can easily be grown and extended to its final ambition.
You can get to your technical proof of concept quicker. Ensuring both momentum and success.
2. Test Bed
By building your first iteration to a set of common functions, that already have quite a few applications waiting to ride on top of them, you have the fastest means to a nice group of users.
This again helps to smooth out kinks, track down bugs, proof in the pudding, kind of feedback that is hard to get by writing a "lower layer" in a "user-less" vaccuum.
// Disclaimer
Your site had been
The above is only based on what I can guess from your summary. Apologies to any misunderstanding.
In fact, it's easy to tell whether Linux contains code written by Microsoft!! The "strings" command outputs "printable" strings it finds in a stream of (binary) data; "/proc/kcore" is, in most GNU/Linux systems, a file that represents the current state of the kernel's "core", or RAM; and "grep" outputs lines containing the string on the command line that it finds in its input.
If you try the command below under Linux, you are asking for a printout of all strings containing "Copyright 2000 Microsoft" found in the your computer's RAM -- which includes the Linux kernel itself!
And, on my computer, which runs Red Hat Linux 6.1, it prints out plenty of lines before I interrupt it with Control-C!! Try it!! Doesn't it show that Linux contains W2K code?
(Yes, this is an old trick. ;-)
Practice random senselessness and act kind of beautiful.
Defendant: But it's legal, because I can prove that the closed-source program incorporates GPL code, and therefore is itself covered by GPL.
Judge: Plaintiff's code is ruled GPL and freely copyable. No damages.
Plaintiff: Damn, there goes my revenue. Next time I'll pay attention to the license.
I don't think it works this way. The defendant could be found to be in violation of the copyright on the GPL code, but that doesn't automatically GPL all the code involved; it just means that whoever distributed the concoction is in violation of the GPL. This can be fixed by GPL'ing all the code involved, or by removing any GPL'ed code from the product, but the decision to GPL a piece of codes lies with the owner of the copyright on that code. (The defendant could still be liable for damages, even if they do straighten out.)
Of course the GPL is valid. It merely requires that all dependencies are standard shipping parts of the operating system, OR are GPL'd,
This was one of the original complaints about KDE. The KDE was claiming to use the GPL, yet QT was not GPLd and was NOT a standard component shipped with the operating system.
In any case, a shell for windows can and has been written and GPLd. Bash exists for windows, for example, as well as a host of other GNU software such as emacs (not microemacs which is NOT GPLd).
It does not state that code is GPL'ed automatically.. it states that IF the modified code is released, it must be released under the terms of the GPL.
It is still possible for someone to a) release the code and b) have a bad license on it, one that the GPL forbids. It is then up to the copyright holder(s) to deal with the legalities, as the user has violated their license agreement (the GPL).
Repeat.. this does NOT mean that code is automatically GPL'd because it includes GPL. It just means that it can only be legally distributed under the terms of the GPL.
I am going to get sooo swatted for this... >;)
How do you know she's interested in marrying a male? If she married a female would her spouse still be her husband?
-Vel
But it doesn't run on FreeBSD or VMS! :)
:)
... that you help to code a small part.
:) ) this post here, before posting your technically illiterate response.
:)
J/king aside. That is my point with GOSIX. You appear to be completely unable to grasp the concept proposed.
The *problem* with most engines, commercial and open source, in terms of operating system support, is that it is a priori.
You must take the lump sum of the engine (i.e., Quake, that would be the static non-deformable BSP data structure?) when all you want is the lowest level common denominator functionality.
To most commercial games, engines like Quake, to even Unreal Tournament or Quake 3 Arean, is about 70% to 90% useless, or non-reusable, for me (or other commercial developers).
As coders, id have been relatively conscientious of modular coding practices.
I am advocating taking the next step up.
I am advocating first developing, then evangelizing, then distributing, the idea of most future 3D engines (or wrappers) to build on top, or next top, a simple cross-OS GOSIX low level operating system.
You may mind if your latest game doesn't have bump-mapping, or self-shadowing terrain (that for example is not in Quake).
You probably won't mind if your latest game on Wintel is still using _rdtsc to doing function timing. That functionality is supported (by a different command) on Motorola chipsets.
I am talking encapsulating the low level and less performance dependent Operating System functionality that is used by almost all games and engines, and yet is continually re-written, re-ported, re-upgraded (redudantly) on very version of every engine and game from every company and every developer.
And then I am talking about this layer being truly free and open in every sense.
Then instead of waiting for your developer or company to *port* your favorite game to your smaller (and I am talking about smaller than BeOS) platform, you can merely upload and conribute GOSIX implementation code.
And Voila, all engines and games that abide by GOSIX will run on your tiny platform
Any truly technically literate caveats, critiques, contributions, ideas, suggestions to GOSIX are deeply appreciated.
Any illiterate "people who don't understand the concept" posters, *PLEASE* *FIRST* re-read and re-read and re-read and re-read (and re-read again please
P.S. Apologies to going "medievally anal" on your reponse, AC.
I empathize it is very easy to misunderstand technical context (as I did on the first post, mis-grasping both "interface" and "layer" of the abstract summary, until I was able to visit the site and read the project spec).
As an advice (and one I am teachng myself to practice), please read very carefully before posting your non-sequitor response?
I do look forward to your "more well-thought-out" discussion and critcism to the idea. Especially any infeasibility issues.
P.P.S. "Prior Art"
In terms of "prior art", I would say Quake engine is a poor example.
The best example of "prior art" for GOSIX so far (if you can grasp the concept) is Mr. (Dr.?) Jay Lepreau's excellent OSKit work.
http://www.cs.utah.edu/flux/oskit/
I respond to your post, only to give an excuse to link to Lepreau's OSKit html!
The above is a lot closer to prior art than your Quake source example.
...will be Gosix's albatross.
Fortunantely, RMS is full of beans on that one. The "viral" nature of the GPL relies on how a court might possibly interpret "derived work", and I can't imagine any court interpreting it the way he does. None of this has been litigated properly, and for all anyone knows the whole idea might be laughed out of court (though actually I suspect much of it will hold up, because things like shrink-wrap licenses have held up).
--Lee Daniel Crocker : http://www.etceterology.com My life is in the public domain.
1. Thank you.
2. What I am looking for is even smaller than Posix. There really are only a small handful of Operating System functionality necessary for a game app.
3. POSIX API is relatively well-documented, and properly supported on many Unix flavors. Implementationally, it shouldn't be that hard to do an Open Source GPL small project of a POSIX Windows 98 / 2000 / NT wrapper.
Legally, are you aware of anything Microsoft will be offended by if one were to code a POSIX wrapper on top of their Operating System?
Even Wintel simple functionality does not change that much day to day.
It would still be hard to do full POSIX, but for the parts of POSIX that I need, I don't see how hard it is to:
1. first code it
2. that code remains relatively no/low maintenance
Thank you for any legal and technical caveats that you know of.
An interesting post, but it is not true that people will always choose the free product over the expensive product. Many electronics goods (CD players, for example) are perceived to be better if they are priced above $1000, than if the same product were priced below $500. And any electronic good priced below $100 is generally perceived to be inferior.
The problem for Open Source is this: the free product that human nature would regard as inferior (as it is not hoarded or hard to get and thus expensive) is actually superior in quality.
Sadly, this does not apply to documentation. One of the areas of software development that is indirectly subsidized by excessive pricing is documentation - for a software product to be perceived to be superior, it must both be priced excessively (e.g. Oracle) and it must have high-quality documentation. If it has very bad documentation (e.g. most Open Source software), it is perceived as inferior.
One of my favorite utilities back in the old Apple II+ days was: free, no documentation, but the best thing to get the job done. Commercial competitors could sell their less well designed competing software utility for hundreds of dollars, with nice documentation, and get away with it. If my utility had just had documentation, it might have survived; it never did, so people kept shoving money at the inferior competitors.
Microsoft understands these truths. We need to remember the following:
If you are producing Open Source software and wish to be perceived as producing quality software, you must produce quality documentation.
Will in Seattle
If you click on the (#163) next to his post, you'll find that it hasn't been moderated at all. The above poster appears to be a karma whore who is (IMO) wrongly using the +1 bonus he's worked so hard to build to make it appear as if his flames are somehow being favored by the moderators above your posts. Just take heart, check the little box that says Anonymously and shout KARMA WHORE a few times. You'll feel better.
It may be fun to design and implement GOSIX on most Operating Systems. (Game Operating System!)
A basic OS functionality (beside file and streaming IO, also accurate timers, process control (spawn, kill), lowest level packet / communication, etc.)
Once it is first written, first spec-ed, low-level OS code implemented (on top of operating systems), then any game written to GOSIX would run on all the OS supported by GOSIX.
Then the whole idea of "develop more games on Linux", "port games to FreeBSD", would be moot.
This is silly as the general grounds are just about useless. Decompiled code of any reasonable large app will look like garbage, especially if it's wintel based. It wouldn't be of use to anybody.
Something is lost.
It is true that the GPL is not completely free. Authors (who continue to hold the copyright to there code
are making a conscious trade off when choosing the GPL over "freer" licenses.
That choice is to put two major restrictions on the code.
1. A licensee cannot deny the source to others (by action or inaction) when distributing binaries.
2. This holds true even if the licensee makes improvements.
I don't know about any one else, but I would use the GPL if I did not intend to make money on something I had
written. But I would feel that I had lost something if I chose to GPL something the I wrote (that is
OWNED) and someone violated these two simple stipulations.
Finally, I would like to point out that in a significant way the GPL is more free than public domain software. This
is the same way that a country that outlaws murder is more free. Honest people find it liberating to feel there is
some protection against being murdered, only murderers lose freedom under this system. In the same way the
GPL only prevents (arguably) dishonest people from unfairly profiting from the work of others, while the honest
only have their freedoms protected.
See?
-Peter
What you say is true of 99.99% of all Open Source projects, unfortunately.
:) ) shall be built in a different manner than most Open Source projects though.
:) More seriously, I am fortunate to have a day job that indulge my love and desire to code all the time.
:)
The specific *killer* app I described (which apparently is not this), but GOSIX (I just made it up, Game Operating System
GOSIX (I think?) may have more potential professional programmer users. This may mean more commercial programmers and projects having *vested* *commercial* *technical* interest to contribute, and not just monetarily.
Just as an example, I am a professional coder, and have been one for many years. I have no wife nor baby nor life in any manner and would choose to remain steadfastly that way.
And I am quite seriously thinking of coding up several Operating Systems versions of GOSIX.
1. I have the experience.
2. I have the time. Since Since development of GOSIX is a vital component of the engine in developemnt.
Will it become a one-man-authored code module like all others? Perhaps. But I shall be sneakier than the average bear.
What if I comment and document GOSIX's API. And only choose to implement GOSIX for only a few platforms?
And the next time a Be-OS or FreeBSD game player pleads me for a Be or BSD port of my 3D engine/game, I say: "Here is the open-sourced and documented GOSIX. You code the implementation. You get the game."
Then I would have fooled Be or BSD gamers into contributing to the code.
What if competing engines and games co-opt GOSIX to afford itself x-platform functionality, and save low level development time?
Good for them.
Then I could had caused more games to appear on more platforms overall.
And these competing programmers and companies will also end up additional contributors to GOSIX.
The above is entirely theoretical. None of it should be taken to have any factual or logical merit.
They are merely used illustratively of why *this particular project -- GOSIX* may be unique from some other projects.
It doesn't. gcc creates output from input, that doesn't make any output a derivative work of gcc. The only problem would be the init code / libgcc.a which are linked in automatically in the process of creating an executable, but these are not under GPL licenses allowing linking with anything.
For other libraries it's simple as that: you can't link a GPL library to a non-GPL application. LGPL and other licenses however allow this.
[2] Does including some GPL tool with your proprietary package put the *whole* package under GPL?
Not at all. Derivative works are required to be under GPL, putting independent files on the same medium is not a derivation. No problem as long as the usual rules are followed: explicitly state that it is / what is under GPL and include source or include written offer to send source on request.
[3] Does using GPLed software to write *nix drivers for some piece of hardware mean that the the hardware specs/design have to be made "open" now?
"using GPLed software": see [1].
Another thing is using the created non-free drivers with a GPL kernel like Linux. You can't link them in, so can only distribute them as modules. Linus made a special exception to the GPL that allows binary modules to be used in a Linux kernel (standard GPL wouldn't allow that, it's comparable to dynamic linking).
natalie portman is hiding in a room full of old ibm mainframes. open source man is trying to locate her.
open source man: you cannot hide forever, natalie.
natalie portman: i will not be open sourced.
open source man: give yourself to the open source community. it is the only way you can save your friends.
natalie portman strains to contain her thoughts.
open source man: ah yes, your thoughts betray you. your feelings for them are strong. especially for... sister. so... you have a twin sister! now your feelings have betrayed her too. gates was wise to hide her from me. now his failure is complete! if you will not be open sourced, then perhaps she will!
natalie portman jumps out from behind a mainframe, wielding a can of mace. she begins beating open source man back with it.
natalie portman: noooooooo!
natalie portman sprays open source man in the face with the self-protection spray. he crumples to the ground, holding his arm out to protect his face from another attack.
natalie portman is crazed with the power of open source.
esr cackles evilly as he steps down from his platform toward natalie.
esr: good. good! your open-sourcedness has made you powerful. now, release your sexuality and take open source man's place at my side.
natalie looks down at the fallen open source man, breathing heavily as his sinuses sting from the mace. she harkens back to her youthful obsession with a hot young actor.
natalie portman: never. i'll never turn to the open source side. you failed your highness. i am closed source, like open source man before me... err, something.
esr: so be it, closed-source girl. if you will not be open sourced, then you will be bludgeoned with the open source sausage!
esr grabs a giant sausage with a taxidermied gnu's head mounted on the end of it. he begins to beat natalie with it.
esr:hot young actress... only now, at the end, do you understand! you have paid the price for your lack of vision!
esr thrashes some more... open source man shakes off the mace.
esr:your feminine young hotness is no match for the power of open source!
esr beats natalie again. open source man pulls himself to his feet and stands next to esr.
esr: and now, young portman, you will feel the full wrath of the gnu!
natalie portman screams in horror as esr thrashes her harder.
natalie portman: aaaargghghghghgh! open source man! please! help me!
open source man looks fondly open natalie's writhing frame. he looks at esr. with a final surge of passion for the hot young actress, open source man lifts esr over his head and carries him to the window. open source man tosses esr into the blackness of night, but not before esr gets several good whacks in with the open source sausage.
open source man collapses to the floor. natalie portman crawls over to him and holds his head gently in her arms...
thank you.
Later you can scan commercial programs for the fingerprints of your routines (sequences of code, etc.), but at that point you're trying to do law enforcement rather than prevention. If you're keeping records of how much time was spent on each routine that may help set a price/damages for any court case, but here we're wandering in the nebulous world of what may be decided at the stroke of a judge's pen.
Actually, the last statistic I heard said that only about 1% of the Chinese population had ever seen a computer, let alone had access to one. A good point to consider.
There is no remedy for you through the GPL, but if you ever expect a remedy through the courts, you will need proof of plagiarism. As I imagine you don't have the resources to hire lawyers who could force a disclosure of the hidden code, you need a mechanism that would allow you to prove copying with only a released copy of the proprietary software in hand.
What you need to do is include a highly obfuscated trigger in your code. When a series of complicated and rare actions execute through code, a trigger message is displayed proclaiming "This code written by ABC and licensed under the GPL". That would be irrefutable proof of copying.
I believe the legal criterion to establish plagiarism is replicated *errors*. Another option is to include an intentional but, again, very obfuscated bug in your code. Either method should demonstrate beyond doubt that their product is based upon yours.
-konstant
Yes! We are all individuals! I'm not!
-konstant
Yes! We are all individuals! I'm not!
I think that the Litestep interface is a quality way to ignore a little bit of M$ from the bowels of your HD. There are reasons (however few) to not use Linux or another open operating system, and Litestep provides an innovative way to run win32 applications. I think it is refreshing to see someone developing open source sofware without keeping their mind focused solely on Linux. I know that things that are new and different can often be denounced in ignorance. Anyways, does Linux need another shell?
A few years back I worked for a software company that wrote mostly Windows specific network application software.
Well, I know for a fact that they would just take most of the MIT X server code and incorporate it into their X Server product (To be honest, I don't know how/why/etc. they did this because I wasn't in that software group and I really didn't care at the time). But their DNS server was definitely almost entire BSD code...file for file...except for the source files that implemented the UI and the Windows Service interfaces. There were probably a few more applications that had this crap in it too but those were the only ones I saw for sure during my tenure with them.
Nobody ever said or asked anything about their practices as far as I know so unless you go out and actively look for things that might be yours not too many people are going to care to look for this. It really sucks since you put in all the effort and then some schmuck that runs a sweat shop programming company makes money off of you. If anything, that's what would burn me about it happening.
===============
"All I ask is for a chance to prove that money doesn't make me happy."
"The analogy to barriers to entry in heavy industry also fails. "Historically", if what you suggest is true, there has been no barrier to plagiarism. What you describe is a barrier to production. Software is different in that it is being treated as a product, not a means of production."
I'm not suggesting, I'm stating. And yes, historically, it is true--there is no barrier to plagiarism in intellectual property law. The whole point of the patent system is to encourage plagiarism. The concept is called "derivative works."
For example, suppose that you come up with a better method for stamping sheet steel (this happened in the 1920s). I've been working on the same problem, but taking a much different approach. I read your patent application (which is public information) and the lightbulb goes on--I have the solution, and my new solution is even better than yours. I rush to the Patent Office and file a patent. The world, recognizing a better mousetrap, beats a path to my door. I get rich--but because my patent depends upon yours (and identifying those dependencies is part of the patent process) you get rich too. You and I get rich--but society as a whole reaps an enormous benefit. Since we've improved metal stamping technology automobiles can now have enclosed bodies and still cost less to build. Aircraft wings can be assembled from stamped parts, rather than be hand-made from wood and fabric. Consumer products will drop in price--a whole cycle of economic activity will take place due to our technological innovation. (True fact: simultaneous innovation in cold-rolled steel and steel-stamping technology was one of the very few pieces of good news in economics in the 1930s.)
My point, which I think you misunderstood, is that even if someone were to try to plagiarize an invention without licensing it, typical barriers to production effectively prevented it. I know how ABB's continuous casting process works--so what? I can't set up a continuous caster in my back yard. With software there are no such barriers--if you have the source code to Bank A's consumer lending software you can easily sell a consumer lending solution to Bank B without ever getting caught. (In fact, many consulting companies do this all the time--they write a solution for a client, then sell the same solution to the client's competitors.)
Without intellectual property protection (which is what the GPL amounts to) there is no legal recourse to somebody plagiarizing your code. That was my point.
Agreed. These debates over GPL, what you can and cannot do, are getting increasingly tiresome. The license is obviously too complicated, and no one really knows how it should be handled.
Public Domain seems to be the only way to go. I enjoy coding as an intellectual and creative challenge and if someone can find my code useful, then let them! The GNU utopia just gets really boring really quick.
Even a limited license could be applied to certain parts of the code. Then again, it seems to me that your developers are missing the point - either they want to benefit the open-software community or they don't! You can't say who can and who can't look at your open source-code simply because you don't like them. The GPL is a double-edged sword - like any kind of freedom it can be used for good and bad alike.
On the subject of stealing portions of code for proprietary (closed-source) software. There's not a lot you can do to prevent it, because you can't check the source without "probable cause" and a warrant or something. However, surely if someone "steals" portions of your code, they've taken a part of a good piece of software and (presumably) are now charging for it. What's the average consumer going to do when faced with two software packages (one open-source and free, and the other costing $xxx)?
It just sounds a bit to me like your developers don't want other people to make money from their own software without them getting any of it - this may sound fair enough, but isn't RedHat making a tonne of money selling a distro with your latest GPL toy?
IANAL (who is?), but copyright law isn't that simple. Yes, loss of profit is considered when deciding how much the plaintiff is entitled to. However, profit on the part of the offender is also considered. So if a commercial company ripped off some of your GPL'd code and made money off of it, you could get money from them. More info about copyright damages.
Also, even if you aren't awarded damages, the infringer has to stop distributing the product derived from your code (until they get all of your code out of it), which provides a strong incentive for software companies to not "pirate" GPL'd code. Even if they thought they could eventually win in court (which I hope they couldn't), the possibility of an injunction against the distribution of their product would likely deter them from trying it. Does this sound right to other people who are familiar with copyright law?
only about 1% of the Chinese population
hmmm, 1 billion Chinese, 1% of 1 billion == 10 Million. That's still a lot of people!
Steven Rostedt
Steven Rostedt
-- Nevermind
Before you steal GPL'd code, you'd better check to see whether the "GPL'd" code isn't stolen/derived from someone elses licenced code! How much of the GPL'd code out there can honestly be said to be original? 'cat', 'ls', etc., are even spelled like licensed code.
Open Source is like a drug. Once you use it (legal or otherwise) you'll become dependent on it if it's any good. And if you use the code in your project, you'll probably never fork the work because if it was too hard to develop in the first place, you're not going to maintain the thing on your own.
Worst case scenario? The shell never catches on, but the interface does and eventually becomes its own project. C'est la vie!
Others have said parts of this, but let me try to put them together:
Sure you can sue someone for taking your GPL code and incorporating it into a proprietary package or system. It's not stealing; you can't pursue that avenue. It is a license violation, and you could sue for that. But even better would be to take the resulting proprietary product, decompile it, and post the code publicly with specific documentation that it is now GPL code itself.
Some thoughts about this:
- The company will surely try to sue you and/or get an injunction. But then again, you were thinking about spending time in court anyway suing them, and you can surely countersue for costs and time lost. If you did your homework documenting that the code is a derivative of yours and that you were entirely within the bounds of the license that they adopted by using your code, you stand a good chance of having the case thrown out.
- By releasing their GPL code for them, you expand the market for implementation and support services. Since it's a derivative of your code, you stand to benefit from it because you're more familiar with the code. Therefore it's mostly a good thing.
This underscores the critical requirement for the legality of reverse-engineering. If click-licenses take the essential right to examine what you have purchased away from you, you have lost the right to know when or if you have been violated as a consumer or as a competitor. That's a completely unacceptable state of affairs: Imagine you buy a car with a 2.5L engine and the mfr puts a clause in the purchase agreement that licenses you the engine when you purchase the physical media of the frame and body -- and precludes you from disassembling the engine to see if they really gave you a 1.9L HO engine for which they stole the design from a competitor. It would be ludicrous, yet we accept the same arrangement in software. Why is Ferarri not worried that Chevrolet will steal their engine designs? Why are architects ok with giving their innovative structural designs to the public records office at City Hall? Why doesn't Makita worry that Dewalt will reverse-engineer their new compound-slide saw and put out a derivative work? Because these are all in mature enough industries where people realize that there's already ways to prevent misappropriation of technology (in the current legal context) without placing onerous legal restrictions on the consumer.
Not to defend them, but one can obtain patents to protect novel algorythms and innovative software. Why hide code? For example, why doesn't Microsoft publish the source for Word and sue the hell out of anyone that inappropriately uses it? One would think that the best way to defend a patent would be to openly establish ones' work as prior art by publishing the source just as every car comes with an openable hood.
Jon
I think not...(*poof*)
you're concerned that someone might *USE* your code? That can only be what it is, otherwise just put it under the GPL and no one can take modifications private. Geez, you're using Bill's code but you don't want him using yours...you are such a model of even-handedness.
If your abstraction code is so abstract that it doesn't need modifications to be used elsewhere, yet so useful that you fear people might use it, then it must be pretty cool.
Just let people use it. Share your code with the world. Be magnanimous with your creations. Cast off your xenophobia and fear of outsiders, and let people outside of your tribe partake of your labors.
A Government Is a Body of People, Usually Notably Ungoverned
For all we know, there's Linux kernel code in the Win2k code. Can you prove there is or isn't? No way!
It sounds like what you're saying is that you want to design an interface and make sure that everything built to conform with that interface has to be open source. I don't think there's any easy way to do that, and I don't think there should be; interfaces ought to be public domain.
I think it would also be legal if your non-GPL front-end relied on GPL'd code provided that you also happened to be the author (copyright holder, more specifically) of the GPL'd code.
Actually, I'd like some feedback on that, because I plan on doing it soon. I've been wrestling with a decision on a project I want to start at my company - to release it as GPL and participate in the great open source movement, or to release it as shareware/commercial software and actually pay some bills! At the moment, I think I want to create it in parts - a command-line utility that provides all of the core functionality, GPL'd, and then a web-based GUI and some extra utilities to work on the output data as a fee-based add-on. I think this strikes a good balance between serving my fellow hackers who will use the command-line version (and write their own front-ends maybe), and still providing corporations who might use the product with somewhere to send a check, in return for an "official" GUI/enhancement bundle.
Does anyone know of projects that already work like this? I suppose that's similar to what Red Hat does, right?
Fortunantely, RMS is full of beans on that one.
I agree. If you think about it that way, then you could never write or port an open source application for a closed source operating system. I suppose some people see no problem with this, but I see that as getting in the way of my freedom.
I've finally found the off by one erro
some programs can be easily distinguishable by their binary files (really!)
:-)
If you're really a control freak, try to put traps in your code, things you could see with your hex editor, maybe a text statement every now and then.. it'll be funny when "bologma makes me complete!" is ALSO on your buddie's program (which is supposed to be different from yours.)
even without all of that, it should be pretty easy to detect copying using the same hex editor.. if most of the code lines up pretty much the same, i think you have a case. I don't know how effective this would be, but it's a thought..
You could produce a manual which clearly describes the components and interfaces, and get a tiny income by selling it to that handful of developers who will be creating new modules.
You could make what you're supplying so good that nobody will want to replace it.
You could encourage replacement of components and focus on providing good parts for those components. Such as assuming that your user interface isn't the best, but you've decided that you're just making a user interface which is so flexible that it will be tuned by others to do what they need.
What IS the record anyway? What is the largest number of consecutive off-topic messages ever sent to /.?
It looks like you may have to come up with a new kind of "open" licence. or maybe GPL *some* of the code and not the stuff developed by others. Is there a license that allows open source but still keeps propriatary software protected... and if not how the hell can we do this. --Unstable
karma whore
Well, not exactly...
According to their web site, the latest-and-greatest is free for non-commercial use, copying, and distribution, while the previous version actually _does_ get GPLed so you can charge for making copies.
Not many know this, but there is a _third_ version called Artifex Ghostscript which you can license only for commercial use.
Glückwünsche, haben Sie Slashdot ermordet, indem Sie zum korporativen Druck beugten und Subskriptionen einlei
Woah. Did I miss something? Didn't ESR just figure out he was going to get a nice wad of cash because of the VA IPO?
From the section 3 of the GPL:
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
That exemption seems fairly fuzzy to me. Consider the common windows DLLs that are often required by applications, but need to be downloaded seperatly (or installed by Office) and aren't actually included with the OS.
Take it easy.
Why don't you not use the GPL distribute binaries instead? Your problems would be solved.
As a software engineer, I am appalled that some people are willing to give their code away for free. I work very hard, and I get paid a large amount for my work. Why would I give it away for free?
Other Slashdotters will hate me for saying this but look at Bill Gates: he developed closed-source software and is now one of the most powerful persons in the world. Now take a look at ESR; what does he have? Well, not much.
Remember kids, I comes before U in the alphabet. First my profit, then your convience.
Oh well, back to writing my closed source code. :)
Thanks for your comments.
First, the question of China and intellectual property. This is a settled question in the history of economics: there was no such thing as intellectual property protection before the mid 1700s in Britain. The development of intellectual property protection--specifically the monopoly rights to your creation--was the basis for the Industrial Revolution. The nations that industrialized early were those nations that adopted intellectual property protections (such as the U.S.). Those that did not adopt IP protection (France, the German states) were left behind. They did not begin to catch up until they adopted protections for intellectual property.
Poverty in China is no reason why there is no Chinese software industry--there is plenty of poverty in India and Pakistan, but there are booming software industries in both countries. Remember that before Ed Yourdon was crying wolf about the Year 2000, he was crying wolf about the threat from cheap labor in India. (And many of us who have worked in IT for a long time can name former clients or employers who outsourced all their programming to Indian firms.) What's the difference? India and Pakistan both protect intellectual property rights. China doesn't.
If you want to look at a broader comparison, consider East Germany vs. West Germany; North Korea vs. South Korea; Singapore vs. Malaysia; or practically anybody in Asia vs. Indonesia. Technological innovation boomed in West Germany, driving the booming economy--to the extent that the Third World War that we were brought up to expect didn't happen because West Germany more or less just bought East Germany. It wasn't a war--it was a white-knight takeover. Technological innovation in West Germany was protected by intellectual property rules, it was not protected in East Germany. Without an impetus to innovation, nobody in East Germany felt a burning desire to innovate. The same situation exists in all the other countries I listed: forty years ago there was no economic distinction between the pairs of countries I mention. The country that has prospered has done so through technological innovation. If the other country (such as Indonesia) has prospered at all, it is largely a result of the extraction of natural resources and the exploitation of cheap labor.
Intellectual property protection begets technological innovation. Technological innovation begets economic progress. You can have technological innovation without IP protection--but the record of history is brutally clear: without IP protection the rate of technological innovation is dramatically lower.
(This, incidentally, is a major part of the World Trade Organization's dialogues with the People's Republic of China. The industrialized West wants the PRC to develop strong intellectual property rights to encourage technological innovation. To many people it looks like the U.S. is trying to jail people bootlegging copies of Windows. What those people, including the PRC's leadership, don't get is that if and when somebody develops a Chinese OS that's better than Windows, Microsoft will instantly become the #2 player in the game. Way more people speak Chinese than English.)
But now assume that this has happened, and let's look at what we have:
1) An open-source piece of software (yours)
vs.
2) A closed-source piece of software (theirs)
YOUR software is open-source, so it will continue to be better quality than theirs.
THEIR software is closed-source, and we all know the problems inherent in that.
So the problem is really only a moral one. Yes, it's lame that they're stealing your code, but they're not going to profit from it as much as it would seem. I don't think there's a whole lot to worry about. And, you can take solace in the fact that if people are stealing well-written GPL code, the average quality of software is increasing, which is a good thing!
So the point is, essentially, that you don't need to try and protect your code, because it doesn't make any difference whether people steal it or not, if it's already GPLed.
"Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
Moderate it up.
The question seemed to me to be if it was possible to protect the code from being manipulated. If they have well-defined, open interfaces between everything with a high level of modularity, it might be possible for some person (but probably a company) to use many of these modules with some replaced by their proprietary modules. The product as a whole would be proprietary, though many of the pieces would not be. This would obviously be in violation of the spirit of the GPL.
The GPL does try to protect against this very thing. A GPL program cannot link -- even dynamically -- to anything less free than the GPL -- or, conversely, linking to a GPLed library can only be done by something that is GPLed. There is a (possibly dangerous) exclusion for system libraries -- but in a Win32 environment, that exclusion is obviously quite necessary as well.
It's not clear whether the GPL's protection would also would be true for other interfaces -- what is a shared library? Is a CORBA interface a form of shared library? Is it protected under the GPL? Other interfaces? I think this is the issue in question. The output of a GPLed program is specifically not covered under the GPL, but output and interface can be a fuzzy distinction at times.
Some people question whether you can protect an interface. That is, does fair use protect the use of all public interfaces? I believe the author of Ghostscript had these very same questions. You can read an interesting interview with him where he talks about these things and why he used a different license.
One thing you might do is to clarify your own interpretation of the GPL in this context. This is something Reiser did for ReiserFS -- and he got a lot of flack for it, because he was adding something the the GPL. But I think it makes sense, since Linus has made his (I think flawed) interpretation of the GPL in regard to binary-only modules, you shouldn't let that be seen as the de facto interpretation in regards to your software.
I have a servlet project that's built on top of Sun's JSDK2.0 / Servlet API 2.0.
I just released it under the GPL at soma.sourceforge.net.
Are you saying that since it's linked to Sun's API, it can't be GPL'd?
--hunter
RateVegas.com - Vegas Reviews
IMHO, while dollar values are important, they are really important in the context of opportunity cost (like everything else in economics). For example, suppose a large software company stole significant chunk of some of my GPL'd code. The fact that I decided to distribute the software for $0.00 does not matter. The important factor is that the large software company is selling it. If my code was 25% of the proprietary software and they sold 5000 copies at $50 a piece then a court ruling SHOULD look like this:
Plantiff: they used my GPL code in their closed source code
Defendent: yes we did
Judge: Mr. Plantif, what is your lost revenue due to this theft?
Plaintiff: Based on their selling price of $50 dollars a copy, of which 25% of my code is used, my lost revenue is $12.50 ($50*.25) per copy they have or will sell. (Opportunity cost being defined as the money lost by NOT selling my code). Total loss $62,500.00.
Judge: I rule for the plaintiff in the amount of $62,500.00.
At least that is the way things should work. You have to remember that in economics and law the value of forgone opportunities is just as real as cash in the pocket.
Your comparisons are very flawed.
East Germany vs West Germany...
You give all credit to the difference to their IP laws, not considering that there was modern democratic government with a commitment to industry in one country and a totalitarian government known for oppressive rule in the other.
Ditto with a lot of other countries you mention. India is poor, like China, but has a much more open government and much better human rights history.
And you also ignore the fact that the open IP systems in the leading countries give these non-IP countries a leg up. If China had all the same technology the US did, after sufficient delay to allow for copying it, then your argument might be believable.
You'd have us believe that the whole country is full of people just waiting for an idea to pounce on and steal, yet they can't arrange plane fare to send someone to the USA and bring back books of patents?
And then you point to "history", saying it proves your point. One example does not an argument make. Especially when it has holes. The renaissance started before IP laws were thought of. Much of history in prosperous countries has examples of science being funded by the government and financial concerns.
I'm not saying anything about your ultimate conclusion, that IP laws are important to development, just that your arguments leading up to them are spurious at best.
Holy smackie this was funny!
The leading EJB open source effort just went through that battle a couple of weeks ago.
http://www.ejboss.org/license.html
They favor the GPL heavily. When java is used as an OS and uses pieces of independent developed code the GPL stops short of being viral.
The thing I don't know: has the GPL ever been legally challenged? (i.e. has a company ever been sued for 'stealing' GPL'ed materials?) Seeming how this project revolves around a Win32 platform, I could easily imagine M$ lifting the best parts of the redesigned interface and billing them as their own. ('Freedom to Innovate').
If having your code 'lifted' is a concern, I might almost try to find some form of legal advice about this.
Another thing I've always wondered about: how does existing copyright law apply to "open" software? I remember Apple suing M$ over the use of the Win 3.x interface, but that case was settled out of court. (Any legal-type geeks out there?)
If I understand your project correctly, then you might not be able to release this thing, at least not under the GPL.
IIRC, use of a GPL interface, unless explicitly declared otherwise à la Linus' amendment to the GPL for Linux, generally means that the using code must also be covered by the GPL.
Historical: NeXT wanted to use gcc as their compiler, so they wrote an obj-c frontend to link to gcc statically. RMS told them that that wouldn't get around the GPL's terms, so they put the whole thing under the GPL.
Recent: I wanted to use a few Sun Java libraries in writing a GPL'd frontend for an IMAP client. RMS told me this was not allowed -- even dynamic linking is covered by the GPL.
IANAL, but you may not be able to use the GPL. This sounds like a job for the LGPL, but talking to the FSF about this would definitely be a good idea.
Cheers.
"Honey, it's not working out; I think we should make our relationship open-source."
So if you want to enforce the GPL, run your decompilers, find all the closed stuff that incorporates open code, make sure you have a strong case, and post that software to the net. Then you'll get your case law...
Of course, RMS insists that the GPL applies even in these cases (such as plugins), but who knows if this would fly in court?
I would like to see a GPL-like (viral) license which solves this problem, and also prohibits closed source derivatives that run completely behind web servers (which don't count as distribution of the code, even though many people are running it).
JMC
[1] Does compiling proprietary code with gcc make it GPL? How do you know which libraries are okay to link in (if any)?
[2] Does including some GPL tool with your proprietary package put the *whole* package under GPL?
[3] Does using GPLed software to write *nix drivers for some piece of hardware mean that the the hardware specs/design have to be made "open" now?
GPL needs prominently located FAQs to address these issues tha can be understood by corporate suits. Otherwise GPL will be shunned as a matter of policy and will hurt Linux especially as in [3] above, which Linux needs more of badly (USB? Drivers for BUILT-IN laptop components? etc.)
Check the Dors AI website.
IIRC Blackdown wasn't using the GPL, and that's why sun was able to do what they did, (witch was pretty fucking lame, if you ask me). Rather then an example of the GPL's weakness, its a good example of why the GPL is a good thing. If the code were GPL, instead of the weak BSD license, Sun would still have been able to roll there own product, but it would have had to have been under GPL, otherwise sun would have been breaking the law.
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
I guess they were using the SCSL, in witch case... what the hell were they exspecting?
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
Fear is a feeling of anxiety or dread of a particular, something you do not wish to happen because something bad will result. All fear has a cause that can be identified (tangible or otherwise.) A wild animal, the dark, failing next week's test, whatever the fear, it has a basis in reality, and is therefore, rational. If the cause of fear can be identified and eliminated, the fear will end.
PH33R is the irrational dread of events undefined. One can PH33R a tangible or intangible event, the difference is that when pressed to explain "why", the person feeling the PH33R will be unable to give you a definitive answer. Nothing exists at the core of the PH33R. PH33R can also be acquired by decree. Company policy says no use of GNU code or else. Now company exec's PH33R becomes the employees PH33R. Paranoia is caused by PH33R. And because PH33R has no cause, PH33R has no solution. Thus PH33R often lasts much longer. The black helicopters, the coordinated UN armies around the globe, the illuminati, the new world order, the source of PH33R is as elusive as the PH33R itself. It can start very innocuously, but lacks a mechanism for it to end. It often never does. This is PH33R.... submitted as a new word to the English language.
if you look closely you will find that you can use gcc to compile proprietary code without fear of being forced to release it. most of the standard libraries are going to fall under the LGPL (meaning you can use them in proprietary stuff).
Well, if you were writing the code yourself, you presumably could have used your own license, or simply claimed that The Java API was part of the 'operating system' of Java. I doubt RMS would have tried to sue you...
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
Could you please explain exactly what the problem was with GPL'ing code that used a few Sun Java libraries? I've seen GPL'd java programs out there, so this is very confusing.
On a slightly different note, let's say you have a proprietary library, but with an open API spec. Can you right a GPL'd front-end that uses that proprietary library? Could you distribute the whole thing, front end GPL'd, backend binary only?
First, make it work, then make it right, then make it fast, then, make it bloated!
These are your own words. Do you see the problem? No one will give a definitive answer. Does gcc have a switch, say -LGPL to restrict compiles to only these libraries?
What about mathematics? There is virtually no IP protection in mathematics; even if a mathematician copyrights a paper or a book, the math itself can be freely reused, and most mathematicians make their papers (and often their books) freely available on the Web. One might argue that there is a vague IP protection in mathematics in the form of giving/getting credit for work, but unfortunately, history has shown that mathematicians are bad at giving each other proper credit for their work.
So where's the financial incentive for mathematicians to create? There seems to be little. (Getting a math PhD is not a well paying job, and anyone holding a math PhD can generally make more money in industry than they can doing academic research.) Perhaps it's simply an interest in mathematics! Even if there is less incentive for mathematicians to create, the efficiency of operating in an open, cooperative environment allows mathematics to maintain a high rate of innovation despite a lack of enormous profit potential.
The fact that profitability and quality are somewhat independent is also relevant; if you set out to make the best technology you can, your long term technological contribution will probably be more significant than if you set out to produce the most profitable technology you can.
IP protection does offer financial incentive to create, but by restricting the use of protected work, it also holds technology back. This makes finding the right balance between IP protection and openness a subtle issue. I tend to favor more open approaches, because work that is created sincerely and not motivated purely by profit tends to have a greater lasting quality. I believe the reason for this is that accessibility and profoundness are often opposed to each other--this is precisely why top 40 music, while profitable, usually sucks. If artists only deliver what people expect (which is inherently more profitable), there will be no artistic progress, no matter how strong the IP protection on the work is. Generally, artistic progress is made by artists who are willing to take risks, and who are often not appreciated at first.
Can all this talk about artists be applied to technology? Not directly, I admit. Technology can be accessible and profound more easily than art can. However, is there an artistic aspect of technology that should be valued? I'd better shut up right now.
As I read it, and IANAL either, is that you can not produce proprietary, closed programs if you base them on something that is GPL.
This is why GPL is sometimes referred to as viral copyright, it infects all derivative work to be like it, or not be at all.
And you thought Microsoft was the BORG?? Resistance is futile, you will be GPL! Ha!
-- What you do today will cost you a day of your life.
Fortunately, once you really think they did steal GPL code and you're willing to start a lawsuit, things paradoxically get easier. IANAL, but you have subpoena power for depositions and discovery. They will have to produce their source code, and employees will have to answer were it came from. ---- This is a dangerous and slippery slope. You'd better be damn sure of the violation. If you challeng and turn up wrong, you could be open to being countersued for malicous prosecution.
If you have to pick SOME target to be up in arms with over IP abuses, pick Apple (TrueType patents, Aqua threats, etc).
These beasts are inherently evil, we all sense that. But the only way to protect your open source software is to patent the concept.
If it's something totally novel, you might get away with it, but you probably won't. If it's an alternative, you'd better hope yours is most efficient by orders of magnitude, else nobody cares about your approach at all.
And your definition of the algorithm/method has to be nebulous enough to prevent alternative implementations. After all, source code is not poetry, you can get the same effect if you rephrase things.
So this is how we get to the patents on 'one-click shopping' and the trademarking of the word MULTIMEDIA.
-- What you do today will cost you a day of your life.
If your code is to be stolen, it's almost impossible for you to prove it. This is an argument against all GPL'ed code, for that matter. However, there are two arguments against license violation of a GPL'ed piece: one for you, the other for those who would violate the GPL.
Firstly, there's the fact that for a freely distributed, GPL'ed work, you yourself lose nothing, those to whom you distribue lose nothing, and those who would respect your license lose nothing. There will always be freeloaders, and there will be freeloaders no matter which license you use, even a proprietary one. If you are using the GPL for the right reasons, the benefit of placing free - as in libre - code in the public sphere outweighs the irritation of having ne'er do wells use your code.
Secondly, to create a distinctive piece of software, the advantage from using GPL'ed code is greatly overweighed by the potential for legal action. A lawsuit can kill any product and even any company; the expense of a clean-room rewrite of a tainted product is so much greater than the potential benefit from using restrictively licensed code. Any corporate lawyer could make this call instantly, although I have less faith in PHB's and even less on individual coders. Still, I doubt that your prodct will be thoroughly exploited; snippets yes, the whole thing, no.
--
--
There is no premature anti-fascism. -Ernest Hemingway
This bothers me a bit too. The GPL covers "derivative work", although just how much code needs to be included to make something "derivitive" is not clear. And copyright doesn't protect ideas, just their expression. So someone could read your code, see a nifty idea/algorithm, and use it with impunity.
Detection is another problem. How are you going to know they used your code? They don't publish theirs! You could always try to figure out what compiler & options they used (but watch that EULA!], compile your code that way, and compare.
Very tough.
Fortunately, once you really think they did steal GPL code and you're willing to start a lawsuit, things paradoxically get easier. IANAL, but you have subpoena power for depositions and discovery. They will have to produce their source code, and employees will have to answer were it came from.
-- Robert
I'm not sure if I understand you correctly, but it seems you are asking if you can protect the API to a library. The answer is no. You can make it so that no unGPLed code can link with your library. You can make it so that no unGPLed code physically uses your header files. But you can't prevent anyone else from re-implementing something that uses the same API as you.
However, this is the whole point of open standards and free software. Create a standard interface and *encourage* people to follow it. Some people may develop proprietary code based on it. But so what? You control the standard and your code is free. The customer has choice and that's all we care about. If you want to make sure that people don't make money off your API, just make sure that your code is better than the proprietary stuff.
This is the way of free software. Many windows programmers have not yet made the context switch from proprietary software (be it shareware or big buisiness). Give them some time.
If that doesn't work, politely explain the alternatives (either a confusing API that no-one
wants to use, or a secret API that no-one can use).
"cutthroat shell replacement arena"?...I wasn't aware such existed. Can someone elaborate on this, and what other Win32 shell replacements are currently being worked on, or direct me/us to a source to see a decent listing of attempts, and similar?
I know there's a Korn shell for Win32 floating around somewhere out there, but are there any others?...
In theory you can enforce the GPL in court--suing someone who pirates your code. In practice, you have no defense against somebody plagiarizing your code. Your team members are entirely correct to worry that the fruit of all their hard labor might be swiped by somebody and used in a commercial product.
You and I and the entire SlashDot community might argue about whether such plagiarism might happen--but the simple facts of history are brutally plain: without intellectual property protection that kind of plagiarism practically always occurs.
Example: consider the People's Republic of China. The PRC has paid lip service to intellectual property issues, but fundamentally there isn't any such thing. When was the last time you bought (or heard of) a piece of software developed in the PRC? It isn't because the Chinese are stupid--far from it. The ranks of American software firms (and the membership of SlashDot, I'm sure) are chock full of ethnic Chinese, and Chinese emigrants. But because anybody can peek at your work and swipe the results--and laugh at you while he's headed for the bank--most people decide that there is little reward for innovation. What innovation there is tends to be "protected" by some kind of secrecy scheme, or done because the innovator derives personal pleasure from giving his creations away.
This is a painful lesson to learn--but this is simple history, and simple economics. In some technologies there have been significant barriers to plagiarism (I can plagiarize ABB's technology for continuous-casting sheet steel--but unless I have $100 million for the machinery, not to mention sales contracts with Ford, I can't use their invention) but in software there are no barriers at all. If I can read your source code, I can use it. I may not copy it--I might just grasp the ideas and incorporate them in my next product design. And there is practically no way to prevent that from happening. The only way to protect the work that you have done (and to profit from it) is to seek refuge in the rules of intellectual property.
Also, have faith that in the long run, the open source version will win anyway. Think of it like forking: the main branch will prevail. Remember, Stallman started on the whole endeavor by de-closing features he wanted. It looked hopeless but it turns out it he was pulling on a thread that unravelled the whole wooly closed source sweater.