LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

И что кстати делает строка:

Наверное устанавливает в переменную окружения (?) xkbconfigroot значение выхлопа команды pkg-config --variable=xkb_base xkeyboard-config.

Дальше. Я комплировал Qt5 как при помощи SPEC-файла с установкой в /usr, так и вручную. RPM-ка в итоге нормально работает,

Путь сборки Qt через RPM-пакет полезен и удобен когда тебе нужно внести изменения в системный Qt, использование сборочной системы RPM-пакетов (DEB, и любой другой тоже) позволяет добиться консистентности и ты точно уверен что все патчи дистростроителей накладываются перед сборкой.

В общем, я запускаю мою программу на Qt5 на другом компьютере, и там квадратики вместо символов. Запускаю из командной строки, и узнаю, что не найдена директория /home/zenitur/qt5-build/src/fonts. Притом что на целевом компьютере директории /home/zenitur и близко нет. Как оно так скомпилировалось, что местоположение шрифтов оказалось закардкожено на мой «хомяк»?

Обычно такое бывает, если Qt у тебя собрался без поддержки fontconfig.

И это не говоря уж о неободимости таскать вместе с программой - файл libqxcb.so и директорию platforms. Вот было же так просто во времена Qt4, когда можно было просто положить libQt4Core и libQt4Gui, и всё!

А ещё plugins/imageformats и др. Да, с Qt 4 было очень просто, поскольку там не было такой абстракции, как QPA. А вот Qt 5 стал более модульным и сложным в деплое. В Qt 6 модульность увеличили ещё сильнее. С точки зрения правильности архитектуры Qt на правильном пути. Если раньше в Qt 4 захардкоживался xcb-backend и тупо всё, чтобы что-то изменить тебе нужно было пересобирать весь Qt, то в Qt 5 с внедрением QPA портирование фрейморка на другие технологии выполнить гораздо проще. Сообщество начало переходить на Wayland? Через QPA реализуется поддержка этого протокола и при запуске программа на Qt выберет либо libxcb.so, либо libqwayland-egl.so в зависимости от обстоятельств. Захотели реализовать какой-нибудь Vulkan-backend или OpenGL-backend рендеринг Qt Widgets? Нет проблем сделать его в рамках QPA. И т. д.

Но за эту гибкость пришлось заплатить многократным усложнением деплоя и увеличением размера дистрибутива приложения.

Исходная версия EXL, :

И что кстати делает строка:

Наверное устанавливает в переменную окружения (?) xkbconfigroot значение выхлопа команды pkg-config --variable=xkb_base xkeyboard-config.

Дальше. Я комплировал Qt5 как при помощи SPEC-файла с установкой в /usr, так и вручную. RPM-ка в итоге нормально работает,

Путь сборки Qt через RPM-пакет полезен и удобен когда тебе нужно внести изменения в системный Qt, использование сборочной системы RPM-пакетов (DEB, и любой другой тоже) позволяет добиться консистентности и ты точно уверен что все патчи дистростроителей накладываются перед сборкой.

В общем, я запускаю мою программу на Qt5 на другом компьютере, и там квадратики вместо символов. Запускаю из командной строки, и узнаю, что не найдена директория /home/zenitur/qt5-build/src/fonts. Притом что на целевом компьютере директории /home/zenitur и близко нет. Как оно так скомпилировалось, что местоположение шрифтов оказалось закардкожено на мой «хомяк»?

Обычно такое бывает, если Qt у тебя собрался без поддержки fontconfig.

И это не говоря уж о неободимости таскать вместе с программой - файл libqxcb.so и директорию platforms. Вот было же так просто во времена Qt4, когда можно было просто положить libQt4Core и libQt4Gui, и всё!

А ещё plugins/imageformats и др. Да, с Qt 4 было очень просто, поскольку там не было такой абстракции, как QPA. А вот Qt 5 стал более модульным и сложным в деплое. В Qt 6 модульность увеличили ещё сильнее. С точки зрения правильности архитектуры Qt на правильном пути. Если раньше в Qt 4 захардкоживался xcb-backend и тупо всё, чтобы что-то изменить тебе нужно было пересобирать весь Qt, то в Qt 5 с внедрением QPA портирование фрейморка на другие технологии выполнить гораздо проще. Сообщество начало переходить на Wayland? Через QPA реализуется поддержка этого протокола и при запуске программа на Qt выберет либо libxcb.so, либо libqwayland-egl.so в зависимости от обстоятельств. Захотели реализовать какой-нибудь Vulkan-backend или OpenGL-backend рендеринг Qt Widgets? Нет проблем сделать его в рамках QPA. И т. д.

Но за эту гибкость пришлось заплатить многократным усложнением деплоя.