Branches/p11/TechnicalNotes
Что нового в p11
TODO:
Стоит ли указывать здесь альт-домены? Как?
Изменения общего рода
- В репозитории зафиксирована версия glibc 2.38.
- Каталоги /bin, /sbin, /lib* объединены с аналогами в /usr. Миграция происходит при обновлении пакета filesystem на версию из состава p11. При свежей установке p11 /bin, /sbin, /lib* сразу являются симлинками на аналоги в usr/.
- В неопределённом будущем планируется научить инсталлятор формировать recovery-раздел при установке на носитель достаточного объёма. Его создание можно будет отключить по желанию администратора. С его помощью пользователь персоналки или администратор сможет восстановить основную систему.
- Подсистема cgroup версии 1 объявляется устаревшей. Ядро Linux в платформе всё ещё поддерживает cgroup v1, но другие компоненты постепенно прекращают поддержку или вовсе её не имеют. Рекомендуем разработчикам приложений использовать подсистему cgroup версии 2, а администраторам приложений, всё ещё зависящих от cgroup v1 — изучить документацию этих приложений и работать с ними на свой страх и риск.
Механизмы защиты. Доставка ПО
- Для пользователя nobody изменён uid с 99 на значение (65536-2), равное значению overflowuid в наших ядрах.
- В репозитории разрешены пакеты с символом ~ в версии или релизе. Тильда признана лексикографически старше конца строки, по аналогии с sort -V и предназначена для обозначения версий типа release candidate, например, 1.2~rc2. Это не повлияет на обновление с p9 и p10.
- TODO: Прояснить статус appstream
- Библиотека openssl в составе платформы обновлена до ветки 3.1, а поддержка ветки 1.1 прекращена, в том числе самим апстримом. В репозитории остался пакет openssl 1.1 без комплекта разработки для совместимости с устаревшими пакетами из состава репозитория;
- TODO: что примечательного в openssl 3? как дела у TLS 1.0/1.1?
- TODO: ещё user-facing свойства наших репозиториев?
- TODO: apt? rpm? update-kernel? packagekit/"центры обновлений"?
- TODO: поддержка flatpak?
Системные компоненты
- Системный интерпретатор сценариев /bin/sh теперь также основан на Bash 5.2 вместо Bash 4. Рекомендуем ознакомиться со списком изменений от апстрима GNU Bash, в числе которых могут быть обратно несовместимые изменения.
- Пакет systemd обновлён до версии 254. К моменту выхода дистрибутивов на базе p11 планируется обновить systemd до версии 255. Список изменений от апстрима
- TODO: атрибуты загрузки? поведение загрузчиков?
Интерфейс пользователя. Web-браузеры. Средства связи
- Окружение рабочего стола и пакет приложений GNOME обновлены до ветки 46.
- Окружение рабочего стола Plasma и пакет приложений KDE обновлены до версии 5.115.0. Plasma 6, выпущенная весной 2024, в платформе p11 не планируется.
- MATE обновлена до 1.28.0.
- Xfce обновлена до 4.18.0.
- Диалоговый шелл по умолчанию /bin/bash обновлён до Bash 5.2.
- Сервер обработки мультимедиа PipeWire обновлён до 1.0.5; TODO: wireplumber; altbug:49760
- Mesa обновлена до версии 24.0.6.
- TODO: поподробнее про GPU support status
- Firefox обновлён до 125.0.1; доступен консервативный вариант Firefox ESR 115.10.
- Chromium обновлён до 124.0.6367.118.
- Веб-браузеры Firefox и Chromium активно сопровождаются в рамках жизненного цикла репозитория.
- Chromium-gost обновлён до 124.0.6367.78.
- В платформу собран официальный клиент для мессенджера Telegram telegram-desktop версии 5.0.0. Скорее всего, его планируется обновлять в рамках жизненного цикла платформы.
Сетевые подключения и службы
- iproute2 обновлён до версии 6.8.
- Из ядер и iproute2 убрана поддержка рудиментарного tc-действия ipt.
- NetworkManager обновлён до версии 1.46.0.
- NetworkManager теперь умеет получать имя хоста из обратных DNS-записей и старается для этого пользоваться API systemd-resolved. Если последнего нет в системе, то NM запускает программу nm-daemon-helper, которая сделает запрос через NSS-модуль dns.
- Добавлена поддержка настройки IPv4 NAT в режиме раздачи через nftables. NM по умолчанию проверяет, установлены ли /usr/sbin/nft и /usr/sbin/iptables, и использует тот инструмент, который есть в системе, предпочитая nftables.
- Теперь можно включить для конкретного сетевого подключения Wi-Fi алгоритм выбора случайного MAC-адреса, зависящий от SSID Wi-Fi сети, задав параметр
wifi.cloned-mac-address=stable-ssid
. - Внесено множество улучшений в клиенты DHCPv4 и DHCPv6, в том числе касающихся DHCPv6 Prefix Delegation.
- Добавлена поддержка Multipath TCP. При помощи параметра
connection.mptcp-flags
можно разрешить использовать IP-адреса в составных MPTCP-соединениях. NetworkManager не управляет MPTCP, если тот не включен в sysctl ядра /proc/sys/net/mptcp/enabled; эта настройка отдана на откуп администратору. Строгий режим rp_filter мешает работе MPTCP в ряде случаев, поэтому, занявшись управлением MPTCP, NetworkManager переключит настройку rp_filter на значение 2; иначе он не трогает rp_filter. - Подробнее смотрите у апстрима.
- Фреймворк DPDK обновлён до версии 23.11.0.
- Сервер динамической маршрутизации BIRD обновлён до 2.15 TODO: altbug:50265.
- Сервер доменной зоны nsd обновлён до 4.9.1.
- Многофункциональный DNS-сервер BIND обновлён до 9.18.26.
- Поддержка ISC DHCP прекращена вслед за апстримом в пользу Kea. Администраторам сервисов DHCP рекомендуется по мере возможности перенести свои системы c сервера ISC DHCP.
- nginx с модулями обновлён до версии 1.24.0.
- Apache httpd обновлён до версии 2.4.59.
- postfix обновлён до версии 3.8.3. TODO: спросить у мейнтейнера upgrade notes
Средства хранения и резервного копирования
Виртуализация
- TODO: OVS
- TODO: OVN
- TODO: PVE
- TODO: Kubernetes: уточнить набор версий
Мультимедиа
- TODO: OBS-Studio
- TODO: FFmpeg
- TODO: Ardour
- TODO: JACK; упомянуть PipeWire?
Инструменты разработки
- Тулчейн Rust обновлён до версии 1.77.
- Доступны наборы инструментов LLVM двух версий: 18 и 17. По умолчанию используются LLVM и Clang 18-й версии; в том числе при сборке firefox, chromium, telegram-desktop и других пакетов платформы, для которых GCC даёт результат хуже.
- В репозитории обеспечена поддержка параллельной установки нескольких мажорных ветвей проекта LLVM одновременно. Утилиты, подобно проекту gcc, устанавливаются с суффиксом, содержащим номер версии (например, clang-17). Доступна обёртка с именем без суффикса, которая вызывает команду нужной версии. Подробнее
- Набор компиляторов GCC, в том числе системный, обновлён до 13.2.
- binutils+gdb обновлены до 2.41.
- TODO: GHC
- Предоставлены ветки JDK 21, 17, 11.
- Набор популярных C++-библиотек boost обновлён до 1.85.
- Тулчейн для языка программирования Golang обновлён до 1.22; новые версии будут выходить по мере сопровождения платформы.
- Vulkan SDK обновлён до 1.3.277.
- docker-engine обновлён до версии 26.1.0.