Komitet FESCo (Fedora Engineering Steering Committee), odpowiedzialny za techniczną część rozwoju dystrybucji Fedora Linux, zatwierdził udzielenie wyjątku od zasad, który pozwala na dostarczanie w pakiecie instalatora asahi-installer plików wykonywalnych i bibliotek skompilowanych dla platformy macOS. Wyjątek został udzielony na prośbę deweloperów edycji Fedora Asahi Remix, przeznaczonej do instalacji na komputerach Mac z chipami ARM AppleSilicon.
Zamiast standardowego instalatora Anaconda w Fedora Asahi Remix wykorzystano własny instalator asahi-installer. Proces instalacji Fedora Asahi Remix rozpoczyna się z już zainstalowanego systemu operacyjnego macOS na komputerze Mac, dlatego w skład asahi-installer wchodzi aplikacja, uruchamiana z macOS oraz recoveryOS (okrojone środowisko macOS). Oprócz tej aplikacji instalator zawiera również moduł w języku Python, wykorzystywany do wydobywania i umieszczania oprogramowania. Pakiet z modułem do rozpakowywania oprogramowania został już przyjęty do repozytoriów Fedora, jednak umieszczenie pakietu z samym instalatorem utrudnia konieczność umieszczenia w pakiecie plików wykonywalnych skompilowanych dla platformy macOS.
Ponieważ instalator jest napisany w języku Python, do jego uruchomienia w macOS wymagany jest interpreter Python oraz biblioteka libffi, których kody źródłowe są dostarczane na zasadzie licencji otwartych. Ze względu na problemy z kompilowaniem tych komponentów dla macOS z kodów źródłowych w środowisku Linux, deweloperzy Fedora Asahi Remix poprosili o udzielenie wyjątku od zasad, który zezwala na dodanie do pakietu asahi-installer już skompilowanego interpretera Python dla macOS (python-3.9.6-macos11.pkg) oraz biblioteki libffi (libffi-3.4.6-macos.tar.gz). Dodanie tych plików do pakietu z kodami źródłowymi instalatora pozwoli na wykorzystanie standardowej infrastruktury Fedora do kompilacji instalatora, zamiast pobierania gotowych komponentów od projektu Asahi Linux.
Zasady pakowania dla Fedory określają, że wszystkie pliki binarne programów i biblioteki wchodzące w skład finalnych pakietów muszą być kompilowane z kodu źródłowego dostarczonego w pakiecie z kodem źródłowym. Wymóg ten wynika z faktu, że pliki binarne mogą zawierać ukryte funkcjonalności lub złośliwe zmiany, trudno zweryfikować ich działanie, a wprowadzenie poprawek za pomocą łatek jest niemożliwe. Ponadto, binarne pliki wykonywalne i biblioteki mogą być skompilowane bez użycia zalecanych w Fedory flag kompilacji, które włączają określone mechanizmy zabezpieczeń i optymalizacji.
Źródło: opennet.ru
