This commit is contained in:
Alexey Ryndin 2022-08-10 18:48:37 +03:00
parent e13062e1a5
commit aecca9064b
4 changed files with 347 additions and 19 deletions

View File

@ -4,6 +4,14 @@
* [avtonom.org](https://avtonom.org/) ([RSS](https://avtonom.org/rss_full)) to [@avtonom\_mirror@to.any-key.press](https://to.any-key.press/avtonom_mirror)
## Usage
venv
pip
run (from cron)
## Run tests
```

View File

@ -1,19 +0,0 @@
import dbm
import pytest
from pathlib import Path
import rss
@pytest.fixture
def get_raw_mock_avtonom(monkeypatch):
with open((Path(__file__) / '..' / 'rss' / 'avtonom_full_rss').resolve(), 'r') as f:
raw = f.read()
monkeypatch.setattr(rss, '_get_raw', lambda url: raw)
@pytest.fixture(scope='function')
def db(tmp_path):
with dbm.open(str(tmp_path / 'test'), 'n') as impl:
yield impl

295
tests/rss/opennews_full_rss Normal file
View File

@ -0,0 +1,295 @@
<?xml version="1.0" encoding="koi8-r"?>
<rss version="2.0">
<channel>
<title>OpenNews.opennet.ru: Общая лента новостей</title>
<description>OpenNews - Новости мира открытых систем (Общая лента новостей)</description>
<link>https://www.opennet.ru/opennews/</link>
<item>
<title>В NPM планируют использовать Sigstore для подтверждения подлинности пакетов</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57614</link>
<pubDate>Tue, 09 Aug 2022 15:36:17 +0300</pubDate>
<description>
GitHub &lt;a href=&quot;https://github.blog/2022-08-08-new-request-for-comments-on-improving-npm-security-with-sigstore-is-now-open/&quot;&gt;выставил на обсуждение&lt;/a&gt; &lt;a href=&quot;https://github.com/npm/rfcs/pull/626&quot;&gt;предложение&lt;/a&gt; по внедрению сервиса &lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=54731&quot;&gt;Sigstore&lt;/a&gt; для верификации пакетов по цифровым подписям и ведения публичного лога для подтверждения подлинности при распространении релизов. Применение Sigstore позволит реализовать дополнительный уровень защиты от атак, нацеленных на подмену программных компонентов и зависимостей (supply chain). Например, внедряемое изменение защитит исходные тексты проектов в случае компрометации учётной записи разработчика одной из зависимостей в NPM и формирования злоумышленником обновления пакета с вредоносным кодом.
&lt;p&gt;Благодаря новому уровню защиты разработчики смогут привязать сформированный пакет к использованному исходному коду и сборочному окружению, предоставив пользователю возможность убедиться, что содержимое пакета соответствует содержимому исходных текстов в основном репозитории проекта. Применение Sigstore существенно упрощает процесс управления ключами и позволяет избавиться от сложностей, связанных с регистрацией, отзывом и управлением криптографическими ключами. Sigstore преподносится как аналог Let&amp;#8217;s Encrypt для кода, предоставляющий сертификаты для заверения кода цифровыми подписями и инструментарий для автоматизации проверки.
&lt;p&gt;Вместо постоянных ключей в Sigstore применяются короткоживущие эфемерные ключи, которые генерируются на основе полномочий. Используемый для подписи материал отражается в защищённом от внесения изменений публичном логе, который позволяет убедиться, что автор подписи именно тот, за кого себя выдаёт, и подпись сформирована тем же участником, что отвечал за прошлые релизы. Для обеспечения целостности и защиты от искажения данных задним числом применяется древовидная структура &quot;дерево Меркла&quot; (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы благодаря совместному (древовидному) хешированию. Имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хеш нового состояния базы вычисляется с учётом прошлого состояния).
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57614&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57614&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57614</guid>
</item>
<item>
<title>ReactOS удалось запустить на системе с процессором Эльбрус-8С1</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57617</link>
<pubDate>Tue, 09 Aug 2022 14:40:36 +0300</pubDate>
<description>
Разработчикам операционной системы &lt;a href=&quot;https://reactos.org/&quot;&gt;ReactOS&lt;/a&gt;, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows, удалось запустить 64-битный порт ReactOS на системе с процессором Эльбрус-8С1.
Запуск произведён в режиме трансляции инструкций x86 с использованием транслятора Lintel 4.2. Функционируют клавиатура и мышь с интерфейсом PS/2, USB-накопители определяются, но пока не монтируются.
&lt;center&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045205.jpeg&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045225.jpeg&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045180.jpeg&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045189.jpeg&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;p&gt;Дополнительно отмечается, что благодаря работе George Bi&amp;#537;oc по улучшению механизмов безопасности в ReactOS теперь можно использовать ядро Server 2003 путём простой замены.
&lt;center&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045159.jpeg&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660045167.jpeg&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57617&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57617&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57617</guid>
</item>
<item>
<title>Выпуск дистрибутива Ubuntu Sway Remix 22.04 LTS</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57616</link>
<pubDate>Tue, 09 Aug 2022 12:18:00 +0300</pubDate>
<description>
&lt;a href=&quot;https://github.com/Ubuntu-Sway/Ubuntu-Sway-Remix&quot;&gt;Доступен&lt;/a&gt; выпуск дистрибутива &lt;a href=&quot;ubuntusway.com&quot;&gt;Ubuntu Sway Remix 22.04 LTS&lt;/a&gt;, предоставляющего преднастроенный и готовый к использованию рабочий стол на основе мозаичного композитного менеджера Sway. Дистрибутив является неофициальной редакцией Ubuntu 22.04 LTS, созданной с оглядкой как на опытных пользователей GNU/Linux, так и новичков, желающих попробовать окружение мозаичных оконных менеджеров без необходимости в их долгой настройке. Для скачивания &lt;a href=&quot;https://ubuntusway.com/downloads.php&quot;&gt;доступны&lt;/a&gt; сборки для amd64 и Raspberry Pi 3/4.
&lt;p&gt;Окружение дистрибутива построено на основе &lt;a href=&quot;https://swaywm.org/&quot;&gt;Sway&lt;/a&gt; - композитного менеджера, использующего протокол Wayland и полностью совместимого с мозаичным оконным менеджером i3, а также панели Waybar, файлового менеджера PCManFM-GTK3, и утилит из проекта &lt;a href=&quot;https://github.com/nwg-piotr&quot;&gt;NWG-Shell&lt;/a&gt;, таких как менеджер обоев рабочего стола &lt;a href=&quot;https://github.com/nwg-piotr/azote&quot;&gt;Azote&lt;/a&gt;, полноэкранного меню приложений &lt;a href=&quot;https://github.com/nwg-piotr/nwg-drawer&quot;&gt;nwg-drawer&lt;/a&gt;, утилиты для вывода содержимого скриптов на экран &lt;a href=&quot;https://github.com/nwg-piotr/nwg-wrapper&quot;&gt;nwg-wrapper&lt;/a&gt; (используется для отображения подсказки по горячим клавишам на рабочем столе), менеджера настройки тем GTK, курсора и шрифтов &lt;a href=&quot;https://github.com/nwg-piotr/nwg-look&quot;&gt;nwg-look&lt;/a&gt; и скрипта &lt;a href=&quot;https://github.com/nwg-piotr/autotiling&quot;&gt;Autotiling&lt;/a&gt;, автоматически компонующего окна открытых приложений на манер динамических мозаичных оконных менеджеров.
&lt;p&gt;В состав дистрибутива входят программы как с графическим интерфейсом, такие как Firefox, Qutebrowser, Audacious, GIMP, Transmission, Libreoffice, Pluma и MATE Calc, так и консольные приложения и утилиты, такие как музыкальный проигрыватель Musikcube, видеопроигрыватель MPV, утилита для просмотра изображений Swayimg, утилита для просмотра документов PDF Zathura, текстовый редактор Neovim, файловый менеджер Ranger и другие.
&lt;p&gt;Другой особенностью дистрибутива является полный отказ от использования пакетного менеджера Snap, все программы поставляются в виде обычных deb-пакетов, в том числе веб-браузер Firefox, для установки которого задействован официальный PPA-репозиторий Mozilla Team. Установщик дистрибутива основан на фреймворке Calamares.
&lt;center&gt;&lt;a href=&quot;https://user-images.githubusercontent.com/11344982/183612420-4bba314f-a1d5-4547-b838-b8c097fede4f.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660044457.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href=&quot;https://user-images.githubusercontent.com/11344982/183612463-2d8cb020-ffab-4dc5-a056-5cecd7eca062.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660044509.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href=&quot;https://user-images.githubusercontent.com/11344982/183612468-722709a6-4a9b-42cb-9993-5b827f901995.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1660044527.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57616&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57616&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57616</guid>
</item>
<item>
<title>Выпуск дистрибутива для резервного копирования Rescuezilla 2.4</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57613</link>
<pubDate>Mon, 08 Aug 2022 22:28:33 +0300</pubDate>
<description>
&lt;a href=&quot;https://github.com/rescuezilla/rescuezilla/releases/tag/2.4&quot;&gt;Доступен&lt;/a&gt; выпуск дистрибутива &lt;a href=&quot;https://rescuezilla.com/&quot;&gt;Rescuezilla 2.4&lt;/a&gt;, предназначенного для резервного копирования, восстановления систем после сбоев и диагностики различных аппаратных проблем. Дистрибутив построен на пакетной базе Ubuntu и продолжает развитие проекта &quot;Redo Backup &amp; Rescue&quot;, разработка которого была прекращена в 2012 году. Для загрузки &lt;a href=&quot;https://github.com/rescuezilla/rescuezilla/releases/tag/2.4&quot;&gt;предлагаются&lt;/a&gt; live-сборки для 64-разрядных систем x86 (1ГБ) и deb-пакет для установки в Ubuntu.
&lt;/p&gt;&lt;p&gt;Rescuezilla поддерживает резервное копирование и восстановление случайно удалённых файлов в разделах Linux, macOS и Windows. Выполняется автоматический поиск и подключение сетевых разделов, которые можно использовать для размещения резервных копий. Графический интерфейс основан на оболочке LXDE. Формат создаваемых резервных копий полностью совместим с дистрибутивом Clonezilla. При восстановлении поддерживается работа с образами Clonezilla, Redo Rescue, Foxclone и FSArchiver.
&lt;p&gt;В новой версии:
&lt;ul&gt;
&lt;li class=l&gt; Осуществлён переход на пакетную базу Ubuntu 22.04.
&lt;li class=l&gt; Утилита partclone обновлена до версии 0.3.20.
&lt;li class=l&gt; Налажена поддержка разделов Btrfs со включённым сжатием.
&lt;li class=l&gt; Для установки Firefox вместо snap задейстован PPA-репозиторий, поддерживаемый командой Mozilla.
&lt;li class=l&gt; Предоставлена возможность сжатия образов с использованием утилиты bzip2.
&lt;li class=l&gt; Добавлена возможность установки другого сетевого порта для SSH.
&lt;/li&gt;&lt;/ul&gt;
&lt;center&gt;&lt;a href=&quot;https://rescuezilla.com/media/screenshots/2.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/0_1640418349.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href=&quot;https://rescuezilla.com/media/screenshots/4.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/0_1640418365.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;center&gt;&lt;a href=&quot;https://rescuezilla.com/media/screenshots/8.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/0_1640418378.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57613&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57613&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57613</guid>
</item>
<item>
<title>Разработчики openSUSE обсуждают прекращение поддержки ReiserFS </title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57610</link>
<pubDate>Sun, 07 Aug 2022 21:52:45 +0300</pubDate>
<description>
Джеф Махони (Jeff Mahoney), директор подразделения SUSE Labs,
&lt;a href=&quot;https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/EGZIA6LR23EF3PE3RTSG4LQONY75TSXM/&quot;&gt;вынес&lt;/a&gt; на рассмотрение сообщества предложение по прекращению поддержки файловой системы ReiserFS в openSUSE. В качестве мотива упоминается &lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=56747&quot;&gt;план&lt;/a&gt; удаления ReiserFS из основного состава ядра до 2025 года, стагнация в сопровождении данной ФС и отсутствие возможностей по обеспечению отказоустойчивости, предлагаемых современными ФС для защиты от повреждения в случае аварийного завершения или компрометации.
&lt;p&gt;Предложено немедленно удалить пакет reiserfs из репозитория openSUSE Tumbleweed и отключить работающую на уровне ядра Linux реализацию ReiserFS. Для тех у кого имеются разделы с ReiserFS для доступа к данным предлагается использовать FUSE-фронтэнд для reiserfs из состава GRUB. Примечательно, что в 2006 году Джеф Махони
&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=8462&quot;&gt;был инициатором&lt;/a&gt; прекращения использования ReiserFS в openSUSE по умолчанию. В SUSE поддержка ReiserFS была &lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=48840&quot;&gt;прекращена&lt;/a&gt; 4 года назад.
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57610&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57610&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57610</guid>
</item>
<item>
<title>Для Linux предложен механизм верификации корректности работы ядра</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57605</link>
<pubDate>Sun, 07 Aug 2022 17:48:35 +0300</pubDate>
<description>
Для включения в состав ядра Linux 5.20 (возможно, ветка получит номер 6.0) &lt;a href=&quot;https://lore.kernel.org/lkml/20220803112014.7ffed04e@gandalf.local.home/&quot;&gt;предложен&lt;/a&gt; набор патчей с реализацией механизма &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git/tree/Documentation/trace/rv/runtime-verification.rst?h=for-next&amp;id=ff0aaf671230d409a68fd7400f41e9eb3ac61dd8&quot;&gt;RV&lt;/a&gt; (Runtime Verification), представляющего средства для проверки корректности работы на высоконадежных системах, гарантирующих отсутствие сбоев. Проверка производится во время выполнения через прикрепление обработчиков к точкам трассировки, сверяющих фактический ход выполнения с заранее определённой эталонной детерминированной моделью &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82&quot;&gt;автомата&lt;/a&gt;, определяющего ожидаемое поведение системы.
&lt;p&gt;Информация от точек трассировки переводит модель из одного состояния в другое, и если новое состояние не соответствует параметрам модели, генерируется предупреждение или ядро переводится в состояние &quot;panic&quot; (подразумевается, что высоконадёжные системы будут определять подобные ситуации и реагировать на них). Модель автомата, определяющая переходы из одного состояния в другое, &lt;a href=&quot;https://bristot.me/wp-content/uploads/2020/01/efficient_runtime_verification_bristot.pdf&quot;&gt;экспортируется&lt;/a&gt; в формат &quot;dot&quot; (graphviz), после чего транслируется при помощи утилиты dot2c в представление на языке Си, которое загружается в форме модуля ядра, отслеживающего отклонения хода выполнения от предопределённой модели.
&lt;center&gt;&lt;a href=&quot;https://bristot.me/wp-content/uploads/2020/01/efficient_runtime_verification_bristot.pdf&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1659883669.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;p&gt;Сверка с моделью во время выполнения позиционируется как более легковесный и простой для реализации на практике способ подтверждения корректности выполнения на критически важных системах, дополняющий классические методы подтверждения надёжности, такие как проверка модели и математические доказательства соответствия кода спецификациям, заданным на формальном языке. Из достоинств RV называется возможность обеспечить строгую верификацию без отдельной реализации всей системы на языке моделирования, а также гибкое реагирование на непредвиденные события, например, для блокирования дальнейшего распространения сбоя в критически важных системах.
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57605&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57605&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57605</guid>
</item>
<item>
<title>Выпуск Minetest 5.6.0, открытого клона игры MineCraft </title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57608</link>
<pubDate>Sun, 07 Aug 2022 16:20:07 +0300</pubDate>
<description>
&lt;a href=&quot;https://blog.minetest.net/2022/08/04/5.6.0-released/&quot;&gt;Представлен&lt;/a&gt; выпуск &lt;a href=&quot;http://www.minetest.net/&quot;&gt;Minetest 5.6.0&lt;/a&gt;, открытого кроссплатформенного варианта игры MineCraft, позволяющего группам игроков совместно формировать из типовых блоков различные структуры, образующие подобие виртуального мира (жанр &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%28%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B%29#%D0%9F%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&quot;&gt;песочница&lt;/a&gt;). Игра написана на языке С++ c использованием 3D-движка &lt;a href=&quot;http://irrlicht.sourceforge.net/&quot;&gt;irrlicht&lt;/a&gt;. Для создания расширений используется язык Lua. Код Minetest &lt;a href=&quot;https://github.com/minetest/minetest&quot;&gt;распространяется&lt;/a&gt; под лицензией LGPL, а игровые ресурсы под лицензией CC BY-SA 3.0. Готовые сборки Minetest &lt;a href=&quot;http://minetest.net/downloads/&quot;&gt;созданы&lt;/a&gt; для различных дистрибутивов Linux, Android, FreeBSD, Windows и macOS.
&lt;/p&gt;&lt;p&gt;Среди добавленных &lt;a href=&quot;https://dev.minetest.net/Changelog&quot;&gt;улучшений&lt;/a&gt;:
&lt;ul&gt;
&lt;li class=l&gt; Проведена работа по улучшению поддержки графики и устройств ввода. В связи со стагнацией разработки библиотеки Irrlicht, применяемой для 3D-рендиренга, проектом создан собственный форк - &lt;a href=&quot;https://github.com/minetest/irrlicht&quot;&gt;Irrlicht-MT&lt;/a&gt;, в котором устранены многие ошибки. Также начался процесс чистки устаревшего кода и замены привязок к Irrlicht на использование других библиотек. В будущем планируется полностью отказаться от Irrlicht и перейти на использование SDL и OpenGL без дополнительных прослоек.
&lt;li class=l&gt; Добавлена поддержка динамической отрисовки теней, меняющихся в зависимости от положения солнца и луны.
&lt;center&gt;&lt;a href=&quot;https://blog.minetest.net/static/blog/5.6.0/shadow_1.jpg&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1659877808.jpg&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;li class=l&gt; Обеспечена корректная сортировка по прозрачности, позволившая избавиться от различных проблем, возникающих при отображении прозрачных материалов, таких как жидкость и стекло.
&lt;li class=l&gt; Улучшено управление модами. Предоставлена возможность использования одного мода в нескольких местах (например, в качестве зависимости у других модов) и выборочного включения конкретных экземпляров модов.
&lt;center&gt;&lt;a href=&quot;https://blog.minetest.net/static/blog/2022_May/mod_config.png&quot;&gt;&lt;img src=&quot;https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1659878103.png&quot; style=&quot;border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;&quot; title=&quot;&quot; border=0&gt;&lt;/a&gt;&lt;/center&gt;
&lt;li class=l&gt; Упрощён процесс регистрации игрока. Добавлены раздельные кнопки для регистрации и входа. Добавлен отдельный диалог регистрации, в который интегрированы функции убранного диалога подтверждения пароля.
&lt;li class=l&gt; В API для модов добавлена поддержка запуска кода на языке Lua в другом потоке для выноса ресурсоёмных вычислений, чтобы они не блокировали основной поток.
&lt;/ul&gt;
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57608&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57608&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57608</guid>
</item>
<item>
<title>Уязвимость в подсистеме io_uring ядра Linux, позволяющая получить права root из контейнера</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57607</link>
<pubDate>Sun, 07 Aug 2022 11:17:59 +0300</pubDate>
<description>
В реализации интерфейса асинхронного ввода/вывода io_uring, входящего в ядро Linux начиная с выпуска 5.1, выявлена
&lt;a href=&quot;https://ruia-ruia.github.io/2022/08/05/CVE-2022-29582-io-uring/&quot;&gt;уязвимость&lt;/a&gt; (&lt;a href=&quot;https://security-tracker.debian.org/tracker/CVE-2022-29582&quot;&gt;CVE-2022-29582&lt;/a&gt;), позволяющая непривилегированному пользователю получить права root в системе, в том числе при запуске эксплоита из контейнера. Уязвимость вызвана обращением к уже освобождённому блоку памяти, проявляется в ядрах Linux начиная с ветки 5.10 и &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e677edbcabee849bfdd43f1602bccbecf736a646&quot;&gt;устранена&lt;/a&gt; в апреле в обновлениях &lt;a href=&quot;https://www.opennet.ru/kernel/5.10.111.html&quot;&gt;5.10.111&lt;/a&gt;, &lt;a href=&quot;https://www.opennet.ru/kernel/5.15.34.html&quot;&gt;5.15.34&lt;/a&gt; и &lt;a href=&quot;https://www.opennet.ru/kernel/5.17.3.html&quot;&gt;5.17.3&lt;/a&gt;.
&lt;p&gt;Обращение к освобождённой памяти происходит в результате состояния гонки при обработке таймаутов в функции io_flush_timeouts(), которая удаляет запись о таймауте из списка и отменяет его, без проверки создания и удаления таймаута в этот момент.
&lt;p&gt;Исследователями подготовлен рабочий эксплоит, не требующий для своей работы включения пространств имён идентификаторов пользователей (user namespaces) и способный предоставить root-доступ в основной системе при запуске эксплоита непривилегированным пользователем в изолированном контейнере. Эксплоит в том числе работает в изолированном окружении nsjail в дистрибутиве &lt;a href=&quot;https://cloud.google.com/container-optimized-os/docs&quot;&gt;Google COS&lt;/a&gt; (Сontainer Optimized OS), основанном на Chromium OS и применяемом в Google Cloud Platform в виртуальных машинах Compute Engine. Эксплоит рассчитан на работу с ветками ядра с 5.10 по 5.12.
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57607&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57607&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57607</guid>
</item>
<item>
<title>Выпуск NetBSD 9.3</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57606</link>
<pubDate>Sun, 07 Aug 2022 10:30:25 +0300</pubDate>
<description>
Спустя 15 месяцев после формирования прошлого обновления &lt;a href=&quot;https://blog.netbsd.org/tnf/entry/netbsd_9_3_released&quot;&gt;опубликован&lt;/a&gt; релиз операционной системы &lt;a href=&quot;http://www.netbsd.org/&quot;&gt;NetBSD 9.3&lt;/a&gt;. Для загрузки &lt;a href=&quot;http://iso.netbsd.org/pub/NetBSD/iso/9.3/&quot;&gt;подготовлены&lt;/a&gt; установочные образы размером 470 МБ, доступные в сборках для &lt;a href=&quot;http://www.netbsd.org/ports/&quot;&gt;57 системных архитектур&lt;/a&gt; и 16 различных семейств CPU. Версия 9.3 полностью совместима с прошлыми выпусками ветки 9.x и содержит важные исправления, в том числе связанные с устранением уязвимостей.
&lt;p&gt;Изначально предполагалось сформировать новый значительный выпуск NetBSD 10.0, но из-за необходимости решения проблем с совместимостью, связанных с реализацией списков контроля доступа для FFS, решено отложить значительный релиз и опубликовать дополнительный промежуточный выпуск ветки 9.x, выделив дополнительное время на стабилизацию кодовой базы.
&lt;/p&gt;&lt;p&gt;Основные &lt;a href=&quot;https://www.netbsd.org/releases/formal-9/NetBSD-9.3.html&quot;&gt;улучшения&lt;/a&gt; в NetBSD 9.3:
&lt;ul&gt;
&lt;li class=l&gt; Значительно улучшена поддержка спящего режима (suspend/resume). Во многих драйверах решены проблемы с блокировками и сохранением состояния, проявляющиеся при переходе в спящий режим.
&lt;li class=l&gt; Расширена поддержка оборудования в драйверах устройств.
&lt;li class=l&gt; Добавлена поддержка новых гигабитных Ethernet-чипов Intel.
&lt;li class=l&gt; Улучшена поддержка новых чипсетов Intel и AMD Zen 3.
&lt;li class=l&gt; Обеспечена совместимость с файловыми системами UDF (Universal Disk Format), в том числе внесены исправления для достижения полной совместимости с разделами UDF, созданными в Windows 10 (с учётом особенностей и ошибок).
&lt;li class=l&gt; В инсталляторе sysinst реализована возможность настойки беспроводных соединений.
&lt;li class=l&gt; В сборки для платформы Commodore Amiga добавлена возможность запуска X11-сервера с использованием драйвера &lt;a href=&quot;https://man.netbsd.org/wsfb.4&quot;&gt;wsfb&lt;/a&gt; (использует вывод через framebuffer).
&lt;li class=l&gt; Внесены изменения, нацеленные на повышение производительности гипервизора Xen.
&lt;/ul&gt;
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57606&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57606&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57606</guid>
</item>
<item>
<title>Студия Dreamworks анонсировала открытие системы рендеринга MoonRay</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57604</link>
<pubDate>Sat, 06 Aug 2022 16:19:04 +0300</pubDate>
<description>
Анимационная студия Dreamworks &lt;a href=&quot;https://openmoonray.org/MoonRayPressRelease.pdf&quot;&gt;анонсировала&lt;/a&gt; открытие кода системы рендеринга &lt;a href=&quot;https://openmoonray.org/&quot;&gt;MoonRay&lt;/a&gt;, использующей трассировку лучей на основе численного интегрирования по методу &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%9C%D0%BE%D0%BD%D1%82%D0%B5-%D0%9A%D0%B0%D1%80%D0%BB%D0%BE&quot;&gt;Монте-Карло&lt;/a&gt; (MCRT). Продукт применялся для рендеринга анимационных фильмов &quot;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BA_%D0%BF%D1%80%D0%B8%D1%80%D1%83%D1%87%D0%B8%D1%82%D1%8C_%D0%B4%D1%80%D0%B0%D0%BA%D0%BE%D0%BD%D0%B0_3&quot;&gt;Как приручить дракона 3&lt;/a&gt;&quot;, &quot;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BC%D0%B5%D0%B9%D0%BA%D0%B0_%D0%9A%D1%80%D1%83%D0%B4%D1%81_2:_%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D0%B5%D0%BB%D1%8C%D0%B5&quot;&gt;Семейка Крудс 2: Новоселье&lt;/a&gt;&quot;, &quot;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%BE%D1%85%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%BD%D0%B8_(%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)&quot;&gt;Плохие парни&lt;/a&gt;&quot; и &quot;&lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%82_%D0%B2_%D1%81%D0%B0%D0%BF%D0%BE%D0%B3%D0%B0%D1%85_2:_%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5_%D0%B6%D0%B5%D0%BB%D0%B0%D0%BD%D0%B8%D0%B5&quot;&gt;Кот в сапогах 2: Последнее желание&lt;/a&gt;&quot;. В настоящий момент уже запущен &lt;a href=&quot;https://openmoonray.org/&quot;&gt;сайт&lt;/a&gt; открытого проекта, но сам код обещают опубликовать позднее на &lt;a href=&quot;https://github.com/dreamworksanimation&quot;&gt;GitHub&lt;/a&gt; под лицензией Apache 2.0.
&lt;p&gt;Система разработана с нуля, избавлена от зависимости от устаревшего кода и готова для создания профессиональных работ, уровня полнометражных фильмов. Изначально при проектировании основное внимание уделялось обеспечению высокой эффективности и масштабируемости, в том числе &lt;a href=&quot;https://openmoonray.org/about&quot;&gt;поддерживается&lt;/a&gt; многопоточный рендеринг, распараллеливание операций, использование векторных инструкций (SIMD),
реалистичная симуляция освещения, обработка лучей на стороне GPU или CPU, реалистичная симуляция освещения на базе &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%83%D1%82%D0%B8&quot;&gt;трассировки путей&lt;/a&gt;, рендеринг объёмных структур (туман, огонь, облака).
&lt;p&gt;Для организации распределённого рендеринга используется собственный фреймворк Arras, позволяющий разносить вычисления на несколько серверов или облачных окружений. Код Arras будет открыт вместе с основной кодовой базой MoonRay. Для оптимизации расчёта освещения в распределённых окружениях может использоваться библиотека трассировки лучей &lt;a href=&quot;https://embree.github.io/&quot;&gt;Intel Embree&lt;/a&gt;, а для векторизации шейдеров - компилятор &lt;a href=&quot;https://ispc.github.io/&quot;&gt;Intel ISPC&lt;/a&gt;. Возможна остановка рендеринга в произвольный момент и возобновление операций с прерванной позиции.
&lt;p&gt;Пакет также включает большую библиотеку материалов на основе физически корректного рендеринга (PBR), протестированных в рабочих проектах, и прослойку &lt;a href=&quot;https://learn.foundry.com/katana/dev-guide/Plugins/HydraRenderDelegates/Introduction.html&quot;&gt;USD Hydra Render Delegates&lt;/a&gt; для интеграции с привычными системами создания контента, поддерживающими формат &lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=42801&quot;&gt;USD&lt;/a&gt;. Возможно применение различных режимов генерации изображений, от фотореалистичных до сильно стилизированных.
Благодаря поддержке распределённого рендеринга аниматоры могут отслеживать результат в интерактивном режиме и одновременно визуализировать несколько вариантов сцены с разными условиями освещения, разными свойствами материалов и с разных точек зрения.
&lt;br&gt;&lt;br&gt;Источник: &lt;b&gt;&lt;a href=&quot;https://www.opennet.ru/opennews/art.shtml?num=57604&quot;&gt;https://www.opennet.ru/opennews/art.shtml?num=57604&lt;/a&gt;&lt;/b&gt;
</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57604</guid>
</item>
<item>
<title>Девятая версия патчей для ядра Linux с поддержкой языка Rust </title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57603</link>
<pubDate>Sat, 06 Aug 2022 09:07:16 +0300</pubDate>
<description>Для ядра Linux предложена девятая версия патчей с компонентами для разработки драйверов устройств на языке Rust. Новая версия представляет собой урезанный вариант восьмого выпуска, опубликованного несколько дней назад. Набор отличается существенным сокращением размера и оставлением только самого необходимого минимума, достаточного для сборки модуля ядра, написанного на языке Rust.</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57603</guid>
</item>
<item>
<title>Дэниэл Бернштейн подал в суд из-за утаивания NIST информации о постквантовых криптоалгоритмах</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57602</link>
<pubDate>Sat, 06 Aug 2022 08:30:45 +0300</pubDate>
<description>Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, NaCl, Ed25519, Curve25519 и ChaCha20-Poly1305, инициировал судебное разбирательство против правительства США, связанное с невыполнением Национальным институтом стандартов и технологий США (NIST) требований по полному раскрытию информации, связанной со стандартизацией криптоалгоритмов.</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57602</guid>
</item>
<item>
<title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к файлам вне рабочего каталога</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57601</link>
<pubDate>Fri, 05 Aug 2022 16:37:59 +0300</pubDate>
<description>В HTTP-сервере muhttpd, применяемом преимущественно в маршрутизаторах и точках доступа, выявлена уязвимость (CVE-2022-31793), позволяющая неаутентифицированному атакующему через отправку специально оформленного HTTP-запроса загрузить произвольные файлы, насколько это позволяют права доступа, под которыми выполняется HTTP-сервер (во многих устройствах muhttpd запускается с правами root). Например, атакующий может получить доступа к файлам с паролями, настройками беспроводного доступа, параметрами подключения к провайдеру и закрытыми ключами.</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57601</guid>
</item>
<item>
<title>Выпуск браузера Pale Moon 31.2</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57598</link>
<pubDate>Fri, 05 Aug 2022 16:30:42 +0300</pubDate>
<description>Опубликован релиз web-браузера Pale Moon 31.2, ответвившегося от кодовой базы Firefox для обеспечения более высокой эффективности работы, cохранения классического интерфейса, минимизации потребления памяти и предоставления дополнительных возможностей по настройке. Сборки Pale Moon формируются для Windows и Linux (x86 и x86_64). Код проекта распространяется под лицензией MPLv2 (Mozilla Public License).</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57598</guid>
</item>
<item>
<title>Доступна операционная система Chrome OS 104</title>
<link>https://www.opennet.ru/opennews/art.shtml?num=57600</link>
<pubDate>Fri, 05 Aug 2022 09:07:35 +0300</pubDate>
<description>Доступен релиз операционной системы Chrome OS 104, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 104. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 104 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex. Энтузиастами также формируются неофициальные сборки для обычных компьютеров с процессорами x86, x86_64 и ARM.</description>
<guid>https://www.opennet.ru/opennews/art.shtml?num=57600</guid>
</item>
</channel>
</rss>

View File

@ -1,6 +1,31 @@
import dbm
import pytest
from pathlib import Path
import rss
@pytest.fixture(scope='function')
def get_raw_mock_avtonom(monkeypatch):
with open((Path(__file__) / '..' / 'rss' / 'avtonom_full_rss').resolve(), 'r') as f:
raw = f.read()
monkeypatch.setattr(rss, '_get_raw', lambda url: raw)
@pytest.fixture(scope='function')
def get_raw_mock_opennet(monkeypatch):
with open((Path(__file__) / '..' / 'rss' / 'opennews_full_rss').resolve(), 'r') as f:
raw = f.read()
monkeypatch.setattr(rss, '_get_raw', lambda url: raw)
@pytest.fixture(scope='function')
def db(tmp_path):
with dbm.open(str(tmp_path / 'test'), 'n') as impl:
yield impl
def test_avtonom(get_raw_mock_avtonom, db):
results = []
def _processor(content, media):
@ -85,3 +110,22 @@ def test_process_new_items_exception(get_raw_mock_avtonom, db):
return 'T'
rss.process_new_items(db, 'http://py.text/feed', _processor)
assert results == []
def test_opennet(get_raw_mock_opennet, db):
results = []
def _processor(content, media):
results.append((content, media))
return 'T'
rss.process_new_items(db, 'https://avtonom.org-pytest/rss_full', _processor)
assert [media for content, media in results] == [None, ] * 15
assert results[0][0][:100] == '<p><a href="https://www.opennet.ru/opennews/art.shtml?num=57600">Доступна операционная система Chrom'
assert results[0][0][-100:] == 'ми также формируются неофициальные сборки для обычных компьютеров с процессорами x86, x86_64 и ARM.'
assert results[1][0][:100] == '<p><a href="https://www.opennet.ru/opennews/art.shtml?num=57598">Выпуск браузера Pale Moon 31.2</a><'
assert results[1][0][-100:] == 's и Linux (x86 и x86_64). Код проекта распространяется под лицензией MPLv2 (Mozilla Public License).'
assert results[-2][0][:100] == '<p><a href="https://www.opennet.ru/opennews/art.shtml?num=57617">ReactOS удалось запустить на систем'
assert results[-2][0][-100:] == 'opennet.ru/opennews/art.shtml?num=57617">https://www.opennet.ru/opennews/art.shtml?num=57617</a></b>'
assert results[-1][0][:100] == '<p><a href="https://www.opennet.ru/opennews/art.shtml?num=57614">В NPM планируют использовать Sigsto'
assert results[-1][0][-100:] == 'opennet.ru/opennews/art.shtml?num=57614">https://www.opennet.ru/opennews/art.shtml?num=57614</a></b>'