Выступление на 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, задачи пакетной системы и ее улучшение.

Не делать конкретные микрофон или динамики устройством по умолчанию в PulseAudio (Linux)

В PulseAudio есть модуль module-switch-on-connect, который делает подключаемое устройство ввода или вывода звука устройством по умолчанию.
Читать далее Не делать конкретные микрофон или динамики устройством по умолчанию в PulseAudio (Linux)

Медленно работает Wi-Fi на Prestigio 116A03 на Linux

Решение:
в файл /etc/modprobe.d/wifi.conf написать:
options r8723bs ant_sel=2
и перезагрузиться

На ядре 5.3 и Fedora 31 из коробки работают звук, регулировка яркости, 32-битный UEFI, определение заряда батареи.

Как в GNU/Linux работает резолвинг DNS? Как система превращает имя DNS в IP-адрес?

Почти все программы слинкованы с системной glibc (libc.so.6). Когда в glibc поступает запрос на резолвинг имени хоста, поочередно опрашиваются плагины NSS (Name Switch Service), прописанные в /etc/nsswitch.conf в строке hosts. В случае

rosa-2016 ~ # cat /etc/nsswitch.conf | grep ^hosts
hosts:     mdns4_minimal files nis dns wins myhostname mymachines mdns4 
rosa-2016 ~ #

сначала будет попытка разрешить имя через Avahi по протоколу multicast DNS (mdns4_minimal), затем через файл /etc/hosts (files), затем через nis (устаревшая штука), затем, собственно, сам dns. Кто первый ответит, тот ответ и принимается.

Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Понадобилось узнать, почему FreeIPA выдавала ошибку загрузки библиотеки, не выдавая подробный текст ошибки. Этот способ позволяет выполнять dlopen() библиотек и смотреть, успешно ли прошла операция, и видеть ошибки.
Используется Python CFFI.
Читать далее Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Пример использования valgrind для отладки в т.ч. зависания программы

named-pkcs11 при запуске зависает.
Читать далее Пример использования valgrind для отладки в т.ч. зависания программы

Как удалить сразу все сноски [*] после копипасты из Википедии

Чтобы из текста, скопированного, например, из Википедии быстро удалить все сноски вида [5]:
Читать далее Как удалить сразу все сноски [*] после копипасты из Википедии

PulseJoin 2.3

Вышла новая версия 2.3 PulseJoin (https://gitlab.com/mikhailnov/pulsejoin) — GUI для создания виртуального микрофона PulseAudio, с которого можно записывать звук одновременно настоящего микрофона и тот, что выводится на динамики.

В версии 2.3:
* добавлен перевод на испанский язык
* исправлены ошибки
* улучшена обработка возникающих в ходе работы ошибок

Наконец-то получилось сделать свой образ на базе Xubuntu

Получилось сделать свою сборку на базе Xubuntu 18.04 с помощью программы перепаковки ISO Cubic (https://launchpad.net/~cubic-wizard/+archive/ubuntu/release).

Читать далее Наконец-то получилось сделать свой образ на базе Xubuntu