spksrc icon indicating copy to clipboard operation
spksrc copied to clipboard

qBitTorrent on DSM: C++14, lib QT

Open Strangelovian opened this issue 3 years ago • 5 comments

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:

  1. qBitTorrent needs C++14, but syno cross compilation toolkits have a quite old GCC version, that supports C++11 only
  2. QT library: massive time to cross compile
  3. 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 avatar Oct 25 '20 19:10 Strangelovian

@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.)

hgy59 avatar Oct 25 '20 20:10 hgy59

* 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.

Strangelovian avatar Oct 25 '20 20:10 Strangelovian

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.

Strangelovian avatar Oct 25 '20 20:10 Strangelovian

I recommend to wait for DSM 7 toolchains to progress

ymartin59 avatar Oct 31 '20 11:10 ymartin59

IMNKS has solved the toochain and realized it, plz see: https://imnks.com/6865.html https://github.com/userdocs/qbittorrent-nox-static

once375ml avatar Nov 15 '23 02:11 once375ml