
Open source *
Открытое программное обеспечение
Состоялся релиз динамически управляемого межсетевого экрана firewalld 2.1, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект задействован во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+.
Код проекта написан на языке Python и распространяется под лицензией GPLv2.
Для управления межсетевым экраном используется утилита firewall-cmd, которая при создании правил отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий служб.
Для изменения конфигурации межсетевого экрана можно использовать графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt). Поддержка управления межсетевым экраном firewalld через D-BUS API firewalld доступна в NetworkManager, libvirt, podman, docker и fail2ban.
Ключевые изменения в версии 2.1:
добавлен сервис для использования DNS поверх протокола QUIC (DNS over QUIC, DoQ, RFC 9250);
появилась поддержка типов сообщений ICMPv6 MLD (Multicast Listener Discovery);
в файл конфигурации firewalld.conf добавлена опция ReloadPolicy;
добавлены сервисы для приёма клиентских SMTP-запросов на TCP-порту 587 (mail submission), для поддержки ALVR (стриминг VR-игр с ПК на портативные устройства по Wi-Fi) и для поддержки протокола VRRP.
Источник: OpenNET.
WT JMoodle library - библиотека для работы с REST API LMS Moodle

Нативная библиотека для Joomla 4 / Joomla 5 для работы с методами REST API Moodle.
Возможности библиотеки
выполнение внешних запросов к штатному REST API Moodle с помощью Joomla API
проверка структуры данных и типов данных для методов перед выполнением запроса. Если в схеме обнаружена ошибка - запрос не будет выполнен.
начата работа над созданием коллекции Joomla
Form(ex.JForm) полей для использования их в расширениях - плагинах, модулях, компонентах и т.д.в системном плагине можно посмотреть список доступных для работы методов REST API Moodle
методы для сохранения сопоставления пользователей Joomla и Moodle в собственной таблице в базе данных
возможность выполнения запроса на свою кастомную точку входа в Moodle, а не к REST API
<?php
use Webtolk\JMoodle\JMoodle;
$moodle = new JMoodle();
/**
* Request method.
*
* @param string $method Moodle REST API method
* @param array $data data for Moodle REST API method
*
* @return array
*/
$result_jmoodle = $moodle->request('core_webservice_get_site_info');Вышел проект Maestro по разработке на Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux, достаточное для создания типовых рабочих окружений. Проект был создан в 2018 году и вначале использовал язык C, но в 2020 году был полностью перезапущен с нуля с учётом накопленного опыта и перешёл на Rust для снижения вероятности совершения ошибок, возникающих при работе с памятью.
Код проекта распространяется под лицензией MIT. Помимо ядра проектом на языке Rust также развиваются X11-сервер, пакетный менеджер, загрузчик, инсталлятор, наборы утилит и другие компоненты, необходимые для построения операционной системы.
Ядро на Rust имеет монолитную архитектуру и пока поддерживает только системы x86 в 32-разрядном режиме. Кодовая база ядра насчитывает 48.8 тыс. строк кода (для сравнения в ядре Linux - 33 млн. строк кода). Возможен запуск в QEMU, VirtualBox или поверх оборудования. На текущем этапе развития в Maestro реализован 31% (135 из 437) системных вызовов Linux, чего достаточно для загрузки консольного окружения на базе bash и стандартной С-библиотеки Musl. В окружении на базе Maestro также могут выполняться некоторые утилиты из набора GNU coreutils, такие как ls, cat, mkdir, rm, rmdir, uname и whoami.

Источник: OpenNET.
Вышел проект развивающего криминалистического OSINT-инструмента, который разыскивает учётные записи пользователей в публичных данных (разведка на основе открытых источников), Snoop 1.4.0.
Программа анализирует различные сайты, форумы и социальные сети на предмет наличия искомого имени пользователя и позволяет определить на каких сайтах имеется пользователь с указанным ником. Проект разработан на материалах исследовательской работы в области скрапинга публичных данных. Сборки подготовлены для Linux и Windows.
Код написан на языке Python и распространяется под лицензией, ограничивающей применение только для личного пользования. При этом проект является ответвлением от кодовой базы проекта Sherlock, поставляемой под лицензией MIT (форк был создан из-за невозможности расширить базу сайтов).
Snoop внесён в российский Единый реестр российских программ для электронных вычислительных машин и баз данных с заявленным кодом 26.30.11.16: "Программное Обеспечение, обеспечивающее выполнение установленных действий при проведении оперативно-розыскных мероприятий: No7012 приказ 07.10.2020 No515". На данный момент Snoop выслеживает наличие пользователя на более 3700 интернет ресурсах в полной версии и по самым популярным ресурсам в Demo-версии.
Изменения в версии 1.4.0:
поисковая база увеличена до 3716 сайтов;
ускорен запуск на старых ПК с ОС Windows/HDD;
обновлён HTML-отчёт.

Источник: OpenNET.
Состоялся релиз свободного инструментария для построения двумерных и трехмерных научных графиков Gnuplot 6.0. Проект поддерживает широкий спектр форматов вывода и возможность использования скриптов для формирования входящих данных.
Примечательно, что это значительный мажорный релиз открытого проекта с момента публикации ветки 5.0 в 2015 году.

Среди основных изменений в Gnuplot 6.0:
появилась поддержка функциональных блоков и ограниченных (scoped) переменных;
добавлены новые специализированные и комплексные функции;
предложены новые виды графиков: 2D с поверхностями, 2D с секторами, 2D с линиями и 3D c контурной заливкой;
добавлены новые виды обводки, масок и вариантов сглаживания;
добавлена поддержка именованных палитр;
добавлены новые встроенные функции и операции с массивами;
расширена поддержка форматов данных;
реализована поддержка синтаксиса "if {...} else if {...} else {...} ";
добавлена поддержка точек отслеживания (Watchpoint);
добавлены новые типы терминалов (генераторов вывода): kittygd, kittycairo, block и webp.
Источник: OpenNET.
Состоялся выпуск системы синхронизации точного времени NTPsec 1.2.3. Проект является форком эталонной реализации протокола NTPv4 (NTP Classic 4.3.34), сфокусированной на переработке кодовой базы с целью повышения безопасности (выполнена чистка устаревшего кода, задействованы методы предотвращения атак, защищённые функции для работы с памятью и строками).
Проект NTPsec развивается при участии некоторых разработчиков оригинального NTP Classic, инженеров из Hewlett Packard и Akamai Technologies, а также проектов GPSD и RTEMS. Исходные тексты NTPsec распространяются под лицензиями BSD, MIT и NTP.
Обновления в NTPsec:
изменено выравнивание пакетов управляющего протокола Mode 6 (может привести к нарушению совместимости с классическим NTP). Протокол Mode 6 используется для передачи сведений о состоянии сервера и изменении поведения сервера на лету;
в ntpq по умолчанию задействован алгоритм шифрования AES;
при помощи механизма Seccomp обеспечена блокировка некорректных имён системных вызовов;
включён ежечасный сброс некоторой статистики. Добавлены лог-файлы с записываемой каждый час статистикой NTS и NTS-KE. Добавлено отражение в логе ошибок и статистики ms-sntp;
по умолчанию включена сборка с отладочными символами;
добавлена поддержка указания списка допустимых эллиптических кривых ECDH (настройка tlsecdhcurves), поддерживаемые в OpenSSL;
в buildprep добавлена опция update;
в JSON-выводе для ntpdig обеспечен показ данных о задержке пакетов.

Источник: OpenNET.
Состоялся выпуск минималистичного многоплатформенного веб-браузера NetSurf 3.11, способного работать на системах с несколькими десятками мегабайт ОЗУ.
Сборки проекта подготовлены для Linux, Windows, Haiku, AmigaOS, RISC OS и различных Unix-подобных систем. Код браузера написан на языке C и распространяется на GitHub под лицензией GPLv2.
Браузер NetSurf 3.11 поддерживает вкладки, закладки, отображение эскизов страниц, автодополнение URL в адресной строке, масштабирование страниц, HTTPS, SVG, интерфейс для управления Cookie, режим сохранения страниц с изображениями, стандарты HTML 4.01, CSS 2.1 и частично HTML5.
В проекте предоставляется ограниченная поддержка JavaScript, которая по умолчанию отключена. Страницы отображаются при помощи собственного браузерного движка, основу которого составляют библиотеки Hubbub, LibCSS и LibDOM. Для обработки JavaScript применяется движок Duktape.
В новой версии NetSurf:
улучшена поддержка CSS и обеспечена корректная отрисовка страниц, в которых используется CSS-свойство flex;
улучшена компоновка таблиц, обработка списков и поддержка тёмных тем оформления;
проведена оптимизация производительности. Улучшена поддержка платформы RISC OS;
добавлена поддержка формата изображений JpegXL;
добавлен декодировщик изображений rsvg;
по умолчанию отключены TLS 1.0 и TLS 1.1, и настроено использование TLS 1.3;
добавлена поддержка OpenSSL 3;
обеспечена поддержка автозамены http на https;
улучшен интерфейс на базе библиотеки GTK.

Источник: OpenNET.
Спустя год разработки состоялся релиз Linux-дистрибутива wattOS 13, построенного на пакетной базе Debian и поставляемого с графическим окружением LXDE, оконным менеджером Openbox и файловым менеджером PCManFM.
Дистрибутив wattOS 13 является простым, быстрым, минималистичным и пригодным для работы на устаревшем оборудовании. Проект был основан в 2008 году и изначально развивался как минималистичная редакция Ubuntu.
Размер установочного iso-образа wattOS 13 составляет 1.4 ГБ, поддерживается как работа в Live-режиме, так и установка на жесткий диск.
В новой версии wattOS 13 осуществлён переход на пакетную базу Debian 12 (прошлый выпуск был основан на Debian 11, а позапрошлый на Ubuntu 16.04) и ядро Linux 6.1.
В качестве инсталлятора в wattOS 13 применяется Calamares. Имеется поддержка пакетов в формате Flatpak и возможность установки deb-пакетов при помощи утилиты gdebi.

Источник: OpenNET.
Разработчики Gentoo Linux, изначально ориентированного на формирование окружения с использованием сборки программ из исходного кода, объявили о введении в строй репозитория готовых бинарных пакетов. Пакетный менеджер Portage уже много лет поддерживает установку бинарных пакетов, но до сих пор бинарные пакеты предоставлялись лишь выборочно - предполагалось, что дистрибутив в основном распространяет метаданные для сборки, но пользователь может собрать бинарные пакеты на одной из своих систем и использовать на других компьютерах.
Проект начал предоставлять бинарные сборки официально для загрузки с своих серверов. На усмотрение пользователя бинарные сборки можно использовать в сочетании с пакетами, собираемыми из исходного кода, комбинируя различные виды пакетов в своей системе. Прямая загрузка бинарных пакетов Gentoo Linux позволит ускорить развёртывание дистрибутива на маломощных компьютерах и оптимизировать процесс установки, давая возможность сосредоточиться на сборке из исходного кода только наиболее важных для кастомизации компонентов.
Для архитектур отличных от amd64 и arm64 сборки Gentoo Linux ограничены базовыми системными компонентами и еженедельными обновлениями. Для систем amd64 и arm64 бинарные пакеты охватывают и пользовательские приложения, включая пакеты с LibreOffice, Docker, Xfce, KDE и GNOME. Всего на зеркалах размещено более 20 ГБ бинарных пакетов, обновляемых ежедневно для стабильной ветки Gentoo.

Источник: OpenNET.
Организация Linux Foundation опубликовала годовой отчёт. За 2023 год к организации присоединилось 270 новых участников, а число курируемых проектов достигло 1133.
За год организация заработала $263,6 млн и израсходовала $269 млн. По сравнению с прошлым годом затраты на разработку ядра Linux снизились почти на $400 тыс. Общая доля затрат, связанных с разработкой ядра, среди всех расходов составляет 2.9% ($7,8 млн). Доля расходов на ядро в 2022 году составляла 3.2%, а в 2021 - 3.4%.
Всего на различные не связанные с ядром Linux проекты приходится 64% расходов ($171,8 млн). Наибольший вклад осуществляется в проекты, связанные с облачными технологиями, контейнерами и виртуализацией (25%), а также с сетевыми технологиями (13%).
Доли расходов Linux Foundation на проекты, связанные с ИИ, web-разработкой и блокчейном, составили 12%, 11% и 4% соответственно.

На поддержание инфраструктуры потрачено $22,58 млн (9%), на программы обучения и сертификации - $18,57 млн (7%), на корпоративные задачи - $17,1 млн (6%), на проведение мероприятий - $14.6 млн (6%), на сопровождение сообщества - $13,5 млн (5%), на международные задачи $2.96 млн (1%).
Что касается доходов, то 45% от всех полученных средств ($ 118,2 млн) приходится на пожертвования и взносы, участников организации; 26% ($ 67 млн) - целевая поддержка проектов; 19% ($ 49.5 млн) - поддержка мероприятий и регистрационные взносы на конференциях; 10% ($ 27,2 млн) - оплата обучающих курсов и получение сертификатов.
Источник: OpenNET.
На GitHub вышел проект загрузчика файлов (file downloader) Caracal, написанный на языке программирования Rust.
Исходный код проекта Caracal распространяется под свободной лицензией GNU.
Текущая версия утилиты Caracal имеет поддержку HTTP/HTTP, SFTP и MinIO.
Для сборки Caracal необходимы инструменты и пакеты:rustc, cargo, pkg-config и libgit2.
Пример использования Caracal:
# show usage
caracal help
# download a file from HTTP server
caracal https://www.rust-lang.org/
# download multiple files from HTTP server
caracal https://example.com/a.tar.gz https://example.com/b.zip
# copy a file from local file system
caracal /etc/os-release
# download a file from SFTP server
caracal sftp://my-ssh-server/etc/os-release
# copy a file from MinIO server
caracal minio://myminio/path/to/file
# download multiple files from different services
caracal \
/etc/os-release \
https://example.com/a.tar.gz \
sftp://my-ssh-server/etc/os-release \
minio://myminio/path/to/file
# download multiple files from different services and put them in directory /tmp/downloads
mkdir -p /tmp/downloads && \
caracal -D /tmp/downloads \
/etc/os-release \
sftp://my-ssh-server/etc/os-release \
minio://myminio/path/to/file \
https://example.com/a.tar.gzСостоялся релиз статического анализатора Mypy 1.8 (pypi.org). исходные код проекта выложен на GitHub под открытой лицензией MIT.
Новый выпуск проекта включает в себя новые функции, улучшения производительности и исправления ранее найденных разработчиками ошибок.
Mypy — статический анализатор типов для Python, который позволяет находить ошибки несоответствия типов в коде. Впервые инструмент Mypy показал Юкка Лехтосало на PyCon в октябре 2012 года. В декабре 2012 года вышел первый релиз. В 2016 году инструмент поддержал создатель Python Гвидо ван Россум. В феврале 2023 года вышла версия 1.0, а в марте 2023 — версия 1.1.1.

Ближайшие события
Представлен релиз серверной платформы для развёртывания корпоративных мессенджеров Zulip 8. Проект распространяется компанией Dropbox под лицензией Apache 2.0. Код серверной части написан на языке Python с использованием фреймворка Django. ПО доступно для Linux, Windows, macOS, Android и iOS, также есть встроенный веб-интерфейс. Zulip поддерживает как прямой обмен сообщениями между двумя людьми, так и групповые обсуждения.
Проект Zulip 7 вышел в июне 2023 года.
Основные изменения в Zulip 8:
в web-интерфейс добавлена секция inbox, в которой в одном месте собраны непрочитанные сообщения из всех чатов;
добавлена возможность отслеживания интересных тем и использования фильтров и уведомлений для выделения в отслеживаемых темах наиболее важных новых сообщений;
улучшен интерфейс для написания сообщений. Добавлены дополнительные кнопки форматирования сообщения, позволяющие преобразовать текст в список или отформатировать текст как цитату, спойлер, отрывок с кодом или выражение в формате LaTeX;
добавлена возможность создания именованной ссылки в сообщении через вставку URL из буфера обмена после выделения текста;
добавлен новый интерфейс для создания опросов, позволяющий не заботиться о форматировании опроса в сообщении;
добавлен мастер для создания web-обработчиков (webhook);
улучшены компоненты для интеграции с CircleCI, Gitea, GitHub, GitLab и Sentry;
в форму создания организации добавлена настройка языка по умолчанию.
Линус Торвальдс выпустил Linux 6.7-rc7 на день раньше (24.12), в рамках подготовки к празднованию Рождества.
Обычно я выпускаю RC-релизы в воскресенье днем, но поскольку завтра сочельник и начнутся празднества (или, по крайней мере, я несколько раз поеду в магазин за всем, что мы забыли - не прошло и года без некоторых фраз от близких в последнюю минуту «О, нам нужно то...»), вместо этого я делаю rc7 в субботу.
Как я уже упоминал в предыдущих письмах, хотя всё выглядит хорошо и мы могли выпустить финальную версию 6.7 на следующих выходных, как обычно, я не собираюсь этого делать. Сейчас каникулы, многие разработчики уехали на неделю или больше и планируют хорошо отдохнуть.
Итак, на следующих выходных выйдет rc8, и я ожидаю, что он будет небольшим.
А через неделю, возможно, мы вернемся к более нормальному графику. Может быть.
В любом случае, сам rc7 выглядит вполне нормально. На самом деле он совсем немного больше, чем был rc6, и ничто в нём не выглядит странным.
Пожалуйста, попробуйте поработать, если у вас есть время и силы, но давайте посмотрим правде в глаза: я ожидаю, что все будет очень тихо, и это будет одна из тех недель, когда «ничего не происходит». Потому что даже если вы не празднуете это время года, вы можете воспользоваться тишиной и покоем.
Линус.
21 декабря Линус Торвальдс сообщил всем причастным разработчикам, что выпуск стабильной версии Linux 6.7 переносится с 31 декабря (канун Нового года) на 7 января для уменьшения стресса мейнтейнеров проекта из-за праздников.

Состоялся релиз интегрированной среды разработки Lazarus 3.0, основанной на компиляторе FreePascal и выполняющей задачи, сходные с Delphi. Среда рассчитана на работу с выпуском компилятора FreePascal 3.2.2.
Готовые установочные пакеты с Lazarus подготовлены для Linux, macOS и Windows.
Среди изменений в Lazarus 3.0:
набор виджетов на базе Qt6, построенный с использованием С-привязок из Qt6 6.2.0;
улучшен набор виджетов на базе Qt5, в котором задействован родной для Qt цикл обработки событий;
для всех версий Qt реализованы компоненты TCheckBox.Alignment, TRadioButton.Alignment, TCustomComboBox.AdjustDropDown и TCustomComboBox.ItemWidth;
Полностью переработаны привязки на базе GTK3, для которых теперь требуется наличие как минимум версий GTK 3.24.24 и Glib 2.66;
в наборе виджетов Cocoa, используемых в приложениях для macOS, добавлена поддержка многомониториных конфигураций и возможность использования IME (Input Method Editor), например, для ввода Emoji;
расширены возможности или изменено поведение компонентов TCustomImageList, TTaskDialog, TSpeedButton, TLabel, TPanel, TCalendar, TCheckbox, TRadioButton, TShellTreeView, TShellListView, TTreeView;
переделан интерфейс карты символов, который теперь оформлен в виде отдельного пакета и поддерживает изменение размера символов;
в редакторе обеспечена подсветка PasDoc;
в окне Assembler реализована история навигации.

Источник: OpenNET.
Научное издание «N + 1» проводит независимое исследование состояния Open Source в России. Цель первого этапа опроса — выяснить, кто и зачем занимается опенсорсом в стране, в чем их мотивация и какие проблемы мешают развиваться.
Анкета анонимная (детали об участии в открытых проектах и личные контакты заполняются по желанию), прохождение занимает 25-30 минут.
Принять участие в опросе приглашаются как независимые участники разработки, так и компании, связанные с открытым ПО.

В развиваемом компанией Intel открытом телефонном стеке oFono, используемом для организации осуществления звонков, передачи данных через сотового оператора и отправки SMS в таких платформах, как Tizen, Ubuntu Touch, Mobian, Maemo, postmarketOS и Sailfish/Aurora, выявлены две уязвимости, позволяющие организовать выполнение кода при обработке специально оформленных SMS-сообщений.

Эти критические уязвимости устранены в выпуске проекта oFono 2.1 и также в oFono 2.2.
Согласно данным профильных экспертов, обе уязвимости вызваны отсутствием должной проверки размера внешних данных в коде декодирования SMS‑сообщений в формате PDU, что можно использовать для записи данных за пределы выделенного буфера.
Первая уязвимость (CVE-2023-4233) проявляется в функции sms_decode_address_field(), а вторая (CVE-2023-4234) в decode_submit_report().
Источник: OpenNET.
Apple опубликовала исходные тексты низкоуровневых системных компонентов операционной системы macOS 14.2 (Sonoma), в которых используется свободное программное обеспечение, включая составные части Darwin и прочие компоненты, программы и библиотеки, не связанные с GUI. Всего опубликовано 172 пакета с исходными текстами. По сравнению с веткой macOS 13 в репозитории macOS 14.2 удалены пакеты gnudiff и libstdcxx.

Среди прочего в открытом виде доступен код ядра XNU, исходные тексты которого публикуются в виде срезов кода, связанных с очередным релизом macOS. XNU является частью открытого проекта Darwin и представляет собой гибридное ядро, сочетающее ядро Mach, компоненты от проекта FreeBSD и C++ API IOKit для написания драйверов.
Также Apple опубликовала открытые компоненты, используемые в мобильной платформе iOS 17.2. Этот проект включает два пакета: WebKit и libiconv.
Источник: OpenNET.
Состоялся релиз проекта PoCL 5.0 (Portable Computing Language OpenCL), развивающего реализацию стандарта OpenCL, независимую от производителей графических ускорителей и позволяющую использовать различные бэкенды для выполнения OpenCL‑ядер на разных типах графических и центральных процессоров.
Код проекта PoCL 5.0 распространяется под лицензией MIT. Поддерживается работа на платформах X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU и различных специализированных ASIP (Application‑Specific Instruction‑set Processor) и TTA‑процессорах (Transport Triggered Architecture) c архитектурой VLIW.
Реализация компилятора ядер OpenCL в PoCL 5.0 построена на базе LLVM, а в качестве фронтенда для OpenCL C используется Clang.
Для обеспечения должной переносимости и производительности компилятор ядер в PoCL 5.0 OpenCL может генерировать комбинированные функции, которые могут использовать различные аппаратные ресурсы для распараллеливания выполнения кода, такие как VLIW, суперскалярность, SIMD, SIMT, многоядерность и многопоточность.
В PoCL 5.0 имеется поддержка ICD‑драйверов (Installable Client Driver). Присутствуют бэкенды для обеспечения работы через CPU, ASIP (TCE/TTA), GPU на базе архитектуры HSA и GPU NVIDIA (через libcuda).
Источник: OpenNET.