

Ask HN: Questions regarding choosing an Open Source License. - metonymie

Hi HN, how are you? I've been browsing the site for some time but have just registered today. I'm a developer that's been working on a project on a technology that's fairly new but I believe has lot's of potential. I have the intension of doing an open source release and I need to choose a license.<p>Now, I'm going to release this as open source regardless, because I do believe the technology has a lot of potential and I want this technology to be adopted. But I want to do it in such a way that does not impede the possibility of me building a business around it in the future. So far, I favor the Apache License 2, I have gone through the full text but I don't know how it compares completely with other FOSS Licenses . So I'm looking for some advice.<p>There is the question of what do I mean by starting a business around it. Just being able to build services or products that use the library.<p>Questions I have:<p>. If a (future, hypothetical) client requires that I build a derivative product that is closed source. Can I (as the copyright owner) still use the library?<p>. Can a (future, hypothetical) competitor, sell derivative works based on the library (that might be open sourced to their clients) and not make them publicly available?<p>. What other license should I be looking at?<p>If it might sound like I'm thinking about restricting usage, it's not my intention. But, in an hypothetical future scenario where a business ecosystem develops around this technology I would be starting with a huge disadvantage (I'm geographically isolated, I would have very limited options regarding financing or choice of technical partners) and I want to understand the full implications of choosing whatever license I choose.
======
gojomo
Apache License 2 is among the most 'liberal' in allowing reuse, inside other
open source or proprietary products.

As long as you're the copyright holder, you can always relicense the work
however you'd like, and in multiple ways simultaneously. Practically, you
can't revoke a previously-offered license for a prior version – people who
retain and distribute that version under the previous license can continue to
do so. But you can offer your own proprietary products based on your same
codebase, or let others do so with your permission.

If you start accepting outside contributions – which is usually something you
want to do, and a sign of a healthy project – your ability to relicense could
become more complicated, because then you're mixing others' copyrighted work
in, and they were probably assuming it'd stay under the license in effect when
they contributed. (If the governing license is Apache2, then they were already
giving very broad permission to reuse in other works, so even if you can't
'relicense' it should be OK to keep integrating their Apache-licensed
contributions into all sorts of other things.)

A competitor could also use your Apache2-licensed code in their own
proprietary offerings. Their extensions/improvements would be under whatever
license they prefer.

If that's a major fear, you want to look into 'Copyleft' licenses, of which
the GPL is the major example. They make use conditional on derivatives staying
free-licensed. That reassures some contributors, but can also prevent some
adoption you'd like to see.

~~~
metonymie
Thank you for the reply, it has cleared a lot of doubts.

I was really concerned about being able to reuse the code in a proprietary
release, since my possible clients are limited and you sometimes you have to
accept their conditions.

I will look at the GPL right now. The question I still have is whether a
possible competitor might (even under the GPL) do a release, open source it to
their clients but not make it publicly accessible, meaning I wouldn't have
access to their changes. If that is still possible, then I would stick to
Apache 2, cause I want the technology to be used.

Again thank you for your reply.

~~~
gojomo
The GPL's terms do not allow someone to make a derivative and then
'distribute' it to some (such as paying clients), unless they also make the
source available to others under the GPL.

But, if an unethical or confused competitor did convert your GPL'd code into a
proprietary release, you'd still need to find out, raise a public objection,
and possibly threaten/file a lawsuit to truly 'enforce' the terms.

~~~
metonymie
I understand but "make the source available to others under the GPL" may mean
give their clients source code under the GPL, not necessarily publishing said
source code on the internet. (Though of course, the client may publish it on
their own). Or I'm missing something and they do have an obligation to make it
accessible? Anyhow I have chosen the Apache License. Thank you for clearing my
doubts and for your reply.

~~~
gojomo
You should ask the FSF (the foundation around the GPL) for the finer details
of their preferred interpretation.

By my reading, essentially, anyone who gets a copy of the modified work must
also be given the right to give it to others, and to get the source code.

I suppose your competitor could try to conspire with some small, cohesive
group of customers to hide from you any evidence/copies of their derivative
product. But, the competitor can't make this secrecy a license condition of
using what they built from your code, without also violating the GPL's terms.
So you could then go after them for violating your copyright, if you know
they've added license terms.

(If they have violated your copyright/license, the remedy isn't automatically
that you or anyone else gets their source code under the GPL; it could be some
other correction/settlement/damages.)

~~~
metonymie
I have contacted the FSF on one occasion ( regarding a patent problem ) and
they weren't very responsive.

I have already decided on the Apache license 2 for this version of the
project. But it's just a quick and dirty release that is intended to showcase
the technology. I might in the future have to port it to a another language (
the project is too dependent on a library that's not actively being maintained
and I might have to write my own version ). If I do this I will definitely
look at the GPL license.

Again, Thank you for the reply.

