Come potrebbe rilasciare Clang sotto licenza BSD?

1

Ho scoperto che llvm poteva solo generare codice assembly. Se qualcuno vuole generare e collegare il codice assembly al codice eseguibile nativo, dovrebbe usare lo strumento esterno (GNU come / ld, ad esempio. Attualmente lld non è pronto e non ci sono più informazioni su llvm-mc).

Questa risposta alla domanda e altre risposte implicano che Clang usa Binutils (as e ld) per generare e collegare il codice nativo (non ne sono abbastanza sicuro). In tal caso, come potrebbe rilasciare Clang sotto licenza BSD? Non riesco a trovare alcuna eccezione di licenza (come Bison Exception) su ld o as.

Se fraintendiamo alcuni concetti, ti prego perdonami! A proposito, potremmo usare GNU come e ld in modo programmatico?

EDIT: Grazie per queste risposte. Sembra che clang non sia ancora una toolchain autonoma e debba usare gli strumenti VS o GNU. Significa se qualcuno scrive un compilatore basato su llvm. Se gli utenti non hanno installato strumenti GNU o VS. Il compilatore non è un compilatore pronto per l'uso?

    
posta sunny2016 16.11.2013 - 19:18
fonte

2 risposte

4

AFAIK (anche se non sono un avvocato), l'esecuzione di un'applicazione GPL dalla riga di comando o simili non viene considerata come lavoro derivato. A parte questo, il sottoprogetto LLD sta creando un linker con licenza simile. Anche se non credo sia ancora usato da Clang.

    
risposta data 16.11.2013 - 20:07
fonte
1

Non sono un avvocato. Per ottenere una risposta autorevole su questo, vorrei scavare intorno a FreeBSD.org per trovare le informazioni di contatto per un avvocato per quel progetto. Tutto ciò che segue è la comprensione da parte di un laico dei diritti d'autore - in particolare le opere derivate e il requisito dell'originalità.

Affinché qualcosa sia protetto da copyright, deve mostrare una certa quantità di materiale originale (wiki: soglia di originalità , uslegal.com originalità nel copyright ). Non può essere una trasformazione puramente meccanica.

L'acquisizione del codice assembly da parte di clang e il suo collegamento con le librerie esistenti non soddisfano questa soglia. Questo non è diverso da un compilatore che prende la fonte (che tu scrivi - originale, ha un copyright) e la traduci meccanicamente in assemblea. Non c'è creatività in questo processo, l'output prodotto di clang (o gcc o ld) non è qualcosa che incorpora materiale che è sotto un'altra licenza, non c'è nessuna eccezione necessaria come parte del processo per creare codice.

Pensa solo per un momento alle implicazioni se non fosse così. Ogni programma che è stato collegato su un sistema Linux (usando ld da gnu bin tools) dovrebbe essere libero (libre) sotto gpl . Ti verrà richiesto di distribuire la fonte di ogni programma. Ciò paralizzerebbe la possibilità di sviluppo di codice commerciale su Linux, e beh ... non avresti alcun gioco per Linux.

Quindi, poiché il processo di creazione di un eseguibile collegato da assembly (o assembly da qualche lingua) non ha alcuna originalità, il prodotto non è un lavoro derivato del programma (o dell'autore del programma - leggi più su questo in questo piccolo testo, rimuovi il prossimo), e la licenza dell'opera originale non cambia.

Correttamente correlato, la musica che è composta da un computer è un'interessante area di giurisprudenza attualmente in via di definizione. Da brani musicali a Google Maps: chi è il proprietario di opere generate al computer? e MIDI Files: protezione del copyright per lavori generati da computer sono probabilmente buone letture se si desidera ottenere nel livello di poter parlare direttamente con gli avvocati di cose.

È qui che entra in gioco l'eccezione bisonte (FAQ di gnu.org Posso utilizzare editor coperti da GPL come GNU Emacs per sviluppare programmi non liberi? Posso usare strumenti GPL come GCC per compilarli? , gnu.org Condizioni per l'utilizzo di Bison ). Il codice generato dal bisonte, pur essendo una trasformazione del file .y letto da bisonte, il codice creato anche include una parte sostanziale del materiale che è protetto da copyright e coperto dalla GPL. Pertanto, l'output finale sarebbe considerato un lavoro derivativo dei due (il file .y e il generatore di parser che è stato scritto da un essere umano e incorporato nel bisonte stesso).

Poiché il codice all'interno di bison è sotto gpl, l'impatto di questa senza l'eccezione di bison significherebbe che ogni lavoro derivativo creato (tutti loro) sarebbe anche sotto il gpl. Il codice generato finale è ancora un lavoro derivato, ma non è richiesto che sia GPL.

Vorrei sottolineare che l'eccezione bison si riferisce al prodotto di bisonte. Se si dovesse prendere il codice grezzo dal bisonte e usarlo in qualche altro modo che non è un prodotto del bisonte, è ancora coperto dalla GPL.

Nota aggiuntiva, Free BSD utilizza ancora binutils 2.15 (dal 2004) a causa delle difficoltà di mesh gpl v3 con la licenza BSD (2.15 è sotto v2, c'è lavoro per ottenere binutils 2.17 che è l'ultima versione rilasciata sotto gpl v2 - vedi FreeBSD wiki - Bintuils 2.17 ).

    
risposta data 17.11.2013 - 03:22
fonte

Leggi altre domande sui tag