2012-10-09 17 views
7

Przedtem pytałem o podobne hasło: question, ale tym razem chcę się skupić na języku go. Czytałem numer wiki page of go language i zdałem sobie sprawę, że w podsumowaniu jest segment licencji, który mówi: BSD style + Patent grant. Jestem świadomy, że istnieje również gcc nakładka na go który Zgaduję mieć coś takiego pozwolenia GPL choć nie było żadnej wzmianki o niej na stronie wiki, która mnie zastanawiać:Licencjonowanie języka:

Czy wspomniane pozwolenie BSD przeznaczone dla:

  • kompilator
  • i/lub języka
  • i/lub standardowe biblioteki

jeśli istnieją takie różnice?

Praktyczną odpowiedzią byłoby mile widziane (to znaczy w jaki sposób mogę licencjonować źródła lub binarny?), Jak również w przeciwieństwie do dawnych języków (C, C++, Java) ewentualne ..

+4

Głosuję, aby zamknąć to pytanie jako nietypowe, ponieważ ** dotyczy kwestii licencyjnych lub prawnych **, a nie programowania lub tworzenia oprogramowania. [Zobacz tutaj] (http://meta.stackoverflow.com/a/274964/1402846), aby uzyskać szczegółowe informacje, oraz [pomoc/temat], aby uzyskać więcej informacji. –

Odpowiedz

6

Większość części Go jest licencjonowanych pod three-clause BSD style license i patent grant. Obejmuje to kompilatory gc, standardowe biblioteki i inne powiązane narzędzia. Istnieją dwa znamienne wyjątki, o których mi wiadomo:

Dokumentacja w wersji language specification i innych dokumentach jest licencjonowana na licencji Creative Commons Attribution 3.0. Przejdź na sam dół dowolnej strony na golang.org, aby zobaczyć. (Przypuszczam, że oznacza to, że niektóre komentarze kodu źródłowego są licencjonowane w ten sam sposób, co wydaje się trochę dziwne.)

Interfejs gccgo używa tej samej licencji w stylu BSD co reszta Go, jednak musi być powiązany z resztę gcc, to skutecznie GPLv3. (Zauważ, że wbrew twierdzeniom janneb, gccgo nie współdzieli żadnego kodu z innym kompilatorem, ale udostępnia jakiś kod runtime.)

Trwają starania, aby oddzielić części frontendu gccgo, które zależą od gcc, więc że może być używany jako nakładka dla innych kompilatorów Go, takich jak być może kompilator oparty na LLVM. Taki kompilator może być wydany całkowicie na podstawie licencji w stylu BSD.

+0

Łączenie z czasem uruchamiania GNU C jest wykluczone z wymogu licencji GPL, aby otworzyć kod: http://stackoverflow.com/questions/10838807/license-of-runtime-libraries-included-in-gcc https://www.gnu.org/licenses/gcc-exception-3.1.html Moje czytanie z tych prowadzi mnie do przekonania, że ​​nie musisz otwierać kodu źródłowego Go po prostu dlatego, że używasz biblioteki C, która wprowadza środowisko GNU C. –

+0

Nie twierdzę, że frontend gccgo jest GPL, ponieważ łączy się z libc, ale dlatego, że łączy się z wieloma GCC, co nie ma (o ile mi wiadomo) wykluczenia. Podjęto starania, aby oddzielić interfejs od GCC, ale uważam, że są one niekompletne i obecnie nieaktywne. –

+0

Ah, teraz rozumiem, co miałeś na myśli, @Evan Shaw. Pomogło mi to w wyjaśnieniu: "Kompilator gccgo jest nowym frontendem dla GCC, powszechnie używanego kompilatora GNU. Chociaż nakładka jest objęta licencją typu BSD, gccgo jest zwykle używane jako część GCC, a następnie objęte Powszechną Licencją Publiczną GNU (licencja obejmuje samo gccgo jako część GCC, nie obejmuje kodu wygenerowanego przez gccgo " https://golang.org/doc/install/gccgo –

0

licencja BSD dotyczy kompilatora i biblioteki standardowej. Nie wiem, jakiej licencji dotyczy "sam język"; co to nawet znaczy, tekst specyfikacji językowej, lub?

Przejściowa nakładka w GCC jest również licencjonowana na BSD (AFAIK dzieli się kodem z innym kompilatorem go), chociaż reszta kompilatora GCC pozostaje pod GPLv3.