9 ms·
What are the licensing implications for this kind of work? I assume the authors used GNU coreutils as more than just inspiration. They probably read all the ori
by mapleoin 11y ago
What are the licensing implications for this kind of work? I assume the authors used GNU coreutils as more than just inspiration. They probably read all the original code and reused some of the solutions (obviously ported to Rust).
Shouldn't the derivative work still be covered by the GPL?
- steveklabnik 11y agoWell, that's a very large assumption, and it is a big part of that answer. 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.
- pron 11y ago"Maybe glance" might well make it derivative.
- steveklabnik 11y agoIt might. I'm hedging because I can't even asset that I've _never_ looked at it, I've been doing C off and on for a very long time. But regardless, my two or three patches aren't the worry here. Or rather, every patch is, but if it came into question, they'd be easily removed.
- epistasis 11y agoThis is very very weak grounds for any sort of lawsuit. 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.
- ktRolster 11y agoIf you're not trying to copy someone else's product, then you're probably ok
- dublinben 11y ago>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.
- TheCoelacanth 11y agoCan you guarantee that you will never write a piece of software under a non-GPL license for the rest of your life? I certainly can't and I suspect that few programmers other than RMS can.
- jordigh 11y ago> This is very very weak grounds for any sort of lawsuit. Not according to the lawyers who have advised us GNU Octave developers to never read Matlab source code.
- jahewson 11y agoYour lawyers are peddling FUD because they make money that way. "Hey, it looks like you need another legal agreement, can't be too safe!" The reality is that an "unintentional copying" claim against source code makes for a very weak lawsuit and it's close to unimaginable that such a case would even make it into a court room. You're free to read whatever you like. Don't let anybody tell you otherwise.
- jordigh 11y ago> Your lawyers are peddling FUD because they make money that way. 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.
- jahewson 11y agoSigh... I feel like I'm not getting through to you here. Yes your layer works pro-bono but the rest of the time he works for money, and his entire conception of legal advice revolves around that. What's good for the goose is good for the gander: Your lawyer isn't paid to understand the law. He's paid to protect you from other lawyers. And other lawyers peddle FUD, so your lawyer has to protect you against FUD. Of course he's going to advise you to protect yourself! And if you've got an aggressive adversary, then you probably should. 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#Examples https://en.wikipedia.org/wiki/Clean_room_design#Examples
- jahewson 11y agoNope. Reading something does not make any future work you do derivative. Discouraging people from reading and understanding the work of others is a particularly bad idea.
- pron 11y agoThis is a terrific project idea, but I agree that it should likely be under the GPL. Even if it is not legally derivative, it would be nice to preserve the GPL.
- binarycrusader 11y agoSometimes the maximising the likelihood of a set of components being used is more important than potential licensing constraints. In this particular case, if they're not GPL, they're more likely to be used for various *BSD systems and in a variety of embedded contexts. Improving the general security and reliability of all systems seems like it might potentially be a more valuable goal.
- nickpsecurity 11y agoI'm with you there. Plus, mobile and embedded means lots of stuff gets integrated tightly with hardware. Those people will not risk hardware or interface secrets in firmware being released under GPL. So, having BSD'd stuff for them to use in stuff we have to buy is a nice quality improvement for us. Even Stallman admits it's better for things standardized between proprietary and FOSS like codecs where they surely won't use GPL stuff.
- jordigh 11y ago> In this particular case, if they're not GPL, they're more likely to be used for various *BSD systems and in a variety of embedded contexts. 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.
- binarycrusader 11y agoI understand and agree with your particular assertions about copyleft and unix pipes, etc. but disagree that it's a "bugbear". 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.
- amelius 11y agoIsn't this the same question as Google copying the API of Oracle's Java libraries?
- TallGuyShort 11y agoIMO it's a little more complex: there's the question of copying interfaces, and the question of reverse engineering the implementation behind them. Many man pages are written such that it's clear how you should implement the logic so that all flags, etc. are interpreted in a well-defined and consistent manner with the original. But it's a billion times easier to just check out the source code for some of the tools and rewrite. Much easier, but possibly a different legal situation.
- jahewson 11y agoThere's nothing wrong with reading the source code. You're allowed to read whatever you like! Just don't copy it.
- TallGuyShort 11y agoWell there's the rub - once you see the source code, it's tough to say you weren't influenced by it. In for-profit endeavors this kind of thing is typically done by having two separate groups of people, one that sees the competing product and writes detailed descriptions of behavior, and one that never sees the product, only the product of the first group. If you're careful about this and go to pains to keep the groups strictly separated, you're in the clear. If you've read the source code and go and write very similar source code, you're considered tainted from an intellectual property perspective. It doesn't prove you copied them, but you certainly lose a lot of moral high ground. In this case, I doubt many of the copyright owners are going to care, let alone actually pursue legal action. But seeing the source code is legally dangerous at times. I am not a lawyer.
- AnimalMuppet 11y agoWe're talking copyright here, not patents. If I read copyrighted C code, and rewrite it in Rust, I don't think a copyright claim can touch you, no matter how similar they are. Note well: IANAL. This is my understanding of copyright law, not legal advice.
- jeena 11y agoJust to give an example: https://github.com/uutils/coreutils/blob/master/src/whoami/platform/unix.rs https://github.com/uutils/coreutils/blob/master/src/whoami/p... looks suspically simmilar to: http://code.metager.de/source/xref/gnu/coreutils/src/whoami.c http://code.metager.de/source/xref/gnu/coreutils/src/whoami....
- epistasis 11y agoWhat's suspicious? Sharing the same two system calls in the same order, for a trivial function that really can be implemented the same way?
- yxlx 11y agoReally? I don't see much similarity.
- kbenson 11y agoI'm not sure picking a program where the portion that does any actual work is 3-6 lines in length is a good reference for whether they are copying code/algorithms. There's so little of substance to actually do differently, the chance of them looking similar in that respect if fairly high.
- protomyth 11y agoThe rust version looks more like the old FreeBSD version http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/1.0-RELEASE/ports/shellutils/src/whoami.c http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-relea...
- jahewson 11y agoNo it really doesn't. Code which implements the same API is going to look pretty similar, for example ReactOS looks a hell of a lot like Windows. But it's not been copied.
- kps 11y agoAnd they both look equally similar to usr/src/cmd/whoami.c in 3BSD (1978).
- 11y ago
- coldpie 11y agoI've contributed to this project, and yeah, this was a major concern for me while I was doing it. If it shared a license with GNU coreutils, then code sharing would be free and the project would be built much faster because I could just use coreutils's algorithms. As it is, I haven't done any real, hard work for it because frankly, I won't want to re-invent that wheel. 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.
- pnathan 11y agoI've submitted an issue asking to shift to a GPL license. 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.
- ChristianBundy 11y agoLike many other programmers, I avoid GPL'd code like the plague. The idea that you can own an idea seems ridiculous to me, and it feels unjust to sue "random corporations" for using ideas that you published. We're standing on the shoulders of giants, and I see the GPL as a tumor that's draining the world's resources. Just my two cents.
- coldpie 11y agoIt's not about owning an idea, like a patent is. It's about receiving payment for someone else using the code I developed. The price for using my code is that you also release your source code. If that price is too high, you can't use my code. The hard part is defining "use my code" in the context of reading my source, then using those ideas in your own project. At what point does it change from gathering an idea to just copying my code?
- rmc 11y ago"Your money or your source code, which do you want to give up?"
- thedevil 11y agoDoes anyone have more solid info on whether the GPL would apply in this case? I would really like to know if licensing agreements (and copyrights) still apply to ported code (assuming there's no patents on the algorithm).
- dublinben 11y agoPorting a program from one language to another would seem to be a pretty clear example of a derivative work. In this case, the original license (GPL) requires that any derivative works be offered under the same license.
- jordigh 11y ago> Does anyone have more solid info on whether the GPL would apply in this case? 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.
- jordigh 11y agoReading GPL'ed code and reimplementing it makes a good case for why the rewrite should also be GPL'ed. I don't know if they did this here, but if so, they should GPL their version as well. 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/LpsmIJPWHY8 https://groups.google.com/forum/#!topic/pystatsmodels/LpsmIJ...
- frutiger 11y ago> This is because, should it ever come down to it, we want to be able to ascertain that our implementation is completely original 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!)
- jahewson 11y agoYes, it is. This is an excessive level of caution which does not reflect the permissiveness of actual copyright law. However, there is the concept of "unintentional copying", which is effectively what you're describing, and which is still considered an infringement under copyright law, however it's very, very unlikely that such an argument would be used in court with regards to software, and even more unlikely that a jury would be convinced by it. It's really more of an argument for subjective and creative endeavours, such as hearing a music clip or seeing a logo design or piece of art, which leaves a strong impression. 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.
- jahewson 11y agoNo. It's not a derivative work. Creating a compatible piece of software is not copying. Even if you've seen the original code. If you're not literally copying and pasting code, it's fine. Copyright protects the code itself from being copied, but the ideas, abstractions, overall design, and even individual APIs are not eligible for copyright protection
- timClicks 11y agoI don't think that is accurate. If your work is derived from the source - even if you don't replicate the original - you're infringing copyright. That's why clean room design is so important.
- AnimalMuppet 11y agoDefine "derived from". 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.)
- jahewson 11y agoNo, a "derived work" is a legal concept, it means "you copied the original". Being inspired by, or even deliberately designing for API compatibility with an original work is not "derivation" nor is it "copying", as far as copyright law is concerned. Remember only certain portions of the original are eligible for copyright in the first place, e.g. APIs are not, module or class structure is not, ideas are not. 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.
- justincormack 11y agoNo, copyright only applies to the actual text of the code. Ideas and algorithms are not copyrightable.