W opublikowanej w ubiegłym tygodniu aktualizacji macOS 15.4 firma Apple zastąpiła narzędzie rsync alternatywną implementacją openrsync, rozwijaną przez projekt OpenBSD. Plik wykonywalny /usr/bin/rsync w macOS teraz odnosi się do openrsync. Przyczyną tej zmiany miały być niedawno ujawnione problemy z bezpieczeństwem w rsync, prace nad ograniczeniem komponentów objętych licencjami copyleft oraz chęć pozbycia się przestarzałej wersji rsync, której aktualizacja nie była możliwa z powodu polityki licencyjnej.
Kluczowymi cechami openrsync są pierwotny rozwój z myślą o zapewnieniu wysokiego bezpieczeństwa, dostarczanie kodu na licencji pozwalającej ISC (rodzina BSD) zamiast licencji copyleft GPL stosowanej w rsync oraz użycie innej architektury wewnętrznej (jeden proces do przyjmowania i wysyłania danych, korzystający z pętli obsługi zdarzeń). Na poziomie protokołu openrsync jest kompatybilny z rsync, ale nie wspiera wszystkich opcji wiersza poleceń, a jedynie najbardziej pożądane do synchronizacji plików i tworzenia kopii zapasowych. Brak wsparcia dla drugorzędnych funkcji pozwala utrzymywać rozmiar bazy kodu openrsync w granicach 10 tysięcy linii kodu, aby zmniejszyć powierzchnię ataku. Dla porównania, w ostatniej wersji rsync znajduje się 62 tysiące linii w języku C.
Biorąc pod uwagę, że do tej pory w macOS dostarczana była przestarzała wersja rsync 2.6.9, wydana w listopadzie 2006 roku, ta zmiana nie spowoduje zauważalnego ograniczenia funkcjonalności. Wersja rsync 2.6.9 została wybrana jako ostatnia, rozpowszechniana na licencji GPLv2+. Następnie wydano rsync 3.0, który przeszedł na licencję GPLv3, zabraniającą tivoizacji (przypisania oprogramowania do sprzętu).
Źródło: opennet.ru
