Приветствую. Каковы у нас должны быть правильные зависимости на приватные библиотеки? На данный момент, при опакечивании приложения слинкованного с библиотеками содержащимися в пакете virtualbox -- я получаю пакет автозависимости которого не могут быть удовлетворены оным пакетом virtuflbox, содержащим требуемые библиотеки по факту. Т. е.: $ hsh-install /tmp/.private/solo/hasher-vd vbox-app ... Следующие пакеты имеют неудовлетворенные зависимости: vbox-app: Требует: /usr/lib64/virtualbox/VBoxRT.so но пакет не может быть установлен Требует: /usr/lib64/virtualbox/VBoxXPCOM.so но пакет не может быть установлен E: Извините, `битые' пакеты Причина: 1. В пакете приложения для библиотек virtualbox`а прописаны _файловые_ зависимости: $ rpm -qpR vbox-app-1.0.0-alt1.x86_64.rpm ... /usr/lib64/virtualbox/VBoxRT.so /usr/lib64/virtualbox/VBoxXPCOM.so 2. А virtualbox для своих библиотек предоставляет зависимости _библиотечные_: $ rpm -qp --provides virtualbox-4.3.30-alt2.x86_64.rpm ... /usr/lib64/virtualbox/VBoxRT.so()(64bit) = set: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 ... /usr/lib64/virtualbox/VBoxXPCOM.so()(64bit) = set:odOgrzsNETguyJOs82jfzzU9G9FZ9Flb9fcgR3dWPr5byiJleTklKPAszLKauoJ3O1PHzsanbL Причины: 1. В спеке virtualbox (см. ) присутствует строка: %add_findprov_lib_path %vboxdir где %vboxdir -- каталог с приватными библиотеками (%_libdir/virtualbox). Строка добавлена на заре пакета (см. ) и скорее всего до сих пор нужна. 2. При сборке vbox-app, на этапе поиска зависимости отрабатывает скрипт /usr/lib/rpm/lib.req (см. ), содержащий код проверки местоположения слинкованных библиотек: [ -n "${RPM_LIBDIR-}" ] || RPM_LIBDIR=`rpm --eval %_libdir` [ -n "${RPM_LIB-}" ] || RPM_LIB=`rpm --eval %_lib` [ -n "${RPM_ARCH-}" ] || RPM_ARCH=`rpm --eval %_arch` RPM_FINDREQ_RPATH="/$RPM_LIB $RPM_LIBDIR $("$dump_ld_config")" [ -z "${RPM_BUILD_ROOT-}" ] || RPM_FINDREQ_RPATH="$("$dump_ld_config" '' "$RPM_BUILD_ROOT") $RPM_FINDREQ_RPATH" Debug "RPM_FINDREQ_RPATH=$RPM_FINDREQ_RPATH" ... LibReq() { ... for vers in `printf '%s\n' "$dump" |"$shlib_req"`; do name="$(printf %s "$vers" |cut -d: -f1)" vers="$(printf %s "$vers" |cut -d: -f2-)" ... for dir in $RPM_FINDREQ_RPATH; do if [ "$canon_prefix" = "$dir" ]; then prefix= break fi done [ -z "$prefix" ] || prefix="$prefix/" local filedep= if [ -n "$prefix" ]; then if [ -n "$under_buildroot" ]; then filedep=1 elif [ -z "$vers" ]; then filedep=1 fi fi if [ -n "$filedep" ]; then printf '%s\n' "$pathname" printf '%s\n' "$orig_pathname" >>"$tmpdir"/a/flib continue fi ... В общем, выполнение данного кода приводит к тому, что для требуемых библиотек генерируются файловые зависимости, т. к.: а) требуемые библиотеки virtualbox расположены в каталоге отличном от перечисленных в $RPM_FINDREQ_RPATH => $prefix не очищается; б) $vers для данных библиотек пуст, что вместе с предыдущим пунктом (а) приводит к выставлению filedep=1; в) непустой filedep приводит к генерации файловой зависимости... Для исправления ситуации вижу следующие варианты: 1. Добавить путь к библиотекам virtualbox в список стандартных путей поиска библиотек, через некий /etc/ld.so.conf.d/virtualbox.conf. 2. Доработать /usr/lib/rpm/lib.req так, чтобы ему можно было передать список путей, где ненужно заменять библиотечные зависимости на файловые. По аналогии с %_findprov_lib_path (отображаемый на $RPM_FINDPROV_LIB_PATH) для /usr/lib/rpm/lib.prov. 3. Добавить в virtualbox предоставление файловых зависимостей для библиотек (через %filter_from_provides, см. ). 4. В собираемом пакете заменять (через filter_from_requires, см. ) файловые зависимости на эрзац библиотечных, без версионной части (set:...). В какую сторону двигаться? -- С уважением. Алексей.