Skip to content

Commit

Permalink
workflows
Browse files Browse the repository at this point in the history
Update README.md

readme

readme

Update README.md
  • Loading branch information
userdocs committed Dec 27, 2023
1 parent 85d1518 commit 12b3fa5
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 112 deletions.
40 changes: 23 additions & 17 deletions .github/workflows/matrix_multi_build_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,31 +182,37 @@ jobs:
pandoc_git_tag="$(git ls-remote -q -t --refs https://github.com/jgm/pandoc.git | awk '/tags\/[0-9]/{sub("refs/tags/", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)"
curl -sLo- "https://github.com/jgm/pandoc/releases/latest/download/pandoc-${pandoc_git_tag}-linux-amd64.tar.gz" | tar xzf - --strip-components 2 -C "$(pwd)" --exclude="share"
- name: Host - Download qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
- name: Host - Download 1.2 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "1.2"
pattern: libtorrent-v1.2-*-qbittorrent-nox
merge-multiple: true

- name: Host - Download 2.0 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "2.0"
pattern: libtorrent-v2.0-*-qbittorrent-nox
merge-multiple: true

- name: Host - 1.2 artifacts organise for release ${{ github.event.inputs.distinct_id }}
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "1.2"
for files in libtorrent-v1.2-*-qbittorrent-nox; do
cp -rf ${files}/* "1.2/"
for release in 1\.2/*-release.md 2\.0/*-release.md; do
[[ -f "${release}" ]] && release+=("${release}")
done
- name: Host - 2.0 artifacts organise for release ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "2.0"
for files in libtorrent-v2.0-*-qbittorrent-nox; do
cp -rf ${files}/* "2.0/"
for dependency_version in 1\.2/*-dependency-version.json 2\.0/*-dependency-version.json; do
[[ -f "${dependency_version}" ]] && dependency_version+=("${dependency_version}")
done
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
paste -d '\n' 1.2/qt5-*-release.md | uniq > 1.2/tmp-release.md
paste -d '\n' 2.0/qt6-*-release.md | uniq > 2.0/tmp-release.md
paste -d '\n' 1.2/tmp-release.md 2.0/tmp-release.md | uniq > tmp-release.md
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
readarray -t release_sorted < <(printf '%s\n' "${release[@]}" | sort)
readarray -t dependency_version_sorted < <(printf '%s\n' "${dependency_version[@]}" | sort)
paste -d '\n' 1.2/qt5-dependency-version.json 2.0/qt6-dependency-version.json | uniq > dependency-version.json
paste -d '\n' "${release_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "tmp-release.md"
paste -d '\n' "${dependency_version_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "dependency-version.json"
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
- name: Host - Bootstrap release tag ${{ github.event.inputs.distinct_id }}
run: printf '%s\n' "release_tag=$(cat ${{ matrix.qbt_libtorrent_version }}/tag.md)" >> $GITHUB_ENV
Expand Down
40 changes: 23 additions & 17 deletions .github/workflows/matrix_multi_build_and_release_artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,31 +246,37 @@ jobs:
pandoc_git_tag="$(git ls-remote -q -t --refs https://github.com/jgm/pandoc.git | awk '/tags\/[0-9]/{sub("refs/tags/", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)"
curl -sLo- "https://github.com/jgm/pandoc/releases/latest/download/pandoc-${pandoc_git_tag}-linux-amd64.tar.gz" | tar xzf - --strip-components 2 -C "$(pwd)" --exclude="share"
- name: Host - Download qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
- name: Host - Download 1.2 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "1.2"
pattern: libtorrent-v1.2-*-qbittorrent-nox
merge-multiple: true

- name: Host - Download 2.0 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "2.0"
pattern: libtorrent-v2.0-*-qbittorrent-nox
merge-multiple: true

- name: Host - 1.2 artifacts organise for release ${{ github.event.inputs.distinct_id }}
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "1.2"
for files in libtorrent-v1.2-*-qbittorrent-nox; do
cp -rf ${files}/* "1.2/"
for release in 1\.2/*-release.md 2\.0/*-release.md; do
[[ -f "${release}" ]] && release+=("${release}")
done
- name: Host - 2.0 artifacts organise for release ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "2.0"
for files in libtorrent-v2.0-*-qbittorrent-nox; do
cp -rf ${files}/* "2.0/"
for dependency_version in 1\.2/*-dependency-version.json 2\.0/*-dependency-version.json; do
[[ -f "${dependency_version}" ]] && dependency_version+=("${dependency_version}")
done
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
paste -d '\n' 1.2/qt5-*-release.md | uniq > 1.2/tmp-release.md
paste -d '\n' 2.0/qt6-*-release.md | uniq > 2.0/tmp-release.md
paste -d '\n' 1.2/tmp-release.md 2.0/tmp-release.md | uniq > tmp-release.md
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
readarray -t release_sorted < <(printf '%s\n' "${release[@]}" | sort)
readarray -t dependency_version_sorted < <(printf '%s\n' "${dependency_version[@]}" | sort)
paste -d '\n' 1.2/qt5-dependency-version.json 2.0/qt6-dependency-version.json | uniq > dependency-version.json
paste -d '\n' "${release_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "tmp-release.md"
paste -d '\n' "${dependency_version_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "dependency-version.json"
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
- name: Host - Bootstrap release tag ${{ github.event.inputs.distinct_id }}
run: printf '%s\n' "release_tag=$(cat ${{ matrix.qbt_libtorrent_version }}/tag.md)" >> $GITHUB_ENV
Expand Down
40 changes: 23 additions & 17 deletions .github/workflows/matrix_multi_build_and_release_customs_tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,31 +192,37 @@ jobs:
pandoc_git_tag="$(git ls-remote -q -t --refs https://github.com/jgm/pandoc.git | awk '/tags\/[0-9]/{sub("refs/tags/", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)"
curl -sLo- "https://github.com/jgm/pandoc/releases/latest/download/pandoc-${pandoc_git_tag}-linux-amd64.tar.gz" | tar xzf - --strip-components 2 -C "$(pwd)" --exclude="share"
- name: Host - Download qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
- name: Host - Download 1.2 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "1.2"
pattern: libtorrent-v1.2-*-qbittorrent-nox
merge-multiple: true

- name: Host - Download 2.0 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "2.0"
pattern: libtorrent-v2.0-*-qbittorrent-nox
merge-multiple: true

- name: Host - 1.2 artifacts organise for release ${{ github.event.inputs.distinct_id }}
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "1.2"
for files in libtorrent-v1.2-*-qbittorrent-nox; do
cp -rf ${files}/* "1.2/"
for release in 1\.2/*-release.md 2\.0/*-release.md; do
[[ -f "${release}" ]] && release+=("${release}")
done
- name: Host - 2.0 artifacts organise for release ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "2.0"
for files in libtorrent-v2.0-*-qbittorrent-nox; do
cp -rf ${files}/* "2.0/"
for dependency_version in 1\.2/*-dependency-version.json 2\.0/*-dependency-version.json; do
[[ -f "${dependency_version}" ]] && dependency_version+=("${dependency_version}")
done
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
paste -d '\n' 1.2/qt5-*-release.md | uniq > 1.2/tmp-release.md
paste -d '\n' 2.0/qt6-*-release.md | uniq > 2.0/tmp-release.md
paste -d '\n' 1.2/tmp-release.md 2.0/tmp-release.md | uniq > tmp-release.md
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
readarray -t release_sorted < <(printf '%s\n' "${release[@]}" | sort)
readarray -t dependency_version_sorted < <(printf '%s\n' "${dependency_version[@]}" | sort)
paste -d '\n' 1.2/qt5-dependency-version.json 2.0/qt6-dependency-version.json | uniq > dependency-version.json
paste -d '\n' "${release_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "tmp-release.md"
paste -d '\n' "${dependency_version_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "dependency-version.json"
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
- name: Host - Bootstrap release tag ${{ github.event.inputs.distinct_id }}
run: printf '%s\n' "release_tag=$(cat ${{ matrix.qbt_libtorrent_version }}/tag.md)" >> $GITHUB_ENV
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,31 +178,37 @@ jobs:
pandoc_git_tag="$(git ls-remote -q -t --refs https://github.com/jgm/pandoc.git | awk '/tags\/[0-9]/{sub("refs/tags/", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)"
curl -sLo- "https://github.com/jgm/pandoc/releases/latest/download/pandoc-${pandoc_git_tag}-linux-amd64.tar.gz" | tar xzf - --strip-components 2 -C "$(pwd)" --exclude="share"
- name: Host - Download qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
- name: Host - Download 1.2 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "1.2"
pattern: libtorrent-v1.2-*-qbittorrent-nox
merge-multiple: true

- name: Host - Download 2.0 qbittorrent-nox artifacts ${{ github.event.inputs.distinct_id }}
uses: actions/download-artifact@v4
with:
path: "2.0"
pattern: libtorrent-v2.0-*-qbittorrent-nox
merge-multiple: true

- name: Host - 1.2 artifacts organise for release ${{ github.event.inputs.distinct_id }}
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "1.2"
for files in libtorrent-v1.2-*-qbittorrent-nox; do
cp -rf ${files}/* "1.2/"
for release in 1\.2/*-release.md 2\.0/*-release.md; do
[[ -f "${release}" ]] && release+=("${release}")
done
- name: Host - 2.0 artifacts organise for release ${{ github.event.inputs.distinct_id }}
run: |
mkdir -p "2.0"
for files in libtorrent-v2.0-*-qbittorrent-nox; do
cp -rf ${files}/* "2.0/"
for dependency_version in 1\.2/*-dependency-version.json 2\.0/*-dependency-version.json; do
[[ -f "${dependency_version}" ]] && dependency_version+=("${dependency_version}")
done
- name: Host - merge release-info ${{ github.event.inputs.distinct_id }}
run: |
paste -d '\n' 1.2/qt5-*-release.md | uniq > 1.2/tmp-release.md
paste -d '\n' 2.0/qt6-*-release.md | uniq > 2.0/tmp-release.md
paste -d '\n' 1.2/tmp-release.md 2.0/tmp-release.md | uniq > tmp-release.md
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
readarray -t release_sorted < <(printf '%s\n' "${release[@]}" | sort)
readarray -t dependency_version_sorted < <(printf '%s\n' "${dependency_version[@]}" | sort)
paste -d '\n' 1.2/qt5-dependency-version.json 2.0/qt6-dependency-version.json | uniq > dependency-version.json
paste -d '\n' "${release_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "tmp-release.md"
paste -d '\n' "${dependency_version_sorted[@]}" | uniq | awk '!(NF && seen[$0]++)' > "dependency-version.json"
./pandoc --wrap=preserve -f gfm tmp-release.md -t gfm -o release.md
- name: Host - Bootstrap release tag ${{ github.event.inputs.distinct_id }}
run: printf '%s\n' "release_tag=$(cat ${{ matrix.qbt_libtorrent_version }}/tag.md)" >> $GITHUB_ENV
Expand Down
54 changes: 21 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,22 @@ This build script uses and depends on some related repositories

## Summary

The `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 Stretch | Ubuntu Xenial and more.
The `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.

## Documentation

🔵 [Visit the documentation](https://userdocs.github.io/qbittorrent-nox-static/#/README) for in depth information on using this project and script usage.
> [!TIP]
> Visit the [documentation](https://userdocs.github.io/qbittorrent-nox-static/#/README) for in depth information on using this project and script usage.
## WSL2

🟢 These static builds can be used on WSL2 and accessed via `localhost:8080` using the download instructions below
> [!TIP]
> These static builds can be used on WSL2 and accessed via `localhost:8080` using the download instructions below
## Install the latest release

🔵 [The latest release page](https://github.com/userdocs/qbittorrent-nox-static/releases/latest) for the most current build
> [!TIP]
> For the most current build visit the [latest release page](https://github.com/userdocs/qbittorrent-nox-static/releases/latest)
Or uses these commands for your arch:

Expand Down Expand Up @@ -87,13 +90,13 @@ chmod 700 ~/bin/qbittorrent-nox

## Libtorrent versions

🟠 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)
> [!IMPORTANT]
> 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)
Libtorrent `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.

You can view the current latest and pre releases and tags here.

🔵 <https://github.com/userdocs/qbittorrent-nox-static/releases>
> [!TIP]
> You can view the current latest and pre releases and tags here <https://github.com/userdocs/qbittorrent-nox-static/tags>
## Getting the Version you want via the latest release URL

Expand Down Expand Up @@ -147,33 +150,18 @@ Will output a result like this:

```json
{
"qbittorrent": "4.4.5",
"qt5": "5.15.7",
"qt6": "6.4.0",
"libtorrent_1_2": "1.2.18",
"libtorrent_2_0": "2.0.8",
"boost": "1.80.0",
"openssl": "3.0.7",
"revision": "1"
"openssl": "3.2.0",
"boost": "1.84.0",
"libtorrent_1_2": "1.2.19",
"libtorrent_2_0": "2.0.9",
"qt5": "5.15.12",
"qt6": "6.6.1",
"qbittorrent": "4.6.2",
"revision": "3"
}
```

As 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.

## Build table - Dependencies - arch - OS - build tools

| Deps | x86 | x86_64 | aarch64 | armv7 | armhf (v6) | Debian based | Alpine | make | cmake | b2 | qmake |
| :---------------: | :---: | :----: | :-----: | :---: | :--------: | :----------: | :----: | :---: | :---: | :---: | :---: |
| glibc ||||||||||||
| zlib ||||||||||||
| iconv ||||||||||||
| icu ||||||||||||
| openssl ||||||||||||
| boost ||||||||||||
| libtorrent ||||||||||||
| qt5base ||||||||||||
| qt5tools ||||||||||||
| double conversion ||||||||||||
| qt6base ||||||||||||
| qt6tools ||||||||||||
| qbittorrent ||||||||||||
> [!IMPORTANT]
> 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.
12 changes: 1 addition & 11 deletions qbittorrent-nox-static.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1626,17 +1626,7 @@ _release_info() {
🟡 Binary builds are stripped - See https://userdocs.github.io/qbittorrent-nox-static/#/debugging
🟠 [To see the build combinations that the script automates please check the build table. for more info](https://github.com/userdocs/qbittorrent-nox-static#build-table---dependencies---arch---os---build-tools)
<!--
declare -A current_build_version
current_build_version[openssl]="${app_version[openssl]}"
current_build_version[boost]="${app_version[boost]}"
current_build_version[libtorrent_${qbt_libtorrent_version//\./_}]="${app_version[libtorrent]}"
current_build_version[qt${qt_version_short_array[0]}]="${app_version[qtbase]}"
current_build_version[qbittorrent]="${app_version[qbittorrent]}"
current_build_version[revision]="${qbt_revision_version:-0}"
-->
🟠 Qbittorrent v5 won't support qmake (Qt5) builds so Qt6 (cmake) will become default and Qt5 builds will no longer be released.
RELEASE_INFO

return
Expand Down

0 comments on commit 12b3fa5

Please sign in to comment.