Tuesday, May 13, 2014

[ Liberación de un Proyecto bajo Software Libre ]

Aproximación práctica de algunas consideraciones que se deben tener en cuenta si decides liberar tu proyecto bajo lineamientos de Software Libre.

Primero:

Open Source = Free Software = Free Open Source Software (FOSS) = Software Libre

Los términos significan lo mismo, es decir que "el software" cumple con la Definición de Software Libre (https://gnu.org/philosophy/free-sw.es.html):
  • La libertad de ejecutar el programa para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1).
  • La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3).

En líneas generales el término Open Source tiende a estar mas relacionado con una visión 'Corporativa/Comercial', mientras que el Free Software con una posición mas 'Académica/Voluntaria'.

Segundo:

El licenciamiento o licencia que apliques a 'todo' el software es fundamental. Lo mas práctico es aplicar una de las licencias listadas en 'https://www.gnu.org/licenses/license-list.es.html' a todo el software, según las necesidades y objetivos que se tengan planteados. Un buen documento de referencia es este: http://docencia.etsit.urjc.es/moodle/mod/resource/view.php?id=5153.

Es importante que analicen adecuadamente el tipo de licencia que desean desde un principio, ya que una vez liberado y difundido el código fuente, resultaría mas difícil la modificación de la misma.

'Aplicar' la licencia al código fuente consiste básicamente en agregar el texto que describe el tipo de licencia a la cabecera de cada uno de los archivos/ficheros de tu software, o bien incluyendo explícitamente un archivo/fichero llamado COPYING ó LICENSE al directorio raíz del proyecto (http://www.gnu.org/licenses/gpl-howto.es.html).

Tercero:

Publicar y hacer disponible el código fuente. Si realmente desean que el proyecto sea difundido y eventualmente reciba contribuciones (a nivel de aporte de código),  es fundamental que provean mecanismos para que los participantes interactúen (repositorio de software, dominio de internet, sitio web, listas de correo, mensajería instantánea tipo IRC, bug tracking system, foro, etc.) Si por otro lado, lo que desean es tan solo publicarlo y que se encuentre disponible bajo los términos de FOSS, es suficiente con crear una cuenta en servidores tipo Github.com o similares (http://alternativeto.net/software/github/).

Cuarto:

Dependiendo de la plataforma o sistema operativo para el cual esta orientado el software, podrían considerar métodos de empaquetado para el proyecto, es decir, aparte de publicar el código fuente en crudo, también se suele comprimirlo en tar.gz y proveer los respectivos Makefile, producir los respectivos .deb .rpm según la arquitectura/distribución GNU/Linux, etc. (por ejemplo: https://wiki.debian.org/HowToPackageForDebian).

---
URJC - Máster en Software Libre.

1 comment:

  1. ¡Cuales quiera otras consideraciones básicas son bienvenidas!

    ReplyDelete