I am new to developing on KDE and I’m trying to build spectacle on OpenSUSE Tumbleweed.
I have just set up kde-builder and I was able to successfully build KCalc. However, Spectacle fails to build on Building libraries/qca (kdesupport/qca) (18/42):
# kde-builder running: 'ninja'
# from directory: /home/conley/kde/build/qca
# with environment: /home/conley/kde/build/qca/kde-builder.env
[1/140] Building CXX object unittest/hexunittest/CMakeFiles/hexunittest.dir/hexunittest_autogen/mocs_compilation.cpp.o
[2/140] Building CXX object unittest/keybundle/CMakeFiles/keybundle.dir/keybundle_autogen/mocs_compilation.cpp.o
[3/140] Building CXX object unittest/keygenunittest/CMakeFiles/keygenunittest.dir/keygenunittest_autogen/mocs_compilation.cpp.o
[4/140] Building CXX object unittest/kdfunittest/CMakeFiles/kdfunittest.dir/kdfunittest_autogen/mocs_compilation.cpp.o
[5/140] Building CXX object unittest/keylengthunittest/CMakeFiles/keylengthunittest.dir/keylengthunittest_autogen/mocs_compilation.cpp.o
[6/140] Building CXX object unittest/keystore/CMakeFiles/keystore.dir/keystore_autogen/mocs_compilation.cpp.o
[7/140] Building CXX object unittest/logger/CMakeFiles/loggerunittest.dir/loggerunittest_autogen/mocs_compilation.cpp.o
[8/140] Building CXX object unittest/macunittest/CMakeFiles/macunittest.dir/macunittest_autogen/mocs_compilation.cpp.o
[9/140] Building CXX object unittest/pgpunittest/CMakeFiles/pgpunittest.dir/pgpunittest_autogen/mocs_compilation.cpp.o
[10/140] Building CXX object unittest/pipeunittest/CMakeFiles/pipeunittest.dir/pipeunittest_autogen/mocs_compilation.cpp.o
[11/140] Building CXX object unittest/metatype/CMakeFiles/metatypeunittest.dir/metatypeunittest_autogen/mocs_compilation.cpp.o
[12/140] Building CXX object unittest/pkits/CMakeFiles/pkits.dir/pkits_autogen/mocs_compilation.cpp.o
[13/140] Building CXX object unittest/rsaunittest/CMakeFiles/rsaunittest.dir/rsaunittest_autogen/mocs_compilation.cpp.o
[14/140] Building CXX object unittest/keystore/CMakeFiles/keystore.dir/keystore.cpp.o
[15/140] Building CXX object unittest/securearrayunittest/CMakeFiles/securearrayunittest.dir/securearrayunittest_autogen/mocs_compilation.cpp.o
[16/140] Building CXX object unittest/keybundle/CMakeFiles/keybundle.dir/keybundle.cpp.o
[17/140] Building CXX object unittest/keylengthunittest/CMakeFiles/keylengthunittest.dir/keylengthunittest.cpp.o
[18/140] Building CXX object unittest/staticunittest/CMakeFiles/staticunittest.dir/staticunittest_autogen/mocs_compilation.cpp.o
[19/140] Building CXX object unittest/symmetrickeyunittest/CMakeFiles/symmetrickeyunittest.dir/symmetrickeyunittest_autogen/mocs_compilation.cpp.o
[20/140] Building CXX object unittest/pipeunittest/CMakeFiles/pipeunittest.dir/pipeunittest.cpp.o
[21/140] Building CXX object unittest/tls/CMakeFiles/tlsunittest.dir/tlsunittest_autogen/mocs_compilation.cpp.o
[22/140] Building CXX object unittest/rsaunittest/CMakeFiles/rsaunittest.dir/rsaunittest.cpp.o
[23/140] Building CXX object unittest/velox/CMakeFiles/veloxunittest.dir/veloxunittest_autogen/mocs_compilation.cpp.o
[24/140] Building CXX object plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.o
FAILED: [code=1] plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.o
/usr/bin/c++ -DHAVE_OPENSSL_AES_CCM -DHAVE_OPENSSL_AES_CTR -DHAVE_OPENSSL_AES_GCM -DQCA_SYSTEMSTORE_PATH=\"/etc/ssl/ca-bundle.pem\" -DQT_CORE_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_DEFAULT_SOURCE -Dqca_ossl_EXPORTS -I/home/conley/kde/build/qca/plugins/qca-ossl -I/home/conley/kde/src/qca/plugins/qca-ossl -I/home/conley/kde/build/qca/plugins/qca-ossl/qca-ossl_autogen/include -I/home/conley/kde/src/qca/include/QtCrypto -I/home/conley/kde/build/qca -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -pipe -Wcast-align -Wnon-virtual-dtor -Wno-long-long -Wundef -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-check-new -fno-common -Wsuggest-override -Wlogical-op -O2 -g -DNDEBUG -std=gnu++17 -fPIC -MD -MT plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.o -MF plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.o.d -o plugins/qca-ossl/CMakeFiles/qca-ossl.dir/qca-ossl.cpp.o -c /home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp
In file included from /home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:37:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp: In static member function ‘static int opensslQCAPlugin::QCA_RSA_METHOD::rsa_priv_dec(int, const unsigned char*, unsigned char*, RSA*, int)’:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:2855:20: error: ‘RSA_F_RSA_OSSL_PRIVATE_DECRYPT’ was not declared in this scope; did you mean ‘RSA_F_RSA_NULL_PRIVATE_DECRYPT’?
2855 | RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, RSA_R_UNKNOWN_PADDING_TYPE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp: In function ‘QDateTime opensslQCAPlugin::ASN1_UTCTIME_QDateTime(const ASN1_UTCTIME*, int*)’:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:3373:24: warning: ‘void QDateTime::setTimeSpec(Qt::TimeSpec)’ is deprecated: Use setTimeZone() instead [-Wdeprecated-declarations]
3373 | qdt.setTimeSpec(Qt::UTC);
| ~~~~~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/qt6/QtCore/QDateTime:1,
from /home/conley/kde/src/qca/include/QtCrypto/qca_cert.h:38,
from /home/conley/kde/src/qca/include/QtCrypto/qca.h:37,
from /home/conley/kde/src/qca/include/QtCrypto/QtCrypto:1,
from /home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:25:
/usr/include/qt6/QtCore/qdatetime.h:407:10: note: declared here
407 | void setTimeSpec(Qt::TimeSpec spec);
| ^~~~~~~~~~~
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp: In member function ‘virtual QStringList opensslQCAPlugin::MyTLSContext::supportedCipherSuites(const QCA::TLS::Version&) const’:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:5028:47: error: ‘SSL_CIPHER_standard_name’ was not declared in this scope; did you mean ‘SSL_CIPHER_get_name’?
5028 | cipherList += QString::fromLatin1(SSL_CIPHER_standard_name(thisCipher));
| ^~~~~~~~~~~~~~~~~~~~~~~~
| SSL_CIPHER_get_name
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp: In member function ‘virtual QCA::TLSContext::SessionInfo opensslQCAPlugin::MyTLSContext::sessionInfo() const’:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:5401:52: error: ‘SSL_CIPHER_standard_name’ was not declared in this scope; did you mean ‘SSL_CIPHER_get_name’?
5401 | sessInfo.cipherSuite = QString::fromLatin1(SSL_CIPHER_standard_name(SSL_get_current_cipher(ssl)));
| ^~~~~~~~~~~~~~~~~~~~~~~~
| SSL_CIPHER_get_name
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp: In member function ‘virtual QCA::Provider::Context* opensslProvider::createContext(const QString&)’:
/home/conley/kde/src/qca/plugins/qca-ossl/qca-ossl.cpp:6926:47: error: ‘EVP_whirlpool’ was not declared in this scope; did you mean ‘OBJ_whirlpool’?
6926 | return new opensslHashContext(EVP_whirlpool(), this, type);
| ^~~~~~~~~~~~~
| OBJ_whirlpool
[25/140] Building CXX object unittest/hexunittest/CMakeFiles/hexunittest.dir/hexunittest.cpp.o
[26/140] Building CXX object unittest/metatype/CMakeFiles/metatypeunittest.dir/metatype.cpp.o
[27/140] Building CXX object unittest/logger/CMakeFiles/loggerunittest.dir/loggerunittest.cpp.o
[28/140] Building CXX object unittest/keygenunittest/CMakeFiles/keygenunittest.dir/keygenunittest.cpp.o
[29/140] Building CXX object unittest/kdfunittest/CMakeFiles/kdfunittest.dir/kdfunittest.cpp.o
[30/140] Building CXX object unittest/pgpunittest/CMakeFiles/pgpunittest.dir/pgpunittest.cpp.o
[31/140] Building CXX object unittest/securearrayunittest/CMakeFiles/securearrayunittest.dir/securearrayunittest.cpp.o
[32/140] Building CXX object unittest/tls/CMakeFiles/tlsunittest.dir/tlsunittest.cpp.o
[33/140] Building CXX object unittest/velox/CMakeFiles/veloxunittest.dir/veloxunittest.cpp.o
[34/140] Building CXX object unittest/macunittest/CMakeFiles/macunittest.dir/macunittest.cpp.o
[35/140] Building CXX object unittest/staticunittest/CMakeFiles/staticunittest.dir/staticunittest.cpp.o
[36/140] Building CXX object unittest/symmetrickeyunittest/CMakeFiles/symmetrickeyunittest.dir/symmetrickeyunittest.cpp.o
[37/140] Building CXX object unittest/pkits/CMakeFiles/pkits.dir/pkits.cpp.o
/home/conley/kde/src/qca/unittest/pkits/pkits.cpp: In function ‘QCA::Certificate certFromDERFile(const QString&, const QString&)’:
/home/conley/kde/src/qca/unittest/pkits/pkits.cpp:92:18: warning: ignoring return value of ‘virtual bool QFile::open(QIODeviceBase::OpenMode)’, declared with attribute ‘nodiscard’ [-Wunused-result]
92 | certFile.open(QFile::ReadOnly);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/qt6/QtCore/qdir.h:11,
from /usr/include/qt6/QtCore/qtemporarydir.h:9,
from /usr/include/qt6/QtTest/qtestcase.h:15,
from /usr/include/qt6/QtTest/qtest.h:13,
from /usr/include/qt6/QtTest/QTest:1,
from /home/conley/kde/src/qca/unittest/pkits/pkits.cpp:26:
/usr/include/qt6/QtCore/qfile.h:291:32: note: declared here
291 | QFILE_MAYBE_NODISCARD bool open(OpenMode flags) override;
| ^~~~
/home/conley/kde/src/qca/unittest/pkits/pkits.cpp: In function ‘QCA::CRL crlFromDERFile(const QString&, const QString&)’:
/home/conley/kde/src/qca/unittest/pkits/pkits.cpp:102:17: warning: ignoring return value of ‘virtual bool QFile::open(QIODeviceBase::OpenMode)’, declared with attribute ‘nodiscard’ [-Wunused-result]
102 | crlFile.open(QFile::ReadOnly);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qfile.h:291:32: note: declared here
291 | QFILE_MAYBE_NODISCARD bool open(OpenMode flags) override;
| ^~~~
ninja: build stopped: subcommand failed.
# exit code was: 256
Is there something I’m missing?