Kto obroni Open Source? Chiński Allwinner licencje ma za nic, a społeczności śmieje się w twarz
Chińskie firmy znane są z dość luźnego podejścia do kwestiilicencjonowania i ochrony własności intelektualnej. Zwykle mówi sięjednak o tym w kontekście restrykcyjnych licencji komercyjnych ioprogramowania własnościowego. Nie oznacza to, że z WolnymOprogramowaniem jest inaczej. Jeden z najbardziej znanych chińskichproducentów mikroprocesorów, Allwinner Technology z Zhuhai, pokazuje,że zapisy licencji GPL są dla niego bez znaczenia, a zarzuty wysuwaneprzez niezadowoloną z takiego stanu rzeczy społeczność Open Sourcetraktuje niezbyt poważnie. Co jednak można zrobić z firmą działającącałkowicie poza respektowanym na Zachodzie porządkiem prawnym?
Na rynku najtańszych mikroprocesorów dla urządzeń przenośnych iwbudowanych mało kto mógł z Allwinnerem konkurować. Chińczycy oferująnp. czip A33 z czterema rdzeniami Cortex-A7 i zintegrowanym GPUMali-400 MP2, który wykorzystywany jest w tabletach kosztujących już30 dolarów. Przygotowuje też sterowniki dla tych układów SoC, orazbiblioteki programistyczne oraz multimedialne. Wśród nich jestoprogramowanie dla autorskiego procesora sygnałowego CedarX,wbudowywanego w czipy z serii A. Pozwala on na tych relatywnieprzecież słabych procesorach dekodować dwuwymiarowe wideo 2160p (4K)oraz stereoskopowe wideo 1080p.
Od kilku już lat społeczność Open Source zwraca uwagę nanaruszenia licencji GPL związane z nieudostępnianiem kodu źródłowegosterowników Allwinnera dla Androida i Linuksa, ewidentniewykorzystujących kod licencjonowany na licencji LGPL. Producentoferuje je wyłącznie jako binarne bloby, nigdzie na swoich stronachnie można znaleźć wymaganych przez tę wolną licencję źródeł. Nieprzeszkodziło to niezależnym programistom stworzyć metodami odwrotnejinżynierii własnychsterowników, zapewniających sprzętową akcelerację wideo na tymtanim i ogromnie popularnym sprzęcie – ale nie w tym problem.Miesiąc temu okazałosię, że Allwinner nie tylko nie publikuje kodu dla sterownikówpamięci, wideo, kamery czy ekranów dotykowych, ale też po prostuwykrada na dużą skalę otwarty kod, by wykorzystać go w swoichkodekach dla wspomnianego CedarX.
Pracujący nad otwartą alternatywą dla sterowników Allwinneraprogramista Luc Verhaegen zidentyfikował w nich sporo kodupochodzącego z bibliotek ffmpeg (licencjonowanej jako LGPL) orazlibVP62, należącej kiedyś do On2 Technologies, a obecnie do Google.Zgromadził też dowody, że nie ma mowy o tym, by do naruszenialicencji doszło w wyniku omyłki, lub też odpowiadał za to ktoś inny,niż inżynierowie chińskiej firmy. Co ciekawe, jego list z zarzutaminie został zignorowany. Otrzymał w odpowiedzi zapewnienia, że wprzyszłości będzie lepiej, że odpowiednie sterowniki zostaną otwarte,że podjęte zostaną działania na rzecz przestrzegania zapisówlicencyjnych.
Tydzień po odkryciu faktycznie cośsię zmieniło. W swoim repozytorium na GitHubie, gdzie firmaprzechowuje swoje binarne bloby, pojawił się plik z licencją LGPL izapisem, że *oprogramowanie zostało wydane na warunkach licencjiGNU Lesser General Public License (LGPL) w wersji 2.1 lubpóźniejszej. *To wszystko –licencji i binarnemu blobowi nie towarzyszył żaden kod źródłowy. Dwatygodnie później pojawił się zaś nowy blob. Programista OlliverSchinagl pobawił się dekompilatorem i zauważył,że Chińczycy zaczęli zmieniać nazwy funkcji w nieswoim kodzie, tak byukryć jego realne pochodzenie. Jednocześnie przywrócili wcześniejwycięte zapisy licencyjne przy plikach OpenMAX, stanowiące, że prawaautorskie należą do Fundacji Linuksa i zrobili nieco porządków wrepozytorium.
Kolejna zmiana sprzed kilku dnipopchnęła sprawę jeszcze dalej. Oficjalna aktualizacja bibliotekCedarX, wgranajako wydanie poprawkowe, rozwiązujące kilka problemów, przyniosłajedynie dalsze przeróbki kodu, tak by ukryć bezprawne wykorzystanieotwartych źródeł, wycięto z nich wszystkie używane wcześniej symbole.Widać jednak, że inżynierowie Allwinnera nie bardzo wiedzą, jakzabrać się do tego problemu. Luc Verhaegen na łamach listylinux-sunxi pokazał, że wciąż łatwo zidentyfikować opensource'oweźródła. Krótkowzroczność firmy jest po prostu zadziwiająca –producent pogarsza swoją sytuację każdym kolejnym posunięciem.
Ciekawe spostrzeżenie w tejkwestii wysunął na liście dyskusyjnej Michał Suchanek – byćmoże po prostu nie warto już się zajmować Allwinnerem. Czasy, gdyfirma produkowała niezły sprzęt i starała się jakoś współpracować zespołecznością najwyraźniej już minęły, więc dziś jedyne co możnazrobić, to utrzymywać otwarty kod dla przestarzałych już urządzeń.Trudno się dziwić takiej opinii: w sytuacji, gdy swoje własne tanieukłady SoC robi niemal każdy producent, z większym poszanowaniemlicencji, tu po prostu może nie być o co kruszyć kopii. Zachodniprogramiści przecież raczej nie założą sprawy w chińskim sądzie, byzmusić Allwinnera do respektowania zapisów licencji. ZignorowanieAllwinnera może sprawić, że producenci sprzętu dla końcowychużytkowników po prostu będą rozglądali się za innymi czipsetami,lepiej działającymi z rozwijanym przez strony trzecieoprogramowaniem.