В RPM есть Requires - то, что пакету нужно для работы, а есть Provides - то, что пакет предоставляет.
Есть автоматически генераторы Provides, Requires и других тегов.
Оф. дока по ним здесь:
https://rpm.org/user_doc/dependency_generators (про генераторы OrderWithRequires, которые я доабвлял в апстриме, там еще не написано)
Разберем на примере typelib().
Есть скрипт
https://abf.io/import/gobject-introspection/blob/rosa2019.1/gi-find-deps.shОн ищет файлы *.typelib и добавляет в пакет, их содержащий, соответствующий провайд, например, находит файл zalupe.typelib и добавляет: "Provides: typelib(zalupa)"
Этот же скрипт может искать Requires. Конкретно в нем реализация так себе и работает очень медленно, из-за чего у тебя и было подвисание (
https://t.me/archlinux_ru/1014759), ее бы улучшить, но пока лучше такая, чем никакая, хотя бы что-то из зависимостей, да находит, снижая риск, что пользователь установит пакет, а для работы чего-то не будет хватать, т.к. у мейтейнера на компе это и так стояло и он не заметил, что пропустил зависимость при прописывании вручную.
Аналогично pkgconfig():
https://github.com/rpm-software-management/rpm/blob/rpm-4.16.x/scripts/pkgconfigdeps.sh