Bug 50136 - После нового filesystem ищет данные в /share/qt5/resources
Summary: После нового filesystem ищет данные в /share/qt5/resources
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libqt5-core (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 critical
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 50121
  Show dependency tree
 
Reported: 2024-04-24 09:48 MSK by Sergei Naumov
Modified: 2024-04-27 15:11 MSK (History)
8 users (show)

See Also:


Attachments
Полный вывод предзагрузчика библиотек (23.16 KB, application/x-bzip2)
2024-04-24 10:05 MSK, Sergei Naumov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sergei Naumov 2024-04-24 09:48:09 MSK
После перехода на filesystem-3.1 перестал запускаться kmail. Видимо, не может правильно пути теперь находить:

[serge@yarilo ~]$ kmail
Path override failed for key base::DIR_QT_LIBRARY_DATA and path '/share/qt5/resources'
Installed Qt WebEngine locales directory not found at location /share/qt5/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /usr/bin/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/home/serge/.kmail2'
[0424/094406.142091:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_100p.pak
Some features may not be available.
[0424/094406.142119:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_200p.pak
Some features may not be available.
[0424/094406.142124:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources.pak
Some features may not be available.
[0424/094406.142132:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
Path override failed for key base::DIR_QT_LIBRARY_DATA and path '/share/qt5/resources'
Installed Qt WebEngine locales directory not found at location /share/qt5/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /usr/lib64/qt5/libexec/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/home/serge/.QtWebEngineProcess'
[0424/094406.164866:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_100p.pak
Some features may not be available.
[0424/094406.164913:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_200p.pak
Some features may not be available.
[0424/094406.164921:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources.pak
Some features may not be available.
Path override failed for key base::DIR_QT_LIBRARY_DATA and path '/share/qt5/resources'
Installed Qt WebEngine locales directory not found at location /share/qt5/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /usr/lib64/qt5/libexec/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/home/serge/.QtWebEngineProcess'
[0424/094406.165505:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_100p.pak
Some features may not be available.
[0424/094406.165535:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources_200p.pak
Some features may not be available.
[0424/094406.165540:ERROR:resource_bundle.cc(947)] Failed to load /share/qt5/resources/qtwebengine_resources.pak
Some features may not be available.
[0424/094406.165581:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
[0424/094406.166143:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale 
[5534:5534:0424/094406.168934:ERROR:extension_system_qt.cpp(121)] Failed to parse extension manifest.
*** KMail got signal 11 (Exiting)
*** Dead letters dumped.
KCrash: Application 'kmail' crashing...
The X11 connection broke: I/O error (code 1)
XIO:  fatal IO error 2 (Нет такого файла или каталога) on X server ":0"
      after 416 requests (416 known processed) with 0 events remaining.
QObject::killTimer: Timers cannot be stopped from another thread
QObject::~QObject: Timers cannot be stopped from another thread
KCrash: Attempting to start /usr/libexec/drkonqi
Comment 1 Sergei Naumov 2024-04-24 09:51:46 MSK
[serge@yarilo libexec]$ qtpaths --install-prefix
/share/qt5
Comment 2 Sergei Naumov 2024-04-24 10:00:54 MSK
https://bugreports.qt.io/browse/QTBUG-82589
Comment 3 Sergei Naumov 2024-04-24 10:05:55 MSK
Created attachment 15954 [details]
Полный вывод предзагрузчика библиотек

LD_DEBUG=libs /lib64/ld-linux-x86-64.so.2 --inhibit-cache /usr/bin/kmail
Comment 4 Sergey V Turchin 2024-04-24 10:09:36 MSK
(Ответ для Sergei Naumov на комментарий #0)
> path '/share/qt5/resources'
Где-то побились симлинки.
Comment 5 Sergey V Turchin 2024-04-24 10:12:42 MSK
А если сделать
ln -s /usr/share /share
?
Comment 6 Sergei Naumov 2024-04-24 10:13:51 MSK
(Ответ для Sergey V Turchin на комментарий #5)
> А если сделать
> ln -s /usr/share /share
> ?

Завелось
Comment 7 Sergei Naumov 2024-04-24 10:14:32 MSK
(Ответ для Sergei Naumov на комментарий #6)
> (Ответ для Sergey V Turchin на комментарий #5)
> > А если сделать
> > ln -s /usr/share /share
> > ?
> 
> Завелось

 Но это как-то не правильно - лепить в корень море симлинков...
Comment 8 Sergey V Turchin 2024-04-24 10:19:31 MSK
(Ответ для Sergei Naumov на комментарий #2)
> https://bugreports.qt.io/browse/QTBUG-82589
"Since /lib64 is a symlink to /usr/lib64, the paths /lib64/libQt5Core.so.5 an /usr/lib64/libQt5Core.so.5 are both valid."

Возможно, надо в filesystem добавить симлинк /share .
Comment 9 Sergey V Turchin 2024-04-24 10:22:57 MSK
Или где-то порядок поиска каталогов библиотек поменять. Если найду в Qt, закостылю.
Comment 10 Arseny Maslennikov 2024-04-24 10:38:04 MSK
(In reply to Sergey V Turchin from comment #8)
> (Ответ для Sergei Naumov на комментарий #2)
> > https://bugreports.qt.io/browse/QTBUG-82589
> "Since /lib64 is a symlink to /usr/lib64, the paths /lib64/libQt5Core.so.5
> an /usr/lib64/libQt5Core.so.5 are both valid."
> 
> Возможно, надо в filesystem добавить симлинк /share .

Как у вас выглядит переменная PATH?
Comment 11 Arseny Maslennikov 2024-04-24 10:39:56 MSK
(In reply to Sergei Naumov from comment #0)
> После перехода на filesystem-3.1 перестал запускаться kmail. Видимо, не
> может правильно пути теперь находить:
> 
> [serge@yarilo ~]$ kmail
> Path override failed for key base::DIR_QT_LIBRARY_DATA and path
> '/share/qt5/resources'

Вопрос про PATH у меня был сюда, не туда его задал сначала.

> *** KMail got signal 11 (Exiting)
> *** Dead letters dumped.
> KCrash: Application 'kmail' crashing...
> The X11 connection broke: I/O error (code 1)
> XIO:  fatal IO error 2 (Нет такого файла или каталога) on X server ":0"
>       after 416 requests (416 known processed) with 0 events remaining.
> QObject::killTimer: Timers cannot be stopped from another thread
> QObject::~QObject: Timers cannot be stopped from another thread
> KCrash: Attempting to start /usr/libexec/drkonqi
Comment 12 Sergei Naumov 2024-04-24 10:47:21 MSK
(Ответ для Arseny Maslennikov на комментарий #10)
> (In reply to Sergey V Turchin from comment #8)
> > (Ответ для Sergei Naumov на комментарий #2)
> > > https://bugreports.qt.io/browse/QTBUG-82589
> > "Since /lib64 is a symlink to /usr/lib64, the paths /lib64/libQt5Core.so.5
> > an /usr/lib64/libQt5Core.so.5 are both valid."
> > 
> > Возможно, надо в filesystem добавить симлинк /share .
> 
> Как у вас выглядит переменная PATH?

А PATH разве влияет на это?

/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/var/cache/ruby/gemie/bin:/usr/lib/rvm/bin:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/home/serge/bin:/usr/bin:/bin:/usr/local/bin:/usr/lib/kf5/bin:/usr/games:/var/cache/ruby/gemie/bin:/usr/lib/ruby/bin:/usr/bin:/bin
Comment 13 Arseny Maslennikov 2024-04-24 11:00:38 MSK
(In reply to Sergei Naumov from comment #0)
> После перехода на filesystem-3.1 перестал запускаться kmail. Видимо, не
> может правильно пути теперь находить:
> 
> [serge@yarilo ~]$ kmail
> Path override failed for key base::DIR_QT_LIBRARY_DATA and path
> '/share/qt5/resources'

Упаковывать /share должно быть не нужно.

Вообще очень интересно, относительно чего здесь пытаются найти этот каталог qt5/resources. Как вариант, относительно /proc/self/exe, поэтому я и задал вопрос про PATH. Если по другому какому-то принципу, то может помочь пересборка пакета.
Comment 14 Sergey V Turchin 2024-04-24 11:15:41 MSK
Qt вычисляет свой prefix неправильно в зависимости от положения libQt5Core.so.5. Я ещё не докопал.
Comment 15 Arseny Maslennikov 2024-04-24 11:40:04 MSK
(In reply to Sergei Naumov from comment #12)
> (Ответ для Arseny Maslennikov на комментарий #10)
> > (In reply to Sergey V Turchin from comment #8)
> > > (Ответ для Sergei Naumov на комментарий #2)
> > > > https://bugreports.qt.io/browse/QTBUG-82589
> > > "Since /lib64 is a symlink to /usr/lib64, the paths /lib64/libQt5Core.so.5
> > > an /usr/lib64/libQt5Core.so.5 are both valid."
> > > 
> > > Возможно, надо в filesystem добавить симлинк /share .
> > 
> > Как у вас выглядит переменная PATH?
> 
> А PATH разве влияет на это?

Если /bin был бы перед /usr/bin, то да. Перед отправкой filesystem 3 в сизиф обнаружили, что из-за этого десятки пакетов не могли собраться из исходников. Главным виновником пира духа был cmake, он обнаруживал себя в /bin/cmake и относительно этого пути лез в /lib64/cmake и в /share/cmake.
Comment 16 Sergey V Turchin 2024-04-24 14:37:57 MSK
Проблема в том, что при использовании dladdr() он заполняет Dl_info.dli_fname как /lib64/libQt5Core.so.5, а не как /usr/lib64/libQt5Core.so.5 , из которого и вычисляется Qt-шный prefix.
Получается, надо выбор:
* Добавить симлинк /share
* Возвращать правильное положение библиотеки.
Comment 17 Arseny Maslennikov 2024-04-24 14:52:22 MSK
(In reply to Sergei Naumov from comment #0)
> После перехода на filesystem-3.1 перестал запускаться kmail. Видимо, не
> может правильно пути теперь находить:
> 
> [serge@yarilo ~]$ kmail
> Path override failed for key base::DIR_QT_LIBRARY_DATA and path
> '/share/qt5/resources'

Я, когда увидел эту багу, прозевал comment 1, 2 и 3 за огромным description, хотя из этих комментов всё становится ясно; что ув. zerg@ только что и подтвердил.
Comment 18 Arseny Maslennikov 2024-04-24 14:54:03 MSK
(In reply to Sergey V Turchin from comment #16)
> Проблема в том, что при использовании dladdr() он заполняет
> Dl_info.dli_fname как /lib64/libQt5Core.so.5, а не как
> /usr/lib64/libQt5Core.so.5 , из которого и вычисляется Qt-шный prefix.
> Получается, надо выбор:
> * Добавить симлинк /share
> * Возвращать правильное положение библиотеки.

Правильное положение библиотек у нас в %_libdir. Видимо, нужно из dynamic linker search path выкинуть /%_lib, но тогда такой dynamic linker станет несовместим с filesystem < 3.

Обращение к /share возникает уже как следствие, так что это точно не вариант. Пойдёт разве что как workaround ручной, чтобы qt5/resources можно сейчас было найти.
Comment 19 Sergey V Turchin 2024-04-24 14:55:29 MSK
(Ответ для Arseny Maslennikov на комментарий #18)
> Обращение к /share возникает уже как следствие, так что это точно не
> вариант.
Да, костыль.
Comment 20 Антон Мидюков 2024-04-24 15:01:28 MSK
(Ответ для Arseny Maslennikov на комментарий #18)
> (In reply to Sergey V Turchin from comment #16)
> > Проблема в том, что при использовании dladdr() он заполняет
> > Dl_info.dli_fname как /lib64/libQt5Core.so.5, а не как
> > /usr/lib64/libQt5Core.so.5 , из которого и вычисляется Qt-шный prefix.
> > Получается, надо выбор:
> > * Добавить симлинк /share
> > * Возвращать правильное положение библиотеки.
> 
> Правильное положение библиотек у нас в %_libdir. Видимо, нужно из dynamic
> linker search path выкинуть /%_lib, но тогда такой dynamic linker станет
> несовместим с filesystem < 3.
> 

А у него порядок поиска в каталогах поменять нельзя? Чтобы сначала %_libdir, а уже потом %_lib
Comment 21 Arseny Maslennikov 2024-04-24 15:17:51 MSK
(In reply to Антон Мидюков from comment #20)
> (Ответ для Arseny Maslennikov на комментарий #18)
> > (In reply to Sergey V Turchin from comment #16)
> > > Проблема в том, что при использовании dladdr() он заполняет
> > > Dl_info.dli_fname как /lib64/libQt5Core.so.5, а не как
> > > /usr/lib64/libQt5Core.so.5 , из которого и вычисляется Qt-шный prefix.
> > > Получается, надо выбор:
> > > * Добавить симлинк /share
> > > * Возвращать правильное положение библиотеки.
> > 
> > Правильное положение библиотек у нас в %_libdir. Видимо, нужно из dynamic
> > linker search path выкинуть /%_lib, но тогда такой dynamic linker станет
> > несовместим с filesystem < 3.
> 
> А у него порядок поиска в каталогах поменять нельзя? Чтобы сначала %_libdir,
> а уже потом %_lib

Это лучше с точки зрения совместимости.
Но тогда возникает вопрос, сломает ли это что-нибудь на unmerged-usr, если такая glibc попадёт в такую систему в результате точечного обновления.
Comment 22 Sergey V Turchin 2024-04-24 15:19:31 MSK
(Ответ для Arseny Maslennikov на комментарий #21)
[...]
> Но тогда возникает вопрос, сломает ли это что-нибудь на unmerged-usr, если
> такая glibc попадёт в такую систему в результате точечного обновления.
При сборке пакета это можно определить.
Comment 23 Антон Мидюков 2024-04-24 15:22:07 MSK
(Ответ для Arseny Maslennikov на комментарий #21)
> (In reply to Антон Мидюков from comment #20)
> > (Ответ для Arseny Maslennikov на комментарий #18)
> > > (In reply to Sergey V Turchin from comment #16)
> > > > Проблема в том, что при использовании dladdr() он заполняет
> > > > Dl_info.dli_fname как /lib64/libQt5Core.so.5, а не как
> > > > /usr/lib64/libQt5Core.so.5 , из которого и вычисляется Qt-шный prefix.
> > > > Получается, надо выбор:
> > > > * Добавить симлинк /share
> > > > * Возвращать правильное положение библиотеки.
> > > 
> > > Правильное положение библиотек у нас в %_libdir. Видимо, нужно из dynamic
> > > linker search path выкинуть /%_lib, но тогда такой dynamic linker станет
> > > несовместим с filesystem < 3.
> > 
> > А у него порядок поиска в каталогах поменять нельзя? Чтобы сначала %_libdir,
> > а уже потом %_lib
> 
> Это лучше с точки зрения совместимости.
> Но тогда возникает вопрос, сломает ли это что-нибудь на unmerged-usr, если
> такая glibc попадёт в такую систему в результате точечного обновления.

Зависимость на filesystem > 3 сделать?
Comment 24 Gleb F-Malinovskiy 2024-04-24 15:44:09 MSK
(In reply to Sergey V Turchin from comment #8)
> Возможно, надо в filesystem добавить симлинк /share .
Надеюсь, это шутка.

(In reply to Arseny Maslennikov from comment #18)
> Правильное положение библиотек у нас в %_libdir. Видимо, нужно из dynamic
> linker search path выкинуть /%_lib, но тогда такой dynamic linker станет
> несовместим с filesystem < 3.
Именно поэтому мы не можем этого сделать.  С другой стороны, я не вижу, чтобы Fedora, например, это делали.  Разберитесь, пожалуйста, как у них работает.

(In reply to Sergei Naumov from comment #2)
> https://bugreports.qt.io/browse/QTBUG-82589
Там есть совершенно резонный комментарий, что дистрибутивам стоит выключать фичу relocatable (https://bugreports.qt.io/browse/QTBUG-82589#comment-500552).
Comment 25 Sergey V Turchin 2024-04-24 15:56:03 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #24)
> > Возможно, надо в filesystem добавить симлинк /share .
> Надеюсь, это шутка.
Шутка, шутка.
Исправьте линкер, чтоб возвращал правильное положение. Это не шутка. ;-)
Comment 26 Sergey V Turchin 2024-04-24 15:59:28 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #24)
> Там есть совершенно резонный комментарий, что дистрибутивам стоит выключать
> фичу relocatable
> (https://bugreports.qt.io/browse/QTBUG-82589#comment-500552).
Да. Ещё и с костылём. https://src.fedoraproject.org/rpms/qt5-qtbase/blob/rawhide/f/qtbase-everywhere-src-5.14.2-no_relocatable.patch

Ок, пошёл костылить, а то вас как обычно сложно уговорить. ;-)
Comment 27 Sergey V Turchin 2024-04-24 17:15:51 MSK
(Ответ для Sergey V Turchin на комментарий #26)
> Ок, пошёл костылить, а то вас как обычно сложно уговорить. ;-)
И это тоже стало не так, как раньше, поэтому требует тестирования.
Comment 28 Gleb F-Malinovskiy 2024-04-24 17:20:12 MSK
(In reply to Sergey V Turchin from comment #26)
> Ок, пошёл костылить, а то вас как обычно сложно уговорить. ;-)
Сломать системы всем, кто ещё не мигрировал?  Сложно, да. :)

(In reply to Sergey V Turchin from comment #26)
> (Ответ для Gleb F-Malinovskiy на комментарий #24)
> > Там есть совершенно резонный комментарий, что дистрибутивам стоит выключать
> > фичу relocatable
> > (https://bugreports.qt.io/browse/QTBUG-82589#comment-500552).
> Да. Ещё и с костылём.
> https://src.fedoraproject.org/rpms/qt5-qtbase/blob/rawhide/f/qtbase-
> everywhere-src-5.14.2-no_relocatable.patch
Патч же по сути просто из-за того, что у них штатный выключатель no_relocatable не работает?  Интересно, почему.
Comment 29 Sergey V Turchin 2024-04-25 09:58:27 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #28)
> > Ок, пошёл костылить, а то вас как обычно сложно уговорить. ;-)
> Сломать системы всем, кто ещё не мигрировал?  Сложно, да. :)
Это напоминает "режим Димы": делать вид, что не понятно, о чём речь.

Я повешу отдельный баг.
Comment 30 Sergey V Turchin 2024-04-25 09:59:31 MSK
Конкретно этот баг: отправил на сборку qt5-base-5.15.13-alt2
Comment 31 Sergey V Turchin 2024-04-25 10:52:23 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #24)
> Там есть совершенно резонный комментарий, что дистрибутивам стоит выключать
> фичу relocatable
> (https://bugreports.qt.io/browse/QTBUG-82589#comment-500552).

Да, там пишут: почините резолвер или используйте костыль из Qt.

https://bugreports.qt.io/browse/QTBUG-82589?focusedId=500548#comment-500548
Comment 32 Gleb F-Malinovskiy 2024-04-27 14:15:41 MSK
(In reply to Sergey V Turchin from comment #31)
> https://bugreports.qt.io/browse/QTBUG-82589?focusedId=500548#comment-500548
Там написано «выключить [штатную] фичу qt», которая и не должна была никогда быть включена в дистрибутиве.  Я не понимаю, почему Fedora пришлось выключать этот режим через патч.  Надеюсь, ты разобрался и можешь нам рассказать.
Comment 33 Sergey V Turchin 2024-04-27 14:45:00 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #32)
> > https://bugreports.qt.io/browse/QTBUG-82589?focusedId=500548#comment-500548
> Там написано «выключить [штатную] фичу qt», которая и не должна была никогда
> быть включена в дистрибутиве.
Нет. Там написано, "нештатно выключить фичу qt", которая у всех по умолчанию включена.

>  Я не понимаю, почему Fedora пришлось выключать этот режим через патч.
Не так. Они выключили, но пришлось ещё и патчить.
Судя по вырезанной getExtPrefixFromHostBinDir() с /usr/bin та же самая ерунда.
Comment 34 Gleb F-Malinovskiy 2024-04-27 14:54:42 MSK
(In reply to Sergey V Turchin from comment #33)
> (Ответ для Gleb F-Malinovskiy на комментарий #32)
> > > https://bugreports.qt.io/browse/QTBUG-82589?focusedId=500548#comment-500548
> > Там написано «выключить [штатную] фичу qt», которая и не должна была никогда
> > быть включена в дистрибутиве.
> Нет. Там написано, "нештатно выключить фичу qt",
Где?

> которая у всех по умолчанию включена.
Да, по умолчанию включена, но для дистрибутива, очевидно, ошибка её не выключить.
Comment 35 Sergey V Turchin 2024-04-27 15:11:02 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #34)
> > Нет. Там написано, "нештатно выключить фичу qt",
> Где?
Использовать опцию -*no*-feature-relocatable, которая по умолчанию не *no*.
Там много всяких других опций, которые на надо просто так отключать.
И эту ни разу в жизни не надо было.
И в Fedora её сравнительно недавно включили. Видимо, как наступили на те же грабли, только раньше.