userdocs / qbittorrent-nox-static

A bash script which builds a fully static qbittorent-nox binary with current dependencies to use on any Linux OS

Home Page:https://userdocs.github.io/qbittorrent-nox-static

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compilation error on Raspberry Pi 4

Sorridi opened this issue · comments

commented

Hi there,

I'm having troubles compiling qBittorrent-nox using the script. Every module seems to compile just fine, except qbittorrent.

Host: Raspberry Pi 4 Model B Rev 1.2
OS: Raspbian GNU/Linux 10 (buster) armv7l

./qbittorrent-nox-static.sh qbittorrent logs:

...
compiling moc_webapplication.cpp
compiling moc_webui.cpp
compiling base/torrentfileswatcher.cpp
linking qbittorrent-nox
/usr/bin/ld: /home/sdbox/qbt-build/plugins/sqldrivers/libqsqlite.a(sqlite3.o): in function 'unixDlOpen':
sqlite3.c:(.text.unixDlOpen+0x8): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::counters()':
performance_counters.cpp:(.text+0x2c): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::counters(libtorrent::counters const&)':
performance_counters.cpp:(.text+0x68): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0x80): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::operator=(libtorrent::counters const&)':
performance_counters.cpp:(.text+0xc8): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0xe0): undefined reference to '__atomic_store_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::operator[](int) const':
performance_counters.cpp:(.text+0x104): undefined reference to '__atomic_load_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::inc_stats_counter(int, long long)':
performance_counters.cpp:(.text+0x124): undefined reference to '__atomic_fetch_add_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::blend_stats_counter(int, long long, int)':
performance_counters.cpp:(.text+0x158): undefined reference to '__atomic_load_8'
/usr/bin/ld: performance_counters.cpp:(.text+0x1c4): undefined reference to '__atomic_compare_exchange_8'
/usr/bin/ld: /home/sdbox/qbt-build/lib/libtorrent-rasterbar.a(performance_counters.o): in function 'libtorrent::counters::set_value(int, long long)':
performance_counters.cpp:(.text+0x224): undefined reference to '__atomic_store_8'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:641: qbittorrent-nox] Error 1
make[1]: Leaving directory '/home/sdbox/qbt-build/qbittorrent/src'
make: *** [Makefile:47: sub-src-make_first] Error 2

I build in dockers as qtabse tends to do weird stuff depending on what is installed. This worked for me.

docker run -it -w /root -e "LANG=en_GB.UTF-8" -v $HOME/docker:/root debian:buster
export qbt_qt_version=6.3
export libtorrent_version=2.0
export qbt_cross_name=armv7 # you can skip this on native armv7
./qbittorrent-nox-static.sh all -c -i
commented

In a docker container the compilation completes successfully:

 ✔ Dependencies installed!

 ● All checks passed and core dependencies are installed, continuing to build

 + qbittorrent-nox has been installed!

 Run it using this command:

 qbittorrent-nox

However, when I try to run qbittorrent-nox it spams this:

...
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
qt_safe_poll: Operation not permitted
^C
root@3eeac662b60b:~# ^C
root@3eeac662b60b:~# ^C

And I have to forcibly terminate the process.

ignoring the error for the moment, does the build load and work correctly, reachable via the webui?

commented

Unfortunately, the qbittorrent-nox command does not work - it spawns the process of qbittorrent-nox but it consumes lots of CPU (probably related to the spam of the messages) without actually doing anything.

Take a look at containers:

That being said, the first time I started it, it prompted me with the EULA, and the commands like qbittorrent-nox -v or qbittorrent-nox -h work, but qbittorrent-nox files (or URLs) do not.

does the web ui load?

ip:8080 ?

commented

No, it doesn't.

commented

Yes, the binaries work without any issues.

Since I cannot tell if there is a script issue or a localised build issue maybe using the pre built binaries is the best option?

Even if there was a need to build your own to patch you can do that via a forked repo and use your own releases.

So without more info the best action is the working method, i think.

closing for now, If you have a more info we can reopen the issue.