Hacker News new | ask | show | jobs
by jsmthrowaway 4572 days ago
Please consider the Apache License or some other license instead of the GPL. There are many organizations that cannot use any flavor of GPL, including LGPL, for legal reasons. You can debate the wisdom of that amongst yourselves, but alas, that's how it is in some places.

(And I really want to try this...)

3 comments

"There are many organizations that cannot use any flavor of GPL, including LGPL, for legal reasons"

To be clear, there are no legal reasons I can think of that would ever prevent internal use of LGPL/GPL software.

You mean these companies (Apple, for example) have policies.

Policies like this often change because someone decides the cost vs risk tradeoff is worth it.

Changing a license because of bad policies of certain companies is not a great reason to change a license (in fact, it's, IMHO, an actively bad one).

You really should only change licenses if you find the license you chose does not suit the needs of your users (and policies are not really needs).

I find that to be a strangely ideological response. Your prospective users' requirements are up to them to decide, not up to you. They're the ones who are going to decide whether or not to use your software.
?? Of course they are up to the users to decide, but policies and needs are different. I'm curious, how do you think policies like this change?

Most of the developers i've seen will happily sell you a commercial license if you don't like the software. After paying for it enough, most companies start to ask "well, actually, how risky is this, really?", and this is how policies change.

In any case, my other point stands - there are no actual legal reasons to not use LGPL/GPL software internally. It would have zero legal impact.

If InfiniSQL was an established incumbent where the choice was between living with GPL and buying a commercial license I would agree with you, but it's a newcomer where the main choice is whether to use it at all.
I assume these shops have Linux in their environments, including the GNU toolchain. There must be some contradiction somewhere that I'm not aware of.

Based on FSF feedback, I'm going to modify the license to include a Classpath-like exception. The intention is to allow people to write stored procedures that link against infinisql without triggering the copyleft. Only if the source to infinisql itself is modified (and distributed) will the copyleft apply.

I'm curious to know the rationale against the GPL in general (not just the AGPL), and how those shops allow Linux & gnu toolchains in spite of their rule against the GPL.

Generally, Linux and the GNU toolchain are carefully managed exceptions and there is massive commercial pressure against continuing to use anything GPL-licensed. Linux itself is strong enough to hold out against this pressure, but other things like GCC are not, which is why there is so much work being invested into LLVM/Clang.
"massive commercial pressure against continuing to use anything GPL-licensed"

I actually generally see just the opposite - even automakers, who are traditionally stalwarts about anything, are now starting to use GPL software in cars.

"which is why there is so much work being invested into LLVM/Clang"

This is a weird opinion, that i've seen a few times.

This is not why LLVM was/is chosen, AFAIK. LLVM was/is chosen for greater control over destiny, a better platform, and a better community.

If LLVM was GPL there is exactly one company that would theoretically stop contributing (admittedly, it's been about 2 months since i calculated the list of companies that contributed in the past year). I doubt that would actually happen, too (mainly because I asked once if they would)

I was just at an LLVM social this evening, and not a single person there worked for a company that chose LLVM because of "massive commercial pressure against the GPL".

LLVM may have been a poor example, but I'm not sure that justified downvoting my comment when there are, in fact, lots of companies with more restrictive policies against use of GPL software vs. other licenses. (Not even necessarily contribution, but even use). That GPL is allowed at all is a result of the fact that there are some essential GPL licensed projects with no good alternatives, like Linux. InfiniSQL is not one of them.
Considering the adoption of llvm and clang came with a freezing of the version of gcc used/distributed by Apple to a version before a particularly notable GPL version (among other GNU projects being similarly frozen, like bash) was applied to it, it would take a hell of an alternate explanation to dislodge the notion that Apple's endorsement of the project wasn't significantly related to licensing.
This is an interesting rewrite of history. Chris gave a presentation at Apple and told them he could make a better compiler[1], and they hired him to work on LLVM (plus started to grow his team) well before they decided to stop contributing to GCC. There used to be parallel teams, each with about the same number of people. Hell, for a while, the LLVM team had less.

Apple was frustrated they couldn't get what they wanted out of GCC, and were getting patches and designs constantly rejected. This, combined with getting control over their destiny, and having serious needs for a modular compiler frontend for XCode (and their design for a compiler server/etc for GCC got shot down), plus Chris demonstrating good performance results + trajectory, led to them choosing LLVM.

But what do I know - I was there, in both communities, talking to the people who were involved in these decisions.

Realistically, if the SVP/VP in charge of Apple's developer tools had decided GCC was still the way to go, they would be working on GCC, GPLv3 policy or not.

Policies are not an end unto themselves.

All of this is completely orthogonal to the freezing of the GCC version. They could get what they wanted out of it in the pre-GPLv3 versions, given their future plans were LLVM based anyway, so they didn't make an exception for GCC when they banned GPLv3.

Of course, I'm not going to claim that apple didn't do other things more for licensing reasons, which a lot of can be explained by the desire to be able to share code between OS X and IOS in some places (and eventually, in a lot of places), and GPLv3 would have disastrous effects if they messed up. They calculated the eng cost, came up with "we have good alternatives, and can rewrite the rest", and did that, and banned GPLv3. However, they were making exceptions for years for certain pieces of software already. So if you had chosen any other example than LLVM, i'd probably agree with you. LLVM is just not a great example of "commercial pushback against GPL".

Apple's dropping of Samba would be a good example, since that is directly the reason they dropped Samba.

[1] One of my GCC friends walked out of this presentation complaining that he was selling them a bill of goods. Of course, he turned out to be wrong, but ...

I don't really think I've rewritten anything. Is anything factually wrong with my post? GCC's version in OSX' dev tools, along with bash and afaik all gnu binaries, was frozen at the last version available with gpl v2. This is plain fact.

The conclusion I've drawn from it is that GPLv3 was a significant driver in the decision to seek out and drive forward a non-GPL compiler project. I didn't say it was the only factor, but I stand by my conclusion that it must have been a significant one.

Thank you, Phil. I'm conflicted about this--I was convinced recently to move away from AGPL having to do with what I was previously unaware of as seemingly legitimate acceptance issues. I feel good about using GPL instead of AGPL.

But I'm conflicted about GPL vs Apache (or BSDish) in the sense that I'm getting the message that I have to bend over backwards just a little bit further before somebody, somewhere might be willing to use my software, maybe. Free isn't enough. I also have to let them fork it, keep it proprietary, wrap their own brand around it, before maybe they might consider using it.

That said, I really want people to use it, and of course help me hack on it. But I'm conflicted.

I say keep it GPL.. AGPL may be too far for many companies.. but GPL should be fine for the core product. As long as any protocols are well document, and client libraries are under more permissive licenses, I don't see an issue with it.
Cool. The wire protocol is PostgreSQL's, so they provide the clients (BSD).
You can do what you want because it's your software. But from the open source policies I've seen companies use, there are generally three lists of licenses. The first list is "you can use any open source software that follows these licenses". BSD, MIT, Apache, etc. are on this list. The second list is "you have to get approval from Legal to use software with these licenses but we would generally prefer for you not to." GPLv2 is generally on this list. The third list is "don't even think about it", and GPLv3 and AGPL are on this list.

My impression is that the second list exists solely because there exists GPLv2 licensed software with no viable alternatives to it. Unfortunately, your project is not one of them. It's your project so you can do whatever you want, but GPL is an obstacle to adoption in industry.

I'm very curious where you are getting this info.

I own open source licensing policy at one very large company (which doesn't really work like you suggest), and am in contact with about 50-100 other open source counsel on a regular basis, and the only software most ban is AGPL (and a few other licenses which aren't talking about here, as they are wildly uncommon).

Most companies also do not treat GPLv2 and GPLv3 differently from a licensing perspective, only those that ship embedded devices do.

At least, this is my experience. I'm curious where yours is coming from.

I'm a developer at a company that uses a lot of open source software, and I've spoken to other developers at other companies as well. Where I work, it's required to get legal approval to use GPL software. Software under more permissive licenses may be imported and used freely at the discretion of the development team. So in my experience, InfiniSQL faces a much higher barrier to adoption due to GPL.

Perhaps you work with companies where adopting technology stacks is more of a top-down decision where legal counsel is always involved. In those situations, GPL doesn't pose a particular barrier because all open source software faces that same barrier. But some companies give more autonomy to their developers, and in those cases there's a difference in overhead when managing GPL compliance.

It always funny when people include the Apache license like that, given that one of the two significant changes made between GPLv2 and GPLv3 was copying the apache license text into the GPL regarding patents. Sure, they did add a clause about patent agreement, but that is only relevant if you got patent agreements.

The second change from GPLv2 to GPLv3 is the DRM clause, or the "you can't use a technical method to bypass the legal requirements". Again, only really relevant if the company uses DRM, but would be willing to use GPLv2. That is a very short list.

So many reasons to keep GPL. They can use GPL just fine, it's just that they don't wanna contribute if they modify it.
> So many reasons to keep GPL. They can use GPL just fine, it's just that they don't wanna contribute if they modify it.

More charitably, they don't want to be _legally obligated_ to contribute if they modify it.