¿Realmente hace falta la cabecera de la licencia en cada fichero de código fuente?

Categorías: Opinión Programación

También, si intentas buscar una palabra en todo tu proyecto, y casualmente su nombre es una palabra de la licencia (copy, por ejemplo), te aparecerán coincidencias en cada uno de tus ficheros, y será difícil encontrarlo.

Es la antítesis de los principios DRY y KISS.

Como ejemplo, Odoo hace tiempo que unificó el copyright y la licencia en un solo fichero (antes de decidir cambiar a la licencia LGPLv3). El commit explica las bases legales para hacerlo, e imagino que deben tener buenos abogados; pero sigue quedando la posibilidad de que un fichero de tu código fuente sea leído desde fuera del árbol de código, con lo que el lector no pueda o quiera ver la licencia. ¿Qué cabecera podríamos colocar entonces?

Analicemos el texto de la licencia

This file is part of Foobar.

<one line to give the program's name and a brief idea of what it does.>

¿A quién le importa a qué programa pertenezca este fichero fuente? Al poner una cabecera a un fichero, estoy poniéndole la licencia a ese fichero, no al proyecto entero. Para eso ya están los ficheros README y LICENSE/COPYING.

Copyright (C) <year> <name of author>

OK, poner el copyright y el año es necesario. Pero si nuestro fichero está codificado en UTF-8, podemos abreviarlo con el caracter internacionalmente reconocido como copyright así: © <YEAR(S)> <AUTHOR(S)>

Foobar is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

O lo que es lo mismo: License: GPL-3.0 or later.

Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Si en la licencia da más detalles, ¿por qué tengo que incluirlos aquí?

You should have received a copy of the GNU General Public License along with Foobar. If not, see <http://www.gnu.org/licenses/>.

O sea que aunque no hayas recibido una copia de la licencia, eso no le quita validez porque se puede consultar online. Entonces bastaría con poner un enlace a la licencia.

Reduciendo la cabecera

Visto lo que hemos visto arriba, nuestra nueva cabecera podría quedar así, tal como hace tiempo se decidió hacer en la OCA:

© <YEAR(S)> <AUTHOR(S)>
License GPL-3.0 or later (http://www.gnu.org/licenses/gpl-3.0).

Sigue siendo molesto, pero al menos ya no tanto...

Comentarios

comments powered by Disqus