LINUX.ORG.RU

Как заставить систему использовать левый qtbase, но чтобы были видны плагины

 ,


0

1

из системного qtbase типа okular, plasma и тому подобных. Я запилил кое-какую модификацию для Qt из dev ветки и хочу сейчас сделать, чтобы все Qt приложения использовали пропатченный qtbase, чтобы хорошенько протестировать, что все работает хорошо, но мне не хочется компилировать из исходников вообще все модули Qt, все либы KDE и приложения, чтобы в cmake можно было указать какой именно qtbase использовать для какого-нить dolphin'а.

Ответ на: комментарий от ncuxer

Kubuntu. Пересобрать - в смысле через apt-get source libqt5gui5 получить текущий исходник, в него сделать бэкпорт моих изменений, а потом собрать .deb пакет и установить вместо того, что сейчас в системе?

SilverRain
() автор топика
Ответ на: комментарий от ncuxer

С ln -s можно огрести неожиданные проблемы

И вернуться обратно одним движением мизинца. А с конпиляцией ты в предыдущее состояние уже не вернёшься без плясок.

deep-purple ★★★★★
()

Можно установить Qt в отдельный префикс и подгрущить с помощью LD_LIBRARY_PATH (или LD_PRELOAD, если кто-то будет упираться). И никаких симлинков не надо.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Тогда надо все Qt собирать, а еще плагины всякие KDE'шные. Мне надо провести глубокое тестирование, а для этого надо денек-другой погонять систему с пропатченным Qt, прежде чем слать патч разрабам.

SilverRain
() автор топика
Ответ на: комментарий от deep-purple

Мне такая идея нравится. Сегодня не успел закончить, завтра так попробую сделать, но еще внутри нового qtbase plugins заменю ссылкой на оригинальную директорию plugins, где лежать плагины okular, plasma и т.д.

А в процессе такой подмены у меня весь пол системы не сломается из-за краткосрочной пропажи либ Qt, которые нужны для работы?

SilverRain
() автор топика
Ответ на: комментарий от annulen

А подменять можно вообще только одну либу из собранных - ту в которой патч. Задаешь ее путь в LD_PRELOAD и все начинают ее использовать

annulen ★★★★★
()
Ответ на: комментарий от annulen
andrey@Switch-SA5-271P:~/.temp/Qt-dev1/qt5/qtbase$ LD_PRELOAD=/home/andrey/.local/Qt-dev1/lib/libQt5Gui.so dolphin
dolphin: relocation error: /lib/x86_64-linux-gnu/libQt5Quick.so.5: symbol _ZN14QDistanceFieldC1ERKS_ version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference

Не прокатывает так... У меня тут все-же dev ветка, а система использует 5.12.2.

SilverRain
() автор топика
Ответ на: комментарий от annulen

Эхх. Придется, похоже, изменения в исходник .deb пакета 5.12.2 из реп бубунты переносить переносить потом.

SilverRain
() автор топика
Ответ на: комментарий от SilverRain

Необязательно. Достаточно собрать 5.12.х с требуемым патчем, либо подменять Qt целиком (так чтобы LD_PRELOAD не приводил к ошибкам)

annulen ★★★★★
()
Ответ на: комментарий от ox55ff

Все равно нужно собирать qtbase стянутый из репов убунты и накладывать свой патч. В убунту же свои патчи еще накладываются от мейнтейнеров

ncuxer
()
Ответ на: комментарий от ncuxer

С той же версией 5.12.2 без патча все запустилось при подмене. Правда, с плагинами какая-то ерунда, но методом научного тыка удалось и dolphin нормально запустить.

SilverRain
() автор топика
Ответ на: комментарий от annulen

Спасибо. Тестирование на kde'шных программах очень помогло выявить несколько ошибок.

SilverRain
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.