spksrc
spksrc copied to clipboard
qBitTorrent on DSM: C++14, lib QT
qBitTorrent can be built headless, with a web UI. It is actively maintained, and it is based on libtorrent rasterbar for torrent processing. It makes sense as a deluge replacement, whose development is stalled.
However, it proves hard to be brought on the spksrc:
- qBitTorrent needs C++14, but syno cross compilation toolkits have a quite old GCC version, that supports C++11 only
- QT library: massive time to cross compile
- QT linguist tools (lupdate, lrelease): needed on host, i.e. included in the spksrc docker image. This is needed to build qBitTorrent i18n.
My question to senior maintainers of spksrc: do you think it is worth trying? will DSM 7 new toolkits include newer GCC with C++14 support?
@Strangelovian the synology DSM 6 toolchains do not support newer gcc versions than 4.9 but the DSM 7 (preview) toolchains have gcc 7.3 and glibc 2.26. Since gcc 6 has C++14 as default you will be lucky with DSM 7.
to consider:
- For QT linguist you should plan to add as native dependency that is created once for the host system and referenced as BUILD_DEPENDS.
- Is it realy worth to cross compile the qt libraries (what is the number of source files for the headless libraries?)
- The qt libraries might be built as dedicated package (like python, perl, mono, node, etc.)
* For QT linguist you should plan to add as native dependency that is created once for the host system and referenced as BUILD_DEPENDS.
This is the major pain point in terms of build time. "qtbase" (the core of QT) must be built first, then three other BIG QT modules must be built for the QT Tools (which contains QT Linguist). This is taking approx. 1 hour with my own core i7 PC with multi core compilation (make -j 4). I estimate 4h for the normal spksrc monocore build
* Is it realy worth to cross compile the qt libraries (what is the number of source files for the headless libraries?)
Yes, only qtbase needs to be cross built, and it can be "configure"'d to include less, hopefully reducing build time for cross compilations.
* The qt libraries might be built as dedicated package (like python, perl, mono, node, etc.)
The QT lib*.so files are not so big, but yeah, why not.
speaking of which, this contains a working spksrc cross build of qtbase: https://github.com/Strangelovian/spksrc/tree/add-qBitTorrent
However, I'm still struggling on how to handle QT Linguist lupdate and lrelease.
I recommend to wait for DSM 7 toolchains to progress
IMNKS has solved the toochain and realized it, plz see: https://imnks.com/6865.html https://github.com/userdocs/qbittorrent-nox-static