Hacker News new | past | comments | ask | show | jobs | submit login

GPL (distribute your code) is better than BSD permissive (do what you want)? For whom?



For almost all of us.

Companies extend the BSD OSs with proprietary additions, then abandon the work and it gets lost. With Linux, everyone is forced to play nice and release under the GPL, and the work gets to live as long as people value it.

Hence the Linux kernel snowballing and taking over the world, whereas the BSDs have not, despite being at least as strong technically.

The better Linux gets, the more people target it, and the virtuous cycle continues.

Additionally, as it grows bigger and bigger, the more of the proprietary competition it crushes underfoot (sorry Solaris), and the more traction FOSS gets.


I actually created an account as this is one of those things that gets repeated a lot and IMO it simply isn't true.

1. The BSDs adoption was severely hurt in the 90s by the AT&T lawsuit, it basically stopped several years of development while the lawsuit legal status was clarified. Linux and the GNU tooling didn't have that problem. If the lawsuit never took place it is doubtful whether the Linux kernel would have got as much interest as it did at the time.

2. If you don't keep up contribute your changes back to upstream (whatever the license) eventually you will be left behind and have to maintain your own incompatible version. It is in your interest to send upstream patches.

3. GPL code gets stolen all the time and put into propriety software. I've worked at loads of places that have just straight out cut and pasted GPL code into their own product (usually this is done without management's approval). Large projects such as the Linux kernel companies can't really get away with it. However a lot of companies don't build software for the masses, most build bespoke software that is only deployed on one or two servers on a company intranet and the general public will never see it. A lot of developers will just straight up steal code (not caring about the license) from wherever. A surprising number of companies still don't even use source control, let alone bother reviewing code.

4. Companies do contribute back to BSD licensed projects, however this is normally financially not through patches.


> software that is only deployed on one or two servers on a company intranet and the general public will never see it.

I thought that, in this case, it's the company itself who is the "user" of the software and isn't obligated to do anything to/for/about upstream (since there is no stream.. they're not re-distributing it). In that sense, they're not stealing anything, just using what was, explicitly, free to use.


The code was compiled, so they cannot make modifications. So it is in violation.

You would be right if it was PHP / Python or something else that was interpreted.

The real point to take away is that any modifications will never reach upstream.


I don't understand what compilation has to do with anything, if the company (user) in question isn't distributing the software outside the company.

How is it any different from an individual making changes to GPL software and using it (compiler or interpretted) on a personal computer? Surely that individual isn't obligated to share anything, either.

> The real point to take away is that any modifications will never reach upstream.

The GPL doesn't mention, AFAIK, any such concept. I thought the point was freedom for users of software, not implied benefit to some "upstream" programmer.

IOW, since the GPL is about the user, it's about protecting "downstream" and, without redistribution, there's none to protect.


Maybe I didn't make it very clear. Each time I observed it the company I was contracting for was selling it to a 3rd party (where it was installed on premises) as a proprietary product.

>The GPL doesn't mention, AFAIK, any such concept. I thought the point was freedom for users of software, not implied benefit to some "upstream" programmer.

The OP specifically said that one of the benefits of the GPL is people had to contribute back because they have to make the code public. As we have discovered they don't.


> Maybe I didn't make it very clear. Each time I observed it the company I was contracting for was selling it to a 3rd party

Indeed, that wasn't at all clear. The comment to which I was responding only used the word "company" (singular and plural), without any modifiers, which I read as describing the same party.

That clears up some of my confusion, since that's an obvious violation (assuming source code wasn't available to those same 3rd parties, which you also didn't explicitly state).

> The OP specifically said that one of the benefits of the GPL is people had to contribute back because they have to make the code public.

Such an assertion (which I see in neither ancestor comments nor the article) still seems mistaken, so perhaps it's a strawman?

The GPL, IIUC, is meant to protect the user, aka downstream, not provide benefits to "upstream". If the binary itself isn't made public, then the source code need not be, either (though I suppose the user/customer in your scenario would have the freedom to choose to make it public, they have no obligation and little, if any, incentive).


From the OP

> Companies extend the BSD OSs with proprietary additions, then abandon the work and it gets lost. With Linux, everyone is forced to play nice and release under the GPL, and the work gets to live as long as people value it.


Yes, you're reading me right, but I skipped over the question of software which is never released publicly - mmt is correct that the GPL does not require public release of works, instead it prevents you from releasing the binaries while withholding the source.

'Secret' purely internal use of modified GPL software is not a violation - if the modified software is never distributed publicly, there's no issue.

(The Affero GPL licence is different in that regard, and was developed as a response to the software-as-a-service trend, but we're discussing the plain old GPL.)

Imperfect enforcement is a valid point, but the terms of the GPL are effective at least some of the time. Major technology companies do not want copyright scandals, even if plenty of fly-by-night companies are willing to risk it.


> 'Secret' purely internal use of modified GPL software is not a violation - if the modified software is never distributed publicly, there's no issue.

As the parent pointed out, purely-internal isn't what he meant. Distribution can be non-public, which is distribution nonetheless. Such distribution would require availability of source, but that availability wouldn't be public, if the original distribution wasn't public.

The parent seems to be focusing on "theft" (GPL violation) by relatively-unknown companies, which didn't necessarily occur. It's plausible that it did, but, even if the violation were corrected, since that correction doesn't require public release of source code, is likely irrelevant to the overall discussion.

You seem to be focusing only on publically-released software, which may or may not be the majority (by whatever measure).

I have no "side" in this, just trying to understand the points, which I've failed to grasp. Are you talk past each other?


The event did occur. I saw the source with my own eyes.

The point that you keep on ignoring is that the OP said "companies have to contribute back". One of my points is that they don't even do it though they legally should.

License arguments wasn't the point of my response. The point is that people will abuse goodwill and pretending that it doesn't happen is naive.


> The event did occur. I saw the source with my own eyes.

You didn't say so, and, even now, you're only implicitly saying there was a GPL violation. The details are important, in order to further understanding.

> The point that you keep on ignoring is that the OP said "companies have to contribute back".

I'm pretty sure I'm not ignoring it, because it didn't happen. That's likely the source of my confusion. You've certainly said so repeatedly, but I'm missing where anyone else in the conversation has said so (hence my thinking it's a strawman).

> One of my points is that they don't even do it though they legally should.

This does sound like you are, again, saying there are circumstances where contributing "back" is legally required, which is the assertion that prompted my own original response. I don't believe those circumstances ever exist. The only obligation is providing (contributing) source code forward. Only when "forward" is the public at large does that end up being, as a side effect, "back".

> The point is that people will abuse goodwill and pretending that it doesn't happen is naive.

I doubt anyone here is actually naive enough to believe it never happens, but there may be a belief that it's rare or exceptional. Without large-sample-size evidence, this can be short-circuited to the usual cynicism vs. "people are basically good" argument.


> This does sound like you are, again, saying there are circumstances where contributing "back" is legally required

NOPE. The context is the original posters words. We are talking about that and I am saying that contributing back doesn't happen magically because of the GPL.

I suggest you learn to keep the context of the argument in mind rather than keep focusing on being pedantic.

I am done with this conversation now.


> the original posters words

Since those words never mentioned contributing back, I was, understandably confused.

> I am saying that contributing back doesn't happen magically because of the GPL.

I don't see where anyone was saying otherwise, ergo you're arguing against a strawman.

> keep the context of the argument in mind rather than keep focusing on being pedantic

That only works for making a (counter-)argument, not attempting to understand the argument(s) in the first place.

In the instant case, I'm now convinced that any disagreement was based on a flawed premise, or there was no disagreement at all. My understanding of hwo the GPL functions (and is intended to function) remains unchanged.


To preface the rest of my response. One of my points why the GPL isn't magic is that developers will just "steal" code if is easier and most companies don't bother checking whether the code is violating licenses when supplying to a third party.

> Yes, you're reading me right, but I skipped over the question of software which is never released publicly - mmt is correct that the GPL does not require public release of works, instead it prevents you from releasing the binaries while withholding the source.

The fact it doesn't prevent you from doing that. It only really prevents large companies that people are watching.

Violations happen all the time. They just happen on smaller GPL projects.

> 'Secret' purely internal use of modified GPL software is not a violation - if the modified software is never distributed publicly, there's no issue.

The impression I get is that GPL advocates like yourself seem to think that the unwashed developers that work on proprietary code don't understand the GPL and have to be constantly told how a software license works. You aren't an enlightened individual because you understand a software license. I understand the license and the arguments about it just fine.

There is an issue with stuff not going back to upstream. If a defect fix only happens in downstream that is generic enough that it should benefit everyone then only downstream benefits, this things don't get contributed back and there is no improvement of upstream.

> Imperfect enforcement is a valid point, but the terms of the GPL are effective at least some of the time. Major technology companies do not want copyright scandals, even if plenty of fly-by-night companies are willing to risk it.

The flyby night companies as you put it are the majority, not the minority. If it isn't a big project most companies won't get found out.

Again GPL doesn't magically make people contribute back, which was my original disagreement with your comment.


> Again GPL doesn't magically make people contribute back,

That's my understanding, as well, but that was never asserted, only "play nice", (re-)"release under the GPL", and "gets to live as long as people value it" as you were able to quote upthread.

This seems like contributing forward, not back, or downstream, not upstream.

The eventual effect, for publically-released software, usually ends up being an upstream contribution, but that's not automatic.

I'm not an advocating any particular license, but it does seem like you're responding to a strawman that nobody in this subthread (GPL advocate or not) has argued.


This is classic. I've been around the block mate.

Apparently I am responding to a strawman after the OP actually replied and said my assessment of what they said was correct.

This is why I dislike speaking to the FSF crowd. It is much like a religion (as far as I am concerned).


If that were true, BSD-licensed projects like PostgreSQL, LLVM, Xorg, or Apache would die off long time ago, replaced by their GNU-licensed counterparts. Yet we're witnessing the exact opposite happening.

Licenses don't work like you think they do. In fact, they work backwards: the decision whether to release the source or not doesn't depend on the license, it's the license - and thus the choice of existing software to base your work on - that depends on the decision on whether not to release the source.

BSD makes it possible to release your changes if - and when - you see fit. GPL - doesn't. That's why companies like Sony or Juniper couldn't base their products on Linux. Sure, Sony doesn't give back - but eg Juniper does.


Using the GPL doesn't guarantee you that your project will take over the world. Using a BSD licence doesn't automatically doom your project. But in the case of the Linux kernel, its use of the GPL appears to be the reason for its success - it's not that it always had compelling technical advantages over BSD.

This is Torvalds' idea, not mine [0] (though he doesn't speak to Linux-vs-BSD directly)

> Sure, Sony doesn't give back - but eg Juniper does.

But in aggregate, Linux has taken over the world, and BSD hasn't. The 'snowball' effect is real.

[0] https://www.cio.com/article/3112582/linux/linus-torvalds-say...


Then again, it didn’t help GNU Hurd, or othe GPL-licensed systems. So my guess - given a number of examples - is that it’s not the license that helped Linux.


> Juniper does

I hope they didn't. But if they try, triple check, or better rewrite :)


Hence why companies are now trying to move away from Linux on embedded, e.g. ARM mbed, RTOS, Zephyr, Fuchsia, ....


Nothing to do with the license.

These systems do things that Linux just can't.

Linux is no RTOS, nor does it have a pure microkernel architecture. It can't do anything where latency guarantees are needed (hard realtime) nor high assurance, nor any actual semblance of security.

I suggest these posts: https://microkerneldude.wordpress.com/2018/08/23/microkernel... https://blog.darknedgy.net/technology/2016/01/01/0/


Fuchsia definitely has something to do with the license. Currently Google is forced to release their changes to the kernel.


I really do not see a connection between both sentences.

There's far enough technical reasons to ditch Linux for a cleaner design.


Sure, Linux doesn't have a total monopoly in every domain. Sony used FreeBSD as the basis of the OSs of the PlayStation 3 and the PlayStation 4, for instance, and the work they did will never be contributed back.

I don't see any proprietary Unix seriously competing with Linux any time soon though.


The OSes that I have listed have all BSD style licenses, nothing proprietary about them as such.

As for competition with proprietary UNIX, probably not against Aix or HP-UX as they survive on maintenance contracts for big customers like banks and telecommunication companies, but Linux is still no match for high integrity computing OSes, many of which are micro-kernels with POSIX userspace available as possible API.


> The OSes that I have listed have all BSD style licenses, nothing proprietary about them as such.

Yes, I know - but the software which ends up getting deployed/used/sold will be proprietary forks, right? That's the whole point: the licence is friendly to proprietary forks.

> Linux is still no match for high integrity computing OSes

Sure, VxWorks is safe.


>Sure, VxWorks is safe.

That goes beyond strawman.

Try reading: https://microkerneldude.wordpress.com/2018/08/23/microkernel...

For as long as Linux is a monolithic design, the whole kernel is going to be part of the TCB.

And thus, you should be skeptical of any claims of Linux providing security.


> That goes beyond strawman.

It's a strawman when I agree with someone?

> And thus, you should be skeptical of any claims of Linux providing security.

When did I say Linux has perfect security?

I presume the point you're trying to make is that different operating systems, with different architectures, can beat Linux in various regards. Of course this is correct. But for a general-purpose multi-platform Unix-like OS, Linux is king, and will be for the foreseeable future.


The BSD-like license is used not only in BSD operating systems and these projects like Python, Golang, SBCL with BSD-like license playing nice.


Trust me, you aren't going to solve this political battle in this comment section.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: