Maestros del Web


Estás en Inicio / Editorial / Software Libre

14.06.2003

¿Y cómo hago para que mi código sea libre?

Tengo un programa, que escribí por tal y cual razón, y me gustaría que fuera libre, ¿qué tengo que hacer?

"Tengo un
programa, que escribí por tal y cual razón, y me gustaría que fuera libre, ¿qué tengo que hacer?" Esta es una pregunta bastante habitual en estos días, en los que tantos programadores (especialmente los que gustan de programar) se dan cuenta de lo poco que pierden y lo mucho que ganan haciendo que sus "juguetes"
sean libres.

Como siempre, hay al menos dos respuestas para ella: la corta y la larga. La primera es bien simple: escoge una licencia libre, y publica tu programa acogiéndote a ella. La segunda es bastante más complicada, y un tanto poco habitual. Este artículo trata de resumirla en un par de páginas (la respuesta completa probablemente llenaría al menos un libro).

Comenzar por el principio

Vale. Ya has decidido que tu programa estaría mucho mejor siendo libre. Ese amigo pesado te ha acabado de convencer, o quizás tú mismo has puesto en la balanza los pros y los contras y has decidido que lo mejor es librarlo. ¿Por dónde empiezas ahora?

Puede parecer
obvio, pero para comenzar, hay que asegurarse de que uno es el autor único de software que se quiere liberar (o si no es así, que todos los autores están de acuerdo con los términos de la liberación). Esta parte no es muy diferente
de su equivalente en el mundo propietario: sólo se puede comercializar un programa si todos sus autores están de acuerdo en ello, o han cedido sus derechos a quien lo comercialice. Si el proyecto ha empezado de cero, y es relativamente joven, esto suele estar muy claro. Pero no siempre es así. Especialmente en el mundo del software libre, pueden haberse recibido contribuciones de alguien que no conocemos, o quizás los términos en los que colaboró cierto programador están algo oscuros. Es muy importante aclarar todos esos extremos antes de liberar, si no queremos arriesgarnos a problemas futuros.

Una vez resuelto el problema de la autoría, debemos elegir, como indicaba la respuesta corta, la licencia. Según el enfoque de los autores, según sus intenciones prácticas, según sus motivos para hacer la liberación, se puede elegir entre una gran cantidad de licencias libres (puedes echar por ejemplo un vistazo la lista de licencias libres de la FSF o a las licencias aprobadas por la Open Source Initiative). E incluso crear la tuya propia. En general, cuando me preguntan, en esta fase hago dos recomendaciones: no escribir una
licencia propia (necesitas un buen consejo legal para asegurarte de su validez, y que consigue los fines que persigues), y en la medida de lo posible escoger una licencia popular (que maximizará la probabilidad de que los usuarios y colaboradores potenciales la entiendan, y por tanto sepan a qué atenerse). Normalmente, la decisión fundamental será entre una licencia "minimalista" (que deja al receptor del programa hacer casi cualquier cosa con él, incluido redistribuirlo como software propietario) y una licencia "copyleft" (que transfiere a quien recibe cualquier trabajo derivado del nuestro las mismas libertades de redistribución y modificación que nosotros hemos dado), como la GPL.

Con la licencia elegida, podemos empezar el proceso. Habitualmente, se marcarán con ella todas las cabeceras de los fuentes del programa, y se incluirán notas informando sobre ella visibles en tiempo de ejecución (por ejemplo, visibles en el apartado "Acerca de" de nuestro programa). Algunas licencias, como la GPL, incluso indican qué ha de hacer quien quiera usarla.

Siguiendo lo que antes llamamos "respuesta corta", el proceso terminaría empaquetando el binario y los fuentes (por favor, no olvides los fuentes), y subiéndolo a algún sitio de Internet. Pero en realidad, si tienes ganas de hacerlo bien, no has hecho más que empezar.

Infraestructura mínima

Si quieres que tu programa pueda desarrollarse según los modelos habituales del mundo del software libre (consiguiendo colaboración externa, haciendo liberaciones frecuentes, decidiendo de forma abierta sobre la evolución del código, etc.) conviene que montes una infraestructura mínima. Su objetivo será doble: conseguir visibilidad para ti como autor (ofreciendo un buen sitio con información relacionada con el programa) y facilitar la colaboración de otros desarrolladores (incluyendo las colaboraciones ocasionales, como por ejemplo los usuarios que informan de errores). Hoy día, esta infraestructura consiste habitualmente en un conjunto de herramientas e información accesible vía web. Por ejemplo, te interesará ofrecer al menos:

  • Una presentación del proyecto. Explicando qué hace el programa, en qué estado está, qué ideas hay para su desarrollo, etc. También es conveniente dar créditos a los colaboradores principales, y dejar claro que el proyecto admite colaboraciones (si es el caso, claro).
  • Por supuesto, habrá páginas que permitan descargar el software (fuentes y binarios). Estas páginas serán normalmente muy visibles desde la entrada al sitio, ya que es una de las actividades más habituales para los recién llegados.
  • Documentación y comunicados. Muchos usuarios y desarrolladores acudirán al sitio buscando información detallada sobre el programa, y sobre sus últimas novedades. Si es posible, deberían encontrarla rápidamente…
    Por supuesto, aquí se pueden incluir contribuciones de usuarios (trucos de uso, guías de instalación, capturas de pantalla, etc.)
  • Espacio para desarrolladores.
    Como mínimo con posibilidades de subir (y hacer seguimiento) de informes de error, parches, acceso a versiones no estables, etc.

En el fondo, y en la medida de lo posible, el sitio del proyecto tratará de crear a su alrededor una comunidad. Cuanto mayor y más estable sea ésta, más fácil será conseguir la masa crítica de usuarios y desarrolladores que aseguren el desarrollo futuro del programa.

Pónselo fácil al usuario

Además de preparar bien el sitio del proyecto, es importante que cuando un usuario potencial lo visite sea fácil convertirse en usuario real. Por ejemplo, además de proporcionarle los fuentes con instrucciones claras y lo más sencillas posibles sobre su compilación e instalación, estará muy bien proporcionarle binarios listos para instalar.
E incluso versiones del programa ya empaquetadas para las distribuciones más populares (lo que además facilitará su inclusión en esas distribuciones, claro).

Además, el usuario debería poder instalarse fácilmente en su propio ordenador la documentación disponible (para poder acceder a ella cuando no esté conectado). Los foros con información para novatos, las referencias a experiencias de otros usuarios, las listas de correo donde pueda hacer preguntas, etc. ayudarán a que el usuario saque rápidamente partido de tu programa.

En general,
procura dar facilidades al usuario. Ten en cuenta que en muchos casos la primera impresión que se llevará del proyecto será el sitio web. Si puede encontrar en él rápidamente lo que busque, si la impresión general es buena, ya tienes dado un primer paso muy importante. Luego, cuida la instalación. Si es posible, que no tenga que hacer nada salvo lo habitual en su distribución. Si el usuario llega a ese punto, el resto ya puedes dejarlo en manos de tu maravilloso programa…

Ya que estás en ello, aprovéchate

Cuando tengas listo el sitio web, y la primera versión de tu programa que quieras liberar, haz todo el ruido que puedas. Aprovéchate de los medios de difusión que la comunidad del software libre pone a tu disposición. Por ejemplo, sube un anuncio a Freshmeat. Avisa en las listas de novedades y en las especializadas, según el tipo de programa que hayas hecho.
Y ofrece en tu sitio listas donde cualquier interesado pueda recibir a partir de ese momento novedades sobre el programa.

Como autor de un programa libre, hay más recursos de los que te puedes beneficiar, pues están puestos a disposición de los desarrolladores de esta comunidad. Los más significativos son sitios como SourceForge, Savannah o Berlios, que proporcionan unainfraestructura genérica para el desarrollo de proyectos, muy similar a (y más completa que) la expuesta en el apartado anterior. Además, su uso también servirá en cierta medida de medida de promoción, ya que sus servicios de búsqueda de proyectos son cada vez más usados cuando se quiere encontrar un software dado.

Y esto es sólo el principio

Liberar un programa puede ser tan simple como ponerlo en la red, o tan complejo como quieras, si tratas de hacerlo con el mayor impacto posible, y beneficiándote lo más que puedas de ello. Pero lo hagas como lo hagas, es sólo el principio. Es posible que a pesar de tus esfuerzos no logres interesar a nadie en tu fabuloso programa. O quizás todo lo contrario: puede que te sorprendas de la gran expectación que tu juguete causa ahí fuera. En este caso, prepárate para satisfacer a tus nuevos usuarios, y quien sabe si incluso a desarrolladores que ilusionados por tu trabajo, estén más que dispuestos a contribuir sus ideas, su tiempo y su trabajo a tu proyecto.

Ten en cuenta que la "gestión" de un proyecto libre no es algo que salga gratis, ni en tiempo ni en recursos, y que en el largo plazo tendrás que tenerla muy en cuenta, si quieres que el proyecto sea exitoso. Hace falta unas habilidades especiales, habitualmente bastante distintas de las del "programador solitario" para saber motivar, atender y satisfacer a un grupo de colaboradores voluntarios, y a una buena cantidad de usuarios. En cualquier caso, hay cosas que se pueden aprender al respecto, pero eso queda ya para otro artículo.

Como último comentario sobre la liberación de tu proyecto, ten en cuenta que si tienes suerte, y sabes gestionarla, puede que veas florecer las más puras esencias del mundo del software libre a tu alrededor… Y de todas formas, lo que es seguro que de todas formas merecerá la pena. ¿No crees?

©2003 Baranda.

Se otorga permiso para copiar y distribuir este documento completo en cualquier medio si se hace de forma literal y se mantiene esta nota.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (No hay votos aún)
Loading ... Loading ...

Sobre el autor

Jesus M. Gonzalez-Barahona
Colaborador de la revista TodoLinux

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

17 comentarios en total.

  1. cvander 17.06.2003 - 10:29 - #

    Muy buen artículo. Me ha parecio muy interesante el análisis de la infraestructura mínima que es muy importante ya qu eserá la principal arma de mercadeo del programa. También me parecen muy informativos los enlaces sobre las licencias. Felicitaciones por el artículo!

  2. Cluster 17.06.2003 - 11:22 - #

    Bueno .. me gustaría que se profundizara (tal vez para un nuevo artículo) sobre aspectos legales y técnicos para licenciar un software como “Open source”. Por ejemplo bajo GPL que es de lo más común ..

    En la parte legal .. me refiero por ejemplo si tengo algún organismo internacional donde registrar mi aplicación o he de ir por los caminos de “derecho de la propiedad intelectual” y demas historias de cada pais .. O incluso a lo “bruto” .. irme con mi código a un notario o algo así …

    En la parte técnica .. Por lo que veo .. siempre que se licencia se incluye el texto original de la licencia que usemos en el código o bien en un archivo incluido en el “pack” que hagamos de nuestra aplicación .. En otros sólo veo un “link” hacia la documentación de la licencia en cuestión …

    Por lo demas .. los links hacia sítios donde publicar Open souce .. consejos sobre promoción y demas me parecen buenos, pero como hago mención .. falta lo más importante que es llevar todo eso a la práctica (en la parte “técnica”) y conocer algo sobre el tema legal (a ser posible “internacional”).

    Un saludo,

  3. Unregistered 24.06.2003 - 16:26 - #

    Puede ser que si es libre no importa la porqueria de licencia

  4. josemi 25.06.2003 - 05:54 - #

    Hola,

    El software “libre” es “libre” porque se distribuye bajo una licencia “libre”.

    Estoy de acuerdo con lo que comenta Cluster. La idea y espiritu del software libre esta bastante clara. Incluso la parte del desarrollo del software es bastante estandar, aplicable a soft no libre.

    El mayor escollo es la falta de informacion legal y administrativa que existe. Por ejemplo, la traduccion al castellano de la GPL es simplemente “orientativa”. No olvidemos de que aunque sea una licencia libre, sigue siendo una licencia. Eso entra dentro del ambito de las leyes. Habria que ver que dice un abogado de esto. Y cada licencia es un mundo. Y tambien aclarar ciertos terminos en determinados entornos (¿Que es distribuir en el mundo web? ¿Que los usuarios visiten tu web (ejecuten tu aplicacion)?).

    Y cosas como que implica aplicar la licencia libre sobre tu codigo. ¿A quien pertenece el codigo, los derechos de autor? Por ejemplo, si yo hago un script desde 0, lo licencio como GPL, pero a la vez meto el codigo en una aplicacion comercial. ¿Seria legal?

    Y otras dudas mas concretas que se deberian aclarar acudiendo a un abogado. Y teniendo en cuenta que las leyes cambian de pais a pais …

    Saludos.

  5. cvander 25.06.2003 - 09:34 - #

    Por ejemplo, si yo hago un script desde 0, lo licencio como GPL, pero a la vez meto el codigo en una aplicacion comercial. ¿Seria legal?

    He visto varias licencias que tienen puntos especificando esto.

    Algunas aclaran que todo el código puede ser utilizado siempre y cuando se mantenga libre. Otras dan la oportunidad de utilizarlo en aplicaciones de software propietario más solicitan mantener créditos.

    La verdad que pueden llegar a ser bastante complicadas, pero una vez quede todo claro y por escrito se entiende sin problemas.

  6. Andres 08.07.2003 - 15:28 - #

    Creo que es conveniente al respecto, además de lo que este buen articulo resalta, contratar los servicios de un Abogado, teniendo en cuanta que las leyes en materia de derechos de autor no son mundiales….

  7. maria 23.09.2003 - 13:13 - #

    me parece interesante e inportante estoy a favor del software libre

  8. maria 23.09.2003 - 13:15 - #

    me parece interesante e inportante estoy a favor del software libre como ejenplo enviar un software por internet
    atte

  9. Mickel 23.09.2003 - 21:59 - #

    No esta de mas invitar a que ofrezcan su software libre en alguno de estos sites:
    http://www.maestrosdelweb.com
    http://www.solowebmasters.com
    http://www.talleresdelweb.com
    que son solo unos cuantos entre muchos otros…

  10. Unregistered 19.10.2003 - 21:40 - #

    LiveCMS es un administrador de contenidos con licencia GPL

    Daniel Calisaya

  11. fereso@yahoo.com.mx 13.11.2003 - 02:42 - #

    Hola, desearia saber, si existe una restriccion de acuerdo al lenguaje usado para el programa, en forma concreta, desearia saber, si programa que compilo en JAVA , puede ser por ejemplo GLP, y si se puede, si es necesario comprar la licensia de SUN, o puedo hacerlo con el jsdk que obtuve desde su pagina de SUN gratutito.
    Les agrdecere una repsuesta .
    fereso@yahoo.com.mx

  12. matigro 07.08.2005 - 22:07 - #

    Si la memoria no me falla, el codigo de un software (programa) se toma legalmente como si fuera un texto de un libro o cualquier publicacion, y las leyes que lo rigen son, primero las locales (de cada pais) y luego existe una internacional (o viceversa). La persona que publica el codigo fuente de un programa puede poner al principio que licencia dara a los demas con respecto a éste. Y con solo poner el (R)-Registrado- en el codigo, ya pasa a ser de su autoria, para cualquier eventualidad legal.
    En la Argentina, un buen lugar para averiguar es: http://www.softwarelegal.org.ar

  13. usuario 21.07.2006 - 17:53 - #

    Josemi: no puedes (a no ser que esa aplicación comercial también sea libre con licencia GPL), la GPL no te permite poner otra licencia al código. Un código GPL solo puede ser modificado, o incluido en otro proyecto si el resultado final es un proyecto GPL.
    Por eso es mejor la licencia MIT o la BSD modificada, porque te permiten sublicienciar el código, e incluirlo en programas comerciales.

    // http://www.gratisweb.com/pucelo/xvigas //

  14. Enric Tartera 28.11.2006 - 02:45 - #

    Muy interesante, gracias por todo

  15. LUPITA 02.09.2007 - 11:32 - #

    PUEDO PONER CUALQUIER NUMERO EN MI CODIGO

  16. LUPITA 02.09.2007 - 11:33 - #

    PERO PUEDE TENER NUMEROS TAMBIEN VERDAD?

  17. LUPITA 02.09.2007 - 11:34 - #

    A PERO LE PONGO UN CODIGO Y ME LO RECHAZA ENTONCES COMO LE AGO

Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


Boletín

Agrega nuestro feed a  Netvibes
wikio Add to Technorati Favorites

-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress