{"id":13753876,"url":"https://github.com/userdocs/qbittorrent-nox-static","last_synced_at":"2025-05-14T17:08:33.347Z","repository":{"id":40491780,"uuid":"232671827","full_name":"userdocs/qbittorrent-nox-static","owner":"userdocs","description":"A bash script which builds a fully static qbittorrent-nox binary with current dependencies to use on any Linux OS","archived":false,"fork":false,"pushed_at":"2025-04-02T11:26:10.000Z","size":155568,"stargazers_count":1279,"open_issues_count":0,"forks_count":115,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-13T10:53:33.323Z","etag":null,"topics":["bash","bash-script","libtorrent","qbittorrent-nox","static"],"latest_commit_sha":null,"homepage":"https://userdocs.github.io/qbittorrent-nox-static","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/userdocs.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-08T22:22:58.000Z","updated_at":"2025-04-13T09:41:24.000Z","dependencies_parsed_at":"2023-02-18T12:45:22.342Z","dependency_job_id":"c17bdf03-a317-4519-8a8b-27a8ee7ae2da","html_url":"https://github.com/userdocs/qbittorrent-nox-static","commit_stats":{"total_commits":605,"total_committers":10,"mean_commits":60.5,"dds":"0.054545454545454564","last_synced_commit":"80fcfd73ef7b6f9881f12e90e3ede03b9bfc3701"},"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fqbittorrent-nox-static","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fqbittorrent-nox-static/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fqbittorrent-nox-static/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fqbittorrent-nox-static/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/userdocs","download_url":"https://codeload.github.com/userdocs/qbittorrent-nox-static/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254190396,"owners_count":22029632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","bash-script","libtorrent","qbittorrent-nox","static"],"created_at":"2024-08-03T09:01:32.464Z","updated_at":"2025-05-14T17:08:33.316Z","avatar_url":"https://github.com/userdocs.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# qbittorrent-nox-static\n\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9817ad80d35c480aa9842b53001d55b0)](https://app.codacy.com/gh/userdocs/qbittorrent-nox-static?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=userdocs/qbittorrent-nox-static\u0026utm_campaign=Badge_Grade)\n[![CodeFactor](https://www.codefactor.io/repository/github/userdocs/qbittorrent-nox-static/badge)](https://www.codefactor.io/repository/github/userdocs/qbittorrent-nox-static)\n[![CI](https://github.com/userdocs/qbittorrent-nox-static/actions/workflows/ci-main-reusable-caller.yml/badge.svg)](https://github.com/userdocs/qbittorrent-nox-static/actions/workflows/ci-main-reusable-caller.yml)\n\n## Summary\n\nThe `qbittorrent-nox-static` project is a `bash` build script that compiles a static `qbittorrent-nox` binary using the latest available dependencies from their source. These statically linked binaries can run on any matching CPU architecture and are not OS specific. This means you can run a `x86_64` Alpine edge build on any Linux based OS of like CentOS | Fedora | OpenSuse | Debian | Ubuntu and more.\n\n\u003e [!TIP]\n\u003e You don't need to use the script to access the binaries it creates, just use the [release tag](https://github.com/userdocs/qbittorrent-nox-static/tags) you need or [latest release page](https://github.com/userdocs/qbittorrent-nox-static/releases/latest)\n\nSee here for how to [install the latest release](https://github.com/userdocs/qbittorrent-nox-static?tab=readme-ov-file#install-the-latest-release)\n\n## Linked Github repositories\n\nThis build script uses and depends on some related repositories.\n\n-   [qbt-musl-cross-make](https://github.com/userdocs/qbt-musl-cross-make)\n-   [qbt-workflow-files](https://github.com/userdocs/qbt-workflow-files)\n-   [qbt-ninja-build](https://github.com/userdocs/qbt-ninja-build)\n-   [qbt-cmake-ninja-crossbuilds](https://github.com/userdocs/qbt-cmake-ninja-crossbuilds)\n\n## Documentation\n\n\u003e [!TIP]\n\u003e Visit the [documentation](https://userdocs.github.io/qbittorrent-nox-static/introduction/) for in depth information on using this project and script usage.\n\n## WSL2\n\n\u003e [!TIP]\n\u003e These static builds can be used on WSL2 and accessed via `localhost:8080` using the download instructions below\n\n## Install the latest release\n\n\u003e [!TIP]\n\u003e For the most current build visit the [latest release page](https://github.com/userdocs/qbittorrent-nox-static/releases/latest)\n\nOr uses these commands for your arch:\n\n### x86\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/x86-qbittorrent-nox\nchmod 700 ~/bin/qbittorrent-nox\n```\n\n### x86_64\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/x86_64-qbittorrent-nox\nchmod 700 ~/bin/qbittorrent-nox\n```\n\n### armhf (armv6)\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/armhf-qbittorrent-nox\nchmod 700 ~/bin/qbittorrent-nox\n```\n\n### armv7\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/armv7-qbittorrent-nox\nchmod 700 ~/bin/qbittorrent-nox\n```\n\n### aarch64\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/qbittorrent-nox https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/aarch64-qbittorrent-nox\nchmod 700 ~/bin/qbittorrent-nox\n```\n\n## Libtorrent versions\n\n\u003e [!IMPORTANT]\n\u003e Libtorrent `v1.2` is currently the main branch supported by qBittorrent since a change with the release of [4.4.5](https://www.qbittorrent.org/news.php)\n\nLibtorrent `v2.0` builds are still released as latest releases as it it does not really matter to this project as it always builds and releases for both `v1.2` and `v2.0`. See the next section for how to get the version you need via the latest release URL.\n\n\u003e [!TIP]\n\u003e You can view the current latest and pre releases and tags here \u003chttps://github.com/userdocs/qbittorrent-nox-static/tags\u003e\n\n## Getting the Version you want via the latest release URL\n\nSince this project builds and releases both v1.2 and v2.0 builds simultaneously we can use the commands below to always get the latest version of the related pre release via the latest release `dependency-version.json` asset.\n\nUsing this method it does not matter which version is the latest release or pre release as the commands will provide you the version specific info you need for the twinned latest/pre releases.\n\nFor Libtorrent `v1.2`\n\n```bash\njq -r '. | \"release-\\(.qbittorrent)_v\\(.libtorrent_1_2)\"' \u003c \u003c(curl -sL https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/dependency-version.json)\n```\n\nFor Libtorrent `v2.0`\n\n```bash\njq -r '. | \"release-\\(.qbittorrent)_v\\(.libtorrent_2_0)\"' \u003c \u003c(curl -sL https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/dependency-version.json)\n```\n\n## Revisions\n\nThe build has 5 main dependencies tracked that will trigger a rebuild on an update being available.\n\n-   qBittorrent\n-   Libtorrent\n-   Qt\n-   Boost\n-   Openssl\n\nWhen a new build is triggered for updating `qBittorrent` or `Libtorrent` a new release will be generated as the release tags will be updated.\n\nSince I do not append revision info to tags `Qt` - `Boost` - `Openssl` builds will only update the existing release assets.\n\nTo track these revisions you can use this command. All new releases start at a revision of `0` and increment by `1` per revised build.\n\n```bash\njq -r '.revision' \u003c \u003c(curl -sL \"https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/dependency-version.json\")\n```\n\n## Dependency json\n\nFrom `release-4.4.5` each release contains a `dependency-version.json` file that provide some key version information for that is shared across the latest release and the twinned pre release. This helps to overcome some limitations of the API for consistently and directly accessing this information.\n\nDownloading the file like this:\n\n```bash\ncurl -sL https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/dependency-version.json\n```\n\nWill output a result like this:\n\n```json\n{\n    \"openssl\": \"3.2.0\",\n    \"boost\": \"1.84.0\",\n    \"libtorrent_1_2\": \"1.2.19\",\n    \"libtorrent_2_0\": \"2.0.9\",\n    \"qt5\": \"5.15.12\",\n    \"qt6\": \"6.6.1\",\n    \"qbittorrent\": \"4.6.2\",\n    \"revision\": \"3\"\n}\n```\n\nAs demonstrated above by using the latest release URL we can construct the tag of the twinned pre release and therefore the asset URL with no margin for error.\n\n\u003e [!IMPORTANT]\n\u003e From the release of qBittorrent v5 configure based builds will be unsupported and we will only be able to use cmake to build qBittorrent v5 onwards. All releases from that point on will drop Qt5 builds as at this point cmake,Qt6 and v5 should be the default and preferred build combination with Qt5 being a legacy dependency.\n\n## gh attestation verify\n\nBinaries built from the release of release `release-5.0.0_v2.0.10` and `release-5.0.0_v1.2.19` revision `1` use [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance)\n\nVerify the integrity and provenance of an artifact using its associated cryptographically signed attestations.\n\nhttps://cli.github.com/manual/gh_attestation_verify\n\nFor example:\n\n```bash\ngh attestation verify x86_64-qbittorrent-nox -o userdocs\n```\n\nWill give you this result for the `release-5.0.0_v2.0.10` revision `1` binary.\n\n```bash\nLoaded digest sha256:a656ff57b03ee6218205d858679ea189246caaecbbcc38d4d2b57eb81d8e59bb for file://x86_64-qbittorrent-nox\nLoaded 1 attestation from GitHub API\n✓ Verification succeeded!\n\nsha256:a656ff57b03ee6218205d858679ea189246caaecbbcc38d4d2b57eb81d8e59bb was attested by:\nREPO                             PREDICATE_TYPE                  WORKFLOW\nuserdocs/qbittorrent-nox-static  https://slsa.dev/provenance/v1  .github/workflows/matrix_multi_build_and_release_qbt_workflow_files.yml@refs/heads/master\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fqbittorrent-nox-static","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuserdocs%2Fqbittorrent-nox-static","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fqbittorrent-nox-static/lists"}