Проект Wine выпустил Vkd3d 1.0 с реализацией Direct3D 12

Проект Wine представил первый релиз пакета vkd3d, предоставляющего реализацию Direct3D 12, работающую через трансляцию вызовов в API Vulkan. В состав пакета входят библиотеки libvkd3d с реализаций Direct3D 12, libvkd3d-shader c транслятором 4 и 5 модели шейдеров и libvkd3d-utils с функциями для упрощения портирования приложений Direct3D 12, а также набор демонстрационных примеров, включая порт glxgears на Direct3D 12. Код проекта распространяется под лицензией LGPLv2.1.

Библиотека libvkd3d поддерживает существенную часть возможностей Direct3D 12, включая средства для графики и вычислений, очереди и списки команд, дескрипторы и дескрипторы кучи, корневые подписи, неупорядоченный доступ, Sampler-ы, сигнатуры команд, корневые константы, непрямая (indirect) отрисовка, методы Clear*() и Copy*().

В libvkd3d-shader реализована трансляция байткода 4 и 5 моделей шейдеров в промежуточное представление SPIR-V. Поддерживаются вершинные, пиксельные, вычислительные и простые геометрические шейдеры, сериализация и десериализация корневой подписи. Из шейдерных инструкций реализованы арифметические, атомарные и битовые операции, операторы сравнения и управления потоком передачи данных, инструкции sample, gather и load, операции неупорядоченного доступа (UAV, Unordered Access View).

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

Дополнительно можно отметить выпуск проекта DXVK 0.52, нацеленного на создание реализации DXGI и Direct3D 11 поверх API Vulkan для предоставления возможности запуска 3D-приложений в Linux при помощи Wine. После доведения проекта до полнофункционального состояния, DXVK сможет использоваться в качестве основанной на Vulkan альтернативы для предоставляемой в Wine реализации D3D11, работающей поверх OpenGL. В новой версии представлена начальная поддержка DXGI 1.2 и оптимизирован рендеринг отложенных контекстов (Deferred Contexts). Указанные изменения позволили избавиться от крахов при запуске игр Bioshock 2 Remastered и Frostpunk, а также значительно повысить производительность игры Diablo 3.

Источник: [ссылка]

Стабильный выпуск новой ветки Tor 0.3.3

Доступен выпуск инструментария Tor 0.3.3.6, используемого для организации работы анонимной сети Tor. Tor 0.3.3.6 признан первым стабильным выпуском ветки 0.3.3, которая развивалась последние пять месяцев. Новая ветка примечательна появлением поддержки встраивания Tor в другие приложения и поставкой первого полнофункционального модуля на языке Rust.

Основные новшества:

  • Стабилизирован API для встраивания Tor в другие приложения (tor_api.h). Добавлены возможности перезапуска компонента Tor в том же процессе и использования предварительно аутентифицированного управляющего соединения, созданного текущим процессом (позволяет использовать один процесс для запуска и управления Tor). Контроллеры, запускающие tor при помощи интерфейса tor_api.h, теперь могут перезапустить Tor после завершения его работы (выхода из функции tor_main()). Для большинства ошибок вместо вызова exit() теперь применяется выход из функции tor_main();
  • На языке Rust переписан модуль protover, который стал первым добавленным в поставку модулем, написанным на языке Rust (ранее предлагались только тестовые модули-заглушки). Поддержка Rust по-прежнему отключена по умолчанию, для включения следует использовать сборочные опции «—enable-rust —enable-cargo-online-mode»;
  • Продолжено внесение улучшений в возможности для создания скрытых сервисов на базе третьей версии протокола. Управляющий порт (control port) теперь воспринимает команды (GETINFO, HSPOST, ADD_ONION, DEL_ONION) и события (HS_DESC, HS_DESC_CONTENT, CIRC, CIRC_MINOR) onion-сервисов v3, что позволяет создавать одноразовые сервисы на базе протокола v3. Проведена подготовка к возможности создания скрытых сервисов, работающих только через IPv6;
  • Добавлен новый 27 метод вычисления консенсуса, добавляющий учёт IPv6 ORPorts (IPv6 адрес шлюза) в microdescriptor, что позволяет упростить запуск и выбор рабочих Guard-узлов клиентами с IPv6. Также добавлен 28 метод вычисления консенсуса, который удаляет IPv6 ORPorts из microdescriptor;
  • В torrc добавлены опции HSLayer2Guards и HSLayer3Guards для закрепления в списке узлов второго и третьего хопов в цепочке проброса трафика для onion-сервисов. Данная возможность применяется в экспериментах по противостоянию атакам, базирующимся на переборе (enumeration) guard-узлов;
  • Добавлена опция ReducedExitPolicy, предоставляющая политику с урезанным списком допустимых сетевых портов для выходного узла;
  • Изменён способ вычисления значения MaxMemInQueues: По умолчанию максимальным лимит на размер потребления памяти в сетевых очередях устанавливается в 40% от общего размера памяти для систем с 8 ГБ ОЗУ и более. Для остальных систем, как и раньше, лимит выставляется в 75% от размера ОЗУ.

Источник: [ссылка]

Открыт код классического почтового клиента Eudora

Компания Qualcomm передала музею компьютерной истории исходные тексты, торговую марку, домены eudora.com/eudora.org и все права на один из старейших графических почтовых клиентов Eudora (первый релиз был выпущен в 1988 году). Музей также получил право перелицензировать код и опубликовать его под лицензией BSD. Перед публикацией код очищен от использования обсценной лексики в комментариях, что было одним из условий открытия кода. Из кода также удалены сторонние проприетарные компоненты, на открытие которых у Qualcomm нет прав.

Код версии для Windows написан на языке Си и занимает 122 Мб в архиве (458 Мб в распакованном виде, 8651 файлов и 565 каталогов, включающих ветки Eudora71 и Sandbox). Для Macintosh использовалась отдельная кодовая база на языке Си (23 Мб в архиве, 69.9 Мб в раскрытом виде, 1433 файлов, 47 каталогов). Разработка Eudora была прекращена в 2006 году, но версию для Windows после незначительных правок смогли запустить в Windows 10. Для актуализации версии для Mac требуются более серьёзные изменения.

Примечательно, что код тестового выпуска Eudora 8.0 был открыт под свободными лицензиями MPL, LGPL и GPL ещё в 2007 году и передан проекту Mozilla, в котором под именем Penelope несколько лет на базе тестовой ветки Eudora и Thunderbird развивался гибридный продукт на платформе Mozilla. Ветка Eudora 8.0 была полностью переработана, несовместима на уровне хранилища и предлагала существенно иной интерфейс, который не был принят пользователями, привыкшими к отточенному и функциональному старому интерфейсу. Последний классический выпуск 7.1.0.9 оставался проприетарным продуктом и его код стал доступен только сейчас.

Источник: [ссылка]

Выпуск Kata Containers 1.0 с изоляцией на основе виртуализации

Состоялся первый выпуск проекта Kata Containers, в рамках которого развивается стек для организации выполнения контейнеров с использованием изоляции на базе полноценных механизмов виртуализации, созданный компаниями Intel и Hyper путём объединения технологий Clear Containers и runV. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Развитие проекта курирует рабочая группа, созданная под эгидой независимой организации OpenStack Foundation, в которой участвуют такие компании, как Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE и ZTE.

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

Kata Containers ориентирован на интеграцию в существующие инфраструктуры контейнерной изоляции c возможностью применения подобных виртуальных машин для усиления защиты традиционных контейнеров. Проектом предоставляются механизмы для обеспечения совместимости легковесных виртуальных машины с различными инфраструктурами контейнерной изоляции, платформами оркестровки контейнеров и спецификациями, такими как OCI (Open Container Initiative), CRI (Container Runtime Interface) и CNI (Container Networking Interface). Доступны средства для интеграции с Docker, Kubernetes, QEMU и OpenStack.

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

Системное окружение включает в себя только демон инициализации и агент (Аgent). Агент обеспечивает выполнение определённых пользователем образов контейнера в формате OCI для Docker и CRI для Kubernetes. При использовании совместно с Docker для каждого контейнера создаётся отдельная виртуальная машина, т.е. запускаемое поверх гипервизора окружение применяется для вложенного запуска контейнеров.

В условиях выполнения большого числа типовых окружений, накладные расходы на каждое последующее окружение составляет 18-20 Мб, что даёт возможность уместить 3500 виртуальных машин на сервере с 128 Гб ОЗУ. Окружение запускается менее, чем за 100ms, что позволяет использовать Kata Containers для запуска контейнера с приложениями на лету, в моменты, когда в них возникает необходимость. В качестве гипервизора по умолчанию предлагается использовать KVM в сочетании с инструментарием QEMU, но проект изначально позиционируется как не привязанный к конкретным архитектурам и способный работать с различными гипервизорами (например, Xen).

Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Samepage Merging), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.

Источник: [ссылка]

Релиз фреймворка Qt 5.11

После полугода разработки представлен релиз кроссплатформенного фреймворка Qt 5.11. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.

Основные новшества:

  • В движке QML отмечаются серьёзные внутренние изменения: полностью переписаны стадии парсинга и компиляции QML, что отразилось в увеличении производительности и удобства сопровождения. Новый компилятор теперь формирует на базе QML не привязанный к конкретной платформе байткод, который может кэшироваться в файлах qmlc.

    Байткод также можно компилировать отдельно при помощи qmlcompiler и включать в поставку продукта. Для выполнения байткода применяется новый интерпретатор, который на 80-90% опережает по производительности интерпретатор, применявшийся в прошлом выпуске. Поверх интерпретатора байткода применяется Hotspot JIT, во всех областях обгоняющий по производительности старый JIT;

  • В Qt Quick добавлена поддержка загрузки сжатых текстур, поставляемых в форматах ktx и pkm, что позволяет сократить потребление памяти и ускорить запуск приложения за счёт применения формата изображений, который напрямую может быть обработан GPU, без отдельных стадий распаковки изображений jpeg/png;
  • Представлена порция мелких улучшений в Qt Core, например, добавлены новые методы для более полной совместимости с STL. Классы QChar, QString, QTextBoundaryFinder, а также алгоритм обработки двунаправленного текста, приведены к полной совместимости со спецификацией Unicode 10;
  • В Qt Quick Controls 2 добавлено множество мелких новшеств и исправлений, таких как свойство auto-repeat для кнопок, улучшенное позиционирование для ScrollBars и более качественная настройка стилей для SpinBoxes;
  • Значительно переработан диалог вывода на печать для платформы Linux, расширена поддержка всех опций, предоставляемых системой печати CUPS;
  • В Qt Widgets проведена работа по устранению ошибок. В классе QLineEdit добавлена поддержка режима быстрого выделения текста мышью;
  • В Qt Location добавлена экспериментальная поддержка пошаговой навигации (turn-by-turn). Представлен API для создания картографических объектов, не привязанных к классу QQuickItems. Значительно увеличена производительность объектов MapPolyline, в которых также появилась поддержка слоёв в комбинации с элементами объекта Map. API Routing и Places доработаны для поддержки расширений, добавлен новый элемент WayPoint. В плагине MapBox появилась поддержка геокодирования и объектов Places;
  • Qt WebEngine обновлён до кодовой базы Chromium 65. Добвлена поддержка встроенных инструментов для web-разработчиков, не требующая запуска отдельного браузера;
  • В набор Qt for Device Creation, предназначенный для создания полноценных загрузочных мобильных систем с окружением на базе Qt и QML, добавлена возможность использования графических слоёв на базе оборудования, поддерживающего аппаратный композитинг (VSP2), что позволяет повысить производительность, снизить энергопотребление и реализовать такие возможности как вывод видео в нижележащем слое;
  • В классе SerialBus улучшена поддержка CAN Bus, а в Bluetooth поддержка BTLE. Обновлён модуль QtKNX с поддержкой одноимённого стандарта для управления домашней автоматизацией. Добавлен экспериментальный модуль с поддержкой промышленного коммуникационного стандарта OPC/UA;
  • В Qt Network для платформы iOS добавлена поддержка TLS-расширения ALPN, применяемого для установки защищённого соединения в HTTP/2. В QNetworkRequest добавлена операция Http2DirectAttribute для запуска сеанса HTTP/2 без первого согласования соединения;
  • Расширена поддержка средств для людей с ограниченными возможностями, предоставляемых на платформе Windows. Связанный с accessibility код полдностью переписан с использованием Microsoft UI Automation вместо старого фреймворка Microsoft Active Accessibility;
  • Проведена работа по улучшению стилей виджетов на платформе Windows, при использовании экранов с высокой плотностью пикселей (High-DPI);
  • Утилита qdoc переведена на libclang для разбора кода на C++
  • Удалена поддержка некоторых старых компиляторов и платформ, включая MSVC 2013, QNX 6.6 и macOS 10.10;
  • Представлена экспериментальная версия Qt для WebAssembly, которая позволяет компилировать графические приложения на базе Qt в виде модулей на WebAssembly, которые можно запускать непосредственно в web-браузере. Для компиляции применяется Emscripten. OpenGL транслируется в WebGL. Из поддерживаемых классов отмечаются QtBase, QtDeclarative, QtCharts, QtGraphicalEffects, QtQuickControls, QtQuickControls2, QtWebSockets, QtMqtt;
  • Проходит тестирование Qt for Python, набор модулей для создания графических приложений на языке Python с использованием Qt5. На текущем этапе содержимое Qt for Python полностью аналогично PySide2.

Источник: [ссылка]

Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU

Компании Intel, ARM и AMD раскрыли информацию о двух новых уязвимостях в механизме спекулятивного выполнения инструкций. Для полного устранения проблем требуется установка обновления микрокода и внесение изменений на стороне операционной системы. Бета-версия обновления микрокода Intel пока предоставлена только OEM-производителям. Для ядра Linux уже предложены необходимые патчи (защита действует только при обновлённом микрокоде). Обновления пакетов с ядром сформированы для RHEL и Ubuntu, и ожидаются для Debian и SUSE. По предварительной оценке исправление проблем приведёт к снижению производительности на 2-8%.

Нераскрытыми остаются детали о ещё 6 уязвимостях (четыре с высоким уровнем опасности, а две со средним), публикация детальной информации по которым ожидается в августе, после истечения эмбарго. Раскрытым уязвимостям присвоен средний уровень опасности. Первая из раскрытых проблем (Spectre 3a, буква добавлена чтобы избежать путаницы, так как вариант 3 может трактоваться как уязвимость Meltdown) позволяет прочитать содержимое системных регистров, а вторая (Spectre 4) даёт возможность прочитать данные из закрытых областей памяти. Проблемы не специфичны для архитектуры x86 и кроме процессоров Intel и AMD, также проявляются в CPU ARM и IBM (POWER 8, POWER 9, System z).

Определённую опасность представляет Spectre 4 (CVE-2018-3639, SSB — Speculative Store Bypass) — метод атаки напоминает Spectre 1, но базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи. Если после вычисления смещения выявлено пересечение областей памяти для записи и чтения, процессор просто отбросит уже спекулятивно полученный результат чтения и повторит эту операцию.

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

Практически атака Spectre 4 осуществима только в рамках привилегий одного уровня, т.е. привилегии атакующего должны допускать доступ к исследуемой памяти. Наиболее опасным применением уязвимости является атака на браузеры и системы совместного изолированного выполнения кода (например, JVM, изоляция кода в sandbox, системы с JIT). В контексте браузера атака позволяет получить доступ к памяти с данными других вкладок при помощи выполнения JavaScript-кода, но возможность проведения атак по восстановлению содержимого кэша уже достаточно эффективно блокируется в актуальных выпусках web-браузераов, благодаря ограничению точности таймера.

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

Проблема независимо выявлена исследователями Google Project Zero и Microsoft Security Response Center (MSRC). Для защиты на уровне операционной системы для процессоров Intel предложена техника SSBD (Speculative Store Bypass Disable), основывающаяся на применении нового MSR-бита, который будет доступен после обновления микрокода. Так как блокирование проблемы сопряжено с потерей производительности, а тотальная защита от Spectre 4 не всегда целесообразна, в исправлении для ядра Linux предусмотрена опция speculative_store_bypass_disable, позволяющая отключить защиту. В случае активации защиты для приложений предложен новый интерфейс prctl, при помощи которого программы могут определять наличие защиты и выборочно отключать её для отдельных процессов.

Что касается Spectre 3a (CVE-2018-3640, RSRE — Rogue System Register Read), то уязвимость может привести к чтению содержимого системных регистров с информацией о состоянии оборудования, доступ к которым имеется только у ядра, драйверов и гипервизоров. Проблема выявлена исследователями из компании SYSGO AG.

Дополнительно можно отметить публикацию исследователей из компании Eclypsium, которые показали, что уязвимость Spectre v1 может применяться для атаки на режим системного управления процессора SMM (System Management Mode), более приоритетного, чем режим гипервизора и нулевое кольцо защиты. В ходе эксперимента была продемонстрирована возможность восстановления данных из SMRAM (System Management RAM), области физической памяти в которой сохраняются данные SMM.

Источник: [ссылка]

Выпуск десктоп-окружения LXQt 0.13

Представлен релиз пользовательского окружения LXQt 0.13 (Qt Lightweight Desktop Environment), развиваемого объединённой командой разработчиков проектов LXDE и Razor-qt. Интерфейс LXQt продолжает следовать идеям классической организации рабочего стола, привнося современное оформление и приёмы, увеличивающие удобство работы. LXQt позиционируется как легковесное, модульное, быстрое и удобное продолжение развития рабочих столов Razor-qt и LXDE, вобравшее лучшие черты обеих оболочек. Код размещён на GitHub и поставляется под лицензиями GPL 2.0+ и LGPL 2.1+. Появление готовых сборок ожидается для Ubuntu, Arch Linux, Fedora, openSUSE, Mageia, FreeBSD, ROSA и ALT Linux.

Особенности выпуска:

  • Проведена адаптация всех компонентов для использования Qt 5.11;
  • В состав проекта приняты менеджер процессов qps и программа для создания скриншотов screengrab;
  • Механизм кэширования содержимого меню переведён в разряд опциональных и отключен по умолчанию в панели и интерфейсе запуска приложений (runner) для предотвращения утечек памяти и обхода проблем при перезапуске или завершении работы LXQt;
  • Изменён процесс сборки, который теперь производится только в режиме out-of-source, при котором сборка производится из отдельного каталога с сохранением генерируемых объектных и исполняемых файлов в новые подкаталоги, отдельно от файлов с исходными текстами;
  • Библиотека libfm-qt, которая предоставляет привязки для Qt, используемые в процессе работы файлового менеджера PCManFM, теперь более самодостаточна и меньше привязана к libfm, что положительно сказалось на производительности и гибкости использования. Обзор изменений в libfm-qt и libfm можно найти в тексте анонса PCManFM 1.3;
  • В liblxqt добавлены средства управления фоновой подсветкой и возможность отключения монитора;
  • В панели в контекстное меню, отображаемое для запущенных приложений, добавлены операции перемещения окна и изменения его размера;
  • Улучшена интеграция между плагином для отображения состояния раскладки на панели и настройками клавиатуры;
  • В qterminal добавлен редактор ярлыков, обеспечено закрытие вкладки по клику средней кнопкой мыши, предоставлена возможность изменения цвета вкладки, улучшена заметность активной вкладки;
  • В qtermwidget улучшено оформление, задействована новая цветовая тема, добавлена корректная поддержка символов UTF-32, улучшена поддержка FreeBSD;
  • Улучшено качество переводов;
  • Улучшена реализация свойства LXQtCompilerSettings;
  • Базовые настройки по умолчанию перенесены в каталог /usr/share/lxqt, для их переопределения дистрибутивы могут использовать каталог /etc/lxqt;
  • Повышены требования к зависимостям: для сборки нужен как минимум Qt 5.7.1, пакеты lxqt-* теперь требуют liblxqt >= 0.9.0, lximage-qt, lxqt-qtplugin и pcmanfm-qt — libfm-qt >= 0.13.0, а qterminal — qtermwidget >= 0.9.0;
  • Добавлены новые зависимости: liblxqt и lxqt-admin теперь напрямую зависят от libpolkit-qt5-1.

Сообщается, что уже началась работа над выпуском LXQt 1.0.0, главной задачей которого является доведение до полной готовности возможности работы поверх Wayland.

Источник: [ссылка]

Компания Tesla частично опубликовала GPL-код для формирования системного окружения

Организация Software Freedom Conservancy сообщила об успешном продолжении урегулирования вопроса по соблюдению компанией Tesla условий лицензии GPL. Первые замечания о нарушении лицензии GPL в информационных системах автомобилей Tesla, в которых активно используется Linux и открытое ПО, были направлены ещё в 2013 году, но только сейчас компания начала публикацию исходных текстов системных компонентов, в которых используется свободное программное обеспечение, распространяемое под копилефт лицензиями, требующими открытия кода производных работ.

Компания Tesla публично признала наличие проблем с соблюдением условий GPL и инициировала программу постепенного устранения нарушений. Первым шагом стала публикация репозиториев с кодом ядра Linux и окружением buildroot. Компоненты buildroot применяются для создания системного образа платформы Autopilot, а ядро Linux применяется кроме данной платформе ещё и в информационно-развлекательном окружении Tesla Model S/X, построенном на SoC NVIDIA Tegra (по неофициальным сведениям данное IVI-окружение основано на Ubuntu).

Опубликованный код соответствует выпуску платформы 2018.12 и будет регулярно обновляться по мере формирования новых релизов. Опубликованные материалы не включают проприетарные компоненты, которые используются в формируемом на базе открытого ПО системном окружении, такие как драйверы NVIDIA и программный стек Autopilot. Работа по выполнению требований GPL ещё не завершена и в ближайшее время можно ожидать публикацию исходных текстов других подсистем.

Отмечается, что со времени первого обращения Software Freedom Conservancy в Telsa в июне 2013 года проводилась совместная работа по урегулированию вопроса полной публикации исходных текстов для всех исполняемых файлов на основе GPL-кода, созданных сторонними подрядчиками, такими как NVIDIA и Parrot. Периодически для рецензирования в Software Freedom Conservancy в частном порядке передавались промежуточные варианты наборов с кодом GPL-компонентов, но положение дел лишь перешло со стадии «отсутствие кода» к «предоставлению неполных исходных текстов», а Software Freedom Conservancy добивался приведения продуктов к полному соответствию с GPL и открытию всех необходимых исходных текстов, без каких либо исключений.

Главными требованиями к набору опубликованных исходных текстов является его пригодность для сборки исполняемых файлов, которые должны полностью соответствовать исполняемым файлам поставляемым Tesla, и возможность замены файлов Telsa на файлы, собранные из исходных текстов (в том числе с возможностью внесения в них изменений), пользуясь предоставленными Telsa инструкциями по сборке.

Несколько дней назад компания Tesla решила пойти другим путём и опубликовала в открытом доступе текущие неполные наборы исходных текстов, намереваясь постепенно доводить их до должного состояния и предоставив сообществу возможность контролировать дальнейший ход работы. Для обсуждения кода Tesla и его соответствия требованиям GPL создан специальный список рассылки. Первым письмом в рассылке опубликован отчёт с анализом остающихся проблем с соблюдением GPL.

Software Freedom Conservancy приветствует решение Tesla о публичном освещении хода проекта по приведению разработок в соответствие с требованиями GPL. Обычно компании предпочитают проводить подобную работу без лишней огласки, лишний раз не привлекая внимание к своим оплошностям. В качестве примера адекватного публичного признания своих ошибок также отмечается компания Samsung, которая пять лет назад полностью признала правоту Software Freedom Conservancy после инцидента с драйвером exFAT (Samsung согласился, что проприетарный драйвер является производной разработкой от ядра Linux и открыл его код под GPL).

Источник: [ссылка]

Выпуск графического редактора GIMP 2.10.2

Представлен новый выпуск графического редактора GIMP 2.10.2, который в основном носит корректирующий характер и устраняет 44 проблемы, выявленные в релизе GIMP 2.10. Кроме исправления ошибок в новой версии также представлено несколько новшеств:

  • Добавлена поддержка формата изображений HEIF, который использует методы внутрикадрового кодирования из HEVC;
  • Добавлен фильтр Spherize для оборачивания изображения вокруг сферического колпака. Фильтр основан на операции gegl:spherize;
  • Добавлен фильтр рекурсивной трансформации (Recursive Transform) для создания эффекта Дросте. Фильтр основан на операции gegl:recursive-transform;
  • Налажен процесс создания скриншотов одного выбранного окна в Windows, если это окно выходит за край экрана или частично перекрывается другими окнами;
  • Вычисление гистограмм перенесено в отдельные потоки, что позволило избавиться от подвисаний интерфейса в определённых случаях;
  • Актуализирована документация на формат XCF.

Также отмечается успешное продвижение работы над веткой GIMP 3, в которой будет проведена значительная чистка кодовой базы и осуществлён переход на GTK3+. За месяц в новую ветку было добавлено более 200 коммитов.

Источник: [ссылка]

Релиз Mesa 18.1.0

После двух месяцев разработки опубликован релиз свободной реализации API Vulkan и OpenGL — Mesa 18.1. Первый выпуск ветки Mesa 18.1.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 18.1.1.

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

  • Для драйвера i965 включена по умолчанию система кэширования шейдеров на диске;
  • В реализацию OpenGL 3.1 добавлена поддержка расширения ARB_compatibility. Некоторые драйверы не поддерживали данное расширение (расширение ARB_compatibility появилось в OpenGL 3.2), что ограничивало их использованием OpenGL 3.0 в случае если приложение не запросило поддержку профиля «Core». Например, из-за отсутствия ARB_compatibility возникали проблемы с созданием OpenGL-контекста, если приложение запросило OpenGL 3.1 и не выставило флаг совместимости с будущими выпусками. Изменение внесено для драйверов nv50, nvc0, r600, radeonsi, softpipe, llvmpipe и svga;
  • В Vulkan-драйверы RADV (для карт AMD) и ANV (для карт Intel) добавлена поддержка API Vulkan 1.1;
  • Добавлена реализация упрощённого экранного монитора, отображающего основные параметры работы графической подсистемы поверх текущего изображения (heads-up display, HUD). Режим активируется через переменную окружения GALLIUM_HUD, занимает минимум экранного пространства и позволяет выборочно выводить отдельные параметры, например, для вывода данных о частоте кадров можно указать «GALLIUM_HUD=simple, fps»;
  • В драйвере R600 для GPU Radeon HD 5800/6900 обеспечена поддержка OpenGL 4.4;
  • В драйверы radeonsi и radv добавлена поддержка GPU AMD Vega M и Vega 12;
  • Добавлена поддержка появившихся в X.Org Server 1.20 расширений DRI 1.1 и 1.2 с возможностью использования технологии синхронизации DMA-буферов («DMA Fences»);
  • Для видеокарт AMD добавлена поддержка аппаратного ускорения кодирования HEVC и декодирования VP9 при помощи движков VCN (Video Core Next);
  • В драйвер nvc0 для GPU maxwell+ добавлена поддержка расширения GL_ARB_bindless_texture, которое пока не является частью стандарта OpenGL и OpenGL ES;
  • В драйвер nvc0 добавлено расширение GL_ARB_transform_feedback_overflow_query, определённое в OpenGL 4.6;
  • В драйвер radeonsi добавлена поддержка расширений GL_EXT_semaphore и GL_EXT_semaphore_fd, которые появятся в будущей версии стандарта OpenGL. Также в radeonsi добавлена поддержка нестандартного расширения GL_KHR_blend_equation_advanced;
  • В драйвере i965 появилась поддержка расширения GL_EXT_shader_framebuffer_fetch_non_coherent, а для OpenGL добавлена поддержка расширения GL_EXT_shader_framebuffer_fetch, которое ранее было предложено только для OpenGL ES;
  • Из Xlib libGL удалены недоделанные реализации расширений GLX_SGIX_swap_barrier и GLX_SGIX_swap_group.

Источник: [ссылка]

Выпуск Coreboot 4.8

Опубликован релиз проекта CoreBoot 4.8, в рамках которого разрабатывается свободная альтернатива проприетарным прошивкам и BIOS. В создании новой версии приняло участие 124 разработчика, которые подготовили 1198 изменений.

Основные новшества:

  • Добавлена поддержка 17 материнских плат:
    • Asus MAXIMUS_IV_GENE_Z (Intel Sandybridge)
    • Google ATLAS (Intel Kabylake)
    • Google BIP (Intel Geminilake)
    • Google CHEZA (Qualcomm SDM845)
    • Google NOCTURNE (Intel Kabylake)
    • Google OCTOPUS (Intel Geminilake)
    • Google PHASER (Intel Geminilake)
    • Google YORP (Intel Geminilake)
    • HP 8770W (Intel Ivybridge)
    • HP FOLIO_9470M (Intel Ivybridge)
    • Intel KBLRVP8 (Intel Skylake)
    • Lenovo W520 (Intel Sandybridge)
    • OCP MONOLAKE (Intel Broadwell DE)
    • OCP WEDGE100S (Intel Broadwell DE)
    • Purism Librem 15 v2 (Intel Broadwell)
    • Scaleway TAGADA (Intel Denverton)
    • SiFive HIFIVE_UNLEASHED (SiFive FU540)
  • Добавлена поддержка SoC Qualcomm sdm845 и SiFive fu540;
  • Для платформы Intel i945 убран код инициализации графики, что позволило ускорить выход из ждущего режима (S3) приблизительно на 100 мс. Инициализация графики делегирована на уровнь драйвера в ОС (в Linux эту операцию выполняет драйвер i915);
  • Для платформы AMD Stoney Ridge проведена чистка старых платформ на базе AGESA, устранены проблемы, связанные с работой ждущего режима (S3);
  • В код поддержки материнских плат Lenovo началась интеграция бинарных файлов VBT (Video Bios Table) для проведения инициализации графики;
  • Все платформы Intel переведены на типовую кодовую базу VBT (Video Bios Table);
  • Проведено удаление дублирующегося кода для платформы Intel;
  • Обработчик «payload» переименован в «simple_elf»;
  • Обработчик SeaBIOS обновлён до версии 1.11.1;
  • Улучшена интеграция с TianoCore;
  • Начался процесс рефакторинга стека TPM (Trusted Platform Modules). Код верифицированной загрузки (VBoot) и TPM перемещён в каталог src/security;
  • В утилиту Intelmetool добавлена поддержка оценки состояния Intel Boot Guard;
  • Удалена поддержка 39 материнских плат:
    • Abit BE6_II_V2_0
    • AMD DINAR
    • AMD RUMBA
    • Asus DSBF
    • Asus MEW_AM
    • Asus MEW_VM
    • A-trend ATC_6220
    • A-trend ATC_6240
    • AZZA PT_6IBD
    • Biostar M6TBA
    • Compaq DESKPRO_EN_SFF_P600
    • DMP EX
    • ECS P6IWP_FE
    • Gigabyte GA_6BXC
    • Gigabyte GA_6BXE
    • HP E_VECTRA_P2706T
    • Intel D810E2CB
    • Intel EAGLEHEIGHTS
    • Intel MTARVON
    • Intel TRUXTON
    • Iwave RAINBOW_G6
    • Lanner EM8510
    • Lippert FRONTRUNNER
    • Mitac 6513WU
    • MSI MS_6119
    • MSI MS_6147
    • MSI MS_6156
    • MSI MS_6178
    • NEC POWERMATE_2000
    • Nokia IP530
    • RCA RM4100
    • Soyo SY_6BA_PLUS_III
    • Supermicro H8QGI
    • Supermicro H8SCM
    • Supermicro X7DB8
    • Thomson IP1000
    • Tyan S1846
    • Tyan S8226
    • Wyse S50
  • Удалена поддержка SoC DMP vortex86ex и Intel sch;
  • Удалена поддержка 5 процессоров: AMD agesa-family15, AMD geode-gx2, Intel ep80579, Intel model-f0x и Intel model-f1x.

Источник: [ссылка]

Тестирование рабочего стола KDE Plasma 5.13

Доступна для тестирования бета-версия пользовательской оболочки Plasma 5.13, построенной с использованием платформы KDE Frameworks 5 и библиотеки Qt 5 с применением OpenGL/OpenGL ES для ускорения отрисовки. Протестировать новый выпуск можно через Live-сборку от проекта openSUSE и сборки от проекта KDE Neon. Пакеты для различных дистрибутивов можно найти на данной странице. Релиз ожидается 12 июня.

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

Ключевые улучшения:

  • Представлен набор интеграции браузеров с рабочим столом Plasma, предлагающий улучшения для использования Firefox, Chrome и браузеров на базе Chromium. Среди предоставляемых набором возможностей: отображение информации о загрузках во всплывающих уведомлениях Plasma (по аналогии с уведомлениями о копировании файлов в Dolphin), возможность переключения на следующий просматриваемый в браузере видеоролик или прослушиваемую музыкальную композицию через плазмойд Media Controls, поддержка отправки ссылки на смартфон с мобильным приложением KDE Connect, возможность открытия вкладок в браузере через интерфейс KRunner (Alt-Space). Набор оформлен в виде плагинов для различных браузеров;
  • Изменено оформления конфигуратора и осуществлён перевод на использование фреймворка Kirigami, позволяющего создавать адаптивные интерфейсы, работающие без изменения на настольных и мобильных системах. Обновлены многие инструменты, такие как выбор тем оформления и наборов пиктограмм. На страницу выбора заставки добавлена поддержка загрузки заставок с каталога KDE Store. На страницу настройки шрифтов добавлен предпросмотр настроек субпиксельного сглаживания;
  • Представлено новое оформления приглашения для входа в систему и экрана блокировки системы, на которых теперь по умолчанию отображаются обои текущего релиза Plasma. Для блокировщика экрана добавлен эффект плавного затухания и размытия при отображении элементов управления, что позволяет использовать его в качестве хранителя экрана;
  • В композитном менеджере KWin существенно улучшены эффекты размытия и переключения между рабочими столами. Продолжено усовершенствование работы с использованием протокола Wayland: задействованы высокоприоритетные контексты EGL, добавлена начальная поддержка скринкастов и совместного доступа к рабочему столу;
  • Улучшен интерфейс центра установки приложений и дополнений (Discover): Осуществлён переход на фреймворк Kirigami. Модернизирован внешний вид списков и категорий, в которых вместо больших картинок-баннеров задействованы панели, добавлена поддержка сортировки списков, задействован виджет Kirigami Cards. В списках и на страницах приложений добавлен вывод рейтинга программы. Пиктограммы приложений теперь выводятся с учётом активного набора пиктограмм, установленного пользователем для рабочего стола. На страницах с информацией о приложении добавлен вывод всех метаданных AppStream, включая все виды ссылок. В окружении Arch Linux после завершения обновления обеспечен вывод лога Pacman;

    Улучшена поддержка самодостаточных форматов пакетов. Для пакетов snap теперь можно менять настройки доступа и устанавливать snap-пакеты в классическом режиме. Добавлена поддержка типа URL ‘snap://’. Для пакетов Flatpak предоставлена возможность выбора предпочтительного репозитория для установки. В пакет xdg-desktop-portal-kde, используемый для обеспечения интеграции приложений Flatpak и Snap с рабочим столом, добавлены порталы для предоставления доступа для создания скриншотов и скринкастов;

  • Добавлена предварительная поддержка глобального меню GTK, возможен перенос меню в верхнюю панель или отображение в виде кнопки в заголовке окна;
  • Изменён интерфейс виджета управления воспроизведением мультимедийного контента (Media Player Widget);
  • Добавлен новый диалог настройки параметров экрана, всплывающий при первом подключении внешнего монитора;
  • В плагине с реализацией кланедаря-планировщика обеспечен показ астрономических событий (фаз луны, дней равноденствия и максимального/минимального солнцестояния);
  • В виджет с часами добавлена поддержка копирования текущей даты и времени в буфер обмена;
  • На всплывающие уведомления добавлена кнопка для очистки истории;
  • Для KRunner представлены плагины для упрощения доступа к профилям терминала Konsole и интерфейсу выбора символов;
  • Страница настройки параметров мыши переделена и переведена на использование libinput для X и Wayland;
  • В Plasma Vault (интерфейс для шифрования конфиденциальных данных) добавлен бэкенд CryFS, появилась возможность закрытия шифрованных хранилищ со смартфона через приложение KDE Connect, обеспечена поддержка offline-хранилищ;
  • Добавлена возможность отката на программную отрисовку, в случае невозможности использования драйверов OpenGL или их сбоя.

Источник: [ссылка]