Refresh QT Framework
Lankaster opened this issue · 10 comments
- Upgrade to 5.15.2 and add Debian patches (https://salsa.debian.org/qt-kde-team/qt/qtbase/-/tree/master/debian/patches)
- Add serialbus (depend on serialport)
- Add serialport
- Refresh libdouble-conversion (move to video feeds ?)
- Add qt5-sql-mysql plugin
Upgrade to 5.15.2
Ack, though, while Qt's latest 5.15 release is already 5.15.5 (commercial only, though), the latest opensource one is 5.15.2 indeed. We will have to figure out how to proceed as Qt decided to not even backport security related fixed back to the public release branches. How do other linux distributions handle that currently?
Last time I got in touch with the Qt maintainers for Debian/Ubuntu they were still undecided, as forking and maintaining Qt 5.15.2 will be hell lot's of work. Though there's little alternative - back then VirtualBox was kicked out of Debian's repos because they didn't provide security updates for the packaged versions.
Refresh libdouble-conversion (move to video feeds ?)
Packages within the video feed depending on packages in the packages feed is already common. What's the usecase / goal here which doesn't allow bumping libdouble-conversion in the packages feed?
I forgot that libdoubleconversion got removed from the packages repo. Yes, let's (re)add it to the video feed and then move it back into the packages feed along with qt5base.
Add qt5-sql-mysql plugin
Should be fairly easy by just changing --sql-mysql=no
to sth. like --sql-mysql=$(if $(CONFIG_PACKAGE_qt5base-sql-mysql),yes,no)
and creating respective package around it.
Since Qt decided on maintaining the LTS 5.15 branch only for commercial users, Debian started to maintain its own patchset - monitoring security and stability related patches within the Qt6 repo and potentially backport them for 5.15.
We might just hop on and either selectively or completely take over that patchset.
KDE is indeed also maintaining its own fork/patchset for Qt5.15, while debian does the same: https://salsa.debian.org/qt-kde-team/qt/qtbase/-/tree/master/debian/patches
While KDE's patchset is more focused on KDE, Since we don't have to support KDE (and even if, AFAIK KDE also runs on vanilla Qt), I'd go for the debian patches, as they address a broader range of Qt related topics.
@mirko I'm not sure if I have to create another issue, but I want to note that the makefiles for Qt no longer works, it seems that the 5.15.0 package no longer exist on Qt server.
I tried changing it to 5.15.2 together with the hash but it doesn't compile. In particular, the compiler says this:
g++ -o "../bin/qmake" main.o meta.o option.o project.o property.o ioutils.o proitems.o qmakebuiltins.o qmakeevaluator.o qmakeglobals.o qmakeparser.o qmakevfs.o pbuilder_pbx.o makefile.o makefiledeps.o metamakefile.o projectgenerator.o unixmake2.o unixmake.o mingw_make.o msbuild_objectmodel.o msvc_nmake.o msvc_objectmodel.o msvc_vcproj.o msvc_vcxproj.o winmakefile.o xmloutput.o qutfcodec.o qendian.o qglobal.o qlogging.o qmalloc.o qnumeric.o qoperatingsystemversion.o qrandom.o qabstractfileengine.o qbuffer.o qdatastream.o qdebug.o qdir.o qdiriterator.o qfile.o qfiledevice.o qfileinfo.o qfilesystemengine.o qfilesystementry.o qfsfileengine.o qfsfileengine_iterator.o qiodevice.o qsettings.o qtemporaryfile.o qtextstream.o qcborstreamwriter.o qcborvalue.o qjsoncbor.o qjsonarray.o qjsondocument.o qjsonobject.o qjsonparser.o qjsonvalue.o qmetatype.o qsystemerror.o qvariant.o quuid.o qarraydata.o qbitarray.o qbytearray.o qbytearraylist.o qbytearraymatcher.o qcalendar.o qgregoriancalendar.o qromancalendar.o qcryptographichash.o qdatetime.o qhash.o qlist.o qlocale.o qlocale_tools.o qmap.o qregexp.o qringbuffer.o qstringbuilder.o qstring.o qstringlist.o qversionnumber.o qvsnprintf.o qxmlstream.o qxmlutils.o qcore_unix.o qfilesystemengine_unix.o qfilesystemiterator_unix.o qfsfileengine_unix.o qlocale_unix.o qlibraryinfo.o -Wl,--gc-sections
make[4]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/qmake'
Info: creating cache file /home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/.qmake.cache
ERROR: Command line option 'openssl-linked' expects no argument ('no' given).
ERROR: No value supplied to command line option 'qpa'.
make[3]: *** [Makefile:666: /home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/.configured_9f1872b964c3fd8a5b5b99401ed94fd4] Error 3
make[3]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/edalab/frameworks/qt5base'
time: package/feeds/edalab/qt5base/compile#84.06#6.64#90.94
ERROR: package/feeds/edalab/qt5base failed to build.
make[2]: *** [package/Makefile:116: package/feeds/edalab/qt5base/compile] Error 1
make[2]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt'
make[1]: *** [package/Makefile:110: /home/matteo/Documents/EDAlab/Dusun/openwrt/staging_dir/target-mipsel_24kc_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt'
make: *** [/home/matteo/Documents/EDAlab/Dusun/openwrt/include/toplevel.mk:230: world] Error 2
So I tried deleting the =no
option at row 368 of frameworks/qt5base/Makefile
, but then there's another error which I'm not able to solve:
g++ -o "../bin/qmake" main.o meta.o option.o project.o property.o ioutils.o proitems.o qmakebuiltins.o qmakeevaluator.o qmakeglobals.o qmakeparser.o qmakevfs.o pbuilder_pbx.o makefile.o makefiledeps.o metamakefile.o projectgenerator.o unixmake2.o unixmake.o mingw_make.o msbuild_objectmodel.o msvc_nmake.o msvc_objectmodel.o msvc_vcproj.o msvc_vcxproj.o winmakefile.o xmloutput.o qutfcodec.o qendian.o qglobal.o qlogging.o qmalloc.o qnumeric.o qoperatingsystemversion.o qrandom.o qabstractfileengine.o qbuffer.o qdatastream.o qdebug.o qdir.o qdiriterator.o qfile.o qfiledevice.o qfileinfo.o qfilesystemengine.o qfilesystementry.o qfsfileengine.o qfsfileengine_iterator.o qiodevice.o qsettings.o qtemporaryfile.o qtextstream.o qcborstreamwriter.o qcborvalue.o qjsoncbor.o qjsonarray.o qjsondocument.o qjsonobject.o qjsonparser.o qjsonvalue.o qmetatype.o qsystemerror.o qvariant.o quuid.o qarraydata.o qbitarray.o qbytearray.o qbytearraylist.o qbytearraymatcher.o qcalendar.o qgregoriancalendar.o qromancalendar.o qcryptographichash.o qdatetime.o qhash.o qlist.o qlocale.o qlocale_tools.o qmap.o qregexp.o qringbuffer.o qstringbuilder.o qstring.o qstringlist.o qversionnumber.o qvsnprintf.o qxmlstream.o qxmlutils.o qcore_unix.o qfilesystemengine_unix.o qfilesystemiterator_unix.o qfsfileengine_unix.o qlocale_unix.o qlibraryinfo.o -Wl,--gc-sections
make[4]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/qmake'
Info: creating cache file /home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/.qmake.cache
ERROR: No value supplied to command line option 'qpa'.
make[3]: *** [Makefile:666: /home/matteo/Documents/EDAlab/Dusun/openwrt/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/.configured_9f1872b964c3fd8a5b5b99401ed94fd4] Error 3
make[3]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/edalab/frameworks/qt5base'
time: package/feeds/edalab/qt5base/compile#83.75#6.70#90.52
ERROR: package/feeds/edalab/qt5base failed to build.
make[2]: *** [package/Makefile:116: package/feeds/edalab/qt5base/compile] Error 1
make[2]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt'
make[1]: *** [package/Makefile:110: /home/matteo/Documents/EDAlab/Dusun/openwrt/staging_dir/target-mipsel_24kc_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/openwrt'
make: *** [/home/matteo/Documents/EDAlab/Dusun/openwrt/include/toplevel.mk:230: world] Error 2
EDIT: for now I've "solved" by using this Makefile for QT 5.12: https://github.com/Lankaster/qt5-openwrt
@JackHack96 it seams, you try to compile QT without framebuffer, but Makefile doesn't support it:
ERROR: No value supplied to command line option 'qpa'.
you try to add "no" in row 380:
--qpa=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),linuxfb,no) \
[WIP] Upgrade to 5.15.2 and add Debian patches: https://github.com/Lankaster/video/tree/qt-5.15.2
@Lankaster Ok I've tried using your updated branch. First I still had to change the --openssl-linked
option at row 368, deleting the =no
option.
The build now goes ok till qsslcertificate.cpp
has to be built. The error seems to be in the source code:
mipsel-openwrt-linux-musl-g++ -c -pipe -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/usr/include -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/include/fortify -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/include -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/target-mipsel_24kc_musl/usr/lib/libiconv-stub/include -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/target-mipsel_24kc_musl/usr/lib/libintl-stub/include -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -fmacro-prefix-map=/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2=qtbase-everywhere-src-5.15.2 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/target-mipsel_24kc_musl/usr/lib/libiconv-stub/include -I/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/staging_dir/target-mipsel_24kc_musl/usr/lib/libintl-stub/include -O2 -std=c++1z -fno-exceptions -Wall -Wextra -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Wno-stringop-overflow -D_REENTRANT -fPIC -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQT_USE_SYSTEM_PROXIES -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_NETWORK_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -Ikernel -I../../include -I../../include/QtNetwork -I../../include/QtNetwork/5.15.2 -I../../include/QtNetwork/5.15.2/QtNetwork -I../../include/QtCore/5.15.2 -I../../include/QtCore/5.15.2/QtCore -I../../include/QtCore -I.moc -I../../mkspecs/linux-openwrt-g++ -o .obj/qsslcertificate.o ssl/qsslcertificate.cpp
In file included from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslconfiguration_p.h:105:13: error: field 'privateKey' has incomplete type 'QSslKey'
QSslKey privateKey;
^~~~~~~~~~
In file included from ssl/qsslconfiguration_p.h:74,
from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslcertificate.h:63:7: note: forward declaration of 'class QSslKey'
class QSslKey;
^~~~~~~
In file included from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslconfiguration_p.h:106:5: error: 'QSslCipher' does not name a type; did you mean 'QSslContext'?
QSslCipher sessionCipher;
^~~~~~~~~~
QSslContext
ssl/qsslconfiguration_p.h:108:11: error: 'QSslCipher' was not declared in this scope
QList<QSslCipher> ciphers;
^~~~~~~~~~
ssl/qsslconfiguration_p.h:108:11: note: suggested alternative: 'QSslContext'
QList<QSslCipher> ciphers;
^~~~~~~~~~
QSslContext
ssl/qsslconfiguration_p.h:108:21: error: template argument 1 is invalid
QList<QSslCipher> ciphers;
^
ssl/qsslconfiguration_p.h:112:5: error: 'QSslSocket' does not name a type; did you mean 'QTcpSocket'?
QSslSocket::PeerVerifyMode peerVerifyMode;
^~~~~~~~~~
QTcpSocket
ssl/qsslconfiguration_p.h:125:5: error: 'QSslDiffieHellmanParameters' does not name a type
QSslDiffieHellmanParameters dhParams;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ssl/qsslconfiguration_p.h:132:13: error: field 'ephemeralServerKey' has incomplete type 'QSslKey'
QSslKey ephemeralServerKey;
^~~~~~~~~~~~~~~~~~
In file included from ssl/qsslconfiguration_p.h:74,
from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslcertificate.h:63:7: note: forward declaration of 'class QSslKey'
class QSslKey;
^~~~~~~
In file included from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslconfiguration_p.h:138:24: error: invalid use of incomplete type 'class QSslConfiguration'
QSslConfiguration::NextProtocolNegotiationStatus nextProtocolNegotiationStatus;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../include/QtNetwork/qnetworkrequest.h:1,
from kernel/qnetworkproxy.h:45,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/../../../../../src/network/socket/qabstractsocket_p.h:61,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/qabstractsocket_p.h:1,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/../../../../../src/network/socket/qtcpsocket_p.h:56,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/qtcpsocket_p.h:1,
from ssl/qsslsocket_p.h:58,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
../../include/QtNetwork/../../src/network/access/qnetworkrequest.h:51:7: note: forward declaration of 'class QSslConfiguration'
class QSslConfiguration;
^~~~~~~~~~~~~~~~~
In file included from ssl/qsslsocket_p.h:60,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslconfiguration_p.h: In constructor 'QSslConfigurationPrivate::QSslConfigurationPrivate()':
ssl/qsslconfiguration_p.h:88:11: error: class 'QSslConfigurationPrivate' does not have any field named 'peerVerifyMode'
peerVerifyMode(QSslSocket::AutoVerifyPeer),
^~~~~~~~~~~~~~
ssl/qsslconfiguration_p.h:88:26: error: 'QSslSocket' has not been declared
peerVerifyMode(QSslSocket::AutoVerifyPeer),
^~~~~~~~~~
ssl/qsslconfiguration_p.h:93:11: error: class 'QSslConfigurationPrivate' does not have any field named 'dhParams'
dhParams(QSslDiffieHellmanParameters::defaultParameters()),
^~~~~~~~
ssl/qsslconfiguration_p.h:93:20: error: 'QSslDiffieHellmanParameters' has not been declared
dhParams(QSslDiffieHellmanParameters::defaultParameters()),
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ssl/qsslconfiguration_p.h:97:11: error: class 'QSslConfigurationPrivate' does not have any field named 'nextProtocolNegotiationStatus'
nextProtocolNegotiationStatus(QSslConfiguration::NextProtocolNegotiationNone)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ssl/qsslconfiguration_p.h:97:60: error: incomplete type 'QSslConfiguration' used in nested name specifier
nextProtocolNegotiationStatus(QSslConfiguration::NextProtocolNegotiationNone)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ssl/qsslconfiguration_p.h: At global scope:
ssl/qsslconfiguration_p.h:162:73: error: invalid use of incomplete type 'class QSslConfiguration'
inline QSslConfiguration::QSslConfiguration(QSslConfigurationPrivate *dd)
^
In file included from ../../include/QtNetwork/qnetworkrequest.h:1,
from kernel/qnetworkproxy.h:45,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/../../../../../src/network/socket/qabstractsocket_p.h:61,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/qabstractsocket_p.h:1,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/../../../../../src/network/socket/qtcpsocket_p.h:56,
from ../../include/QtNetwork/5.15.2/QtNetwork/private/qtcpsocket_p.h:1,
from ssl/qsslsocket_p.h:58,
from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
../../include/QtNetwork/../../src/network/access/qnetworkrequest.h:51:7: note: forward declaration of 'class QSslConfiguration'
class QSslConfiguration;
^~~~~~~~~~~~~~~~~
In file included from ../../include/QtCore/qglobal.h:1,
from ../../include/QtNetwork/../../src/network/kernel/qtnetworkglobal.h:43,
from ../../include/QtNetwork/qtnetworkglobal.h:1,
from ssl/qsslcertificate.cpp:132:
../../include/QtCore/../../src/corelib/global/qglobal.h:121:63: error: static assertion failed: Required feature ssl for file ssl/qocspresponse.h not available.
# define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
^~~~~~~~~~~~~~~
../../include/QtCore/../../src/corelib/global/qglobal.h:87:36: note: in expansion of macro 'Q_STATIC_ASSERT_X'
#define QT_REQUIRE_CONFIG(feature) Q_STATIC_ASSERT_X(QT_FEATURE_##feature == 1, "Required feature " #feature " for file " __FILE__ " not available.")
^~~~~~~~~~~~~~~~~
ssl/qocspresponse.h:50:1: note: in expansion of macro 'QT_REQUIRE_CONFIG'
QT_REQUIRE_CONFIG(ssl);
^~~~~~~~~~~~~~~~~
In file included from ../../include/QtCore/qglobal.h:1,
from ../../include/QtNetwork/../../src/network/kernel/qtnetworkglobal.h:43,
from ../../include/QtNetwork/qtnetworkglobal.h:1,
from ssl/qsslcertificate.cpp:132:
ssl/qsslsocket_p.h:110:22: error: 'QSslSocket' does not name a type; did you mean 'QTcpSocket'?
Q_DECLARE_PUBLIC(QSslSocket)
^~~~~~~~~~
../../include/QtCore/../../src/corelib/global/qglobal.h:1154:12: note: in definition of macro 'Q_DECLARE_PUBLIC'
inline Class* q_func() { return static_cast<Class *>(q_ptr); } \
^~~~~
ssl/qsslsocket_p.h:110:22: error: 'QSslSocket' does not name a type; did you mean 'QTcpSocket'?
Q_DECLARE_PUBLIC(QSslSocket)
^~~~~~~~~~
../../include/QtCore/../../src/corelib/global/qglobal.h:1155:18: note: in definition of macro 'Q_DECLARE_PUBLIC'
inline const Class* q_func() const { return static_cast<const Class *>(q_ptr); } \
^~~~~
In file included from ssl/qsslsocket_openssl_p.h:70,
from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslsocket_p.h:119:5: error: 'QSslSocket' does not name a type
QSslSocket::SslMode mode;
^~~~~~~~~~
ssl/qsslsocket_p.h:129:20: error: 'QSslContext' was not declared in this scope
QSharedPointer<QSslContext> sslContextPointer;
^~~~~~~~~~~
ssl/qsslsocket_p.h:129:31: error: template argument 1 is invalid
QSharedPointer<QSslContext> sslContextPointer;
^
ssl/qsslsocket_p.h:145:18: error: 'QSslCipher' was not declared in this scope
static QList<QSslCipher> defaultCiphers();
^~~~~~~~~~
ssl/qsslsocket_p.h:145:18: note: suggested alternative: 'EVP_Cipher'
static QList<QSslCipher> defaultCiphers();
^~~~~~~~~~
EVP_Cipher
ssl/qsslsocket_p.h:145:28: error: template argument 1 is invalid
static QList<QSslCipher> defaultCiphers();
^
ssl/qsslsocket_p.h:146:18: error: 'QSslCipher' was not declared in this scope
static QList<QSslCipher> supportedCiphers();
^~~~~~~~~~
ssl/qsslsocket_p.h:146:18: note: suggested alternative: 'EVP_Cipher'
static QList<QSslCipher> supportedCiphers();
^~~~~~~~~~
EVP_Cipher
ssl/qsslsocket_p.h:146:28: error: template argument 1 is invalid
static QList<QSslCipher> supportedCiphers();
^
ssl/qsslsocket_p.h:147:47: error: 'QSslCipher' was not declared in this scope
static void setDefaultCiphers(const QList<QSslCipher> &ciphers);
^~~~~~~~~~
ssl/qsslsocket_p.h:147:47: note: suggested alternative: 'EVP_Cipher'
static void setDefaultCiphers(const QList<QSslCipher> &ciphers);
^~~~~~~~~~
EVP_Cipher
ssl/qsslsocket_p.h:147:57: error: template argument 1 is invalid
static void setDefaultCiphers(const QList<QSslCipher> &ciphers);
^
ssl/qsslsocket_p.h:148:56: error: 'QSslCipher' was not declared in this scope
static void setDefaultSupportedCiphers(const QList<QSslCipher> &ciphers);
^~~~~~~~~~
ssl/qsslsocket_p.h:148:56: note: suggested alternative: 'EVP_Cipher'
static void setDefaultSupportedCiphers(const QList<QSslCipher> &ciphers);
^~~~~~~~~~
EVP_Cipher
ssl/qsslsocket_p.h:148:66: error: template argument 1 is invalid
static void setDefaultSupportedCiphers(const QList<QSslCipher> &ciphers);
^
ssl/qsslsocket_p.h:169:38: error: 'QSslSocket' has not been declared
static void pauseSocketNotifiers(QSslSocket*);
^~~~~~~~~~
ssl/qsslsocket_p.h:170:39: error: 'QSslSocket' has not been declared
static void resumeSocketNotifiers(QSslSocket*);
^~~~~~~~~~
ssl/qsslsocket_p.h:172:40: error: 'QSslSocket' has not been declared
static void checkSettingSslContext(QSslSocket*, QSharedPointer<QSslContext>);
^~~~~~~~~~
ssl/qsslsocket_p.h:172:68: error: 'QSslContext' was not declared in this scope
static void checkSettingSslContext(QSslSocket*, QSharedPointer<QSslContext>);
^~~~~~~~~~~
ssl/qsslsocket_p.h:172:79: error: template argument 1 is invalid
static void checkSettingSslContext(QSslSocket*, QSharedPointer<QSslContext>);
^
ssl/qsslsocket_p.h:173:27: error: 'QSslContext' was not declared in this scope
static QSharedPointer<QSslContext> sslContext(QSslSocket *socket);
^~~~~~~~~~~
ssl/qsslsocket_p.h:173:38: error: template argument 1 is invalid
static QSharedPointer<QSslContext> sslContext(QSslSocket *socket);
^
ssl/qsslsocket_p.h:173:51: error: 'QSslSocket' has not been declared
static QSharedPointer<QSslContext> sslContext(QSslSocket *socket);
^~~~~~~~~~
ssl/qsslsocket_p.h:206:13: error: 'QSslCipher' does not name a type; did you mean 'EVP_Cipher'?
virtual QSslCipher sessionCipher() const = 0;
^~~~~~~~~~
EVP_Cipher
In file included from ../../include/QtCore/qglobal.h:1,
from ../../include/QtNetwork/../../src/network/kernel/qtnetworkglobal.h:43,
from ../../include/QtNetwork/qtnetworkglobal.h:1,
from ssl/qsslcertificate.cpp:132:
ssl/qsslsocket_openssl_p.h:120:22: error: 'QSslSocket' does not name a type
Q_DECLARE_PUBLIC(QSslSocket)
^~~~~~~~~~
../../include/QtCore/../../src/corelib/global/qglobal.h:1154:12: note: in definition of macro 'Q_DECLARE_PUBLIC'
inline Class* q_func() { return static_cast<Class *>(q_ptr); } \
^~~~~
ssl/qsslsocket_openssl_p.h:120:22: error: 'QSslSocket' does not name a type
Q_DECLARE_PUBLIC(QSslSocket)
^~~~~~~~~~
../../include/QtCore/../../src/corelib/global/qglobal.h:1155:18: note: in definition of macro 'Q_DECLARE_PUBLIC'
inline const Class* q_func() const { return static_cast<const Class *>(q_ptr); } \
^~~~~
In file included from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslsocket_openssl_p.h:144:5: error: 'QSslCipher' does not name a type; did you mean 'EVP_Cipher'?
QSslCipher sessionCipher() const override;
^~~~~~~~~~
EVP_Cipher
In file included from ssl/qsslsocket_openssl_symbols_p.h:72,
from ssl/qsslcertificate.cpp:134:
ssl/qsslsocket_openssl_p.h:168:12: error: 'QSslCipher' does not name a type; did you mean 'EVP_Cipher'?
static QSslCipher QSslCipher_from_SSL_CIPHER(const SSL_CIPHER *cipher);
^~~~~~~~~~
EVP_Cipher
ssl/qsslcertificate.cpp: In constructor 'QSslCertificate::QSslCertificate(QIODevice*, QSsl::EncodingFormat)':
ssl/qsslcertificate.cpp:172:19: error: 'QSslSocket' has not been declared
if (device && QSslSocket::supportsSsl())
^~~~~~~~~~
ssl/qsslcertificate.cpp: In constructor 'QSslCertificate::QSslCertificate(const QByteArray&, QSsl::EncodingFormat)':
ssl/qsslcertificate.cpp:190:9: error: 'QSslSocket' has not been declared
if (QSslSocket::supportsSsl())
^~~~~~~~~~
make[5]: *** [Makefile:24534: .obj/qsslcertificate.o] Error 1
make[5]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/src/network'
make[4]: *** [Makefile:235: sub-network-make_first] Error 2
make[4]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/src'
make[3]: *** [Makefile:51: sub-src-make_first] Error 2
make[3]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/dusun-firmware/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2'
make[2]: *** [Makefile:658: /home/matteo/Documents/EDAlab/Dusun/dusun-firmware/build_dir/target-mipsel_24kc_musl/qtbase-everywhere-src-5.15.2/.built] Error 2
make[2]: Leaving directory '/home/matteo/Documents/EDAlab/Dusun/video/frameworks/qt5base'
time: package/feeds/video/qt5base/compile#538.61#32.73#569.99
ERROR: package/feeds/video/qt5base failed to build.
EDIT: I've managed to compile qt5base
by selecting on the menuconfig qt5-network
and adding to its DEPENDS libatomic
(at row 105).
Maybe qt5-network should be added too, it seems that otherwise it won't compile.
I'm also trying to add qtxmlpatterns to the build as I need it.
can qt6 be added?