The OpenNET Project / Index page

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

·01.01.2026 Релиз мультимедийной библиотеки SDL 3.4.0
  Представлен релиз библиотеки SDL 3.4.0 (Simple DirectMedia Layer). Библиотека нацелена на упрощение написания игр и мультимедийных приложений, и предоставляет такие возможности, как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука и вывод 3D через OpenGL, OpenGL ES, Metal, Direct3D или Vulkan. Код написан на языке Си и распространяется под лицензией Zlib. Предоставляются обвязки для использования SDL в проектах на различных языках программирования.

SDL 3.4.0 является второй значительной стабильной веткой в серии SDL 3.x - первой стабильной веткой была объявлена серия 3.2.x, а ветка 3.3.x позиционировалась как экспериментальная. Главные изменения в SDL 3.4.0 связаны со значительным улучшением переносимости между API 3D GPU и API для двумерной отрисовки, расширением поддержки сборки в WebAssambly при помощи компилятора Emscripten, улучшению работе с графическими планшетами и цифровыми перьями, появлению встроенной поддержки формата изображений PNG.

Среди новых функций:

  • Добавлена функция SDL_CreateAnimatedCursor() для создания цветных анимированных курсоров, а также признак SDL_HINT_MOUSE_DPI_SCALE_CURSORS для автоматического масштабирования курсоров в привязке к уровню масштабирования экрана.
  • Добавлены функции SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() и SDL_GetWindowProgressValue() для показа прогресса операции в пиктограмме приложения в панели задач.
  • Добавлены свойства для использования GPU API со старым оборудованием.
  • Добавлено свойство SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER и SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAдля настройки и задействования возможностей API Vulkan при создании устройств GPU.
  • Добавлена функция SDL_GetGPUDeviceProperties() для запроса информации об GPU.
  • Добавлены функции SDL_CreateGPURenderer() и SDL_GetGPURendererDevice() для задействования GPU при 2D-отрисовке, а также SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() и SDL_DestroyGPURenderState() для задействования фрагментных шейдеров при 2D-отрисовке.
  • При 2D-отрисовке при помощи GPU реализована поддержка YUV-текстур и HDR. Добавлена поддержка текстур с палитрами, для работы с которыми добавлены функции SDL_GetTexturePalette() и SDL_SetTexturePalette(). Добавлены функции SDL_GetPixelFormatFromGPUTextureFormat() и SDL_GetGPUTextureFormatFromPixelFormat() для преобразования фоматов текстур, а также параметры SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER и SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER для создания 2D-текстур из GPU-текстур. Для настройки текстур добавлены функции SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
  • Добавлена параметр SDL_SCALEMODE_PIXELART для использования оптимизированного для пиксельной графики алгоритма масштабирования.
  • Добавлена встроенная поддержка изображений в формате PNG, для работы с которыми предложены функции SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() и SDL_SavePNG_IO(). Для определения формата (PNG или BMP) и загрузки изображений в качестве поверхностей добавлены функции SDL_LoadSurface() и SDL_LoadSurface_IO().
  • Добавлена функция SDL_RotateSurface() для создания повёрнутой копии поверхности.
  • Реализованы события SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END и SDL_EVENT_AUDIO_DEVICE_ADDED, срабатывающие при изменении границ, появлении/скрытии экранной клавиатуры, экранных жестах и добавлении звукового устройства.
  • Добавлены функции SDL_PutAudioStreamDataNoCopy() и SDL_PutAudioStreamPlanarData() для более эффективной обработки звуковых потоков.
  • Добавлена поддержка игровых контроллеров Nintendo Switch 2, подключённых через USB. Расширена поддержка контроллеров 8BitDo, FlyDigi и Hand Held Legend SInput.
  • Для улучшения работы WebAssambly-приложений, собираемых при помощи компилятора Emscripten, добавлена функция SDL_SetWindowFillDocument() и параметры SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING и SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • На платформе Linux реализована поддержка атомарных операций при использовании KMSDRM, активируемая при помощи свойства SDL_HINT_KMSDRM_ATOMIC. Добавлен параметр SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER для запроса устройства вывода wl_output, ассоциированного с экраном.

  1. OpenNews: Релиз мультимедийной библиотеки SDL 3
  2. OpenNews: Проект SDL3Lite развивает версию библиотеки SDL3 с поддержкой старых систем
  3. OpenNews: В библиотеке SDL3 отменяют переход на Wayland по умолчанию (отмена отложена)
  4. OpenNews: Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, работающего через SDL 2
  5. OpenNews: Мультимедийная библиотека SDL переходит на использование Wayland по умолчанию
Обсуждение | Тип: Программы |
·31.12.2025 Выпуск видеоредакторов Shotcut 25.12, OpenShot 3.4, Kdenlive 25.12 и Flowblade 2.24 (15 +8)
  Опубликован релиз видеоредактора Shotcut 25.12, развиваемого автором проекта MLT и использующего данный фреймворк для редактирования видео. Поддержка форматов видео и звука реализована через FFmpeg. Возможно использование плагинов с реализацией видео и аудио эффектов, совместимых с Frei0r и LADSPA. Из особенностей Shotcut можно отметить возможность многотрекового редактирования с компоновкой видео из фрагментов в различных исходных форматах, без необходимости их предварительного импортирования или перекодирования. Имеются встроенные средства для создания скринкастов, обработки изображения с web-камеры и приёма потокового видео. Код написан на C++ с использованием фреймворка Qt и распространяется под лицензией GPLv3. Готовые сборки доступны для Linux (AppImage и snap), macOS и Windows.

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

  • Повышена глубина цвета при обработке видео с использованием CPU - данные теперь передаются между фильтрами с 10- или 12-битным представлением цвета на канал. На 10-битное представление переведены многие эффекты, включая переходные эффекты и операции смешивания дорожек. Ранее 10-битное представление поддерживалось только в отдельных эффектах и фильтрах, использующих GPU, а операции выполняемые на базе CPU выполнялись в 8-битном представлении, даже если исходное видео имело более высокую глубину цвета.
  • Осуществлён переход к обработке изображений в линейном цветовом пространстве, позволяющем избежать искажений цвета при смешивании пикселей во время масштабирования, размытия или наложения. Использование линейного цветового пространства требует больше вычислений из-за преобразований и сильно отстаёт по производительности от старого режима, поэтом у настройках предоставлена возможность выбора режима работы и разрядности цвета (подменю Settings > Processing Mode): "Native 8-bit CPU" (самый быстрый и совместимый с фильтрами), "Native 10-bit CPU" (медленнее, но лучше по качеству), "Linear 10-bit CPU" (самый медленный, но наилучший по качеству) и Linear 10-bit GPU/CPU (экспериментальный).
  • В меню "Filters" добавлено выпадающее меню для навигации по фильтрам, подходящим для выбранного режима обработки (GPU, 10-bit, Color, RGBA и YUV).
  • В меню "Filters" обеспечен вывод по умолчанию фильтров цвета в контексте операций работы с цветом и фильтров звука в контексте операций со звуком.
  • Добавлен интерфейс для навигации по пресетам для генератора изображений или видео на основе шаблонов в формате HTML (New > Image/Video from HTML). Добавлено два новых HTML-пресета: Chrome и Neon Flux для наложения текста на видео с эффектом хромирования и неонового свечения.
  • В функцию создания скриншотов добавлена кнопка для сворачивания интерфейса Shotcut, а в функцию записи видео с содержимым экрана добавлена опция для записи звука.
  • На платформе Linux/X11 добавлена поддержка использования nvenc для записи видео с содержимым экрана.
  • В функцию извлечения субтитров добавлена поддержка форматов mov_text и SSA.
  • Улучшена совместимость сборок в форматах AppImage, Portable и Snap с аппаратными кодировщиками видео, доступными через VA-API.



Дополнительно можно отметить декабрьские релизы редакторов видео:

  • OpenShot 3.2.0. Редактор отличается простым пользовательским интерфейсом, позволяющим редактировать видео даже начинающим пользователям. Программа поддерживает несколько десятков визуальных эффектов, даёт возможность работы с многотрековыми монтажными шкалами с возможностью перемещения мышью элементов между ними, позволяет масштабировать, кадрировать, осуществлять слияние блоков видео, обеспечивать плавное перетекание из одного ролика в другой, производить наложение полупрозрачных областей и т.п. Имеется возможность перекодирования видео с предварительным просмотром изменений на лету. Код проекта поставляется под лицензией GPLv3: интерфейс написан на Python и PyQt5, ядро обработки видео (libopenshot) написано на C++ и использует возможности пакета FFmpeg, интерактивная шкала времени написана с использованием HTML5, JavaScript и AngularJS. Готовые сборки подготовлены для Linux (AppImage), Windows и macOS.

    В OpenShot 3.2.0 отмечается значительное повышение производительности (в среднем на 32%); снижение потребления памяти; добавление новых видеоэффектов (Sharpen, Color Map, Spherical Projection, Outline и Lens Flare); появление функции интерактивного кадрирования; добавление возможности растягивания или уменьшения времени воспроизведения через перетаскивание края клипа; поддержка перетаскивания ключевых кадров на временной шкале с live-предпросмотром; улучшенный импорт/экспорт форматов Final Cut Pro XML и EDL. Предложена для тестирования новая экспериментальная реализация временной шкалы.

  • Kdenlive 25.12.0. Редактор развивается проектом KDE и нацелен на полупрофессиональное использование. Поддерживается работа с видеозаписями в форматах DV, HDV и AVCHD и предоставляются все основные операции по редактированию видео. Например, редактор позволяет - используя временную шкалу - произвольно смешивать видео, звук и изображения, а также применять многочисленные эффекты. При работе программы используются такие внешние компоненты, как FFmpeg, фреймворк MLT и система оформления эффектов Frei0r. Для установки в ближайшее время будет подготовлен самодостаточный пакет в формате AppImage.

    В новой версии Kdenlive предложена новая гибкая система закрепления элементов интерфейса (docking system), позволяющая группировать виджеты и отображать/скрывать их при необходимости. Раскладки элементов интерфейса можно сохранять внутри проекта или в отдельных файлах для совместного использования. Добавлено окно "Welcome Screen" с ознакомительной информацией для новичков. Реорганизовано содержимое меню. Переделано представление для визуализации звуковой волны.

  • Flowblade 2.24. Многотрековый редактор видео, предназначенный для компоновки видеороликов из отдельных видео, звуковых файлов и изображений. Редактор предоставляет средства для обрезки клипов с точностью до отдельных кадров, использования фильтров, определения своего порядка применения инструментов, корректировки поведения шкалы времени, композитинга изображений (например, можно поворачивать, постепенно замещать и создавать переходные эффекты). Код проекта написан на языке Python с использованием фреймворка MLT и распространяется под лицензией GPLv3. Сборки подготовлены в формате Flatpak.

    В новой версии Flowblade улучшена синхронизация связанных клипов (дочерние клипы теперь могут следовать за изменением при усечении родительского клипа); добавлены новые способы объединения нескольких фрагментов в один объект (выделение рамкой и выбор интервала на временной шкале); внесена серия мелких изменений в интерфейс; продолжена адаптация кодовой базы для GTK4.

  1. OpenNews: Выпуск видеоредактора Shotcut 25.10
  2. OpenNews: Релиз программы для редактирования видео LosslessCut 3.66
  3. OpenNews: Проект OpenCut развивает открытую альтернативу видеоредактору CapCut
  4. OpenNews: Доступен видеоредактор Flowblade 2.22
  5. OpenNews: Выпуск свободного видеоредактора OpenShot 3.2.0
Обсуждение (15 +8) | Тип: Программы |
·31.12.2025 Проект Curl избавился от использования функции strcpy в коде (214 +15)
  Дэниел Cтенберг (Daniel Stenberg), автор утилиты для получения и отправки данных по сети curl, объявил о прекращении использования функции strcpy() в кодовой базе проекта и запрете применения данной функции в дальнейшем. Решение является продолжением инициированного в прошлом году отказа от использования функции strncpy(), копирующей заданное число байт из входящей строки. Применение strncpy() создавало опасность возникновения ошибок из-за пропуска нулевого символа в конце строки или добавочного заполнения нулями.

Обращения к strncpy() были заменены на функцию strcpy(), перед вызовом которой выполнялось выделение памяти под целевой буфер c учётом размера исходной строки или присутствовала проверка соответствия размера исходной строки и целевого буфера. Замена на функцию strlcpy() не была произведена, так как требовалось всегда копировать всю строку целиком или возвращать ошибку.

Теперь все вызовы strcpy() заменены на новую функцию curlx_strcopy(dest, dsize, src, slen). Функция curlx_strcopy() требует указания размера исходного и целевого буфера с расчётом, что целевой буфер обязательно должен быть больше исходного для вмещения нулевого символа конца строки, который принудительно добавляется функцией в конец для исключения его пропуска при копировании. Если размер целевого буфера больше нуля, но его недостаточно для копирования целевой строки, то в начало добавляется нулевой байт.


   void curlx_strcopy(char *dest,
                   size_t dsize,
                   const char *src,
                   size_t slen)
   {
     DEBUGASSERT(slen < dsize);
     if(slen < dsize) {
       memcpy(dest, src, slen);
       dest[slen] = 0;
     }
     else if(dsize)
       dest[0] = 0;
   }

Замена strcpy() на curlx_strcopy() произведена, так как существует вероятность человеческой ошибки, приводящей к разделению кода с проверкой/выделением памяти и вызовом strcpy(), например, при необдуманном переносе лишь части кода или вставки кода между проверкой и вызовом strcpy(). Кроме того, прекращение использования strcpy позволит избавиться от потока ложных сообщений об уязвимостях из-за некорректных срабатываний AI-инструментов, считающих наличие strcpy() уязвимостью без учёта имеющихся в коде проверок.

  1. OpenNews: Утилита wcurl принята в состав проекта Curl
  2. OpenNews: Доступны утилиты wget 1.25 и Curl 8.11. Представлены платные LTS-выпуски Curl
  3. OpenNews: Проблемы из-за подготовленных AI-инструментами отчётов об уязвимостях
  4. OpenNews: Переполнение буфера в curl и libcurl, проявляющееся при обращении через SOCKS5-прокси
  5. OpenNews: В CVE опубликованы отчёты о ложных уязвимостях в curl, PostgreSQL и других проектах
Обсуждение (214 +15) | Тип: Обобщение |
·30.12.2025 Микроядро Xous и открытый чип Baochip-1x для создания безопасных встраиваемых систем (108 +15)
  Эндрю Хуан (Andrew Huang) и Шон Кросс (Sean Cross), в своё время спроектировавшие открытый ноутбук Novena и платформу для создания смартфонов Precursor, представили на конференции 39C3 (Chaos Communication Congress) открытый SoC Baochip-1x, предназначенный для создания защищённых устройств интернета вещей (IoT). Чип спроектирован для использования вместе с микроядерной операционной системой Xous, развиваемым Эндрю и Шоном последние пять лет. Схемы, описания аппаратных блоков на языке Verilog, симулятор и сопутствующая проектная документация доступны под открытой лицензией CERN OHL 2.0. Код операционной системы Xous написан на языке Rust и распространяется под лицензией Apache 2.0.

В качестве причин для создания собственного SoC упоминается отсутствие на рынке чипов разумного компромисса, сочетающего легковесность с наличием возможностей для выполнения защищённых систем. Отмечается, что среди оборудования для встраиваемых устройств получили распространение две крайности - полнофункциональные чипы с блоком управления памятью (MMU), рассчитанные на запуск крупных платформ на базе ядра Linux, и урезанные чипы без MMU, для которых применяются операционные системы типа Zephyr, chibios или rt-thread, не предоставляющие должных гарантий безопасности.

Создатели чипа Baochip-1x попытались совместить легковесность, свойственную микроконтроллерам ARM без MMU, с возможностями изоляции памяти, доступными в полноценных CPU. Наличие MMU в Baochip-1x позволяет использовать страничную виртуальную память для изоляции процессов. ОС Xous комбинирует возможности виртуальной памяти с предоставляемой языком Rust проверкой заимствования переменных (borrow checker) для создания защищённого и эффективного механизма асинхронной передачи сообщений между процессами. Реализованная модель взаимодействия между процессами позволяет разделять разные задачи, сохраняя при этом минимальный размер ядра.

SoC Baochip-1x включает 32-разрядный CPU VexRiscv на базе архитектуры набора команд RISC-V (RV32-IMAC) c поддержкой схемы трансляции адресов Sv39 (виртуальной памяти) и четырёхъядерный ускоритель ввода-вывода BIO, основанный на проекте PicoRV и поддерживающий набор команд RV32E. VexRiscv работает на частоте 400 МГц, а BIO - 800 МГц. SoC оснащён 2 МБ SRAM и 4 МБ энергонезависимой RRAM. Первая партия чипов будет произведена во втором квартале 2026 года в компании TSMC с использованием техпроцесса 22nm (TSMC22ULL).

Операционная система Xous поддерживает процессы и потоки, и базируется на компактном микроядре и наборе серверов (реализаций сервисов), взаимодействующих через механизм асинхронной передачи сообщений в стиле QNX. Серверы в цикле ожидают поступления сообщений, определяют опкод сообщения (Message Opcode) и запускают соответствующий код на языке Rust. Ядро отвечает за доставку сообщений серверам, выделение серверам процессорного времени и передачу владения памятью от одного сервера к другому.

На уровне ядра выполняется минимальный объём кода (размер ядра 4 КБ) и насколько возможно функциональность вынесена в пользовательское пространство. Среди прочего в пространстве пользователя реализованы примитивы для синхронизации, планирования задач, выделения памяти, взаимодействия с оборудованием и сетевого взаимодействия. В форме сервиса также реализован графический сервер (graphics-server). Отличительной особенностью Xous также является предоставление реализации стандартной Си-библиотеки, написанной на языке Rust.

  1. OpenNews: Представлена платформа Precursor для создания свободных мобильных устройств
  2. OpenNews: Готов к производству первый прототип открытого чипа Libre-SOC
  3. OpenNews: Google представил проект Open Se Cura для создания защищённых программно-аппаратных систем
  4. OpenNews: Программно-аппаратная платформа CHERIoT 1.0 для повышения безопасности кода на языке Си
  5. OpenNews: Началось производство чипов на базе открытой платформы OpenTitan
Обсуждение (108 +15) | Тип: Программы |
·29.12.2025 Выпуск десктоп-движка Arcan 0.7.1 и десктоп-окружения Durden 0.6.3 (60 +21)
  После года разработки представлен выпуск десктоп-движка Arcan 0.7.1, объединяющего в себе дисплейный сервер, мультимедийный фреймворк и игровой движок для обработки 3D-графики. Arcan может использоваться для создания различных графических систем - от пользовательских интерфейсов для встраиваемых приложений до самодостаточных десктоп-окружений. На основе Arcan построены трёхмерное пользовательское окружение для систем виртуальной реальности Safespaces и среда рабочего стола Durden. Код проекта написан на языке Си и распространяется под лицензией BSD (некоторые компоненты под GPLv2+ и LGPL).

Arcan не привязан к отдельным графическим подсистемам и может работать поверх различных системных окружений (BSD, Linux, macOS, Windows), используя подключаемые бэкенды. Например, имеется возможность запуска поверх Xorg, egl-dri, libsdl и AGP (GL/GLES). Под управлением дисплейного сервера Arcan могут выполняться клиентские приложения на базе X11, Wayland и SDL. Проект развивает свой форк X.org-сервера - xarcan, а также композитный сервер arcan-wayland (waybridge), позволяющий запускать приложения на базе Wayland. В качестве ключевых критериев, применяемых при проектировании API Arcan, упоминаются безопасность, производительность и пригодность для отладки. Для упрощения разработки интерфейсов предлагается использовать язык Lua.

Особенности Arcan:

  • Сочетание возможностей композитного сервера, дисплейного сервера и оконного менеджера.
  • Поддержка работы в обособленном режиме, при котором приложение на базе Arcan является самодостаточным звеном, работающим без дополнительных графических прослоек.
  • Встроенный мультимедийный фреймворк, предоставляющих средства для работы с графикой, обработки потокового видео и звука, анимации, загрузки изображений, работы с устройствами захвата видео.

  • Многопроцессная модель подключения обработчиков источников данных (например, видеопотоков и вывода запущенных программ).

  • Жёсткая модель разделения привилегий - компоненты движка разбиваются на небольшие непривилегированные процессы, взаимодействующие через интерфейс разделяемой памяти Shmif.
  • Встроенные средства мониторинга и анализа аварийных завершений работы процессов. Движок может сериализировать внутреннее состояние Lua-скриптов для упрощения отладки.
  • Возможность отката (Fallbacks) на другой обработчик - в случае сбоя из-за ошибки в программе движок может запустить запасное приложение, сохранив те же внешние источники данных и соединения.
  • Средства для совместного доступа и удалённого подключения к рабочему столу. Доступ по сети обеспечивает графический сервер "arcan-net", реализующий P2P-протокол A12, объединяющий возможности таких технологий, как mDNS (определение локальных сервисов), SSH (интерактивная текстовая оболочка), X11/VNC/RDP (интерактивная графическая оболочка), RTSP (потоковая передача мультимедийных данных) и HTTP (загрузка ресурсов и синхронизация состояния).
  • Командная оболочка Cat9, позволяющая привязывать выполнение команд к отдельным ячейкам, формирующим подобие электронной таблицы (видео с демонстрацией). Предложенная концепция позволяет перенаправлять потоки данных между окнами, связывая данные и обработчики в разных окнах по аналогии с ячейками в электронных таблицах (например, можно перенаправить вывод из одного окна в запущенный в терминале shell-обработчик и использовать результат в другом окне).

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

  • Портирован развиваемый компанией Valve композитный сервер Gamescope, при помощи которого реализована возможность запуска игр из Steam без манипуляций с Xwayland.
  • Улучшен Qt-плагин qtarcan, позволяющий запускать в Arcan приложения, использующие Qt5 и Qt6, такие как Qbittorrent и Binary Ninja.
  • Созданы патчи и скрипт для запуска KeepassXC.
  • Развивается просмотрщик для протокола A12 и взаимодействия через него.
  • Развивается интерактивный оконный менеджер Lasso.
  • Добавлена утилита Xkbd2Lua для преобразования раскладок клавиатуры из X11 в формат, поддерживаемый Arcan.
  • Развиваются nix-пакеты для создания рабочего загрузочного окружения на базе Arcan, рабочего стола Durden и командной оболочки.
  • Добавлена поддержка постквантового алгоритма шифрования ML-KEM.
  • Добавлена возможность возобновления клиентами прерванных сетевых соединений (после восстановления оборванного соединения приложение будет повторно сопряжено без потери состояния его окна).
  • Добавлена опция "--cast", позволяющая организовать работу других пользователей с копией вывода приложения в режиме только для чтения.
  • В сервер каталогов добавлена поддержка новых унифицированных (Unified) и референтных (Referential) ссылок, при помощи которых можно объединять серверы в единое пространство имён или выстраивать цепочки серверов. В первом случае для пользователя группа серверов выглядит как один сервер, а во втором можно запускать приложения на одном сервере, подключившись к другому.
  • В API добавлена функция launch_target для динамического запуска приложения на сервере по запросу клиента. Для приложения можно создать контроллер - набор Lua-скриптов для управлением обмена сообщениями и доступа к ресурсам.
  • Добавлена поддержка внешних определителей ресурсов (External Resource Resolver), которые могут перехватывать операции с хранилищем Arcan и обрабатывать операции запроса ресурсов, например, организовать локальное кэширование или загрузку данных из Web, BitTorrent или IPFS вместо отдачи с локального диска.
  • Реализовано подобие тонких клиентов, позволяющих клиенту без полного стека Arcan (имея только просмотрщик Smash), перенести логику выполнения программ на сервер. Например, для запуска среды рабочего стола durden на сервере myserver можно выполнить "arcan-net --host-appl myserver@ durden".
  • В командную оболочку Cat9 добавлен бэкенд с отладчиком, поддерживающим протокол DAP (Debug Adapter Protocol) для локальной или удалённой отладки.
  • Добавлена большая порция изменений, связанных с развитием протокола A12, среды для выполнения скриптов на языке Lua, сетевой подсистемы, сервера каталогов для связывания компонентов, разнесённых по сети, системы разделяемой памяти Shmif и модуля egl-dri.

Одновременно опубликован выпуск среды рабочего стола Durden 0.6.3. Прошлый релиз был сформирован в 2020 году. В Durden поддерживается мозаичный и классический режимы компоновки окон с полноценными средствами управления при помощи клавиатуры. Возможна работа в системах с несколькими мониторами, имеющими разные DPI.

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

Версия 0.6.3 является подготовительным выпуском перед находящимся в разработке релизом Durden 0.7, в котором будет предложен набор существенных нововведений, таких как экранные жесты, поддержка вертикальных заголовков и панелей, компактный режим отображения заголовков и панелей, новый конфигуратор, предпросмотр по наведению мыши, экранная клавиатуры osdkbd, режим совмещения окон, поддержка синтезатора речи, интеграция компонентов a12net и a12_directory для обеспечение сетевой прозрачности и удалённого доступа.

  1. OpenNews: Выпуск десктоп-движка Arcan 0.7
  2. OpenNews: Представлены дисплейный сервер Arcan и десктоп-окружение Durden
  3. OpenNews: Проект Genode опубликовал выпуск ОС общего назначения Sculpt 25.10
Обсуждение (60 +21) | Тип: Программы |
·29.12.2025 Восьмой экспериментальный выпуск среды рабочего стола Orbitiny (68 +15)
  Опубликован восьмой выпуск среды рабочего стола Orbitiny Desktop, написанной с нуля с использованием фреймворка Qt. Проект пытается совместить некоторые инновационные идеи, которые раньше не встречались в пользовательских окружениях, с традиционными элементами, такими как панель с поддержкой плагинов, меню приложений и рабочий стол, на котором можно размещать ярлыки. Работа пока сосредоточена на запуск в окружениях на базе X-сервера, но в будущем не исключается добавление поддержки Wayland. Код написан на языке C++ и распространяется под лицензией GPL.

Из специфичных для Orbitiny возможностей отмечается: вызов действий через экранные жесты (очерчивание мышью определённого контура на пустой области рабочего стола); метки на пиктограммах (показываются для новых, изменённых, пустых или перемещённых через буфер обмена файлов, а также пустых каталогов); возможность вставки файла одновременно в несколько выбранных каталогов; поддержка размещения содержимого рабочего стола в любом каталоге (не только в $HOME/Desktop); использование отдельных десктоп-каталогов для каждого виртуального рабочего стола и монитора. Список типовых возможностей Orbitiny можно посмотреть в прошлом анонсе.

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

  • Реализован режим использования Orbitiny в качестве общесистемной среды рабочего стола с хранением настроек каждого пользователя в каталоге $HOME/.config/orbitiny. Добавлен графических инсталлятор для общесистемной установки Orbitiny. При этом сохранена и возможность запуска Orbitiny поверх существующих пользовательских окружений, таких как KDE и GNOME, а также поддержка работы в переносимом режиме, при котором все необходимые для работы файлы и программы размещаются в отдельном каталоге или на Flash-накопителе для воссоздания имеющегося окружения на другой системе.
  • Проведена реструктуризация проекта, в результате которой многие функции вынесены в отдельные приложения, не привязанные к рабочему столу. Реализован автоматический перезапуск аварийно завершившихся процессов. Сбои в таких компонентах, как панель или рабочий стол, теперь не приводят к аварийному завершению всей среды рабочего стола.
  • Добавлен движок с реализацией динамически изменяемых тем оформления. Темы теперь не определяются статически и их можно корректировать на лету через изменение CSS-файлов на диске.
  • Расширена функциональность виртуальных рабочих столов, при переключении которых теперь могут меняться каталоги с настройками и содержимым рабочего стола, т.е. виртуальный рабочий стол не ограничивается группировкой окон и может обрабатываться как обособленное окружение.
  • Добавлена поддержка отслеживания изменения настроек рабочего стола в режиме реального времени, позволяющая сразу применять изменения после редактирования файла конфигурации settings.ini.
  • Предложен новый конфигуратор (Control Panel), в интерфейсе которого используется навигация на основе пиктограмм. Функциональность конфигуратора вынесена в отдельные приложения.
  • Добавлены эффекты для плавного проявления пиктограмм при наведении на них курсора мыши, а также для отбрасывания пиктограммами тени для придания им объёма.
  • В файловый менеджер (Qutinty) добавлено отображение на пиктограммах меток для визуального выделения пустых файлов и каталогов. Реализована опция "Paste with rsync" для копирования файлов с использованием утилиты rsync. Добавлена кнопка для применения изображения в качестве обоев рабочего стола. Предложена новая тема оформления Coconut. Обеспечен запрос подтверждения при попытке удалить важные каталоги или файлы конфигурации, такие как .config, .local и Desktop.
  • В контекстное меню, выводимое для скриптов, добавлена опция "Run & Mark as Safe", позволяющая пометить скрипт безопасным и при последующих запусках не выводить диалог подтверждения операции, если контрольная сумма для файла со скриптом не изменилась.
  • Полностью переделан интерфейс для выставления обоев рабочего стола, который теперь не привязан к файловому менеджеру.
  • Добавлен менеджер панелей, позволяющий добавлять, удалять, переименовывать и активировать панели, а также создавать профили панелей, управлять плагинами и выбирать темы оформления панелей. Реализован новый интерфейс настройки панели.
  • Из LXQt портиована утилита управления звуком pavucontrol-qt.

  1. OpenNews: Седьмой экспериментальный выпуск среды рабочего стола Orbitiny
  2. OpenNews: Пятый экспериментальный выпуск среды рабочего стола Orbitiny
  3. OpenNews: Четвёртый экспериментальный выпуск среды рабочего стола Orbitiny
  4. OpenNews: Опубликована среда рабочего стола Orbitiny, использующая Qt
  5. OpenNews: Третий экспериментальный выпуск среды рабочего стола Orbitiny
Обсуждение (68 +15) | Тип: Программы |
·28.12.2025 Уязвимости в GnuPG, позволяющие обойти верификацию и выполнить свой код (168 +17)
  На проходящей в Германии конференции 39C3 (Chaos Communication Congress) раскрыты детали о 12 ранее неизвестных и остающихся неисправленными (0-day) уязвимостях в инструментарии GnuPG (GNU Privacy Guard), предоставляющем совместимые со стандартами OpenPGP и S/MIME утилиты для шифрования данных, работы с электронными подписями, управления ключами и доступа к публичным хранилищам ключей. Наиболее опасные уязвимости позволяют обойти проверку по цифровой подписи и добиться выполнения кода при обработке шифрованных данных в ASCII-представлении (ASCII Armor). Рабочие прототипы эксплоитов и патчи обещают опубликовать позднее. CVE-идентификаторы пока не присвоены.

Уязвимости вызваны ошибками в коде для обработки данных и разбора форматов, и не связаны с брешами в криптоалгоритмах. Например, ошибка в парсере приводит к сбою при определении фактически подписанных данных и создаёт условия при которых проверяемые данные могут не совпадать с подписанными данными, что позволяет атакующему подменить открытый текст без доступа к приватному ключу.

Выявленные проблемы:

  • Ошибка в коде парсера зашифрованных данных, распространяемых в формате ASCII-Armor (текстовые файлы с блоком "BEGIN/END PGP ARMORED FILE"), приводящая к записи в область памяти вне границы буфера (CVE-2025-68973). Проблема может привести к выполнению кода при обработке в gpg специально оформленных данных. Уязвимость проявляется в функции armor_filter() и вызвана двойным увеличением счётчика "n" в цикле "for" - несмотря на указание "n++" в самом цикле, счётчик увеличивается и в теле цикла при записи данных в буфер "buf[n++]". В итоге за пределы буфера записывается лишний байт, а переменная с размером "ret_len" выставляется в значение, превышающее фактическое.
  • Возможность создания или перезаписи любого файла, насколько позволяют текущее права доступа, из-за некорректной обработки содержимого поля "filename" в пакете с данными. Уязвимость может использоваться для организации выполнения кода в системе при выполнении получателем команд "gpg --decrypt poc.enc" и "gpg poc.enc" для просмотра присланного атакующим файла poc.enc. Добиться выполнения кода можно, например, через создание файлов ~/.bash_completion или ~/.ssh/authorized_keys.
  • Возможность подмены открытого текста, показываемого пользователю при указании опции "--decrypt" и верификации с использованием отдельно поставляемых цифровых подписей (Detached Signature, создаются опцией "--detach-sig" и поставляются в отдельном sig-файле). Суть проблемы в том, что при раздельной отправке сообщения и sig-файла, атакующий, контролирующий промежуточный трафик (MITM), может внести в sig-файл изменения, после которых верификация останется успешной, но при просмотре сообщения из sig-файла при помощи опции "--decrypt" будет выведено другое содержимое.
    
      echo Plaintext > plaintext
      gpg --detach-sig plaintext
    
      # изменение  plaintext.sig атакующим с добавлением дополнительного текста
    
      gpg --verify plaintext.sig plaintext # верифицировано
      gpg --decrypt plaintext.sig # верифицировано, но выводится другой текст
    
  • Возможность дополнения подписанного сообщения произвольными данными с сохранением успешной проверки подписи (CVE-2025-68972). Проблема возникает из-за обрезки данных по границе 20000 символов при вычислении хэша.
  • Некорректная проверка кодов аутентифицированного шифрования (MDC - Modification Detection Codes), позволяющая манипулировать зашифрованными пакетами так, что при расшифровке полученный контент будет обработан как другой тип пакета (например, воспринят как предназначенный для публикации открытый ключ).
  • Возможность подстановки дополнительных данных в CS-подписи (Cleartext Signature), созданные с использованием флага "--not-dash-escaped" или сконвертированные из отдельно подставляемых подписей (Detached Signature). Уязвимость может использоваться для создания у пользователя ложного впечатления о том, какие данные были фактически подписаны. Например, пользователь может загрузить из заслуживающих доверия источников корректный ключ для проверки цифровой подписи, но атакующий в ходе MITM-атаки может подменить загружаемый пользователем iso-образ и добавить в подпись к образу дополнительный хэш, таким способом, что верификация подменённого образа пройдёт успешно при наличии в системе проверочного корректного ключа.
  • Подстановка дополнительных данных в ASCII-представление CS-подписи (Cleartext Signature) через вставку символа с нулевым кодом. Уязвимость, например, позволяет вставить произвольный текст в заголовок Hash.
  • Некорректная интерпретация формата OpenPGP, из-за которой сообщение "One-Pass Signed Message" в ASCII-кодированном формате может быть обработано как сообщение "Cleartext Signature" при определённом изменении заголовка. Уязвимость позволяет заменить оригинальные подписанные данные на вредоносное содержимое, сохранив видимость успешной верификации.
  • Отсутствие явного разделения в выводе информации об успешности проверки цифровой подписи и содержимого сообщения, что позволяет создавать поддельные неподписанные сообщения, которые при выполнении "gpg --decrypt" выглядят как подлинные.
  • Возможность создания OpenPGP-сообщений, которые в gpg будут обрабатываться иначе, чем в других реализациях OpenPGP. Проблема вызвана особенностью обработки очень длинных строк в ASCII-представлени OpenPGP-данных.
  • Создание условий в процессе верификации цифровой подписи для отката алгоритма проверки хэша до небезопасного SHA1.
  • Возможность подстановки своих вторичных ключей (subkey) без их авторизации с использованием приватного компонента мастер-ключа. Атака осуществляется через добавление фальшивого хранилища ключей при помощи опции "--keyring".

Дополнительно выявлены две уязвимости в minisign, упрощённом инструментарии для создания и проверки по цифровым подписям. Обе уязвимости (1, 2) позволяют использовать управляющие последовательности терминала ("\e[1E") или спецсимволы ("\r") в поле с комментарием для модификации вывода программы, например, для замены информации о результате верификации.

Дополнение 1: Опубликован корректирующий выпуск GnuPG 2.5.15, в котором устранено несколько отмеченных уязвимостей. Наиболее опасные проблемы в парсере ASCII-Armor и обработчике поля filename были исправлены в ноябрьском выпуске 2.5.14 без информирования о том, что это уязвимости.

Дополнение 2: Доступно обновление GnuPG 2.5.16 с устранением регрессивных изменений в выпуске 2.5.15. Также опубликовал релиз стабильной ветки GnuPG 2.4.9.

  1. OpenNews: Автор GnuPG основал LibrePGP, форк стандарта OpenPGP
  2. OpenNews: Автор GnuPG прекращает передачу имущественных прав Фонду СПО
  3. OpenNews: Критическая уязвимость в библиотеке Libgcrypt 1.9.0, затрагивающая GnuPG и systemd
  4. OpenNews: Разработчики GnuPG предупредили о трудноустранимой атаке на серверы ключей
  5. OpenNews: В Libgcrypt/GnuPG выявлена уязвимость, позволяющая воссоздать RSA-ключи
Обсуждение (168 +17) | Тип: Проблемы безопасности |
·27.12.2025 Статистика по языкам программирования, используемым в экосистеме GNOME (90 +5)
  Опубликована статистика о языках программирования, задействованных в GNOME и приложениях для GNOME. Всего проект насчитывает 6.7 млн строк кода, из которых 1.6 млн приходится на приложения, а 5.1 млн на библиотеки и базовые компоненты GNOME.
  • Для библиотек GNOME по умолчанию продолжает использоваться язык Си и более 2/3 строк кода базовых компонентов GNOME написаны на данном языке. Наиболее крупными из подобных компонентов являются GTK (820 тысяч строк), GLib (560 тысяч строк) и Mutter (390 тысяч строк).
  • На Rust написано 523 тысячи строк кода, из которых примерно 400 тысяч используются в обвязках для базовых библиотек и большей частью сгенерированы автоматически. Из библиотек на Rust отмечаются Librsvg и glycin.
  • Около 190 тысяч строк написаны на языке Vala, из которых около 100 тысяч строк присутствует в репозитории Vala.
  • На Python имеется 242 тысячи строк кода, из которых 110 тысяч приходятся на приложение Orca.
  • 106 тысяч строк написаны на JavaScript и из них 65 тысяч присутствует в GNOME Shell, что составляет примерно половину от всего кода GNOME Shell.

Распределение языков программирования, используемых в библиотеках и компонентах GNOME:

Распределение языков программирования в базовых приложениях для GNOME: 44.8% кода написано на Си, 20.7% на Vala, 10.3% на Rust, 6.9% на Python, 13.8% на JavaScript и 3.45% на C++.

При рассмотрении сторонних программ, размещённых в каталоге GNOME Circle, большая часть кода (41.7%) написана на Rust, на втором месте (29.2%) - Python, а на третьем (13%) - Vala. На Си написано 6% программ, JavaScript - 10%, Crystal - 1%. Наиболее популярные программы из каталога GNOME Circle (по числу установок последнего обновления): Blanket, Eyedropper, Newsflash, Fragments и Shortwav.

  1. OpenNews: Проект GNOME запретил использование AI для генерации дополнений к GNOME Shell
  2. OpenNews: Эксперимент по использованию AI для перевода приложения с GTK2 и OpenGL на GTK4 и Vulkan
  3. OpenNews: В GNOME будет усилена зависимость от systemd
  4. OpenNews: Дистрибутив GNOME OS перешёл на стадию тестирования на реальном оборудовании
  5. OpenNews: Анализ вклада в разработку GNOME и GTK 4
Обсуждение (90 +5) | Тип: Обобщение |
·27.12.2025 Разработчики ОС QNX представили QNX Developer Desktop на основе Xfce и Wayland (142 +17)
  Представлен предварительный выпуск графической среды разработки QNX Developer Desktop, запускаемой в операционной системе QNX 8.0 и поддерживающей сборку программ для QNX без кросс-компиляции. Предполагается, что QNX Developer Desktop упростит работу новых разработчиков, занимающихся сборкой приложений для QNX, а также портированием программ и библиотек из Linux.

Пользовательское окружение построено на базе кастомизированной среды рабочего стола Xfce, работающей с использованием протокола Wayland. В состав входят средства разработки (clang, gcc, clang++, Python, make, cmake, git и т.п.), web-браузер, эмулятор терминала, порты многих интегрированных сред разработки и редакторов кода (Geany, Emacs, Neovim, vim), файловый менеджер Thunar и примеры кода на языках C, C++ и Python.

QNX Developer Desktop поставляется в самодостаточном системном образе, включающем инструменты для сборки программ для QNX 8.0 и коллекцию портированных открытых пакетов. Системный образ, пригодный для запуска в Linux-системах при помощи QEMU, доступен для бесплатной загрузки под именем "QNX SDP 8.0 Quick Start Target Image for QEMU" в приложении "QNX Software Center".

Ранее в QNX развивалась собственная среда рабочего стола Photon microGUI, которая в QNX 7 была заменена на графический фреймворк QNX Screen, ориентированный на создание предметно-ориентированных интерфейсов и не предоставляющий отдельную среду рабочего стола.

  1. OpenNews: Выпущена QNX RTOS 6.4 "Neutrino"
  2. OpenNews: Открытие исходных текстов микроядерной ОС QNX
  3. OpenNews: Открыт код файловых систем из состава ОС QNX
  4. OpenNews: Research In Motion покупает подразделение, развивающее ОС QNX
  5. OpenNews: Операционная система QNX стала бесплатной для некоммерческого использования
Обсуждение (142 +17) | Тип: Программы |
·27.12.2025 GitHub заблокировал репозиторий Rockchip после жалобы о перелицензировании кода FFmpeg (222 +70)
  GitHub заблокировал официальный репозиторий китайской компании Rockchip, в котором развивался модуль MPP (Media Process Platform) с прослойкой для доступа к возможностям ускорения обработки видео и изображений на чипах Rockchip. Блокировка произведена на основании действующего в США Закона об авторском праве в цифровую эпоху (DMCA) после жалобы от разработчиков проекта FFmpeg.

В феврале 2024 года разработчики FFmpeg выявили использование в коде модуля av1d_cbs из состава MPP нескольких тысяч строк кода, напрямую перенесённых из развиваемого проектом FFmpeg декодировщика H.265, входящего в состав библиотеки libavcodec. Код был перенесён со сменой лицензии с LGPLv2.1 на Apache 2.0, что недопустимо из-за их несовместимости.

Представитель компании Rockchip признал проблему, извинился за то, что не разобрался в несовместимости лицензий LGPL и Apache, и пообещал устранить нарушение и заменить код в грядущем обновлении. С того момента прошло почти два года, но обещание о замене кода так и не было выполнено.

Более того, дополнительный анализ показал, что похожим образом из libavcodec перенесён код ещё в 10 файлов MPP - av1d_codec.h, av1d_parser2_syntax.c, h265d_codec.h, h265d_parser.c, h265d_ps.c, vp9d_codec.h, vp9d_parser.c, vp9data.h, vpx_rac.c, vpx_rac.h. Структура кода, имена идентификаторов и комментарии в указанных файлах идентичны коду из FFmpeg, за исключением закомментированных обращений к внутренним функциям FFmpeg. При этом при переносе кода указана другая лицензия (Apache 2.0), удалено примечание об авторских правах и заменена информация об авторах.

Представители FFmpeg устали ждать обещанного устранения нарушений и отправили в GitHub DMCA-жалобу с информацией о нарушении, после которой GitHub заблокировал репозиторий. В качестве мер по устранению нарушений предлагается удалить из файлов с кодом ложные заявления об авторстве Rockchip, восстановить исходное примечание об авторстве FFmpeg и перейти на распространение кода под лицензией, совместимой с LGPLv2.1.

  1. OpenNews: Выпуск мультимедиа-пакета FFmpeg 8.0
  2. OpenNews: GitHub повторно заблокировал репозиторий проекта RE3
  3. OpenNews: GitHub заблокировал репозиторий SymPy после ложной жалобы
  4. OpenNews: В коде Winamp обнаружено нарушение лицензии GPL
  5. OpenNews: GitHub заблокировал игровой движок OpenXRay (блокировка отменена)
Обсуждение (222 +70) | Тип: К сведению | Интересно
·26.12.2025 Проект Phoenix развивает современный X-сервер, написанный на языке Zig (238 +45)
  В рамках проекта Phoenix предпринята попытка создания с нуля нового X-сервера, не использующего наработки X.org Server и нацеленного на создание современной альтернативы, расширяющей протокол X11 и предоставляющей возможности для совместимости с Wayland. На текущем этапе развития Phoenix пока не готов к повседневному использованию, но уже позволяет организовать работу с простыми приложениями, использующими для вывода графики GLX, EGL или Vulkan, при вложенном запуске Phoenix поверх существующего X-сервера. Код написан на языке Zig и распространяется под лицензией GPLv3.

В Phoenix не намерены реализовывать всю функциональность протокола X11, доступную в X.org Server, и поддерживать устаревшее оборудование. Например, вместо полной поддержки элементов протокола X11 для работы со шрифтами планируют добавить только базовые операции, востребованные в реальных приложениях. Вместо поддержки классических X.Org-видеодрайверов, для вывода графики используются Linux DRM (Direct Rendering Manager) и Mesa GBM (Generic Buffer Management).

Предполагается, что урезание функциональности не скажется на возможности запуска находящихся в обиходе приложений, даже тех, что используют GTK2. Подобный подход позволит существенно упростить реализацию, сохранив совместимость с программами, выпущенными в течение последних 20 лет, а также обеспечить работу на оборудовании, не старше 15-20 лет.

При этом в протокол X11 планируют добавить новые расширения, учитывающие современные тенденции, такие как поддержка HDR, корректная поддержка многомониторных конфигураций (раздельные фреймбуферы для каждого монитора), возможность указания DPI в привязке к мониторам, адаптивное изменение частоты обновления монитора (VRR), защиту от появления разрывов при выводе (tearing). В Phoenix также изменено поведение при обработке строк - по умолчанию используется UTF-8, а ISO Latin-1 применяется только при явном указании данной кодировки.

Для повышения безопасности приложения в Phoenix по умолчанию изолируются друг от друга и могут взаимодействовать и получать доступ к чужим окнам или событиям ввода только после явного подтверждения полномочий через специальный диалог или предоставлении прав при запуске. Для сохранения совместимости со старыми X11-клиентами, вместо вывода ошибок в случае отсутствия должных полномочий будут передаваться пустые данные. Глобальные комбинации клавиш будут работать только при удержании клавиши модификатора или предоставления отдельных прав доступа.

Для запуска приложений, поддерживающих только Wayland, планируют реализовать встроенную поддержку данного протокола или задействовать внешние прослойки, такие как 12to11.

  1. OpenNews: Разработчики openSUSE развивают zssh, реализацию SSH на языке Zig
  2. OpenNews: Выпуск языка программирования Zig 0.11.0
  3. OpenNews: Выпуск проекта XLibre XServer 25.1.0, развивающего форк X.Org Server
  4. OpenNews: Графическая система X12 начинает обретать форму
  5. OpenNews: Выпуск Wayback 0.3, прослойки для запуска рабочих столов X11, используя компоненты Wayland
Обсуждение (238 +45) | Тип: Программы |
·26.12.2025 Линус Торвальдс раскритиковал связанное с GPL разбирательство между SFС и Vizio (126 +21)
  Окружной суд штата Калифорния вынес предварительное решение в инициированном правозащитной организацией Software Freedom Conservancy (SFC) судебном разбирательстве против компании Vizio, обвиняемой в невыполнении требований лицензии GPL при распространении прошивок к умным телевизорам на базе платформы SmartCast. Суд постановил, что компания Vizio обязана предоставить доступ к исходному коду в форме, позволяющей третьим лицам загружать и изменять код. При этом суд принял ходатайство компании Vizio и согласился с тем, что применение лицензий GPLv2 и LGPLv2.1 не даёт оснований требовать у производителя информации, необходимой для установки модифицированного варианта прошивки на принадлежащий пользователю телевизор.

Производитель, использующий в своих продуктах проекты под копилефт лицензиями, обязан предоставить исходный код, включая код производных работ. Помимо этого организация SFC настаивала на том, что требование GPL о возможности модификации продукта подразумевает предоставление производителем информации, необходимой для установки модифицированных GPL-компонентов прошивки (например, предоставление ключей для перепрошивки).

Без подобной информации пользователь может самостоятельно исправить ошибки, добавить новые возможности и удалить лишнюю функциональность, но не способен воспользоваться результатом. Внесение изменений может потребоваться для защиты своей конфиденциальности, устранения своими силами проблем, которые отказывается устранить производитель, и продления жизненного цикла устройства после прекращения его официальной поддержки.

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

К обсуждению решения суда подключился Линус Торвальдс, по мнению которого обе стороны показали себя с плохой стороны и единственным компетентным участником разбирательства оказался судья. Компания Vizio не права, так как использовала Linux без предоставления кода, а организация SFC не права, так как добивалась распространения полномочий GPL на оборудование и пыталась спорить на тему того, что GPL обязывает раскрывать такую информацию, как ключи для перепрошивки.

Линус полагает, что вместо обеспечения соблюдения GPLv2, организация SFC ввязалась в отстаивание ложной интерпретации GPLv2 и продвижение некорректной повестки, противоречащей волеизъявлению действительных правообладателей. По мнению Линуса, GPLv2 не накладывает подобные обязательства и представители SFC прекрасно это знали, но в суде утверждали обратное и выглядели некомпетентно ("incompetent a**holes"). Именно по этой причине ядро остаётся только под лицензией GPLv2 и никогда не будет под GPLv3.

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

Иск против Vizio подан в 2021 году после трёхлетних попыток добиться выполнения требований лицензии GPL мирным путём. В прошивках умных телевизоров Vizio выявлены такие GPL-пакеты, как ядро Linux, U-Boot, Bash, gawk, GNU tar, glibc, FFmpeg, Bluez, BusyBox, Coreutils, glib, dnsmasq, DirectFB, libgcrypt и systemd, но компания не предоставила возможность запроса пользователем исходных текстов GPL-компонентов прошивки, а в информационных материалах не упомянула об использовании программного обеспечения под копилефт-лицензиями и предоставляемых данными лицензиями правах. Иск не предусматривает выплаты денежной компенсации, организация SFC лишь просит суд обязать Vizio выполнить условия GPL в своих продуктах и информировать потребителей о правах, которые предоставляют копилефт лицензии.

В отличие от прошлых разбирательств, иск был подан не от имени разработчика, которому принадлежат имущественные права на код, а со стороны потребителя, которому не был предоставлен исходный код компонентов, распространяемых под лицензией GPL. Изначально, компания Vizio попыталась доказать, что потребители не являются бенефициарами и не имеют прав подавать подобные иски, и добилась переноса дела в Федеральный суд, полномочный рассматривать дела в области авторского права.

Организация SFC возразила, что GPL имеет элементы договора и потребитель, которому лицензия предоставляет определённые права, является его участником и может потребовать исполнения своих прав на получение кода производного продукта. Федеральный суд согласился с возражениями SFC и в 2022 году вернул рассмотрение дела в Окружной суд штата Калифорния и упомянул в постановлении о возвращении дела о том, что GPL действует одновременно и как лицензия на использование работы, защищённой авторским правом, и как договорное соглашение.

  1. OpenNews: Новый поворот в разбирательстве, связанном с нарушением лицензии GPL компанией Vizio
  2. OpenNews: В закон DMCA внесены исключения, разрешающие замену прошивок (право на ремонт)
  3. OpenNews: Апелляционный суд встал на сторону VMware в деле о нарушении GPL
  4. OpenNews: Итоги судебного разбирательства, связанного с проектом Neo4j и лицензией AGPL
  5. OpenNews: Решение суда о неправомерности удаления дополнительных условий к лицензии AGPL
Обсуждение (126 +21) | Тип: К сведению | Интересно
·25.12.2025 Выпуск эмулятора QEMU 10.2.0 (55 +24)
  Представлен релиз проекта QEMU 10.2.0. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM в Linux, или модуля NVMM в NetBSD.

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 10.2.0 внесено более 2200 изменений от 188 разработчиков.

Ключевые улучшения, добавленные в QEMU 10.2:

  • В бэкенд 9pfs, позволяющий использовать сетевую файловую систему Plan 9 для доступа одной виртуальной машины к другой, добавлена поддержка FreeBSD.
  • Добавлен новый режим Live-миграции 'cpr-exec', позволяющий снизить потребление ресурсов во время обновления виртуальных машин и потенциально повторно использовать при обновлении существующие состояния и соединения.
  • Основной цикл обработки событий в QEMU переведён на использование интерфейса асинхронного ввода/вывода io_uring на системах с его поддержкой, что приводит к повышению производительности.
  • Улучшена эмуляция в режиме user-mode, позволяющем запускать отдельные процессы, собранные для другого CPU. Реализован системный вызов fchmodat2, добавлена поддержка флагов MADV_DONTDUMP и MADV_DODUMP, улучшена поддержка архитектур aarch64, hppa, и microblaze.
  • В эмулятор архитектуры ARM добавлена поддержка модели платы amd-versal2-virt с реализацией виртуального SoC AMD Versal. Улучшена поддержка плат 'AST2600', 'AST2700', 'AST1030' и 'xlnx-zynqmp. Реализована эмуляция расширений CPU FEAT_SCTLR2, FEAT_TCR2, FEAT_CSSC, FEAT_LSE128, FEAT_ATS1A, FEAT_RME_GPC2, FEAT_AIE, FEAT_MEC и FEAT_GCS.
  • В эмулятор архитектуры HPPA добавлена возможность эмуляции рабочей станции HP 715/64, SCSI-контроллера NCR 53c710 и контроллера ввода/вывода HP LASI.
  • В эмулятор архитектуры PowerPC добавлена поддержка CPU PowerNV11 и PPE42. Для оборудования pSeries реализован механизм FADUMP (Firmware-Assisted Dump) для создания дампов состояния после сбоя системы.
  • В эмуляторе архитектуры RISC-V реализован API MonitorDef HMP, до версии 1.7 обновлён OpenSBI (Open Supervisor Binary Interface), внесена большая порция исправлений.
  • В эмуляторе архитектуры s390x для повышения производительности virtio-pci задействована технология подстановки виртуальных прерываний при помощи irqfd.

  1. OpenNews: Опубликован эмулятор QEMU 10.1.0
  2. OpenNews: Выпуск свободного эмулятора классических квестов ScummVM 2.9.0
  3. OpenNews: Выпуск эмулятора FEX 2508, позволяющего запускать x86-программы на системах ARM64
  4. OpenNews: Выпуск эмулятора 86Box 5.3
Обсуждение (55 +24) | Тип: Программы |
·25.12.2025 Опубликован язык программирования Ruby 4.0 (153 +21)
  Состоялся релиз Ruby 4.0.0, динамического объектно-ориентированного языка программирования, сосредоточенного на высокой эффективности разработки программ и вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp. Код проекта распространяется под лицензиями BSD ("2-clause BSDL") и "Ruby", которая ссылается на последний вариант лицензии GPL и совместима с GPLv3.

Основные улучшения:

  • В состав включён новый JIT-компилятор ZJIT, позиционируемый как следующее поколение Ruby JIT. По умолчанию продолжает использоваться JIT-компилятор YJIT, а ZJIT включён в качестве опции (активируется флагом "--zjit"). Как и YJIT новый JIT-компилятор написан на языке Rust командой разработчиков из компании Shopify в рамках инициативы по увеличению производительности Ruby-программ, использующих фреймворк Rails и вызывающих очень много методов. На текущем этапе развития ZJIT быстрее интерпретатора, но пока отстаёт по производительности от YJIT (ожидается, что в Ruby 4.1 ZJIT будет стабилизирован и обгонит по производительности YJIT).

    В отличие от YJIT новый JIT-компилятор транслирует байткод виртуальной машины YARV не в низкоуровневое промежуточное представление, близкое к машинному коду, а в высокоуровневое промежуточное представление SSA (Static Single Assignment), позволяющее выполнять дополнительные фазы оптимизации и проводить оптимизацию крупных блоков кода, а не только текущих операций. Для привлечения к работе новых участников ZJIT реализует классическую архитектуру JIT, использующую накопленные интерпретатором исторические данные о типах, вместо применённой в YJIT усложнённой техники версионирования базовых блоков (LBBV - Lazy Basic Block Versioning).

  • Добавлен экспериментальный класс Ruby::Box с реализацией механизма изоляции, позволяющего разделить выполнение в одном процессе классов, модулей и monkey-патчей (подменённых методов и атрибутов классов). При помощи Ruby::Box также можно отделить выполнение кода приложения от Ruby-библиотек, обеспечить изоляцию тестов и организовать параллельное выполнение web-обработчиков в одном процессе сервера приложений (например, для постепенной замены одной версии кода на другую или обновления зависимостей). Для активации Ruby::Box следует выставить переменную окружения "RUBY_BOX=1".
    
       # foo.rb
       class String
         def self.foo = "foo"
       end
    
       # main.rb
       box = Ruby::Box.new
       box.require('foo')
    
  • Модернизирована реализация модели акторов Ractor, предоставляющая абстракцию в стиле "акторов" (ruby actor) для обеспечения потокобезопасного параллельного выполнения программы с взаимодействием между потоками через передачу сообщений. Добавлен класс Ractor::Port, решающий проблемы, связанные с отправкой и приёмом сообщений. Добавлен метод Ractor.shareable_proc для упрощения совместного доступа к объектам Proc из разных акторов. Проведена оптимизация структур данных, нацеленная на сокращение конфликтов при выставлении глобальных блокировок и повышения эффективности использования кэша CPU. В следующем году Ractor планируют перевести в разряд стабильных возможностей.
    
      port1 = Ractor::Port.new
      port2 = Ractor::Port.new
      Ractor.new port1, port2 do |port1, port2|
        port1 << 1
        port2 << 11
        port1 << 2
        port2 << 12
      end
      2.times{ p port1.receive } #=> 1, 2
      2.times{ p port2.receive } #=> 11, 12
    
  • Оператор "*nil" теперь сразу возвращает пустой массив ("[]") без промежуточного вызова метода "nil.to_a", по аналогии с тем как "**nil" сразу возвращает пустой хэш, не вызывая "nil.to_hash".
  • Разрешено разбивать строки с логическими операторами "||", "&&", "and" и "or" таким образом, что следующая строка начинается с оператора.
    
      if condition1
         && condition2
        ...
      end
    
  • Добавлены методы Array#find и "Array#rfind" для более эффективного поиска элементов в массиве, работающие быстрее, чем "array.reverse_each.find" и "Enumerable#find".
  • В число встроенных классов переведены классы Set и Pathname.
  • Расширены возможности многих базовых классов, таких как Binding, Enumerator, ErrorHighlight, Fiber, File, IO, Kernel, Math, Proc, Range, Socket, String, Thread.
  • Обновлены версии встроенных и входящих в стандартную библиотеку gem-модулей.

  1. OpenNews: Основные разработчики Ruby взяли на себя управление GitHub-репозиторием RubyGems
  2. OpenNews: Отстранённые мэйнтейнеры RubyGems.org основали альтернативный репозиторий Gem Cooperative
  3. OpenNews: Опубликован язык программирования Ruby 3.4.0
  4. OpenNews: В кодовую базу Ruby принят новый JIT-компилятор ZJIT
  5. OpenNews: Доступен встраиваемый интерпретатор mruby 3.2
Обсуждение (153 +21) | Тип: Программы |
·25.12.2025 Выпуск проекта XLibre XServer 25.1.0, развивающего форк X.Org Server (178 +57)
  После полугода разработки опубликован выпуск проекта XLibre 25.1.0, развивающего форк X.Org Server. Первый выпуск ветки XLibre XServer 25.1.0 позиционируется как имеющий качество бета-версии и предназначен для тестирования и выявления возможных недоработок. Следом планируют выпустить ещё две бета-версии, после чего в выпуске 25.1.3 объявить ветку стабильной.

Проект развивает Энрико Вайгельт (Enrico Weigelt), занимающий первое место по числу подготовленных для X-сервера изменений - до создания форка от Энрико в X.Org Server было принято около 1600 изменений и ещё более 1200 изменений включено в кодовую базу форка. Энрико также является мэйнтейнером драйверов AMD FCH GPIO и VIRTIO GPIO в ядре Linux, и мэйнтейнером Xnest

Причиной создания форка было несогласие с политикой сопровождающих X.Org, ведущей к стагнации разработки, в то время как Энрико выступал за активное продолжение развития и проведения большой чистки X-сервера. Недовольство сопровождающих в отношении Энрико, которое привело к прекращению приёма от него изменений, вызвано тем, что некоторые связанные с проведением чистки изменения приводили к проблемам, регрессиям, нарушению ABI и сбоям при сборке. Кроме того, Энрико был склонен к теориям заговора и заявлял, что компания Red Hat намеренно тормозит развитие X-сервера.

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

  • Добавлена поддержка библиотеки libseat и фонового процесса seatd, предоставляющих возможности для управления сеансом и организации доступа к совместно используемым устройствам ввода и вывода (может использоваться в качестве альтернативы компонентам управления сеансом из systemd).
  • Улучшена поддержка проприетарных драйверов NVIDIA. В дополнение к ранее поддерживаемым выпускам драйверов NVIDIA 570+, добавлена поддержка старых веток 340, 390 и 470, активируемая через указание флага "legacy_nvidia_padding" при сборке Xserver и позволяющая обойтись без выставления в директиве ServerFlags параметра IgnoreABI. На системах с драйвером NVIDIA включена поддержка архитектуры 2D-ускорения GLAMOR, которая использует OpenGL для ускорения 2D-операций (ранее поддержка GLAMOR была отключена из-за несовместимости с DDX-драйвером "modesetting" на системах с драйверами NVIDIA, теперь данная несовмесимость устранена).
  • Возвращён X-сервер Xfbdev, использующий фреймбуфер, предоставляемый устройством framebuffer (/dev/fb*) в Linux. Xfbdev может работать без графических драйверов и подходит для применения на встраиваемых системах и в окружениях с ограниченными ресурсами.
  • Добавлена поддержка платформы Cygwin (GNU-окружение для Windows).
  • Добавлена возможность задания свойства DPI в привязке к разным мониторам.
  • В драйвере dga прекращена поддержка устаревшего протокола DGA 1.0.
  • Внесено более 20 изменений, связанных с чисткой кода.
  • В системе непрерывной интеграции реализовано тестирование сборок для платформ DragonFly BSD, FreeBSD, NetBSD, Win32 (mingw32) и Cygwin (x86-64). Для DragonFly BSD, FreeBSD, NetBSD, mingw32 и Ubuntu дополнительно добавлена проверка сборки с флагом "-Werror".

  1. OpenNews: В XLibre обсуждается поддержка Vulkan через X11
  2. OpenNews: Для тестирования в Fedora предложены пакеты с альтернативным X-сервером XLibre
  3. OpenNews: Проект XLibre интегрирует драйверы в основную ветку X-сервера
  4. OpenNews: Проект X11Libre создал форк X.Org Server, избавленный от влияния корпораций
  5. OpenNews: Релиз XLibre 25.0, форка X.Org Server
Обсуждение (178 +57) | Тип: Программы |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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