1. Kokių gali kilti teisinių klausimų, jei GPL programoje norėčiau naudoti biblioteką, kurios licencija yra nesuderinama su GPL licencijos sąlygomis ir joms prieštarauja?

2. Kuo skiriasi programų „rinkinys” (angl. aggregate) nuo programų „modifikuotų versijų”?

3. Bendrovė naudoja GPL programos modifikuotą versiją savo internetiniame puslapyje. Ar pagal GPL privaloma tokiu atveju išleisti (paskelbti, suteikti, angl. release) jos modifikuotą išeities kodą?

4. Ar pagal GPL privaloma modifikuotos versijos išeities kodą padaryti viešai prieinamą visuomenei?

5. Jei suprogramuočiau plug-in (įskiepį), skirtą GPL programai, kokie reikalavimai būtų taikomi licencijai, pagal kurią norėčiau platinti savo plugin’ą?

6. Ką reiškia pasakymas, kad licencija yra suderinama su GPL?

7. Ką reiškia pasakymas, kad dvi licencijos yra tarpusavyje suderinamos?

8. Ar galima kaip nors padaryti, kad mano programos išvesčiai (angl. output) būtų taikoma GPL? Pavyzdžiui, jei mano programa naudojama kuriant techninės įrangos dizainus, ar galiu reikalauti, kad tokie dizainai būtų irgi laisvi GPL prasme?

9. Ar galima naudoti pagal GPL licencijuojamus redaktorius, pvz., GNU Emacs, programuojant programinę įrangą, kuri nebūtų laisvoji GPL prasme? Ar galima naudoti pagal GPL licencijuojamus įrankius, pvz., GCC, kompiliuojant programinę įrangą, kuri nebūtų laisvoji GPL prasme?

10. Ar pagal GPL leidžiama pardavinėti GPL programos kopijas?

11. Norėčiau tam tikrą GPL programą ar jos dalį įtraukti (panaudoti) į savo uždarojo tipo (angl. proprietary) sistemą (programą). Jokių specialių leidimų tam, išskyrus tuos, kuriuos man suteikia GPL licencija, neturiu. Ar galiu taip padaryti?

12. Ar galima sukurti laisvąją programinę įrangą, kuri naudotųsi bibliotekomis, nesančiomis laisvąja programine įranga?

13. Parašiau programą, kuri turi sąsajų (angl. links) su įvairiais programiniais komponentais, kurie licencijuojami pagal įvairias kitokias licencijas. Sunku suprasti visus licencijavimo reikalavimus, taikomus mano programai. Ar galite man patarti, kokias licencijas aš galiu naudoti?

14. Ar galiu išleisti programą, kuri nebūtų laisvoji programinė įranga ir kuri galėtų naudoti GPL plugin’ą?

15. Ar galiu taikyti GPL savo programuojam plugin’ui, kuris skirtas uždarojo tipo (angl. propriatary, nonfree) programai?

16. Jei programavimo kalbos interpretatorius yra išleistas pagal GPL, ar tai reiškia, kad sukurtos programos, kurios veikia jo interpretuojamos, irgi turi būti licencijuojamos pagal GPL?

17. Kaip galima susieti uždarojo tipo (angl. proprietary) modulius su GPL biblioteka naudojant interfeisą?

18. Bendrovės internetinėje svetainėje veikia modifikuota GPL (Affero GPL) programos versija. Ar dėl to bendrovė turi išleisti (atskleisti) tos modifikuotos programos versijos išeities kodą?

19. Ar galima modifikuoti GPL licencijos tekstą ir taip sukurti kitą modifikuotą licenciją?


1. Kokių gali kilti teisinių klausimų, jei GPL programoje norėčiau naudoti biblioteką, kurios licencija yra nesuderinama su GPL licencijos sąlygomis ir joms prieštarauja?(#1)

Jei norite, kad jūsų programa kreiptųsi į biblioteką, kuriai nėra taikoma vadinamoji sisteminės bibliotekos išimtis, tai turite suteikti leidimą. Žemiau pateikiami du pranešimų pavyzdžiai (vienas skitas GPLv3 licencijai, kitas GPLv2 licencijai), kuriuos tam tikslui galite panaudoti, pridėdami juos atitinkamos GPL licencijos pabaigoje. Abiem atvejais turite šiuos tekstus patalpinti kiekviename faile, kuriam galioja jūsų suteiktas toks leidimas.

Pažymėtina, kad tik turtinių autorių teisių turėtojai gali išleisti savo programas, suteikdami joms šias papildomas sąlygas, taip vadinamąsias išimtis. Jei visą programą parašėte jūs pats ir nei jūsų darbdavys, nei mokymo įstaiga nepretenduoja į programos turtines autorių teises, tuomet jūs esate turtinių autorių teisių vienintelis savininkas ir galite savo kūriniui leisti pritaikyti vadinamą išimtį. Tačiau jei norite savo kode naudoti kitų autorių ar turtinių autorių teisių turėtojų GPL programų tam tikras dalis, tuomet jūs negalite jų vardu suteikti leidimo pasinaudoti tokia išimtimi. 

Kai kiti programuotojai modifikuoja programą, jie nebeprivalo suteikti tokios išimties jų pačių kodui, tai yra, jie turi pasirinkimo laisvę tai padaryti, tačiau neprivalo to daryti.

Jei bibliotekos, kurias norite susieti (angl. to link) su programa, nėra laisvoji programinė įranga, prašome žr. apie laisvosios programinės įrangos, naudojančios bibliotekas, kurios nėra laisvoji programinė įranga, kūrimą.  

Jei naudojate GPLv3 licenciją, tai šį tikslą galite pasiekti suteikdami papildomą leidimą [išimtį] pagal jos 7 straipsnį. Žemiau pateikiamas toks licencijos pranešimo pavyzdys. Laužtiniuose skliausteliuose esantį tekstą reikėtų pakeisti į tekstą, atitinkantį jūsų programą. Jei ne kiekvienam suteikiama teisė platinti bibliotekos, kuria ketinate leisti prijungti prie savo GPL programos, išeities kodą, tai turėtumėte ištrinti tekstą, esantį raitytuose skliausteliuose, kitais atvejais ištrinkite tik pačius raitytus skliaustelius:  

Copyright (C) [metai] [autorių teisių savininko pavadinimas (ar vardas, pavardė)]

Ši programa yra laisvoji kompiuterinė programa; jūs galite ją toliau platinti ir/ar modifikuoti pagal GNU General Public License sąlygas, kurias paskelbė Free Software Foundation; arba pagal šios licencijos versiją Nr. 3, arba (jūsų pasirinkimu) pagal vėlesnę jos versiją.  

Ši programa platinama tikintis, kad ji bus naudinga, tačiau jai NĖRA SUTEIKIAMA JOKIA GARANTIJA; jai nėra suteikiama net ir numanoma garantija dėl TINKAMUMO PREKYBAI ar TINKAMUMO TAM TIKRAM TIKSLUI. Daugiau informacijos žr. GNU General Public License.

Jūs turėjote gauti GNU General Public License teksto kopiją kartu su šia programa; jei negavote, žr. <https://www.gnu.org/licenses>.

Papildomos sąlygos pagal GNU GPL versijos Nr. 3 7 straipsnį.

Jei modifikuosite šią Programą arba bet kurį saugomą kūrinį, prie jų prijungdamas (angl. linking) ar į juos įdėdamas [bibliotekos pavadinimas] (ar modifikuotą šios bibliotekos versiją), kurios dalims yra taikoma [bibliotekos licencijos pavadinimas] sąlygos, tai šios Programos licenciarai suteikia jums papildomą leidimą perduoti iš to gautą kūrinį. {Ne išeities kodo formoje esančios tokios kombinacijos susijęs kodas turi apimti tiek panaudotų [bibliotekos pavadinimas] dalių, tiek saugomo kūrinio išeities kodus.}

Jei naudojate GPLv2 licenciją, galite nustatyti savo paties išimtį iš licencijos sąlygų. Tai galima padaryti pasinaudojant žemiau pateikiamu licencijos pranešimu. Laužtiniuose skliausteliuose esantį tekstą reikėtų pakeisti į tekstą, atitinkantį jūsų programos pavadinimą. Jei ne kiekvienam suteikiama teisė platinti bibliotekos, kuria ketinate prijungti prie savo programos, išeities kodą, tai turi ištrinti tekstą, esantį raitytuose skliausteliuose, kitais atvejais ištrinkite tik pačius raitytus skliaustelius:

Copyright (C) [metai] [autorių teisių savininko pavadinimas (ar vardas, pavardė)]

Ši programa yra laisvoji kompiuterinė programa; jūs galite ją toliau platinti ir/ar modifikuoti pagal GNU General Public License sąlygas, kurias paskelbė Free Software Foundation; arba pagal šios licencijos versiją Nr. 2, arba (jūsų pasirinkimu) pagal vėlesnę jos versiją.  

Ši programa platinama tikintis, kad ji bus naudinga, tačiau jai NĖRA SUTEIKIAMA JOKIA GARANTIJA; jai nėra suteikiama net ir numanoma garantija dėl TINKAMUMO PREKYBAI ar TINKAMUMO TAM TIKRAM TIKSLUI. Daugiau informacijos žr. GNU General Public License. 

Jūs turėjote gauti GNU General Public License teksto kopiją kartu su šia programa; jei negavote, žr. <https://www.gnu.org/licenses>.

Statiškas ar dinamiškas [jūsų programos pavadinimas] prijungimas prie kitų modulių reiškia jungtinio kūrinio, besiremiančio [jūsų programos pavadinimas], sudarymą. Todėl GNU General Public License sąlygos taikomos visam junginiui.   

[jūsų programos pavadinimas] turtinių autorių teisių savininkai papildomai, kaip specialią išimtį, suteikia jums leidimą sujungti [jūsų programos pavadinimas] su laisvosios programinės įrangos programomis ar bibliotekomis, licencijuojamomis pagal GNU LGPL, taip pat su kodu, įtrauktu į pagal [bibliotekos licencijos pavadinimas] licencijuojamos [bibliotekos pavadinimas] standartinę versiją (ar su to kodo modifikuota versija, kuriai taikoma ta pati licencija). Jums leidžiama kopijuoti ir platinti tokią sistemą, remiantis [jūsų programos pavadinimas] taikomomis GNU GPL sąlygomis ir susijusio su kito kodo licencijų sąlygomis {su sąlyga, kad įtrauksite to kito kodo išeities kodą, kaip to reikalaujama pagal GNU GPL platinant išeities kodą}. Pažymėtina, kad asmenys, kurie padaro [jūsų programos pavadinimas] modifikuotą versiją, neprivalo jų pačių modifikuotai versijai suteikti šios specialiosios išimties; jie turi pasirinkimo teisę tai padaryti. Pagal GNU General Public License leidžiama išleisti modifikuotą versiją be šios išimties; ši išimtis taip pat leidžia toliau išleisti modifikuotą versiją su šia išimtimi.

2. Kuo skiriasi programų „rinkinys” (angl. aggregate) nuo programų „modifikuotų versijų”?(#2)

„Rinkinys” apima skirtingas programas, kurios platinamos tame pačiame CD-ROM ar kitoje laikmenoje. GPL nedraudžia sukurti ir platinti programų rinkinį, net kai jame yra programų, kurių licencijos nėra laisvosios ar kurios nesuderinamos su GPL. Vienintelė sąlyga yra ta, kad jums neleidžiama išleisti programų rinkinio pagal tokią licenciją, kuri draustų naudotojams naudotis teisėmis, kurias jiems suteikia kiekvienos programos, priklausančios rinkiniui, individuali licencija.

Kuo skiriasi dvi atskiros programos nuo iš dviejų dalių sudarytos programos? Tai yra teisinis klausimas, į kurį galutinai gali atsakyti tik teismai. Mums atrodytų, kad atsakymas į šį klausimą priklausytų tiek nuo komunikavimo mechanizmo (exec, pipes, rpc, funkcijos iškvietimai iš tos pačios bendros atminties adresų srities, t.t.), tiek nuo paties komunikavimo turinio (kokia informacija keičiamasi).

Jei moduliai yra patalpinti tame pačiame vykdomajame (angl. executable) faile, tai tikrai būtų vadinama, kad jie sudaro tą pačią programą. Jei moduliai suprojektuoti taip, kad jie veikia tarpusavyje sąveikaudami (angl. linked) toje pačioje bendroje atminties adresų srityje, tai labai tikėtina, kad irgi bus laikoma, jog jie sudaro tą pačią programą. Tačiau pipes, soketai ir komandinės eilutės argumentai laikomi komunikavimo mechanizmais, naudojamais dviejų atskirų programų. Todėl, kai jie yra naudojami komunikavimui, tuomet paprastai moduliai laikomi atskiromis programomis. Tačiau jei komunikavimo turinys yra pakankamai specifinis, kai apsikeičiama gana sudėtingomis vidinėmis duomenų struktūromis, tai galėtų reikšti, kad abi dalys laikytinos sujungtomis į vieną didesnę programą. 


3. Bendrovė naudoja GPL programos modifikuotą versiją savo internetiniame puslapyje. Ar pagal GPL privaloma tokiu atveju išleisti (paskelbti, suteikti, angl. release) jos modifikuotą išeities kodą?(#3)

GPL leidžia bet kam modifikuoti GPL programos konkrečią versiją ir ja toliau naudotis, neplatinant jos kitiems. Todėl bendrovė neprivalo išleisti (suteikti kitiems) jos pačios modifikuotos GPL programos išeities kodo. Būtų kitaip, jei tokia modifikuota programa būtų licencijuojama pagal GNU Affero GPL licenciją.

Tai galima palyginti su tokiu atveju, kuomet internetiniame puslapyje yra patalpinta arba kuris sąveikauja su savarankiška GPL programa, kuria irgi naudojasi vartotojai, lankydamiesi internetiniame puslapyje. Paprastai ji būna suprogramuota naudojant JavaScript programavimo kalbą, tačiau gali būti suprogramuota ir kitomis programavimo kalbomis. Tokiu atveju platinamų programų išeities kodai turi būti padaryti prieinami naudotojams pagal GPL.


4. Ar pagal GPL privaloma modifikuotos versijos išeities kodą padaryti viešai prieinamą visuomenei?(#4)

Pagal GPL nėra reikalaujama, kad jūs išleistumėte (suteiktumėte kitiems) jūsų modifikuotą GPL programos versiją ar kurią nors jos dalį. Jūs galite programą modifikuoti ir ją naudoti savo asmeniams poreikiams, jos neduodamas kitiems. Tai taip pat taikoma ir juridiniams asmenims. Toks asmuo gali pasidaryti programos modifikuotą versiją ir ją naudoti organizacijos viduje, jos niekada neišleisdamas (nepaviešindamas) už organizacijos ribų.

Tačiau jei kokiu nors būdu paviešinate (padarote viešai prieinamą) modifikuotą GPL programos versiją, tuomet pagal GPL jūs privalote programos naudotojams padaryti prieinamą (suteikti) GPL programos modifikuotą išeities kodą pagal GPL sąlygas. Taigi, pagal GPL leidžiama išleisti modifikuotą programą tam tikrais būdais.

Tačiau sprendimą, ar ją išleisti, paliekama priimti jums.


5. Jei suprogramuočiau plug-in (įskiepį), skirtą GPL programai, kokie reikalavimai būtų taikomi licencijai, pagal kurią norėčiau platinti savo plugin’ą?(#5)

Žr. klausimą apie tai, kada įskiepis ir pagrindinė programa laikoma ta pačia bendra programa, o kada atskirais kūriniais. Tai priklauso nuo to, kaip pagrindinėje programoje bus aktyvuojamas jos įskiepis. Jei pagrindinėje programoje įskiepio aktyvavimas įvyksta naudojant fork ir exec komandas ir [pagrindinė programa ir įskiepis] užmezga tarpusavyje specifinę sudėtingą komunikaciją, keičiantis sudėtingomis duomenų struktūromis, ar siuntinėjant pirmyn atgal sudėtingas duomenų struktūras. Tuomet galima būtų laikyti, kad jie sudaro tą pačią bendrą programą. O jei pagrindinė programa, kuri naudoja fork ir exec komandas įskiepio aktyvavimui (iškvietimui), neužmezga sudėtingos komunikacijos su įskiepiu, laikytina, kad įskiepis yra atskira programa. Jei pagrindinė programa dinamiškai sąveikauja (angl. links) su įskiepiu ir kai jie vienas į kitą kreipiasi funkcijų pagalba ir dalinasi duomenų struktūromis, tada manytume, kad [įskiepis ir pagrindinė programa] sudaro tą pačią bendrą programą, kuri laikytina tiek pagrindinės programos, tiek įskiepių išplėtimu. Tačiau jei pagrindinė programa dinamiškai sąveikauja su įskiepiais, bet jų komunikacija apsiriboja kreipimusi į įskiepio pagrindinę (angl. main) funkciją su tam tikromis opcijomis ir grąžinamo rezultato laukimu, tai toks atvejis laikytinas ribiniu (nepakankamai aiškiu) atveju. Naudojimasis bendra atminties adresų sritimi komunikuojant, keičiantis sudėtingomis duomenų struktūromis, iš esmės yra tas pats kaip dinaminis sąveikavimas (angl. dynamic linking).

Taigi, jei pagrindinė programa ir įskiepis sudaro tą pačią bendrą programą, tai įskiepį privalote licencijuoti pagal GPL licenciją ar pagal kitą kurią nors laisvosios programinės įrangos licenciją, kuri yra suderinama su GPL (angl. GPL-compatible), ir privalote jį platinti su išeities kodu GPL nurodytu būdu. Pagrindinė programa, kuri nėra susijusi su įskiepiu ir egzistuoja kaip savarankiškas kūrinys, nesukelia kokių nors specialių reikalavimų įskiepiui.


6. Ką reiškia pasakymas, kad licencija yra suderinama su GPL?(#6)

Tai reiškia, kad tokia licencija neprieštarauja GNU GPL licencijos sąlygoms, t. y., kad jos tarpusavyje suderinamos ir kad jūs galite pagal tokią licenciją išleistą kodą sujungti su pagal GNU GPL išleistu kodu į vieną didesnę programą. 

Visos GNU GPL versijos tokį sujungimą leidžia privatiems tikslams, bet jos taip pat leidžia, kad iš tokių kodų sudaryta didesnė programa būtų viešai platinama, su sąlyga, kad tokia didesnė programa kaip visuma bus platinama pagal tą pačią GNU GPL versiją. Visos kitos licencijos, kurios to nedraudžia laikytinos suderintinomis su GPL.

GPLv3 yra suderinama su daugiau licencijų nei GPLv2. GPLv3 leidžia sujungimą su kodu, kuris turi specifines papildomas sąlygas, kurios nėra numatytos pačioje GPLv3. Žr. apie tai GPLv3 7 straipsnyje, įskaitant jame pateiktą sąrašą papildomų leidžiamų sąlygų.


7. O ką reiškia pasakymas, kad dvi licencijos yra tarpusavyje suderinamos?(#7)

Kad galėtumėte dvi programas ar jų reikšmingas dalis sujungti į vieną didesnį kūrinį, turite turėti leidimą jas abi panaudoti tokiu būdu. Jei abiejų programų licencijos tokį sujungimą leidžia, tai jos laikomos tada tarpusavyje suderinamomis. Tam tikrų licencijų suderinamumas priklauso nuo sujungimo būdo, pavyzdžiui jos gali dviem moduliams leisti sąveikauti (angl. linking) tarpusavyje, tačiau neleisti jų kodo sujungti į vieną modulį. Jei norite dvi atskiras programas suinstaliuoti toje pačioje sistemoje, tai nėra būtina, kad jų licencijos būtų tarpusavyje suderinamos, nes tokios programos nesudaro vienos didesnės programos.


8. Ar galima kaip nors padaryti, kad mano programos išvesčiai (angl. output) būtų taikoma GPL? Pavyzdžiui, jei mano programa naudojama kuriant techninės įrangos dizainus, ar galiu reikalauti, kad tokie dizainai būtų irgi laisvi GPL prasme?(#8)

Teisiškai to neįmanoma padaryti. Autorių teisė nesuteikia jums teisės kontroliuoti, kaip bus naudojama išvestis, gauta naudotojams suvedus duomenis į jūsų programą.

Tik vieninteliu atveju jūs galite įgyti teisę į tokią kontrolę: tuomet, kai reikšminga išvesties dalis bus daugiau ar mažiau nukopijuota iš jūsų programos kodo teksto. Pavyzdžiui, daliai Bison programos išvesties būtų taikoma GNU GPL, jei FSF nebūtų nustačiusi išimties tokiam specifiniam atvejui. Nors dirbtinai galima dalį programos nukopijuoti į išvestį, net kai to techniškai visai nereikia, bet jei toks nukopijuotas tekstas neturi jokios praktinės naudos ir prasmės, tai vartotojas galėtų paprasčiausiai tokį tekstą ištrinti iš išvesties ir tokiu atveju nebebūtų taikomos nukopijuoto teksto platinimo (licencijavimo) sąlygos.


9. Ar galima naudoti pagal GPL licencijuojamus redaktorius, pvz., GNU Emacs, programuojant programinę įrangą, kuri nebūtų laisvoji GPL prasme? Ar galima naudoti pagal GPL licencijuojamus įrankius, pvz., GCC, kompiliuojant programinę įrangą, kuri nebūtų laisvoji GPL prasme?(#9)

Taip, nes redaktorių ar kitų programavimui skirtų pagalbinių įrankių autorių teisės ir licencijos netaikomos jūsų rašomam (programuojamam) kodui. Tokių įrankių panaudojimas nesukuria jokių teisinių apribojimų licencijai, pagal kurią jūs norėtumėte licencijuoti savo sukurtą kodą ir jį toliau platinti.

Tačiau kai kurios programos kai kurias savo dalis dėl techninių priežasčių nukopijuoja į [rezultatų] išvestį (angl. output), pvz., Bison kopijuoja standartinę parserio programą į išvesties failą. Tokiais atvejais nukopijuotam tekstui išvestyje taikoma ta pati licencija, kuri taikoma jam išeities kodo formoje. Taip pat išvesties dalis, kuri yra išvestinis kūrinys iš programos įvesties (angl. input), paveldi tą pati autorių teisių statusą kaip įvestis. Bison programa gali būti taip pat naudojama kuriant programinę įrangą, kuri nėra laisvoji GPL prasme. Taip yra todėl, kad FSF specialiai nusprendė leisti naudoti Bison standartinį parserį Bison išvesties failuose be jokių apribojimų. Taip buvo padaryta todėl, kad rinkoje jau buvo kitų į Bison panašių programų, leidžiančių jas naudoti programinėje įrangoje, kuri nėra laisvoji.


10. Ar GPL sąlygos leidžia pardavinėti GPL programų kopijas?(#10)

Taip, GPL licencija leidžia visiems tai daryti. Teisė pardavinėti GPL programos kopijas yra dalis laisvosios programinės įrangos apibrėžimo GPL prasme. Išskyrus vieną specifinę situaciją, susijusią su programos išeities kodo suteikimu, nėra jokių kitų apribojimų dėl prašomos kainos dydžio. Tačiau yra privaloma pateikti rašytinį pasiūlymą suteikti GPL programos išeities kodą ir šis pasiūlymas turi būti pateiktas kartu su išleidžiamu objektiniu kodu.


11. Norėčiau tam tikrą GPL programą ar jos dalį įtraukti (panaudoti) į savo uždarojo tipo (angl. proprietary) sistemą (programą). Jokių specialių leidimų tam, išskyrus tuos, kuriuos man suteikia GPL licencija, neturiu. Ar galiu taip padaryti?(#11)

Pagal GPL licencijuojamos programos ar jos dalies negalima įtraukti į uždarojo tipo (angl. proprietary) sistemas (programas). GPL tikslas yra suteikti visiems teisę (laisvę) programą kopijuoti, platinti, analizuoti ir modifikuoti. Jei jums būtų leista įtraukti pagal GPL licencijuojamą programą ar jos dalį į taip vadinamas nelaisvas (angl. nonfree) programas, tai praktiškai reikštų, kad GPL licencijuojama programa ar jos dalis taptų taip pat nelaisva (angl. nonfree).

Sistema (programa), į kurią yra įtraukta GPL programa (ar jos dalis) yra laikoma GPL programos išplėstine versija (išvestiniu kūriniu autorių teisių įstatymo prasme). Pagal GPL reikalaujama, kad bet kuri programos išplėstinė versija būtų išleista (platinama) tik pagal GPL. Toks reikalavimas egzistuoja dėl dviejų priežasčių: 1) užtikrinti, kad programą gavę vartotojai gautų tokią laisvę, kokia jiems garantuojama pagal GPL; 2) skatinti žmones dalintis savo padarytais programos pagerinimais.

Tačiau daugeliu atveju yra leidžiama GPL programas platinti kartu su uždarojo tipo (angl. proprietary) sistemomis (programomis). Tam, kad dėl to nekiltų teisinių nesusipratimų, turite užtikrinti, jog laisvosios ir nelaisvosios programos nekomunikuotų (nesąveikautų) tarpusavyje per daug tampriai, kad jų nebūtų galima laikyti viena programa ir kad jos neatrodytų kaip viena programa. Skirtumą tarp to, kas paminėta, ir taip vadinamo „įterpimo“ GPL programos galima matyti tiek turinyje, tiek formoje. Turinio prasme, jei dvi programos sujungtos taip, kad atrodo, jog jos yra tos pačios vienos programos dvi dalys, tai nebus galima teigti, kad jas reikia laikyti savarankiškomis programomis. Tokiu atveju GPL būtų taikoma abiem programoms kaip sudarančioms vieną visumą. Tačiau jei programos lieka aiškiai atskirtos, kaip pavyzdžiui: kompiliatorius ir kernelis ar kaip redaktorius ir shell’as, tai galima būtų teigti, kad tai yra dvi atskiros programos. Tai daugiau būtų formos klausimas, atsakymas į kurį priklausytų nuo paaiškinimo, ką darote.

Jei GPL programinė įranga būtų platinama vadinant ją „dalimi“ (angl. „part of“) sistemos, kuri iš dalies yra (angl. proprietary) sudaryta iš uždarojo tipo programų, naudotojai aiškiai nežinotų savo teisių į GPL programą. Bet kai jie žino, kad tai, ką jie gauna, yra laisvoji programinė įranga su greta esančia kita programa, tai jiems tampa aišku, kokios teisės jiems yra suteiktos.


12. Ar galima sukurti laisvąją programinę įrangą, kuri naudotųsi bibliotekomis, kurios nėra laikomos laisvąja programine įranga?(#12)

Jei tai padarytumėte, tai jūsų programos nebūtų galimai pilnai panaudoti kaip laisvosios programinės įrangos. Jei jūsų programa priklauso nuo bibliotekos, kuri nėra laisvoji programinė įranga, ji negalėtų tapti GNU operacinės sistemos dalimi. Todėl prieš tai darydami apsvarstykite, ar konkreti užduotis negalėtų būti atlikta nenaudojant tokios bibliotekos, gal galėtumėte sukurti ar surasti alternatyvą tokiai bibliotekai?

Jei programa jau yra parašyta panaudojant tokią biblioteką, kuri nėra laisvoji programinė įranga, tada tikriausiai jau bus per vėlu kažką pakeisti. Tuomet galbūt geriau išleisti tokią programą, kokia ji yra, nei apskritai jos neišleisti. Bet prašome, paminėkite README faile apie tai, kad tokios nelaisvos bibliotekos panaudojimas nebuvo geras pasirinkimas ir paskatinkite programos naudotojus modifikuoti programą taip, kad būtų išsiversta be jos. Prašom, pasiūlykite, kad tas, kuris svarsto iš esmės perprogramuoti programą, pirmiausia išlaisvintų ją iš priklausomybės nuo bibliotekų, kurios nėra laisvoji programinė įranga. Taip pat atkreipkite dėmesį į tai, kad gali iškilti teisinių klausimų sujungiant tam tikras bibliotekas, kurios nėra laisvoji programinė įranga, su laisvąja programine įranga, kuriai taikoma GPL.


13. Parašiau programą, kuri turi sąsajų (angl. links) su įvairiais programiniais komponentais, kurie licencijuojami pagal įvairias kitokias licencijas. Sunku suprasti visus licencijavimo reikalavimus, taikomus mano programai. Ar galite man patarti, kokias licencijas aš galiu naudoti?(#13)

Kad galima būtų atsakyti į tokį klausimą, reikia turėti sąrašą visų programoje naudojamų komponentų, jų licencijų pavadinimus ir trumpą aprašymą, kokiu būdu jūsų programa naudoja tuos komponentus. Pvz., tam, kad mano programa veiktų, ji turi būti susieta (angl. link) su FOO biblioteka, kuriai taikoma L(esser)GPL; mano programa inicijuoja BAR programos paleidimą per mano suprogramuotą komandinę eilutę, BAR programa yra licencijuojama pagal GPL, turinčia specialią išimtį, leidžiančią susiejimą su mano programa.

14. Ar galiu išleisti programą, kuri nebūtų laisvoji programinė įranga ir kuri galėtų naudoti plugin’ą, licencijuojamą pagal GPL?(#14)

Pirmiausia reikėtų nustatyti, ar programa ir plugin’as sudarys vieną programą, ar tai bus dvi atskiros programos. Jei jie sudarys vieną ir tą pačią programą, tai pagrindinė programa turi būti išleista pagal GPL licenciją arba pagal su GPL suderintą licenciją, o kai pagrindinė programa su plugin’u platinama kartu, tai ši bendra programa kaip visuma turi būti platinama pagal GPL. Tačiau, jei pagrindinė programa ir plugin’as yra du atskiri kūriniai (programos), tuomet plugin’o licencija neįtakoja pagrindinės programos ir jos licencijavimo sąlygų.


15. Ar galiu taikyti GPL savo programuojam plugin’ui, kuris skirtas uždarojo tipo (angl. propriatary, nonfree) programai?(#15)

Pirmiausia reikia atsakyti į klausimą, ar jūsų rašomas plugin’as ir pagrindinė programa, kai jie abu veiks kartu, sudarys vieną ir tą pačią programą. Jei jie veikdami sudarys tą pačią programą, tai GPL plugin’o panaudojimas su programa, kuri nėra laisvoji programinė įranga, pažeis GPL licenciją. Tačiau šią teisinę problemą galima išspręsti papildomai įterpiant taip vadinamą išimtį į savo plugin’o GPL licenciją, pagal kurią (tą išimtį) suteiktumėte teisę GPL plugin’ą susieti (angl. to link) su pagrindine programa, kuri nėra laisvoji programinė įranga.


16. Jei programavimo kalbos interpretatorius yra išleistas pagal GPL, ar tai reiškia, kad sukurtos programos, kurios veikia jo interpretavimo pagalba, irgi turi būti licencijuojamos pagal GPL?(#16)

Jei interpretatorius tik interpretuoja programavimo kalbą, tuomet atsakymas yra neigiamas. Tokiu atveju interpretuojama programa interpretatoriui tėra duomenys. GPL licencija, kuri remiasi autorių teisėmis, negali nustatyti kokių nors apribojimų interpretatoriui dėl duomenų naudojimo. Jūs galite jį naudoti su bet kokiais duomenimis ir tai neįtakoja pačių duomenų ir išvesties licencijavimo klausimo.

Tačiau jei interpretatorius įterpia į binarinį kodą sąsajas su bibliotekomis ar kitu pagalbiniu funkcionalumu, tai iš tiesų interpretuojama programa susiejama su tuo interpretatoriaus funkcionalumu per šiuos intarpus. Todėl jei toks funkcionalumas yra išleistas pagal GPL, tai interpretuojama programa, kuri juos panaudoja, taip pat turi būti išleista taip, kad atitiktų GPL sąlygas. Java Native Interface (JNI) yra tokių intarpų (angl. binding) mechanizmo pavyzdys. Tokiu būdu naudojamos bibliotekos yra dinamiškai susiejamos su Java programomis, kurios jas išsikviečia. Tokios bibliotekos taip pat būna susietos su interpretatoriumi. Jei interpretatorius yra susietas statiškai su tokiomis bibliotekomis ar jei interpretatorius suprojektuotas taip, kad dinamiškai būtų susietas su šiomis bibliotekomis, tai jis taip pat turi būti išleistas su GPL suderintu būdu.

Kitas panašus ir gana paplitęs atvejis yra, kai kartu su interpretatoriumi pateikiamos ir bibliotekos, kurios pačios būna interpretuojamos. Pvz., Perl sudaro daug Perl modulių, o Java realizaciją sudaro daug Java klasių. Šios bibliotekos ir programos, kurios jas išsikviečia, visada būna tarpusavyje dinamiškai susiejamos. Tai reiškia, kad jei savo programoje naudojate Perl modulius ar Java klases, kurioms taikoma GPL, tai privalote savo sukurtą programą išleisti GPL suderintu būdu nepriklausomai nuo to, koką licenciją turi Perl ar Java interpretatoriai, kurių pagalba paleidžiama veikti sudėtinė Perl ar Java programa.


17. Kaip galima būtų susieti uždarojo tipo (angl. proprietary) modulius su GPL biblioteka naudojant interfeisą?(#17)

Kiekvieno pakete esančio failo pranešime apie GPL licenciją pabaigoje pridėkite tokį tekstą:  

Statiškas arba dinaminis ABC susiejimas su kitais moduliais reiškia sudėtinio kūrinio, besiremiančio ABC, sudarymą. Todėl visai kombinacijai taikoma GNU General Public License.

Turtinių autorių teisių į ABC savininkas kaip specialųjį leidimą suteikia teisę sujungti ABC programą su laisvąja programine įranga ar biblioteka, kurios yra išleistos pagal GNU LGPL, ir su savarankiškais moduliais, kurie komunikuoja su ABC per ABCDEF interfeisą. Jūs galite kopijuoti ir platinti tokią sistemą pagal GNU GPL, kuri taikoma ABC, ir pagal kitas licencijas, kurios taikomas kitai kodo daliai, su sąlyga kad įtrauksite tos dalies išeities kodą tuomet, kai tai bus privaloma pagal GNU GPL tokiu būdu, kaip to reikalaujama pagal GNU GPL platinant išeities kodą, ir su sąlyga, kad jūs nemodifikuosite ABCDEF interfeiso.

Pažymėtina, kad asmenys, kurie padaro ABC modifikuotą versiją, neprivalo suteikti šio specialaus leidimo savo modifikuotai versijai; tačiau jie turi teisę tai padaryti. Pagal GNU General Public License galima išleisti modifikuotą versiją be šios išimties; ši išimtis taip pat suteikia teisę išleisti modifikuotą versiją, turinčią šią išimtį. Jei modifikuosite ABCDEF interfeisą, tai ši išimtis nebegalios jūsų modifikuotai ABC versijai ir jūs tuomet privalote šią išimtį ištrinti iš failų, kai platinate modifikuotą versiją.  

Ši išimtis yra vadinamasis papildomas leidimas pagal 7 straipsnį GNU General Public License versijos Nr. 3 („GPLv3”). Ši išimtis leidžia pagal skirtingas licencijas išleistus modulius susieti per specialų interfeisą (“ABCDEF”), tuo pačiu užtikrina, kad naudotojai gautų išeities kodą taip, kaip jį gautų pagal GPL. Tik turtinių autorių teisių turėtojai turi teisę suteikti tokią išimtį. Jei visą programą parašėte jūs pats, tuomet, jei darbdavys ar mokymo įstaiga neturi teisių į turtines autorių teises, galite nustatyti tokią išimtį. Bet jei norite naudoti kitų autorių ar turtinių autorių teisių savininkų GPL programų tam tikras dalis, tai negalite jų vardu nustatyti tokios išimties. Jums tokiu atveju reikia gauti turtinių autorių teisių turėtojų leidimą tam tikslui.


18. Bendrovės internetinėje svetainėje veikia modifikuota GPL (Affero GPL) programos versija, ar dėl to bendrovė privalo išleisti (atskleisti) tos modifikuotos programos versijos išeities kodą?(#18)

GPL atveju tai nėra laikoma platinimu, nes organizacija pasidaro kopijas savo vidiniams poreikiams. Bendrovės ar kitos organizacijos turi teisę pasidaryti modifikuotą versiją ir ją įsidiegti savo organizacijos vidinėje infostruktūroje, neleisdamos savo personalui perleisti modifikuotos versijos trečiosioms šalims. Tačiau, kai organizacija perduoda kopijas kitoms organizacijoms ar asmenims, tai paprastai jau laikoma platinimu. Pvz., FSF nuomone, kopijų suteikimas paslaugų tiekėjams gali būti laikomas distribucija, jei kopija perduodama už organizacijos ribų.

Taigi, GPL leidžia kiekvienam pasidaryti GPL programos modifikuotą versiją ir ją naudoti, neplatinant (neduodant) jos kitiems. Modifikuotos GPL programos veikimas bendrovės internetiniame puslapyje kaip tik ir yra toks atvejis. Todėl bendrovė neprivalo atskleisti (suteikti) kitiems tokios modifikuotos GPL programos išeities kodo. Tačiau situacija būtų kitokia, jei modifikuota programa būtų licencijuojama pagal GNU Affero GPL, apie tai daugiau žemiau. Paminėtina, kad gali pasitaikyti toks specifinis atvejis, kai puslapyje būna įdėta ar kai jis būna susietas su atskira GPL programa, kuri būna nusiunčiama (platinama) puslapio naudotojui į šio įrenginį, kai šis apsilanko tame puslapyje (dažnai tokia GPL programa būna parašyta naudojant JavaScript kalbą, bet gali būti parašyta ir kitomis programavimo kalbomis). Tokiu atveju, tokių [internetinių] programų išeities kodas turi būti platinamas naudotojams pagal GPL sąlygas.

Tuo atveju, jei bendrovės internetinėje svetainėje veikia modifikuota Affero GPL programos versija, tai pagal šią licenciją reikalaujama, kad modifikuotos programos versijos naudotojai, kurie naudojasi ja per kompiuterinį tinklą, turėtų galimybę gauti jos išeities kodą. Todėl bendrovė savo puslapyje naudodama tokią AGPL programą turi atskleisti jos išeities kodą visuomenei.


19. Ar galima modifikuoti GPL licencijos tekstą ir taip sukurti kitą modifikuotą licenciją?(#19)

Leidžiama sukurti modifikuotą GPL licencijos teksto versiją, bet tai sukeltų praktinių pasekmių ir to daryti nėra prasmės. Jūs galite naudoti GPL sąlygas, įskaitant modifikuotas jos sąlygas, kitoje licencijoje su sąlyga, kad tokią licenciją pavadinsite kitu pavadinimu ir į ją neįtrauksite GPL licencijos preambulės ir jei pakeisite jos naudojimo instrukcijas taip, kad jos aiškiai skirtųsi nuo GPL naudojimo instrukcijų. Vis dėlto mes rekomenduojame nekurti modifikuotų licencijų GPL pagrindu, nes tokios licencijos greičiausia būtų nesuderinamos su GPL ir nebūtų praktiškai naudingos. Vietoje to, kad modifikuotumėte GPL, mes rekomenduojame naudoti GPLv3 numatytų išimčių įtraukimo mechanizm.


Parengta pagal: https://www.fsf.org/blogs/licensing/licensing-and-compliance-lab-the-most-frequently-asked-frequently-asked-questions

Iš anglų k. vertė ir parengė advokatas Paulius Galubickas, 2022-01-26, 2023-11-01, CC BY-ND 3.0 or later version

Copyright © 2019 Free Software Foundation, Inc.

Creative Commons Attribution-No Derivative Works 3.0 license (or later version)