Creo que fue difícil para mí formular el título. Sin embargo, todavía puedo explicar mi problema con más detalle aquí.
Estoy diseñando un producto integrado que consiste en servicio en la nube y hardware integrado. El servicio en la nube tendrá una API REST (aunque estar disponible no es el punto de venta) y se comunicará con el hardware incorporado. Idealmente, el hardware integrado también tendría una interfaz similar a REST para la comunicación. El problema es encontrar una buena pila de software (o eso es lo que creo que es el problema).
La mejor opción en mi opinión sería algún tipo de distribución Linux integrada con su propia aplicación web instalada dentro (Ubuntu Core + Django ...?). ¿De alguna manera es posible usar esta combinación en un producto comercial pero al mismo tiempo mantener cerrada la aplicación web?
El sitio web de Ubuntu ofrece múltiples plataformas compatibles y algunas de ellas se ven ideales para mi caso de uso. Como dije antes, mi principal preocupación en este momento son las licencias.
fuente
Respuestas:
En primer lugar, tenga en cuenta que no soy abogado. Obtenga uno si cree que necesita asesoramiento legal. La licencia es una de esas áreas donde recomendaría una.
Las licencias de código abierto varían mucho en lo que permiten. Usemos el ejemplo de una biblioteca que está utilizando (sin modificar) en su proyecto. Dos licencias comunes que puede encontrar son GPL y LGPL, que varían en la forma en que tratan este problema. De este artículo , por ejemplo:
Otros ejemplos de licencia que son un poco más abiertos a este respecto incluyen MIT y BSD.
Una gran cantidad de software de Linux es GPL, y esto probablemente incluirá componentes de cualquier sistema operativo que seleccione (por ejemplo, Ubuntu Core). Sin embargo, mientras su proyecto no se considere un trabajo derivado de estos proyectos, no debería verse afectado. Más información en esta respuesta .
Desde esta perspectiva, el uso de Ubuntu Core para su producto no debería afectar si la aplicación que envía está abierta o cerrada. De hecho, empaquetar su aplicación como complemento es una buena forma de distribuir blobs binarios.
Probablemente lo haya considerado, pero desde una perspectiva técnica, si envía un complemento de Python con Django, el complemento no será blobs binarios; de forma predeterminada, su código estará allí para cualquiera que quiera verlo (ya sea por volcar el contenido del disco o obtener acceso de shell de alguna manera). Es posible que desee ofuscar o enviar bytecode, etc.
fuente