Sto scrivendo un'API per un sistema di monitoraggio della rete open source concesso sotto licenza GPLv2. Intendo anche open source questa API, ma mi piacerebbe acquistarla sotto la licenza BSD.
- Non riusare o collegare a nessuno dei codici di questo sistema e non utilizzo alcun file di intestazione.
- Non ripeterò alcuna parte del codice di monitoraggio della rete.
- Parte della mia applicazione verrà installata nelle cartelle di installazione del monitoraggio della rete, ma non sostituirà, rimuoverà o modificherà alcuno dei suoi file
Il mio hook nel sistema è tramite:
-
database MySQL esistenti appartenenti al servizio, la mia API legge e scrive direttamente su questi database. La mia preoccupazione qui sarebbe che mentre non sto copiando le loro istruzioni SQL, ci sono alcune operazioni complesse. Ho scoperto che in un paio di casi sono arrivato a istruzioni SQL oa sequenze di lavoro non troppo dissimili dal loro, è difficile non farlo.
-
Parlo con una pipe per emettere vari comandi e inviare dati direttamente nel motore di verifica. Questa pipa è documentata dall'autore come un meccanismo ufficiale per comunicare con il motore di controllo. La pipe di comando usa stringhe a riga singola per emettere comandi, la pipe non restituisce alcun dato, è "fire and forget".
-
Esistono numerosi script CGI HTTP nel sistema da cui posso raschiare informazioni sullo stato. Potrei usarli in una versione futura.
Questo è considerato "lunghezza di braccia" abbastanza per permettermi di concedere in licenza il mio codice con una licenza diversa? cioè.
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.
La lettura e la scrittura di righe su un database dovrebbero essere considerate "scambio di strutture di dati interne complesse"?
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.