openwrt/video

Refresh QT Framework

Lankaster opened this issue · 10 comments

mirko commented

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.

mirko commented

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.

Well, maybe because of KDE cooperation (link1 link2) it make sense to use directly KDE repository: KDE 5.15

mirko commented

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?