10 de Diciembre, 2006

La GPL, clientes y personalizaciones

En la mesa redonda de esta última edición de las jornadas de Elche salió un tema muy interesante en la ronda de preguntas, y por las caras de la gente parece que a más de uno le pilló por sorpresa.

Parece que en general existe la convicción de que desarrollar empleando la licencia GPL implica siempre distribuir código fuente, cosa que no es del todo exacto, como apuntamos René y yo mismo. Hay determinados casos en los que es un derecho, pero no una obligación.

A este respecto me parece muy inteligente la arquitectura de plugins que propone BulmaGés y BulmaFact, los dos proyectos de aplicaciones de gestión que nos vino a presentar René en una de sus charlas.

Aunque ya hablé de esto, en esa anotación comentaba más cosas, y no tenía un ejemplo tan bueno como tengo ahora :).

Me parece una idea brillante porque no recurre a la estrategia de licencias duales (los clientes pagan por obtener el producto con una licencia más permisiva, y para el resto se emplea la GPL y se potencia así el desarrollo en comunidad). Para el desarrollo del núcleo del proyecto trabajamos con GPL, y se define un mecanismo para incorporar añadidos, y esto es lo genial: también con GPL.

Modelo BulmaGés
Propuesta de IGLUES, de la ponencia de René Mérou

¿Qué significa esto? La licencia GPL indica que debemos distribuir el fuente con el binario, pero para el software que se usa en casa, no estamos obligados a publicar nada... porque no hay distribución:

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications[...]

Pese a lo que se suele entender, no se obliga a copiar y distribuir las modificaciones si no hay distribución en absoluto (aunque tenemos el derecho a hacerlo, si así lo deseamos).

Así que nuestro cliente pagará por una modificación, en forma de plugin, que no afecta al desarrollo principal, y recibirá el binario y el fuente (como indica la licencia, pues hay distribución). Ya con ese desarrollo pueden pasar dos cosas: que no se distribuya (se cumple la licencia) o que sí se distribuya, en cuyo caso se tendrá que incluir el fuente, como ya sabemos.

El desarrollo de estas personalizaciones en general nunca afectará al desarrollo principal, lo que he venido a llamar núcleo, porque normalmente se trata de cosas específicas para una empresa y que no nos servirán en realidad para otros casos (si sirviera para varios casos, es que debería ir en el núcleo).

Si lo pensamos un poco no anda demasiado lejos del esquema que emplean algunos desarrolladores de software privativo que dan la posibilidad a los clientes de comprar personalizaciones para un producto más general, pero a un coste menor (solo se paga por la personalización).

De esta forma tenemos las ventajas de un desarrollo bajo el modelo del Software Libre, con la protección que aporta la GPL, y además podemos realizar personalizaciones puntuales a clientes específicos de una forma atractiva para el empresario, que deja de tener la percepción de que está pagando un desarrollo para que luego se beneficien sus competidores (cosa que rara vez es cierta, no hay dos empresas que funcionen igual en los detalles).

Anotación por Juan J. Martínez, clasificada en: software libre, licencias.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: