Czy to naprawdę kod źródłowy tego programu?

Polecam cały artykuł Is that really the source code for this software? a dla niecierpliwych lub niespikających krótkie streszczenie. Wiele wolnego oprogramowania przychodzi w postaci binarnej. Dołączony jest do niej kod źródłowy w teorii odpowiadający dokładnie temu, z którego zostały zbudowane wersje binarne. Zagadnienie jest ważne zarówno z punktu widzenia wolności oprogramowania, jak i bezpieczeństwa.

Autor ww. artykułu postanowił sprawdzić, jak to wygląda w praktyce dla popularnych dystrybucji Linuksa (Debian, Fedora, OpenSUSE). Na przykładzie tak prostego oprogramowania jak tar. Wykorzystał do tego celu minimalne instalacje systemu, korzystał ze źródeł dostarczonych w dystrybucjach i metod budowania zalecanych przez dystrybucje.

Wyniki są dość zaskakujące: ani razu nie udało mu się uzyskać dokładnej (bit w bit) kopii tego prostego przecież pakietu wykorzystując kod źródłowy.

W przypadku Debiana różnice były minimalne (data i id buildu w plikach wykonywalnych), w przypadku OpenSUSE było gorzej. Powstałe pliki binarne były 5 razy większe od oryginału. Po wykonaniu strip na wersjach binarnych sytuacja wyglądała już podobnie jak w przypadku Debiana. Najgorzej wypadła Fedora – nie tylko różnic było najwięcej, ale autorowi artykułu nie udało się ustalić przyczyn wszystkich rozbieżności . Jak pisze „niełatwo stwierdzić, czy samodzielny build ze źródeł będzie funkcjonował identycznie, jak opublikowana wersja binarna z dystrybucji”.

W przypadku skomplikowanych pakietów i projektów luźniej podchodzących do kwestii wolności oprogramowania, niż dystrybucje Linuksowe (np. firmware routerów z wykorzystaniem wolnego oprogramowania – często zamieszczają kernel, ale zwykle jest to wersja waniliowa wzięta na żywca z kernel.org…) różnice będą jeszcze większe. Gdyby ktoś znalazł komentarz RMS do sprawy, proszę o linka – bardzo jestem ciekaw, co ma do powiedzenia w tej sprawie.

UPDATE: Problem czy to naprawdę kod źródłowy danej binarki został dostrzeżony i doceniony, idea reproducible builds stała się popularna.

Wolne repozytoria dla Androida czyli alternatywa dla Google Play.

Model sprzedaży aplikacji przez Google mi się niezbyt podoba: sporo mało użytecznych aplikacji, wszechobecne aplikacje płatne i z reklamami. Oczywiście, niby jest system ocen, ale nadal ciężko wybrać (z dwóch wysoko ocenianych czytników ebooków jeden był totalnie OKDR). Niby jest filtrowanie płatne/bezpłatne, ale już filtra na wersję bez reklam nie ma. Ogólnie, żeby coś znaleźć fajnego, trzeba trochę prób i błędów. Niewiele jest dobrych i jednocześnie darmowych aplikacji. TBH wolałbym trial pełnej wersji, albo po prostu aplikacje, które w prosty sposób umożliwiają przekazanie pieniędzy np. przy pomocy Flattr. Na ostatnim P.I.W.O pytałem o alternatywne repozytoria pakietów i nikt nie znał takowego.

Dołóżmy do tego fakt, że twórca aplikacji sprzedawanej w Google Play dostaje w przypadku zakupu nasze dokładne dane i robi się niezbyt ciekawie. Gdyby ktoś chciał repozytorium zorientowane bardziej na wolność, prywatność i z wolnym oprogramowaniem, to informuję, że takowe istnieje. Dowiedziałem się o nim, gdy ponarzekałem na Androida – zostałem odesłany do projektu Replicant, czyli całkowicie wolnej alternatywy dla Androida.

Mój tablet (Go Clever A73) nie jest wspierany (ogólnie mało urządzeń jest), ale za to dowiedziałem się o tytułowym wolnym repozytorium dla Androida, czyli f-droid.org, czyli wspomnianej alternatywie dla Google market AKA Play. Zawiera tylko wolne oprogramowanie (preferowany sposób dystrybucji to dostarczenie kodu źródłowego do utrzymujących f-droid.org, a następnie skompilowanie przez nich). Można pobierać aplikacje bezpośrednio, można skorzystać z managera. Pierwsze wrażenie przy instalacji pakietów z jego pomocą – znacznie lżejszy od aplikacji obsługującej Play. Aplikacje szybciej się pobierają i instalują. I mniej kolorowo – niestety, dostępne są tylko opisy aplikacji, nie ma screenshotów. Wada, bo jednak kupujemy oczami.

Część aplikacji jest dostępnych w Play (co ciekawe, musiały być wysoko ocenione, skoro je zainstalowałem). Może się zdarzyć, że przed instalacją wersji z f-droid.org trzeba będzie odinstalować wersję z Google Play. Większość aplikacji jest użyteczna i po prostu działa. Trzeba jednak zwrócić uwagę na opisy i funkcjonalności, bo czasem zdarza się, że aplikacja dostępna w repozytorium f-droid jest mniej funkcjonalna, niż jej odpowiednik z Google Play – wynik pozbycia się niewolnych bibliotek czy źródeł danych.

Inną ciekawą funkcją są tzw. antyfunkcje. W managerze pakietów można określić, czy chcemy dopuścić instalację aplikacji zawierających reklamy, namierzających położenie lub raportujących działania (kiedyś to się spyware nazywało…), wspierających płatne dodatki, wspierających płatne usługi sieciowe czy w końcu zależne od innych, płatnych aplikacji. Domyślnie wyszukuje tylko wśród wolnych aplikacji, ale można wyłączyć. Jeśli komuś zależy, to może podążać ścieżką GNU i RMS, ale nie ma przymusu.

W przeciwieństwie do Play, f-droid.org pozwala na wybór wersji instalowanej aplikacji. Czyli jeśli najnowsza np. nie działa na naszym sprzęcie, albo zwyczajnie się nam nie podobają zmiany wprowadzone przez autora, to nie ma przymusu i nadal można zainstalować wersję starszą.

Nie wiem jak ocenią f-droid.org typowi użytkownicy, ale z linuksiarskiej perspektywy – warto się zainteresować tym alternatywnym repozytorium pakietów dla systemu Android. Oczywiście z obu źródeł pakietów można korzystać jednocześnie.

PS. Opisuję, bo mało popularne, choć było opisywane po polsku dwa razy.

P.I.W.O. 2012 – wrażenia z imprezy.

Jestem w miarę regularnym bywalcem Poznańskiej Imprezy Wolnego Oprogramowania, więc dotarłem i w tym roku. W tym roku udało mi się być na praktycznie wszystkich prezentacjach – ostatnią odpuściłem na rzecz rozmów w kuluarach. Czego zresztą potem trochę żałowałem, ale odrobiłem na afterparty. W przeciwieństwie do poprzednich edycji nie tylko pojawiły się wykłady z maksymalną oceną, ale było ich nawet kilka. Średnia ocena wykładu ponad 8, więc było naprawdę dobrze.

Trochę mam wrażenie, że wciąż ci sami ludzie z tych samych firm występują na kolejnych edycjach (m.in. PCSS, Wikia, Allegro), ale w sumie po pierwsze, pretensje mógłbym mieć do siebie najwyżej (bo nie wystąpiłem), a po drugie było ciekawie. Zresztą wśród publiczności też sporo znajomych twarzy.

Poszczególnych prezentacji omawiać nie będę, przynajmniej nie teraz – być może w ciągu paru dni napiszę parę słów o każdej. Praktyka AKA Linux/Android przewijała się z polityką/ideologią, ale było i ciekawie, i inspirująco. I to zarówno prywatnie, jak i „służbowo”. Więcej mam nadzieję wkrótce.

Na koniec miły akcent – udało mi się wygrać koszulkę w konkursie wiedzy o CLI linuksowym. Cztery osoby zdobyły równą ilość punktów, ale jedna już wcześniej wygrała koszulkę w losowaniu, więc zrezygnowała (dzięki! :-)). W sumie trochę się zdziwiłem bo o ile samo polecenie zwykle kojarzę, to składni z przełącznikami – niekoniecznie. Chyba jury podeszło mocno liberalnie. Albo dość intuicyjne te polecenia się porobiły i nie trzeba podawać parametrów. I tak, przewijanie wstecz w konsoli crtl+pgup było moją odpowiedzią, a odpowiedź jest błędna. Co ciekawe akurat shift+pgup używam na co dzień. Czeski błąd.