See <https://jenkins.x2go.org:8443/job/x2goclient+nightly+sled-12.3/122/display/redirect?page=changes> Changes: [ionic] src/compat.h: only try to include QtCore/qflags.h with Qt 5.0+. [ionic] debian/changelog: typo fix. ------------------------------------------ [...truncated 158.44 KiB...] [ 65s] ^ [ 65s] ../src/compat.h:83:38: error: 'Qt::SplitBehavior' has not been declared [ 65s] Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const { [ 65s] ^ [ 65s] ../src/compat.h:89:29: error: 'QRegularExpression' does not name a type [ 65s] QStringList split(const QRegularExpression &sep, [ 65s] ^ [ 65s] ../src/compat.h:89:49: error: ISO C++ forbids declaration of 'sep' with no type [-fpermissive] [ 65s] QStringList split(const QRegularExpression &sep, [ 65s] ^ [ 65s] ../src/compat.h:90:27: error: 'Qt::SplitBehavior' has not been declared [ 65s] Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const { [ 65s] ^ [ 65s] ../src/compat.h:94:40: error: 'QRegularExpression' does not name a type [ 65s] QVector<QStringRef> splitRef(const QRegularExpression &sep, [ 65s] ^ [ 65s] ../src/compat.h:94:60: error: ISO C++ forbids declaration of 'sep' with no type [-fpermissive] [ 65s] QVector<QStringRef> splitRef(const QRegularExpression &sep, [ 65s] ^ [ 65s] ../src/compat.h:95:38: error: 'Qt::SplitBehavior' has not been declared [ 65s] Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const { [ 65s] ^ [ 65s] ../src/compat.h: In member function 'QVector<QStringRef> QStringCompatWrapper::splitRef(const QString&, int, Qt::CaseSensitivity) const': [ 65s] ../src/compat.h:63:15: error: 'splitRef' is not a member of 'QString' [ 65s] return (QString::splitRef (sep, static_cast<QString::SplitBehavior> (behavior), cs)); [ 65s] ^ [ 65s] ../src/compat.h: In member function 'QVector<QStringRef> QStringCompatWrapper::splitRef(QChar, int, Qt::CaseSensitivity) const': [ 65s] ../src/compat.h:73:15: error: 'splitRef' is not a member of 'QString' [ 65s] return (QString::splitRef (sep, static_cast<QString::SplitBehavior> (behavior), cs)); [ 65s] ^ [ 65s] ../src/compat.h: In member function 'QVector<QStringRef> QStringCompatWrapper::splitRef(const QRegExp&, int) const': [ 65s] ../src/compat.h:84:15: error: 'splitRef' is not a member of 'QString' [ 65s] return (QString::splitRef (sep, static_cast<QString::SplitBehavior> (behavior))); [ 65s] ^ [ 65s] ../src/compat.h: In member function 'QVector<QStringRef> QStringCompatWrapper::splitRef(const int&, int) const': [ 65s] ../src/compat.h:96:15: error: 'splitRef' is not a member of 'QString' [ 65s] return (QString::splitRef (sep, static_cast<QString::SplitBehavior> (behavior))); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp: At global scope: [ 65s] ../src/sessionwidget.cpp:42:1: error: prototype for 'SessionWidget::SessionWidget(bool, QStringCompatWrapper, ONMainWindow*, QWidget*, Qt::WindowFlags)' does not match any in class 'SessionWidget' [ 65s] SessionWidget::SessionWidget ( bool newSession, QString id, ONMainWindow * mw, [ 65s] ^ [ 65s] In file included from ../src/sessionwidget.cpp:18:0: [ 65s] ../src/sessionwidget.h:34:7: error: candidates are: SessionWidget::SessionWidget(const SessionWidget&) [ 65s] class SessionWidget : public ConfigWidget [ 65s] ^ [ 65s] ../src/sessionwidget.h:38:5: error: SessionWidget::SessionWidget(bool, QString, ONMainWindow*, QWidget*, Qt::WindowFlags) [ 65s] SessionWidget ( bool newSession, QString id, ONMainWindow * mv, [ 65s] ^ [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::slot_proxyGetKey()': [ 65s] ../src/sessionwidget.cpp:275:53: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] QString startDir=ONMainWindow::getHomeDirectory(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:283:10: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] path = QFileDialog::getOpenFileName ( [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:283:10: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::slot_getIcon()': [ 65s] ../src/sessionwidget.cpp:394:65: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] tr ( "Pictures" ) +" (*.png *.xpm *.jpg)" ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::slot_getKey()': [ 65s] ../src/sessionwidget.cpp:405:53: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] QString startDir=ONMainWindow::getHomeDirectory(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:413:10: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] path = QFileDialog::getOpenFileName ( [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:413:10: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::slot_rdpOptions()': [ 65s] ../src/sessionwidget.cpp:511:40: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] rdpOptions, &ok ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::readConfig()': [ 65s] ../src/sessionwidget.cpp:521:77: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] ( QVariant ) tr ( "New session" ) ).toString().trimmed(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:527:13: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] name=tails.last(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:527:13: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:529:13: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'const QString') [ 65s] path=tails.join("/")+"/"; [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:529:13: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'const QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:589:42: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] ).toString().trimmed() ; [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:653:79: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] ( QVariant ) mainWindow->getDefaultCmd() ).toString().trimmed(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:674:60: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] QString app=mainWindow->transAppName ( appNames[i] ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:687:56: error: conversion from 'QString' to non-scalar type 'QStringCompatWrapper' requested [ 65s] QString app=mainWindow->transAppName ( command ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp: In member function 'void SessionWidget::saveSettings()': [ 65s] ../src/sessionwidget.cpp:825:87: error: no matching function for call to 'QString::split(const char [2], Qt::SplitBehaviorFlags) const' [ 65s] QString normPath=(lPath->text()+"/"+sessName->text()).split("/",Qt::SkipEmptyParts).join("/"); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:825:87: note: candidates are: [ 65s] In file included from /usr/include/QtCore/qobject.h:48:0, [ 65s] from /usr/include/QtGui/qwidget.h:47, [ 65s] from /usr/include/QtGui/qframe.h:45, [ 65s] from /usr/include/QtGui/QFrame:1, [ 65s] from ../src/configwidget.h:21, [ 65s] from ../src/sessionwidget.h:21, [ 65s] from ../src/sessionwidget.cpp:18: [ 65s] /usr/include/QtCore/qstring.h:301:17: note: QStringList QString::split(const QString&, QString::SplitBehavior, Qt::CaseSensitivity) const [ 65s] QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, [ 65s] ^ [ 65s] /usr/include/QtCore/qstring.h:301:17: note: no known conversion for argument 2 from 'Qt::SplitBehaviorFlags' to 'QString::SplitBehavior' [ 65s] /usr/include/QtCore/qstring.h:303:17: note: QStringList QString::split(const QChar&, QString::SplitBehavior, Qt::CaseSensitivity) const [ 65s] QStringList split(const QChar &sep, SplitBehavior behavior = KeepEmptyParts, [ 65s] ^ [ 65s] /usr/include/QtCore/qstring.h:303:17: note: no known conversion for argument 2 from 'Qt::SplitBehaviorFlags' to 'QString::SplitBehavior' [ 65s] /usr/include/QtCore/qstring.h:306:17: note: QStringList QString::split(const QRegExp&, QString::SplitBehavior) const [ 65s] QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT; [ 65s] ^ [ 65s] /usr/include/QtCore/qstring.h:306:17: note: no known conversion for argument 1 from 'const char [2]' to 'const QRegExp&' [ 65s] ../src/sessionwidget.cpp:859:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] command=sessBox->currentText(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:859:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:861:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] command=cmd->text().trimmed(); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:861:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:864:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'const char [4]') [ 65s] command="RDP"; [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:864:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'const char [4]' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:869:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'const char [6]') [ 65s] command="XDMCP"; [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:869:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'const char [6]' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:874:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'const char [7]') [ 65s] command="SHADOW"; [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:874:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'const char [7]' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:882:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] app=mainWindow->internAppName ( [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:882:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:885:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] app=mainWindow->internAppName ( cmdCombo->itemText ( i ) ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:885:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp:895:16: error: no match for 'operator=' (operand types are 'QStringCompatWrapper' and 'QString') [ 65s] command=mainWindow->internAppName ( cmdCombo->lineEdit()->text().trimmed() ); [ 65s] ^ [ 65s] ../src/sessionwidget.cpp:895:16: note: candidate is: [ 65s] In file included from ../src/sessionwidget.cpp:40:0: [ 65s] ../src/compat.h:52:7: note: QStringCompatWrapper& QStringCompatWrapper::operator=(const QStringCompatWrapper&) [ 65s] class QStringCompatWrapper : public QString { [ 65s] ^ [ 65s] ../src/compat.h:52:7: note: no known conversion for argument 1 from 'QString' to 'const QStringCompatWrapper&' [ 65s] ../src/sessionwidget.cpp: At global scope: [ 65s] ../src/sessionwidget.cpp:938:9: error: prototype for 'QStringCompatWrapper SessionWidget::sessionName()' does not match any in class 'SessionWidget' [ 65s] QString SessionWidget::sessionName() [ 65s] ^ [ 65s] In file included from ../src/sessionwidget.cpp:18:0: [ 65s] ../src/sessionwidget.h:43:13: error: candidate is: QString SessionWidget::sessionName() [ 65s] QString sessionName(); [ 65s] ^ [ 65s] Makefile:687: recipe for target 'sessionwidget.o' failed [ 65s] make[2]: *** [sessionwidget.o] Error 1 [ 66s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/x2goclient-4.1.2.4/client_build' [ 66s] Makefile:83: recipe for target 'build_client' failed [ 66s] make[1]: *** [build_client] Error 2 [ 66s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/x2goclient-4.1.2.4' [ 66s] Makefile:80: recipe for target 'build' failed [ 66s] make: *** [build] Error 2 [ 66s] error: Bad exit status from /var/tmp/rpm-tmp.UtyraB (%build) [ 66s] [ 66s] [ 66s] RPM build errors: [ 66s] Bad exit status from /var/tmp/rpm-tmp.UtyraB (%build) [ 66s] [ 66s] japsand failed "build x2goclient.spec" at Sun Apr 6 09:15:50 UTC 2025. [ 66s] + exit 1 + cleanup + '[' -n '' ']' + '[' -n '' ']' + echo 'Warning: mock temporary config directory not defined. Skipping cleanup.' Warning: mock temporary config directory not defined. Skipping cleanup. + typeset temp_dir= + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.46w6amJJBMxvbP4pnHAswU6i ']' + '[' -d /var/lib/jenkins/tmp/tmp.46w6amJJBMxvbP4pnHAswU6i ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.46w6amJJBMxvbP4pnHAswU6i Build step 'Execute shell' marked build as failure