Accions del document
Puc utilitzar un programa sota GPL en un desenvolupament propietari per a client?
Up to Table of Contents
La llicència GPL és una llicència lliure de tipus copyleft, el seu objectiu és mantenir lliure un programari ja distribuït amb aquesta llicència. És a dir, en relació amb un programa original obtingut sota llicència GPL (diguem codi A), si el redistribueixes o si el modifiques per a crear un nou programa codi C (per al client) i distribueixes C, llavors generalment la GPL t'obliga a aplicar la mateixa llicència a tot el programa distribuït. No pots lliurar-lo al client sota una llicència propietària.
Aquest és l'efecte recíproc (o víric) de la GPL i fa pensar que el programari amb llicència GPL sigui incompatible amb un desenvolupament propietari per a un client. Si es vol distribuir un desenvolupament amb una llicència propietària, generalment no es pot utilitzar codi amb llicència GPL. (Aquesta restricció només s'aplica si hi ha distribució del codi C. Per tant, un usuari final que no hagi de distribuir el nou programa, per exemple, un desenvolupador d'una empresa usuària pot integrar i modificar un programa sota llicència GPL, en el seu codi (propietari o no) sense cap restricció).
Tot i així, l'expressió utilitzar programari amb copyleft necessita precisions. Si ens fixem en el cas anterior del programa C, C serà la barreja del codi original A sota GPL i codi nou B teu (o de tercers) per a crear una millora o adaptació de A/B, o per a implementar les funcionalitats d'A en el programa client: C=A+B. L'efecte real del copyleft dependrà de la naturalesa del que hem anomenat mescla (el que representem amb el signe “+”).
En casos d'ús d'un programa sota GPL en un desenvolupament propietari, hi ha generalment tres casos:
- Modifiques A: Modifiques el programa GPL A amb adaptacions B, per a crear un nou programa C. En aquest cas, tot el desenvolupament ha de distribuir-se sota la GPL i no pot llicenciar-se de manera propietària a tercers. Exemple: modificar un element d'un programa sota GPL perquè s'adapti a un nou xip, entorn d'execucions, base de dades o servidor.
- Integres A: Integres el codi A sota GPL amb el codi B per a obtenir el programa final C. Si la integració es realitza per via enllaços estàtics, els mòduls es compilen junts i això té les mateixes conseqüències que el cas (1). Exemple: utilitzar un mòdul de codi o una llibreria sota GPL en el teu desenvolupament per a agregar funcionalitats (per exemple, integrar iptables per un firewall). La situació és menys clara quan els mòduls es relacionen per via enllaços dinàmics o altres tipus de interrelacions, quan no es compila el codi A en el programa. Hi ha molta polèmica sobre aquest tema, podeu trobar més informació a la PMF sobre obres derivades.
- Afegeixes a A: Utilitzes el programa A sota GPL com un component
"separable" de C. B utilitza A de manera independent: A i B seran autònoms
però relacionats. En aquest cas, el programa original A s'ha de
redistribuir sota GPL (o A i B si es distribueixen junts com un sol
programa). El teu desenvolupament personal B pot distribuir-se per separat
sota la llicència que vulguis. Exemple: Mambo es distribueix sota GPL, però
els templates o els mòduls realitzats per a instal·lar-se com interfície
d'usuari o funcionalitats addicionals no han de distribuir-se
necessàriament sota aquesta llicència. La integració la realitza l'usuari
final. Així mateix, per a instal·lar Mambo també s'ha d'instal·lar MySQL i
PHP, que també poden distribuir-se juntament amb el teu desenvolupament
propietari (template, mòdul, component).
Des del punt de vista legal, la reciprocitat del copyleft (casos 1 i 2)
s'aplicarà quan C es consideri una obra derivada. I quan es distribueixi o
publiqui. Llavors, cal entendre:
- Què és una obra derivada (i diferenciar-la d'una obra col·lectiva o composta)
- Quan s'ha de considerar que el teu desenvolupament és una obra derivada o una obra que conté un programa sota llicència GPL.
- Què significa distribuir o publicar un programa?. Es recomana llegir les PMF de GNU sobre la seva interpretació (no vinculant, però bastant persuasiva) de la GPL.
Alternatives
Potser al client no li molesti rebre codi sota la llicència GPL! Serà usuari final, i no voldrà redistribuir el teu treball. Tens obligació de distribuir el programa sota la llicència GPL a qualsevol tercer... si coneix la seva existència i t'ho demana.
El client pot contractar-te sota un contracte de prestació de serveis (work made for hire, en el dret dels USA). En aquest cas, segons els pactes del contracte en qüestió, qualsevol desenvolupament “propietari” que realitzis pot ser seu i pots integrar tot el codi GPL que vulguis. El codi final serà sota GPL, però com usuari final (sense distribució) les obligacions de copyleft no s'activen.

