Отчёт о развитии OpenBSD за июль 2010 года

Изменения в базовой системе OpenBSD, произошедшие за истекший месяц:
  • Номер версии установлен в 4.8-BETA. Это означает, что не за горами «мягкая», а затем и «жёсткая» заморозка кода перед релизом.
  • Платформы hppa, i386 и powerpc переключены на сборку посредством GCC 4. В процессе было выявлено как несколько ошибок в коде OpenBSD, не проявлявшихся за счёт удачного стечения обстоятельств, так и ряд проблем с кодогенерацией GCC 4. В частности, из-за таковых проблем в течение примерно суток был испорчен загрузчик (/boot) на платформе i386.
  • Продолжена очистка от режимов бинарной совместимости (хотя это и называют зачастую эмуляцией, но эмуляции здесь ещё меньше, чем в wine) с неактуальными ОС. Официально OpenBSD больше не собирается акцентировать внимание на поддержке бинарной совместимости: «We live in a source code world» © Theo de Raadt. Для волнующихся: режимы совместимости с Linux и FreeBSD пока что убирать не собираются.
  • Как уже упоминалось, завершён первый этап добавления полноценной поддержки мультибайтных кодировок (в первую очередь, UTF-8) в самой системе. Частично код был взят из NetBSD и FreeBSD. На данный момент обеспечена работоспособность (только в плане работы с символами!) локали en_US.UTF-8, и только в рамках libc. ncurses(3) и wscons(4) ещё требуют доработки, а дерево портов — проверки собираемых программ. Скорее всего, до «мягкой заморозки» дерева разработки будет принят ещё ряд патчей. (подробности)
  • Новый драйвер owctr(4) для доступных извне счётчиков в чипе DS2423. Этот чип может использоваться, например, в смарт-картах.
  • IPSec-инфраструктура теперь учитывает домены маршрутизации при управлении IPSec-потоками и ассоциациями. Теперь несколько экземпляров isakmpd(8)/iked(8)/ipsecctl(8) могут работать параллельно при запуске через route exec.
  • Новая версия X-сервера (1.8), в которой апстрим, наконец-то, вернул поддержку dual-head и не только.
  • После недавнего исключения OpenCVS из сборки (не из дерева) базовой системы, разработка этой альтернативной версии CVS снова продолжилась, на этот раз в первую очередь силами Nicholas Mariott (известен прежде всего как основатель и главный разработчик tmux), Igor Zinovik и Xavier Santolaria. Однако, в сборку системы OpenCVS (пока) не вернулась.
  • Добавлена/исправлена поддержка ряда гигабитных контроллеров для Ethernet-карт от Intel (драйвер em(4)).
  • Добавлен ещё один защитный механизм в OpenSSH, направленный против атак с замерами времени. Практически вся проверка входящих данных (а не только корректности логина и пароля) теперь совершается со случайными дополнительными задержками.
  • Проведено дальнейшее улучшение работы ACPI, исправлен ряд проблем с платформами (от серверов до ноутбуков) производства марок Dell, HP и других. Добавлена поддержка корректного выхода из ждущего режима для многих устройств, в первую очередь, сетевых интерфейсов (как IEEE 802.3, так и 802.11) и устройств ввода.

Заметные изменения в системе портов:

  • Расширена семантика LIB_DEPENDS и WANTLIB: теперь конкретные библиотеки должны указываться непосредственно в списке WANTLIB, а связывать элементы WANTLIB с LIB_DEPENDS система портов будет самостоятельно. Старый способ, через LIB_DEPENDS, пока по-прежнему работает (разъяснения от Marc Espie, от Stuart Henderson)
  • По аналогии с FreeBSD добавлены параметры портов REVISION и EPOCH (без префикса «PORT»). Их использование должно облегчить автоматизированное обновление портов при обновлении библиотек из портов, от которых они зависят, или системных (читай: X-овых) библиотек (разъяснения от Marc Espie). Большая часть дерева портов — всего оно на данный момент составляет около шести с половиной тысяч наименований, не считая субпакетов (MULTI_PACKAGES), — уже переведена на новые переменные.
  • За счёт перехода платформы i386 на GCC 4,теперь можно собрать KDE 4 и на этой платформе. Хотя на данный момент KDE 3 и KDE 4 ещё не могут полноценно сосуществовать, но работы в данном направлении ведутся.
  • Также планируется переход версии Python «по умолчанию» с 2.5 на 2.6. Несколько разработчиков уже много месяцев используют версию 2.6, поэтому больших регрессий ожидать не приходится. Единственным стопором на данный момент является неработоспособность Python 2.6 на платформе hppa после перехода последней на сборку посредством GCC 4.

Небольшие улучшения и исправления также имели место быть в aucat(1)/midicat(1), bgpd(8), fsck(8), ioprbs(4), mpi(4), newfs(8), ospfd(8), ospf6d(8), pthreads(3), управлении частотой процессоров (Intel SpeedStep и т.д.) и роутинг-сокете.

Разработчики просят просят тех, у кого есть возможность, попробовать снапшоты для выявления регрессий и неподдерживаемых функций ACPI. Для этого достаточно загрузиться, проверить dmesg и отослать его вместе с выводом команд pcidump -v и acpidump -o filename одному из основных разработчиков подсистемы ACPI (можно выложить в публичный доступ и указать в письме прямые ссылки для скачивания; dmesg желательно в любом случае вставлять в само письмо). Список основных ACPI-разработчиков:

Желающим обновить систему до 4.8-BETA следует учитывать, что в системный GCC 4 компилятор Фортрана не включён; вместо него используется более работоспособная версия из состава GCC 3, вынесенная в порты (lang/gcc/3.3,-g77). Поэтому после обновления системы необходимо будет удалить каталог /usr/include/g++.

Полный текст статьи читайте на OpenNet