GPL en el lugar de trabajo?

12

Una vez me entrevisté en una empresa de consultoría donde surgió en la conversación que usan productos de código abierto (lo cual es genial, he usado ampliamente Hibernate, JBoss, etc.). Una cosa que me sorprendió es que cuando pregunté si usaron OSS con licencia GPL al escribir aplicaciones para clientes, dijeron "¡Claro, todo el tiempo! Mientras el cliente obtenga lo que quiere y esté contento". Ahora, no soy un abogado o un gran aficionado a las licencias, pero tenía la impresión de que al usar el código GPL (digamos alguna biblioteca que incluya), entonces se le exige que libere toda la aplicación bajo la misma licencia. Cuando señalé esto, recibí una respuesta rápida de "Bueno, les damos a los clientes todo el código fuente cuando hayamos terminado, así que eso realmente no es un problema".

No queriendo seguir presionando el tema (las entrevistas no son el lugar para argumentos como ese), lo dejé pasar. Sin embargo, eso todavía me preocupa sobre esa práctica particular del negocio. ¿Cuál es la palabra oficial en el código con licencia GPL y qué tan "abierto" debe ser? ¿Tiene que publicarlo y decir "Mi compañía usó esta biblioteca, así que aquí está el sitio donde puede descargar nuestra aplicación del sistema de compras y cumplimiento de pedidos que gastamos millones de dólares para construir"? En esta situación, ¿es correcta la compañía para usar el código GPL sin el conocimiento del cliente? ¿Es suficiente simplemente "darles la fuente"?

Ryan Hayes
fuente

Respuestas:

15

Se aplican las exenciones de responsabilidad estándar: yo no soy abogado y usted tampoco.

GPL, en esencia, se trata de proteger los derechos de aquellos que usan el programa para obtener y usar la fuente también. Que no obliga a que publique la fuente de cualquier programa que se escribe código GPL usos, sino simplemente que si publica un programa de este tipo también debe proporcionar la fuente.

Puedo escribir cualquier cantidad de aplicaciones para mi uso personal, obtener el código GPL y nunca dar el origen de esto a nadie. Puedo escribir tales aplicaciones para uso interno de mi empresa, y solo necesito proporcionar la fuente a aquellos dentro de mi empresa que usan el programa (en términos prácticos, tendría que hacerlo de todos modos si tuvieran alguna buena razón para solicitarlo). Si escribo un programa de este tipo por alguna otra entidad, me basta con dar ellos el código (y que quede claro que el programa se licencia GPL-) - si se van a distribuir, también se deben hacer la fuente disponible, Pero estoy fuera de la foto.

Por lo tanto, la única preocupación que podría tener su empresa de consultoría es que no informaron a sus clientes de la licencia bajo la que se encontraba el código que proporcionaron. En realidad, miento: si hubieran negociado una licencia diferente con sus clientes (el cliente posee todos los derechos de código ...) entonces también podrían estar en apuros sobre eso ... Pero esto es cierto para cualquier código de terceros : a menos que sea de dominio público, debe cumplir con la licencia y no debe volver a otorgarla a menos que el titular de los derechos de autor le haya otorgado ese derecho.

Shog9
fuente
1
Tienes razón AGPL, sin embargo, es más estricto en eso
@Pierre: correcto, en el sentido de que no puede dejar de proporcionar la fuente a sus usuarios si se atiene a las aplicaciones del servidor.
Shog9
1
Interesante. Entonces, en la GPL estándar, si escribe una aplicación SaaS, ¿no está obligado a proporcionar la fuente ya que técnicamente no está "distribuyendo" la aplicación en sí?
Ryan Hayes
2
@ Ryan: correcto. Bueno, no es necesario que se lo des a tus usuarios . Cualquiera que obtenga el código compilado aún obtiene la fuente.
Shog9
7

Como consultor, hago un punto de plantear los problemas de licencia temprano con mi cliente para que puedan tomar una decisión informada. Si la mejor tecnología para aplicar a su problema está bajo GPL pero no pueden cumplir con la licencia, entonces no puedo usarla. En la práctica, esto ha tenido dos efectos.

Primero, muchos están felices de pagar por un producto comercial específicamente para evitar este problema. Esto es especialmente común en el mundo de los sistemas integrados, donde el cumplimiento de la GPL requeriría efectivamente publicar el diseño completo del hardware y documentar cómo funciona todo para cumplir con el espíritu de la GPL, que es un intento de hacer posible que un usuario final cambie el producto. . Si bien es posible fabricar productos que sean tan abiertos, se requiere un gran compromiso en todos los niveles de la empresa. El problema más grande es que muchos de los componentes de un diseño nos son documentados por sus creadores bajo NDA y es efectivamente imposible crear código compatible con GPL que use la documentación publicada bajo NDA.

En segundo lugar, ahora tenemos preferencia por la licencia MIT y sus muchos familiares (lo que deja en claro que el uso comercial es aceptable) sobre la GPL en cualquier revisión. No he tenido ningún objeto de cliente para liberar correcciones de errores y mejoras realizadas a las comunidades de productos relevantes. Como la licencia es permisiva, puedo cumplir con mis obligaciones NDA, mantener contento a mi cliente y contribuir a las comunidades relevantes.

RBerteig
fuente
2

El código abierto no significa necesariamente gratis.

IANAL tampoco, pero en general el requisito para GPL es proporcionar el código fuente para su proyecto. Ciertamente puede vender un producto a otra persona. Sin embargo, creo que no puedes evitar que lo regalen. Eso es probablemente lo que hace que la mayoría del software GPL sea gratuito, como en la cerveza. Estoy bastante seguro de que no tiene que publicar su código en world + dog solo porque es GPL.

Del preámbulo a la v3 de la GPL (énfasis mío):

Las licencias para la mayoría del software y otros trabajos prácticos están diseñados para quitarle la libertad de compartir y cambiar los trabajos. Por el contrario, la Licencia Pública General de GNU está destinada a garantizar su libertad para compartir y cambiar todas las versiones de un programa, para asegurarse de que siga siendo software libre para todos sus usuarios. Nosotros, la Free Software Foundation, utilizamos la Licencia Pública General de GNU para la mayoría de nuestro software; se aplica también a cualquier otro trabajo publicado de esta manera por sus autores. También puede aplicarlo a sus programas.

Cuando hablamos de software libre, nos referimos a la libertad, no al precio. Nuestras Licencias públicas generales están diseñadas para garantizar que tenga la libertad de distribuir copias de software gratuito (y cobrar por ellas si lo desea), que reciba el código fuente o que pueda obtenerlo si lo desea, que puede cambiar el software o use partes de él en nuevos programas gratuitos, y que sepa que puede hacer estas cosas.

( fuente )

En esta situación, ¿es correcta la compañía para usar el código GPL sin el conocimiento del cliente? ¿Es suficiente simplemente "darles la fuente"?

Esta es una pregunta ligeramente diferente. Si el cliente tiene alguna expectativa y esa expectativa se dicta en un contrato, la empresa puede tener un problema. De lo contrario, depende de ellos determinar la mejor manera de hacer el trabajo. Sin embargo, se supone que deben incluir un aviso en el código fuente con respecto a la licencia. No estoy seguro si deben revelar esto a su cliente de alguna otra manera.

George Marian
fuente
2
GPL no requiere que publique activamente la fuente, pero sí requiere que publique al usuario el hecho de que el programa es GPL y que entregará la fuente a pedido (posiblemente sujeto a una tarifa de manejo justa y razonable). En la práctica, este último requisito a menudo se maneja mediante un tarball o zip en una URL que se puede entregar a pedido. Como consultor, tiene la obligación de hacerle saber a su cliente cuál será su carga si distribuyen su trabajo a otros, porque se convierten en el editor bajo la GPL.
RBerteig
@RBerteig Gracias por la aclaración. Ha pasado un tiempo desde que revisé los términos de la licencia.
George Marian
"Ciertamente puedes vender un producto a otra persona. Sin embargo, creo que no puedes evitar que lo regalen". Depende de si les está dando algo bajo la licencia GPL o si usted es el titular original de los derechos de autor y si se los vuelve a otorgar bajo una licencia diferente.
endolito el
-5

No, tienes razón. Este es el por qué:

Considere si tenemos una aplicación bajo GPL. Ahora, entonces no puede ser usado por código propietario.

Si fuera suficiente solo para abrir el código fuente que usa GPL, podría abrir un proyecto basado en él como BSD.

Entonces el software propietario podría usar el producto GPL.

alternativa
fuente
44
Esto no tiene sentido. La GPL no establece que el código propietario no pueda usarlo. La GPL tiene que ver con la distribución, como dice claramente la respuesta del Sr. C. En resumen, no está permitido distribuir software que use código GPL a menos que también distribuya el código fuente de ese software bajo una licencia compatible.
dash-tom-bang
1
El código de propiedad no puede usar el código GPL. Es parte de la razón de la existencia de la licencia.
alternativa
Todo depende de lo que quiere decir con "código de propiedad". Si quiere decir "código que posee", entonces esto no tiene sentido: GPL no puede quitarle sus derechos de autor, por lo tanto, a menos que lo asigne a la FSF por su propia voluntad, aún posee el código que escribe . OTOH, si quiere decir, "código que desea distribuir bajo una licencia incompatible con GPL", entonces está en lo correcto: así como pudo obtener y utilizar la fuente en la que está construyendo, está obligado a otorgar a sus usuarios este derecho a tu fuente. Una vez más, se trata de distribución: nadie que no pueda obtener su programa tiene derechos sobre su código.
Shog9
@Señor. C por código de propiedad me refiero a un código que es incompatible con la GPL. Y el código se distribuye al cliente, así que ... Pero sí, no soy abogado, así que podría estar equivocado.
alternativa
2
-1, respuesta engañosa. Esto solo es cierto para algunas definiciones de "uso" y "propietario". Por ejemplo, podría crear un producto Linux incrustado, y solo liberar el kernel de Linux y el código que se vincula directamente con el código del kernel, pero no mi UI u otras aplicaciones que simplemente se ejecutan en un kernel GPL. Existen muchas de esas relaciones. La ambigüedad en este uso de "propietario" ya está cubierta. Además, en la mayoría de las jurisdicciones, un "trabajo por contrato" que solo se otorga a la parte que contrató a un desarrollador para codificarlo no es lo mismo que la distribución. IANAL, etc.
HedgeMage