Некоторые пакеты, свои и чужие, я собираю вне хешера, на системе, где есть и сборочные зависимости других пакетов. Иногда я замечаю, что FindRequires/FindProvides как-то непривычно тормозит, а вот сегодня завершения работы /usr/lib/rpm/tex.req.files над boost-devel-headers я вообще не дождался. Простое rpm -ql boost-devel-headers | /usr/lib/rpm/tex.prov.files заняло больше 5 минут. Да, в boost-devel-headers сейчас 13258 файлов и каталогов, поэтому не удивительно, что shell не очень быстро это пережёввывает. Однако можно внести в usr/lib/rpm/tex.prov.files простое изменение, которое приведёт к быстрому ответу "нет" для тех файлов, которые к tex явно не имеют никакого отношения. Например: @@ -44,7 +44,7 @@ CheckPath() test ${1#${RPM_BUILD_ROOT-}${RPM_TEXMFMAIN:-/usr/share/texmf}-dist/tex/} != "$1" } -while IFS=$'\t' read -r f t; do +grep -F '/tex/' | while IFS=$'\t' read -r f t; do if CheckExt "$f" && CheckPath "$f"; then echo "$f" fi И, без наблюдаемых изменений в логике пакета, мы получим: $ time sh -c 'rpm -ql boost-devel-headers | /usr/lib/rpm/tex.prov.files' 0.05user 0.01system 0:00.05elapsed 115%CPU (0avgtext+0avgdata 13152maxresident)k 0inputs+0outputs (0major+3151minor)pagefaults 0swaps и я смогу дождаться завершения сборки буста. Нельзя ли внести какое-нибудь такое изменение в /usr/lib/rpm/tex.prov.files?
rpm-build-tex-0.4.5-alt1 -> sisyphus: Tue Dec 20 2022 Igor Vlasenko <viy@altlinux> 0.4.5-alt1 - optimized tex.(req/prov).files (closes: #44643)
Добавил grep. В принципе, если все равно достаточно долго, можно на C написать простой универсальный helper для rpm/*prov.files и rpm/*req.files опции --prefix (colon separated prefix) --ext (colon separated extencions) такое пригодится и для других rpm-build-*.