Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, одобрил предоставление исключения из правил, дающего возможность поставлять в составе пакета с инсталлятором asahi-installer исполняемого файла и библиотеки, собранных для платформы macOS. Исключение предоставлено по просьбе разработчиков редакции Fedora Asahi Remix, предназначенной для установки на компьютеры Mac, оснащённые ARM-чипами AppleSilicon.
Вместо штатного для Fedora инсталлятора Anaconda в Fedora Asahi Remix задействован собственный инсталлятор asahi-installer. Процесс установки Fedora Asahi Remix инициируется из уже имеющейся на компьютере Mac операционной системы macOS, для чего в состав asahi-installer входит приложение, запускаемое из macOS и recoveryOS (урезанное окружение macOS). Помимо данного приложения инсталлятор также содержит модуль на языке Python, применяемый для извлечения и размещения прошивки. Пакет с модулем для распаковки прошивки уже принят в репозитории Fedora, но размещению пакета с самим инсталлятором мешает необходимость размещения в пакете исполняемых файлов, собранных для платформы macOS.
Инсталлятор написан на языке Python и для его запуска в macOS требуется интерпретатор Python и библиотека libffi, исходные тексты которой поставляются под лицензией MIT. Так как собирать данные компоненты для macOS из исходных текстов в окружении Linux проблематично, разработчики Fedora Asahi Remix попросили предоставить исключение из правил, разрешающее им добавить в пакет asahi-installer уже собранный для macOS интерпретатор Python (python-3.9.6-macos11.pkg) и библиотеку libffi (libffi-3.4.6-macos.tar.gz). Добавление указанных файлов в пакет с исходными текстами инсталлятора позволит использовать штатную инфраструктуру Fedora для сборки инсталлятора, вместо загрузки готовых сторонних компонентов от проекта Asahi Linux.
Правила оформления пакетов для Fedora определяют, что все входящие в итоговые пакеты бинарные файлы программ и библиотеки должны собираться из исходных текстов, поставляемых в пакете с исходными текстами. Подобное требование обусловлено тем, что бинарные файлы могут содержать скрытую функциональность или вредоносные изменения, проблематично удостовериться в их работоспособности и невозможно внести исправления при помощи патчей. Кроме того, бинарные исполняемые файлы и библиотеки могут быть собраны без использования предписанных в Fedora флагов компиляции, включающих определённые механизмы защиты и оптимизации.
После обсуждения участники комитета FESCo согласились предоставить исключение, так как в настоящее время инфраструктура Fedora не поддерживает сборку исполняемых файлов для macOS, а предлагаемые для включения в пакет готовые исполняемые файлы отдельно собираются участниками проекта из доступных исходных текстов. После появления инструментария для кросс-компиляции для macOS решение может быть пересмотрено. Принятие исключения также позволяет переместить пакет с инсталлятором в Fedora, снизив таким образом число задействованных внешних компонентов в дистрибутиве (вместо добавления внешней сборки всего инсталлятора asahi-installer дистрибутив перейдёт на внешние сборки двух отдельных артефактов из его состава, сам же пакет с инсталлятором будет собираться в Fedora).
|