Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

·23.09 Выпуск музыкального проигрывателя Fooyin 0.13 (4 +3)
  Состоялся выпуск музыкального проигрывателя Fooyin 0.13, нацеленного на предоставление расширенных возможностей по настройке и адаптации программы под свои предпочтения. В Fooyin предложен набор виджетов с реализацией различных режимов управления музыкальной коллекцией и воспроизведения музыки. Дополнительные возможности могут подключаться в форме плагинов. Для настройки интерфейса предлагается конфигуратор раскладки элементов на экране. Проект написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv3. Готовые пакеты сформированы для Fedora, Debian и Ubuntu, а также в формате flatpak.

Поддерживается воспроизведение файлов в формате FLAC, MP3, MP4, Vorbis, Opus, WavPack, WAV, AIFF, Musepack, Monkey's Audio, VGM и различных трековых форматов. Среди возможностей Fooyin: извлечение сведений о порядке и длительности звуковых треков из CUE-файлов, воспроизведение без пауз (gapless), создание, импорт и экспорт списков воспроизведения в форматах M3U/M3U8, фильтрация содержимого музыкальной библиотеки по любым полям, древовидное представление коллекции, редактирование тегов, визуализации при помощи спектрограмм, навигация на уровне каталогов в файловой системе с возможностью прямого воспроизведения выбранных файлов. Для внешнего управления проигрывателем может использоваться D-Bus-интерфейс MPRIS (Media Player Remote Interfacing Specification).

Наиболее заметные улучшения:

  • Добавлена поддержка воспроизведения и риппинга звуковых CD. Реализована проверка целостности файлов и верификация точности оцифровки всего диска. Предложены два режима воспроизведения CD - с использованием плейлистов и очереди треков.
  • В музыкальной библиотеке появилась поддержка сохраняемых фильтров и реализован вывод статистки популярности композиций с возможностью синхронизации с Last.fm. Реализован поиск метаданных MusicBrainz.
  • Добавлена поддержка глобальных комбинаций клавиш.
  • Добавлены настраиваемые пользователем кнопки "Run Services", к которым можно привязать запуск внешних приложений.
  • Предоставлена возможность управления громкостью, зацикливанием и повторным воспроизведением через интерфейс командной строки.
  • Добавлена настройка для блокировки перевода экрана в спящий режим.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск музыкального проигрывателя Qmmp 2.4
  3. OpenNews: Выпуск музыкального проигрывателя Rhythmbox 3.5
  4. OpenNews: Выпуск музыкального проигрывателя Audacious 4.6
  5. OpenNews: Опубликован музыкальный проигрыватель Nocturne 1.0
  6. OpenNews: Новая версия музыкального проигрывателя DeaDBeeF 1.10.1


·23.09 Первый выпуск scan, библиотеки разбора текста для C++ с построением конечного автомата при компиляции (22 –2)
  Опубликован первый выпуск библиотеки scan (0.1.0), разбирающей текст в значения по шаблону, известному на этапе компиляции. Шаблон или формат записывается как аргумент шаблона C++ и превращается при компиляции в размеченный детерминированный конечный автомат (tagged deterministic finite automaton, TDFA), обход которого разворачивается по состояниям в код на этапе компиляции с использованием шаблонов C++. Результатом выполнения является значение запрошенного типа. Код проекта написан на C++23 и распространяется под лицензией GPLv3.

   import scan;

   // Совпадает ли вся строка. Каждая точка входа - ещё и адаптор диапазона.
   scan::match<"[a-z]+@[a-z.]+">(address);
   address | scan::match<"[a-z]+@[a-z.]+">;

   // С группами.
   const auto found = scan::match<"([0-9]+)-([a-z]+)">("42-abc");
   found.get<1>().to_view();            // "42"

   // Начало строки, занятое шаблоном, и первое совпадение где угодно.
   scan::starts_with<"[a-z]+">("abc123").whole().to_view();   // "abc"
   scan::search<"[0-9]+">("id=4210x").to_view();              // "4210"

   // Все совпадения и куски между ними - ленивые представления.
   for (const auto& one : text | scan::search_all<"[a-z]+">) { ... }
   const auto fields = "a,bb,,ccc" | scan::split<","> | std::ranges::to<std::vector>();

   // Значения, а не текст.
   struct row { int id; std::string_view name; };
   const row one = scan::scan<"{},{[a-z]+}">(line);

   // Список, сумма типов, вложенная форма.
   struct all { std::vector<int> values; std::variant<int, std::string_view> tail; };
   const all got = scan::scan<"{{}{*,?}} {{[0-9]+}|{[a-z]+}}">("1,2,3 abc");

   // Начало ввода и то, что от него осталось.
   const auto [value, rest] = scan::scan_prefix<"{},{}">(line).take<point>();

   // По записи за раз, из чего угодно.
   for (const row& one : scan::each<"{},{[a-z]+}\\n">(text).of<row>()) { ... }

Диапазон, который можно прочитать лишь однажды, читается без буферизации, поля собираются по мере поступления символов. Сколько символов придётся удержать, шаблон задаёт при компиляции; там, где такого числа нет, чтение отклоняется при компиляции.


   std::istringstream source("set speed 42\\nset gain 7\\n");
   source > std::noskipws;
   struct command { scan::held<16> name; int value; };
   for (const command& one :
        scan::each<"set {[a-z]+} {[0-9]+}\\n">(std::views::istream<char>(source))
            .of<command>()) { ... }
Производительность.

Замеры проведены на Ryzen 9 9950X, clang 22.1.8 с libc++, -O3 -march=native,LTO. Тридцать две записи за проход, медиана семи проходов.


   "([a-z]+),([a-z]+),([a-z]+),([a-z]+),([a-z]+)"    "alpha,bravo,charlie,delta,echo"

     scan::scan<f>.sentinel()      477 нс
     re2c                          554 нс
     scan::scan<f>                 659 нс
     CTRE                          717 нс
     RE2                         15986 нс

   те же пять полей, по двести букв каждое

     scan::scan<f>.sentinel()     57.8 нс
     re2c                          637 нс
     CTRE                          692 нс
     RE2                         11751 нс

   "first.last@subdomain.example.com"   распознавание, ничего не извлекается

     scan::match<p>.sentinel().scalar()   436 нс
     scan::match<p>.scalar()              545 нс
     re2c                                1186 нс
     RE2                                 2616 нс
     CTRE                               14339 нс

Свёртка групп по ходу разбора

Типу сообщается, к какой из его групп относится очередной символ, и вычисление выполняется на месте: ни одна итерация цикла не сохраняется, ни одной подстроки не создаётся.


   struct tally { unsigned long value = 0; };
   struct reading { tally number; std::string_view tail; };

   template <>
   struct scan::scanner<tally> {
     static constexpr std::string_view pattern() { return R"(\\(((_+)(X|Y)*)*\\))"; }
     struct state_type { unsigned long total = 0; unsigned place = 0, marks = 0; };
     static constexpr state_type begin_groups() { return {}; }
     static constexpr void opened_group(state_type& one, scan::group_at<0>) {
       one.place = 0; one.marks = 0;
     }
     static constexpr void closed_group(state_type& one, scan::group_at<0>) {
       unsigned long weight = 1;
       for (unsigned step = 1; step < one.place; ++step) weight *= 10;
       one.total += weight * one.marks;
     }
     static constexpr void push_group(state_type& one, scan::group_at<1>, char) {
       ++one.place;
     }
     static constexpr void push_group(state_type& one, scan::group_at<2>, char letter) {
       one.marks += letter == 'Y' ? 2u : 1u;
     }
     static constexpr tally finish_groups(state_type one) { return {one.total}; }
   };

   const reading got =
       scan::scan<"value={}{[a-z]*}">("value=(__X_XX)abcdefgh").of<reading>();
   // got.number.value == 12, got.tail == "abcdefgh"
heap scan::scan<f>.scalar() написанное вручную scan::scan<f>
10 141 ns 41.4 ns 42.5 ns 170 ns
100 439 ns 341 ns 392 ns 1176 ns
1000 3314 ns 3170 ns 3797 ns 11887 ns


Контексты и аллокаторы

Любой объект вызывающей стороны - аллокатор, пул, арену, что угодно ещё - можно передать в тот вызов, который создаёт значение. Тип контекста при этом не теряется: состояние сканера и каждый его хук могут быть шаблонами по нему, так что в сканере не упомянут ни один тип вызывающей стороны.


   struct arena {
     std::pmr::memory_resource* where = nullptr;
     std::pmr::memory_resource* resource() const { return where; }
   };

   struct numbers { std::pmr::vector<int> values; };
   struct both { numbers left; numbers right; };

   template <>
   struct scan::scanner<numbers> {
     static constexpr std::string_view pattern() { return "([0-9]+)(?:,([0-9]+))*"; }

     template <class Told>
     struct state { std::pmr::vector<int> values; int running = 0; };

     static state<scan::default_context_t> begin_groups() { return {}; }

     template <class Told>
       requires requires(const Told& one) { one.resource(); }
     static state<Told> begin_groups(const Told& told) {
       return {std::pmr::vector<int>(told.resource()), 0};
     }

     template <class Told, std::size_t Which>
     static void push_group(state<Told>& one, scan::group_at<Which>, char digit) {
       one.running = one.running * 10 + (digit - '0');
     }
     template <class Told, std::size_t Which>
     static void closed_group(state<Told>& one, scan::group_at<Which>) {
       one.values.push_back(one.running);
       one.running = 0;
     }
     template <class Told>
       static numbers finish_groups(state<Told> one) { return {std::move(one.values)}; }
   };

   std::pmr::monotonic_buffer_resource bytes;
   const arena mine{&bytes};

   scan::scan<"{} {}">(text).of<both>(mine);                            // один на оба места
   scan::scan<"{} {}">(text).of<both>(mine, scan::default_context);     // по одному на место
   scan::scan<"{} {}">(text).of<both>({mine, scan::default_context});   // то же в скобках
   const both got = scan::scan<"{} {}">(text).with(mine);

   // Контексту не обязательно быть своим типом: аллокатор доходит до того,
   // что строит чтение.
   struct two { std::pmr::string name; std::pmr::string tail; };
   const two kept = scan::scan<"{[a-z]+} {[a-z]+}">(text).of<(
       std::pmr::polymorphic_allocator<>(&bytes));

Хук получает сам объект вызывающей стороны, а не копию, поэтому состояние может хранить его адрес: контекст живёт столько же, сколько вызов, а всё чтение происходит внутри этого вызова.

Прочие особенности

  • Два слоя: слой шаблонов (match, starts_with, search, search_all, split) и слой форматов, где "{}" - поле, а значение места определяют поля самого типа.
  • Правило разрешения неоднозначности - leftmost-first, как в Perl, RE2 и CTRE.
  • Всё перечисленное работает и в константных выражениях.
  • Нет lookaround, обратных ссылок и свойств Unicode; шаблоны работают с байтами.
  • Не поддерживаются шаблоны, известные только во время выполнения.
Сборка

Собирается в clang и GCC. Модули C++ не обязательны: доступны заголовочные файлы (include/), которые генерирует из тех же модулей утилита demodulizer - каждый push в main пересобирает, линкует и коммитит их обратно. Единственная зависимость, Boost.PFR, не нужна при включённых binding packs из C++26.


   FetchContent_Declare(scan
     GIT_REPOSITORY https://github.com/j4niwzis/scan.git
     GIT_TAG        v0.1.0)
   FetchContent_MakeAvailable(scan)
   target_link_libraries(mine PRIVATE scan::scan)

  1. Главная ссылка к новости
Обсуждение (22 –2) | Автор: j4niwzis | Тип: Программы |


·23.09 Выпуск системного менеджера systemd 262 (35 –11)
  После трёх месяцев разработки доступен релиз системного менеджера systemd 262. В новой версии реализовано встраивание в процесс минимального набора unit-файлов, обеспечена поддержка сборки со статическим связыванием, проведена интеграция c dm-clone для клонирования блочных устройств, добавлено ведение БД установленных файлов в systemd-sysupdate и обеспечена криптографическая верификация отчётов systemd-report.

Среди изменений в новом выпуске:

  • В исполняемый файл системного менеджера встроен набор базовых unit-файлов (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service и т.п.), которые используются при невозможности загрузить unit-файлы с диска. Подобное встраивание позволяет запускать контейнеры с init-процессом (PID1) на базе systemd без установки unit-файлов.
  • Добавлена поддержка сборки в форме одного статически скомпонованного исполняемого файла, который может применяться для инициализации и запуска сервисов в контейнерах с минимальной начинкой. Для сборки со статическим связыванием при запуске meson следует указать флаги: "--default-library=static --prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true".
  • Интегрирована поддержка модуля ядра dm-clone, позволяющего на основе доступного в режиме только для чтения блочного устройства создать его клон, допускающий запись. Настройки из /etc/clonetab обрабатываются systemd-clonesetup-generator и сохраняются в форме юнитов systemd-clonesetup@.service, привязанных к clonesetup.target. Для создания и удаления клонов блочных устройств добавлена утилита systemd-clonesetup.
  • Расширены возможности инструментария systemd-sysupdate, предназначенного для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов (используются два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами). Реализовано поддержание БД с информацией о всех установленных файлах. Добавлена команда "systemd-sysupdate cleanup" для удаления файлов, ставших лишними после обновления системы или не соответствующих текущему шаблону конфигурации. Добавлены команды "systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component" для управления включением функциональности и компонентов. Реализована концепция рекомендуемых компонентов, например, командой "systemd-sysupdate enable-component --component-suggested" могут быть включены драйверы, необходимые для работы имеющегося оборудования. В команду "systemd-sysupdate update" добавлена опция "--component-all" для обновления разом всех компонентов.
  • В systemd-report добавлена опция "--sign=", реализующая возможность заверения цифровой подписью отчётов, выдаваемых командами "generate" и "upload". Предложены три бэкенда для заверения отчётов: systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) и systemd-report-sign-tpm2 (TPM2 PCR).


  • Для сглаживания нагрузки в случае массового перезапуска сервисов после сбоев предложен параметр RestartRandomizedDelaySec, добавляющий случайную задержку перед автоматическим перезапуском сервиса, ограниченную заданными рамками.
  • В slice-юниты добавлен параметр ActivatingConcurrencyMax для ограничения максимального числа одновременно активированных юнитов в иерархии.
  • Для сервисов реализован параметр LUOSession, предназначенный для создания сеансов Live Update Orchestrator, применяемых для обновления ядра в Live-режиме без остановки работы и не теряя состояние системы, устройств и процессов.
  • В socket-юнитах реализованы параметры XAttrEntryPoint, XAttrListen и XAttrAccept, позволяющие прикреплять к UNIX-сокетам расширенные атрибуты (xattr) для их маркировки.
  • Для автоматического назначения легко запоминаемых имён хостов (/etc/hostname) реализован новый символ подстановки "$", заменяемый на элемент из списка слов, выбранный через хэширование с привязкой к идентификатору системы.
  • В утилиту run0 добавлены sudo-совместимые опции -k/--reset-timestamp, -K/--remove-timestamp и -v/--validate для отзыва или обновления временной авторизации, выполненной через polkit.
  • В утилиту systemd-escape добавлена опция "--stdin" для чтения строк из стандартного ввода.
  • В vconsole добавлена переменная окружения FONT_SCALE для настройки уровня масштабирования шрифтов по аналогии с параметром ядра vconsole.font_scale (из значений пока поддерживается только 100% и 200%).
  • Во все команды, поддерживающие опцию "--help", добавлена опция "--introspect-cli" для вывода подсказки в формате JSON для упрощения автоматизации проверки наличия требуемых опций из надстроек и скриптов.
  • При аутентификации с использованием токенов FIDO2 обеспечен показ счётчика оставшихся попыток введения PIN-кода.
  • В systemd-networkd в секции "[Match]" файлов .link, .network и .netdev добавлена проверка MachineTag, позволяющая привязать настройки сети к наличию или отсутствию определённых тегов. В команду "networkctl reload" добавлена опция "--no-reconfigure" для перезагрузки файлов .network и .netdev с диска без перенастройки существующих сетевых линков. В файлах .network в параметрах IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP, Tunnel, VLAN, VXLAN и Xfrm разрешено указывать несколько имён сетевых устройств, разделённых пробелом.
  • В systemd-journald механизм FSS (Forward Secure Sealing), позволяющий гарантировать неизменность логов, переведён на использование криптофункций из библиотеки OpenSSL вместо libgcrypt. Библиотека libsystemd больше не связывается с libgcrypt.
  • В утилиту systemd-sysctl добавлена опция "--verify", при которой значение параметра sysctl читается после выставления и сверяется с исходным значением для проверки было ли применено изменение. Добавлены опции "--save=FILENAME" и "--revert=FILENAME" для сохранения и восстановления настроек sysctl, размещённых в каталоге /run/sysctl.d/.
  • Добавлена поддержка сборки с библиотекой OpenSSL 4.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск системного менеджера systemd 261
  3. OpenNews: В systemd-journald спустя 6 лет признали проблему избыточной нагрузки на накопители
  4. OpenNews: Во Flatpak намерены сделать systemd обязательной зависимостью
  5. OpenNews: Создан форк systemd без хранения возраста. GrapheneOS отказался верифицировать возраст
  6. OpenNews: В Debian 14 намерены удалить слой для совместимости systemd со скриптами sysv-init
Обсуждение (35 –11) | Тип: Программы |


·22.09 Релиз операционной системы NetBSD 10.2 (24 +11)
  Опубликован релиз операционной системы NetBSD 10.2, который отнесён к категории корректирующих обновлений и включает в основном исправления проблем и уявзимостей, выявленных с момента публикации NetBSD 10.1 в декабре 2024 года. Ветка NetBSD 10 будет поддерживаться до релиза NetBSD 12.0. Для загрузки подготовлены установочные образы размером 639 МБ, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU. Для новых установок рекомендуется использовать недавно опубликованный релиз NetBSD 11.0.

Из не связанных с исправлением ошибок изменений отмечается поддержка новых версий компиляторов, повышение стабильности работы WiFi-драйвера iwm, решение проблем при работе на системах Olimex A64 и MIPS R5000SC, реализация возможности загрузки ядра для amd64 при вызове qemu с опцией "-kernel". Добавлена поддержка устройств ASIX AX88179A USB Ethernet, Asus USB-N10 Nano B1 Wi-Fi, Realtek RTL8126 5Gbps Ethernet, RTL8125D (rev 0x6890000), RIoTboard i.MX6S IOMUX, VMware PV SCSI. Устранены уязвимости в ipfilter, telnet, TCP-стеке ядра, OpenSSL, Unbound и X.Org. Обновлены версии openssl 3.0.21, tmux 3.6a и xkbcomp 1.5.0.

  1. Главная ссылка к новости
  2. OpenNews: Доступен NetBSD 9.5, финальный выпуск в ветке 9.x
  3. OpenNews: Релиз операционной системы NetBSD 11.0
  4. OpenNews: ОС NetBSD портирована на системы с процессорами Motorola 68000
  5. OpenNews: Представлен Netbase, порт утилит NetBSD для других Unix-подобных систем
  6. OpenNews: Релиз операционной системы NetBSD 10.1
Обсуждение (24 +11) | Тип: Программы |


·22.09 Выпуск операционной системы Solaris 11.4 SRU95 (24 +3)
  Компания Oracle опубликовала выпуск операционной системы Solaris 11.4 SRU 95 (Support Repository Update), в котором предложена серия значительных изменений и улучшений для ветки Solaris 11.4. Для установки предложенных в обновлении исправлений достаточно выполнить команду 'pkg update'. Пользователи также могут воспользоваться бесплатной редакцией Solaris 11.4 CBE (Common Build Environment), развиваемой с использованием модели непрерывной публикации новых версий.

Среди изменений в новой версии:

Обсуждение (24 +3) | Тип: Программы |


·22.09 Выпуск медиаплеера VLC 3.0.24 с устранением 130 уязвимостей (45 +13)
  Представлен выпуск мультимедийного проигрывателя VLC 3.0.24. Код написан на языке Си и распространяется под лицензией LGPLv2.1. В VLC и во встроенных библиотеках устранено более 130 проблем с безопасностью, вызванных переполнениями буфера, обращением к памяти после её освобождения, целочисленными переполнениями и двойным освобождением памяти (детали пока не раскрываются). Некоторые из уязвимостей могут эксплуатироваться при обработке специально оформленного контента.

Среди изменений, не связанных с уязвимостями и исправлением ошибок:

  • Добавлена поддержка декодирования звуковых форматов Atrac3 и Atrac9 (Adaptive Transform Acoustic Coding).
  • Добавлен декодировщик для формата APV (Advanced Professional Video).
  • Реализована поддержка субтитров CEA-708 в мультимедийном контейнере MP4.
  • В распаковщик медиаконтейнеров MPEG добавлена поддержка метаданных ID3v2.
  • На платформе Windows реализована возможность захвата видео в формате NV12, используя API DirectShow.
  • В реализации протокола SRT (Secure Reliable Transport) появилась поддержка режима приёма запросов на соединение (listener).
  • Улучшена логика определения языка субтитров по именам файлов и метаданным SSA/ASS.
  • Добавлена поддержка обращения к контенту по протоколу SFTP, используя аутентификацию по открытым ключам.
  • Улучшено определения сетевых разделов SMB2.
  • Добавлена поддержка сборки пакета в формате Flatpak.
  • Удалены плагины NPAPI и youtube.lua. Отключена по умолчанию сборка плагина RealRTSP.
  • Осуществлён переход на использование нового ключа RSA-4096 для верификации обновлений.
  • Обновлено 49 сторонних библиотек. Пакет FFmpeg обновлён с версии 4.4 до 8.1.2.

  1. Главная ссылка к новости
  2. OpenNews: Зафиксировано существенное замедление запуска VLC после обновления Windows 11
  3. OpenNews: На выставке CES 2026 продемонстрирован прототип VLC 4.0 с поддержкой видеокодека AV2
  4. OpenNews: Выпуск медиаплеера VLC 3.0.23
  5. OpenNews: Лидер VLC стал лауреатом премии European SFS Award 2025
  6. OpenNews: VLC достиг 6 миллиардов загрузок и реализовал автоматическую генерацию субтитров
Обсуждение (45 +13) | Тип: Программы |


·22.09 Компания Valve представила экспериментальный видеокодек Pyrowave (105 +26)
  Компания Valve объявила о включении в состав бета-версии клиента Steam видеокодека Pyrowave, оптимизированного для потокового вещания видео с низкими задержками в сетях с высокой пропускной способностью. Кодек добавлен в качестве опции в сервис Steam Remote Play, позволяющий вести вещание игрового процесса или транслировать вывод на свою систему при игре на других устройствах. В Linux-версии Steam кодек становится доступен при активации в настройках режима SteamRT3. Реализация кодека написана на языке C++ и распространяется под лицензией MIT.

Кодек поддерживает только раздельное кодирование каждого кадра (intra-only), независимо от соседних кадров (все кадры являются ключевыми, межкадровое сжатие не используется). Подобный подход позволяет добиться очень высокой точности передачи картинки и исключить появление артефактов при движении и резкой смене заднего плана. При кодировании изображений применяется дискретное вейвлет-преобразование с фильтром CDF 9/7, по аналогии с форматом JPEG2000, и тривиальным энтропийным кодированием, позволяющим эффективно распараллеливать вычисления.

Кодек очень требователен к пропускной способности канала связи - по сравнению с другими потоковыми кодеками Pyrowave требует передачи в 5-10 раз больше трафика. Рекомендовано использование кодека для трансляции и доступа к играм в локальной сети с подключением к гигабитным портам Ethernet. По умолчанию битрейт выбирается автоматически в зависимости от контента, но при ограниченной пропускной способности сетей предоставляется настройка для задания верхней границы битрейта (допустимые значения от 100 до 500 Mbit/s).

Pyrowave оптимизирован для очень быстрого кодирования и декодирования с задействованием GPU и полностью реализован в форме вычислительных шейдеров. При наличии достаточной пропускной способности (битрейт на уровне ~200+ mbit/s) кодек демонстрирует минимальные задержки на уровне 0.1 мс при качестве 1080p и 0.2 мс при качестве 4K. Для устойчивости к потере пакетов в Pyrowave применяется изолированное кодирование блоками 64x64.

Поддерживается HDR и цветовые пространства YCbCr 4:2:0 и 4:4:4. HDR включается автоматически при его поддержке на стороне хоста и клиента. Формат кодирования цвета 4:4:4 требует более ресурсоёмких вычислений и увеличивает трафик, поэтому отключён по умолчанию и рекомендован для активации при трансляции содержимого рабочего стола или необходимости повышения читаемости текста на видео.

  1. Главная ссылка к новости
  2. OpenNews: Опубликована библиотека OpenAPV 1 с эталонной реализацией видеокодека APV
  3. OpenNews: Альянс AOMedia объявил о стабилизации видеокодека AV2
  4. OpenNews: Альянс AOMedia развивает звуковой кодек OAC (Open Audio Codec), основанный на Opus
  5. OpenNews: Доступен звуковой кодек Opus 1.6
  6. OpenNews: Опубликован свободный видеокодек Theora 1.2
Обсуждение (105 +26) | Тип: К сведению |


·21.09 Проект Convey развивает форк почтового клиента Geary (64 +2)
  Опубликован почтовый клиент Convey, продолжающий развитие проекта Geary, новые версии которого не публиковались с мая 2024 года. Наиболее заметным отличием от Geary является переход на использование библиотек GTK4 и libadwaita. Код написан на языке Vala и распространяется под лицензией LGPL.

Среди изменений:

  • Добавлен бэкенд Microsoft Graph для работы с учётными записями Outlook и Microsoft 365.
  • Предоставлена возможность создания, переименования и удаления папок из боковой панели, а также создания вложенных папок через контекстное меню.
  • Переработан код автодополнения вводимых адресов.
  • Плагины переведены на использование libpeas-2, gcr-4 и gck-2.
  • Библиотеки libcanberra и gsound звменены на GStreamer для воспроизведения звуков уведомлений.
  • Возможность навигации по панелям при помощи клавиатуры.
  • Обновлены пиктограммы.
  • Добавлен режим "All Inboxes" для показа входящих сообщений для всех учётных записей.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск почтового клиента Geary 46.0
Обсуждение (64 +2) | Тип: Программы |


·21.09 Выпуск дистрибутива MX Linux 25.3 (48 +13)
  Опубликован релиз легковесного дистрибутива MX Linux 25.3, созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS. Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве на выбор можно использовать системы инициализации sysVinit и systemd. Поставляются собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 64-разрядные сборки (x86_64) с рабочим столом Xfce (2.7 ГБ), а также сборки с рабочим столом KDE (3.4 ГБ) и сборки (2.3 ГБ) с оконным менеджером Fluxbox.

В новом выпуске:

  • Осуществлена синхронизация с пакетной базой Debian 13.7. Ядро Linux обновлено до версии 6.12.107.
  • Обновлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce, ядром 7.2 c патчами от проекта liquorix и Мesa 26.1.4.
  • Обновлён интерфейс утилит MX-Welcome, MX-Tools и custom-toolbox.
  • Добавлена утилита Verify-iso-sig для проверки iso-образов по цифровой подписи.
  • Добавлена утилита MX-Theme-Colors, для создания собственных цветовых тем на основе существующих тем оформления GTK.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск дистрибутива MX Linux 25.2
  3. OpenNews: Опубликован AV Linux MX 25, дистрибутив для создания аудио- и видеоконтента
  4. OpenNews: Выпуск легковесных дистрибутивов antiX 23.2 и MX Linux 23.4
Обсуждение (48 +13) | Тип: Программы |


·21.09 Выпуск утилиты для загрузки web-контента GNU Wget2 2.3.0 (36 +25)
  Опубликован релиз проекта GNU Wget2 2.3.0, развивающего переписанный с нуля и полностью переработанный вариант программы для автоматизации рекурсивной загрузки контента GNU Wget. Wget2 предоставляет набор дополнительных опций, поддерживает загрузку в несколько потоков, позволяет использовать доступную функциональность через библиотеку libwget, поддерживает протоколы HTTP/2 и TLS 1.3, даёт возможность загружать только изменившиеся данные, может сохранять данные с серверов потокового вещания, корректно обрабатывает интернационализированные доменные имена и может перекодировать загружаемое содержимое. Утилита wget2 поставляется под лицензией GPLv3+, а библиотека под LGPLv3+.

В новой версии основное внимание уделено исправлению ошибок, из изменений в функциональности выделяется расширение поддержки платформы OS/2, обеспечение конвертации ссылок в CSS при указании опции "--convert-links", поддержка атрибута srcdoc в элементе iframe, разбор HTML-тегов data-src и data-srcset, опция "--spider -S" для показа заголовков без загрузки содержимого и опция "--progress=dot" для визуализации прогресса выполнения загрузки.

  1. Главная ссылка к новости
  2. OpenNews: В GNU Wget2 2.2.1 устранена уязвимость, допускающая перезапись произвольных файлов
  3. OpenNews: Выпуск утилиты для загрузки web-контента GNU Wget2 2.2.0
  4. OpenNews: Доступны утилиты wget 1.25 и Curl 8.11. Представлены платные LTS-выпуски Curl
  5. OpenNews: Первый стабильный релиз утилиты для загрузки web-контента GNU Wget2
  6. OpenNews: Выпуск GNU Wget 1.21
Обсуждение (36 +25) | Тип: Программы |


·21.09 Представлены первые ноутбуки Googlebook, оснащённые Android (186 –15)
  Компания Google объявила о доступности для предзаказа трёх первых моделей ноутбуков Googlebook, созданных компаниями Acer, Dell и Lenovo (в разработке также находятся модели от ASUS и HP). Отправка устройств по предзаказам начнётся 4 октября. Серия Googlebook построена на базе платформы Android 17 и идёт на смену устройствам Chromebook, поставлявшимся с операционной системой ChromeOS. Платформа Googlebook преподносится как переход от традиционных операционных систем к умным системам, в которые тесно интегрированы AI-сервисы.

Интерфейс пользователя основан на реализованном в Android десктоп-режиме для больших экранов, позволяющем одновременно работать с окнами нескольких приложений по аналогии с традиционной средой рабочего стола. Из Android также задействованы ядро Linux, GKI-модули (Generic Kernel Image), компоненты взаимодействия с оборудованием (HAL), Android Runtime, Android API, системные фоновые процессы и библиотеки. Из Chrome OS перенесён интерфейс запуска приложений (Launcher), файловый менеджер, а также отдельные системные сервисы.

Поддерживается бесшовное взаимодействие со смартфонами на базе платформы Android и предоставляется возможность устанавливать созданные для Android приложения из каталога Google Play. Из интерфейса Googlebook также можно запускать приложения, установленные на связанном смартфоне, не доставая смартфон и не переустанавливая приложения на ноутбуке. В файловом менеджере предоставляется доступ к содержимому Android-смартфонов и имеется возможность переносить, просматривать и искать файлы на разных Android-устройствах пользователя.

В платформу встроен AI-ассистент Gemini, который активируется при помощи умного курсора - достаточно подёргать курсор из стороны в сторону, и курсор перейдёт в режим вывода контекстных подсказок, появляющихся при его наведении на любой интересующий контент на экране. Например, после наведения курсора на дату в письме AI-ассистент предложит назначить встречу, а при выборе курсором нескольких изображений можно сгенерировать новое изображение на их основе. Подобным образом можно сравнивать контент и задавать AI-ассистенту вопросы о содержимом. При помощи AI также осуществляется создание пользовательских виджетов - достаточно нажать кнопку создания виджета и естественным языком описать, что хочется получить.

В базовую поставку входят такие приложения, как Google Chrome, Google Docs, Gmail, Google Drive, Google Gemini, Google Calendar, Google Photos и YouTube. Помимо Android-приложений и игр из Google Play, предоставляется возможность установки Adobe Photoshop, Adobe Lightroom, CapCut, Microsoft 365 и некоторых других нативных программ. Для запуска игр, выпускаемых для ПК, можно использовать сервис GeForce NOW. Возможен просмотр видео с платформ Netflix и HBO Max. Запуск Linux-программ осуществляется в виртуализированном окружении, для строгой изоляции памяти в котором применяется pKVM (Protected KVM).

Доступные для предзаказа устройства:

  • Lenovo Googlebook ($1,349) 15.3” (2880 x 1800), Intel Core Ultra 5 325, NPU (Neural Processing Unit), ОЗУ 16GB LPDDR5X, 512GB NVMe SSD, Wifi 7, Bluetooth 5.4, 2x USB Type-C Thunderbolt 4, 1x USB 3.2 Type-A, 3.5mm Audio, HDMI 2.0, аккумулятор 70 Wh (до 13 часов автономной работы), вес 1.281 кг.
  • Dell XPS Googlebook ($1,199) 13.4" (2560 x 1600), Qualcomm Snapdragon X Elite X1E-80-100, NPU, ОЗУ 16GB LPDDR5X, 512GB PCIe Gen 4 SSD, Wifi 7, Bluetooth 5.4, 2x USB Type-C 3.2 (10Gbps) с DisplayPort 1.4, аккумулятор 52 Wh (до 18 часов автономной работы), вес 1 кг.
  • Acer Googlebook ($899) 14.0" (2880 x 1800), Intel Core Ultra 5 325, NPU, ОЗУ 16GB LPDDR5X, 512GB PCIe Gen 4 SSD, Wifi 7, Bluetooth 6, USB Type-C 3.2 (10Gbps) с DisplayPort 1.4 через USB Type-C, аккумулятор 71 Wh (до 16 часов автономной работы), вес 1.139 кг.

  1. Главная ссылка к новости
  2. OpenNews: Поставка ОС Aluminium намечена на 2028 год. Поддержка ChromeOS сохранится до 2034 года
  3. OpenNews: Утечка видео с интерфейсом ОС Aluminium, развиваемой Google на смену Chrome OS
  4. OpenNews: Google развивает ОС Aluminium для ноутбуков и планшетов
  5. OpenNews: Google подтвердил грядущее слияние Android и Chrome OS
  6. OpenNews: В Android встроена возможность запуска графических Linux-приложений
Обсуждение (186 –15) | Тип: К сведению |


·20.09 Valve опубликовала инструментарий Lepton для запуска Android-игр в Linux (118 +60)
  Компания Valve развивает инструментарий Lepton, позволяющий запускать в Linux игры, поставляемые для платформы Android. Проект рассчитан на интеграцию со Steam Client и создан для предоставления возможности запуска Android-игр с поддержкой устройств виртуальной реальности на VR-шлеме Steam Frame, поставляемом с Linux.

Lepton формирует изолированный контейнер с системным образом платформы Android, включающий всё необходимое для запуска Android-игр. Начинка сформирована c использованием патчей и компонентов от проектов Waydroid, Anbox, Halium и Hybris. Наработки для сборки образа с Android, применяемого для исполнения игр в Linux, распространяются под лицензией GPLv3, а инструментарий для организации процесса запуска игр с использованием подготовленного образа - под лицензией MIT.

В Lepton также включены дополнительные возможности, помогающие разработчикам игр перенести свои Android-игры в Steam. В формируемое Android-окружение пробрасываются используемые в хостовой ОС библиотеки Steam/Steamworks, графические драйверы (mesa, zink) и Vulkan-прослойки для оптимизации рендеринга и снижения детализации по краям экрана. Поддерживается интеграция с различными отладчиками (strace, gdb, lldb, renderdoc) и профилировщиками (perfetto).

Отличия Lepton от существующих проектов, реализующих окружения для запуска Android-приложений в Linux:

  • Запуск под непривилегированным пользователем и отсутствие настроек и действий для которых нужны права root.
  • Все процессы в Lepton запускаются под одним непривилегированным пользователем. Отсутствует изоляция между играми, запускаемыми в Android-окружении - предполагается, что каждая Android-игра запускается в отдельном Android-контейнере.
  • Lepton не рассчитан на универсальное применение и содержит только минимальную функциональность, необходимую для запуска игр. Отключены многие Android-сервисы, не применяемые в играх.
  • Кэширование состояния различных компонентов для ускорения запуска Android-окружений.

  1. Главная ссылка к новости
  2. OpenNews: Проект Waydroid развивает пакет для запуска Android в дистрибутивах GNU/Linux
  3. OpenNews: Проект Anbox развивает окружение для запуска Android-приложений в дистрибутивах Linux
  4. OpenNews: Проект Halium нацелен на унификацию основы мобильных Linux-платформ, отличных от Android
  5. OpenNews: Компания Valve представила приставку Steam Machine и VR-шлем Steam Frame, поставляемые с Linux
  6. OpenNews: libhybris - прослойка для выполнения поверх Glibc привязанных к Bionic компонентов Android
Обсуждение (118 +60) | Тип: Программы |


·20.09 Опасные уязвимости в ядре Linux, KVM, Exim, Unbound, Ghostscript и Suricata (117 +20)
  Несколько недавно выявленных опасных уязвимостей, позволяющих получить root-доступ в системе или добиться удалённого выполнения кода.
  • Раскрыты сведения о четырёх уязвимостях в ядре Linux, дающих непривилегированному локальному пользователю возможность выполнить код с правами root. Проблемы устранены в обновлениях ядра Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 и 7.2.4. Для всех уязвимостей подготовлены эксплоиты, работа которых продемонстрирована в Fedora 43/44 и Ubuntu 24.04. Для эксплуатации первых трёх уязвимостей требуется возможность создания пространств имён идентификаторов пользователей (user namespace) или наличие прав CAP_NET_ADMIN, а также включение поддержки подсистем, в которых присутствуют уязвимости (AH6/XFRM, TUN, PPPoE и SCTP).
    • DirtyAH6 (CVE-2026-80844, эксплоит) - переполнение буфера в обработчике IPsec AH (Authentication Header), возникающее из-за отсутствия проверки указанных в заголовке значений. Помимо локального осуществления атаки, уязвимость при специфичных условиях теоретически может быть эксплуатирована удалённо.
    • TUNderflow (CVE-2026-81000, эксплоит) - запись за пределы выделенного буфера при разборе некорректно оформленного TUN-пакета.
    • PPPoEject (CVE-2026-68121, эксплоит) - обращение к уже освобождённой памяти в драйвере PPPoE.
    • DiagSpill (CVE-2026-74469, эксплоит) - переполнение буфера в средствах диагностки протокола SCTP. Помимо локального осуществления атаки, уязвимость при специфичных условиях теоретически может быть эксплуатирована удалённо.
  • Уязвимость (CVE-2026-89775) в гипервизоре KVM, позволяющая получить доступ к хост-окружению из гостевой системы. При наличии доступа непривилегированных пользователей к устройству /dev/kvm (по умолчанию в RHEL) уязвимость также можно использовать для повышения своих привилегий в системе. Проблема проявляется только на системах с архитектурой ARM64 при включённой поддержке вложенной виртуализации. Уязвимость вызвана тем, что процедура расчёта размера возвращала "0", подразумевая, что размер неизвестен, а функция освобождения страниц памяти обрабатывала "0" как фактическое значение и не очищала страницы памяти.
  • В выпуске почтового сервера Exim 4.100.1 устранены 4 уязвимости: чтение данных из области за границей буфера и использование неинициализированных данных в реализации протокола Proxy; обращение к памяти после её освобождения в TLS-on-connect при использовании GnuTLS; подстановка сообщения в чужой поток (SMTP smuggling).
  • В пакете Ghostscript 10.08.0 устранена уязвимость (CVE-2026-39919), вызванная переполнением буфера в коде для разбора формата JPEG 2000 при указании некорректных значений субсэмплинга. Проблема может привести к выполнению кода при обработке в Ghostscript специально оформленных файлов PDF с интегрированными изображениями в формате JPEG 2000. Опасность уязвимости усугубляет то, что Ghostscript вызывается в процессе создания миниатюр на рабочем столе, при фоновой индексации данных и при преобразовании изображений. Для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в Nautilus. Уязвимости в Ghostscript также можно эксплуатировать через обработчики изображений на базе пакетов ImageMagick и GraphicsMagick, передав в них JPEG или PNG-файл, в котором вместо картинки находится код PostScript (такой файл будет обработан в Ghostscript, так как MIME-тип распознаётся по содержимому, а не полагаясь на расширение). Проблема устранена в Ghostscript 10.08.0.
  • В DNS-сервере Unbound 1.26.1 устранено 9 уязвимостей, среди которых проблема CVE-2026-81642, приводящая к переполнению буфера при обработке определённых DNSKEY. Уязвимость может использоваться для удалённого выполнения кода на сервере. Также устранены: переполнение буфера в коде работы с DNSSEC, повреждение данных в памяти в обработчике CNAME, обращение к уже освобождённой памяти в коде DoQ и DoH.
  • В системе обнаружения и предотвращения атак Suricata 8.0.7 устранено 67 уязвимостей, из которых две помечены как критические. Сведения о проблемах пока не раскрываются, но судя по уровню опасности уязвимости допускают удалённое выполнение кода при обработке специально оформленного трафика.

  1. Главная ссылка к новости
Обсуждение (117 +20) | Тип: Проблемы безопасности |


·19.09 Новые версии Wine 11.18 и Wine-staging 11.18 (36 +15)
  Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 11.18. С момента выпуска 11.17 был закрыто 44 отчёта об ошибках и внесено 380 изменений.

Наиболее важные изменения:

  • В прослойке симуляции ядра NT (ntoskrnl.exe) реализованы функции PsGetThreadProcess, PsGetProcessPeb, PsGetContextThread, PsReferencePrimaryToken, MmGetPhysicalMemoryRanges, SeLocateProcessImageName, MmGetVirtualForPhysical, KeCapturePersistentThreadState, PsDereferencePrimaryToken, PsGetProcessImageFileName, необходимые для корректной поддержки драйверов устройств.
  • В поставляемые для языка Си заголовочные файлы внесены исправления для повышения совместимости.
  • Закрыты отчёты об ошибках, связанные с работой приложений: QuickTime 2.x, Adobe Creative Cloud, Adobe Express Photos, SlingPlayer 1.5.
  • Закрыты отчёты об ошибках, связанные с работой игр: Assassin's Creed Rogue, Super Meat Boy, Screamer 4x4 1.2, Enclave, Star Wars: Knights of the Old Republic, Return to Krondor, The Bard's Tale IV Director's Cut.

Отдельно сформирован выпуск проекта Wine Staging 11.18, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 273 дополнительных патчей. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 11.18 и обновлён код vkd3d. В основной состав Wine перенесён патч, преобразующий заголовочный файл d3d10_1shader.h в файл в формате idl (Interface Definition Language). Добавлены патчи для преобразования представления цвета YV12 в RGB в коде отрисовки и выполнения проверок исполняемых файлов для архитектуры WoW64 (64-bit Windows-on-Windows), позволяющей выполнять 32-разрядные Windows-приложения в 64-разрядных Unix-системах.

  1. Главная ссылка к новости
  2. OpenNews: Новые версии Wine 11.17, Wine-staging 11.17, DXVK 3.1, D7VK 2.1 и Vkd3d 2.1
Обсуждение (36 +15) | Тип: Программы |


·18.09 Опубликована библиотека управления памятью jemalloc 5.4 (61 +23)
  Представлен релиз библиотеки управления памятью jemalloc 5.4.0, предлагающей альтернативную реализацию функций malloc, оптимизированную для снижения фрагментации и работы на многопроцессорных системах. Для решения проблем с блокировками на многоядерных системах в jemalloc для каждого ядра CPU используется своя изолированная область распределения памяти, что позволяет добиться линейной масштабируемости при росте числа потоков.

В июне 2025 года автор проекта прекратил сопровождение и перевёл репозиторий jemalloc в архивный режим, но в марте этого года разработку возобновила компания Meta, применяющая jemalloc в своей инфраструктуре. Изначально библиотека была разработана для FreeBSD и используется в данной ОС по умолчанию с 2005 года. Код библиотеки написан на Си и распространяется под лицензией BSD.

Среди изменений:

  • Упрощена логика заполнения и сброса tcache (Thread Local Cache), а также диспетчеризации выделения памяти.
  • Унифицированы аллокаторы страниц памяти PAC (Page Allocator Classic) и HPA (Huge Page Allocator). Удалён усложнённый механизм косвенных вызовов через vtable (PAI vtable).
  • Для упрощения сопровождения и расширения платформ все платформо-зависимые операции вынесены в отдельные заголовочные файлы.
  • Упрощена диспетчеризация команд mallctl, а также переработана инфраструктура генерации и вывода статистики.
  • Добавлен флаг EXTENT_ALLOC_FLAG_PINNED, позволяющий помечать невытесняемые области маппинга памяти, такие как страницы HugeTLB, для их приоритетного повторного использования. Для получения статистики об использовании закреплённой памяти добавлены новые интерфейсы mallctl: stats.pinned, stats.arenas.<i>.pinned, stats.arenas.<i>.extents.<j>.npinned, stats.arenas.<i>.extents..pinned_bytes и stats.arenas.<i>.mutexes.extents_pinned.{counter} .
  • Синхронизировано содержимое статистики malloc в читаемом и JSON форматах.
  • Удалены устаревшие параметры lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div и lg_tcache_flush_large_div.

  1. Главная ссылка к новости
  2. OpenNews: Доступна библиотека управления памятью jemalloc 5.3.1
  3. OpenNews: Facebook возобновил разработку библиотеки управления памятью jemalloc
  4. OpenNews: Прекращена разработка библиотеки управления памятью jemalloc
  5. OpenNews: Miсrosoft открыл код системы распределения памяти mimalloc
  6. OpenNews: Google опубликовал новый вариант системы распределения памяти TCMalloc
Обсуждение (61 +23) | Тип: Программы |


Следующая страница (раньше) >>



XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить новость, Поддержать