← Back to context

Comment by tombert

6 months ago

Things like this are why I have become disillusioned with Open Source, and why latest projects have been closed source. The GPL is a good enough idea but it is basically impossible for anyone to realistically enforce. If a corporation is selling an optimized binary, then it can be almost impossible to prove that there was any violation of the GPL without viewing the source.

Well, if you're writing open source because you want to write open source, then none of this matters. If you are worried about corporations stealing your work, that should drive you away from OSS. OSS should stay "hobbyist" for the individual developer.

  • Sure but it sort of devalues labor.

    If a corporation is stealing your OSS code (and violating a license) then that implies that they think your code has value, they might have paid a person to write that code but instead some hobbyist built it for free and a corporation steals it.

    A few months ago, I made a pull request to LMAX Disruptor, which was merged. I was initially excited because even if my PR was simple it’s still a big project that I contributed to. But after a few minutes it occurred to me that I just did free labor for a for-profit trading company. If they merged in my code then must have thought it had some value, and I decided to dedicate my time to saving this multi million dollar company some money.

    My PR there was pretty simple and only took me like 30 minutes (if that), so I am not going to cry too hard over this, but it’s just something that made me realize that if a company is going to use my work, they should pay me. I don’t think it’s wrong or weird to want to be compensated for my labor.

    I am still a hobbyist. Turns out you can still be a hobbyist without sharing everything you’ve ever done on GitHub.

    • It only devalues labor if it's leveraged specifically to do so. You could make this argument about literally any volunteer activity, software related or otherwise. The real devaluation of labor comes from things like the "gig economy" where costs and compensation are abstracted such that companies can exploit the naivete of workers who, generally speaking, are not accustomed to things like amortization and accounting for external costs, thus significantly driving down their own labor, operational expenses, and risks by passing them directly to the workers. At least open source projects are up-front about what's to be expected, and tend not to engage in exploitative practices.

      5 replies →

    • I submitted a PR to fix a bug in cloud-init a while ago.

      It was in my interest to do so, because it means I benefit from fixed packages in the Linux distributions I use. This saves me a ton of time in not having to maintain my own packages with my fix included.

      If it helps Canonical make money, then it’s no skin off my nose because I still got the benefit I wanted.

      I’m not going around fixing bugs that don’t affect me, or adding features I don’t need.

      9 replies →

    • > But after a few minutes it occurred to me that I just did free labor for a for-profit trading company. If they merged in my code then must have thought it had some value, and I decided to dedicate my time to saving this multi million dollar company some money.

      If you're not ok with that possibility than you probably shouldn't be participating in open source.

      And to be clear, there is nothing wrong with that. Its up to each individual to decide how they want to spend there time. There are pros and cons to open source, and you have to weigh how you feel about them yourself.

      However, its not like this is some secret trick. Its the central tenant of Open Source (esp. When using that name instead of Free software). It should be very clear that this is happening. Its the entire point.

      It kind of feels a bit like someone who doesn't like oranges, eats oranges, and then are surprised that they taste like oranges. By all means if you don't like oranges don't eat them, but if you knew you didn't like them why did you eat it in the first place?

      2 replies →

    • That's the caveat, the contract you sign when you start an open source project. You have to have the mindset of simply not giving a fuck about who does what with your code and how much they make from it. Then you can be at peace. If you don't want to (or can't) adopt that mindset for a particular project or at all, that's completely fine and normal. OSS is not for you. As soon as you want compensation for your work, things start to go south. See the whole core-js situation and what went down for an example.

      3 replies →

  • There’s a million reasons to want to write open source. A lack of attribution in particular is a killer for motivation.

    • i love open source because it feels like a kind of donation i can't make financially, so in a way, i'm trying to make up for that

      but yeah someone claiming it all falsely isnt good for the motivation

      6 replies →

> The GPL is a good enough idea but it is basically impossible for anyone to realistically enforce.

Really? If you find a piece of proprietary software does basically the same thing as yours, and the binaries contains the same strings/artwork, then it's reasonable to make a legal case of it. You can even contact FSF and they'll take it further.

  • If you can directly prove a violation dead to rights (or have enough cause for a discovery request) and you have money for legal defense, sure.

    A lot of open source stuff is libraries and utilities though that is pretty entrenched in the code. It is hard to even find out about a violation, let alone prove anything.

    Imagine I came up with a new algorithm to do Fourier Transforms 10% faster than FFTW (or whatever the current market leader is) and make a library and I release it as GPL. A company could fairly easily just import it to whatever project they’re doing, and it would be extremely difficult for me to prove anything, especially if I don’t have any obvious things like strings in there.

    That’s not even taking into account that it would be relatively easy for a corporation to just pay a junior engineer to do a direct “port” of the library to another language and pretending it’s their own independent work.

    • All completely true. And something you can clearly take into account when you decide what to do with your code.

      You may decide its worth people using it, reading it, learning from it, exploiting it, or you may not. It's your choice.

      Of course your work may be used outside of the license terms. That's pretty much impossible to enforce. That's true for most-all software, commercial or open or free. If that's your main objection to writing code then I recommend a different career. All good code is pirated. That's just how it is.

      3 replies →

    • > Imagine I came up with a new algorithm to do Fourier Transforms 10% faster than FFTW (or whatever the current market leader is) and make a library and I release it as GPL. A company could fairly easily just import it to whatever project they’re doing, and it would be extremely difficult for me to prove anything, especially if I don’t have any obvious things like strings in there.

      If you're doing something algorithmically different and unique, presumably that would show up in the assembly.

      > That’s not even taking into account that it would be relatively easy for a corporation to just pay a junior engineer to do a direct “port” of the library to another language and pretending it’s their own independent work.

      Important to keep in mind that copyright is not patents. If they are just stealing the "idea" of your algorithmic improvement, that probably isn't even a GPL violation. (This isn't fully right as they would probably have to use a clean-room design to avoid copyright infringement. My point is more that such a situation is pretty muddy and might actually be allowed)

      1 reply →

> If a corporation is selling an optimized binary, then it can be almost impossible to prove that there was any violation of the GPL without viewing the source.

I think you can notice that output looks similar, error messages are similar, etc. If the program is non-trivial its usually pretty obvious if its a copy or a reimplementation.

If it sounds plausible, presumably you could sue and read the source in discovery (ianal, not sure precisely how that works)

  • Being obvious to a developer poking at a product is quite disparate from successfully bringing a lawsuit involving source discovery.

  • There plenty of things that won’t make a noticeable difference in the output, especially in libraries.

    Let’s suppose I make a slight more efficient implementation of green threads, for example. I do not see how that would affect the output in a way that would be obvious, even if the library is non-trivial. Even if I slapped it with a GPL, I don’t see how I would realistically be able to check if they broke the license without first auditing the code, which I couldn’t do without a discovery request, which I likely wouldn’t have grounds for even if I could afford the lawyers for a lawsuit.

In general, I try to add a fingerprint into the output.

For example, in a project which generates images I usually set a specific set of pixels.

  • Sure, but if they have access to your code then a company could pay a junior engineer to look for any kinds of explicit fingerprints and remove it.