He visto numerosas licencias para cualquier tipo de software como GNU GPL, BSD License, MIT License y LGPL. ¿Cuál es el proceso para crear una nueva licencia de software, como la "licencia genérica de John Doe"?
He visto numerosas licencias para cualquier tipo de software como GNU GPL, BSD License, MIT License y LGPL. ¿Cuál es el proceso para crear una nueva licencia de software, como la "licencia genérica de John Doe"?
En términos generales, eso es todo lo que hay que hacer. En serio.
¿No me crees? Consulte la licencia de No ser un Dick de Phil Sturgeon (así como el WTFPL que la inspiró).
Dicho esto, es acertado o faltante si las licencias de software son legalmente exigibles , incluso si un abogado escribió ellos (al menos en los EE. UU., y depende casi totalmente del capricho del juez o de la autoridad de derechos de autor). Sin embargo, de manera más general, como autor del software, ya está cubierto por las leyes de derechos de autor de su país (suponiendo que haya tomado los pasos para que su trabajo tenga derechos de autor; en los EE. UU., Eso es en realidad haciendo el trabajo).
Se reduce a lo que quiere lograr con su licencia, más allá (o en lugar de) las leyes de derechos de autor. En el caso de licencias como la licencia DBaD de Phil, es en gran medida una cuestión de principio de honor y respeto mutuo.
Si desea que sea legalmente ejecutable (o al menos tenga la oportunidad de hacerlo), como lanzar un producto de fuente cerrada, es muy probable que quiera hablar con un abogado. De esa manera, puede asegurarse de que no haya lagunas evidentes y puede escribirlo de tal manera que sea más probable que un juez / partido gobernante decida a su favor en caso de que alguien lo viole.
EllisLab (la compañía detrás de CodeIgniter) tiene una gran explicación de las licencias de software (y todo semana de blogs sobre el tema, de hecho), tanto desde un punto de vista legal como desde el punto de vista de un desarrollador FLOSS y el principio de honor que mencioné anteriormente.
(Descargo de responsabilidad: No soy abogado, este no es un consejo legalmente vinculante, bla, bla, bla. Solo soy un desarrollador que ha tenido que andar de puntillas por el campo legal de minas que es el desarrollo de software y las licencias. En caso de duda, hable con alguien que realmente sea un abogado, idealmente con un enfoque de derechos de autor, patentes y / o licencias.)
Responda las siguientes preguntas para el usuario de su software:
¿Su producto es de código abierto, es decir, puedo obtener una copia del código fuente?
¿Qué puedo hacer con su producto? ¿Puedo usarlo en una computadora? ¿Puedo usarlo en más de una computadora? ¿Puedo redistribuirlo o revenderlo?
Si uso su producto como parte de otra aplicación que escribo, ¿también tengo que ser de código abierto?
¿Cómo garantiza su producto? ¿Eres legalmente responsable si tengo problemas?
¿Cuáles son sus términos de redistribución? ¿Puedo redistribuir su producto como parte de un producto que escribo? Si proporciona una fuente, ¿puedo modificar su biblioteca y redistribuir las modificaciones y, de ser así, qué condiciones debo cumplir?
Estudie otras licencias y vea cómo han respondido estas preguntas.
En realidad, es sorprendentemente similar a lo que hacen los desarrolladores:
Le da a un abogado (o al departamento legal en un cuerpo grande) una lista de requisitos para lo que la licencia permite y lo que no permite (por ejemplo, la licencia es solo para un usuario, es temporal, no puede usar el software). para algunos propósitos, etc.) y "traducen" esto en lenguaje de abogado, de manera muy similar a como traducimos los requisitos en código.
Por ejemplo, "la licencia es solo para un usuario" generalmente se traduce en algo similar a esto: "FooCorp Inc. le otorga una licencia única, no exclusiva e intransferible para instalar y usar FooSoftware para ... . ".
Podría pensar que esto no se aplica a las licencias F / OSS, pero es más o menos lo mismo, excepto que los requisitos son diferentes: puede encontrar la versión más sencilla de estos requisitos en enlace .
Pero la parte de abogado es esencial y no tiene sentido intentar escribir una licencia por su cuenta (a menos que sea un abogado con mucha experiencia en derecho internacional y relacionado con la propiedad intelectual). Alguien encontrará un resquicio conveniente, que le permitirá usar su producto de la forma que más le guste (iría tan lejos para comparar esto con los exploits).
Por supuesto, no pretendo que esta explicación sea completa ni siquiera correcta, pero es un resumen del proceso, en lo que respecta a los desarrolladores de software (por lo tanto, lo comparo con el trabajo de un programador).
Para responder a su pregunta, cualquiera puede escribir una licencia, ¡y se nota!
Aquellos de nosotros que usamos software para construir cosas y en realidad tratamos de respetar cada licencia, estamos listos para sacarnos la cabeza con un póquer caliente cada vez que alguien habla sobre hacer una nueva. Ya hay un número incontable de licencias de software en el mundo. El 99% de ellos son casi duplicados de licencias existentes más populares, excepto que no están tan bien pensadas.
Un sitio al que contribuyo tiene una licencia de tipo de atribución no comercial de Creative-commons, excepto que no dice nada sobre trabajos derivados. ¿Están permitidos? ¿Se pueden distribuir bajo la misma licencia? ¡Me supera!
Si otras personas contribuyen a un proyecto y alguna vez desea o necesita cambiar la licencia, necesita que todos acepten cambiar la licencia, o está más o menos atascado con ella para siempre. Algunos de ellos pueden llegar a ser inalcanzables o incluso morir. No soy abogado, pero si no tiene un acuerdo de colaboración firmado por todos que le permita tomar decisiones sobre su licencia, creo que es SOL.
Es realmente difícil escribir una buena licencia. Incluso las mejores licencias de software están llenas de agujeros. Hay nuevas versiones de las licencias Apache y GPL periódicamente. Por favor, vea si puede encontrar una licencia que satisfaga el 90% de sus necesidades y úsela. La GPL Linking Exception o "Classpath Exception" es un gran ejemplo de esto. Estoy un poco preocupado por la afirmación que la gente de Hibernate tuvo en su sitio unos años, básicamente interpretando erróneamente la GPLv2 para que parezca que incluye la excepción Classpath. ¿Es esa la excepción classpath? No lo sabremos a menos que alguien los demanda.
Me parece que demandar es la forma más dolorosa de depurar tu licencia. Si usa una licencia que la gente ya ha demandado, existe una cierta seguridad de que funciona, y también un sentido de cómo funciona. Mejor aún, elija una licencia que haya sido juzgada en diferentes países. ¿Pensaste en cómo se interpretaría tu licencia en otras partes del mundo?
Si basa su licencia en una existente, es posible que las personas que se preocupan por cumplir los términos de su licencia no tengan que estudiarla durante años para averiguar exactamente lo que significa.
Si es posible, lo alentaría a que dedique sus energías y talentos a mejorar una licencia existente en lugar de escribir una nueva.
Lamento ser una gran alegría. Si estoy amargado, es porque realmente leo y trato de respetar las licencias de las personas antes de usar sus trabajos.
Escriba los términos, publíquelo con su software. Eso es todo.
Una pregunta, sin embargo, es por qué quieres hacerlo? No es improbable que las condiciones que desee agregar ya estén presentes en otra licencia de uso común.
Esto agrega un paso preliminar: verifique si realmente tiene que crear una licencia.
También es probable que algunas de las condiciones que desea cumplir sean defectuosas de alguna manera; agregando otro paso preliminar: lea acerca de los términos "únicos" que desea aplicar. Es probable que alguien más haya intentado dichos términos y los haya encontrado inoperables, o contraproducentes de alguna manera.