Преди няколко дни проектът GNOME е обявен чрез публикация в блога el съобщение за края на разработката и поддръжката на разширението „org.gnome.Platform.i386.Compat“, ключов елемент, използван от средата за изпълнение GNOME Flatpak да предложи съвместимост с 32-битови приложения.
С това решение, GNOME Flatpak Runtime вече е достъпен само за архитектури x86_64 и AArch64, което отбелязва окончателния край на период, в който поддръжката на множество архитектури беше приоритет.
GNOME 49 беше пуснат миналия месец и като цяло работеше много гладко…
Нещо, което обаче остана незабелязано и липсва, е, че 32-битовото разширение за съвместимост за средата за изпълнение на GNOME Flatpak вече не е налично. Планирахме да обявим това по-рано, но ситуацията го попречи.
Краят на едно историческо разширение
Разширението org.gnome.Platform.i386.Compat предоставя 32-битови версии на GTK, libadwaita, WebKitGTK и други важни библиотеки, позволявайки на 32-битов софтуер да работи на съвременни 64-битови системи без вградена поддръжка за multilib. Настоящите реалности обаче правят ненужно поддържането на тази съвместимост.
Популярни приложения като Wine и Steam, макар и все още да се разпространяват във Flatpak формат, няма да бъдат засегнати, тъй като не разчитат на 32-битови версии на библиотеките на GNOME.
Мотиви за решението
Разработчиците на GNOME споменават, че главната причина на тази промяна е да се облекчи натоварването на инфраструктурата за непрекъсната интеграция (CI) и да намалят произтичащите от това проблеми за поддържане на малко използвани конструкции.
Преди няколко години изоставихме нормалната компилация за ARMv7 и i386 от средата за изпълнение. С премахването на разширението за съвместимост с i386, вече нямаме 32-битови системи, които да наблюдаваме преди пускането на GNOME. Преди това всички модули, които пуснахме, бяха гарантирано компилирани за поне i386/x86, но оттук нататък това вече няма да е така.
И в продължение на години, Екипът на GNOME преработи цялата си среда (включително WebKitGTK, mozjs и няколко библиотеки, базирани на Rust) поне два пъти дневно за всяка поддържана архитектураТози процес консумираше значителни ресурси и причиняваше чести грешки в 32-битовите компилации поради липсата на тестване от страна на разработчиците преди изпращане на промените в хранилищата.
Когато проектът загуби част от дарената си CI инфраструктура, 32-битовата версия беше първата, която беше постепенно преустановена. Тъй като почти никакви приложения не зависеха пряко от това разширение, преходът нямаше непосредствено въздействие.
Техническият екип, воден от Абдеррахим и други разработчици на GNOME, работих по мигрирането на малкото останали приложения към основната среда за изпълнение на GNOME 49. От четирите приложения, които все още използват разширението (две на Flathub, едно в Flathub Beta и едно архивирано), Бутилките вече са до голяма степен интегрирани, докато Lutris и Minigalaxy все още се нуждаят от някои настройки.
На теория, беше счетено, че това ще запази съвместимостта с org.freedesktop.i386.Compat, но беше решено пълно преместване към съвременната среда за изпълнение, тъй като freedesktop-sdk служи като основа за средата GNOME и позволява по-лесна поддръжка.
Край на тестването за 32-битови архитектури
С премахването на това разширение и компилациите armv7 и i386, GNOME вече не извършва автоматично тестване, нито гарантира съвместимост с 32-битови системи. Преди всички модули на GNOME се компилираха правилно за i386/x86; сега всеки отделен проект ще реши дали да запази тази поддръжка.
Някои, като glib, те все още имат собствена CI инфраструктура за 32-битови архитектури, Но в повечето случаи, поправянето на конкретни грешки ще бъде по избор и ще зависи от добрата воля на поддръжниците.
Накрая, заслужава да се отбележи, че този ход не представлява значителна загуба за крайните потребители, а по-скоро стъпка към опростяване и повишаване на ефективността на разработването на GNOME. Чрез фокусиране на усилията върху най-широко използваните архитектури, проектът ще може да се придвижи по-бързо към оптимизиране на работната си среда и библиотеки, консолидирайки поддръжката за съвременни 64-битови и ARM-базирани системи.
И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите В следващия линк.