The OpenNET Project / Index page

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

·06.06.2023 Plane - открытая система отслеживания ошибок и управления проектами (34 +7)
  Доступен выпуск платформы Plane 0.7, предоставляющей инструменты для управления проектами, отслеживания ошибок, планирования работ, сопровождения развития продуктов, построения списка задач и координации их выполнения. Платформа, которую можно развернуть в собственной инфраструктуре и не зависеть от сторонних поставщиков, развивается в качестве отрытого аналога таким проприетарным системам, как JIRA, Linear и Height. Проект находится на стадии разработки и готовится к формированию первого стабильного выпуска. Код написан на языке Python с использованием фреймворка Django и распространяется под лицензией Apache 2.0. В качестве СУБД используется PostgreSQL, а для быстрого хранилища - Redis. Web-интерфейс написан на TypeScript с использованием библиотеки Next.js.

Plane поддерживает различные типы рабочих процессов и позволяет отдельно отслеживать поставленные задачи (ToDo), список дел (backlog), находящиеся в работе задачи и завершённые задачи. Система рассчитана на использование каскадной (waterfall) и гибкой (agile) методик разработки проектов. В каскадной модели разработка рассматривается как непрерывный поток, последовательно проходящий стадии планирование, анализа требований, проектирования, реализации, тестирования, интеграции и поддержки. В гибкой модели разработка проекта разбивается на отдельные мелкие фракции, обеспечивающие постепенное развитие функциональности и в своей реализации проходящие типичные для разработки всего проекта стадии, такие как планирование, анализ требований, проектирование, разработка, тестирование и документирование.

Ключевые возможности Plane:

  • Отслеживание ошибок и планирование работ. Поддерживается три режима просмотра - список, виртуальная карта (Kanban) и календарь. Возможна привязка работ к определённым сотрудникам. Для редактирование используется визуальный редактор с поддержкой разметки (rich text). Возможно прикрепление файлов, добавление ссылок на другие задачи, оставление комментариев и проведение обсуждений.
  • Циклы разработки - период времени, в течение которого команда планирует завершить очередной этап разработки. Завершение цикла обычно приводит к формировании новой версии. В интерфейсе для циклов наглядно представлена информация о ходе разработки.
  • Модули - возможность дробления крупных проектов на мелкие части, разработка которых может быть привязана разным командам и координироваться по-отдельности.
  • Представления (View) - возможность фильтрации при выводе только задач и issue, имеющих значение для конкретного работника.
  • Страницы - позволяет использовать AI-помощник для быстрого создания заметок и документирования проблем и планов, разобранных в процессе обсуждений.
  • Универсальное меню, вызываемое при нажатии "Ctrl + K" и предоставляющее возможность быстрой навигации по всем проектам.
  • Интеграция с внешними сервисами, например, доставка уведомлений через Slack и синхронизация issue с GitHub.
  • Управление сотрудниками и командами. Различные уровни полномочий (владелец, администратор, участник, наблюдатель). Поддержка определения разного состояния issue для разных команд.
  • Возможность изменения темы оформления и использования тёмных режимов просмотра.



Ключевые улучшения в новой версии:

  • Добавлен раздел с аналитикой, позволяющий наглядно оценить работу каждого сотрудника, изучить прогресс реализации проекта и отследить динамику работы над задачами.
  • Поддержка отображения графика работ в форме календарной ленточной диаграммы (график Ганта).
  • Поддержка подключения собственных тем оформления, настройки стиля и цветов.
  • Переделан интерфейс Циклов разработки.
  • Расширена информация, отображаемая в календарном представлении.

  1. OpenNews: Red Hat открыл код своей редакции Bugzilla
  2. OpenNews: Система управления разработкой Bloodhound переведена в категорию первичных проектов Apache
  3. OpenNews: Выпуск системы управления проектом Trac 1.4
  4. OpenNews: Выпуск системы управления проектами Calligra Plan 3.2
  5. OpenNews: Открыт код системы отслеживания ошибок TinyIssue
Обсуждение (34 +7) | Тип: Программы |
·05.06.2023 Выпуск сервера потокового вещания Owncast 0.1.0 (42 +15)
  Опубликован выпуск проекта Owncast 0.1.0, развивающего сервер для организации потокового вещания видео (стриминга, один вещает - многие смотрят) и чата с аудиторией. Сервер запускается на оборудовании пользователя и в отличие от сервисов Twitch, Facebook Live и YouTube Live, позволяет полностью контролировать процесс вещания и задавать свои правила общения в чате. Управление и взаимодействие с пользователями производится через web-интерфейс. Код проекта написан на языке Go и распространяется под лицензией MIT.

Для передачи видео на сервер может использоваться любое ПО, поддерживающее протокол RTMP, например, OBS, Streamlabs, Restream, Zoom и Jitsi. Возможна и прямая трансляция с захватом видео с web-камеры или HDMI-порта, используя FFMpeg. Сервер получает исходный видеопоток, конвертирует его в зависимости от выставленных настроек и сегментирует для передачи конечным пользователям при помощи протокола HLS (HTTP Live Streaming). Возможна генерация нескольких потоков с разным качеством и передача с адаптивным битрейтом. Для оптимизации полосы пропускания видео может передаваться пользователям, используя в качестве посредников сервисы хранения, совместимые с Amazon S3.

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

Из планов на будущее отмечается возможность создавать объединённые (federated) сети из разрозненных серверов, единая структура связей в которых образуется через применение набора протоколов ActivityPub. Также планируется добавить поддержку повторного воспроизведения ранее совершённых стримов и проведения стримов по расписанию.

  1. OpenNews: Выпуск сервера потокового вещания Icecast 2.4.4 с устранением уязвимостей
  2. OpenNews: Выпуск децентрализованной видеовещательной платформы PeerTube 5.1
  3. OpenNews: В TikTok Live Studio выявлено заимствование кода OBS, нарушающее лицензию GPL
  4. OpenNews: Выпуск системы потокового видеовещания OBS Studio 29
  5. OpenNews: Выпуск системы потокового видеовещания OBS Studio 29.1
Обсуждение (42 +15) | Тип: Программы |
·05.06.2023 Первый выпуск Blink, высокопроизводительного эмулятора систем x86-64 (121 +38)
  Опубликован первый значительный выпуск проекта Blink, развивающего эмулятор процессоров x86-64, позволяющий запускать статически и динамически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. При помощи Blink cобранные для архитектуры x86-64 Linux-программы можно запускать в других POSIX-совместимых операционных системах (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) и на оборудовании с другой аппаратной архитектурой (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Код проекта написан на языке Си (ANSI C11) и распространяется под лицензией ISC. Из зависимостей требуется только libc (POSIX.1-2017).

По функциональности Blink напоминает команду qemu-x86_64, но отличается от QEMU более компактным исполнением и значительным приростом производительности. Например, исполняемый файл Blink занимает всего 221 КБ (при урезанной сборке - 115 КБ) вместо 4 МБ у qemu-x86_64, а по производительности в некоторых тестах, таких как запуск в эмуляторе GCC и выполнение математических операций, обгоняет QEMU примерно в два раза.

Для обеспечения высокой производительности применяется JIT-компилятор, на лету преобразующий исходные инструкции в машинный код для целевой платформы. Поддерживается прямой запуск в эмуляторе исполняемых файлов в форматах ELF, PE (Portable Executables) и bin (Flat executable), собранных со стандартными Си-библиотеками Cosmopolitan, Glibc и Musl. Реализована встроенная поддержка 180 системных вызовов Linux и эмуляция около 600 процессорных инструкций x86, охватывающих наборы инструкций i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED и RDTSCP.

Дополнительно на базе Blink разрабатывается утилита blinkenlights, предоставляющая интерфейс для визуализации хода выполнения программы и анализа содержимого памяти. Утилита может применяться в качестве отладчика, поддерживающего режим реверсивной отладки (Reverse-Debugging) и позволяющего перемещаться назад в истории выполнения и возвращаться к уже ранее выполненной точке. Проект развивает автор таких разработок, как Си-библиотека Cosmopolitan, порт механизма изоляции pledge для Linux и система универсальных исполняемых файлов Redbean.

  1. OpenNews: Выпуск свободного эмулятора классических квестов ScummVM 2.7.0
  2. OpenNews: Выпуск эмулятора игровых консолей RetroArch 1.15
  3. OpenNews: Новые версии эмуляторов Box86 и Box64, позволяющих запускать x86-игры на системах ARM
  4. OpenNews: Выпуск эмулятора QEMU 8.0
  5. OpenNews: Redbean 2.0 - платформа для web-приложений, упакованных в универсальный исполняемый ZIP-архив
Обсуждение (121 +38) | Тип: Программы |
·05.06.2023 Доступна платформа обмена сообщениями Zulip 7 (47 +16)
  Представлен релиз Zulip 7, серверной платформы для развёртывания корпоративных мессенджеров, подходящих для организации общения сотрудников и групп разработчиков. Проект изначально был разработан компанией Zulip и открыт после её поглощения компанией Dropbox под лицензией Apache 2.0. Код серверной части написан на языке Python с использованием фреймворка Django. Клиентское ПО доступно для Linux, Windows, macOS, Android и iOS, также предоставляется встроенный web-интерфейс.

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

Из возможностей Zulip также можно отметить поддержку отправки сообщений пользователю в offline-режиме (сообщения будут доставлены после появления в online), сохранение полной истории обсуждений на сервере и средства для поиска в архиве, возможность отправки файлов в режиме Drag-and-drop, автоматическую подсветку синтаксиса для передаваемых в сообщениях блоков кода, встроенный язык разметки для быстрого оформления списков и форматирования текста, средства для групповой отправки уведомлений, возможность создания закрытых групп, интеграция с Trac, Nagios, Github, Jenkins, Git, Subversion, JIRA, Puppet, RSS, Twitter и другими сервисами, средства для привязки к сообщениям наглядных меток.

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

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

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

  • Добавлена возможность отправки сообщения не сразу, а в определённое время по расписанию. Например, отправку написанного ночью сообщения можно отложить до утра.
  • Добавлена опция для приглушения каналов, отключающая получение уведомлений о сообщениях. При этом для отдельных тем можно вернуть уведомления, обеспечив выборочное отслеживание наиболее интересных тем в канале.
  • Упрощён процесс изменения получателя при редактировании ещё не отправленного сообщения. Добавлена возможность выбора канала для отправки и переключения между прямой отправкой пользователю и отправкой в канал, не покидая интерфейс редактирования.
  • Добавлены настройки автоматической пометки сообщений прочитанными после просмотра. Например, можно отключить автопометку в режиме просмотра обсуждений и помечать прочитанным только при раздельном просмотре.
  • Добавлены новые клавиатурные комбинации: "z" для повышения детализации обсуждения до просмотра отдельных сообщений, "s" для перехода к обсуждению, в которое было отправлено сообщение, "=" для выставления реакции "👋".
  • Изменён интерфейс настройки полномочий для перемещения сообщений. Появилась возможность определения того, кто и в течение какого времени может перемещать сообщения, независимо от прав на редактирование.
  • В интерфейсе администратора реализовано открытие карты пользователя при нажатии на имени пользователя в настройках или списках подписчиков.
  • В форме экспорта предоставлен выбор между форматами JSON и CSV, а также добавлены фильтры для отсеивания при экспорте отдельных получателей и сообщений с вложениями.
  • Вместо термина "Приватные сообщения" теперь используется "Сообщения, отправляемые напрямую".
  • Добавлена настройка, регламентирующая то, кто может видеть email, указанные при входе. Например, сопровождающие могут разрешить просмотр email другим сопровождающим, но не показывать его обычным участникам.
  • Расширено число сообщений и тем, показываемых в боковой панели.
  • Добавлены дополнительные запросы подтверждения для действий, требующих внимания, таких как пометка всех сообщений прочитанными, удаление последнего пользователя и отключение уведомлений.
  • Обеспечена интеграция с платформой Rundeck. Улучшена интеграция с GitHub.
  • Добавлена поддержка Debian 12 и PostgreSQL 15.
  • Обновлены зависимости, например, фреймворк Django обновлён до версии 4.2.

  1. OpenNews: Выпуск платформы обмена сообщениями Zulip 6
  2. OpenNews: Проект Revolt развивает открытую альтернативу платформе Discord
  3. OpenNews: Доступна система обмена сообщениями Mattermost 7.0
  4. OpenNews: Доступен мессенджер Delta Chat 1.22
  5. OpenNews: Первый выпуск коммуникационной платформы Fosscord, совместимой с Discord
Обсуждение (47 +16) | Тип: Программы |
·03.06.2023 Ошибка в CPU AMD EPYC 7002 приводит к зависанию после 1044 дней работы (169 +45)
  В поставляемой с 2018 года серии серверных процессоров AMD EPYC 7002 ("Rome"), построенных на базе микроархитектуры "Zen 2", выявлена ошибка, в результате которой процессор зависает после 1044 дней работы без сброса состояния (перезагрузки системы). В качестве обходных путей блокирования проблемы рекомендуется отключить поддержку энергосберегающего режима CC6 или перезагружать сервер чаще, чем раз в 1044 дней (примерно 2 года 10 месяцев).

По информации, опубликованной компанией AMD, зависание вызвано сбоем, возникающим при попытке выхода процессорного ядра из энергосберегающего режима CC6 (core-C6, понижает напряжение при бездействии) при достижении таймером значения в 1044 дней после последнего сброса состояния CPU (время проявления может меняться в зависимости от частоты REFCLK).

Более детального пояснения причины сбоя компания AMD не приводит. Судя по опубликованному на Reddit предположению, зависание происходит когда счётчик в регистре TSC (Time Stamp Counter), отсчитывающем число рабочих циклов после сброса, при частоте 2800 MHz достигает значения 0x380000000000000 (2800 MHz * 10**6 * 1042.5, т.е. спустя 1042 дня и 12 часов).

Исправление ошибки публиковать не планируется. Проблема долгое время оставалась незамеченной так как многолетние uptime не типичны для серверов, которые для поддержания в актуальном состоянии периодически приходится перезапускать для установки обновлений ядра или для перехода на новый выпуск операционной системы. Тем не менее, применение в Linux дистрибутивах методов обновления ядра без перезагрузки, а также длительные циклы сопровождения (Ubuntu, RHEL и SUSE поддерживаются 10 лет) могут привести к долгому нахождению серверов без перезагрузки.

  1. OpenNews: В обновлении микрокода Intel выявлена проблема, приводящая к зависанию на системах Tiger Lake
  2. OpenNews: Перевод мировых атомных часов на одну секунду привёл к массовому зависанию серверных приложений
  3. OpenNews: Ошибка в прошивке SSD-накопителей HPE, приводящая к потере данных через 32768 часов работы
  4. OpenNews: Новая проблема в SSD-накопителях HPE, приводящая к потере данных через 40000 часов
  5. OpenNews: Решено с 2035 года приостановить синхронизацию мировых атомных часов с астрономическим временем
Обсуждение (169 +45) | Тип: Тема для размышления |
·03.06.2023 Опубликован стандарт SQL:2023 (58 +25)
  Международная организация по стандартизации (ISO) утвердила и опубликовала международный стандарт SQL:2023 (ISO/IEC 9075), который определяет девятую редакцию спецификации языка SQL, применяемого для манипуляции данными в реляционных СУБД. Прошлое обновление спецификации было выпущено в 2016 году (SQL:2016).

Основные изменения в новой спецификации:

  • Добавлено расширение SQL/PGQ (Property Graph Queries) для манипуляции наборами связанных между собой данных, образующих граф.
    
       CREATE TABLE person (...);
       CREATE TABLE company (...);
       CREATE TABLE ownerof (...);
       CREATE TABLE transaction (...);
       CREATE TABLE account (...);
    
       CREATE PROPERTY GRAPH financial_transactions
           VERTEX TABLES (person, company, account)
           EDGE TABLES (ownerof, transaction);
    
       SELECT owner_name,
           SUM(amount) AS total_transacted
       FROM financial_transactions GRAPH_TABLE (
         MATCH (p:person WHERE p.name = 'Alice')
            -[:ownerof]-> (:account)
            -[t:transaction]- (:account)
            <-[:ownerof]- (owner:person|company)
         COLUMNS (owner.name AS owner_name, t.amount AS amount)
       ) AS ft
       GROUP BY owner_name;
    
  • Определена возможность настройки поведения обработки значений NULL при наличии ограничителя "UNIQUE". При указании "UNIQUE NULLS DISTINCT", добавляемые в базу значения NULL будут трактоваться как уникальные. Например, в таблице с условием "UNIQUE NULLS DISTINCT (a, b, c)" можно выполнить несколько операций "INSERT INTO t2 VALUES (1, NULL, NULL);", а в таблице с условием "UNIQUE NULLS NOT DISTINCT (a, b, c)" - нет.
  • Расширены возможности выполнение операции "ORDER BY" над сгруппированными таблицами. В спецификации теперь разрешены операции упорядочивания сгруппированных таблиц по столбцу, не упомянутому в списке вывода SELECT сгруппированной таблицы. Ранее большинство СУБД позволяло делать такие манипуляции, но спецификация не определяла подобную возможность. Например:
    
       SELECT product.product_id, sum(product_part.num)
         FROM product JOIN product_part ON product.product_id =  product_part.product_id
         GROUP BY product.product_id
         ORDER BY product.product_code;
    
  • Добавлены новые функции GREATEST и LEAST, выбирающие наибольшее и наименьшее значение из переданного списка. Например:
    
       SELECT greatest(1, 2, 3);  --> 3
       SELECT least(1, 2, 3);     --> 1
       SELECT least(standard, discount) FROM data ...
    
  • Добавлены новые функции LPAD и RPAD для дополнения строки до определённого размера. Например:
    
       SELECT lpad(cast(amount as varchar), 12, '-') FROM ...
    
       ----12345.67
    
  • Добавлены многосимвольные варианты функции TRIM - LTRIM, RTRIM и BTRIM, которые позволяют вырезать из начала или конца строки символы, указанные в списке. По сравнению с TRIM новые функции имеют более простой синтаксис. Например:
    
       SELECT ltrim('cccbtest', 'abc'); --> test
       SELECT trim(leading 'abc' from 'cccbtest'); 
    
  • Для типов "VARCHAR" и "CHARACTER VARYING" разрешено не указывать максимальный размер, в этом случае максимальный размер будет зависеть от реализации СУБД.
    
       CREATE TABLE t1 (
           a VARCHAR(256), 
           b VARCHAR,
           ...
       );
    
  • Расширены возможности по выявлению циклов в рекурсивных запросах, используя выражение "CYCLE". Поле с маркером цикла теперь может иметь тип "boolean", а не строковый, и передавать признак цикла в форме значений true и false. Например:
    
       WITH RECURSIVE ... (
           SELECT ...
             UNION ALL
           SELECT ...
       )
       CYCLE id SET is_cycle USING path;
       -- вместо CYCLE id SET is_cycle TO 'Y' DEFAULT 'N' USING path;
    
  • Добавлена новая агрегатная функция any_value(), которая из входного набора данных возвращает произвольное значение, не являющееся NULL.
    
       CREATE TABLE t1 (
           a int,
           b int
       );
       INSERT INTO t1 VALUES (1, 11), (1, 22), (1, 33);
       SELECT a, any_value(b) FROM t1 GROUP BY a;
    
       в зависимости от вызова вернёт "1 | 11", "1 | 22" или "1 | 33".
    
  • Добавлена возможность указания шестнадцатеричных, двоичных и восьмеричных литералов. Например:
    
       SELECT 0xFFFF, 0o755, 0b11001111 ...
    
  • Разрешено использование в числе символа подчёркивания для повышения наглядности цифровых литералов.
    
       SELECT ... WHERE a > 1_000_000;
       UPDATE ... SET x = 0x_FFFF_FFFF ...
    
  • Значительно расширены возможности, связанные с обработкой данных в формате JSON. Добавлен отдельный тип JSON (в стандарте SQL:2016 данные JSON предписывалось хранить в полях со строковыми типами). В данных с типом JSON можно проверять уникальность, используя "JSON('...text...' WITH UNIQUE KEYS)". Тип JSON также может сравниваться, сортироваться и использоваться в операциях группировки. Предложенные в прошлом стандарте функции JSON_OBJECT, JSON_OBJECTAGG, JSON_TABLE и т.п. могут работать как со старым строковым представлением, так и с отдельными типом JSON.

    Реализована поддержка операций JSON_SERIALIZE, JSON_SCALAR и IS JSON. Предоставлен упрощённый синтаксис доступа к наборами вида '{"foo": {"bar": [100, 200, 300]}, ...}' из SQL ("SELECT t.j.foo.bar[2], ... FROM tbl t ..."). Добавлено 14 новых методов для применения к значениям SQL/JSON внутри языка SQL/JSON.

В СУБД PostgreSQL большая часть предложенных в SQL:2023 новшеств уже доступна или запланирована для включения в следующий значительный выпуск. Поддержка ANY_VALUE, подчёркиваний в числах, шестнадцатеричных/двоичных/восьмеричных литералов и шестнадцатеричных литералов в SQL/JSON появится в осеннем выпуске PostgreSQL. Поддержка расширенных возможностей для типа JSON, упрощённого синтаксиса SQL/JSON, новых JSON-методов и расширения PGQ ожидается в выпусках после PostreSQL 16, но работа в этих областях пока не началась. Остальные новшества SQL:2023 уже доступны в существующих выпусках PostreSQL.

  1. OpenNews: Релиз языка для формирования структурированных запросов HTSQL 2.0
  2. OpenNews: Проект libSQL начал развитие форка СУБД SQLite
  3. OpenNews: Релиз СУБД PostgreSQL 15
  4. OpenNews: Facebook представил новый язык формирования запросов GraphQL
  5. OpenNews: Facebook сменил лицензию на GraphQL и выпустил React 16
Обсуждение (58 +25) | Тип: К сведению |
·02.06.2023 Red Hat прекратит подготовку rpm-пакетов с LibreOffice для RHEL и Fedora (303 –30)
  Маттиас Класен (Matthias Clasen), лидер Fedora Desktop Team и участник GNOME Release Team, сообщил о решении компании Red Hat прекратить поставку RPM-пакетов с LibreOffice в следующей значительной ветке дистрибутива Red Hat Enterprise Linux 10, а также ограничить своё участие в разработке пакетов с LibreOffice для Fedora, сопровождением которых ранее занимались работники Red Hat. Пользователям, желающим установить LibreOffice, будет предложено использовать пакеты в формате Flatpak.

Решение объясняется перераспределением ресурсов в команде Red Hat Display Systems, которая занималась сборкой пакетов с LibreOffice для Fedora и RHEL. Приоритеты в работе данной команды будут смещены в область устранения проблем и недоработок, связанных с использованием протокола Wayland, а также реализации поддержки HDR, механизмов управления цветом и других улучшений, востребованных пользователями рабочих станций.

В качестве компромисса решено отказаться от ранее взятой на себя работы над десктоп-приложениями, прекратить поставку LibreOffice в основном составе будущей ветки RHEL и отказаться от сопровождения пакетов c LibreOffice для Fedora. Сопровождение пакетов с LibreOffice в текущих ветках RHEL 7,8 и 9 будет продолжено без изменений. В рамках данной работы для включения в состав LibreOffice планируют передать исправления для улучшения поддержки поставки офисного пакета в формате Flatpak, который в долгосрочной перспективе рассматривается в качестве основного способа установки LibreOffice пользователями RHEL.

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

  1. OpenNews: Red Hat упразднил должность Fedora Program Manager
  2. OpenNews: Red Hat начинает сокращение рабочих мест
  3. OpenNews: Проект по избавлению GNOME от ошибок и недоработок, проявляющихся при работе поверх Wayland
  4. OpenNews: Инициатива по развитию средств управления цветом и HDR для Wayland
  5. OpenNews: Canonical готовит вариант Ubuntu Desktop, содержащий только пакеты Snap
Обсуждение (303 –30) | Тип: К сведению |
·02.06.2023 Доступна система управления исходными текстами Git 2.41 (116 +16)
  После трёх месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.41. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в новую версию принято 542 изменения, подготовленные при участии 95 разработчиков, из которых 29 впервые приняли участие в разработке. Основные новшества:

  • Улучшена обработка недостижимых объектов (unreachable), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). Недостижимые объекты удаляются сборщиком мусора, но до удаления определённое время остаются в репозитории для исключения состояний гонки. Для отслеживания периода нахождения недостижимых объектов необходима привязка к ним меток с временем изменения подобных объектов, что не позволяет хранить их в одном pack-файле, в котором все объекты имеют общее время изменения. Ранее каждый недостижимый объект сохранялся в отдельном файле, что приводило к проблемам при наличии большого числа свежих недостижимых объектов, ещё не подпадающих под удаление. В новом выпуске для упаковки недостижимых объектов по умолчанию задействован механизм "cruft packs", позволяющий хранить все недостижимые объекты в одном pack-файле, а данные о времени модификации каждого объекта отражать в отдельной таблице, хранимой в файле с расширением ".mtimes" и связываемой при помощи индексного файла с расширением ".idx".
  • Включено по умолчанию ведение на диске обратного индекса (revindex) для pack-файлов. При тестировании на репозитории torvalds/linux применение обратного индекса позволило ускорить ресурсоёмкие операции "git push" в 1.49 раза, а простые операции, такие как вычисление размера одного объекта при помощи "git cat-file --batch='%(objectsize:disk)'" в 77 раз. Файлы (".rev") с обратным индексом будут сохранены внутри репозитория в каталоге ".git/objects/pack".

    Напомним, что Git хранит все данные в форме объектов, которые размещаются в отдельных файлах. Для повышения эффективности работы с репозиторием объекты дополнительно помещаются в pack-файлы, в которых информация представлена в форме потока из объектов, следующих друг за другом (аналогичный формат используется при передаче объектов командами git fetch и git push). Для каждого pack-файла создаётся индексный файл (.idx), позволяющий по идентификатору объекта очень быстро определить смещение в pack-файле, по которому хранится данный объект.

    Включённый в новом выпуске обратный индекс нацелен на оптимизацию процесса определения идентификатора объекта по информации о размещении объекта в pack-файле. Ранее такое преобразование выполнялось на лету во время разбора pack-файла и хранилось только в памяти, что не позволяло повторно использовать подобные индексы и вынуждало генерировать индекс каждый раз. Операция построения индекса сводится к построению массива из пар "объект-позиция" и его сортировке по позиции, что может занимать много времени для больших pack-файлов.

    Например, операция вывода содержимого объектов, в которой используется прямой индекс, выполнялась в 62 раза быстрее, чем операция показа размера объектов, для которой данные о связи позиции с объектом не индексировались. После использования обратного индекса указанные операции стали занимать примерно одинаковое время. Обратные индексы также позволяют ускорить операции отправки объектов при выполнении команд fetch и push за счёт прямой передачи уже готовых данных с диска.

  • В протокол "credential helper", применяемый для передачи учётных данных при обращения к репозиторям c ограниченным доступом, добавлена поддержка передачи заголовков WWW-Authenticate между обработчиком учётных данных и сервисом, в котором производится аутентификация. Поддержка заголовка WWW-Authenticate позволяет передавать scope-параметры OAuth для более гранулированного разделения доступа пользователя к репозиториям и разграничения областей, доступных для запросов.
  • В команду for-each-ref добавлена опция форматирования "%(ahead-behind:<base>)", позволяющая разом получить сведения о числе коммитов, присутствующих или отсутствующих в определённой ветке, относительно другой ветки (на сколько одна ветка отстаёт или опережает другую на уровне коммитов). Ранее для получения подобной информации требовалось выполнить две отдельные команды: "git rev-list --count main..my-feature" для получения числа уникальных для ветки коммитов и "git rev-list --count my-feature..main" для получения числа отсутствующих коммитов. Теперь подобные вычисления можно свести к одной команде, что упрощает написание обработчиков и сокращает время выполнения. Например для показа не прошедших слияния веток и оценки отставания или опережения их основной ветки можно использовать однострочник:
    
    
       $ git for-each-ref --no-merged=origin/HEAD \
         --format='%(refname:short) %(ahead-behind:origin/HEAD)' \
         refs/heads/tb/ | column -t
    
       tb/cruft-extra-tips 2 96
       tb/for-each-ref--exclude 16 96
       tb/roaring-bitmaps 47 3
    
    вместо ранее применявшегося скрипта, который выполняется в 17 раз медленнее:
    
       $ git for-each-ref --format='%(refname:short)' --no-merged=origin/HEAD \
         refs/heads/tb |
         while read ref
         do
           ahead="$(git rev-list --count origin/HEAD..$ref)"
           behind="$(git rev-list --count $ref..origin/HEAD)"
           printf "%s %d %d\n" "$ref" "$ahead" "$behind"
         done | column -t
    
       tb/cruft-extra-tips 2 96
       tb/for-each-ref--exclude 16 96
       tb/roaring-bitmaps 47 3
    
  • В команду "git fetch" добавлена опция "--porcelain", при указании которой формируется вывод в формате "<flag> <old-object-id> <new-object-id> <local-reference>", менее читаемый, но более удобный для разбора в скриптах.
  • Добавлена настройка "fetch.hideRefs", позволяющая ускорить операции "git fetch" за счёт скрытия части ссылок в локальном репозитории на стадии проверки отправки сервером полного набора объектов, что позволяет сэкономить время, ограничив проверку только серверов, с которых напрямую извлекаются данные. Например, при проведении теста на системе с репозиториями, содержащими большое число отслеживаемых внешних ссылок, исключение всех ссылок, кроме адресованных целевому серверу $remote, позволило сократить выполнение операции "git fetch" с 20 минут до 30 секунд.
    
       $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \
       fetch $remote
    
  • В команде "git fsck" реализована возможность проверки повреждений, соответствия контрольных сумм и корректности значений в битовых картах доступности и обратных индексах.
  • В команде "git clone --local" реализован вывод ошибки при попытке копирования из репозитория, содержащего символические ссылки внутри $GIT_DIR.

  1. OpenNews: Уязвимости в Git, позволяющие перезаписать файлы или выполнить свой код
  2. OpenNews: Выпуск системы управления исходными текстами Git 2.40
  3. OpenNews: Уязвимости в Git, приводящие к утечке и перезаписи данных
  4. OpenNews: Выпуск git-совместимой системы управления версиями Got 0.80
  5. OpenNews: Две уязвимости в Git, способные привести к удалённому выполнению кода
Обсуждение (116 +16) | Тип: Программы |
·02.06.2023 Выпуск языка программирования Rust 1.70 (185 +6)
  Опубликован релиз языка программирования общего назначения Rust 1.70, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

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

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

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

  1. OpenNews: Представлен Crab, форк языка Rust, избавленный от бюрократии
  2. OpenNews: Google опубликовал результат аудита используемых пакетов на языке Rust
  3. OpenNews: Компания Microsoft добавит код на Rust в ядро Windows 11
  4. OpenNews: Выпуск языка программирования Rust 1.69
  5. OpenNews: Изменение политики товарных знаков Rust Foundation
Обсуждение (185 +6) | Тип: Программы |
·01.06.2023 Выпуск Angie 1.2.0, форка Nginx от группы бывших разработчиков (92 +3)
  Опубликован выпуск высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера Angie 1.2.0, ответвлённого от Nginx группой бывших разработчиков проекта, уволившихся из компании F5 Network. Исходные тексты Angie доступны под лицензией BSD.

Сопровождением разработки занимается компания "Веб-сервер", образованная прошлой осенью и получившая инвестиции в размере 1 млн долларов. Среди совладельцев компании Веб-сервер: Валентин Бартенев (лидер команды, развивавшей продукт Nginx Unit), Иван Полуянов (бывший руководитель фронтэнд-разработчиков Rambler и Mail.Ru), Олег Мамонтов (руководитель команды техподдержки NGINX Inc) и Руслан Ермилов ([email protected]).

Изменения в выпуске Angie 1.2.0:

  • Из репозитория проекта nginx перенесены накопившиеся изменения, соответствующие версии nginx 1.25. Среди прочего перенесён модуль с реализацией протокола HTTP/3.
  • Добавлена директива sticky, действующая в секции настроек upstream модуля http. Директива позволяет настроить режим привязки сеанса, при котором все запросы, связанные с одним сеансом, перенаправляются на один и тот же сервер, при наличии нескольких бэкендов. Привязка к сеансу производится на основе значения Cookie или параметра в URI.
  • Добавлена переменная $upstream_sticky_status, определяющая состояние передачи запроса к серверу, к которому привязан сеанс ("NEW", "HIT" или "MISS").
  • Реализована поддержка протокола NTLS (TLS 1.3 c шифрами SM3 и SM4, стандартизированными в Китае). Для использования протокола требуется наличие библиотеки Tongsuo и указание опции "‑‑with‑ntls" при сборке. Для настройки в модулях http и stream предложены директивы ssl_ntls и proxy_ssl_ntls.
  • В модулях http_proxy и stream_proxy разрешено указывать несколько сертификатов разных типов (RSA и ECDSA) с соответствующими им ключами. Настройка осуществляется при помощи директив proxy_ssl_certificate, proxy_ssl_certificate, proxy_ssl_certificate_key и proxy_ssl_certificate_key.
  • В имени основного процесса показана версия и сборочное имя, что позволяет увидеть данную информацию при просмотре запущенных процессов утилитой "ps".
  • В модуле gzip появилась возможность сжатия ответов с кодом 207 (Multi-Status).

  1. OpenNews: Доступен nginx 1.25.0 с экспериментальной поддержкой HTTP/3
  2. OpenNews: Выпуск nginx 1.24.0
  3. OpenNews: Доступен Angie 1.1.0, форк Nginx от группы бывших разработчиков
  4. OpenNews: Первый выпуск Angie, форка Nginx от разработчиков, ушедших из компании F5
Обсуждение (92 +3) | Тип: Программы |
·01.06.2023 Nintendo добилась удаления эмулятора Dolphin из каталога Steam (183 –22)
  Компания Valve удалила страницу (архивная копия) предстоящего релиза эмулятора Dolphin на платформе Steam после получения письма от юристов компании Nintendo в котором упоминалось нарушение в проекте действующего в США Законе об авторском праве в цифровую эпоху (письмо было не официальным требованием, а просьбой и предложением обсудить ситуацию, если возникнут вопросы). Проект Dolphin распространяется под лицензией GPLv2+ и развивает эмулятор игровых консолей Nintendo GameCube и Wii, позволяющий запускать подготовленные для указанных консолей игры на обычном ПК в режиме full HD. Релиз на платформе Steam, который упростил бы установку Dolphin на консолях Valve Steam Deck, планировалось выпустить во втором квартале 2023 года.

Для предотвращение запуска на приставках Nintendo пиратских копий игр и защиты от копирования игр для последующего запуска на неавторизированных устройствах на приставках применяется шифрование содержимого прошивки и файлов с играми, используя проприетарные криптографические ключи. Компания Nintendo владеет или управляет авторским правом на игры для приставок Wii и GameCub, и отвечает за предоставление лицензий на распространение игр для своих устройств. Условия использования игр разрешают запуск исключительно только на своей игровой консоли.

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

Позиция Nintendo подкрепляется тем, что в состав кодовой базы Dolphin входит ключ шифрования данных для приставок Wii, попавший в открытый доступ после утечки информации в 2008 году. Поставка данного ключа подпадает под нарушение DMCA и может стать предлогом, например, для отправки требования по блокировке репозитория Dolphin на GitHub, как это произошло с проектом Lockpick.

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

  1. OpenNews: Nintendo потребовала заблокировать проект Lockpick, что остановило разработку эмулятора Skyline Switch
  2. OpenNews: GitHub опубликовал отчёт о блокировках в 2022 году
  3. OpenNews: GitHub заблокировал репозиторий SymPy после ложной жалобы
  4. OpenNews: В закон DMCA внесены исключения, разрешающие замену прошивок маршрутизаторов
  5. OpenNews: GitHub повторно заблокировал репозиторий проекта RE3
Обсуждение (183 –22) | Тип: К сведению |
·01.06.2023 В UEFI-прошивках материнских плат Gigabyte выявлена активность, напоминающая бэкдор (238 +67)
  Исследователи из компании Eclypsium выявили аномальное поведение на системах с материнскими платами тайваньской компании Gigabyte Technology. Используемая в платах прошивка UEFI без информирования пользователя во время загрузки системы осуществляла подстановку и запуск исполняемого файла для платформы Windows. В свою очередь, запущенный исполняемый файл загружал из сети и запускал сторонние исполняемые файлы. Дальнейший разбор ситуации показал, что идентичное поведение проявляется на сотнях разных моделей плат Gigabyte и связано с работой поставляемого компанией приложения App Сenter.

Запускаемый файл был встроен в прошивку UEFI и в процессе инициализации во время загрузки сохранялся на диск. На стадии запуска драйверов (DXE, Driver Execution Environment) при помощи модуля прошивки WpbtDxe.efi данный файл загружался в память и прописывался в таблицу WPBT ACPI, содержимое которой в дальнейшем загружается и запускается менеджером сеансов Windows (smss.exe, Windows Session Manager Subsystem). Перед загрузкой модуль проверял включение в BIOS/UEFI функции "APP Center Download & Install" (отключена по умолчанию). Во время запуска на стороне Windows код подставлял в систему исполняемый файл "%SystemRoot%\system32\GigabyteUpdateService.exe", который прописывался как системный сервис.

После запуска сервис GigabyteUpdateService.exe выполнял загрузку обновления с серверов Gigabyte, но производил это без должной верификации загруженных данных по цифровой подписи и без использования шифрования канала связи. Для загрузки использовались адреса "http://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4", "https://mb.download.gigabyte.com/FileList/Swhttp/LiveUpdate4" и "https://software-nas/Swhttp/LiveUpdate4". Допускалась загрузка по HTTP без шифрования, но даже при обращении по HTTPS проверка сертификата не производилась, что позволяло подменить файл при помощи MITM-атак и организовать выполнение своего кода на системе пользователя.

Ситуацию усложняет то, что полное устранение проблемы требует обновления прошивки, так как логика запуска стороннего кода интегрирована в прошивку. В качестве временной меры защиты от MITM-атаки на пользователей плат Gigabyte рекомендуется заблокировать вышеупомянутые URL на межсетевом экране. Компания Gigabyte уведомлена о недопустимости наличия в прошивках подобных небезопасно автообновляемых и принудительно встраиваемых в систему сервисов, так как компрометация инфраструктуры компании или участника цепи поставщиков (supply chain) может привести к совершению атак на пользователей плат и организации запуска вредоносного ПО, неподконтрольного на уровне операционной системы. Например, в августе и октябре 2021 года было зафиксировано два взлома инфраструктуры Gigabyte, которые привели к утечке закрытой документации и конфиденциальных данных.

Дополнение: Компания Gigabyte выпустила обновления прошивок с пометкой "Addresses Download Assistant Vulnerabilities Reported by Eclypsium Research", датированное 31/05/2023 (пример).

  1. OpenNews: Заявлено об обнаружении бэкдора в процессорах VIA C3
  2. OpenNews: В коммутаторах Lenovo и IBM выявлен бэкдор
  3. OpenNews: Результаты анализа бэкдоров в приложениях для Android
  4. OpenNews: В межсетевых экранах Juniper выявлен бэкдор с функциями расшифровки трафика VPN
  5. OpenNews: Бэкдор в отладочном коде модифицированного ядра Linux для систем Allwinner
Обсуждение (238 +67) | Тип: Проблемы безопасности |
·31.05.2023 Релиз Chrome 114 (123 +9)
  Компания Google представила релиз web-браузера Chrome 114. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 115 запланирован на 18 июля.

Основные изменения в Chrome 114:

  • Расширены возможности менеджера паролей (Google Password Manager), который теперь оформлен в виде PWA-приложения (Progressive Web App) и доступен через страницу "chrome://password-manager". В меню первого уровня браузера добавлена кнопка для открытия менеджера паролей. Реализована группировка похожих паролей. Улучшен процесс проверки. В настройки добавлена опция для помещения отдельного ярлыка на рабочий стол для быстрого открытия обособленного интерфейса менеджера паролей.

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

  • Началось постепенное продвижение (для части пользователей) обновлённого интерфейса боковой панели для работы с закладками, в которой появились такие возможности, как установка фильтров, изменение метода сортировки и редактирование по месту.

    Реализованы новые кнопки-подсказки о наличии обновления, применении обновления и необходимости перезапуска после обновления.

  • Добавлена настройка "chrome://flags#tab-hover-card-images" для отключения всплывающих эскизов, показываемых при наведении курсора на вкладки (Tab Hover Card).
  • При включении стандартной и расширенной защиты браузера (Safe Browsing > Standard/Enhanced protection) реализована рекурсивная проверка вложенных архивов после загрузки на наличие вредоносных файлов.
  • Осуществлён переход на использование встроенного хранилища корневых сертификатов удостоверяющих центров (Chrome Root Store) на платформах Android, Linux и ChromeOS (в Windows и macOS переход на Chrome Root Store был совершён ранее). Chrome Root Store напоминает подход компании Mozilla, которая вместо специфичного для каждой операционной системы хранилища, использует собственное отдельное независимое хранилище корневых сертификатов в качестве первого звена для проверки цепочки доверия сертификатов при открытии сайтов по HTTPS.
  • Для защиты от захвата Cookie вредоносным ПО на платформе Windows обеспечено удержание эксклюзивной блокировки на файлы, в которых хранятся Cookie.
  • В версиях для платформ Android и iOS реализована возможность раздельного хранения локальных настроек и настроек, полученных в результате синхронизации с другими устройствами через учётную запись в Google. Изменение позволяет, с одной стороны, исключить передачу локальных настроек в процессе синхронизации, а, с другой стороны, даёт возможность не оставлять в системе внешние настройки после отключения синхронизации. По умолчанию раздельное хранение отключено и требует изменения флага "chrome://flags#enable-preferences-account-storage" для активации.
  • Сайтам предоставлена возможность использования API Private State Token, позволяющего разделять разных пользователей без использования межсайтовых идентификаторов и передавать сведения о подлинности пользователя между разными контекстами. На практике, API может оказаться полезным для отделения ботов от реальных посетителей без явной передачи данных идентификации. Суть работы с API сводится к тому, что определённый сайт, на котором пользователь прошёл аутентификацию или проверку капчей, может сгенерировать токен, хранимый на стороне браузера. Данный токен могут использовать другие сайты для того, чтобы удостовериться, что пользователь человек, а не бот. Для управления доступом к новому API в настройках предоставлена опция Auto-verify.
  • Реализован API Side Panel, позволяющий дополнениям на базе третьей версии манифеста добавлять собственные панели во встроенный интерфейс боковой панели.
  • В CSS-свойстве "text-wrap" реализовано значение "balance", позволяющее равномерно распределить многострочный текст, учитывая итоговые значения имеющейся области, размера шрифта и языка.
  • В рамках инициативы Privacy Sandbox реализована технология CHIPS (Cookies Having Independent Partitioned State), позволяющая изолировать Cookie в привязке к домену первого уровня, используя новый атрибут "Partitioned". Если в обычных условиях сторонний код с сайта "C", встроенный на сайты "A" и "В", может обрабатывать общие для данных сайтов Cookie, то при указании атрибута "Partitioned", выставленные сайтом "C" Cookie, при загрузке кода с сайтов "A" и "В", будут полностью разделены.
  • Добавлен API Popover, позволяющий создавать элементы интерфейса, показываемые поверх других элементов web-интерфейса. Например, при помощи нового API можно создавать меню действий, выводить подсказки для заполнения форм, создавать обучающие интерфейсы и реализовать захват содержимого. Вывод поверх других элементов производится через выставление атрибута "popover", при этом местоположение, каскадирование и фокус ввода обрабатываются автоматически. В отличие от элемента "dialog" элементы с атрибутом "popover" не используют модальный режим, поддерживают события и легко отменяются.
  • В метод navigator.bluetooth.requestDevice() добавлено свойство exclusionFilters, позволяющее исключить некоторые устройства из предоставляемого браузером интерфейса выбора доступных Bluetooth-устройств.
  • В режиме "origin trial" добавлена поддержка API Background Blur, позволяющего использовать предоставляемые платформой возможности для размытия фона получаемых с камеры изображений и видео (полезно для web-приложений для проведения видеоконференций).
  • В CSS-свойстве "overflow" прекращена отдельная обработка значения "overlay", которое теперь идентично значению "auto".
  • Добавлен API NotRestoredReason, позволяющий узнать причину не восстановления содержимого страницы из кэша после нажатия кнопок Back и Forward.
  • Добавлено событие scrollend, генерируемое при завершении пользователем прокрутки (когда позиция перестаёт изменяться) в объектах Element и Document.
  • В WebAssembly добавлена поддержка новых инструкций обработки констант i32.add, i32.sub, i32.mul, i64.add, i64.sub и i64.mul.
  • Расширены возможности API WebGPU и проведена оптимизация производительности функций GPUComputePassEncoder, GPURenderPassEncoder и GPUCommandEncoder, нагрузка на CPU при вызове которых из JavaScript снизилась примерно на 40%.
  • Внесены улучшения в инструменты для web-разработчиков. Предоставлена возможность отладки C и C++ кода WebAssembly-приложений, для которых имеются отладочные данные в формате DWARF. Среди прочего поддерживается установка точек останова и отображение имён C/C++ функций.

    В панели Elements и вкладке Issues добавлена поддержка отладки автозаполнения форм. В панели Recorder предоставлена возможность добавления assert-ов во время записи. Расширены возможности панели Performance для анализа производительности и определения узких мест. Убрана возможность вызова панели JavaScript Profiler, которая ранее была объявлена устаревшей.

Кроме нововведений и исправления ошибок в новой версии устранено 16 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 65.5 тысяч долларов США (по одной премии в $15000, $10000 $3000, $2000 и $500, три премии $9000 и две премии в $4000). Размер 3 вознаграждений пока не определён.

  1. OpenNews: Релиз Chrome 113
  2. OpenNews: В Chrome предложены режимы экономии памяти и энергии. Отложено отключение второй версии манифеста
  3. OpenNews: В Chrome внесены значительные оптимизации производительности
  4. OpenNews: В Chrome решено убрать индикатор замка из адресной строки
  5. OpenNews: В Chrome появится индикация потребления памяти отдельными вкладками
Обсуждение (123 +9) | Тип: Программы |
·31.05.2023 Canonical готовит вариант Ubuntu Desktop, содержащий только пакеты Snap (340 –40)
  Разработчики из компании Canonical намерены в следующем году начать поставку дополнительных сборок Ubuntu Desktop, основанных на платформе Ubuntu Core и включающих только приложения, оформленные с использование пакетов в формате Snap. Похожая, но основанная на пакетах Flatpak, компоновка дистрибутива для рабочих станций, уже применяется такими проектами, как Fedora Silverblue и Endless OS. Первые экспериментальные сборки нового варианта Ubuntu Desktop планируют подготовить весной следующего года, в процессе формирования Ubuntu 24.04 LTS. Поставка классических сборок Ubuntu Desktop с deb-пакетами будет продолжена без изменений.

Ubuntu Core подразумевает поставку неделимого монолитного образа базовой системы, в котором не применяется разбивка на отдельные deb-пакеты и используется механизм атомарного обновления всей системы. Компоненты Ubuntu Core, включая базовую систему, ядро Linux, системные надстройки и дополнительные приложения, поставляются в формате snap и управляются инструментарием snapd. Компоненты в формате Snap изолируются при помощи AppArmor и Seccomp, что создаёт дополнительный рубеж для защиты системы в случае компрометации отдельных приложений. Базовая файловая система монтируется в режиме только для чтения. Обновления базового окружения доставляются в режиме ОТА (over-the-air), включают только изменения (delta-обновления) и синхронизированы с актуальным LTS-выпуском Ubuntu.

Из недавних достижений Ubuntu, позволяющих реализовать на базе Ubuntu Core сборку с графическим окружением, отмечается реализация возможности поставки в snap-пакетах стека вывода на печать на базе CUPS и разных версий драйверов Mesa. Поставка CUPS в формате snap планируют начать в выпуске Ubuntu 23.10.

Дополнение: Вариант Ubuntu Desktop на базе Ubuntu Core официально анонсирован в блоге Ubuntu. В заметке рассказано об архитектуре Ubuntu Core и рассмотрены достоинства и недостатки монолитной организации дистрибутива:

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

  1. OpenNews: Unity 8, Mir и Snappy лягут в основу Ubuntu Personal
  2. OpenNews: Компания Canonical представила оболочку Ubuntu Frame
  3. OpenNews: Компания Canonical анонсировала переработку инструментария Snapcraft
  4. OpenNews: Доступен монолитный дистрибутив Ubuntu Core 22
  5. OpenNews: Canonical и Elektrobit представили EB corbos Linux, редакцию Ubuntu для автомобильных систем
Обсуждение (340 –40) | Тип: К сведению |
·30.05.2023 Представлен Crab, форк языка Rust, избавленный от бюрократии (179 +21)
  В рамках проекта Crab (CrabLang) началось развитие форка языка Rust и пакетного менеджера Cargo (форк поставляется под именем Сrabgo). Лидером форка назван Трэвис Вагнер (Travis A. Wagner), не входящий в список 100 наиболее активных разработчиков Rust. В качестве причины создания форка упоминается недовольство усиления влияния корпораций на язык Rust и сомнительная политика организации Rust Foundation в отношении использования торговых марок.

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

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

Дополнение: За несколько дней до создания форка в сообществе Rust произошёл конфликт, в результате Rust Core Team проект покинул участник JT. Причиной стал перевод приглашённого на конференцию RustConf 2023 докладчика JeanHeyd Meneide из статуса ключевого (keynote) в обычные, после чего JeanHeyd вообще отказался выступать на конференции. JeanHeyd Meneide является одним из редакторов стандарта языка Си и борцом за права чернокожих (ранее критиковал сообщество Rust за недостаточное разнообразие и отсутствие чернокожих докладчиков на RustConf). JeanHeyd продвигает включение в Rust поддержки рефлексии на этапе компиляции, чему планировал посвятить свой доклад.

Причиной ухода JT из Core Team стали действия двух значимых участников сообщества в обход принимаемых управляющим комитетом решений. В частности, управляющий комитет языка Rust и организаторы RustConf большинством голосов утвердили рекомендацию по выступлению JeanHeyd в секции ключевых докладов. Спустя какое-то время, уже после того как JeanHeyd был уведомлен о решении и согласился выступать, два не участвовавших в голосовании члена группы, не согласились с общим решением из-за опасений, связанных с навязыванием продвижения в язык Rust поддержки рефлексии, реализация которой находится на очень раннем этапе и целесообразность которой находится под вопросом (подразумевалось, что ещё сырой и не прошедшей обсуждение технологии не следует отдавать место ключевого доклада). После того как не удалось урегулировать конфликт в совете, они в личном порядке договорились с организаторами RustConf по смене статуса докладчика, не поставив в известность голосовавших членов совета.

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

  1. OpenNews: Выпуск языка программирования Rust 1.69
  2. OpenNews: Изменение политики товарных знаков Rust Foundation
  3. OpenNews: Компания Microsoft добавит код на Rust в ядро Windows 11
  4. OpenNews: Завершён процесс создания организации Rust Foundation
  5. OpenNews: Модераторы сообщества Rust в знак протеста объявили об отставке
Обсуждение (179 +21) | Тип: К сведению | Интересно
Следующая страница (раньше) >>



Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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