Skip to content
qbittorrent-nox-static

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.

As of 01/2025: qbt-nox-static.bash™ is v2.1.0 and qbittorrent-nox-static.sh™ is v2.0.15. The former is a fork of the latter, from this version, with changes specific to the dependency handling, which in turn makes breaking changes to the default behaviour of the script. Combined with renaming the script to .bash from .sh as it is not a POSIX compliant script this would effectively have made qbittorrent-nox-static.sh unavailable for use.

So the existence of the two is a transitional change and the qbittorrent-nox-static.sh will be deprecated in the future, though any non breaking changes will be backported to the original 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:

  1. Update the system and install the core build dependencies, based on activated options - Requires root or sudo privileges if any dependencies are missing.

  2. Download all dependencies locally and build qbittorrent-nox with no special privileges required.

  3. 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.3 was built with the following libraries:
Qt: 6.8.1
Libtorrent: 2.0.10
Boost: 1.87.0
OpenSSL: 3.4.0
zlib: 1.3.1.zlib-ng

The script creates a fully static qbittorrent-nox binary using glibc

The final result will show this when using ldd

ldd ~/qbt-build/bin/qbittorrent-nox

Gives this result:

not a dynamic executable

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.