You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`qbt-nox-static.bash™` 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.
11
11
12
12
:::note
13
-
`qbt-nox-static.bash™` is `v2.2.0` and `qbittorrent-nox-static.sh™` is `v2.0.20`. 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 behavior 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 `qbt-nox-static.bash` unavailable for use.
13
+
<ScriptVersions/>
14
+
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 behavior 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.
14
16
15
17
So the existence of the two is a transitional change and the `qbt-nox-static.bash` will be deprecated in the future, though any non breaking changes will be backported to the original script.
16
18
:::
17
19
18
-
### What does it do?
20
+
### How are they different?
21
+
22
+
`qbittorrent-nox-static.sh` (legacy)
23
+
24
+
When the script runs it will attempt to automatically install the host dependencies if it can. It does this with no user input. This is because it was designed to be used in a docker and not a normal host.
25
+
26
+
If the host env if pre-configured this produces the desired result but if the user does not understand this and runs the script it will just be confusing to see it installing lots of things with no context.
27
+
28
+
The logic of this is done using [bash indexed arrays](https://www.gnu.org/software/bash/manual/html_node/Arrays.html).
29
+
30
+
`qbt-nox-static.bash` (current)
31
+
32
+
When the script runs it will only detect dependencies offer options to proceed. It does nothing unless specifically asked and in a modular way.
33
+
34
+
With the minimum test dependencies installed, `git`,`bash` and `curl` it can perform most dynamic help functions and testing required to configure the script before installing the core dependencies.
35
+
36
+
This makes sense when you consider you don't need to install host gcc to crossbuild, somehting which the script handled automatically when configured to crossbuild.
37
+
38
+
The logic of this is done using [bash associative arrays](https://www.gnu.org/software/bash/manual/html_node/Arrays.html).
39
+
40
+
### What does it mean to you?
41
+
42
+
The documentation will be focused on `qbt-nox-static.bash` as it is the more sane behaving script with a better user experience.
43
+
44
+
The binary outcome should be identical for both. You should use `qbt-nox-static.bash` but if you understand how it works and are using docker, `.qbt_env` or a pre-configured environment, `qbittorrent-nox-static.sh` will do the same thing.
45
+
46
+
## What does it do?
19
47
20
48
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:
21
49
@@ -49,7 +77,7 @@ It handles a lot of the nuanced complexity around building various different dep
49
77
50
78
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.
51
79
52
-
###What is the outcome
80
+
## What is the outcome
53
81
54
82
⭐ Here is an example successful default build profile:
Copy file name to clipboardExpand all lines: docs/src/content/docs/prerequisites.mdx
+4-7Lines changed: 4 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,9 +18,9 @@ For faster build times you can consider a paid service like <Modal id="buildjet"
18
18
If you want to self host you need to be able to meet these conditions on your host in order to use the script.
19
19
20
20
🟩 Supported host build platforms
21
-
- Debian: `Bookworm`
22
-
- Ubuntu: `Noble`
23
-
- Alpine: `3.15` or greater
21
+
- Debian: `trixie`
22
+
- Ubuntu: `noble`
23
+
- Alpine: `3.18` or greater
24
24
25
25
🟩 Build environment
26
26
- <Modalid="docker"label="Docker"/> via a shell like <Modalid="bash"label="Bash"/> or <Modalid="powershell"label="Powershell"/>
@@ -30,19 +30,16 @@ If you want to self host you need to be able to meet these conditions on your ho
30
30
- Via <Modalid="docker-desktop"label="Docker Desktop"/> ✅ (recommended method)
31
31
- Docker installed in <Modalid="wsl2"label="WSL2"/> image ✅ (alternative recommendation)
32
32
33
-
34
33
🟩 Bash Shell script
35
34
- This is 100% a modern bash shell script and it requires having access to bash to run it.
36
35
37
-
38
36
🟧 Host permissions
39
37
40
38
- The script needs to install some system dependencies in order to proceed and if you do not have permission or access to do this or no access to docker to use a container you must find a more suitable host environment.
41
39
42
-
43
40
🟥 Qt6 requirements
44
41
45
-
- If you build using Qt6 you will need to have these dependencies installed on the host, <Modalid="qemu"label="qemu and binmtfs"/>
42
+
- If you build using Qt6 you will need to have these dependencies installed on the host (not inside the docker), <Modalid="qemu"label="qemu and binmtfs"/>
0 commit comments