[Bug] Build of 2025.8.1 is broken: `fatal error: libnick/app/datafilemanager.h: No such file or directory`
Closed this issue · 4 comments
barracuda156 commented
Fails to build with the latest release of libnick:
/usr/bin/make -f libparabolic/CMakeFiles/libparabolic.dir/build.make libparabolic/CMakeFiles/libparabolic.dir/build
make[2]: Entering directory `/opt/local/var/macports/build/parabolic-4e9a3e96/work/build'
[ 7%] Building CXX object libparabolic/CMakeFiles/libparabolic.dir/src/controllers/adddownloaddialogcontroller.cpp.o
[ 7%] Building CXX object libparabolic/CMakeFiles/libparabolic.dir/src/controllers/credentialdialogcontroller.cpp.o
[ 9%] Building CXX object libparabolic/CMakeFiles/libparabolic.dir/src/controllers/mainwindowcontroller.cpp.o
[ 9%] Building CXX object libparabolic/CMakeFiles/libparabolic.dir/src/controllers/keyringdialogcontroller.cpp.o
cd /opt/local/var/macports/build/parabolic-4e9a3e96/work/build/libparabolic && /opt/local/bin/g++-mp-14 -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_JSON_DYN_LINK -DBOOST_JSON_NO_LIB -I/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include -isystem /opt/local/include/libnick -isystem /opt/local/include -isystem /opt/local/libexec/boost/1.81/include -isystem /opt/local/libexec/sqlcipher/include -isystem /opt/local/include/glib-2.0 -isystem /opt/local/lib/glib-2.0/include -isystem /opt/local/include/libsecret-1 -isystem /opt/local/include/gio-unix-2.0 -pipe -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -isystem/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++20 -arch ppc -mmacosx-version-min=10.6 -Wall -Wextra -Wpedantic -MD -MT libparabolic/CMakeFiles/libparabolic.dir/src/controllers/adddownloaddialogcontroller.cpp.o -MF CMakeFiles/libparabolic.dir/src/controllers/adddownloaddialogcontroller.cpp.o.d -o CMakeFiles/libparabolic.dir/src/controllers/adddownloaddialogcontroller.cpp.o -c /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/adddownloaddialogcontroller.cpp
cd /opt/local/var/macports/build/parabolic-4e9a3e96/work/build/libparabolic && /opt/local/bin/g++-mp-14 -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_JSON_DYN_LINK -DBOOST_JSON_NO_LIB -I/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include -isystem /opt/local/include/libnick -isystem /opt/local/include -isystem /opt/local/libexec/boost/1.81/include -isystem /opt/local/libexec/sqlcipher/include -isystem /opt/local/include/glib-2.0 -isystem /opt/local/lib/glib-2.0/include -isystem /opt/local/include/libsecret-1 -isystem /opt/local/include/gio-unix-2.0 -pipe -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -isystem/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++20 -arch ppc -mmacosx-version-min=10.6 -Wall -Wextra -Wpedantic -MD -MT libparabolic/CMakeFiles/libparabolic.dir/src/controllers/mainwindowcontroller.cpp.o -MF CMakeFiles/libparabolic.dir/src/controllers/mainwindowcontroller.cpp.o.d -o CMakeFiles/libparabolic.dir/src/controllers/mainwindowcontroller.cpp.o -c /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/mainwindowcontroller.cpp
cd /opt/local/var/macports/build/parabolic-4e9a3e96/work/build/libparabolic && /opt/local/bin/g++-mp-14 -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_JSON_DYN_LINK -DBOOST_JSON_NO_LIB -I/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include -isystem /opt/local/include/libnick -isystem /opt/local/include -isystem /opt/local/libexec/boost/1.81/include -isystem /opt/local/libexec/sqlcipher/include -isystem /opt/local/include/glib-2.0 -isystem /opt/local/lib/glib-2.0/include -isystem /opt/local/include/libsecret-1 -isystem /opt/local/include/gio-unix-2.0 -pipe -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -isystem/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++20 -arch ppc -mmacosx-version-min=10.6 -Wall -Wextra -Wpedantic -MD -MT libparabolic/CMakeFiles/libparabolic.dir/src/controllers/credentialdialogcontroller.cpp.o -MF CMakeFiles/libparabolic.dir/src/controllers/credentialdialogcontroller.cpp.o.d -o CMakeFiles/libparabolic.dir/src/controllers/credentialdialogcontroller.cpp.o -c /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp
cd /opt/local/var/macports/build/parabolic-4e9a3e96/work/build/libparabolic && /opt/local/bin/g++-mp-14 -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_JSON_DYN_LINK -DBOOST_JSON_NO_LIB -I/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include -isystem /opt/local/include/libnick -isystem /opt/local/include -isystem /opt/local/libexec/boost/1.81/include -isystem /opt/local/libexec/sqlcipher/include -isystem /opt/local/include/glib-2.0 -isystem /opt/local/lib/glib-2.0/include -isystem /opt/local/include/libsecret-1 -isystem /opt/local/include/gio-unix-2.0 -pipe -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -Os -DNDEBUG -I/opt/local/libexec/openssl3/include -I/opt/local/libexec/boost/1.81/include -isystem/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++20 -arch ppc -mmacosx-version-min=10.6 -Wall -Wextra -Wpedantic -MD -MT libparabolic/CMakeFiles/libparabolic.dir/src/controllers/keyringdialogcontroller.cpp.o -MF CMakeFiles/libparabolic.dir/src/controllers/keyringdialogcontroller.cpp.o.d -o CMakeFiles/libparabolic.dir/src/controllers/keyringdialogcontroller.cpp.o -c /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp
In file included from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/mainwindowcontroller.cpp:1:
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include/controllers/mainwindowcontroller.h:14:10: fatal error: libnick/app/datafilemanager.h: No such file or directory
14 | #include <libnick/app/datafilemanager.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [libparabolic/CMakeFiles/libparabolic.dir/src/controllers/mainwindowcontroller.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/adddownloaddialogcontroller.cpp:1:
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include/controllers/adddownloaddialogcontroller.h:11:10: fatal error: libnick/app/cancellationtoken.h: No such file or directory
11 | #include <libnick/app/cancellationtoken.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [libparabolic/CMakeFiles/libparabolic.dir/src/controllers/adddownloaddialogcontroller.cpp.o] Error 1
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp: In member function 'const std::vector<Nickvision::Keyring::Credential>& Nickvision::TubeConverter::Shared::Controllers::KeyringDialogController::getCredentials() const':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:23:26: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredentials'; did you mean 'std::vector<Nickvision::Keyring::Credential> Nickvision::Keyring::Keyring::m_credentials'? (not accessible from this context)
23 | return m_keyring.getCredentials();
| ^~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include/controllers/keyringdialogcontroller.h:8,
from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:1:
/opt/local/include/libnick/keyring/keyring.h:113:33: note: declared private here
113 | std::vector<Credential> m_credentials;
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp: In member function 'std::vector<std::basic_string<char> > Nickvision::TubeConverter::Shared::Controllers::CredentialDialogController::getKeyringCredentialNames() const':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp:23:54: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredentials'; did you mean 'std::vector<Nickvision::Keyring::Credential> Nickvision::Keyring::Keyring::m_credentials'? (not accessible from this context)
23 | for(const Credential& credential : m_keyring.getCredentials())
| ^~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/include/controllers/credentialdialogcontroller.h:6,
from /opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp:1:
/opt/local/include/libnick/keyring/keyring.h:113:33: note: declared private here
113 | std::vector<Credential> m_credentials;
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp: In member function 'std::optional<Nickvision::Keyring::Credential> Nickvision::TubeConverter::Shared::Controllers::KeyringDialogController::getCredential(const std::string&) const':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:28:26: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredential'
28 | return m_keyring.getCredential(name);
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp: In member function 'Nickvision::TubeConverter::Shared::Models::CredentialCheckStatus Nickvision::TubeConverter::Shared::Controllers::KeyringDialogController::addCredential(const std::string&, const std::string&, const std::string&, const std::string&)':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:45:27: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredential'
45 | else if(m_keyring.getCredential(name).has_value())
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:51:30: error: 'class Nickvision::Keyring::Keyring' has no member named 'addCredential'
51 | return m_keyring.addCredential({ name, StringHelpers::trim(url), username, password }) ? CredentialCheckStatus::Valid : CredentialCheckStatus::DatabaseError;
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp: In member function 'void Nickvision::TubeConverter::Shared::Controllers::CredentialDialogController::use(int)':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp:38:48: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredentials'; did you mean 'std::vector<Nickvision::Keyring::Credential> Nickvision::Keyring::Keyring::m_credentials'? (not accessible from this context)
38 | if(index >= static_cast<int>(m_keyring.getCredentials().size()))
| ^~~~~~~~~~~~~~
/opt/local/include/libnick/keyring/keyring.h:113:33: note: declared private here
113 | std::vector<Credential> m_credentials;
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp:42:49: error: 'class Nickvision::Keyring::Keyring' has no member named 'getCredentials'; did you mean 'std::vector<Nickvision::Keyring::Credential> Nickvision::Keyring::Keyring::m_credentials'? (not accessible from this context)
42 | const Credential& credential{ m_keyring.getCredentials()[index] };
| ^~~~~~~~~~~~~~
/opt/local/include/libnick/keyring/keyring.h:113:33: note: declared private here
113 | std::vector<Credential> m_credentials;
| ^~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/credentialdialogcontroller.cpp:42:73: error: invalid initialization of reference of type 'const Nickvision::Keyring::Credential&' from expression of type '<brace-enclosed initializer list>'
42 | const Credential& credential{ m_keyring.getCredentials()[index] };
| ^
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp: In member function 'Nickvision::TubeConverter::Shared::Models::CredentialCheckStatus Nickvision::TubeConverter::Shared::Controllers::KeyringDialogController::updateCredential(const std::string&, const std::string&, const std::string&, const std::string&)':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:71:30: error: 'class Nickvision::Keyring::Keyring' has no member named 'updateCredential'
71 | return m_keyring.updateCredential({ name, StringHelpers::trim(url), username, password }) ? CredentialCheckStatus::Valid : CredentialCheckStatus::DatabaseError;
| ^~~~~~~~~~~~~~~~
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp: In member function 'Nickvision::TubeConverter::Shared::Models::CredentialCheckStatus Nickvision::TubeConverter::Shared::Controllers::KeyringDialogController::deleteCredential(const std::string&)':
/opt/local/var/macports/build/parabolic-4e9a3e96/work/Parabolic-2025.8.1/libparabolic/src/controllers/keyringdialogcontroller.cpp:83:30: error: 'class Nickvision::Keyring::Keyring' has no member named 'deleteCredential'
83 | return m_keyring.deleteCredential(name) ? CredentialCheckStatus::Valid : CredentialCheckStatus::DatabaseError;
| ^~~~~~~~~~~~~~~~
make[2]: *** [libparabolic/CMakeFiles/libparabolic.dir/src/controllers/keyringdialogcontroller.cpp.o] Error 1
@nlogozzo Could you please address this?
nlogozzo commented
libnick has been updated to v2025.9.2, which contains many changes. Parabolic v2025.8.1 still supports the old version of libnick.
Parabolic v2025.9.0 (being released tonight/tomorrow) will support the new libnick.
barracuda156 commented
@nlogozzo Well, I assumed that the latest releases of each are supposed to be compatible. If the update for parabolic is coming, then no problem, of course.
nlogozzo commented
libnick V2025.9.2 has a new API. Parabolic needs to be updated to support that. Coming in Parabolic V2025.9.0
barracuda156 commented
Thank you!