| Summary: | Неправильнаая конфигурация qmake-qt6 в пакете qt6-qtbase | ||
|---|---|---|---|
| Product: | [ROSA-based products] ROSA Fresh | Reporter: | Mikhail Terekhov <termim> |
| Component: | Packages from Main | Assignee: | ROSA Linux Bugs <bugs> |
| Status: | RESOLVED FIXED | QA Contact: | ROSA Linux Bugs <bugs> |
| Severity: | normal | ||
| Priority: | Normal | CC: | alexander, m.novosyolov, victorr2007 |
| Version: | Plasma5 | ||
| Target Milestone: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Platform: | 2023.1 | ROSA Vulnerability identifier: | |
| RPM Package: | ISO-related: | ||
| Bad POT generating: | Upstream: | ||
| Attachments: |
вывод qmake-qt6 в Роса 2021.1
вывод qmake-qt6 в Роса 2023.1 вывод qmake-qt6 в SuSE-15.5 Вывод strace-qmake-qt6 Нстройка сборок. strace qmake-qt6 -query lib64 |
||
|
Description
Mikhail Terekhov
2023-12-20 02:41:18 MSK
Я уже просил, что в случае заполнения бага писать АРХИТЕКТУРУ. Ну вот например вывод у меня со сборочницы 2023 aarch64 Все работает [omv@19804b7adc67 ~]$ qmake-qt6 -query Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. QT_SYSROOT: QT_INSTALL_PREFIX:/usr QT_INSTALL_ARCHDATA:/usr/lib64/qt6 QT_INSTALL_DATA:/usr/share/qt6 QT_INSTALL_DOCS:/usr/share/doc/qt6 QT_INSTALL_HEADERS:/usr/include/qt6 QT_INSTALL_LIBS:/usr/lib64 QT_INSTALL_LIBEXECS:/usr/lib64/qt6/libexec QT_INSTALL_BINS:/usr/lib64/qt6/bin QT_INSTALL_TESTS:/usr/tests QT_INSTALL_PLUGINS:/usr/lib64/qt6/plugins QT_INSTALL_QML:/usr/lib64/qt6/qml QT_INSTALL_TRANSLATIONS:/usr/share/qt6/translations QT_INSTALL_CONFIGURATION: QT_INSTALL_EXAMPLES:/usr/lib64/qt6/examples QT_INSTALL_DEMOS:/usr/lib64/qt6/examples QT_HOST_PREFIX:/usr QT_HOST_DATA:/usr/lib64/qt6 QT_HOST_BINS:/usr/lib64/qt6/bin QT_HOST_LIBEXECS:/usr/lib64/qt6/libexec QT_HOST_LIBS:/usr/lib64 QMAKE_SPEC:linux-g++ QMAKE_XSPEC:linux-g++ QMAKE_VERSION:3.1 QT_VERSION:6.6.1 Кроме того вот этот query он откуда взялся-то? Какая предыистория нахождения проблемы? В который раз пишу: ВСЕ ЭТО НУЖНО ОПИСЫВАТЬ. Саша, не нервничай так сильно)) Архитектура:
src> uname -a
Linux hp 6.1.58-generic-4rosa2023.1-x86_64 #1 SMP PREEMPT_DYNAMIC Sat Dec 9 08:22:14 UTC 2023 x86_64 x86_64 GNU/Linux
Я пытаюсь собрать QScintilla для Qt6. Компиляция падает вот с такими ошибками:
+ cd QScintilla_src-2.14.1
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ export QMAKEFEATURES=/home/termim/rpmbuild/BUILD/QScintilla_src-2.14.1/src/features
+ QMAKEFEATURES=/home/termim/rpmbuild/BUILD/QScintilla_src-2.14.1/src/features
+ pushd src
~/rpmbuild/BUILD/QScintilla_src-2.14.1/src ~/rpmbuild/BUILD/QScintilla_src-2.14.1
+ qmake-qt6 qscintilla.pro
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
Info: creating stash file /home/termim/rpmbuild/BUILD/QScintilla_src-2.14.1/src/.qmake.stash
+ /usr/bin/make -O -j4 V=1 VERBOSE=1
g++ -c -pipe -O2 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -w -fPIC -DQSCINTILLA_MAKE_DLL -DSCINTILLA_QT -DSCI_LEXER -DINCLUDE_DEPRECATED_FEATURES -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I../scintilla/include -I../scintilla/lexlib -I../scintilla/src -I/include/qt6 -I/include/qt6/QtPrintSupport -I/include/qt6/QtWidgets -I/include/qt6/QtGui -I/include/qt6/QtCore -I. -I/lib64/qt6/mkspecs/linux-g++ -o qsciscintilla.o qsciscintilla.cpp
In file included from qsciscintilla.cpp:23:
Qsci/qsciscintilla.h:25:10: fatal error: QByteArray: No such file or directory
25 | #include <QByteArray>
| ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:1764: qsciscintilla.o] Error 1
Т.е. в сгенерированном Makefile неправильные пути к инклудам и библиотекам.
Отсюда взялся -query.
Версии пакетов:
src> rpm -qa | grep qt6-qtbase
qt6-qtbase-tools-6.6.1-1.x86_64
qt6-qtbase-theme-gtk3-6.6.1-1.x86_64
qt6-qtbase-build-deps-6.2.2-3.x86_64
Какая ещё информация могла бы быть полезной?
Ещё вопрос - в qt6-qtbase rpm макросы устанавливаются после билда, как они тогда доступны в %build ? Может их лучше вынести в отдельный пакет как в Qt5? Значит на сборочнице aarch64 каким-то образом были установлены qt6 макросы во время билда qt6-qtbase. (In reply to Mikhail Terekhov from comment #5) > Ещё вопрос - в qt6-qtbase rpm макросы устанавливаются после билда, как они > тогда доступны в %build ? > Может их лучше вынести в отдельный пакет как в Qt5? Не стоит. Для сборки приложений qt6 в спек всегда нужно добавлять BuildRequires: qt6-cmake > Не стоит.
> Для сборки приложений qt6 в спек всегда нужно добавлять
>
> BuildRequires: qt6-cmake
Не обязательно и не в этом дело.
Дело в том, сто qmake всё ещё поддерживается в Qt6, и некоторые приложения (тот же QScintilla) используют qmake, а не cmake. А, на данный момент, qmake сконфигурирован неверно.
У меня подозрение что причина это то, что во время билда qt6-qtbase qt6 макросы в чистой сборочнице (где не установлена предыдущая версия qt6-qtbase) не установлены и в qmake зашиваются неправильные пути.
Т.е. получается, что qt6-qtbase зависит сам от себя во время билда.
(In reply to Mikhail Terekhov from comment #8) > > Не стоит. > > Для сборки приложений qt6 в спек всегда нужно добавлять > > > > BuildRequires: qt6-cmake > > Не обязательно и не в этом дело. > Дело в том, сто qmake всё ещё поддерживается в Qt6, и некоторые приложения > (тот же QScintilla) используют qmake, а не cmake. А, на данный момент, qmake > сконфигурирован неверно. > > У меня подозрение что причина это то, что во время билда qt6-qtbase qt6 > макросы в чистой сборочнице (где не установлена предыдущая версия > qt6-qtbase) не установлены и в qmake зашиваются неправильные пути. > Т.е. получается, что qt6-qtbase зависит сам от себя во время билда. Обязательно должен быть установлен BuildRequires: qt6-cmake Помимо того что этот пакет подтянет нужные для сборки зависимости, он также содержит нужный для сборки файд /usr/lib/rpm/macros.d/macros.qt6 (In reply to VictorR2007 from comment #9) > > Обязательно должен быть установлен > > BuildRequires: qt6-cmake > Помимо того что этот пакет подтянет нужные для сборки > зависимости, он также содержит нужный для сборки файд > /usr/lib/rpm/macros.d/macros.qt6 Но macros.qt6 устанавливается в qt6-qtbase а не в cmake! А переменные из macros.qt6 используются в самом же qt6-qtbase и в момент билда qt6-qtbase они не определены! Т.е. получается, что для билда qt6-qtbase нужно, что бы qt6-qtbase уже был установлен, а это неправильно. (In reply to Mikhail Terekhov from comment #10) > Но macros.qt6 устанавливается в qt6-qtbase а не в cmake! > А переменные из macros.qt6 используются в самом же qt6-qtbase и в момент > билда qt6-qtbase они не определены! Т.е. получается, что для билда > qt6-qtbase нужно, что бы qt6-qtbase уже был установлен, а это неправильно. В момент сборки qt6-qtbase используется macros.qt6. Для сборки qt6-qtbase не нужно устанавливать qt6-qtbase. В пакете https://abf.rosalinux.ru/import/qt6-qtbase лежит файл macros.qt6 . Он прописан как Source100: macros.qt6 и сразу записано %{load:%{S:100}} Так что macros.qt6 попадает св сборку. Для сборки остальных пакетов, которым нужен для сборки qt6, уже нужен qt6-cmake как и остальные пакеты из qt6-qtbase. > Source100: macros.qt6
> и сразу записано
>
> %{load:%{S:100}}
>
> Так что macros.qt6 попадает св сборку.
> Для сборки остальных пакетов, которым нужен для сборки qt6,
> уже нужен qt6-cmake как и остальные пакеты из qt6-qtbase.
Спасибо за объяснение! Не заметил.
А почему тогда qmake-qt6 -query возвращает неправильные пути на x86_64?
(In reply to Mikhail Terekhov from comment #13) > Спасибо за объяснение! Не заметил. > > А почему тогда qmake-qt6 -query возвращает неправильные пути на x86_64? Могу предположить, что не был установлен qt6-cmake, и не было макроса. (In reply to VictorR2007 from comment #14) > (In reply to Mikhail Terekhov from comment #13) > > Спасибо за объяснение! Не заметил. > > > > А почему тогда qmake-qt6 -query возвращает неправильные пути на x86_64? > > Могу предположить, что не был установлен qt6-cmake, > и не было макроса. qt6-cmake и макросы установлены. А что у вас возвращает qmake-qt6 -query? (In reply to Mikhail Terekhov from comment #15) > qt6-cmake и макросы установлены. > > А что у вас возвращает qmake-qt6 -query? Он у меня в системе не установлен. Вся сборка через приложение mock. Created attachment 5988 [details]
вывод qmake-qt6 в Роса 2021.1
(In reply to VictorR2007 from comment #16) > > Он у меня в системе не установлен. > Вся сборка через приложение mock. А VM или тестовый комп? Как вы проверяете, что ваши билды работают? Сравнил что выдаёт `qmake6 -query` в Роса 2021.1, 2023.1 и openSuSE-15.5 (см. прикреплённые файлы) Видно, что в Росе qmake выдаёт неправильную конфигурацию, а в SuSE правильную. В Росе разница между 2021.1 и 2023.1, скорее всего, из за объединения /usr/lib? и /lib?. BTW, qmake5 в Росе выдаёт всё верно. Created attachment 5989 [details]
вывод qmake-qt6 в Роса 2023.1
Created attachment 5990 [details]
вывод qmake-qt6 в SuSE-15.5
(In reply to Mikhail Terekhov from comment #15) > qt6-cmake и макросы установлены. > > А что у вас возвращает qmake-qt6 -query? victor@aquarius ~ $ qmake-qt6 -query QT_SYSROOT: QT_INSTALL_PREFIX:/usr QT_INSTALL_ARCHDATA:/usr/lib64/qt6 QT_INSTALL_DATA:/usr/share/qt6 QT_INSTALL_DOCS:/usr/share/doc/qt6 QT_INSTALL_HEADERS:/usr/include/qt6 QT_INSTALL_LIBS:/usr/lib64 QT_INSTALL_LIBEXECS:/usr/lib64/qt6/libexec QT_INSTALL_BINS:/usr/lib64/qt6/bin QT_INSTALL_TESTS:/usr/tests QT_INSTALL_PLUGINS:/usr/lib64/qt6/plugins QT_INSTALL_QML:/usr/lib64/qt6/qml QT_INSTALL_TRANSLATIONS:/usr/share/qt6/translations QT_INSTALL_CONFIGURATION: QT_INSTALL_EXAMPLES:/usr/lib64/qt6/examples QT_INSTALL_DEMOS:/usr/lib64/qt6/examples QT_HOST_PREFIX:/usr QT_HOST_DATA:/usr/lib64/qt6 QT_HOST_BINS:/usr/lib64/qt6/bin QT_HOST_LIBEXECS:/usr/lib64/qt6/libexec QT_HOST_LIBS:/usr/lib64 QMAKE_SPEC:linux-g++ QMAKE_XSPEC:linux-g++ QMAKE_VERSION:3.1 QT_VERSION:6.6.1 victor@aquarius ~ $ Created attachment 5991 [details] Вывод Или так, на картинке тот же вывод. victor@aquarius ~ $ cat /etc/os-release # Standard values # Specification: https://www.freedesktop.org/software/systemd/man/os-release.html NAME="ROSA Fresh Desktop" ID=rosa PRETTY_NAME="ROSA Fresh Desktop 13.0" CPE_NAME="cpe:/o:rosalinux:rosa:2023.1" META_CLASS=desktop VARIANT_ID=fresh-desktop ANSI_COLOR="1;43" VERSION="13.0" VERSION_ID=2023.1 VERSION_CODENAME=13.0 HOME_URL="https://www.rosalinux.ru/en/" # TODO: by far not all icons packages provide an icon "rosa" LOGO=rosa BUG_REPORT_URL="https://bugzilla.rosalinux.ru" # ROSA-specific values ROSA_OS_BRANCH=fresh ROSA_OS_PLATFORM="rosa2023.1" ROSA_OS_PLATFORM_INTEGER=202310 ROSA_OS_TYPE=desktop ROSA_OS_VERSION=13.0 victor@aquarius ~ $ qmake-qt6 -query QT_SYSROOT: QT_INSTALL_PREFIX:/usr QT_INSTALL_ARCHDATA:/usr/lib64/qt6 QT_INSTALL_DATA:/usr/share/qt6 QT_INSTALL_DOCS:/usr/share/doc/qt6 QT_INSTALL_HEADERS:/usr/include/qt6 QT_INSTALL_LIBS:/usr/lib64 QT_INSTALL_LIBEXECS:/usr/lib64/qt6/libexec QT_INSTALL_BINS:/usr/lib64/qt6/bin QT_INSTALL_TESTS:/usr/tests QT_INSTALL_PLUGINS:/usr/lib64/qt6/plugins QT_INSTALL_QML:/usr/lib64/qt6/qml QT_INSTALL_TRANSLATIONS:/usr/share/qt6/translations QT_INSTALL_CONFIGURATION: QT_INSTALL_EXAMPLES:/usr/lib64/qt6/examples QT_INSTALL_DEMOS:/usr/lib64/qt6/examples QT_HOST_PREFIX:/usr QT_HOST_DATA:/usr/lib64/qt6 QT_HOST_BINS:/usr/lib64/qt6/bin QT_HOST_LIBEXECS:/usr/lib64/qt6/libexec QT_HOST_LIBS:/usr/lib64 QMAKE_SPEC:linux-g++ QMAKE_XSPEC:linux-g++ QMAKE_VERSION:3.1 QT_VERSION:6.6.1 victor@aquarius ~ $ А вам разве не нужен для сборки qscintilla-qt6, сборочная зависимость python3-qt6-devel? Для версии qt5 смотрю что нужен python3-qt5-devel. У нес сейчас нет собранного python3-qt6. Пакет python-qt6 не был обновлен вместе с qt-6.6.1. Вернее, он перестал собираться с qt-6.6.1. Значит у меня чего-то не хватает. А вы не могли бы запустить `strace qmake-qt6 -query` и прикрепить вывот сюда? Created attachment 5992 [details]
strace-qmake-qt6
strace qmake-qt6 -query
(In reply to VictorR2007 from comment #23) > А вам разве не нужен для сборки qscintilla-qt6, > сборочная зависимость python3-qt6-devel? > Для версии qt5 смотрю что нужен python3-qt5-devel. > У нес сейчас нет собранного python3-qt6. > Пакет python-qt6 не был обновлен вместе с qt-6.6.1. > Вернее, он перестал собираться с qt-6.6.1. А на abf можно собирать для 2023.1? Created attachment 5993 [details] Нстройка сборок. (In reply to Mikhail Terekhov from comment #26) > А на abf можно собирать для 2023.1? Ну вы же собираете в своём частном репе. https://abf.rosalinux.ru/termim Откройте там страницу настройки сборок https://abf.rosalinux.ru/settings/builds_settings и добавьте сборку rosa2023.1 Created attachment 5994 [details]
strace qmake-qt6 -query
Это то. что `strace qmake-qt6 -query` выдаёт у меня.
(In reply to VictorR2007 from comment #27) > и добавьте сборку rosa2023.1 Спасибо, забыл,что надо это делать самому! (In reply to VictorR2007 from comment #22) > Created attachment 5991 [details] > Вывод > > Или так, на картинке тот же вывод. > Получается, что есть два варианта - у вас и у Alex результат правильный, а у меня и на abf неправильный. Т.е. надо выяснять чем ваши сборочницы отличаются от abf. Пакет python-qt6 не собирается именно из-за этой проблемы! См. на abf: x86_64: https://abf.rosalinux.ru/build_lists/4893552 aarch64: https://abf.rosalinux.ru/build_lists/4893563 Вот ошибка: DEBUG: + '[' 1 -eq 1 ']' DEBUG: ++ pkg-config --cflags dbus-python DEBUG: + sip-build --no-make --verbose --build-dir=./build --confirm-license --qmake=/usr/bin/qmake-qt6 --dbus=/usr/include/dbus-1.0/ --qmake-setting 'QMAKE_CFLAGS=-O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic' --qmake-setting 'QMAKE_CXXFLAGS_RELEASE=-O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -lpython3.11' --qmake-setting 'QMAKE_LFLAGS_RELEASE=-O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic -Wl,-O2 -Wl,--no-undefined -lpython3.11' DEBUG: pyproject.toml: line 7: using '[tool.sip.metadata]' to specify the project metadata is deprecated and will be removed in SIP v7.0.0, use '[project]' instead DEBUG: Querying qmake about your Qt installation... DEBUG: /usr/bin/qmake-qt6 -query DEBUG: This is the GPL version of PyQt 6.6.1 (licensed under the GNU General Public License) for Python 3.11.6 on linux. DEBUG: Found the license file 'pyqt-gpl.sip'. DEBUG: Checking to see if the QtCore bindings can be built... DEBUG: /usr/bin/qmake-qt6 QtCore.pro DEBUG: Info: creating stash file /builddir/build/BUILD/PyQt6-6.6.1/build/cfgtest_QtCore/.qmake.stash DEBUG: make DEBUG: g++ -c -pipe -O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -lpython3.11 -Wall -Wextra -fPIC -D_REENTRANT -DQT_KEYPAD_NAVIGATION -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../qpy/QtCore -I/include/qt6 -I/include/qt6/QtCore -I. -I/lib64/qt6/mkspecs/linux-g++ -o cfgtest_QtCore.o ../../config-tests/cfgtest_QtCore.cpp DEBUG: ../../config-tests/cfgtest_QtCore.cpp:1:10: fatal error: QCoreApplication: No such file or directory DEBUG: 1 | #include <QCoreApplication> DEBUG: | ^~~~~~~~~~~~~~~~~~ DEBUG: compilation terminated. DEBUG: make: *** [Makefile:540: cfgtest_QtCore.o] Error 1 DE (In reply to Mikhail Terekhov from comment #30) > (In reply to VictorR2007 from comment #22) > > Created attachment 5991 [details] > > Вывод > > > > Или так, на картинке тот же вывод. > > > Получается, что есть два варианта - у вас и у Alex результат правильный, а у > меня и на abf неправильный. > Т.е. надо выяснять чем ваши сборочницы отличаются от abf. > > Пакет python-qt6 не собирается именно из-за этой проблемы! > См. на abf: > x86_64: https://abf.rosalinux.ru/build_lists/4893552 > aarch64: https://abf.rosalinux.ru/build_lists/4893563 Наверное стоит добавить в пакет BuildRequires: qt6-cmake Я добавил, но все равно сборка падает. Может в спек добавить _prefix ? Посмотрел в исходниках PyQt6-6.6.1. Он вроде должен собираться с pyproject.toml. Файл лежит в исходниках. Не очень в этом понимаю. Очень мало питон собирал. (In reply to VictorR2007 from comment #32) > Посмотрел в исходниках PyQt6-6.6.1. > Он вроде должен собираться с pyproject.toml. > Файл лежит в исходниках. > Не очень в этом понимаю. > Очень мало питон собирал. Впрочем, pyproject.toml есть и в старом собранном пакете. Только недавно была массовая сборка. Все пакеты qt6 b на qt6 собрались. А с python-qt6 проблема. Может проблема в нем самом или в его спеке? (In reply to VictorR2007 from comment #33) > (In reply to VictorR2007 from comment #32) > > Посмотрел в исходниках PyQt6-6.6.1. > > Он вроде должен собираться с pyproject.toml. > > Файл лежит в исходниках. > > Не очень в этом понимаю. > > Очень мало питон собирал. > > Впрочем, pyproject.toml есть и в старом собранном пакете. > > Только недавно была массовая сборка. > Все пакеты qt6 b на qt6 собрались. > А с python-qt6 проблема. > Может проблема в нем самом или в его спеке? Проблема в том, что его билд основан на qmake для получения lib & includes from Qt6, а qmake-qt6 возвращает неправильные пути для инклудов! Автор PyQt говорит, что переход на cmake есть в планах, но не на первом месте. Есть подозрение, что проблема в вычислении относительных путей в qtbase - наличие линков lib64 -> usr/lib64 etc. конфузит qtbase и он теряет /usr при конфигурации qmake. (In reply to VictorR2007 from comment #22) > Created attachment 5991 [details] > Вывод > > Или так, на картинке тот же вывод. > А где вы собирали qt6-base? Во время сборки линки lib64 -> usr/lib64 etc. присутствуют? (In reply to Mikhail Terekhov from comment #35) > (In reply to VictorR2007 from comment #22) > > Created attachment 5991 [details] > > Вывод > > > > Или так, на картинке тот же вывод. > > > > А где вы собирали qt6-base? Во время сборки линки lib64 -> usr/lib64 etc. > присутствуют? Ну вот свежий. Только что собрал https://abf.rosalinux.ru/build_lists/4893695 Но не стал публиковать. Created attachment 5995 [details]
lib64
Ну а как же.
Всегда есть
lib64 -> usr/lib64
Это же пакет filesystem задаёт каталоги.
(In reply to Mikhail Terekhov from comment #35) > (In reply to VictorR2007 from comment #22) > > Created attachment 5991 [details] > > Вывод > > > > Или так, на картинке тот же вывод. > > > > А где вы собирали qt6-base? Во время сборки линки lib64 -> usr/lib64 etc. > присутствуют? Тут скорее нужен /include/ > /usr/include/ :) (In reply to VictorR2007 from comment #36) > Ну вот свежий. > Только что собрал > https://abf.rosalinux.ru/build_lists/4893695 > Но не стал публиковать. Вытащил qmake6 из него, тот же результат - /usr пропал ... А вы можете из него qmake -query попробовать? (In reply to Mikhail Terekhov from comment #39) > (In reply to VictorR2007 from comment #36) > > Ну вот свежий. > > Только что собрал > > https://abf.rosalinux.ru/build_lists/4893695 > > Но не стал публиковать. > > Вытащил qmake6 из него, тот же результат - /usr пропал ... > А вы можете из него qmake -query попробовать? Из чего ? Там все так же. Как в этом, собранном недавно https://abf.rosalinux.ru/build_lists/4873839 Вообще, команда qmake -query выдаст ошибку. Он же находится в /usr/lib64/qt6/bin/qmake Поэтому используем симлинк /usr/bin/qmake-qt6 (In reply to VictorR2007 from comment #40) > (In reply to Mikhail Terekhov from comment #39) > > (In reply to VictorR2007 from comment #36) > > > Ну вот свежий. > > > Только что собрал > > > https://abf.rosalinux.ru/build_lists/4893695 > > > Но не стал публиковать. > > > > Вытащил qmake6 из него, тот же результат - /usr пропал ... > > А вы можете из него qmake -query попробовать? > > Из чего ? > Там все так же. > Как в этом, собранном недавно > https://abf.rosalinux.ru/build_lists/4873839 > > Вообще, команда qmake -query > выдаст ошибку. > Он же находится в > /usr/lib64/qt6/bin/qmake > > Поэтому используем симлинк > /usr/bin/qmake-qt6 Скачиваете qmake-qt6-6.6.1-1-rosa2023.1.x86_64.rpm, в мс заходите в него, копируете qmake6 куда-нибудь ... Можете посмотреть какой путь к инклудам зашит у вас? У меня: qt6> strings /usr/lib64/libQt6Core.so.6.6.1 | grep include/qt include/qt6 (In reply to Mikhail Terekhov from comment #42) > Можете посмотреть какой путь к инклудам зашит у вас? > У меня: > > qt6> strings /usr/lib64/libQt6Core.so.6.6.1 | grep include/qt > include/qt6 У меня не в системе девел пакетов от qt6. Команд ничего не выдаёт. OpenMandriva собирает с таким патчем https://github.com/OpenMandrivaAssociation/python-qt6/blob/master/pyqt6-workaround-qttest-detection.patch Возможно и нам необходим похожий. Но у них только для include_dirs = ['/usr/lib64/qt6/include/QtTest'] (In reply to VictorR2007 from comment #43) > (In reply to Mikhail Terekhov from comment #42) > > Можете посмотреть какой путь к инклудам зашит у вас? > > У меня: > > > > qt6> strings /usr/lib64/libQt6Core.so.6.6.1 | grep include/qt > > include/qt6 > > У меня не в системе девел пакетов от qt6. > Команд ничего не выдаёт. > OpenMandriva собирает с таким патчем > https://github.com/OpenMandrivaAssociation/python-qt6/blob/master/pyqt6- > workaround-qttest-detection.patch > Возможно и нам необходим похожий. > Но у них только для > include_dirs = ['/usr/lib64/qt6/include/QtTest'] Может нужен include_dirs = ['/usr/include/qt6'], Похоже проблема в пакете python-qt6. Вот старая сборка https://abf.rosalinux.ru/build_lists/4635958 Он ищет в -I/usr/include/qt6/QtNetwork -I/usr/include/qt6/QtCore А сейчас вдруг не хочет там искать, обрезает путь. У нас в пакет qt6 пути то не поменялись и макросы тоже. (In reply to VictorR2007 from comment #45) > Похоже проблема в пакете python-qt6. > Вот старая сборка > https://abf.rosalinux.ru/build_lists/4635958 > Он ищет в > -I/usr/include/qt6/QtNetwork -I/usr/include/qt6/QtCore > > А сейчас вдруг не хочет там искать, обрезает путь. > У нас в пакет qt6 пути то не поменялись и макросы тоже. Дело не в python-qt6. Ещё раз: PyQt6 использует qmake-qt6 для поиска инклудов. Так устроен sip-build. Текущий qmake-qt6 возвращает обрезанные пути, он, почему-то, обрезает префикс /usr. Вопрос в том, почему на вашей системе и у Alex он этого не делает. DEBUG: Querying qmake about your Qt installation... DEBUG: /usr/bin/qmake-qt6 -query ^ ========================| DEBUG: This is the GPL version of PyQt 6.5.1 (licensed under the GNU General Public License) for Python 3.11.4 on linux. DEBUG: Found the license file 'pyqt-gpl.sip'. DEBUG: Checking to see if the QtCore bindings can be built... DEBUG: /usr/bin/qmake-qt6 QtCore.pro DEBUG: Info: creating stash file /builddir/build/BUILD/PyQt6-6.5.1/build/cfgtest_QtCore/.qmake.stash DEBUG: make DEBUG: g++ -c -pipe -O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -lpython3.11 -Wall -Wextra -fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -I. -I../../qpy/QtCore -I/usr/include/qt6 -I/usr/include/qt6/QtCore -I. -I/usr/lib64/qt6/mkspecs/linux-g++ -o cfgtest_QtCore.o ../../config-tests/cfgtest_QtCore.cpp DEBUG: g++ -O2 -fomit-frame-pointer -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -fstack-protector-strong --param=ssp-buffer-size=4 -m64 -mtune=generic -Wl,-O2 -Wl,--no-undefined -lpython3.11 -Wl,-rpath,/usr/lib64 -o QtCore cfgtest_QtCore.o /usr/lib64/libQt6Core.so -lpthread DEBUG: /builddir/build/BUILD/PyQt6-6.5.1/build/cfgtest_QtCore/./QtCore /builddir/build/BUILD/PyQt6-6.5.1/build/cfgtest_QtCore/cfgtest_QtCore.out (In reply to Mikhail Terekhov from comment #46) > Текущий qmake-qt6 возвращает обрезанные пути, он, почему-то, > обрезает префикс /usr. > Вопрос в том, почему на вашей системе и у Alex он этого не делает. К сборке python-qt6 это не относится. Я его запускаю на сборку локально, и все так же как на abf. DQT_CORE_LIB -I. -I/include/qt6 -I/include/qt6/QtTextToSpeech -I/include/qt6/QtMultimedia -I/include/qt6/QtGui -I/include/qt6/QtNetwork Пора харакири делать.:) Я уже весь запутался. (In reply to VictorR2007 from comment #47) > (In reply to Mikhail Terekhov from comment #46) > > Текущий qmake-qt6 возвращает обрезанные пути, он, почему-то, > > обрезает префикс /usr. > > Вопрос в том, почему на вашей системе и у Alex он этого не делает. > > К сборке python-qt6 это не относится. > Я его запускаю на сборку локально, и все так же как на abf. > > DQT_CORE_LIB -I. -I/include/qt6 -I/include/qt6/QtTextToSpeech > -I/include/qt6/QtMultimedia -I/include/qt6/QtGui -I/include/qt6/QtNetwork Локально как, с по(In reply to VictorR2007 from comment #47) > (In reply to Mikhail Terekhov from comment #46) > > Текущий qmake-qt6 возвращает обрезанные пути, он, почему-то, > > обрезает префикс /usr. > > Вопрос в том, почему на вашей системе и у Alex он этого не делает. > > К сборке python-qt6 это не относится. > Я его запускаю на сборку локально, и все так же как на abf. > > DQT_CORE_LIB -I. -I/include/qt6 -I/include/qt6/QtTextToSpeech > -I/include/qt6/QtMultimedia -I/include/qt6/QtGui -I/include/qt6/QtNetwork Локально как, с помощью rpmbuild или mock? Святослав копал пакет qt6-qtbase Похоже проблема была в его параметрах сборки qt6-qtbase https://abf.io/slava86/qt6-qtbase/commits/rosa2023.1 После этого он смог собрать python-qt6. https://abf.io/build_lists/4893709 (In reply to VictorR2007 from comment #50) > Святослав копал пакет qt6-qtbase > Похоже проблема была в его параметрах сборки qt6-qtbase > > https://abf.io/slava86/qt6-qtbase/commits/rosa2023.1 > > После этого он смог собрать python-qt6. > > https://abf.io/build_lists/4893709 У меня, похоже, тоже получилось. Локально всё возвращает верно. Запустил билд на abf. https://abf.io/termim/qt6-qtbase/commit/e2a178dc6fd876a463d05c70fe580781a477191a https://abf.io/build_lists/4893740 Проблема в том, что по умолчанию qtbase6 строится relocatable и инстал-префикс явно устанавливается в '/' и зашивается в libQt6Core.so. На проекты использующие cmake это не влияет, т.к. cmake испольует свои конфиги. Билды прошли: qt6-qtbase x86_64: https://abf.io/build_lists/4893740 aarch64: https://abf.io/build_lists/4893741 i686: https://abf.io/build_lists/4893742 python-qt6 x86_64: https://abf.rosalinux.ru/build_lists/4893747 aarch64: https://abf.rosalinux.ru/build_lists/4893748 i686Ж https://abf.rosalinux.ru/build_lists/4893749 Сделал пулл-реквест: https://abf.io/import/qt6-qtbase/pull_requests/2 |