Incluso il software GPL in progetto closed-code

0

Riguardo all'uso del software GPL in un progetto commerciale, ho la seguente situazione:

Vorrei distribuire commercialmente un'applicazione Excel-Macro, che utilizza un software con licenza GPL (compilatore G77) e alcuni codici Fortran. I codici Macro e Fortran sono tutti scritti da me. Non sono state apportate modifiche a qualsiasi software GPL.

La mia comprensione di GPL è che se voglio distribuire commercialmente tutti i file sopra insieme, Dovrei rendere tutti i codici (Macro e Fortran) disponibili come codice sorgente.

Il mio obiettivo è proteggere il mio codice sorgente (o almeno i file Fortran). Tuttavia, suppongo che la licenza GPL abbia lo scopo di evitarlo esattamente.

Pertanto, considero che seguire due scenari come soluzione:

1) Fornisco il codice sorgente "criptato". Quindi, codice sorgente reale ma con tutti i nomi di variabili / funzioni dati nomi casuali. Tuttavia, ciò potrebbe essere vietato dalla licenza GPL, affermando che:

The "source code" for a work means the preferred form of the work for making modifications to it.

2) Distribuisco due singoli pacchetti: uno contenente i miei codici (come closed-source), l'altro contenente solo il software GPL. L'utente finale avrebbe solo bisogno di spostare in seguito il software GPL nella cartella appropriata nei miei codici.

Le mie domande sono:

A) Esiste una multa legale valida in tutto il lavoro?

B) C'è forse un altro modo per raggiungere il mio obiettivo oltre a soluzioni alternative?

Grazie mille!

    
posta user233558 09.05.2016 - 06:11
fonte

3 risposte

4

Se stai semplicemente distribuendo l'output eseguibile del compilatore Fortran, e non il compilatore stesso, allora non stai distribuendo il compilatore, e quindi non attivando la disposizione del copyleft di GPL. In queste condizioni, non sei vincolato dalla GPL.

Questo è generalmente vero per tutti i compilatori, a meno che il tuo programma richieda i servizi del compilatore su base continuativa per funzionare nell'ambiente dell'utente. Se il tuo programma richiede che il compilatore venga distribuito all'utente finale, devi rispettare i termini della GPL.

Per evitare la distribuzione che innescherebbe la clausola del copyleft nella GPL, devi soddisfare le condizioni per un "lavoro separato" ed evitare le condizioni che potrebbero far sì che sia un "lavoro derivato" del software GPL'd.

Affinché una libreria GPL o un programma GPL siano considerati un "lavoro separato" dal tuo programma e non un "lavoro derivato", il tuo programma deve soddisfare tutte le seguenti condizioni:

  1. Deve comunicare con il software di GPL a distanza di braccia. In pratica, ciò significa che non può essere collegato al tuo programma tramite un meccanismo simile a DLL, staticamente o dinamicamente. "Lunghezza di braccia" di solito significa qualche meccanismo come un pipe Unix tramite stdio.

  2. Il tuo programma deve essere in grado di funzionare indipendentemente dal software GPL'd; cioè, deve essere in grado di fornire sostanzialmente le sue funzionalità di base senza utilizzare il software GPL'd.

  3. Devi rendere pubblica l'API che il tuo software utilizza per comunicare con il software GPL, in modo sufficientemente dettagliato da consentire a qualcuno di sostituire completamente il software GPL con altri software di loro scelta.

Non puoi offuscare la fonte. Il codice sorgente che fornisci sotto GPL deve essere nello stesso modulo con cui hai sviluppato il software.

    
risposta data 09.05.2016 - 07:47
fonte
1

Sebbene Robert ti abbia dato un'ottima risposta, IMHO ha perso un punto: se non vuoi aprire la sorgente del tuo programma, devi semplicemente evitare di distribuire il compilatore Fortran insieme al tuo programma, non in un pacchetto, e non in due. Ma se il tuo programma parte dalla macchina dell'utente finale, verifica la presenza del compilatore G77, e se non c'è, dà all'utente finale istruzioni dettagliate su come ottenere da solo il compilatore, il tuo programma tecnicamente non violerà la GPL .

Il punto è: finché si evita la distribuzione del compilatore, non importa se il tuo programma è un "lavoro derivato" o meno . Non ci sarà bisogno di controllare i tre punti della risposta di Robert. Anche se il tuo programma scaricherà e installerà automaticamente il compilatore per l'utente finale, questo non conta come "distribuzione" - tecnicamente, l'utente finale esegue l'installazione da solo.

Ho visto questo approccio con alcuni programmi che hanno un meccanismo di plugin per consentire l'uso di plugin GPL. Per un compilatore, sarebbe praticamente lo stesso.

    
risposta data 09.05.2016 - 15:41
fonte
0

G77 compiler

Prima di tutto, nessuno vuole vedere il tuo codice FORTRAN arcaico, nemmeno i moderni programmatori Fortran. Il codice scritto su quello standard è meglio lasciarlo nel millennio precedente, prima di quando Internet esisteva.

In secondo luogo e ancora più importante, la licenza GNU consente in particolare di distribuire i binari se questi binari sono stati compilati con compilatori GNU non modificati e collegati con librerie GNU non modificate. Non è necessario rilasciare il codice sorgente se si seguono tali regole. In particolare, devi seguire le regole enunciate nella Eccezione della libreria di runtime di GCC .

In terzo luogo, se anche quelle regole sono troppo forti per te, ci sono alternative. LLVM fornisce i compilatori Fortran e il suo accordo di licenza è molto meno restrittivo rispetto a GPLv3.

    
risposta data 09.05.2016 - 08:08
fonte

Leggi altre domande sui tag