Hacker News new | ask | show | jobs
by mtravis 4573 days ago
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.

2 comments

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.

"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."

Interesting. We use about 8000 open source packages, and add roughly 90 a week right now.

"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."

Actually, i work at a company (Google) where autonomy is given. People are free to use basically anything but AGPL. We simply tell them what will be required of them if they use it, and enforce that this happens.

The overhead of GPL compliance is not any more than the overhead of any other license compliance, for us, in practice.

You still have to do stuff for BSD and MIT anyway, so you need a process that knows what is going into shipping software.

The short version is that:

Overhead is kept low by doing it as part of the same check-in process as any other source code (IE you don't fill out some magical form and send it to lawyers), among other things.

Shipping time is simple verification that nothing changed (and the build system will verify it anyway).

My experience is that companies find GPL compliance overhead higher because they aren't doing the right thing for other licenses anyway. In particular, they never produce correct attribution for MIT/BSD/etc, so having to do "anything at all" is higher overhead.

This experience comes from reviewing a large number of companies for acquisition :)

Google has a lot more top-down technical mandates than some companies (programming languages for instance), and I'm not surprised they're more GPL-friendly either.

I'm willing to concede that GPL is not a disadvantage to adoption by Google or any of the hundreds of startups Google might aquihire in a given quarter :)

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.