Зависимости в RPM. Автоматически и вручную проставляемые Requires и Provides. Общая концепция

В системе зависимостей RPM-пакетов есть 2 основные сущности:

  • Provides — предоставляемые пакетом «возможности»,
  • Requires — зависимости пакета — какие «возможности» нужны для работы этого пакета.


В этой статье рассмотрим их общую концепцию. Это актуально и для пользователей, и для сборщиков пакетов. Рассматривать будем на примере дистрибутива ROSA 12 (rosa2021.1).
Читать далее Зависимости в RPM. Автоматически и вручную проставляемые Requires и Provides. Общая концепция

Как быстро скачать видео с GetCourse на Linux скриптом

Написал простой скрипт для скачивания видео с GetCourse без перекодирования: https://github.com/mikhailnov/getcourse-video-downloader

Некоторые инструкции в интернете предлагают скачивать видео с GetCourse с помощью VLC, однако это требует перекодирования видео.

Этот скрипт скачивает видео-уроки с Геткурса без перекодирования. Работает на Linux, BSD, macOS и в др. UNIX-подобных окружениях.
Читать далее Как быстро скачать видео с GetCourse на Linux скриптом

Лечим ШГ в Thunderbird 91

В Thunderbird 91 по сравнению с 78 испортилась отрисовка шрифтов. Стало ШГ. Список писем стало тяжело читать, текст писем тоже. Буквы стали как бы расплывчатыми. Вот здесь VladikSS наглядно показал проблему скриншотами: https://bugzilla.mozilla.org/show_bug.cgi?id=1732583. Как же это исправить, как сделать отрисовку букв нормальной в Thunderbird 91?

Открываем редактор расширенных настроек:
Читать далее Лечим ШГ в Thunderbird 91

Установка ROSA 2021.1 по kickstart на сервер в ДЦ

В видео показывается воспроизводимая установка ROSA Server R12/X5 на удаленный сервер по кикстарт-сценарию. Читать далее Установка ROSA 2021.1 по kickstart на сервер в ДЦ

Скрытие плашки с IP-адресом в IPMI (BMC) Supermicro. Скрытие элемента сайта в браузере.

Захотел снять экранное видео, в котором нужно показать графическую консоль управления сервером Supermicro (BMC, IPMI). При записи видео будет виден IP-адрес IPMI, но его «палить» не хочу, чтобы в случае обнаружения уязвимостей в ПО консоли нельзя было прицельно взломать именно мой сервер. Не люблю обрабатывать отснятые видео, поэтому проще скрыть IP-адрес заранее. На скриншоте ниже показана сама консоль. Читать далее Скрытие плашки с IP-адресом в IPMI (BMC) Supermicro. Скрытие элемента сайта в браузере.

Как работает генератор зависимостей и провайдов devel() RPM

Записал видео, в котором попытался показать, как работает генератор зависимостей (Requires) и Provides для RPM, автоматизирующий их проставление в RPM-пакетах. devel() зависимости и провайды в дистрибутиве ROSA были в rpm5, для rpm4 в ходе перехода на rpm4 написал работающий по похожей логике генератор на bash.

Рассматривается генератор: https://abf.io/import/devel-rpm-generators
Также показано, как запускать генератор вручную для его отладки.
Документация по генераторам: https://rpm.org/user_doc/dependency_generators
Читать далее Как работает генератор зависимостей и провайдов devel() RPM

Выступление на OSDAY-2020. Переход ROSA на RPM 4, задачи пакетной системы и ее улучшение.

Более восьми лет в дистрибутивах ROSA использовался пакетный менеджер RPM5 — форк RPM4, созданный Джеффом Джонсоном, автором RPM. Долгое время RPM5 развивался гораздо активнее своего родителя, что и обусловило его выбор для ROSA. Однако, постепенно активность по разработке RPM5 угасла, а RPM4 наоборот возродился и постепенно не только вобрал большинство интересных свойств RPM5, но и получил множество новых. В докладе рассмотрены задачи пакетной системы дистрибутива GNU/Linux, накопившиеся проблемы, пути их решения и новые улучшения, сделанные в ходе перехода на RPM 4.

PDF: osday-2020-mikhailnov.pdf
Читать далее Выступление на OSDAY-2020. Переход ROSA на RPM 4, задачи пакетной системы и ее улучшение.

Автоматический статический анализ с помощью PVS Studio при сборке RPM-пакетов

Возникла задача автоматизировать статический анализ пакетов в составе дистрибутива. Наилучший инструмент для этого — PVS Studio, потому что умеет перехватывать вызовы компилятора с помощью strace, таким образом, не требуя никаких изменений в сборочных скриптах. Сначала под наблюдением pvs-studio-analyzer запускается сборка, собирает лог, затем запускается анализатор этого лога и формируется отчет. Рассмотрим, как такое настроить, избежав внесения правок в каждый пакет.
Читать далее Автоматический статический анализ с помощью PVS Studio при сборке RPM-пакетов

Автоматизация GDB с помощью xdotool

Понадобилось в отладчике gdb очень много раз повторить одинаковое действие, чтобы поймать значения переменных, которые были в момент сегфолта.

Открыл 2 терминала, в одном запустил программу под gdb, поставил точку остановки (breakpoint), запустил (run), другой средствами оконного менеджера закрепил поверх других окон, запустив в нем:
sleep 5; while true ; do xdotool type c && for type in A B ; do xdotool key KP_Enter && xdotool key p && xdotool key space && for i in $type E V R ; do xdotool type $i ; done; done && xdotool key KP_Enter ; sleep 0; if ! ps aux | grep -vE 'gdb|grep' | grep -q '/usr/bin/python3 /usr/bin/livecd-creator' ; then break ; fi; done
Этот код вводит нужные команды в gdb и проверяет, не остановился ли процесс, т.е. не произошел ли сегфолт, а если произошел, то перестает их вводить. Пошел по своим делам, оно само отработало, вернулся, передо мной был наглядный результат.