Shouldn't the derivative work still be covered by the GPL?
Shouldn't the derivative work still be covered by the GPL?
The project isn't terribly far along. I wonder if just starting a GPLed fork and building on that instead wouldn't be a better idea.
My general perspective on code I write that isn't for work - it has to be GPL. I refuse to have my code be yoinked by random corporations for their profit without having the code shared downstream.
Just my two cents.
Also, do you think that Linux, for example, is draining the world's resources? If so, how?
By using a GPL you strictly limit who can consume your code to those who are willing to be bound by your views on what is right.
In this way (and limited explicitly to the scope of topics I am directly addressing in this comment), GPL licensing is similar to proprietary licensing: limits are imposed upon consumers of your code based on your licensing decision.
Again, I am not making a moral judgment or normative statement about what is good or right when it comes to code reuse or copyright in general.
Licenses which do not impose requirements upon consumers of the product are more free in the sense of allowing more behaviors, or placing fewer restrictions.
To me the key distinction is one of code freedom vs human freedom. Is the code free from malicious tampering or is the human free to make decisions and take action unhampered by another?
If I may quote the late Milton Friedman, "Heaven preserve us from the sincere reformer who knows what's good for you and by heaven he's going to make you do it whether you want to or not. That's when the greatest harm is done."
P.S. This is not an observation about you, because I don't know you, but I think we can observe the amount of hedging and defensive posturing I've taken by default in this response is illustrative of the type of response I can expect, based on observing similar discussions across various fora online. I hope that in this case that defensiveness was not necessary (:
Note that you can offer your code on different terms to customers who won't 'pay' the GPL. Is your position that software should be public domain?
My unexamined default inclination would be toward a BSD or MIT style license than a GPL. You may infer what you like about my default leanings in other areas if you like.
I've not given enough thorough thought toward software copyright to have a strong opinion as to the morally right position. This is not to undercut my comment and the observations I made above, but to make clear my standing which is ambivalent. I can certainly understand both sides of the argument and respect the position people speak from for either (to be explicit, the poles of the continuum being public domain on one end, with MIT/BSD licenses leaning far that way and hardcore copyleft on the other with GPL being the canonical example toward that end).
Toward the Friedman quote, that was not an attempt at appeal to authority to discredit the idea of copyleft, but an observation about the type of person (or at least the general tone of argument) who most vocally defends GPL licensing. If anything it was an appeal to authority to please be thoughtful about how to respond to my comment, and more to the point of why I included it, because it popped into my mind while responding.
This is a long-winded non-answer so far.
Really, what I was trying to do was to emphasize that there are costs to a GPL license, and that a reasonable person may think of those costs as such and not as freedoms. If you look at my response to a sibling comment, I'm thinking about this in terms of negative vs positive rights.
Looking at Friedman, I would certainly characterize him as someone who leans toward defining negative rights as freedom/liberty and positive rights as limitations thereupon. I would also characterize myself as leaning that way (so maybe I'm attributing my own views onto him). This is not to imply you are a hypocrite or declare that it is right or in any way argue against a GPL copyright in general, but just an observation.
With copyright (unlike patents), when I offer some code under some conditions, to first order I haven't subtracted anything from you -- you're free to ignore my code, maybe write your own. This isn't so different from offering you a banana for a buck, or a free bench in the park provided it carries a memorial plaque to my grandfather.
I used to default to the MIT license, basically saying "just don't be a dick about the authorship or the non-warranty". Over the years many companies, like Apple, incorporated this sort of software into platforms and products that circumscribe my freedom -- products that I "own" but can't legally control. The GPL (especially v3) is a compact of people building an alternative to this locked-down world. Closed platforms seem to me a much greater, and increasing, encroachment on our freedom in practice than the inability to legally incorporate GPL code into closed software. Both of these restrictions, closed-only platforms and open-only code, are things someone is choosing to offer and you are choosing whether or not to use -- I don't see a difference re: positive or negative rights, technically. (But I'm not super-interested in rights-centric political theory.)
Freedom of nature is to be under no other restraint but the law of nature. Freedom of people under government is to be under no restraint apart from standing rules to live by that are common to everyone in the society
A license which enforce a share-and-share-alike system is to me much closer to freedom than if it allowed everyone to do what he likes, to live as he pleases, and not to be tied by any laws.
I think the wikipedia article[0] sums it up better than I can:
> positive rights usually oblige action, whereas negative rights usually oblige inaction.
There's some nuance between "do whatever you want" and "do whatever you want so long as it doesn't fuck with someone's day."
I'd really recommend the wikipedia article for a better treatment than I have time to give the discussion right now.
[0] https://en.wikipedia.org/wiki/Negative_and_positive_rights
If anything would be a 'tumor' by your reasoning around ideas, it would be proprietary software, which is what GPL prevents.
>the improvement is lost for the rest of the people. You are forgetting that businesses sell a product. You can get the improvements by buying their product.
If the business saves money because they used opensource technology this should translate into lower costs and it follows that they will reduce prices (after all they have to compete with free as in beer!) for their customers.
If you don't want them to earn money from your MIT code you can always try to erode their profits by implementing similar improvements.
Something like: Recipient of this software can do what ever they want so long they agree to a contract that bounds them to never do enforcement, in legal and technical form, for copyright and patents.
A complete ban on lawsuits for copyright infringement and patents, including the use of DRM technology that manage and enforces copyright and patents. It is also not limited to just the work that I distribute, but as a contract would cover everything the recipient create or has created, be indefinite, and with harsh fines if broken. I do not think a single person or company who refuse to use GPL would instead accept that deal. Will you be the first person to accept such deal and forever stop creating tumors on the worlds resources by putting software under proprietary licenses?
In that case, they should have no problem sharing it back under a copyleft license either.
While GPL software which is used as an entity, like Linux itself or applications like Emacs are fine, any closer contact to the software you are trying to sell is problematic.
I don't want to restrict developers and corps. After all, I am a developer who wants control over my hard work. However, I also don't want to erode the rights of end-users - of whom I also am. I don't want to end up in a situation where I can't fix a bug in my own software because a corporation wont let me.
It's a trade off. I choose end-users.
One of the authors of the Python requests HTTP library has called out Uber for using Python, and almost certainly using requests, and not paying any money
- are they proven to use the library?
- did they modify it? - you can submit changes back only if you changed anything
- as it is server-side software, GPL had not changed much here, you have to provide the source of your program only to those who got delivery of that program, but that is not covering running on your servers.
- none of the licenses discussed require to donate money back, only source code changes.
So, yes, I think more companies should fund open source efforts when using open source software. The attention to OpenSSL and its security problems also showed how little funding that development got despite running most of the https on the internet. That indeed is scandalous. But this is covered by none of the current popular licenses.
This is exactly the reason the Affero GPL was invented.
And, yes, there is no legal requirement to donate money. However it shows bad faith and it shows that "a corporation using your code for their profit without giving back" is a reality.
arguments over derivatives, clean room implementations...
something yanking out copyright notices to replace with "this code is now GPL"...
Copyright protects the code itself from being copied, but the ideas, abstractions, overall design, and even individual APIs are not eligible for copyright protection
Back in the BIOS clone days, they had someone read the IBM BIOS code, and write a detailed specification from it. They had someone else never look at the IBM BIOS, read the specification, and write code to implement it. (This was the "clean room" approach - the IBM BIOS was never in the room of the implementers.)
But that's still "derived" in the sense that it implements the same functionality. But it's perfectly legal. So "derived" doesn't mean "implements the exact same functionality as the other, and we examined it in detail to make sure".
Why did they do the clean room approach? So that IBM could never claim that they had copied the IBM BIOS, even by re-typing rather than electronically copying.
Well, if you're re-implementing it in Rust instead of in C, you're not copying it, either. You're making a completely new implementation. (Rust doesn't take C code as valid syntax, so far as I know, so typing in the same code from memory wouldn't get you anywhere.)
It's important to remember that copyright law protects works from being copied, not from being read. Clean room is a legal tactic used against an aggressive adversary, it's not something that's at all necessary or appropriate in the general case.
https://en.m.wikipedia.org/wiki/Oracle_America,_Inc._v._Goog....
For GNU Octave, we stress very strongly that anyone who has read Matlab's source code is ineligible to contribute to Octave. This is because, should it ever come down to it, we want to be able to ascertain that our implementation is completely original, because nobody has read Matlab's source code. In a similar vein, I'm still waiting[1] for someone to implement the medcouple for Python's statsmodels, because I cannot do it myself.
--
[1] https://groups.google.com/forum/#!topic/pystatsmodels/LpsmIJ...
I appreciate that this is how it works today, but isn't that a completely outrageous idea? A well read, well travelled person will have seen countless things that will influence their future behaviours. It is not uncommon to completely forget a particular source of inspiration (sometimes we falsely attribute to someone else, and even other times we attribute it to ourselves!)
Lawyers tend to fuel the FUD around this with "best practice" concepts such as "clean room", which is a drastic overreaction. It's akin to saying "if you want to be an author you should never read any books, in case you accidentally copy one of them". Sigh.
While you're free to invent any contribution rules you like for Octave, there's really no need for such drastic measures. It might give you a nice piece of mind, but it's not legally necessary - it's perfectly possible for someone who has read the Matlab source code to contribute to your project without copying anything. You'd just rather not have to think about it, which a is pragmatic, but heavy-handed restriction.
It's not surprising that your lawyer implied otherwise, as its "best practice" to guard against every feasible risk, no matter how unlikely. Understand that your lawyer is protecting you against a hyper-zealous misinterpretation of the law, not the actual law.
I have sent in a few PRs to this project, and I have never done more than maybe glance at the source of coreutils, and it was for unrelated reasons. can't speak to the regular contributors, though.
But if having glanced at GPL source code prevents implementing similar functionalities in an entirely different language, that's a pretty darn strong argument for me to never look at GPL code again.
This is only an issue if your derivative work is under a different license.
Not according to the lawyers who have advised us GNU Octave developers to never read Matlab source code.
You're free to read whatever you like. Don't let anybody tell you otherwise.
No, the SFLC works pro-bono.
> You're free to read whatever you like.
I wish that were true, but many current laws say otherwise. You do not sound like you are aware of those laws, so I take it you're not a lawyer. You're just hoping the world is as free as you say it is. I wish it were too, but we have to be pragmatic and work in the world we have while we strive for the world we want.
But you don't need to protect yourself. You're legally allowed to read stuff and write something similar. Just don't copy it.
> I wish that were true, but many current laws say otherwise
I'm going to disregard this statement (and it's conspicuous lack of citations) because you're not a lawyer :)
> You're just hoping the world is as free as you say it is.
No, I'm just reading Wikipedia:
Clean room design is usually employed as best practice,
but not strictly required by law.
https://en.wikipedia.org/wiki/Clean_room_design#ExamplesI'm not a lawyer, and I don't really know who's right in this thread, but I'd find any citations you have really interesting to read.
So you ask, how can I the holder of meagre so-called "Computer Science PhD", comprehend the the holy (and unspeakable) knowledge of those who have spent an unimaginable three years studying law? Who am I to question our very gods? Well, sir, I give you "The Wikipedia":
https://en.wikipedia.org/wiki/Clean_room_design#Examples
Perhaps we should have it destroyed for spreading the "unspeakable" knowledge, rightfully known only by our lawyer-priests and spoken amongst them in their own tongue.
I was going to respond to the wikipedia article, but I'm realizing that would be a waste of my time. Good luck with your crusade against the almighty lawyer-priests.
There are plenty of lawyers who are also software people. For example, DannyBee[0] or rayiner[1] on HN.
That's why people are asking you if you're a lawyer like them; they have interesting perspectives and experience in both fields.
But no, it sounds like you're just a software guy who's read a wikipedia article like the the rest of us.
So, please, stop.
[0] https://news.ycombinator.com/user?id=DannyBee [1] https://news.ycombinator.com/user?id=rayiner
https://github.com/uutils/coreutils/blob/master/src/whoami/p...
looks suspically simmilar to:
http://code.metager.de/source/xref/gnu/coreutils/src/whoami....
The GNU coreutils are themselves rewrites of earlier BSD tools. The Rust version AND the GNU whoami.c both look similar to the BSD original https://github.com/weiss/original-bsd/blob/master/old/whoami.... Hell, the rust version is clearly a lot closer to the BSD original than to the GNU clone.
Honestly if you're going to have an opinion on this issue, you should try to educate yourself on all of the Unix that predates GNU.
Note well: IANAL. This is my understanding of copyright law, not legal advice.
Code is just tricky though and metaphors for books and other things often break down easily... API / module substitution copyright seems silly, but maybe only to people who understand programming or who can grasp the metaphor that copyrighting an interface is like saying any book that uses numbered chapters (instead of custom named chapters) is a derivative work of the first book that used numbered chapters. Some code "could be but one way", naming included / irrelevant (I think a lot of SO code is like this, there are very few ways to glue together certain bits of code to do small thing X in context C), some of it is more like performance art, some of it is just almost pure math, and some of it works as a whole to solve one particularly hard problem which in itself has business value, just as music has business value by solving the problem of being appealing to listen to so that people buy it. Copyright law seems ill-equipped to handle it. Strategically though, I'd go with what the lawyers advise -- a lawsuit that I win can still be more costly than just playing it safe to begin with.
No you're not. The law has exactly zero to say about this. The idea of "clean room" development is nothing more than a legal tactic used to ward off potential lawsuits from an aggressive adversary. It's in no way necessary to do this.
I would really like to know if licensing agreements (and copyrights) still apply to ported code (assuming there's no patents on the algorithm).
It would if they did indeed read GPL'ed code to implement this. The SFLC has advised us to make sure we do not read Matlab code when implementing Octave code. The only thing that is known to legally work is clean-room reverse engineering. It's ok to read independently-written specifications of how the software works and reimplement that. Reading the software itself and reimplementing it constitutes a strong case for derivative work.
Improving the general security and reliability of all systems seems like it might potentially be a more valuable goal.
This is a bit of a bugbear. The most common way to use the coreutils is through standard Unix pipes, which does not create a derivative work. I don't know of anyone who has found the copyleft of the coreutils prevents them from doing anything they would like to do. The situation with busybox and Linux is different, as the coupling there was much tighter, and without it we would not have OpenWrt.
I know from experience some organizations are perfectly willing to contribute changes back upstream on MIT/BSD-licensed components, but avoid GPL components simply because of the additional constraints and potential liability concerns that have to be dealt with. Apple is a perfect example given the additional conditions of the GPLv3.