Closed abcfy2 closed 2 years ago
Just recording the issue. Seems qbittorrent 4.4.0 will support Qt6: qbittorrent#15567
Maybe I should upgrade build dependencies after 4.4.0 released.
If it works I will create a PR to close this issue.
Most important question: I don't know how many Windows 7/8/8.1 users is using Enhanced Edition..... Cause Qt6 dropped Windows 7 support.
https://www.qt.io/blog/qt6-development-hosts-and-targets
Don't worry, target win 7 is OK. So you can build on win 10 but running on win 7.
https://www.qt.io/blog/qt6-development-hosts-and-targets
Don't worry, target win 7 is OK. So you can build on win 10 but running on win 7.
Upstream commit is merged into v4_4_x, you can create a PR for testing.
Does it support Apple Silicon macOS?
Does it support Apple Silicon macOS?
Yes.
https://www.qt.io/blog/qt-6.2-lts-released
Qt 6.2 fully supports macOS on Apple Silicon.
Because Qt6 does not contains pkgconfig
(issue: https://github.com/qbittorrent/qBittorrent/issues/15609) , So I have to switch to use cmake to build qbittorrent.
Also, seems Qt6 required a high version libc(maybe >= 2.32). So I have to use ubuntu-18.04
or ubuntu-20.04
for appimage build. After that AppImage may not working on an old Linux distro like CentOS 7.
@c0re100 Please pull again from upstream master
branch, because upstream already fix qt6 build.
@c0re100 Please pull again from upstream
master
branch, because upstream already fix qt6 build.
Done.
@c0re100 Build failed:
-- Build files have been written to: /build/build
root@d335289cc0f6:/build# cmake --build build
[43/311] Building CXX object src/base/CMakeFiles/qbt_base.dir/bittorrent/session.cpp.o
FAILED: src/base/CMakeFiles/qbt_base.dir/bittorrent/session.cpp.o
/usr/bin/c++ -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_NO_DEPRECATED -DOPENSSL_NO_SSL2 -DQBT_USES_LIBTORRENT2 -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050f02 -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_DEBUG_OUTPUT -DQT_SQL_LIB -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -DQT_XML_LIB -DTORRENT_LINKING_SHARED -DTORRENT_SSL_PEERS -DTORRENT_USE_LIBCRYPTO -DTORRENT_USE_OPENSSL -Isrc/base/qbt_base_autogen/include -I../src -isystem /usr/local/Qt-6.2.0/include/QtCore -isystem /usr/local/Qt-6.2.0/include -isystem /usr/local/Qt-6.2.0/mkspecs/linux-g++ -isystem /usr/local/Qt-6.2.0/include/QtNetwork -isystem /usr/local/Qt-6.2.0/include/QtSql -isystem /usr/local/Qt-6.2.0/include/QtXml -isystem /usr/local/Qt-6.2.0/include/QtDBus -O3 -DNDEBUG -fexceptions -fPIC -Wall -Wextra -Wcast-qual -Wcast-align -Winvalid-pch -Woverloaded-virtual -Wold-style-cast -Wnon-virtual-dtor -pedantic -pedantic-errors -Wstrict-null-sentinel -std=gnu++17 -MD -MT src/base/CMakeFiles/qbt_base.dir/bittorrent/session.cpp.o -MF src/base/CMakeFiles/qbt_base.dir/bittorrent/session.cpp.o.d -o src/base/CMakeFiles/qbt_base.dir/bittorrent/session.cpp.o -c ../src/base/bittorrent/session.cpp
../src/base/bittorrent/session.cpp: In member function 'void BitTorrent::Session::populatePublicTrackers()':
../src/base/bittorrent/session.cpp:1683:10: error: 'QStringRef' was not declared in this scope; did you mean 'QStringMap'?
1683 | for (QStringRef tracker : asConst(trackers.splitRef('\n'))) {
| ^~~~~~~~~~
| QStringMap
../src/base/bittorrent/session.cpp:1688:1: error: expected primary-expression before '}' token
1688 | }
| ^
../src/base/bittorrent/session.cpp:1687:6: error: expected ';' before '}' token
1687 | }
| ^
| ;
1688 | }
| ~
../src/base/bittorrent/session.cpp:1688:1: error: expected primary-expression before '}' token
1688 | }
| ^
../src/base/bittorrent/session.cpp:1687:6: error: expected ')' before '}' token
1687 | }
| ^
| )
1688 | }
| ~
../src/base/bittorrent/session.cpp:1683:9: note: to match this '('
1683 | for (QStringRef tracker : asConst(trackers.splitRef('\n'))) {
| ^
../src/base/bittorrent/session.cpp:1688:1: error: expected primary-expression before '}' token
1688 | }
| ^
[60/311] Building CXX object src/base/CMakeFiles/qbt_base.dir/rss/rss_autodownloader.cpp.o
ninja: build stopped: subcommand failed.
But upstream does not contains this error. Did you forget merge session.cpp
from upstream?
QStringRef
already dropped in Qt6, and upstream already solved this error.
already dropped in Qt6
Ah, fixed.
Please pull again.
Cause public tracker feature is still using QStringRef
.
I created a diff patch from v4.3.x and apply to v4.4, so this error appeared...
AppImage building is OK, you can find AppImage in my github action atrifacts: https://github.com/abcfy2/qBittorrent-Enhanced-Edition/actions/runs/1382113425
But I met an issue about linuxdeploy-plugin-qt: https://github.com/linuxdeploy/linuxdeploy-plugin-qt/issues/95
I'm waiting for upstream to resolve this issue.
Now I'm working on cross-compile to migrate to Qt6.
After all done I'll make a PR.
AppImage is working now:
https://github.com/abcfy2/qBittorrent-Enhanced-Edition/releases/tag/v4.4.0-beta3
All done. After do some manual test I will submit a PR to close issue.
Just recording the issue. Seems qbittorrent 4.4.0 will support Qt6: https://github.com/qbittorrent/qBittorrent/pull/15567
Maybe I should upgrade build dependencies after 4.4.0 released.
If it works I will create a PR to close this issue.