Bug 14164

Summary: Неправильнаая конфигурация qmake-qt6 в пакете qt6-qtbase
Product: [ROSA-based products] ROSA Fresh Reporter: Mikhail Terekhov <termim>
Component: Packages from MainAssignee: 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
`qmake-qt6 -query` возвращает неправильный префикс (отсутствует /usr):

src> qmake-qt6 -query
QT_SYSROOT:
QT_INSTALL_PREFIX:/
QT_INSTALL_ARCHDATA:/lib64/qt6
QT_INSTALL_DATA:/share/qt6
QT_INSTALL_DOCS:/share/doc/qt6
QT_INSTALL_HEADERS:/include/qt6
QT_INSTALL_LIBS:/lib64
QT_INSTALL_LIBEXECS:/lib64/qt6/libexec
QT_INSTALL_BINS:/lib64/qt6/bin
QT_INSTALL_TESTS:/tests
QT_INSTALL_PLUGINS:/lib64/qt6/plugins
QT_INSTALL_QML:/lib64/qt6/qml
QT_INSTALL_TRANSLATIONS:/share/qt6/translations
QT_INSTALL_CONFIGURATION:
QT_INSTALL_EXAMPLES:/lib64/qt6/examples
QT_INSTALL_DEMOS:/lib64/qt6/examples
QT_HOST_PREFIX:/
QT_HOST_DATA:/lib64/qt6
QT_HOST_BINS:/lib64/qt6/bin
QT_HOST_LIBEXECS:/lib64/qt6/libexec
QT_HOST_LIBS:/lib64
QMAKE_SPEC:linux-g++
QMAKE_XSPEC:linux-g++
QMAKE_VERSION:3.1
QT_VERSION:6.6.1
Comment 1 Alex 2023-12-20 13:49:05 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
Comment 2 Alex 2023-12-20 13:56:35 MSK
Кроме того вот этот query он откуда взялся-то? Какая предыистория нахождения проблемы?


В который раз пишу: ВСЕ ЭТО НУЖНО ОПИСЫВАТЬ.
Comment 3 Mikhail Novosyolov 2023-12-20 14:16:38 MSK
Саша, не нервничай так сильно))
Comment 4 Mikhail Terekhov 2023-12-20 19:17:58 MSK
Архитектура:

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

Какая ещё информация могла бы быть полезной?
Comment 5 Mikhail Terekhov 2023-12-20 20:18:22 MSK
Ещё вопрос - в qt6-qtbase rpm макросы устанавливаются после билда, как они тогда доступны в %build ?
Может их лучше вынести в отдельный пакет как в Qt5?
Comment 6 Mikhail Terekhov 2023-12-20 20:23:23 MSK
Значит на сборочнице aarch64 каким-то образом были установлены qt6 макросы во время билда qt6-qtbase.
Comment 7 VictorR2007 2023-12-20 20:47:39 MSK
(In reply to Mikhail Terekhov from comment #5)
> Ещё вопрос - в qt6-qtbase rpm макросы устанавливаются после билда, как они
> тогда доступны в %build ?
> Может их лучше вынести в отдельный пакет как в Qt5?

Не стоит.
Для сборки приложений qt6 в спек всегда нужно добавлять

BuildRequires:	qt6-cmake
Comment 8 Mikhail Terekhov 2023-12-20 21:17:02 MSK
> Не стоит.
> Для сборки приложений qt6 в спек всегда нужно добавлять
> 
> BuildRequires:	qt6-cmake

Не обязательно и не в этом дело. 
Дело в том, сто qmake всё ещё поддерживается в Qt6, и некоторые приложения (тот же QScintilla) используют qmake, а не cmake. А, на данный момент, qmake сконфигурирован неверно.

У меня подозрение что причина это то, что во время билда qt6-qtbase qt6 макросы в чистой сборочнице (где не установлена предыдущая версия qt6-qtbase) не установлены и в qmake зашиваются неправильные пути.
Т.е. получается, что qt6-qtbase зависит сам от себя во время билда.
Comment 9 VictorR2007 2023-12-20 21:34:04 MSK
(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
Comment 10 Mikhail Terekhov 2023-12-20 22:19:42 MSK
(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 уже был установлен, а это неправильно.
Comment 11 VictorR2007 2023-12-21 05:51:48 MSK
(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.
Comment 12 VictorR2007 2023-12-21 05:59:25 MSK
В пакете https://abf.rosalinux.ru/import/qt6-qtbase
лежит файл macros.qt6 .
Он прописан как 
Source100:	macros.qt6
и сразу записано

%{load:%{S:100}}

Так что macros.qt6 попадает св сборку.
Для сборки остальных пакетов, которым нужен для сборки qt6,
уже нужен qt6-cmake как и остальные пакеты из qt6-qtbase.
Comment 13 Mikhail Terekhov 2023-12-21 18:38:10 MSK
> Source100:	macros.qt6
> и сразу записано
> 
> %{load:%{S:100}}
> 
> Так что macros.qt6 попадает св сборку.
> Для сборки остальных пакетов, которым нужен для сборки qt6,
> уже нужен qt6-cmake как и остальные пакеты из qt6-qtbase.

Спасибо за объяснение! Не заметил.

А почему тогда qmake-qt6 -query возвращает неправильные пути на x86_64?
Comment 14 VictorR2007 2023-12-22 09:58:02 MSK
(In reply to Mikhail Terekhov from comment #13) 
> Спасибо за объяснение! Не заметил.
> 
> А почему тогда qmake-qt6 -query возвращает неправильные пути на x86_64?

Могу предположить, что не был установлен qt6-cmake,
и не было макроса.
Comment 15 Mikhail Terekhov 2023-12-22 18:35:24 MSK
(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?
Comment 16 VictorR2007 2023-12-22 18:43:57 MSK
(In reply to Mikhail Terekhov from comment #15)
> qt6-cmake и макросы установлены.
> 
> А что у вас возвращает qmake-qt6 -query?

Он у меня в системе не установлен.
Вся сборка через приложение mock.
Comment 17 Mikhail Terekhov 2023-12-22 21:37:13 MSK
Created attachment 5988 [details]
вывод qmake-qt6 в Роса 2021.1
Comment 18 Mikhail Terekhov 2023-12-22 21:38:05 MSK
(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 в Росе выдаёт всё верно.
Comment 19 Mikhail Terekhov 2023-12-22 21:39:23 MSK
Created attachment 5989 [details]
вывод qmake-qt6 в Роса 2023.1
Comment 20 Mikhail Terekhov 2023-12-22 21:39:58 MSK
Created attachment 5990 [details]
вывод qmake-qt6 в SuSE-15.5
Comment 21 VictorR2007 2023-12-23 10:11:49 MSK
(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 ~ $
Comment 22 VictorR2007 2023-12-23 10:15:57 MSK
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 ~ $
Comment 23 VictorR2007 2023-12-23 18:43:20 MSK
А вам разве не нужен для сборки qscintilla-qt6,
сборочная зависимость python3-qt6-devel?
Для версии qt5 смотрю что нужен python3-qt5-devel.
У нес сейчас нет собранного python3-qt6.
Пакет python-qt6 не был обновлен вместе с qt-6.6.1.
Вернее, он перестал собираться с qt-6.6.1.
Comment 24 Mikhail Terekhov 2023-12-23 19:40:11 MSK
Значит у меня чего-то не хватает.
А вы не могли бы запустить `strace qmake-qt6 -query` и прикрепить вывот сюда?
Comment 25 VictorR2007 2023-12-23 20:23:35 MSK
Created attachment 5992 [details]
strace-qmake-qt6

strace qmake-qt6 -query
Comment 26 Mikhail Terekhov 2023-12-23 20:57:59 MSK
(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?
Comment 27 VictorR2007 2023-12-23 22:54:31 MSK
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
Comment 28 Mikhail Terekhov 2023-12-24 18:10:11 MSK
Created attachment 5994 [details]
strace qmake-qt6 -query

Это то. что `strace qmake-qt6 -query` выдаёт у меня.
Comment 29 Mikhail Terekhov 2023-12-24 18:11:24 MSK
(In reply to VictorR2007 from comment #27)
> и добавьте сборку rosa2023.1
Спасибо, забыл,что надо это делать  самому!
Comment 30 Mikhail Terekhov 2023-12-24 18:26:13 MSK
(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
Comment 31 VictorR2007 2023-12-24 20:48:10 MSK
(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
?
Comment 32 VictorR2007 2023-12-24 20:52:36 MSK
Посмотрел в исходниках PyQt6-6.6.1.
Он вроде должен собираться с pyproject.toml.
Файл лежит в исходниках.
Не очень в этом понимаю.
Очень мало питон собирал.
Comment 33 VictorR2007 2023-12-24 21:09:08 MSK
(In reply to VictorR2007 from comment #32)
> Посмотрел в исходниках PyQt6-6.6.1.
> Он вроде должен собираться с pyproject.toml.
> Файл лежит в исходниках.
> Не очень в этом понимаю.
> Очень мало питон собирал.

Впрочем, pyproject.toml есть и в старом собранном пакете.

Только недавно была массовая сборка.
Все пакеты qt6 b на qt6 собрались.
А с python-qt6 проблема.
Может проблема в нем самом или в его спеке?
Comment 34 Mikhail Terekhov 2023-12-24 21:27:24 MSK
(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.
Comment 35 Mikhail Terekhov 2023-12-24 21:31:33 MSK
(In reply to VictorR2007 from comment #22)
> Created attachment 5991 [details]
> Вывод
> 
> Или так, на картинке тот же вывод.
> 

А где вы собирали qt6-base? Во время сборки линки lib64 -> usr/lib64 etc. присутствуют?
Comment 36 VictorR2007 2023-12-24 21:42:48 MSK
(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
Но не стал публиковать.
Comment 37 VictorR2007 2023-12-24 21:45:01 MSK
Created attachment 5995 [details]
lib64

Ну а как же.
Всегда есть
lib64 -> usr/lib64
Это же пакет filesystem задаёт каталоги.
Comment 38 VictorR2007 2023-12-24 21:48:09 MSK
(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/ :)
Comment 39 Mikhail Terekhov 2023-12-24 21:54:23 MSK
(In reply to VictorR2007 from comment #36)
> Ну вот свежий.
> Только что собрал 
> https://abf.rosalinux.ru/build_lists/4893695
> Но не стал публиковать.

Вытащил qmake6 из него, тот же результат - /usr пропал ...
А вы можете из него qmake -query попробовать?
Comment 40 VictorR2007 2023-12-24 22:07:59 MSK
(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
Comment 41 Mikhail Terekhov 2023-12-24 22:12:24 MSK
(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 куда-нибудь ...
Comment 42 Mikhail Terekhov 2023-12-24 22:55:35 MSK
Можете посмотреть какой путь к инклудам зашит у вас?
У меня:

qt6> strings /usr/lib64/libQt6Core.so.6.6.1 | grep include/qt
include/qt6
Comment 43 VictorR2007 2023-12-25 00:20:48 MSK
(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']
Comment 44 VictorR2007 2023-12-25 00:23:25 MSK
(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'],
Comment 45 VictorR2007 2023-12-25 00:57:52 MSK
Похоже проблема в пакете python-qt6.
Вот старая сборка
https://abf.rosalinux.ru/build_lists/4635958
Он ищет в 
-I/usr/include/qt6/QtNetwork -I/usr/include/qt6/QtCore

А сейчас вдруг не хочет там искать, обрезает путь.
У нас в пакет qt6 пути то не поменялись и макросы тоже.
Comment 46 Mikhail Terekhov 2023-12-25 01:08:08 MSK
(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
Comment 47 VictorR2007 2023-12-25 01:18:05 MSK
(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
Comment 48 VictorR2007 2023-12-25 01:19:34 MSK
Пора харакири делать.:)
Я уже весь запутался.
Comment 49 Mikhail Terekhov 2023-12-25 01:20:46 MSK
(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?
Comment 50 VictorR2007 2023-12-25 01:45:00 MSK
Святослав копал пакет qt6-qtbase
Похоже проблема была в его параметрах сборки qt6-qtbase

https://abf.io/slava86/qt6-qtbase/commits/rosa2023.1

После этого он смог собрать python-qt6.

https://abf.io/build_lists/4893709
Comment 51 Mikhail Terekhov 2023-12-25 01:54:57 MSK
(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
Comment 52 Mikhail Terekhov 2023-12-25 02:00:57 MSK
Проблема в том, что по умолчанию qtbase6 строится relocatable и инстал-префикс явно устанавливается в '/' и зашивается в libQt6Core.so. На проекты использующие cmake это не влияет, т.к. cmake испольует свои конфиги.
Comment 54 Mikhail Terekhov 2023-12-25 08:26:50 MSK
Сделал пулл-реквест:

https://abf.io/import/qt6-qtbase/pull_requests/2