· | 13.10 |
Владельцы Wordpress заменили на свой форк плагин ACF, имеющий 2 млн установок (106 +8) |
|
Начавшийся в сентябре конфликт между компаниями Automattic и WP Engine получил неожиданное продолжение - компания Automattic, курирующая разработку платформы Wordpress и официального каталога плагинов Wordpress.org, объявила о создании форка одного из популярнейших плагинов -
ACF (Advanced Custom Fields), развиваемого компанией WP Engine, насчитывающего более 2 млн. установок и распространяемого под лицензией GPLv2. Возмущение в сообществе вызвало то, что владельцы Wordpress.org не просто создали отдельный форк "Secure Custom Fields" но и заменили им страницу на Wordpress.org основного плагина ACF, инициировав таким образом переход пользователей на форк.
Подобное действие было объяснено заботой о безопасности и необходимостью доведения до пользователей исправления уязвимости, которая оставалась неустранённой в версии ACF, распространяемой через каталог Wordpress.org. В объявлении о создании форка также упоминается, что разработчики ACF заявили о переходе на доставку обновлений плагина со своего сайта вместо доставки обновлений через WordPress.org, но представители WordPress.org не рекомендуют переходить пользователям на предложенную разработчиками ACF собственную систему обновлений, пока они не устранят уязвимость в плагине. Утверждается, что совершённая подмена плагина является исключительной ситуацией, подкрепляемой юридическими нападками компании WP Engine, развивающей плагин ACF. Кроме устранения уязвимости в форке была проведена чистка от привязок к сервисам WP Engine.
Нелепость ситуации в том, что за несколько недель до этого компания Automattic сама заблокировала доступ разработчиков ACF к Wordpress.org, поэтому сопровождающие ACF не имели возможность опубликовать обновление с устранением уязвимости на Wordpress.org, но при этом разместили исправление на своём сайте и рекомендовали установить его вручную или через альтернативный собственный каталог WP Engine. Обновление с устранением уязвимости в ACF было подготовлено за 5 дней до объявления Automattic о создании форка.
Захват пользовательской базы и страницы ACF на Wordpress.org стал продолжением конфликта между компанией WP Engine и Мэттом Мулленвегом, основателем платформы Wordpress и владельцем компании Automattic. С 2011 года Мэтт Мулленвег являлся инвестором компании WP Engine, но ушел из числа инвесторов в 2018 году, после попадания WP Engine в область интересов инвестиционной компании Silver Lake. Помимо разработки плагина ACF, компания WP Engine также развивает платформу хостинга проектов на движке Wordpress, конкурирующую с Wordpress.com
Конфликт активировался после того, как организация WordPress Foundation в июне подала заявку на регистрацию товарных знаков "Managed WordPress" и "Hosted WordPress", которые использовались на сайте WP Engine. 20 сентября Мэтт Мулленвег выступил на конференции WordComp с критикой деятельности WP Engine и опубликовал статью с пояснением, что WP Engine не имеет никакого отношения к официальному проекту Wordpress, несмотря на риторику и маркетинг WP Engine, пытающийся убедить пользователей в обратном.
Также было высказано недовольство слабой вовлечённостью WP Engine в разработку - при выручке 500 млн. долларов данная компания вкладывает примерно 40 часов в неделю в разработку платформы WordPress, при том, что вклад Automattic оценён в 3915 часов в неделю. В статье WP Engine сравнивался c раковой опухолью и упоминалось, что для продолжения бизнеса компании WP Engine теперь потребуется лицензия на товарный знак WordPress. Ссылка на статью появилась в виджете новостей в панели администратора на всех установках WordPress, включая установки в хостинге WP Engine.
23 сентября компания WP Engine направила Automattic официальное внесудебное требование (Cease and Desist) прекратить ложные, вводящие в заблуждение и порочащие репутацию заявления. В ответ, компания Automattic потребовала у WP Engine прекратить использование товарного знака Wordpress и внесла изменение в правила использования товарных знаков, упоминающее название "WP Engine" в качестве примера введения в заблуждение пользователей из-за стилизации под официальный движок WordPress.
25 сентября для WP Engine был заблокирован доступ к ресурсам, распространяемым через сайт Wordpress.org, включая доступ к обновлениям с исправлениями уявзимостей, плагинам и темам оформления. В этот же день в каталоге Wordpress.org были заблокированы учётные записи сотрудников WP Engine, что не позволяло им публиковать обновления к плагину ACF. 27 сентября блокировка доступа WP Engine к ресурсам частично была убрана, но затем опять возобновлена 1 октября.
2 октября компания WP Engine подала судебный иск против Automattic и Мэтта Мулленвега. Компания Automattic в ответ отвергла все обвинения. Из Automattic уволилась исполнительный директор Джозефа Хейден (Josephа Haden) и ещё 158 сотрудников (из примерно 1700), не согласных с позицией в отношении WP Engine. 5 октября компания Automattic публично раскрыла сведения об уязвимости в плагине ACF в нарушение своего кодекса поведения, а 8 октября изменила страницу входа на сайт WordPress.org, на которой появилась необходимость подтверждения отсутствия связи с компанией WP Engine. 7 октября компания WP Engine подготовила обновление ACF с устранением уязвимости, а 12 октября компания Automattic заявила о создании форка и подменила на него страницу плагина ACF в каталоге Wordpress.org.
- Главная ссылка к новости
- OpenNews: Взлом провайдера GoDaddy, приведший к компрометации 1.2 млн клиентов WordPress-хостинга
- OpenNews: Зафиксирована массовая атака на сайты с необновлённым движком WordPress
- OpenNews: Создан ClassicPress, форк WordPress с классическим web-редактором
- OpenNews: Выявлена скупка плагинов к WordPress для распространения вредоносного кода
- OpenNews: В WordPress молча устранена уязвимость, позволяющая изменить любую страницу
|
|
Обсуждение (106 +8) |
Тип: Тема для размышления |
Интересно
|
| |
|
|
· | 12.10 |
Выпуск Distrobox 1.8, инструментария для вложенного запуска дистрибутивов (37 +6) |
|
Опубликован инструментарий Distrobox 1.8, позволяющий быстро установить и запустить в контейнере любой дистрибутив Linux и обеспечить его интеграцию с основной системой. Код проекта написан на Shell и распространяется под лицензией GPLv3.
Проект предоставляет надстройку над Docker, Podman или Lilipod и отличается максимальным упрощением работы и интеграции запущенного окружения с остальной системой. Для создания окружения с другим дистрибутивом достаточно выполнить одну команду distrobox-create, не задумываясь о тонкостях. После запуска Distrobox обеспечивает проброс домашнего каталога пользователя в контейнер, настраивает доступ к серверу X11 и Wayland для выполнения из контейнера графических приложений, позволяет подключать внешние накопители, добавляет вывод звука, реализует интеграцию на уровне SSH-агента, D-Bus и udev.
В Distrobox заявлена возможность использования в качестве хост-системы 26 дистрибутивов, включая Alpine, Manjaro, Gentoo, EndlessOS, NixOS, Void, Arch, SUSE, Ubuntu, Debian, RHEL и Fedora. В контейнере может быть запущен любой дистрибутив для которого имеются образы в формате OCI. После установки пользователь может полноценно работать в другом дистрибутиве не покидая основную систему.
Из основных областей применения называются эксперименты с атомарно обновляемыми дистрибутивами, такими как Endless OS, Fedora Silverblue, OpenSUSE MicroOS и SteamOS3, создание отдельных изолированных окружений (например, для запуска домашней конфигурации на рабочем ноутбуке), доступ к более свежим версиям приложений из экспериментальных веток дистрибутивов.
В новом выпуске:
- Улучшена интеграция с GPU NVIDIA.
- Улучшено управление переменными окружения XDG_DATA_DIRS и XDG_DATA_HOME.
- Добавлена возможность указания внешних ini-файлов с конфигурацией контейнеров (манифестом) для команды "distrobox assemble". Например, "distrobox assemble create --file https://foo.com/file.ini".
- Добавлена поддержка запуска в контейнерах дистрибутива
Universal Blue и системных образов toolbx-images.
- Добавлена поддержка новых версий Fedora, Ubuntu, Alpine и
Wolfi.
- Главная ссылка к новости
- OpenNews: Выпуск непрерывно обновляемого дистрибутива Rhino Linux 2024.1
- OpenNews: Разработчики Manjaro Linux представили атомарно обновляемый вариант дистрибутива
- OpenNews: Релиз дистрибутива Vanilla OS 2, использующего контейнеры и атомарные обновления
- OpenNews: Релиз дистрибутива blendOS 4, поддерживающего пакеты из Arch, Fedora, Debian, CentOS и Ubuntu
- OpenNews: Выпуск Distrobox 1.7, инструментария для вложенного запуска дистрибутивов
|
|
|
| |
|
|
· | 12.10 |
Выпуск Wayland-Protocols 1.38 (130 +9) |
|
Опубликован выпуск пакета wayland-protocols 1.38, содержащего набор протоколов и расширений, дополняющих базовый протокол Wayland и предоставляющих возможности, необходимые для построения композитных серверов и пользовательских окружений.
Все протоколы последовательно проходят три фазы - разработка, тестирование и стабилизация. После завершения стадии разработки (категория "unstable") протокол помещается в ветку "staging" и официально включается в состав набора wayland-protocols, а после завершения тестирования перемещается в категорию стабильных. Протоколы из категории "staging" уже можно применять в композитных серверах и клиентах, где требуется связанная с ними функциональность. В отличие от категории "unstable" в "staging" запрещено внесение изменений, нарушающих совместимость, но в случае выявление проблем и недоработок в ходе тестирования, не исключается замена новой значительной версией протокола или другим Wayland-расширением.
В новой версии в категорию "staging" добавлены протоколы:
- xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов. Форма вывода сигнала определяется на усмотрение композитного менеджера, это может быть не только звук, но визуальный отклик.
- fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности. С практической стороны протокол позволяет при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
- commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).
В настоящее время в состав wayland-protocols входят следующие стабильные протоколы, в которых обеспечивается обратная совместимость:
- "viewporter" - позволяет клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера.
- "presentation-time" - обеспечивает отображение видео.
- "xdg-shell" - интерфейс создания и взаимодействия с поверхностями как с окнами, что позволяет их передвигать по экрану, сворачивать, разворачивать, изменять размер и т.д.
- "linux-dmabuf" - обеспечивает совместное использование нескольких видеокарт при помощи технологии DMA-BUF (позволяет создать wl_buffer на базе DMA-BUF).
- "tablet" - организация ввода с графических планшетов.
Протоколы, тестируемые в ветке "staging":
- drm-lease - предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
- "ext-session-lock" - определяет средства блокировки сеанса, например, во время работы хранителя экрана или вывода диалога аутентификации.
- "single-pixel-buffer" - позволяет создавать однопиксельные буферы, включающие четыре 32-разрядных значения RGBA.
- "xdg-activation" - позволяет передать фокус между разными поверхностями первого уровня (например, при помощи
xdg-activation одно приложение может переключить фокус на другое).
- content-type - позволяет клиентам передать композитному серверу сведения об отображаемом содержимом, которые могут использоваться для оптимизации поведения с учётом содержимого, например, выставлении специфичных DRM-свойств, таких как "content type". Заявлена поддержка следующих типов контента: none (нет сведений о типе данных), photo (вывод цифровых фото, требующий минимальной обработки), video (видео или анимация, требуется более точная синхронизация, чтобы исключить подтормаживания) и game (запуск игр, требуется вывод с минимальной задержкой).
- ext-idle-notify - даёт возможность композитным серверам передавать клиентам уведомления о неактивности пользователя, что может использоваться для активации дополнительных режимов энергосбережения после определённого времени неактивности.
- tearing-control - позволяет отключить в полноэкранных приложениях вертикальную синхронизацию (VSync) с кадровым гасящим импульсом, применяемую для защиты от появления разрывов при выводе (tearing). В мультимедийных приложениях появление артефактов из-за разрывов является нежелательным эффектом, но в игровых программах с артефактами можно смириться, если борьба с ними приводит к дополнительным задержкам.
- ext-foreign-toplevel-list - получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон.
- security-context - позволяет идентифицировать клиентов, использующих sandbox-изоляцию. Клиент может зарегистрировать новое подключение к композитному серверу на базе Wayland и прикрепить к нему контекст безопасности, после чего в соответствии с указанным контекстом безопасности композитный менеджер ограничит возможности, доступные для установленного соединения.
- cursor-shape - альтернативный способ настройки внешнего вида курсора, основанный на передаче серии изображений курсора вместо привязки к поверхности (wl_surface).
- "ext-transient-seat" - предназначен для создания временных независимых сеансов (seat), рассчитанных на использование вместе с виртуальными устройствами ввода. Например, при реализации возможности подключения к удалённому рабочему столу протокол позволяет создать для каждого пользователя отдельный сеанс с виртуальными клавиатурой и мышью.
- "xdg-toplevel-drag" - расширяет механизм "drag & drop" возможностью прикрепления окон верхнего уровня к операции перемещения, что может быть использовано, например, для организации перетаскивания мышью панелей инструментов или вкладок браузера. Новый протокол позволяет создавать отсоединяемые части окна, которые при перетаскивании из этого окна становятся новыми окнами и могут перемещаться поверх существующего окна перед повторным прикреплением.
- "xdg-dialog" - позволяет назначать поверхностям верхнего уровня признаки, специфичные для диалоговых окон, например, можно создавать модальные диалоги, которые блокируют взаимодействие пользователя с остальной частью интерфейса.
- "linux-drm-syncobj" - предоставляет инструменты для явной синхронизациии буферов при помощи объектов синхронизации DRM (Direct Rendering Manager). Предполагается, что в контексте синхронизации при отрисовке в буфер предложенный протокол позволит улучшить работу с драйверами на базе графических API Vulkan и OpenGL (реализация базируется на обработчиках в драйверах). Новый протокол даёт возможность убедиться, что операция отрисовки в буфер завершена до того, как композитный менеджер отобразит данный буфер.
- alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
- xdg-toplevel-icon - привязка пиктограммы к окну верхнего уровня.
-
ext-image-capture-source и ext-image-copy-capture - организация захвата контента, выводимого на экран.
Протоколы, разрабатываемые в ветке "unstable":
- "fullscreen-shell" - управление работой в полноэкранном режиме.
- "input-method" - обработка методов ввода.
- "idle-inhibit" - блокировка запуска скринсейвера (экранной заставки).
- "input-timestamps" - временные метки для событий ввода.
- "keyboard-shortcuts-inhibit" - управление прикреплением клавиатурных комбинаций и горячих клавиш.
- "linux-explicit-synchronization" - специфичный для Linux механизм синхронизации буферов в привязке к поверхности.
- "pointer-gestures" - управление с сенсорных экранов.
- "pointer constraints" - ограничения указателей (блокировка).
- "primary-selection" - по аналогии с X11 обеспечивает работу первичного буфера обмена (primary selection), вставка информации из которого обычно осуществляется средней кнопкой мыши.
- "relative pointer events" - относительные события указателей.
- "text-input" - организация ввода текста.
- "xdg-foreign" - интерфейс взаимодействия с поверхностями "соседнего" клиента.
- "xdg-decoration" - отрисовка декораций окон на стороне сервера.
- "xdg-output" - дополнительные сведения о видеовыходе (используется для дробного масштабирования).
- "xwayland-keyboard-grab" - захват ввода в приложениях XWayland.
Дополнительно можно отметить предложение сотрудника компании Valve по добавлению ещё одной фазы продвижения новых протоколов Wayland - "experimental", которая позволит снизить барьер включения протоколов в состав набора Wayland-Protocols и ускорить их внедрение. В настоящее время для попадания протокола в фазу staging требуется сформировать команду поддержки и получить определённое число подтверждений (ACK) от участников рецензирования. В "experimental" предлагается принимать протокол не через получение подтверждений, а на основании отсутствия возражений (NACK) в течение двухнедельного периода рецензирования. При необходимости участники рецензирования также могут продлить обсуждение ещё на две недели, выставив статус "WAIT".
В фазе "experimental" также предлагается разрешить внесение изменений нарушающих совместимость и добавление "сырых" протоколов, которые можно будет постепенно доводить до должного уровня. Таким образом, фаза "experimental" позволит быстро доводить до разработчиков новые прототипы протоколов, стимулировать их реализацию в существующих проектах и получать обратную связь от пользователей. Предлагаемый процесс должен избавить разработчиков протоколов от длительных обсуждений и волокиты, перед принятием в состав Wayland-Protocols. Например, принятые в нынешний выпуск протоколы xdg-system-bell, fifo и commit-timing обсуждались более года.
- Главная ссылка к новости
- OpenNews: Компания Valve запустила проект Frog для ускорения продвижения новых протоколов Wayland
- OpenNews: Выпуск Wayland-Protocols 1.37
- OpenNews: Доступен Wayland 1.23
- OpenNews: Выпуск композитного сервера Weston 14.0
|
|
|
| |
|
|
· | 12.10 |
Уязвимости в Libarchive, приводящие к выходу за границы буфера (51 +7) |
|
В библиотеке Libarchive, предоставляющей функции для работы с различными форматами архивов и сжатых файлов, выявлены уязвимости, приводящие к выходу за границы буфера при обработке специально оформленных архивов в формате RAR. Уязвимости присутствуют в функциях execute_filter_audio (CVE-2024-48957) и execute_filter_delta (CVE-2024-48958) и вызваны отсутствием проверки, что блок "src" может перекрывать блок "dst" в повреждённых архивах.
Уязвимости устранены в версии Libarchive 3.7.5, в которой также исправлено более десятка ошибок, приводящих к выходу за границы буфера, обращению к уже освобождённой памяти или целочисленным переполнениям при обработке файлов в форматах cpio, lzop, rpm, zip, uu и rar. Исправления помечены как проблемы с безопасностью, но без присвоения CVE-идентификаторов. Пока не ясно можно ли эксплуатировать данные проблемы для организации выполнения кода при обработке специально оформленных файлов.
Libarchive используется как зависимость во многих популярных пакетах, например, в smbclient, flatpak, appstream, libappimage, dpdk, cmake, rpm, nix, pacman, elfutils, unrar, claws-mail, ark, epiphany, evince, vagrant, vlc, mpv, gvfs, fwupd, systemd (опционально) и file-roller (менеджер архивов в GNOME).
Проследить за появлением обновлений в дистрибутивах можно на следующих страницах: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
- Главная ссылка к новости
- OpenNews: Уязвимости в cpio и libarchive
- OpenNews: Серия уязвимостей в Libarchive
- OpenNews: Вышел релиз gzip 1.4 с исправлением опасной уязвимости
- OpenNews: Релиз bzip2 и libbz2 1.0.6 с исправлением серьезной уязвимости
- OpenNews: Уязвимость Zip Slip, затрагивающая библиотеки для распаковки архивов
|
|
|
| |
|
|
· | 12.10 |
Сформированы сборки KDE Neon на базе Ubuntu 24.04 (30 +7) |
|
Разработчики проекта KDE Neon, формирующего Live-сборки с актуальными версиями программ и компонентов KDE, объявили о переводе сборок на использование LTS-выпуска Ubuntu 24.04. Для загрузки предложено несколько вариантов сборок KDE Neon: User Edition на базе последних стабильных релизов KDE, Testing Edition на базе тестовых веток KDE с ещё не перенесёнными в стабильные выпуски исправлениями ошибок, Unstable Edition на базе находящихся в разработке веток репозитория, в которые переносятся новые возможности, и Developer Edition дополняющий Unstable Edition библиотеками для разработчиков.
Проект KDE neon создан Джонатаном Ридделом (Jonathan Riddell), смещённым с поста лидера дистрибутива Kubuntu, с целью предоставления возможности установки свежих версий программ и компонентов KDE. Сборки и связанные с ними репозитории KDE Neon по возможности обновляются сразу после выхода релизов KDE, заметно раньше чем новые версии KDE появляются в репозиториях дистрибутивов.
- Главная ссылка к новости
- OpenNews: Экспериментальные сборки KDE Neon с KDE 6
- OpenNews: KDE neon объявил о прекращении формирования LTS-сборок
- OpenNews: В KDE Neon реализована поддержка offline-обновлений
- OpenNews: В основные нестабильные сборки KDE Neon Developer Edition добавлена поддержка Wayland
|
|
|
| |
|
|
· | 12.10 |
Выпуск пакетного менеджера RPM 4.20 и начало разработки RPM 6 (119 +13) |
|
После года разработки состоялся релиз пакетного менеджера RPM 4.20.0. Проект RPM4 развивается компанией Red Hat и используется в таких дистрибутивах, как RHEL, Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS и Tizen. Код проекта распространяется под лицензиями GPLv2 и LGPLv2.
В следующем году ожидается публикация значительной ветки RPM 6, в которой будет задействован новый формат архива, позволяющий в отличие от ныне используемого формата cpio создавать пакеты размером более 4 ГБ (преодоление данного ограничения важно так как SRC-пакет с Chromium близок к пределу и имеет размер 3.7 ГБ). В новой ветке также намерены разрешить использование языка C++ для разработки RPM. Новая значительная ветка будет приурочена юбилею проекта - 27 ноября 2025 году исполнится 30 лет с момента первого коммита в RPM. Версии RPM 5.x будут пропущены для исключения пересечений с проектом RPM5, который непосредственно не связан с RPM от Red Hat, развивался независимой командой разработчиков и не обновляется с 2016 года.
Наиболее заметные улучшения в RPM 4.20:
- В состав включена новая утилита rpm2archive, которая пришла на смену утилите rpm2cpio и в дальнейшем упростит переход на новый формат пакетов, не использующий cpio. В отличие от rpm2cpio новая утилита преобразует RPM-файл не в архив cpio, а в архив в формате tar, сжатый при помощи gzip. Старая утилита rpm2cpio заменена символической ссылкой на rpm2archive.
- Предложена декларативная система сборки, основанная на использовании новой директивы "BuildSystem", через которую может быть определена система сборки, используемая при формировании пакета. Исходный код автоматически подготавливается, компилируется и устанавливается с учётом указанной системы сборки, без необходимости отдельного определения в SPEC-файле скриптов подготовки, сборки и установки в блоках "%prep", "%build" и "%install". В RPM поддерживаемые системы сборки определяются в форме коллекций макросов.
Основная идея в том, что декларативный формат настройки позволит разработчикам дистрибутивов создавать отдельные макросы для типовых процессов сборки, чтобы не определять повторяющиеся сценарии в каждом пакете. Например, вместо определения последовательностей запуска команд configure и make для программ, использующих Autotools, теперь достаточно указать "BuildSystem: autotools" и обойтись без секций "%prep", "%build" и "%install".
В настоящее время подобные макросы подготовлены для Autotools и CMake. При необходимости реализации нестандартного поведения сопровождающим пакеты предоставлена возможность подключения своих макросов для переопределения разных стадий формирования пакета.
- Добавлена поддержка прикрепления дополнительных секций c командами подготовки, сборки, установки, настройки, очистки и проверки, дополняющих базовые секции %prep, %conf, %build, %install, %check и %clean. Для запуска дополнительного скрипта перед выполнением кода из базовой секции предложена опция "-p", а после базовой секции - опция "-a". Подобные подстановки могут оказаться полезными для точечной корректировки поведения при использовании вышеописанного декларативного режима сборки.
- В динамически формируемые части SPEC-файлов разрешено включать директивы и секции, не влияющие на процесс сборки.
- Добавлен макрос %builddir и реализована управляемая через RPM возможность привязки своих сборочных каталогов к отдельным пакетам.
- Предложен новый протокол "multi-file", значительно ускоряющий генерацию зависимостей.
- В команду rpm добавлена опция "--json" для вывода результатов запросов в формате JSON.
- Добавлен плагин rpm-plugin-unshare, обеспечивающий изоляцию скриптов, выполняемых в сборочных секциях, используя пространства имён в Linux. Например, плагин позволяет запретить доступ к сети и ограничить доступ к файловой системе, а также использовать отдельные приватные каталоги /tmp и /home для защиты на случай небезопасной работы со временными файлами при сборке пакетов.
- Предложен публичный API для разработки плагинов, который будет сохранять совместимость между релизами. Раньше API для плагинов был рассчитан только на внутреннее использование и мог меняться от релиза к релизу.
- В команду rpmkeys добавлены опции "--list" и "--delete".
- В команду rpmsign добавлена поддержка создания цифровых подписей для пакетов, используя ключи ECDSA.
- Улучшена поддержка повторяемых сборок. Добавлен макрос "%build_mtime_policy", позволяющий управлять содержимом добавляемых при сборке меток со временем (через значение clamp_to_source_date_epoch можно использовать фиксированную метку, а через clamp_to_buildtime указывать фактическое время сборки).
- В файлах sysusers.d разрешено добавлять строки для определения членов группы.
- Обеспечена корректная и независимая от дистрибутивов поддержка файлов debuginfo.
- Объявлен устаревшим синтаксис макросов %patchN (без пробела перед N), использование которого теперь будет приводить к ошибке (следует использовать синтаксис "%patch N" или "%patch -P N", где N - номер патча).
- Удалён устаревший парсер OpenPGP.
- Генераторы зависимостей для Perl и Python ABI вынесены в отдельные репозитории.
- Главная ссылка к новости
- OpenNews: Выпуск пакетного менеджера RPM 4.19
- OpenNews: Представлен KOP3, репозиторий для RHEL8, дополняющий EPEL и RPMForge
- OpenNews: В Fedora 41 утверждён переход на пакетный менеджер DNF5
- OpenNews: Началось тестирование переработанного интерфейса пакетного менеджера APT 3.0
- OpenNews: Выпуск пакетного менеджера Pacman 7.0
|
|
|
| |
|
|
· | 11.10 |
Выпуск игрового движка Open 3D Engine 24.09, открытого компанией Amazon (62 +17) |
|
После года разработки некоммерческая организация Open 3D Foundation (O3DF) опубликовала выпуск открытого игрового 3D-движка Open 3D Engine 24.09 (O3DE), пригодного для разработки современных игр класса AAA и высокоточных симуляторов, способных работать в режиме реального времени и обеспечивать качество кинематографического уровня. Код написан на С++ и опубликован под лицензией Apache 2.0. Имеется поддержка платформ Linux, Windows, macOS, iOS и Android.
Исходные тексты движка O3DE были открыты в июле 2021 года компанией Amazon и основаны на коде ранее развиваемого проприетарного движка Amazon Lumberyard, построенного на технологиях движка CryEngine, лицензированных у компании Crytek в 2015 году. После открытия развитие движка курирует некоммерческая организация Open 3D Foundation, созданная под эгидой Linux Foundation. Помимо Amazon к совместной работе над проектом подключились такие компании, как Epic Games, Adobe, Huawei, Microsoft, Intel и Niantic.
Движок включает в себя интегрированную среду для разработки игр, многопоточную систему фотореалистичного рендеринга Atom Renderer с поддержкой Vulkan, Metal и DirectX 12, расширяемый редактор 3D-моделей, систему анимирования персонажей (Emotion FX), систему разработки полуфабрикатов (prefab), движок симуляции физических процессов в реальном режиме времени и математические библиотеки, использующие инструкции SIMD. Для определения игровой логики может использоваться среда визуального программирования (Script Canvas), а также языки Lua и Python.
Проект изначально рассчитан на возможность адаптации под свои нужды и имеет модульную архитектуру. Всего предлагается более 30 модулей, поставляемых в виде отдельных библиотек, пригодных для замены, интеграции в сторонние проекты и использования по отдельности. Например, благодаря модульности разработчики могут заменить рендер графики, звуковую систему, поддержку языков, сетевой стек, физический движок и любые другие компоненты.
Среди изменений в новой версии:
- Добавлена возможность создавать проекты с готовым инсталлятором, не требующие компиляции кода на C++ и содержащие только скрипты на Lua и Script Canvas.
- Существенно ускорен запуск редактора - для крупных проектов с большим числом ассетов сокращение времени запуска может достигать 90%.
- Добавлен высокопроизводительный конвейер рендеринга для мобильных устройств (Mobile Render Pipeline), позволяющий до 400% повысить производительность игр для iOS, Android и устройств виртуальной/дополненной реальности. Значительно снижено потребление памяти в системе рендеринга.
- В бэкенды DX12 и Vulkan добавлена поддержка геометрических шейдеров и шейдеров пересечений (intersection shader).
- Для использования в симуляторах добавлен компонент Georeference, поддерживающий разбор данных в формате Gazebo, а также компонент ROS2FrameComponent.
- Версии движка симуляции физических процессов PhysX 4 и PhysX 5 разделены на отдельные пакеты, что позволило упростить переключение между версиями
PhysX в готовых сборках игр.
- Добавлен графический интерфейс для экспорта проекта, поддерживающий экспорт для iOS, Android, Linux и Windows.
- Добавлены настройки, позволяющие значительно (до 90%) сократить размер сервера для работы в режиме без экрана (headless).
- Добавлены специфичные для мобильных устройств графические конвейеры (rendering pipeline), позволяющие пользователю легко включать и выключать различные возможности рендеринга.
- Предоставлены настройки качества, привязываемые к возможностям устройств. Например, доступно три уровня производительности (низкий, средний и высокий), выбираемые в зависимости от параметров CPU, GPU и памяти.
- Предложено несколько вариантов шейдеров, позволяющих при отрисовке автоматически выбирать наиболее производительный шейдер, подходящий для заданных параметров рендеринга.
- Реализована техника "Entity Silhouette", позволяющая выделить границы объекта, например, для определения какие части объекта должны быть отрисованы, а какие можно игнорировать.
- Добавлен фреймворк для взаимодействия с большими языковыми моделями машинного обучения.
- При высокой нагрузке на CPU для предотвращения разрыва сетевого соединения по таймауту реализована отправка heartbeat-пакетов.
- Добавлена поддержка изображений в формате PGM.
- Главная ссылка к новости
- OpenNews: Выпуск игрового движка Open 3D Engine 23.10, открытого компанией Amazon
- OpenNews: Amazon опубликовал открытый игровой движок Open 3D Engine на базе технологий CryEngine
- OpenNews: Ассоциация K-D Lab открыла код игрового движка qdEngine
- OpenNews: Открыт код игрового движка Dagor Engine, который будет использован VK в Nau Engine
- OpenNews: Выпуск открытого игрового движка Godot 4.3
|
|
|
| |
|
|
· | 11.10 |
Уязвимости в прошивках и драйверах для чипов Qualcomm (81 +12) |
|
Компания Qualcomm раскрыла сведения о 20 уязвимостях в прошивках и драйверах для своих чипов, большинство из которых используются в устройствах на базе платформы Android. Одной проблеме присвоен критический уровень опасности, 12 - высокий и 7 - средний. Отдельно выделена уязвимость CVE-2024-43047, которая по данным группы анализа угроз из компании Google уже применяется для совершения атак (0-day) спецслужбами и поставщиками программ, шпионящих за пользователями.
Уязвимость присутствует в открытом драйвере FastRPC для DSP-чипов Qualcomm, применяемом для организации выполнения операций на стороне DSP. Проблема вызвана обращением к памяти после её освобождения и позволяет локальному атакующему инициировать повреждение памяти и выполнение кода на уровне привилегированного системного сервиса, взаимодействующего с DSP. Исправление доступно в виде патча, который ещё не интегрирован в прошивки производителей устройств, использующих DSP от Qualcomm (например, уязвимый драйвер применяется во многих Android-смартфонах). Проблема затрагивает более 60 моделей чипов, среди которых серии FastConnect и Snapdragon.
Что касается критической уязвимости CVE-2024-33066, то она выявлена группой Claroty Research и доведена до производителя в рамках инициативы Trend Micro Zero Day. Уязвимость может быть эксплуатирована удалённо через беспроводную сеть. Проблема вызвана некорректной проверкой входных параметров во WLAN Resource Manager, что может привести к перенаправлению файла с логом в любой файл в системе. Проблема затрагивает системы с чипами различных серий Immersive Home, IPQxxxx,
QCAxxxx, QCFxxxx, QCNxxxx, SDXxx и Snapdragon X65 5G Modem-RF.
Также выделяются 11 опасных уязвимостей, приводящих к повреждению памяти в проприетарных компонентах, закрытом драйвере камеры и открытых компонентах для беспроводной сети, GPU и DSP Qualcomm.
- Главная ссылка к новости
- OpenNews: Уязвимости в драйвере к GPU ARM, уже применяемые для совершения атак
- OpenNews: Уязвимость в чипах Qualcomm и MediaTek, позволяющая перехватить часть трафика WPA2
- OpenNews: Уязвимость в ALAC-декодировщиках MediaTek и Qualcomm, затрагивающая большинство Android-устройств
- OpenNews: Уязвимость LeftoverLocals в GPU AMD, Apple, Qualcomm и Imagination
- OpenNews: Уязвимость в чипах Qualcomm, позволяющая атаковать Android-устройство через Wi-Fi
|
|
Обсуждение (81 +12) |
Тип: Проблемы безопасности |
|
| |
|
|
· | 11.10 |
Microsoft начал продвижение в ядро Linux компонентов хост-окружения Hyper-V (167 –5) |
|
Компания Microsoft предложила для включения в основной состав ядра Linux первую серию патчей, связанных с работой в качестве хост-окружения (Dom0, root partition) для гипервизора Hyper-V. Хост-окружение отвечает за управление гипервизором, организацию запуска гостевых систем, выделение ресурсов и обеспечение взаимодействия виртуальных машин с оборудованием.
Изначально возможность использования Linux в роли хост-окружения для системы виртуализации Hyper-V была представлена в 2020 году и уже применяется в инфраструктуре Microsoft, но до сих пор развивалась в форме отдельных патчей. Новая инициатива направлена на интеграцию данных патчей в основной состав ядра. Необходимость использования Linux для управления гипервизором Hyper-V обусловлена желанием упростить сопровождение и повысить производительность серверов, обслуживающих облачные системы Microsoft, в условиях того, что с 2018 года число гостевых систем с Linux в облачном сервисе Azure превышает число окружений с Windows.
Начальный набор патчей пока ограничивается добавлением заголовочных файлов, используемых в гипервизоре Hyper-V и дополняющих ранее включённые в ядро заголовочные файлы, применяемые в драйверах для гостевых систем. SPEC-файл пакета с ядром 5.15, включающим реализацию хост-окружения для гипервизора Hyper-V, можно найти в репозитории дистрибутива Azure Linux, но использование устройства /dev/mshv для управления Hyper-V пока не документировано.
Драйверы Hyper-V для гостевых систем были добавлены в ядро Linux в 2009 году и поставляются начиная с выпуска 2.6.32.
- Главная ссылка к новости
- OpenNews: Проект Xen празднует окончание интеграции полной поддержки Dom0 и DomU в Linux-ядро
- OpenNews: Во FreeBSD Current реализована работа Xen dom0
- OpenNews: Microsoft опубликовал дистрибутив Azure Linux 3.0
- OpenNews: Компания Microsoft представила новую версию свободных Hyper-V-драйверов
- OpenNews: Microsoft реализовал поддержку корневого окружения для Hyper-V на базе Linux
|
|
|
| |
|
|
· | 11.10 |
Проект Asahi Linux подготовил инструментарий для запуска Windows-игр (119 +19) |
|
Разработчики проекта Asahi Linux, выполняющего портирование Linux для компьютеров Mac с ARM-чипами Apple, представили инструментарий для запуска современных компьютерных игр в Linux-окружениях, работающих на системах с чипом Apple M1. Речь про игры класса AAA, доступные в каталоге Steam и собранные для архитектуры x86_64. Инструментарий обеспечивает интеграцию созданных проектом драйверов, реализующих API Vulkan 1.3 и OpenCL 3.0, с компонентами, обеспечивающими эмуляцию архитектуры x86_64 и совместимость с Windows.
Необходимые для работы пакеты уже добавлены в штатный репозиторий дистрибутива Fedora Asahi Remix - для запуска игр достаточно обновить драйверы командой "dnf upgrade --refresh" и установить Steam командой "dnf install steam" и она подтянет все необходимые зависимости. Используемый для запуска игр стек построен на основе Vulkan-драйвера Honeykrisp, эмулятора FEX, позволяющего выполнять x86-приложений на системах ARM, проекта Wine и прослоек DXVK и vkd3d-proton с реализацией API DirectX поверх Vulkan.
Из-за дополнительных накладных расходов, вызванных эмуляцией, рекомендуется наличие в системе 16 ГБ ОЗУ. Проблемы с выравниванием из-за несоответствия размера страниц памяти, используемого в операционной системе и необходимого приложениям (программы собранные для x86 рассчитаны на страницы 4К, в то время как на системах Apple используются страницы 16K), удалось решить через запуск в виртуальном окружении второго ядра Linux, собранного с другим размером страниц памяти. Для запуска игр в отдельных виртуальных машинах со своим ядром задействован инструментарий muvm. Например, таким образом удалось запустить игру Fallout 4.
Для обеспечения работы игр, таких как The Witcher 3 и Ghostrunner, в которых используются тесселяция и геометрические шейдеры, задействована эмуляция при помощи вычислительных шейдеров. Из пока не реализованных возможностей отмечается поддержка в драйвере Honeykrisp разреженных текстур (sparse texturing), необходимых для запуска некоторых игр на базе DX12, таких как Cyberpunk 2077. Кроме того, ведётся работа по оптимизации производительности для достижения в эмулируемом окружении уровня 60 FPS.
- Главная ссылка к новости
- OpenNews: В Fedora одобрена поставка в пакете asahi-installer исполняемых файлов для macOS
- OpenNews: Опубликован Fedora Asahi Remix 40, дистрибутив для ARM-чипов Apple
- OpenNews: В открытом драйвере Asahi сертифицирована поддержка OpenGL 4.6 для чипов Apple M1 и M2
- OpenNews: Открытый драйвер Asahi для чипов Apple M1 и M2 сертифицирован на совместимость с OpenGL ES 3.1
- OpenNews: Представлен новый видеодрайвер для чипа Apple M1, поддерживающий Vulkan 1.3
|
|
|
| |
|
|
· | 10.10 |
Опубликован язык программирования Julia 1.11 (101 +15) |
|
Опубликован релиз языка программирования Julia 1.11, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.
Ключевые особенности языка:
- Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
- Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
- Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
- Опциональная возможность явного указания типов;
- Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средств для распараллеливания вычислений.
- Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.
Основные изменения в Julia 1.11:
- Новые возможности языка
- Добавлен тип Memory, который является низкоуровневой альтернативой типу Array. Тип Memory требует меньших затрат и имеет быстрый конструктор, являясь при этом альтернативой Array там, где не требуется полный набор его возможностей. Например, многомерные массивы. Во внутренней реализации, большая часть методов типа Array реализована поверх типа Memory, что существенно ускорило некоторые функции, например push.
- Добавлено ключевое слово "public". Идентификаторы, которые промаркированы как "public", рассматриваются как внешний программный интерфейс. Идентификаторы с ключевым словом "export" рассматриваются похожим образом. Но основное различием между "public" и "export" в том, что имена, помеченные "public", не включаются в контекст модуля при использовании "using" в зависимых модулях.
- Пакет ScopedValue реализует динамическую область видимости при использовании в параллельном программировании Threads/tasks.
- Файл Manifest.toml теперь может быть переименован в формате Manifest-v{major}.{minor}.toml для использования конкретной версией Julia. Например, файл Manifest-v1.11.toml будет использован версией 1.11, а файл Manifest.toml в той же директории будет использоваться прочими версиями Julia.
- Добавлена поддержка Unicode 15.1.
- Изменения в языке
- В процессе прекомпиляции обработчик "atexit" запускается до формирования результирующего файла. Это позволяет пользователям безопасно завершать фоновое выполнение (например триггеры по таймеру или периодические оповещения), а также явно высвобождать ресурсы перед завершением программы.
- Файлы покрытия кода и выделения памяти больше не формируются в процессе прекомпиляции. Кроме того, в этих режимах кэши pkgimage используются для пакетов, которые также не отслеживаются. Это означает, что тесты покрытия (по умолчанию для julia-actions/julia-runtest) используют кэши pkgimage для всех остальных пакетов, от которых зависит тестируемый. Это позволяет ускорить тестирование.
- Указание пути в JULIA_DEPOT_PATH теперь обрабатывается иначе. При наличии одного пути, только этот путь будет вставлен в значение внутренней переменной DEPOT_PATH. Если последним символом является ":", то переменная DEPOT_PATH получит значение, содержащее всё то, что было указано до ":", а также перечень системных путей, где находится Julia.
- Файлы кэша предварительной компиляции теперь можно перемещать, а их актуальность теперь проверяется с помощью хеша содержимого исходных файлов, а не с помощью "mtime".
- Улучшения компилятора/среды выполнения
- Обновлена эвристика сборщика мусора, позволяющая работать со страницами памяти в целом вместо индивидуальных объектов.
- Добавлена поддержка аннотирования Base.@assume_effects в коде.
- Изменения параметров командной строки
- Точка входа теперь строго определена как Main.main(args). Точка входа должна быть определена макросом @main (см. документацию). Если точка входа задана в скрипте, запускаемом в командной строке (например "julia script.jl или julia -e expr"), julia запустит функцию Main.main автоматически. Это сделано для унификации исполнения скриптов и их компиляции, когда загрузка кода может происходить для компиляции, а выполнение метода Main.main только на этапе запуска исполняемого файла. При использовании Julia в интерактивном режиме изменений нет. Весь код исполняется последовательно.
Аргументы "--compiled-modules" и "--pkgimages" могут быть выставлены в режим existing, который заставляет Julia использовать существующие кэши, но не создавать новые.
- Аргумент "--project" теперь может получать значение @script для указания размещения файла Project.toml относительно запускаемого скрипта. Например "--project=@script/foo" для поддиректории foo. Если ничего не указано, то есть "--project=@script", это будет аналогично "--project=@.", когда файл Project.toml ищется в текущей директории.
- Многопоточные изменения
- В макросе Threads.@threads можно указать режим планировщика :greedy, который удобен для неравномерной вычислительной нагрузки.
Новая структура (со спецификатором public, но не export) "struct Base.Lockable{T, L<:AbstractLock}" представляет собой обёртку для упорядочивания параллельного доступа к элементам составных типов, в целом упрощая код.
- Изменения системы сборки
- Файл Makefile для сборки Julia и LLVM использует стратегии оптимизации PGO и LTO. См. contrib/pgo-lto/Makefile.
- Новые библиотечные функции
- Добавлены три новых типа в рамках идеи текста с аннотацией - Pair{Symbol, Any}, например ':lang => "en"' или ':face => :magenta'. Если это возможно, то аннотации сохраняются в процессе операций над строками, например конкатенции.
- Конкретный тип AnnotatedString реализует AbstractString. Этот тип является обёрткой над строкой, позволяя добавить аннотацию по диапазону символов. Тип AnnotatedString широко используется в новой стандартной библиотеке StyledStrings для отображения информации на экране со стилем.
- Конкретный тип AnnotatedChar реализует AbstractChar. Является обёрткой над символом и позволяет присоединить список аннотаций к нему.
- Конкретный тип AnnotatedIOBuffer реализует IO, повторяет интерфейс типа IOBuffer, но имеет специализированные методы read/write для аннотирования потока. Может использоваться как построитель строк или как средство склейки аннотированных и не аннотированных строк.
- Метод "in!(x, s::AbstractSet)" всегда возвращает true. Но если элемент x не входит в s, то он будет вставлен.
- Новая функция Libc.mkfifo является обёрткой C-функции mkfifo для Unix платформ.
- Метод "logrange(start, stop; length)" создаёт логарифмическую последовательность с указанным количеством, вместо фиксированного шага.
- Методы "copyuntil(out, io, delim)" и "copyline(out, io)" копируют данные из потока io в поток out::IO.
- Метод "eachrsplit(string, pattern)" возвращает итератор по разбитым элементам строки справа налево.
- Метод Sys.username() возвращает имя текущего пользователя.
- Методы Sys.isreadable(), Sys.iswritable() могут быть использованы для определения разрешений пользователя на чтение и запись данных.
- Метод GC.logging_enabled() возвращает true если журналирование операций сборщика мусора включено через GC.enable_logging.
- Тип IdSet теперь экспортируется из Base и является общедоступным.
- Макрос "@time" теперь сообщает значение счётчика конфликтов блокировки, если используется ReentrantLock, который необходимо ожидать. А также добавлен макрос "@lock_conflicts", которые возвращает этот счётчик.
- Макрос Base.Cartesian.@ncallkw разработан по аналогии с Base.Cartesian.@ncall, но позволяет добавить аргументы в форме ключевых слов для вызова функции.
- Новая функция Docs.hasdoc(module, symbol) сообщает имеет ли запрошенное имя symbol описания docstring.
- Новая функция Docs.undocumented_names(module) возвращает имена недокументированных функций запрошенного модуля module.
- Новые возможности известных методов
- Метод invmod(n, T) для предопределённого целого типа T теперь вычисляет обратное по модулю целое n по новому алгоритму.
- Метод invmod(n) предоставляет сокращённую форму вызова invmod(n, typeof(n)) для целых типов.
- Метод replace(string, pattern...) теперь поддерживает опциональный аргумент IO для возврата значения в поток вместо возврата строки типа String.
- Новые методы allequal(f, itr) и allunique(f, itr) с аргументом функции-предиката.
- Метод sizehint!(s, n) теперь поддерживает опцию "shrink", позволяющую отключить отсечку элементов.
- Передача IOBuffer как аргумента stdout при порождении процессов, теперь работает с полной синхронизацией "wait" или "success", поэтому в Base.BufferStream нет больше необходимости проверки доступности.
- Метод "closewrite" больше не вызывается автоматически для переданного потока после закрытия процесса. Используйте метод "wait" для процесса, а затем принудительно вызывайте "closewrite". Или используйте форму метода open с функций для автоматической обработки закрытия.
- Метод "@timed" теперь дополнительно возвращает оценку времени компиляции и перекомпиляции, обусловленной нестабильностью типов.
- Метод "filter" теперь может работать с NamedTuple.
- Метод Iterators.cycle(iter, n) запускается на итераторе "iter" фиксированное n число раз.
- Метод zero(::AbstractArray) применяется рекурсивно, например zero([[1,2],[3,4,5]]) порождает [[0,0],[0,0,0]] вместо генерации ошибки.
- Метод include_dependency(path; track_content=true) подключает зависимости на основе хэш-значения прекомпилированного кода, а не mtime.
- Изменения базовой библиотеки
- Метод write(::IO, ::AbstractArray) используется для рекурсивного вызова методов "write" для каждого элемента массива, но теперь записывается представление в памяти каждого значения. Например, вызов write(io, 'a':'b') запишет 4 байта каждого символа, вместо сокращенного представления UTF-8 для каждого из них. Новый формат совместим с Array, делая возможным использовать метод "read!" для обратного чтения значений.
- Невозможно определить метод "length" для итераторов с состоянием в общем виде. В связи с потенциально некорректной работой итераторов Stateful, метод length(::Stateful) удалён.
- StyledStrings
- Libdl
- Новый тип LazyLibrary экспортируется из библиотеки Libdl для создания ленивых цепочек загрузки библиотек, изначально используемых в формате JLL.
- LinearAlgebra
- Метод cbrt(::AbstractMatrix{<:Real}) теперь возвращает матрицу действительных значений квадратных корней для входной матрицы действительных значений.
- Метод вычисления собственных значений "eigvals/eigen(A, bunchkaufman(B)) and eigvals/eigen(A, lu(B))" использует алгоритмы Bunchkaufman (LDL) и LU декомпозиции B, соответственно, для эффективного вычисления обобщённых собственных значений (eigen: и eigenvectors) от A и B. Вторым аргументом метода передаётся результат методов bunchkaufman или lu.
- Специализированный метод "eigvals/eigen(::Hermitian{<:Tridiagonal})", который предназначен для симметричных тридиагональных матриц и использует средства LAPACK.
- Структурированные матрицы теперь сохраняют оси родительских(для Symmetric/Hermitian/AbstractTriangular/UpperHessenberg), либо оси главных диагоналей (для ленточных матриц).
- Методы bunchkaufman и bunchkaufman! теперь определены для типов AbstractFloat, Rational и их комплексных вариаций. Метод bunchkaufman теперь поддерживает типы Integer, внутренне преобразуя их к Rational{BigInt}. Добавлена функция inertia, которая вычисляет инерцию диагонального фактора процедуры BunchKaufman для объекта действительной симметричной или Эрмитовой матрицы. Для комплексных симметричных матриц, метод inertia только вычисляет количество собственных значений диагонального фактора.
- Пакеты, который определяют метод матричного умножения mul! с сигнатурой mul!(::AbstractMatrix, ::MyMatrix, ::AbstractMatrix, ::Number, ::Number) больше не будут иметь неоднозначность, взаимодействуя с пакетом LinearAlgebra. Ранее при умножении возникали неоднозначности между пользовательским типом матрицы MyMatrix и структурированными матрицами, предоставляемыми пакетом LinearAlgebra, например AbstractTriangular. Подобные проблемы устранены для операций mul! с типами матрица-вектор.
- Методы lu и issuccess(::LU) теперь поддерживают аргумент allowsingular. Если он имеет значение true, допустимая факторизация с фактором U с недостаточным рангом будет считаться успешной, а не выдавать ошибку. Такие факторизации теперь отображаются путем печати множителей вместе с пометкой "rank-deficient", а не сообщения "Failed Factorization".
- Random
- Метод rand теперь применим для типов, переданных в форме Tuple.
- Метод rand теперь применим для типов, переданных в Pair.
- Для начального запуска генератора случайных чисел RNG модуля Random теперь можно использовать отрицательные числа.
- Инициализация генератора случайных чисел теперь может быть выполнена строкой, например seed!(rng, "a random seed").
- REPL
- Dates
- Недокументированная функция adjust больше не экспортируется, но задокументирована.
- Statistics
- Пакет Statistics теперь является обновляемым без всего комплекта Julia.
- Distributed
- Метод pmap теперь использует по-умолчанию CachingPool.
- Устаревшие и удалённые методы
- Методы Base.map, Iterators.map, и foreach с единственным аргументом больше не поддерживаются.
- Внешние зависимости
- Библиотека libuv обновлена с версии 1.44.2 до 1.48.0.
- Метод tput больше не используется для проверки возможностей терминала. Он заменён средствами разбора terminfo, реализованными полностью на Julia.
- Terminfo используется по умолчанию. Если в системе он отсутствует, то Julia может быть собрана с опцией Makefile WITH_TERMINFO=0.
- Улучшения инструментов
- CI теперь выполняет ограниченную автоматическую проверку типов во всех запросах слияния.
- Главная ссылка к новости
- OpenNews: Выпуск языка программирования Julia 1.10
- OpenNews: Новый открытый динамический язык программирования Julia, использующий наработки проекта LLVM
- OpenNews: Выпуск языка программирования Zig 0.11.0
- OpenNews: Релиз языка программирования Nim 2.0
- OpenNews: Выпуск языка программирования Crystal 1.6
|
|
|
| |
|
|
· | 10.10 |
Выпуск дистрибутива Ubuntu 24.10 (257 +19) |
|
Опубликован релиз дистрибутива Ubuntu 24.10 "Oracular Oriole", который отнесён к промежуточным выпускам, обновления для которых формируются в течение 9 месяцев (поддержка будет осуществляться до июля 2025 года). Готовые установочные образы созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.
Основные изменения:
- Рабочий стол обновлён до выпуска GNOME 47, в котором предложен новый стиль диалоговых окон, улучшена работа на системах с низким разрешением экрана, задействовано аппаратное ускорение кодирования видео при записи скринкастов, полностью переработаны диалоги открытия и сохранения файлов. В GNOME Shell и Mutter добавлены ещё не принятые в основной состав GNOME дополнительные патчи, исправляющие проблемы со стабильностью и вносящие оптимизации производительности. В панели обеспечена визуализация обновления программ в snap-пакетах и улучшена обработка PWA-приложений, установленных с использованием snap-пакета с браузером Chromium.
- На системах с видеокартами NVIDIA по умолчанию задействован сеанс GNOME на базе Wayland. Для продолжения использования ранее предлагавшегося по умолчанию сеанса с X-сервером в менеджере входа в систему следует выбрать режим "Ubuntu on Xorg".
- Добавлена экспериментальная поддержка вывода запросов полномочий, требующих у пользователя подтверждения доступа из snap-пакетов к файлам в домашнем каталоге. Для включения и отключений данных запросов предложен новый центр управления безопасностью (Security Center). Динамическое предоставление доступа организовано с использованием механизма AppArmor. В будущем дополнительно планируют предоставить отдельные возможности для управления доступом к функциям дискового шифрования и пакетного фильтра.
- Предложен новый выпуск инсталлятора Subiquity, в котором реализована поддержка автоматического режима установки Ubuntu Desktop и семи официальных редакций Ubuntu (Kubuntu, Xubuntu и т.п.), предоставлена поддержка шифрования для ZFS, добавлен новый экран с информацией об ошибках и реализована экспериментальная поддержка установки с использованием "NVMe over TCP".
- В инсталляторе для Ubuntu Desktop добавлена поддержка использования локальных файловых путей при импорте сценария автоматической установки.
- В менеджере приложений (App Center) обеспечен показ индикатора прогресса установки пакетов, улучшена обработка операций самообновления (решена проблема с блокированием операции "update all" при запущенных snap-пакетах), реализован вывод информации о запущенных snap-пакетах, добавлена поддержка операции прямого удаления приложений в формате snap (direct uninstall), добавлена поддержка установки сторонних пакетов в формате deb, реализована возможность прокрутки для сенсорных экранов.
- В рамках празднования 20-летия с момента первого выпуска Ubuntu (4.10) временно возвращены старая загрузочная звуковая заставка (можно отключить в настройках звука) и коричневый акцентный цвет, а также добавлен юбилейный логотип.
- Ядро Linux обновлено до версии 6.11.
- Системный менеджер обновлён до версии systemd 256. По умолчанию прекращена поддержка загрузки с cgroup v1. Объявлена устаревшей и будет удалена в будущих выпусках поддержка скриптов инициализации System V. Для запуска sshd задействован сервис systemd-ssh-generator, использующий активацию по сокету для локальных сокетов AF_VSOCK и AF_UNIX. По умолчанию задействован юнит tmp.mount, который использует tmpfs для размещения раздела /tmp в оперативной памяти. Пакеты systemd-cryptsetup, systemd-cryptenroll и
systemd-veritysetup с утилитами cryptsetup объединены в один пакет systemd-cryptsetup.
- Обновлены версии GCC 14.2, LLVM 19, glibc 2.40, Go 1.23, Python 3.12.7, Rust 1.80, PHP 8.3.9, .NET 9, OpenSSL 3.3, Ruby 3.3, PostgreSQL 16.4, OpenJDK 24. Вместо СУБД Redis в состав включён форк Valkey 7.2.5.
- Обновлены пользовательские приложения: Firefox 130, LibreOffice 24.8 и Thunderbird 128, GIMP 2.10.38,
OBS Studio 30.2.3.
- Обновлены подсистемы: Mesa 24.2.2, CUPS 2.4.10,
BlueZ 5.77, Netplan 1.1, Cairo 1.18.2, NetworkManager 1.48, Pipewire 1.2.4, Poppler 24.08, xdg-desktop-portal 1.18, Snapd 2.65.3.
- Обновлены серверные пакеты: nginx 1.26.0, apache httpd 2.4.62, clamav 1.3.1, cloud-init 24.3.1, Containerd 1.7.19, Django 4.2.15, Docker 26.1.3, HAProxy 2.9.9, libvirt 10.6.0, OpenLDAP 2.6.8, OpenVmTools 12.4.5, Xtrabackup 8.0.35-31, QEMU 9.0.2, Samba
4.20.4, Squid 6.10, SSSD 2.9.5, Pacemaker 2.1.8, multipath-tools 0.9,
Ceph 19.2.0, Open vSwitch 3.3.0.
- В менеджер профилей энергопотребления (Power Profiles Manager) внесены улучшения и оптимизации для новых CPU и GPU AMD, разрешено использование нескольких драйверов оптимизации и автоматического изменения уровня оптимизации при работе от аккумулятора.
- В fprintd и libfprint расширен спектр поддерживаемых устройств считывания отпечатков пальцев.
- Предоставлены экспериментальные сборки, включающие пакеты собранные с использованием в GCC режима оптимизации "-O3" вместо "-O2".
- По умолчанию в состав включена утилита Sysprof, упрощающая выявления проблем с производительностью в приложениях.
- В сервере OpenSSH прекращено чтение файла ~/.pam_environment при подключении к системе (из соображений безопасности параметр user_readenv=1 в модуле pam_env.so объявлен устаревшим, для отправки и приёма переменных окружения в ssh и sshd рекомендовано использовать настройки AcceptEnv и SendEnv).
- Удалён пакет dmraid, который был исключён из ветки Debian unstable. Вместо dmraid для поддержки предоставляемых прошивками программных RAID (BIOS RAID, Firmware RAID, Fake RAID) рекомендовано использовать инструментарий mdadm.
- Для интеграции с облачными системами аутентификации вместо aad_auth задействован сервис authd, помимо Microsoft Azure Active Directory (Entra ID) поддерживающий многофакторную аутентификацию и OpenID Connect.
- Значительно улучшена работа snap-пакета с клиентом Steam, в котором благодаря предоставлению дополнительных прав доступа через AppArmor удалось решить основные проблемы совместимости с играми и драйверами NVIDIA, которые не наблюдались при установке Steam из deb-пакета.
- Добавлен цветной шрифт Noto Color Emoji 2.047 с поддержкой Unicode 16.
- В Xubuntu обеспечена поставка компонентов из ветки Xfce 4.19, в которой развивается будущий стабильный релиз Xfce 4.20.
Например, обновлены панель, рабочий стол, файловый менеджер, конфигуратор и многие апплеты.
- Редакция Ubuntu Studio перешла на использование KDE Plasma 6.1 и штатного ядра Linux, собираемого для Ubuntu, вместо ядра "lowlatency". Добавлен режим минимальной установки. В состав включена утилита
Ubuntu Studio Audio Configuration для настройки PipeWire. Объявлена устаревшей поддержка звуковых серверов PulseAudio и JACK. Обновлены версии OBS Studio 30.2, Ardour 8.6.0, Audacity 3.6.1, digiKam 8.4.0, Kdenlive 24.08.1, Krita 5.2.3.
- В Ubuntu Cinnamon предложены версии среды рабочего стола Cinnamon 6.0.4, конфигуратора Cinnamon Control Center 6.2.0 и файлового менеджера Nemo 6.0.2.
- В Lubuntu в поставку включён выпуск среды рабочего стола LXQt 2.0.0 и осуществлён переход на Qt6. Вместо темы оформления Breeze из KDE задействована новая тема Kvantum, по стилю напоминающая прошлое оформление, но избавлена от несовместимостей с новой веткой LXQt, свойственных теме Breeze.
- В Ubuntu Budgie основные силы при разработке нового выпуска были сосредоточены на обеспечении поддержки протокола Wayland. Среда рабочего стола Budgie обновлена до версии 10.9.2. В меню реализован показ приложений, запускаемых в терминале (таких как Neovim). Изменена раскладка элементов на рабочем столе, вместо панели Plank задействована собственная панель с темой оформления Pocillo. Добавлена поддержка формата изображений Jpeg-xl.
- В Ubuntu Mate задействован выпуск среды рабочего стола MATE 1.26.2 и осуществлён переход на использование экрана входа в систему Slick Greeter с возможностью настройки в графическом режиме. Размер iso-образа уменьшен с 4.1 ГБ до 3.3 ГБ за счёт сокращения числа пакетов, необходимых для запуска Live-сеанса.
- В Kubuntu осуществлён переход на технологии KDE 6. Задействованы выпуски KDE Plasma 6.1.5, KDE Gear 24.08, Qt 6.6, KDE Frameworks 6.5.0. По умолчанию предложен сеанс на базе Wayland, а поддержка X11 переведена в разряд опции.
- Главная ссылка к новости
- OpenNews: Выпуск Ubuntu 22.04.5 LTS
- OpenNews: Ubuntu переходит на использование самых свежих версий ядра в предстоящих релизах
- OpenNews: Компания Canonical опубликовала монолитный дистрибутив Ubuntu Core 24
- OpenNews: Релиз дистрибутива Ubuntu 24.04 LTS
|
|
|
| |
|
|
· | 10.10 |
Доступна платформа Deno 2.0, развиваемая автором Node.js (72 +15) |
|
Опубликован выпуск платформы Deno 2.0, предназначенной для обособленного выполнения серверных приложений на языках JavaScript и TypeScript с использованием движка V8, применяемого в браузерах на основе Chromium. Проект Deno развивает Райан Даль (Ryan Dahl), создатель Node.js, с целью предоставления более защищённого окружения и устранения концептуальных ошибок, допущенных в архитектуре Node.js. Для повышения безопасности обвязка вокруг движка V8 написана на языке Rust, а для обработки запросов в неблокирующем режиме применяется платформа Tokio. Код проекта распространяется под лицензией MIT. Сборки подготовлены для Linux, Windows и macOS.
При подготовке новой ветки основное внимание было уделено совместимости со старой инфраструктурой JavaScript и расширению спектра поддерживаемых JavaScript-проектов без ущерба обеспечению безопасности. Среди изменений:
- Реализована обратная совместимость с Node.js и npm, позволяющая запускать немодифицированные приложения, созданные для Node.js. Поддержка Node.js также даёт возможность постепенно переводить существующие проекты с Node.js на использование Deno или подключать к Deno-проектам зависимости из NPM через указание спецификатора "npm:" при импорте пакетов в deno.json.
- Добавлена встроенная поддержка файла package.json и каталога с модулями node_modules, применяемых в Node.js.
- Обеспечена поддержка приватных NPM-репозиториев, определённых через файлы ".npmrc".
- Добавлена поддержка популярных JavaScript-фреймворков, таких как Next.js, Astro, Remix, Angular, SvelteKit и QwikCity.
- Добавлена поддержка рабочих пространств npm (workspace) и моно-репозиториев (monorepo) с раздельной обработкой зависимостей.
- Добавлены новые команды управления пакетами: "deno install" для установки зависимостей, "deno add" для добавления пакетов в package.json или deno.json, "deno remove" для удаления пакетов. Отмечается, что "deno install" работает примерно на 15 быстрее npm при отсутствия пакетов в кэше и на 90% быстрее при наличии пакета в кэше (поддерживается как node_modules, так и собственный глобальный кэш).
- Стабилизирована стандартная библиотека.
- Обеспечен длительный цикл поддержки (LTS).
- Представлен JSR - репозиторий с JavaScript- и TypeScript-библиотеками, которые можно использовать в различными JavaScript Runtime.
- В команде "deno fmt" появилась возможность форматирования контента в форматах HTML, CSS и YAML.
- В команду "deno lint" добавлена поддержка специфичных для Node.js правил и исправлений.
- В команде "deno test" реализована возможность запуска тестов, созданных с использованием node:test.
- В команде "deno task" реализована поддержка запуска скриптов через package.json.
- В команде "deno compile" появилась возможность заверения кода цифровой подписью.
- В команде "deno serve" реализовано распараллеливания операций HTTP-серверов с задействованием нескольких ядер CPU.
- В команде "deno coverage" появилась поддержка сохранения отчётов в формате HTML.
- Проведена оптимизация производительности.
Основные особенности Deno:
- Ориентация на безопасность в конфигурации по умолчанию. Обращения к файлам, сетевые возможности и доступ к переменным окружения по умолчанию блокированы и требуют явного включения. Приложения по умолчанию запускаются в изолированных sandbox-окружениях и не могут получить доступ к системным возможностям без предоставления явных полномочий;
- Встроенная поддержка языка TypeScript помимо JavaScript. Для проверки типов и генерации JavaScript задействован штатный компилятор TypeScript, что приводит к проседанию производительности по сравнению с разбором JavaScript в V8;
- Runtime поставляется в форме одного самодостаточного исполняемого файла ("deno"). Для запуска приложений при помощи Deno достаточно загрузить для своей платформы один исполняемый файл, размером около 40 МБ, не имеющий внешних зависимостей и не требующий какой-то особой установки в систему. При этом deno не является монолитным приложением, а представляет собой коллекцию crate-пакетов на Rust (deno_core, rusty_v8), которые могут использоваться по отдельности;
- При запуске программы, а также для загрузки модулей можно использовать адресацию через URL. Например, для запуска программы welcome.js можно использовать команду "deno https://deno.land/std/examples/welcome.js". Код с внешних ресурсов загружается и кэшируется на локальной системе, но никогда автоматически не обновляется (для обновления требуется явно запустить приложение с флагом "--reload");
- Эффективная обработка в приложениях сетевых запросов по HTTP, платформа рассчитана на создание высокопроизводительных сетевых приложений;
- Возможность создания универсальных web-приложений, которые могут выполниться как в Deno, так и в обычном web-браузере;
- Наличие стандартного набора модулей, использование которых не требует привязки к внешним зависимостям. Модули из стандартной коллекции прошли дополнительный аудит и проверку на совместимость;
- Кроме runtime платформа Deno также выполняет роль пакетного менеджера и позволяет внутри кода обращаться к модулям по URL. Например, для загрузки модуля можно указать в коде "import * as log from "https://deno.land/std/log/mod.ts". Файлы, загруженные с внешних серверов по URL, кэшируются. Привязка к версиям модулей определяются через указания номеров версий внутри URL, например, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
- Ориентация на использование Web-стандартов, поддержка Promise, fetch и ECMAScript-модулей.
- Совместимость с пакетами, размещёнными в репозитории NPM и созданными для платформы Node.js.
- В состав интегрирована система инспектирования зависимостей (команда "deno info") и утилита для форматирования кода (deno fmt);
- Все скрипты приложения могут быть объединены в один JavaScript-файл.
- Главная ссылка к новости
- OpenNews: В JavaScript-платформе Bun добавлена поддержка вызова кода на языке Си
- OpenNews: В Node.js добавлена экспериментальная поддержка языка TypeScript
- OpenNews: Доступна серверная JavaScript-платформа Bun 1.0, более быстрая, чем Deno и Node.js
- OpenNews: В JavaScript-платформе Deno обеспечена совместимость с модулями NPM
- OpenNews: Автор Node.js представил защищённую JavaScript-платформу Deno 1.0
|
|
|
| |
|
|
· | 10.10 |
Обновления Firefox 131.0.2 и Tor Browser 13.5.7 с устранением критической уязвимости (60 +13) |
|
Опубликованы корректирующий выпуски Firefox 131.0.2, Firefox ESR 115.16.1, Firefox ESR 128.3.1 и Tor Browser 13.5.7, в которых устранена критическая уязвимость (CVE-2024-9680), приводящая
к выполнению кода на уровне процесса обработки контента при открытии специально оформленных страниц. Уязвимость вызвана обращением к уже освобождённой памяти (use-after-free) в реализации API AnimationTimeline, применяемого для синхронизации и точного управления анимированными эффектами на web-страницах. Опасность уязвимости усугубляется тем, что ещё до появления исправления компанией ESET выявлены факты её использования в эксплоитах для совершения атак (0-day). Детальная информация о сути уязвимости пока не раскрывается.
Дополнительно можно отметить о выявлении в выпуске Firefox 131 проблем (1, 2, 3), приводящих к нарушению отображения элементов интерфейса при запуске браузера в окружениях на базе X11/Xorg без композитного менеджера. Проблемы проявляются в Xfce при выключенном композитном режиме в настройках и в простых оконных менеджерах. Например, пропадают тени и закругления всплывающих меню, отображается чёрный фон вместо прозрачности на индикаторе автопрокрутки.
- Главная ссылка к новости
- OpenNews: Релиз Firefox 131
- OpenNews: Европейскому регулятору подана жалоба о появлении в Firefox функции отслеживания пользователей
- OpenNews: Mozilla продлила поддержку ESR-ветки Firefox 115 до марта 2025 года
|
|
Обсуждение (60 +13) |
Тип: Проблемы безопасности |
|
| |
|
|
· | 10.10 |
Взлом Internet Archive привёл к утечке 31 миллиона учётных записей (61 +12) |
|
Трой Хант (Troy Hunt), создатель сервиса проверки скомпрометированных паролей "Have I Been Pwned" (haveibeenpwned.com), получил сведения об утечке пользовательской базы организации Internet Archive (archive.org), сопровождающей архив сайтов "Wayback Machine" и крупнейшую библиотеку оцифрованного контента. Совершившие атаку передали Трою SQL-дамп с учётными записями 31 млн. пользователей archive.org. Кроме того, зафиксирована подстановка на сайт archive.org JavaScript-кода, выводящего всплывающее окно с информацией о взломе.
Попавший в руки исследователей SQL-дамп занимает более 6 ГБ и среди прочего включает хэши паролей пользователей в формате bcrypt, время изменения паролей, email и имена пользователей. Наиболее свежая запись в БД датирована 28 сентября.
Предупреждение об утечке передано администрации archive.org, но официальная информация пока ограничилась общим подтверждением взлома, уведомлением об удалении вредоносной JavaScript-библиотеки и проведением работы по обновлению систем. Также упомянуты сведения о DDoS-атаке, из-за которой сайт archive.org оказался временно недоступен.
Актуальность БД подтвердил известный исследователь безопасности Скот Хельме (Scott Helme), хэш пароля и время изменения из утекшего SQL-дампа у которого совпали с данными из его менеджера паролей. Компрометацию своих учётных записей можно проверить через сервис haveibeenpwned.com, уже охватывающий сведения из утекшей БД archive.org. В общем виде в haveibeenpwned.com отражена информация о 14 миллиардах учётных записей и сведения о взломах 817 сайтов.
- Главная ссылка к новости
- OpenNews: Утечка токенов пользователей платформы Hugging Face Spaces
- OpenNews: Утечка закрытых ключей Intel, используемых для заверения прошивок MSI
- OpenNews: Утечка токена для полного доступа к GitHub-репозиториям проекта Python
- OpenNews: Утечка содержимого внутренних Git-репозиториев компании Яндекс
- OpenNews: Утечка хэшей паролей Whois-сервиса интернет-регистратора APNIC
|
|
Обсуждение (61 +12) |
Тип: Проблемы безопасности |
|
| |
|
|
Следующая страница (раньше) >> |