Релиз OpenBSD 6.4, OpenSSH 7.9 и LibreSSL 2.8.2

В соответствии с релизным циклом вышла новая версия операционной системы общего назначения OpenBSD 6.4. Самые примечательные изменения в новой версии:

  • Множество добавлений для платформы arm64;
  • Улучшения в удобстве использования Wi-Fi;
  • Продолжение работы над избавлением сетевого стека от использования глобальной блокировки ядра;
  • Cистемный вызов unveil (), который предоставляет новый способ изоляции доступа к файловой системе;
  • Механизм защиты RETGUARD, нацеленный на усложнение выполнения эксплоитов, построенных с использованием заимствования кусков кода и приёмов возвратно-ориентированного программирования;
  • Переработка синтаксиса OpenSMTPD для значительного увеличения гибкости не в ущерб удобству;

К сожалению, полагающаяся песня к моменту релиза ещё не была готова, анонс будет произведён отдельно.

Список изменений:

Улучшения в области безопасности:

  • Новый системный вызов unveil (2) для ограничения доступа текущего процесса к файловой системе путём задания списка используемых файлов и каталогов. Наибольший эффект достигается в сочетании с pledge (2).
  • Реализована опция MAP_STACK для mmap (2). При возникновении ошибок доступа и системных вызовах ядро будет проверять, что верхушка стека находится в отведённой ей (с участием MAP_STACK) области памяти, что мешает атакам, переносящим верхушку стека в контролируемую атакующим область памяти (stack pivot attack).
  • Новый защитный механизм RETGUARD (для платформ amd64 и arm64), использующий индвидуальные для каждой функции cookie для защиты доступа к командам возврата из функции, что затрудняет их использование в качестве ROP-гаджетов.
  • В clang (1) на amd64 и i386 добавлен проход по коду с идентификацией типичных полезных для ROP-гаджетов инструкций и заменой таких инструкций альтернативами.
  • Защита от Spectre v2, Retpoline, включена в clang (1) и ассемблерных файлах на amd64 и i386.
  • Механизм защиты SpectreRSB включён на amd64.
  • Также для amd64 добавлена защита Intel L1 Terminal Fault.
  • PCID, при их наличии, используются на amd64 для разделения пользовательских и ядерных записей TLB.
  • Защита от Meltdown добавлена для i386.
  • На amd64 теперь используется немежденное переключение контекста FPU для предотвращения утечки состояния FPU из-за спекулятивного выполнения.
  • Фальшивая многопоточность (SMT, в случае с процессорами Intel называется HT — HyperThreading) отключена по умолчанию из-за небезопасного использования ядер ЦП. Она может быть включена обратно с помощью новой переменной sysctl (2) hw.smt.
  • Запись звука по умолчанию глобально отключена (имитируется запись тишины) и может быть включена с помощью новой переменной sysctl (2) kern.audio.record.
  • getpwnam (3) и getpwuid (3) возвращают теперь указатель не на статичный буфер, а на явно выделяемую память, позднее освобождаемую. Это позволяет детектировать доступ к устаревшим записям.
  • sshd (8) получил дополнительную защиту от атак на перебор названий учётных записей.

Улучшения гипервизора vmm (4) и соответствующего сервиса vmd (8)

  • Поддержка образов дисков и снимков состояния (snapshots) в формате qcow2.
  • Поддержка шаблонов виртуальных машин и наследования в vm.conf (5) и vmctl (8).
  • Добавлена начальная поддержка unveil (2) в vmctl (8), заодно произведена общая чистка кода данной утилиты.
  • Различные исправления ошибок и улучшения.

Улучшения в стеке IEEE 802.11 (Wi-Fi)

  • Новая команда «join» в ifconfig (8) для сохранения списка известных сетей и автоматического подключения к ним.
  • Значительно увеличена скорость работы команды «ifconfig scan» для многих устройств.

Общие улучшения сетевого стека

  • В trunk (4) добавлены опции для настройки режимов работы, таймаутов и приоритетов.
  • В ifconfig (8) добавлена возможность настройки параметров trunk (4) (см. выше).
  • Системные вызовы sendmsg (2), sendto (2), recvfrom (2) и recvmsg (2) работают без глобальной блокировки ядра (KERNEL_LOCK).
  • Новые глобальные счётчики IPsec, доступные через netstat (1).
  • Новый интерфейс eoip (4) для протокола инкапсуляции MikroTik Ethernet over IP (EoIP).

Маршрутизация и другие улучшения сетевого стека в пользовательском пространстве:

  • ospf6d (8) теперь может устанавливать метрику маршрута в зависимости от состояния интерфейса.
  • ospf6d (8) теперь может работать в альтернативном домене маршрутизации.
  • ospf6d (8) теперь использует pledge (2).
  • ospfd (8) и ospf6d (8) теперь защищены от многократного запуска в одном домене маршрутизации.
  • slaacd (8) теперь полноценно использует pledge (2).
  • slaacd (8) теперь получает от ядра уведомления о дублировании сетевых адресов, и по возможности генерирует новые.
  • Когда slaacd (8) обнаруживает переход между сетями, он отмечает как устаревшие все сконфигурированные сетевые адреса. Предпочтение получают адреса с новыми анонсированными префиксами.
  • Новый сервис, rad (8), пришедший на замену rtadvd (8) (часть проекта KAME), для отправки сообщений IPv6 Router Advertisement.
  • Анахронизм networks (5) более не поддерживается.
  • Улучшена надёжность и предсказуемость поведения парсера pfctl (8) в крайних ситуациях.
  • route (8) теперь сообщает об ошибках использования »-netmask» и »-prefixlen» вместо конфигурирования непонятных маршрутов.
  • dhclient (8) теперь добавляет прямой маршрут к шлюзу по умолчанию, если он не доступен в рамках полученных сетевых адреса и маски.
  • dhclient (8) теперь обновляет dhclient.leases (5), resolv.conf (5) и все отмеченные ключом »-L» файлы до ухода на задний план и возвращения управления вызывающей программе (скрипту).
  • Опция »-i» в dhclient (8)] теперь отбрасывает любые ранее определённые значения для отмеченных к игнорированию опций.
  • Любое изменение на любом интерфейсе теперь побуждает dhclient (8) соответствующим образом обновить resolv.conf (5).
  • dhclient (8) теперь всегда записывает идентификатор клиента, использованный для получения lease, для лучшей совместимости с RFC 6842.
  • dhclient (8) теперь имеет опцию »-r» для прекращения работы с освобождением текущей lease.
  • dhclient (8) теперь избегает некорректной модификации resolv.conf (5) путём игнорирования dhclient.leases (5) для интерфейсов, не умеющих сообщать о наличии связи.

Улучшения в установщике

  • installurl (5) по умолчанию получает значение «cdn.openbsd.org», если зеркало не было выбрано явным образом при установке ОС. Благодаря этому pkg_add (1) и syspatch (8) работают «из коробки» в таких случаях.
  • DUID можно использовать для ответа на вопрос «Which disk is the root disk?» при обновлении системы (актуально при автоматическом обновлении).
  • Установка согласно diskless (8) может производиться через интерфейсы, сконфигурированные dhclient (8).
  • disklabel (8) теперь создаёт раздел /usr/obj размером минимум 5ГБ при использовании автоматической разметки.
  • disklabel (8) теперь создаёт раздел /usr/local размером не более 20ГБ при использовании автоматической разметки.

Улучшения в поддержке оборудования

  • Поддержка ACPI на платформе arm64.
  • Обновлён драйвер radeondrm (4) до соответствующего Linux 4.4.155, что принесло поддержку modesetting для APU KAVERI/KABINI/MULLINS и GPU OLAND/BONAIRE/HAINAN/HAWAII.
  • Также radeondrm (4) теперь поддерживается на arm64.
  • Новый драйвер umt (4) для сенсорных экранов, соответствующих стандарту USB Windows Precision Touchpad.
  • Новый драйвер bnxt (4) для карт Broadcom NetXtreme-C/E (PCI Express) на базе чипов Broadcom BCM573xx и BCM574xx. Драйвер изначально включён для платформ amd64 и arm64.
  • Новый драйвер mue (4) для гигабитных Ethernet-устройств Microchip LAN7500/LAN7505/LAN7515/LAN7850 (USB 2.0) и LAN7800/LAN7801 (USB 3.0).
  • Новый драйвер acpisurface (4) для поддержки ACPI на ноутбуках Microsoft Surface Book.
  • Новый драйвер agintcmsi (4/arm64) для ITS-компонентов ARM GIC.
  • Новый драйвер dwpcie (4) для PCIe-контроллеров Synopsys Designware, встречающихся на различных SoC.
  • Новый драйвер acpipci (4/arm64) для мостов хост-PCI, информация о которых берётся из ACPI.
  • Новые драйвера mvclock (4), mvgpio (4), mvicu (4), mvrng (4), mvrtc (4) и mvtemp (4) для различных компонентов SoC Marvell Armada.
  • Новые драйверы hiclock (4), hidwusb (4), hireset (4) и hitemp (4) для различных компонентов SoC HiSilicon.
  • Новые драйверы ccp (4) и octcrypto (4/octeon) для аппаратной акселерации криптографических операций.
  • Новые драйверы ccpmic (4) и tipmic (4) для управления питанием на Intel Crystal Cove и Dollar Cove TI.
  • Новый драйвер imxrtc (4) для часов реального времени (RTC), интегрированных в процессоры Freescale i.MX7 и i.MX8.
  • Новые драйверы fanpwr (4) для регуляторов напряжения Fairchild FAN53555 и Silergy SYR827/828.
  • Новый драйвер pinctrl (4) для единого мультиплексирования pin.
  • Новый драйвер plgpio (4) для GPIO-контроллеров ARM PrimeCell PL061.
  • Поддержка PIE на платформе m88k.
  • Поддержка для некоторых сенсорных экранов HID-over-I^2C в imt (4).
  • Поддержка чипов RTL8188EE и RTL8723AE в rtwn (4).
  • Поддержка RT3290 в ral (4).
  • Поддержка контроллеров SAS 3.5 (SAS34xx и SAS35xx) в mpii (4).
  • Поддержка сенсоров состояния диска и батареи, а также bio (4) в mfii (4).
  • На платформе i386 микрокод для процессоров Intel загружается при запуске ядра ОС.
  • На платформе i386 уменьшено зарезервированное для brk (2) адресное пространство с целью увеличения объёма памяти, доступного для анонимных вызовов mmap (2).
  • На платформе sparc64 ldomctl (8) теперь поддерживает более новые системные прошивки в машинах SPARC T2+ и T3, в частности T1000, T5120 и T5240. Переменные NVRAM теперь могут выставлять на уровне логического домена.
  • Улучшена поддержка UART Synopsys Designware в com (4).
  • Новый драйвер https://man.openbsd.org/islrtc.4 islrtc (4)]] для часов реального времени (RTC) Intersil ISL1208.
  • Поддержка Huawei k3772 в umsm (4).
  • Поддержка чипсета VIA VX900 в viapm (4).
  • Поддержка других, кроме GPS, сетей GNSS в nmea (4).
  • Поддержка трекпойнтов Elantech в pms (4).
  • Поддержка сенсора подключения репликатора портов в acpithinkpad (4).
  • Поддержка SoC Allwinner H3 и A64 в scitemp (4).

Улучшения в bgpd (8)

  • Фильтрующее действие по умолчанию изменено с «allow» на «deny».
  • Параметр конфигурации «announce (all|self|none|default-route)» объявлен устаревшим, на замену пришло конфигурирование фильтров.
  • Улучшена работа наборов префиксов (prefix-sets), как в скорости, так и в удобстве.
  • Введены наборы AS (as-sets) для сопоставления ASPATH большому количеству номеров AS.
  • Поддержка BGP Origin Validation (RFC 6811) посредством директивы «roa-set».
  • Добавлены наборы исходящих пунктов (origin-sets) для эффективного сопоставления AS пар «префикс — источник».
  • Небольшая чистка синтаксиса: переводы строк опциональны внутри раскрывающихся списков (ранее переводы строк должны были быть экранированы), однако в блоках «neighbor», «group» и «rdomain» записи должны быть на отдельных строках.
  • Уменьшен объём работы при перезагрузке конфигурации.
  • Перезагрузка конфигурации более не блокирует обработку остальных событий в механизме выбора маршрута.
  • Улучшена поддержка и исправлен ряд ошибок при одновременной работе множества bgpd в разных доменах маршрутизации.

Прочие улучшения:

  • Поддержка прокрутки по истории для фреймбуферных консолей на базе rasops (9), таких как inteldrm (4), radeondrm (4) и efifb (4).
  • rebound (8) получил поддержку постоянных A-записей, по аналогии с «local-data» в Unbound.
  • Новый драйвер kcov (4) для сбора статистики о покрытии кода внутри ядра. Он является частью текущего проекта по fuzz-тестированию ядра.
  • uid_from_user (3) и gid_from_group (3) добавлены в стандартную библиотеку языка C и уже используются некоторыми программами для ускорения повторных запросов.
  • Новая реализация семафоров, обеспечивающая безопасность асинхронного использования sem_post (3).
  • pcap_set_immediate_mode (3) была импортирована из upstream libpcap, что позволяет программам обрабатывать пакеты сразу по мере их поступления.
  • ksh (1) теперь использует 64-битные целые числа в арифметических выражениях на всех архитектурах.
  • Исправлена ошибка в раскрытии ksh (1) переменных помеченных флагом «только для чтения».
  • lam (1) теперь поддерживает UTF-8.
  • trunk (4) и vlan (4) теперь включены в RAMDISK на arm64.
  • Улучшен алгоритм пересборки IP-фрагментов в PF с целью защиты от DoS—атак.
  • Новая утилита ldap (1), реализующая простой LDAP-клиент.
  • Исправлен баг в init (8), приводивший к зависаниям на платформе i386 при работе под VMWare.
  • Добавлена поддержка загрузки посредством TFTP в U-Boot на платформах arm64 и armv7 посредством EFI Simple Network protocol.
  • Добавлена поддержка EFI Random Number Generator Protocol для получения дополнительной энтропии для ГПСЧ при запуске системы.
  • В snmpd (8) добавлена поддержка RFC 3430 (подключение по TCP).
  • Драйвер bwfm (4) включён на платформах amd64, i386, arm64 и armv7, а также — для USB-устройств — на платформах loongson и macppc.
  • Новый консольный шрифт «Spleen 5×8», предназначенный для небольших OLED-дисплеев.
  • usbdevs (8) теперь сообщает о состоянии USB-портов.
  • top (1) и systat (1) теперь сообщают время, потраченное каждым ЦП на ожидании в критических секциях (spinning locks).
  • Улучшена скорость чтения MSDOSFS благодаря кластеризации.
  • Доступ к NFS-узлам теперь упорядочен.
  • Утилита systat (1) получила новый экран «uvm», отображающий различную статистику подсистемы UVM.
  • mg (1) теперь обрабатывает символы возврата каретки при последовательном поиске (incremental search) путём установки метки (mark) и выхода из поиска, как это делают другие современные клоны Emacs.
  • В disklabel (8) улучшено округление смещений и размеров разделов на границы цилиндров.
  • disklabel (8) теперь контролирует выход за допустимые пределы для всего пользовательского ввода.
  • disklabel (8) более не позволяет разделам типа FS_RAID становиться точками монтирования.
  • disklabel (8) теперь изменяет параметры разделов только если весь пользовательский ввод был валидирован.
  • Улучшены директивы управления журналированием к конфигурационном файле relayd (8) для более гибкой настройки того, что необходимо логировать.
  • tmux (1) теперь корректно работает с палитрами терминалов, состоящими более чем из 256 цветов.
  • httpd (8) теперь поддерживает аутентификацию по клиентскому сертификату.
  • Множество исправлений в подсистеме fuse (4).
  • Улучшен алгоритм поиска ядром свободной памяти для удовлетворения запросов mmap (2) на анонимную память.
  • efifb (4) теперь переназначает фреймбуфер EFI раньше для использования комбинированной записи (write combining mapping), что даёт значительное ускорение его (фреймбуфера) работы.

OpenSMTPD

  • Нарушающие совместимость изменения в синтаксисе smtpd.conf: разделены сопоставление конвертов (envelope), происходящее во время SMTP-диалога, и выполняемые действия (actions), которые начинают выполняться при первой попытке доставки. Это изменение позволяет убрать ряд серьёзных барьеров для дальнейшего развития OpenSMTPD.
  • Улучшен движок SMTP с появлением нового парсера сообщений, соответствующего RFC 5322.
  • Убраны ограничения, не позволявшие smtpd (8) взаимодействовать с клиентами, отправляющими чрезмерно длинные строки.
  • Улучшена безопасность путём перемещения раскрытия переменных для файлов .forward в процесс, отвечающий за доставку сообщений пользователю (MDA).
  • Введены обёртки для MDA, позволяющие командам на получение быть прозрачно обёрнутыми внутри глобальных команд.
  • Добавлен SMTP-клиент для командной строки.
  • Множество улучшений документации и мелких исправлений в коде.

OpenSSH 7.9 Новые возможности:

  • В большинстве мест конфигурации ssh (1) и sshd (8), где используются номера портов, теперь можно использовать названия сервисов из /etc/services.
  • В директиве ssh (1) IdentityAgent теперь можно использовать переменные окружения. Это позволяет использовать несколько сокетов для SSH-агентов без необходимости задания фиксированных путей.
  • Поддержка передачи сигналов сессиям по протоколу SSH в sshd (8).
  • Команда «ssh -Q sig» может быть использована для получения списка поддерживаемых параметров подписей. Также, «ssh -Q help» покажет полный список поддерживаемых запросов.
  • Новая опция CASignatureAlgorithms в ssh (1) и sshd (8) управляет разрешёнными формами подписей для центров сертификации, которыми можно подписывать сертификаты. Например, это позволяет заблокировать центры сертификации, подписывающие сертификаты с использованием алгоритма RSA-SHA1.
  • Списки отзыва ключей (KRL) теперь могут ключать в себя ключи по хешу SHA-256. Эти списки управляются ssh-keygen (8). Более того, KRL теперь могут быть созданы из Base64-кодированного представления SHA256-отпечатков, то есть, из информации в сообщения об аутентификации sshd ((8).

    Неполный список исправлений:

  • ssh (1): ssh-keygen (1): убраны ошибки «invalid format» при загрузке приватных ключей в формате PEM с неверной парольной фразой.
  • sshd (8): когда канал закрывается во время получения сообщения от клиента, теперь вместе со stdin и stdout закрывается также файловый дескриптор stderr. Это позволяет избежать зависания процессов, если они ожидают закрытия stderr, не обращая внимания на закрытие stdin и stdout.
  • ssh (1): разрешено ForwardX11Timeout=0 для безусловного отключения недоверенного перенаправления X11. До этого поведение при ForwardX11Timeout=0 было неопределённым.
  • sshd (8): не закрывается при конфигурировании текстового списка отзыва ключей, содержащего слишком короткий ключ.
  • ssh (1): подключения с ProxyJump обрабатываются так же как с ProxyCommand касаемо приведения имени хоста к каноническому виду (то есть, приведение не производится, если только опция CanonicalizeHostname не выставлена в «always»).
  • ssh (1): исправлена регрессия в OpenSSH 7.8, которая не позволяла аутентификацию по ключу с использованием сертификата в ssh-agent (1) или относительно sshd (8) из OpenSSH {7.8.

LibreSSL 2.8.2 (первый стабильный релиз ветки 2.8). Улучшения API и документации:

  • Верификация X509 стала строже, любая проблема X509_VERIFY_PARAM для имени хоста, IP-адреса или email заставит X509_verify_cert (3) сообщить об ошибке.
  • Убрана поддержка классического (одиночного) DES.
  • В RSA_sign (3) добавлена поддержка RSASSA-PKCS1-v1_5 (RFC 8017).
  • Изменено поведение функций CRYPTO_mem_leaks_*(3) на возврат значения -1. Эти функции являются пустышками в LibreSSL, поэтому возвращается индикатор ошибки, чтобы не показывать (не-)наличие утечек памяти.
  • SSL_copy_session_id (3), PEM_Sign (3), EVP_EncodeUpdate (3), BIO_set_cipher (3), X509_OBJECT_up_ref_count (3) теперь возвращают int для обработки ошибок, как в OpenSSL.
  • Часть #define превращена в настоящие функции, для соответствия OpenSSL ABI, в частности, X509_CRL_get_issuer (3) и другие функции X509_*get*(3).
  • Добавлена X509_get0_serialNumber (3) из OpenSSL.
  • Убраны EVP_PKEY2PKCS8_broken (3) и PKCS8_set_broken (3), и в то же время добавлены PKCS8_pkey_add1_attr_by_NID (3) и PKCS8_pkey_get0_attrs (3), для соответствия OpenSSL.
  • Удалены неработоспособные pkcs8 форматы из openssl (1).
  • Добавлены RSA_meth_get_finish (3) и RSA_meth_set1_name (3) из OpenSSL.
  • Добавлены новые EVP_CIPHER_CTX_(get|set)_iv (3) API, позволяющие получать и заполнять инициализирующий вектор (IV) с подходящей валидацией.
  • Экстенсивные обновления документации и истории API.
  • Убраны глючные клиентские костыли SSL_OP_TLS_ROLLBACK_BUG.
  • ENGINE_finish (3) и ENGINE_free (3) теперь возвращают NULL при успехе для упрощения жизни вызывающим и соответствия поведению OpenSSL; документация ENGINE_* переписана.
  • Добавлена аннотация const ко множеству существующих API из OpenSSL, для облегчения взаимозаменяемости для использующих приложений.
  • Документированы решаемые проблемы с безопасностью при описании BN_FLG_CONSTTIME и константного времени работы функций BN_*.

    Тестирование и проактивная защита:

  • Добавлена поддержка теста Wycheproof для тестовых векторов ECDH, RSASSA-PSS, AES-GCM, AES-CMAC, AES-CCM, AES-CBC-PKCS5, DSA, ChaCha20-Poly1305, ECDSA, X25519. Исправлены ошибки, выявленные в ходе тестирования.
  • Добавлены тесты алгоритмов шифрования, включая все шифры TLS 1.2. Добавлены ослепляющие значения при генерации подписей DSA и ECDSA для усложнения проведения атак с утечкой приватного ключа по сторонним каналам.
  • Добавлены timing-safe сравнения для проверки результатов верификации подписи.
  • Добавлена поддержка скалярного умножения эллиптических кривых за константное время. От Билли Брумли (Billy Brumley) и его команды из Технологического университета Тампере.

    Внутренние улучшения:

  • Упрощены генерация и верификация сигнарутры обмена ключами.
  • Ещё больше кода теперь использует CBB/CBS. В частности, все сообщения-приветствия (handshake) теперь создаются CBB. Обмен ключами RSA упрощён и использует отдельные буферы для хранения секретных данных.
  • Упрощены разбор и обработка сессионных билетов (session tickets), по мотивам изменений в BoringSSL.
  • Прекращена обработка AES-GCM в ssl_cipher_get_evp, так как там используется интерфейс EVP_AEAD.
  • Прекращено использование составных EVP_CIPHER AEAD.
  • Убраны неиспользуемые флаги SSL3_FLAGS_DELAY_CLIENT_FINISHED и SSL3_FLAGS_POP_BUFFER при записи, что упростило организацию ввода-вывода.
  • BN_clear (3) теперь использует explicit_bzero (3).
  • Почищены BN_* вслед за изменениями, сделанными в OpenSSL Давидом Галаси (Davide Galassi) и другими.
  • Проведена ревизия реализации RSASSA-PKCS1-v1_5 на предмет соответствия RFC 8017, базируясь на коммите Дэвида Бенджамина (David Benjamin) в OpenSSL.

    Исправления ошибок:

  • Исправлено переполнение на один байт буфера у пользователей EVP_read_pw_string (3).
  • Исправлены различные утечки памяти, найденные Coverity.
  • Больше функций в публичных API теперь используют константные аргументы.
  • Корректное очищение текущего состояния шифратора при смене состояния. Это исправляет проблему когда пересогласование заменяет AEAD-шифр на не-AEAD или наоборот. О проблеме сообщил Бернард Спил (Bernard Spil).
  • Исправлена пара ошибок более чем двадцатилетней давности в X509_NAME_add_entry (3).
  • Исправлены потенциальные утечки памяти при ошибке в ASN1_item_digest (3).
  • Исправлена потенциальная ошибка выравнивания памяти в asn1_item_combine_free ().
  • Исправлены небольшие сторонние каналы утечки, связанные со временем, в ecdsa_sign_setup () и dsa_sign_setup ().
  • Добавлены пропущенные проверки на допустимые границы в c2i_ASN1_BIT_STRING ().
  • Исправлена потенциальная утечка / ошибка при возврате значения в механизме генерации DSA-подписи.

Mandoc 1.14.4

  • В HTML-выводе, многие mdoc (7)-макросы теперь используют более подходящие HTML-элементы.
  • В HTML-выводе убраны почти все атрибуты «style» и часть избыточных «class».
  • Первые шаги в сторону responsive design: @media в mandoc.css, HTML-элемент meta viewport, из генерируемого кода убраны все жёсткие размеры.
  • Множество улучшений в стилях в mandoc.css.
  • Более чем 15 новых низкоуровневых возможностей roff (7) и GNU man-ext. Mandoc теперь может форматировать руководства groff.

Порты и пакеты:

  • Программа update-plist (1) была полностью переписана и теперь практически без ошибок обрабатывает ситуации с MULTI_PACKAGES и раскрытием переменных.
  • Новые пакеты теперь инициируют запуск средств вроде update-desktop-database лишь один раз за сессию вместо запуска после каждого добавления/удаления пакета.
  • Страницы руководства по системе портов (bulk (8), dpb (1) и другие) теперь включены в базовую поставку и поэтому доступны даже без дерева портов.

    Подготовлено пакетов ко дню релиза, по архитектурам:

  • aarch64 (arm64): 8139
  • amd64: 10304
  • i386: 10230

    Пакеты для нижеследующих архитектур будут доступны по мере того как их сборка будет закончена:

  • arm
  • mips64
  • mips64el
  • powerpc
  • sparc64

Из находящихся в портах приложений, отмечены:

  • AFL 2.52b
  • CMake 3.10.2
  • Chromium 69.0.3497.100
  • Emacs 21.4 и 26.1
  • GCC 4.9.4
  • GHC 8.2.2
  • Gimp 2.8.22
  • GNOME 3.28.2
  • Go 1.11
  • Groff 1.22.3
  • JDK 8u172
  • LLVM/Clang 6.0.1
  • LibreOffice 6.1.1.2
  • Lua 5.1.5, 5.2.4 и 5.3.5
  • MariaDB 10.0.36
  • Mono 5.14.0.177
  • Mozilla Firefox 60.2.2esr и 62.0.3
  • Mozilla Thunderbird 60.2.1
  • Mutt 1.10.1 и NeoMutt 20180716
  • Node.js 8.12.0
  • OCaml 4.03.0
  • OpenLDAP 2.3.43 и 2.4.46
  • PHP 5.6.38, 7.0.32, 7.1.22 и 7.2.10
  • Postfix 3.3.1 и 3.4–20180904
  • PostgreSQL 10.5
  • Python 2.7.15 и 3.6.6
  • R 3.5.1
  • Ruby 2.3.7, 2.4.4 и 2.5.1
  • Rust 1.29.2
  • Sendmail 8.16.0.29
  • SQLite3 3.24.0
  • Sudo 1.8.25
  • Tcl/Tk 8.5.19 и 8.6.8
  • TeX Live 2017
  • Vim 8.1.438
  • Xfce 4.12

Компоненты от сторонних разработчиков, входящие в состав OpenBSD 6.3:

  • Графический стек Xenocara на базе X Server 1.19.6 c патчами, freetype 2.9.1, fontconfig 2.12.4, Mesa 13.0.6, xterm 331, xkeyboard-config 2.20;
  • LLVM/Clang 6.0.0 с патчами
  • GCC 4.2.1 (с патчами) и 3.3.6
  • Perl 5.24.3 (с патчами)
  • NSD 4.1.25
  • Unbound 1.8.2
  • Ncurses 5.7
  • Binutils 2.17 (с патчами)
  • Gdb 6.3 (с патчами)
  • Awk версия от 10 августа 2011 года
  • Expat 2.2.6

© OpenNet