Qual è il modo migliore per fornire le versioni open source e closed side-by-side in sicurezza?

6

La mia azienda sta cercando di sviluppare e rilasciare un progetto software open source insieme a una versione potenziata proprietaria, simile a VirtualBox precedente alla 4.0.

Qual è il modo migliore per mantenere le due basi di codice in modo tale che le modifiche alla versione open source possano essere facilmente incorporate nella versione commerciale con il minimo rischio di spingere accidentalmente il codice proprietario sul prodotto open source?

    
posta rkjnsn 19.09.2011 - 21:04
fonte

3 risposte

8

Vorrei creare 2 progetti.

  1. Progetto OSS che può essere eseguito standalone.
  2. Codice proprietario che dipende dal codice del progetto OSS.

La dipendenza può essere un tempo di costruzione o una dipendenza di runtime. Se si desidera che ogni pacchetto sia autonomo, è possibile disporre del pacchetto proprietario per estrarre i file OSS di cui ha bisogno durante la creazione di build / pacchetto. Se la tua multa con una dipendenza run time, puoi semplicemente impacchettare il codice proprietario da solo e farlo dipendere dal pacchetto OSS in fase di esecuzione.

I vantaggi:

  • Ti libera dalla duplicazione del codice.
  • Ottieni correzioni di bug in entrambi per il costo di ottenerlo in uno.
  • Chiara delineazione tra OSS e Proprietary.
risposta data 19.09.2011 - 22:12
fonte
1

Controllo sorgente e amp; Branching

La radice sarebbe il codice comune a entrambe le distribuzioni. Dovresti anche (presumibilmente) creare due rami dalla tua radice:

Open Source

Closed Source

Open Source probabilmente rispecchierebbe la tua radice in questo scenario. Su base regolare, uniresti Open Source e Closed Source a mano ( Closed Source probabilmente non otterrebbe altrettanti aggiornamenti).

In questo modo, puoi mantenere i miglioramenti nel tuo ramo Closed Source e inserire nuove modifiche dalla versione Open Source.

    
risposta data 19.09.2011 - 21:35
fonte
0

Dipende dalla licenza open source che non è indicata nella domanda. GPL offre la maggior parte dei problemi a questo proposito e qualsiasi collegamento statico o collegamento di runtime è sospetto.

Leggi le FAQ per i migliori risultati; non fidarti di altre risposte. Usare i plugin non è veramente legittimo. Molti prodotti commerciali violano la GPL in modi e amp; fondamentalmente guarda dall'altra parte.

link

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in? It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

    
risposta data 20.09.2011 - 03:33
fonte

Leggi altre domande sui tag