Добрый день! Обновление 1.0.1-alt6 сломало inkscape: inkscape: error while loading shared libraries: libinkscape_base.so: cannot open shared object file: No such file or directory Похоже, Вы забыли в /etc/ld.so.conf.d/ путь для libinkscape_base.so добавить, потому что вот так работает: LD_LIBRARY_PATH="/usr/lib64/inkscape/" inkscape
$ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf -Wd ./usr/bin/inkscape |grep -Fw RPATH 0x000000000000000f (RPATH) Library rpath: [$ORIGIN/../lib64/inkscape] Без смонтированного /proc $ORIGIN в RPATH не резолвится.
Попутно возникла идея на стадии сборки пакета, у которого в RPATH или RUNPATH присутствует $ORIGIN, автоматически громко добавлять /proc в зависимости.
(Ответ для Dmitry V. Levin на комментарий #1) > $ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf > -Wd ./usr/bin/inkscape |grep -Fw RPATH > 0x000000000000000f (RPATH) Library rpath: > [$ORIGIN/../lib64/inkscape] > > Без смонтированного /proc $ORIGIN в RPATH не резолвится. А хорош ли способ так задавать RPATH (относительный от $ORIGIN)? Но есть дело только в том, что у пользователя нет /proc ? (Ответ для Dmitry V. Levin на комментарий #2) > Попутно возникла идея на стадии сборки пакета, у которого в RPATH или > RUNPATH присутствует $ORIGIN, автоматически громко добавлять /proc в > зависимости. Два раза прочитал, что идея в том, что добавлять на стадии сборки пакета. Потом понял, что всё же в зависимости :) Крутая идея!
(In reply to Dmitry V. Levin from comment #1) > $ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf > -Wd ./usr/bin/inkscape |grep -Fw RPATH > 0x000000000000000f (RPATH) Library rpath: > [$ORIGIN/../lib64/inkscape] > > Без смонтированного /proc $ORIGIN в RPATH не резолвится. Ох как всё сложно, rpath я даже не думал смотреть. Поменьше бы нам rpath в пакетах. Но я уже мигрировал на rsvg-convert по твоему совету — так на самом деле лучше. (In reply to Dmitry V. Levin from comment #2) > Попутно возникла идея на стадии сборки пакета, у которого в RPATH или > RUNPATH присутствует $ORIGIN, автоматически громко добавлять /proc в > зависимости. Хорошая идея, поддерижваю.
(Ответ для Vitaly Lipatov на комментарий #3) > (Ответ для Dmitry V. Levin на комментарий #1) > > $ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf > > -Wd ./usr/bin/inkscape |grep -Fw RPATH > > 0x000000000000000f (RPATH) Library rpath: > > [$ORIGIN/../lib64/inkscape] > > > > Без смонтированного /proc $ORIGIN в RPATH не резолвится. > А хорош ли способ так задавать RPATH (относительный от $ORIGIN)? > Но есть дело только в том, что у пользователя нет /proc ? > > (Ответ для Dmitry V. Levin на комментарий #2) > > Попутно возникла идея на стадии сборки пакета, у которого в RPATH или > > RUNPATH присутствует $ORIGIN, автоматически громко добавлять /proc в > > зависимости. > Два раза прочитал, что идея в том, что добавлять на стадии сборки пакета. > Потом понял, что всё же в зависимости :) > Крутая идея! Перечитал ещё раз и понял, что это происходит при использовании inkscape во время сборки пакета. Правильно ли я задал RPATH? Нужно ли мне что-то сделать для починки или надеемся на реализацию идеи добавлять BuildRequires: /proc ?
(In reply to Vitaly Lipatov from comment #5) > надеемся на реализацию идеи добавлять > BuildRequires: /proc ? Идея - автоматически добавлять /proc в Requires таких пакетов, как нынешний inkscape.
(In reply to Vitaly Lipatov from comment #3) > (Ответ для Dmitry V. Levin на комментарий #1) > > $ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf > > -Wd ./usr/bin/inkscape |grep -Fw RPATH > > 0x000000000000000f (RPATH) Library rpath: > > [$ORIGIN/../lib64/inkscape] > > > > Без смонтированного /proc $ORIGIN в RPATH не резолвится. > А хорош ли способ так задавать RPATH (относительный от $ORIGIN)? Это вполне легальный способ, хотя %_libdir/%name было бы и проще, и не требовало бы /proc для работы. > То есть дело только в том, что у пользователя нет /proc ? В данном случае да, нынешний inkscape не запускается, если /proc не смонтирован.
(In reply to Vitaly Lipatov from comment #5) > Нужно ли мне что-то сделать для починки или надеемся на реализацию идеи добавлять BuildRequires: /proc ? Можно добавить в inkscape Requires: /proc пока не реализовано автоматическое создание подобных зависимостей. (In reply to Dmitry V. Levin from comment #7) > (In reply to Vitaly Lipatov from comment #3) > > (Ответ для Dmitry V. Levin на комментарий #1) > > > $ rpmpeek Sisyphus/files/x86_64/RPMS/inkscape-1.0.1-alt6.x86_64.rpm readelf > > > -Wd ./usr/bin/inkscape |grep -Fw RPATH > > > 0x000000000000000f (RPATH) Library rpath: > > > [$ORIGIN/../lib64/inkscape] > > > > > > Без смонтированного /proc $ORIGIN в RPATH не резолвится. > > А хорош ли способ так задавать RPATH (относительный от $ORIGIN)? > > Это вполне легальный способ, хотя %_libdir/%name было бы и проще, > и не требовало бы /proc для работы. Наверное, это следует учесть в генераторе зависимостей и добавлять Requires: /proc только для тех пакетов, где есть $ORIGIN в RPATH, а не для всех с RPATH. Или есть ещё случаи, когда нужен /proc, есть RPATH, но нет $ORIGIN?
inkscape-1.0.1-alt7 -> sisyphus: Tue Nov 10 2020 Vitaly Lipatov <lav@altlinux.ru> 1.0.1-alt7 - add Requires: /proc (ALT bug 39230)