Saznajte kako Xiaomi krši uvjete GPL-a i kako njihove odluke da to učine utječu na Android zajednicu i budućnost OS-a.
Xiaomi je najavio svoj Mi Note Pro spektakularnih specifikacija, koji sadrži najnoviji u Qualcommovim Snapdragon procesorima zajedno s velikim 2K zaslonom i 4 GB RAM-a za ubojitu cijenu. Uz to, postoji nešto što nije tako dobro u Xiaomijevim ponudama što zabrinjava mnoge programere, osobito mnoge pronađeno ovdje na XDA: Xiaomijeva opetovana kršenja GPLv2 licence za Linux kernel koji je Android (a time i Xiaomijevi uređaji) izgrađen na.
Xiaomi je nije jedina tvrtka koja je prekršila GPL iako su u prošlosti mnogi proizvođači originalne opreme kao što su Rockchip i Micromax također to učinili, a mnogi nastavljaju sa svojim odmetničkim ponašanjem do danas. Mi pričali malo o ovome na XDA, a zašto ne bismo? XDA je prvenstveno zajednica programera i poznati smo po tome što tisućama iskusnih korisnika nudimo modifikacije softvera koji potpada pod GPL, ali naša zajednica slijedi našu GPL politiku i stoga ovdje ne vidimo mnogo sumnjivog prisvajanja.
Dakle, što Xiaomi točno radi krivo? I je li to protuzakonito, nemoralno ili jednostavno neprikladno? Budući da možda postoje neki čitatelji, korisnici ili čak programeri koji nisu u toku s ovim stvarima, pogledajmo na brzinu što GPL znači.
GNU Opća javna licenca (GPL) je licenca za besplatni softver koja jamči programerima, OEM-ovima, korisnicima ili bilo kojoj vrsti organizacija koja spaja tri kako bi imala neograničen pristup temeljima i funkcionalnosti softvera koji pada ispod njega. Oni mogu koristiti, proučavati, dijeliti i kopirati ili modificirati navedeni softver, jer je to besplatni softver. GNU programeri GNU projekta definiraju slobodni softver ovako:
“Slobodni softver” znači softver koji poštuje slobodu i zajednicu korisnika. Otprilike to znači korisnici imaju slobodu pokretati, kopirati, distribuirati, proučavati, mijenjati i poboljšavati softver. Dakle, "slobodni softver" je pitanje slobode, a ne cijene. Da biste razumjeli koncept, o "besplatnom" biste trebali razmišljati kao o "slobodi govora", a ne kao o "besplatnom pivu".
Dakle, dok besplatni (sloboda govora) softver na kraju može biti besplatan (besplatno pivo), zapravo se radi o poticanju razvojno okruženje koje je usmjereno na napredak računalne znanosti i softverskog inženjerstva kroz kolektivno poboljšanje, dijeljenje i učenje bilo kojeg koda besplatnog softvera.
Projekt GNU ima vrlo plemenit pogled na softver i vode kampanju jer vjeruju da svaki korisnik i kreator zaslužuje ovu slobodu. Ne samo da omogućuje javnosti da kontrolira program i ono što on radi, već i vlasnički softver čini suprotno kontrolirajući korisnika putem kontrole programera nad programom, što bi rezultiralo u instrument nepravedne vlasti. S osnovnim slobodama slobodnog softvera (koje su pokretanje programa kako želite, proučavanje kako radi, redistribucija kad god želite i distribucija vlastitih izmjena), softver inženjerstvo postaje više poput čiste znanosti koja dopušta imati papire, a ne patente, dopuštajući svakom programeru da uzme vrhunac u nečiju teoriju koda, njihove metodologije i preferirani stil programiranja kako bi unaprijedio vlastito razumijevanje kako to funkcionira i prikupio uvide za svoj osobni razvoj. Štoviše, omogućuje mu da zgrabi taj softver i modificira ga.
Riječ "vlasnički" koja se koristi za opisivanje neslobodnog softvera ne znači samo da je unutarnje funkcioniranje koda zakonski nedostupno drugim stranama; također implicira da je vlasnik softvera koji koristite (bilo da se radi o aplikaciji koju preuzimate ili operativnom sustavu koji pokrećete) kreator, te stoga vlasnik odlučuje možete li ga kopirati ili dijeliti. Takve neslobodne prepreke dovode do toga da manje ljudi koristi program i uči iz njega, te do nemogućnosti korisnika da modificiraju, prilagode ili poprave program. Ostavljajući po strani više etičke temelje o društvenoj koheziji i njezine suzdržavajuće ideologije, ova materijalna šteta ima primjetan utjecaj na budućnost računalne znanosti i potrošača, posebno s obzirom na to da su računalna znanost i njezini nusproizvodi isprepleteni sa životima korisnika - i njihovom budućnošću - više nego ikad prije danas.
Nema kvake. Ali postoje stvari koje smetaju proizvođačima originalne opreme. Ljudi koji pokušavaju modificirati besplatni softver licenciran pod GPL-om moraju se pridržavati nekih pravila.
Prije svega, uvjeti moraju biti dostupni svima koji primaju kopiju djela pod GPL licencom i bilo kome tko se pridržava uvjeta GPL-a ima dopuštenje dijeliti, proučavati i mijenjati rad kao i svoje izvedenice. Za razliku od drugih licenci, GPL radi dopuštaju da besplatni (slobodni govor) softver ne bude besplatan (besplatno pivo), za razliku od drugih licenci koje izričito zabranjuju komercijalnu distribuciju.
Stjecatelj GPL licence ili distributer ne smije nametati daljnja ograničenja prava koja daje GPL - zabranjujući distribucija GPL softvera bez izričitog otkrivanja njegove prirode ili pod tajnošću ugovori. Svi patenti koji se koriste u GPL softveru dostupni su za neograničeno korištenje onima koji su u skladu s GPL uvjetima.
GPL također zahtijeva da programi koji se distribuiraju kao unaprijed kompilirane binarne datoteke budu popraćeni kopijom izvornog koda i odricanje od odgovornosti koje informira korisnika ili razvojnog programera da je softver GPL-licenciran ili slobodan za proučavanje, dijeljenje ili modificiranje pod GPL-om. I jedan od najvažnijih dijelova, GPL zahtijeva od distributera da svim primateljima daju licencu zajedno s programom, kao i čineći izvorni kod dostupnim putem nekog medija za one koji to zatraže, zajedno s jasnim uputama kako doći do izvornog koda.
Android je licenciran pod Apache 2.0 licenca, a ne GPL. Apache je "permisivnija" licenca i ne sadrži iste zahtjeve kao GPL. Ne zahtijeva distribuciju izvornog koda pokrivenog djela i izvedenog djela ne nosi nužno Apache licencu, kao virusniji GPL, sve dok uključujete njihov licencija.
Dakle, dok GPL promiče rast slobodnog softvera, Apache je više libertarijanski u svom pristupu razvoju uvjeta budućih izvedenica. A OEM-ovi mogu, na primjer, uzeti Apache licencirani softver, dodati svoje skinove, bloat i što-imaš, a zatim ga zatvoriti i ostaviti izvor zatvorenim. Što radi Xiaomi i mnogi OEM proizvođači. Ali jezgra Linuxa na kojoj Android temelji svoje temelje jest ne licenciran pod Apacheom, za Linux je GPLv2 softver i zbog ovog "virusnog" ili "zaraznog" svojstva GPLv2, jezgre Androida temeljene na Linuxu koja koristi Linuxov GPLv2 kod ima ostati GPLv2.
Xiaomi nije objavio izvorne kodove kernela svog Android ogranka. Budući da se njihova jezgra temelji na jezgri Androida, koja se temelji na jezgri Linuxa, što je GPLv2, uvjeti GPLv2 preneseni su sve do Xiaomija. Da su koristili vlastiti kernel, tada bi imali puno pravo ne distribuirati svoj izvor, a ne bi imali ni obvezu to učiniti. Ali mijenjanjem i distribucijom GPL softvera, moraju se pridržavati GPL uvjeta, u ovom slučaju GPLv2.
Korisnici i programeri s pravom zaslužuju pristup izvornim kodovima kernela, a za XDA nedostatak takvog važan dio Xiaomijevog modificiranog izvora jezgre Androida znači da je podešavanje i petljanje na Xiaomi uređajima prima udarac. A za zajednicu koja je posvećena istraživanju svijeta Androida i njegovom pretvaranju u najbolje što može biti, biti izostavljena iz modificiranja softvera telefona iz najbrže rastući OEM na svijetu je važna stvar.
Bilo je peticija da se Xiaomi uskladi s GPLv2 i objavi svoje izvore u dogledno vrijeme, ali do sada su uspjeli dobiti samo naša obećanja. A ta obećanja još uvijek nisu ispunjena. Hugo Barra, potpredsjednik Xiaomija, obećao je u listopadu 2014. da ćemo izvore Kernela za Mi3 vidjeti u “u sljedećih nekoliko tjedana”, ali to se nikada nije dogodilo. Štoviše, u prosincu prošle godine rekli su da će njihovi izvori biti objavljeni tek 2014. ali u 2015.
Zašto Xiaomi nije na vrijeme objavio izvore za svoj Mi3 uređaj? Hugo Barra rekao je u prosincu da to nisu učinili kako bi spriječili curenje informacija o svojim nadolazećim uređajima. On navodi:
“Izvorni kod kernela za ove uređaje sadrži značajnu količinu izvornog koda koji će se koristiti u dva nadolazeća modela. Ako objavimo izvor kernela u njegovom trenutnom stanju, otkrit ćemo više nego što bismo željeli o budućim uređajima. Mi ćemo to promijeniti u budućnosti, ali trenutno je to ograničenje s kojim moramo živjeti. Nadamo se da možete razumjeti ovu poziciju i jako nam je žao zbog frustracije koju smo možda izazvali!"
Opravdava li to njihove postupke? Naravno da ne. Oni su proizvođač milijardera u industriji milijardera i vrlo su dobro znali da njihov kod radi pod uvjetima GPLv2 i da ga se moraju pridržavati. U 2013 objavljena je objava ponosno se razmećući prelaskom Xiaomi Kernela na open-source. Napravili su veliku stvar oko mogućnosti programera da prilagode ROM-ove za Xiaomi pametne telefone, a njegovi su se zagovornici pohvalili da je Xiaomi "sve o dijeljenju koda otvorenog koda". Brzo naprijed godinu dana i njihovi izvorni kodovi kasne iz neopravdanih razloga, kada su njihovi izvori kernela trebali biti distribuirani potrošače od samog početka, ne čekajući da ih potrošači potjeraju vilama i ne pljuju im u lice apsurdima kašnjenja. A to čak i ne uzima u obzir rad onih koji su otišli prije njih, i to poslovično sranje Xiaomi (i svaki drugi OEM koji ne slijedi GPLv2) se suočava s njima svaki put kad izdaju novi uređaj.
Želim precizirati još jednu stvar za one čitatelje koji nisu upoznati s razlikom: GPL je licenca, a ne ugovor. Neke jurisdikcije vide ključne razlike između ovo dvoje, budući da su ugovori izvršni ugovorno pravo i licence potpadaju pod autorsko pravo. Dakle, kršenje roka licence je još uvijek podložno sudu. Distributeri koji ne prihvaćaju GPL-ove uvjete i odredbe ne mogu kopirati i distribuirati GPL softver prema zakonu. Budući da su odlučili distribuirati softver, krivi su za kršenje u očima zakona.
Bilo da se netko ne slaže s GNU-ovom vizijom demokratskog, otvorenog i uključivog slobodnog softvera ili ne, ne donosi Xiaomijeve odluke i njihovo stalno kršenje uvjeta koje su prihvatili, ništa manje pogrešno. Oni zarađuju na Androidu brzinom koju nijedan suparnik nije vidio i ne slijede pravila koja su Android učinila onim što je danas, pravila koja su OEM-ovima i pojedinačnim programerima omogućila da potaknu rast i napredak unutar OS ekosustava. Pravila kojih su se milijuni s poštovanjem pridržavali kako bi stvorili vlastite uspješne karijere, vlastite uspješne tvrtke, i naš omiljeni hobi na XDA.
Iz praktične perspektive, rješavanje ovoga na sudu nije najlakša stvar. Vlada Kine je svjestan krađe patenata, piratstva i kršenja autorskih prava svih vrsta i vrsta koja se događaju u zemlji, ali ne želi ništa učiniti po tom pitanju. Mnogi analitičari i akademici za to krive latentni plagijat koje je Kina vidjela godinama, neki sugeriraju da bi to moglo biti sastavni dio konfucijanske filozofije na kojoj se velikim dijelom temelji kineska kultura. No bez obzira na to jesu li akademici, analitičari ili frustrirani poslovni ljudi u pravu, problem kineskog kršenja autorskih prava odnosi se na cijeli spektar proizvoda, a Android nije ništa drugačiji.
Xiaomi je u središtu pozornosti kao jedan od najvažnijih OEM-a današnjice, s prepoznatljivošću brenda koja raste iz dana u dan i mogućim upadom na američko tržište uskoro. Iako njihova kršenja ne znače nužno mnogo običnom korisniku Androida, ona ima ozbiljan utjecaj ne samo na programere, već i na ekosustav u cjelini. Kao što projekt GNU sugerira, ova posebna praksa, posebno u ovom konkretnom slučaju, šteti napretku našeg voljenog softvera.
I to je također stvar poštovanja i poniznosti. Ostavljam vam citat vizionarskog revolucionara koji je priznao da je njegov utjecaj na svijet bio toliki zahvaljujući prethodnom radu onih prije njega. Nadajmo se da će Xiaomi jednog dana prihvatiti ovu filozofiju, poštivati uvjete i pomoći Androidu da napreduje kako samo on može.