lunes, 15 de febrero de 2016

Licenciando tu código

Usar licencias en nuestro código nos ayuda en muchos aspectos. Impide que otro se apropie de tu trabajo indebidamente, y nos da crédito, de cara a buscar un trabajo o poder desarrollar un rol como diseñador/programador en el futuro. Por eso, es importante colocar en las cabeceras, que tipo de licencia rige el código fuente, para que los demás puedan utilizarlo y respetarlo al mismo tiempo (si es permisiva claro).

Hay muchos tipos de licencia, me inclino especialmente por las de código abierto, ya que respetan las 4 libertades de los usuarios definidas por Richard Stallman. Es más,la página de GNU ofrece un completo listado e información útil sobre licencias, clasificandolas compatibles, incompatibles con GPL, y licencias no libres. Si tienes dudas, mira sus recomendaciones.

Libertades del software libre
Tipos de licencia más comunes actualmente (2016):
A chart illustrating compatibility relationships between different free software licenses.  For details, see the FSF's license list page.
Evolución

 En la parte final de los enlaces, tienes un ejemplo de que lineas poner en los headers para asignar a tu código la licencia, por ejemplo, apache:

/**
* Copyright [2016] [vgoni]
*
*   Licensed under the Apache License, Version 2.0 (the "License");
*   you may not use this file except in compliance with the License.
*   You may obtain a copy of the License at
*
*         http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software
*   distributed under the License is distributed on an "AS IS" BASIS,
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*   See the License for the specific language governing permissions and
*   limitations under the License.
**/

Que puedo hacer y que no cuando uso software libre:

En función de tus dependencias, podrás licenciar tu código de una u otra manera, como este suele ser un tema lioso, trato de resumirlo con un sencillo ejemplo. Supongamos que crear un proyecto A, que no sabes como licenciar, y tiene una dependencia B+ΔB con otra licencia, siendo ΔB los cambios que hayas realizado en la dependencia (pueden ser nulos).

  • Si B tiene una licencia GPL, entonces A y ΔB debe ser GPL obligatoriamente.
  • Si B tiene una licencia LGPL, entonces tu A puede ser cualquier otra, incluso software privativo, y ΔB debe ser liberado como LGPL.
  • Si B tiene una licencia MIT o Apache, entonces tu A y tu ΔB puede ser cualquier otra, incluso software privativo.

Espero que todas estas indicaciones te ayuden a elegir sabiamente la licencia que más se adecue a tu código. Todas tienen pros y contras, si quieres que algo se expanda si y solo si como software libre, derivados incluidos, GPL, si quieres lo contrario, MIT/Apache, intermedio, LGPL. Elige bien pequeño padawan.



No hay comentarios:

Publicar un comentario