Skip to content

Commit ac5d041

Browse files
committed
v2.2.3
see changelog.
1 parent 4cc1798 commit ac5d041

File tree

3 files changed

+689
-434
lines changed

3 files changed

+689
-434
lines changed

changelog.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,80 @@
1+
### v2.2.3 - 21/03/2026
2+
3+
No breaking changes. Some work towards Libtorrent RC_2_1 support but mostly bugs fixes.
4+
5+
| # | Severity | Finding | Status |
6+
| --- | -------- | ------------------------------------------------------------------------------------------------------- | ------ |
7+
| 1 | Critical | `-lm\|--libtorrent-master` sets `source_default[qbittorrent]` instead of `[libtorrent]` | Fixed |
8+
| 2 | Critical | `-q\|--qmake` sets `qbt_build_tool="--qmake"` instead of `"qmake"` — breaks all qmake builds | Fixed |
9+
| 3 | Critical | `_git``git_test_cmd` not local/reset; stale URL from prior call used silently | Fixed |
10+
| 4 | Critical | `_post_command` PIPESTATUS capture fragile — any code before `outcome=` line silently breaks it | Fixed |
11+
| 5 | Critical | Duplicate `qbt_strip_flags` logic — second block overrides first, injects `-g` even when debug=no | Fixed |
12+
| 6 | Critical | Linker flag `-z,--no-copy-dt-needed-entries``--no-copy-dt-needed-entries` is not a `-z` argument | Fixed |
13+
| 7 | Critical | `armhf` cross_arch set to `"armel"` for Debian — installs wrong crossbuild package | Fixed |
14+
| 8 | High | Bare `exit` (code 0) in `_set_build_cons` error path — CI sees success on rejected builds | Fixed |
15+
| 9 | High | Infinite retry loop in `_release_info` — hangs CI if URL is permanently unavailable | Fixed |
16+
| 10 | Info | `_check_dependency_status` modifies global `filtered_params` | Fixed |
17+
| 11 | Info | `_debug` inner for loop over single-element string is misleading | Fixed |
18+
| 12 | Info | `_qt_std_cons` and similar functions use `printf` return pattern — fragile if output is polluted | Noted |
19+
| 13 | Info | `_test_url` comment says "google.com" but function tests `github.com` | Fixed |
20+
| 14 | Info | Glob in `_multi_arch` symlink loop may fail silently on no match | Fixed |
21+
| 15 | Info | Help text for `-h-qtt` shows `-qt` in usage examples instead of `-qtt` | Fixed |
22+
| 16 | Logic | `_error_tag` ignores its arguments — silent exits with no error message | Fixed |
23+
| 17 | Logic | `qbt_dl_folder_path` collapses to install dir on corrupt/empty archive | Fixed |
24+
| 18 | Logic | `qbt_host_deps` referenced before its default is assigned | Fixed |
25+
| 19 | Logic | `qbt_patches_url_branch` unset when remote download is skipped — malformed Jamfile URL | Fixed |
26+
| 20 | Logic | Duplicate dependency deletion block for Debian — idempotent but indicates copy-paste error | Fixed |
27+
| 21 | Low | Alpine version check comment says "min v3.10" but code enforces 3.18 | Fixed |
28+
| 22 | Low | `-fuse-ld=mold` placed in CFLAGS/CXXFLAGS — linker selection flag belongs in LDFLAGS only | Fixed |
29+
| 23 | Low | `-h-m` (`--help-master`) shows `-lm` in usage example instead of `-m` | Fixed |
30+
| 24 | Low | `arm_libatomic` not declared `local` in `_libtorrent`/`_qtbase` — leaks between calls | Fixed |
31+
| 25 | Low | `chmod +x -R` on a single file — `-R` flag is misleading and redundant | Fixed |
32+
| 26 | Low | `command_privilege` may be unset if neither root nor sudo | Fixed |
33+
| 27 | Low | `exit_script` in `_set_build_cons` not declared `local` — could fire on leaked global | Fixed |
34+
| 28 | Low | `pkgman` function shadows `pkgman` array inside loop and is redefined every iteration | Fixed |
35+
| 29 | Low | `qbt_core_deps_sorted` grows without reset on re-check across multiple `_check_dependency_status` calls | Fixed |
36+
| 30 | Low | `qbt_dl_folder_path` collapses to install dir on corrupt archive (carried from v1) | Fixed |
37+
| 31 | Low | `sub_dir` global variable leaks between modules if bootstrap does not unset it | Fixed |
38+
| 32 | Low | `_boost` runs `sed -i` on `build.sh` without checking file exists or pattern matches | Fixed |
39+
| 33 | Low | `_cache_dirs_qbt_env` calls `exit 1` from inside download hot path — confusing failure context | Fixed |
40+
| 34 | Low | `_download_directory_contents` grep-based JSON parsing fragile against API format changes | Open |
41+
| 35 | Low | `_fix_multiarch_static_links` ignores its argument, uses global `qbt_cross_host` directly | Fixed |
42+
| 36 | Low | `_icu_host_deps` second `make` call uses `_tee` without `-a` — overwrites configure log | Fixed |
43+
| 37 | Low | `_installation_modules` regex over `${!qbt_modules_install[*]}` fragile with non-default IFS | Open |
44+
| 38 | Critical | `_semantic_version` output starting with `0` (e.g. `0.8`) is evaluated as octal by `[[ -lt ]]` | Fixed |
45+
| 39 | Low | `_semantic_version` strips non-numeric chars: `10rc1` becomes `101` — misparses RC versions | Fixed |
46+
| 40 | Low | `_semantic_version` zero-padded components (`08`, `09`) trigger bash octal parse error | Fixed |
47+
| 41 | Low | `_test_git_ouput` function name typo (`ouput`) | Fixed |
48+
| 42 | Low | Missing `${color_end}` after `${color_green}` in `-h-m` output — color bleeds into terminal | Fixed |
49+
| 43 | Low | Multiple assignments on one line after `&&` — second assignment always executes regardless of test | Fixed |
50+
| 44 | Low | Redundant inner `if [[ ${qbt_host_deps} == "yes" ]]` inside already-gated outer block | Fixed |
51+
| 45 | Low | Stale `unset tar_additional_cmds` — dead codeafter array was removed | Fixed |
52+
| 46 | Low | Typo in loongarch64 error message — "on and Alpine Host" → "on an Alpine Host" | Fixed |
53+
| 47 | Low | Typo: "arugment" → "argument" in error message | Fixed |
54+
| 48 | Low | Undeclared array `build_tools` used in `_check_dependency_status` — unset is a no-op | Fixed |
55+
| 49 | Medium | `-qm\|--qbittorrent-master` sets `source_archive_url` but not `source_default` — no fallback to git | Fixed |
56+
| 50 | Medium | `gcc_version` unset when cross-compiler unavailable — `[[ -ge ]]` emits integer error to stderr | Fixed |
57+
| 51 | Medium | `github_tag[boost]` assignment missing quotes around command substitution | Fixed |
58+
| 52 | Medium | `os_arch` never set when OS is unrecognised — empty value used in security flags and multiarch | Fixed |
59+
| 53 | Medium | `qbt_cflags_consumed` missing from top-level `unset` list | Fixed |
60+
| 54 | Medium | `qbt_cross_boost` not set for `x86` cross-build — defaults to `gcc`, may be wrong | Fixed |
61+
| 55 | Medium | Qt/qttools tag regex `sub("(.*)(-alpha\|-beta\|-rc)", "")` still mangles not filters | Fixed |
62+
| 56 | Medium | `_check_dependency_status` global `filtered_params` — brittle call-order dependency (v4 #7 carried) | Fixed |
63+
| 57 | Medium | `_delete_function` calls `_pushd` without `_popd` — stack grows by one entry per module | Fixed |
64+
| 58 | Medium | `_download_file``tar_additional_cmds` uses `+=` instead of `=`; stale on early return | Fixed |
65+
| 59 | Medium | `_git` curl test passes `-t TAG` to curl — `-t` is curl's `--telnet-option` | Fixed |
66+
| 60 | Medium | `_git` scans for URLs at hardcoded positional indices 9 and 11 | Fixed |
67+
| 61 | Medium | `_iconv` missing `_post_command build` check — silent build failure | Fixed |
68+
| 62 | Medium | `_iconv``autogen.sh` only runs when cache dir is set; folder-source without cache fails | Fixed |
69+
| 63 | Medium | `_post_command` captures `PIPESTATUS` at function entry, not at pipeline call site — may miss failures | Fixed |
70+
| 64 | Medium | Help long-form mismatch: `--help-boost-version` in output vs `--help-boost-tag` in handler | Fixed |
71+
| 65 | Medium | Help long-form mismatch: `--help-multi-arch` in output vs `--help-multiarch` in handler | Fixed |
72+
| 66 | Medium | Help long-form mismatch: `--help-qtt-tag` in output vs `--help-qt-tag` in handler | Fixed |
73+
| 67 | Medium | Missing case handler for `-h-bs-c` / `--help-bootstrap-cmake` — documented but does nothing | Fixed |
74+
| 68 | Medium | Qt tag filtering `sub("(.*)(-a\|-b\|-r)", "")` mangles pre-release tags instead of filtering them | Fixed |
75+
| 69 | Medium | `qbt_dl_folder_path` collapses to install dir on corrupt archive (carried from v1) | Fixed |
76+
| 70 | Medium | fix qt apps multiarch command for qbt_host_deps | Fixed |
77+
178
### v2.2.2 - 30/08/2025
279

380
`qbt-nox-static.bash` was fully merged into `qbittorrent-nox-static.sh` so that the scripts no longer have significantly different code approaches to the same outcomes.

0 commit comments

Comments
 (0)