2012-02-29 10 views
6

Estoy planeando lanzar como proyecto de código abierto para fines educativos (si corresponde). Solo es Windows.Cómo organizar el proyecto para la versión de código abierto

Mi propio código se distribuye bajo la licencia MIT, pero también puedo utilizar esta bibliotecas/componentes:

  • ODE
  • Escintila componente
  • Escintila PJ Naughter
  • Glaux

Además de asegurarme de incluir cada uno de estos archivos de licencias de bibliotecas, ¿cómo debería integrarlos en el código fuente r Elease árbol?

Actualmente utilizo para cada una una versión/revisión particular que personalicé o construí manualmente e integé en términos de archivos de código fuente y archivos de biblioteca binarios. ¿Es suficiente? No quiero cargar el paquete resultante con árboles fuente completos de terceros, pero al mismo tiempo quiero que compilable desde cero.

También quiero incluir mis últimos archivos ejecutables compilados. ¿Se frunció el ceño? Verificare el exe resultante con VirusTotal.

+1

Incluir o no componentes de terceros son opciones válidas. Puede incluir solo las DLL en el binario pero requiere que los usuarios descarguen sus fuentes al compilar. Y no, lanzar binarios no está "mal visto", esp. para Windows, pocos usuarios tendrán compiladores instalados. –

+0

¿A los echadores de los votos cercanos les gustaría explicar sus motivaciones para hacerlo? –

+0

Si se tratara de un proyecto de Java, diría que definitivamente no debería incluir las dependencias de ninguna forma, sino incluir metadatos que las describan, en forma de script de Gradle, Ivy o Maven. Eso lo liberaría de la necesidad de distribuirlos, al mismo tiempo que permitiría que sus usuarios los agarren sin dolor. ¿Hay un equivalente de esto en el mundo C? Si estuvieras lanzando para una distribución de Linux específica, podrías crear un paquete fuente, pero ¿hay algo portátil? –

Respuesta

1

Mi propio código se distribuye bajo la licencia MIT, pero también puedo utilizar esta bibliotecas/componentes: [...]

Actualmente por cada uno me utilizan una versión/revisión en particular que he modificado para requisitos particulares manualmente o construido e integrado en términos de archivos de código fuente y archivos de biblioteca binarios. ¿Es suficiente? No quiero cargar el paquete resultante con árboles fuente completos de terceros, pero al mismo tiempo quiero que compilable desde cero.

Como usted quiere ofrecer su aplicación para que otros puedan jugar con él, al lado de una binaria única liberación es posible que desee ofrecer una especie de liberación "SDK", que contiene su código como fuente y las dependencias de la biblioteca como los binarios .

Como también desea poder compilar desde todas las fuentes, por razones prácticas también debe crear un paquete de fuente completo para cada versión.

Cree usted mismo un script que pueda compilar cada uno de estos paquetes automáticamente. Ponga su script de construcción bajo control de revisión también. Si no tiene ningún control de revisión en este momento, primero coloque su árbol de fuentes bajo control de revisión.

Estas son meras sugerencias prácticas para que pueda lograr lo que está buscando mientras que también le da a otros usuarios un buen acceso a su programa.

Para la licencia de las bibliotecas/componentes que enumeró, traté de averiguar más. Si corresponde, obtuve los identificadores cortos del SPDX Open Source License Registry.Contiene enlaces a cada licencia, por lo que es una buena herramienta para clasificar la situación de licencia de su paquete:

  • ODE (Open Dynamic Engine) - License: LGPL-v2.1+ o BSD-3-Clause
  • Scintilla (Scintilla and SciTE)-License: HPND
  • Scintilla PJ Naughter component-License: Scintilla PJ Naughter component Licencia:

    Copyright // Usted está al reducido para incluir el código fuente en cualquier producto (comercial, shareware, freeware u otro) cuando su producto se publique en formato binario. // Se le permite modificar el código fuente de la manera que desee, excepto que no puede modificar los detalles de copyright en la parte superior de cada módulo. // Si desea distribuir el código fuente con su aplicación, solo podrá distribuir versiones publicadas por el autor. Esto es para mantener un único punto de distribución para el código fuente.

  • Glaux (OpenGL Biblioteca Auxiliar) - Licencia: Unknown/Various

(IANAL) Parece que se trata de todo tipo de licencias permisivas, por lo que está en su mayoría no obligado a liberar la fuente. Dos notas:

  1. no fue capaz de obtener información sobre Glaux. Es posible que desee buscar en los archivos fuente que tiene qué licencia se aplica. Fue algo complicado averiguar más, parece que la biblioteca está en desuso. Lo que vi fue que era parte del proyecto OpenGL, pero no sé qué archivos fuente usas y dónde los obtuviste.

  2. El Scintilla PJ componente Naughter tiene una licencia no estándar que no permite la distribución de modificado código fuente. Pero puedes distribuir el código sin cambios. Creo que la intención del autor original es que no quiere otra fuente de distribución junto a la suya (tenedor, pero no cambiar el tenedor). Yo diría que debes conformarte todo el tiempo que puedas y si ya no puedes contactar al autor original y discutir el tema. Si eso no se resuelve en una solución práctica, es posible que deba ponerse en contacto con un abogado sobre los derechos que tiene usted en ese caso para anular las restricciones de derechos de autor expresadas por el autor original.

También quiero incluir mis archivos ejecutables compilados finales. ¿Se frunció el ceño? Verificare el exe resultante con VirusTotal.

Por qué debería hacerlo, esto hará que el software sea accesible para aquellos que no pueden o no quieren compilar.

Si está buscando un repositorio de código fuente público que acepte su reproducción bajo estos términos, github sí lo hace. Su única obligación es que el código fuente esté visible y el repositorio pueda ser bifurcado, ya que esto no dice mucho sobre los derechos que se otorgan con el código y cada fork, hace que la licencia del código que usted tenga clara. Otros sitios como el código de google no permitirían esto ya que solo aceptan código bajo una licencia aprobada OSI que no es verdadera para el componente Scintilla PJ Naughter.

Agregue los archivos rainbru suggested.

2

Al menos, debe agregar un archivo COPYING que contenga el texto completo de la licencia utilizada (por ejemplo, MIT). Creo que este es el único archivo requerido.

Por lo general, también incluyo NEWS y AUTHORS. También podría ser una buena idea agregar un archivo DEPENDENCIES.

Cuestiones relacionadas