Пьер Швецер, один из основных разработчиков операционной системы ReactOS, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows, сделал в своеи твиттере резонансное заявление. Теперь новые билды операционной системы можно собирать, пользуясь исключительно средствами этой ОС и ее официальной среды сборки RosBE. Сама среда сборки так же собирается из исходников при первом запуске сценария сборки.
Таким образом, ОС ReactOS достигла состояния называемого Self-Hosted. Символично, что данное событие происходит в тот момент, когда проект, по некоторым расчетам, достигает своего полного совершеннолетия по человеческим меркам (21 год). На скриншоте показан заключительный этап сборки и смонтированный средствами ОС, только что собранный, новый образ Live-дистрибутива ReactOS. Официальная инструкция по сборке обновлена в соотвествии с новым положением дел.
В целом, это эпохальное событие стало возможно благодаря совместной целенаправленой работе Томаса Фабера над контролером кеша и Пьера над драйвером файловых систем FastFAT и CDFS непосредственно. О чем будет рассказано гораздо подробнее к в анонсе к грядущей версии 0.4.9. За поддержанием возможности самосборки теперь будут следить. Поэтому, следующим этапом будет установка билд-бота для регулярной сборки публичных тестовых образов ReactOS на ReactOS.
Одним из последних, недостающих для самосборки компонентов, стала несовершенная реализация алгоритма qsort в библиотеке msvcrt.dll. Это обнаружилось при очередных попытках скомпилировать ReactOS в ReactOS, когда сборка останаливалась из-за сбоя в подготивтельном этапе компиляции компонета USB-стека библиотеки USBD. Правильную реализацию qsort быстро перенесли из FreeBSD, за что этому проекту отдельная благодарность.
Заключительным штрихом стало устранение Гермесом Белуской древних несовершенств в командной оболочке CMD, связанных с управлением заголовком окна, которые раньше можно было игнорировать или обходить хаком.
Состояние self-hosted достигалось и ранее в 2003 и 2009 годах. Но оба раза утрачивалось, так как не являлось приоритетным. В первом случае - из-за экспоненциального роста функционала и объема кодовой базы, а во втором - из-за значительной модернизации средств среды сборки и формата исходников (переход с rbuld на cmake)
Релиз 0.4.9 станет первым в новейшей истории проекта, который будет полностью поддерживать самосборку. Хотя до выхода этой версии еще около месяца - для предварительного тестирования уже доступен релиз-кандидат, впечатляющие своей сравнительной стабильностью работы.
>>> Подробности