Introduction
What is it?
qbittorrent-nox-static.sh™
was originally a simple, amateurish bash script, to build a static qbittorrent-nox
binary for x86_64
. The script has grown and evolved since then and now it’s a complicated bash script.
What does it do?
It handles a lot of the nuanced complexity around building various different dependencies on two different host platforms, towards the same outcome and can target these architectures via crossbuilding:
target architectures
armel
armhf
armv7
aarch64
x86
x86_64
s390x
powerpc
ppc64el
mips
mipsel
mips64
mips64el
loongarch64
riscv64
⭐ On supported host build platforms the qbittorrent-nox-static.sh
will perform these three main tasks via simple prompt:
-
Update the system and install the core build dependencies, based on activated options - Requires
root
orsudo
privileges if any dependencies are missing. -
Download all dependencies locally and build
qbittorrent-nox
with no special privileges required. -
Build a fully static and portable
qbittorrent-nox
binary which built using the latest version of all supported dependencies.
The script is highly configurable and is capable of native and cross building. These more advanced configurations will be discussed later sections of the documentation.
What is the outcome
⭐ Here is an example successful default build profile:
qBittorrent 5.0.4 was built with the following libraries:Qt: 6.8.2Libtorrent: 2.0.11Boost: 1.87.0OpenSSL: 3.4.1zlib: 1.3.1.zlib-ng
The script creates a fully static qbittorrent-nox
binary using
The final result will show this when using ldd
ldd ~/qbt-build/bin/qbittorrent-nox
Gives this result:
not a dynamic executable
The script creates a fully static qbittorrent-nox
binary using
The final result will show this when using ldd
ldd ~/qbt-build/bin/qbittorrent-nox
Gives this result:
statically linked
How do I use it?
The script can be downloaded locally and run on a supported host or via docker. It has a comprehensive help section built in, available via the -h
flag, that explains all options and demonstrates dynamic command choices. The best thing to do is read the script installation and usage sections to understand the key features and how to user them.