From 4c30a580ea362496d848d0cb28d5a4df1cc5add5 Mon Sep 17 00:00:00 2001 From: userdocs <16525024+userdocs@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:25:56 +0000 Subject: [PATCH] docs Update qbittorrent-nox-static.sh Update changelog.md Update deploy.yml v.2.1.0 V2.1.0 v2.1.0 v2.1.0 v2.1.0 docs v2.1.0 v2.1.0 v2.1.0 workflows docs --- .github/workflows/ci-alpine-build.yml | 60 +- .github/workflows/ci-checks.yml | 7 +- .github/workflows/ci-debian-build.yml | 56 +- .github/workflows/ci-main-reusable-caller.yml | 14 +- .github/workflows/deploy.yml | 2 + changelog.md | 57 +- docs/astro.config.mjs | 56 - docs/ec.config.mjs | 62 + docs/package-lock.json | 11 + docs/package.json | 2 + docs/public/docs_images/script_usage/1.png | Bin 225783 -> 190760 bytes docs/public/docs_images/script_usage/help.png | Bin 220111 -> 190760 bytes docs/src/content/docs/build-help.mdx | 178 +- docs/src/content/docs/script-installation.mdx | 4 +- docs/src/content/docs/script-usage.mdx | 4 +- qbittorrent-nox-static.sh | 755 ++-- qbt-nox-static.bash | 3174 +++++++++++++++++ todo.md | 2 - 18 files changed, 3935 insertions(+), 509 deletions(-) create mode 100644 docs/ec.config.mjs create mode 100644 qbt-nox-static.bash delete mode 100644 todo.md diff --git a/.github/workflows/ci-alpine-build.yml b/.github/workflows/ci-alpine-build.yml index 2e579efc..90e2bce3 100644 --- a/.github/workflows/ci-alpine-build.yml +++ b/.github/workflows/ci-alpine-build.yml @@ -20,7 +20,10 @@ on: description: "debug builds" required: true type: string - + script_name: + description: "script name" + required: true + type: string jobs: build-alpine: runs-on: ubuntu-24.04 @@ -44,6 +47,7 @@ jobs: env: qbt_build_dir: "qbt-build" + script_name: ${{ inputs.script_name }} steps: - name: Checkout ${{ inputs.distinct_id }} @@ -57,8 +61,8 @@ jobs: - name: Host - update ${{ inputs.distinct_id }} run: sudo apt-get update - - name: Host - upgrade ${{ inputs.distinct_id }} - run: sudo apt-get -y upgrade + # - name: Host - upgrade ${{ inputs.distinct_id }} + # run: sudo apt-get -y upgrade - name: Host - set up qemu-user-static binfmt-support ${{ inputs.distinct_id }} run: sudo apt install libpipeline1 qemu-user-static binfmt-support @@ -76,10 +80,10 @@ jobs: printf '%s\n' "qbt_cross_name=${{ matrix.qbt_cross_name }}" >> env.custom printf '%s\n' "qbt_patches_url=${{ github.repository }}" >> env.custom printf '%s\n' "qbt_skip_icu=${set_skip_icu}" >> env.custom - printf '%s\n' "qbt_boost_tag=" >> env.custom - printf '%s\n' "qbt_libtorrent_tag=" >> env.custom - printf '%s\n' "qbt_qt_tag=" >> env.custom - printf '%s\n' "qbt_qbittorrent_tag=" >> env.custom + printf '%s\n' "qbt_boost_tag=${{ matrix.qbt_boost_tag }}" >> env.custom + printf '%s\n' "qbt_libtorrent_tag=${{ matrix.qbt_libtorrent_tag }}" >> env.custom + printf '%s\n' "qbt_qt_tag=${{ matrix.qbt_qt_tag }}" >> env.custom + printf '%s\n' "qbt_qbittorrent_tag=${{ matrix.qbt_qbittorrent_tag }}" >> env.custom printf '%s\n' "qbt_libtorrent_master_jamfile=" >> env.custom printf '%s\n' "qbt_workflow_files=${set_workflow_files}" >> env.custom printf '%s\n' "qbt_workflow_artifacts=" >> env.custom @@ -99,8 +103,11 @@ jobs: - name: Docker - apk install bash ${{ inputs.distinct_id }} run: docker exec -w /root multiarch apk add bash - - name: Docker - Bootstrap ${{ inputs.distinct_id }} - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh -bs-a + - name: Docker - Bootstrap deps ${{ inputs.distinct_id }} + run: docker exec -w /root multiarch bash ${script_name} bootstrap_deps + + - name: Docker - Bootstrap build ${{ inputs.distinct_id }} + run: docker exec -w /root multiarch bash ${script_name} -bs-a - name: Host - qBittorrent v5 transition ${{ inputs.distinct_id }} run: | @@ -109,49 +116,45 @@ jobs: printf '%s\n' "Found file: \`disable-qt5\`: settings \`disable_qt5=yes\` to yes" >> $GITHUB_STEP_SUMMARY fi - # - name: Docker - Copy repo patches to build folder ${{ inputs.distinct_id }} - # if: env.disable_qt5 != 'yes' - # run: if [[ -d patches ]]; then docker exec -w /root multiarch cp -r patches/* /root/${{ env.qbt_build_dir }}/patches; fi - - name: Docker - zlib-ng ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh zlib + run: docker exec -w /root multiarch bash ${script_name} zlib - name: Docker - iconv ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh iconv + run: docker exec -w /root multiarch bash ${script_name} iconv - name: Docker - icu ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh icu + run: docker exec -w /root multiarch bash ${script_name} icu - name: Docker - openssl ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh openssl + run: docker exec -w /root multiarch bash ${script_name} openssl - name: Docker - boost ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh boost + run: docker exec -w /root multiarch bash ${script_name} boost - name: Docker - libtorrent ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh libtorrent + run: docker exec -w /root multiarch bash ${script_name} libtorrent - name: Docker - double_conversion ${{ inputs.distinct_id }} if: matrix.qbt_build_tool == '' && env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh double_conversion + run: docker exec -w /root multiarch bash ${script_name} double_conversion - name: Docker - qtbase ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh qtbase + run: docker exec -w /root multiarch bash ${script_name} qtbase - name: Docker - qttools ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh qttools + run: docker exec -w /root multiarch bash ${script_name} qttools - name: Docker - qbittorrent ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: docker exec -w /root multiarch bash qbittorrent-nox-static.sh qbittorrent + run: docker exec -w /root multiarch bash ${script_name} qbittorrent - name: Docker - Set release asset name ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' @@ -168,7 +171,7 @@ jobs: run: docker exec -w /root/${{ env.qbt_build_dir }}/release_info multiarch bash -c 'mv *.md *.json '/root/${{ env.qbt_build_dir }}/completed'' - name: Host - Upload libtorrent-v${{ matrix.qbt_libtorrent_version }}-qbittorrent-nox and release info artifact ${{ inputs.distinct_id }} - if: env.disable_qt5 != 'yes' + if: success() && env.disable_qt5 != 'yes' uses: actions/upload-artifact@v4 with: name: libtorrent-v${{ matrix.qbt_libtorrent_version }}-${{ matrix.qbt_cross_name }}-${{ matrix.qbt_qt_version_name }}qbittorrent-nox @@ -177,8 +180,15 @@ jobs: !${{ env.qbt_build_dir }}/completed/*.png - name: Host - Upload cmake graphs artifact ${{ inputs.distinct_id }} - if: matrix.qbt_build_tool == '' && env.disable_qt5 != 'yes' + if: success() && matrix.qbt_build_tool == '' && env.disable_qt5 != 'yes' uses: actions/upload-artifact@v4 with: name: "${{ matrix.qbt_cross_name }}-libtorrent-v${{ matrix.qbt_libtorrent_version }}-graphs" path: "${{ env.qbt_build_dir }}/completed/*.png" + + - name: Host - Upload logs on error + if: failure() && env.disable_qt5 != 'yes' + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.qbt_cross_name }}-libtorrent-v${{ matrix.qbt_libtorrent_version }}-logs" + path: "${{ env.qbt_build_dir }}/logs/*" diff --git a/.github/workflows/ci-checks.yml b/.github/workflows/ci-checks.yml index 299522b8..bcd480f5 100644 --- a/.github/workflows/ci-checks.yml +++ b/.github/workflows/ci-checks.yml @@ -11,6 +11,8 @@ concurrency: jobs: sh-checker: runs-on: ubuntu-24.04 + permissions: + contents: read steps: - uses: actions/checkout@v4 with: @@ -28,6 +30,8 @@ jobs: zizmor-checker: runs-on: ubuntu-24.04 + permissions: + contents: read steps: - uses: actions/checkout@v4 with: @@ -51,6 +55,8 @@ jobs: editorconfig-checker: runs-on: ubuntu-24.04 + permissions: + contents: read steps: - uses: actions/checkout@v4 with: @@ -68,4 +74,3 @@ jobs: printf '%b' "\`\`\`" >> $GITHUB_STEP_SUMMARY # exit "${exit_code}" - diff --git a/.github/workflows/ci-debian-build.yml b/.github/workflows/ci-debian-build.yml index eea934af..793dbb22 100644 --- a/.github/workflows/ci-debian-build.yml +++ b/.github/workflows/ci-debian-build.yml @@ -19,6 +19,10 @@ on: description: "debug builds" required: true type: string + script_name: + description: "script name" + required: true + type: string jobs: build: @@ -30,7 +34,7 @@ jobs: fail-fast: false matrix: container_id: [debian, ubuntu] - container_codename: [bookworm, jammy, noble] + container_codename: [bullseye, bookworm, focal, jammy, noble] qbt_build_tool: ["cmake", "qmake"] qbt_libtorrent_version: ["1.2", "2.0"] exclude: @@ -51,10 +55,13 @@ jobs: qbt_qt_version: "6" name: "${{ matrix.container_id }}-${{ matrix.container_codename }}-${{ matrix.qbt_libtorrent_version }}-qt-${{ matrix.qbt_qt_version }}-${{ matrix.qbt_build_tool }}" + env: # host qbt_build_dir: "qbt-build" disable_qt5: "" artifact_name: "${{ matrix.container_id }}-${{ matrix.container_codename }}-${{ matrix.qbt_libtorrent_version }}-qt-${{ matrix.qbt_qt_version }}-${{ matrix.qbt_build_tool }}-nox" + script_name: ${{ inputs.script_name }} + container: image: ${{ matrix.container_id }}:${{ matrix.container_codename }} env: # container @@ -66,13 +73,13 @@ jobs: qbt_libtorrent_version: ${{ matrix.qbt_libtorrent_version }} qbt_qt_version: ${{ matrix.qbt_qt_version }} qbt_build_tool: ${{ matrix.qbt_build_tool }} - qbt_cross_name: "" + qbt_cross_name: ${{ matrix.qbt_cross_name }} qbt_patches_url: ${{ github.repository }} qbt_skip_icu: ${{ inputs.icu }} - qbt_boost_tag: "" - qbt_libtorrent_tag: "" - qbt_qt_tag: "" - qbt_qbittorrent_tag: "" + qbt_boost_tag: ${{ matrix.qbt_boost_tag }} + qbt_libtorrent_tag: ${{ matrix.qbt_libtorrent_tag }} + qbt_qt_tag: ${{ matrix.qbt_qt_tag }} + qbt_qbittorrent_tag: ${{ matrix.qbt_qbittorrent_tag }} qbt_libtorrent_master_jamfile: "" qbt_workflow_files: ${{ inputs.workflow-files }} qbt_workflow_artifacts: "" @@ -88,11 +95,11 @@ jobs: with: persist-credentials: false - - name: Bootstrap all ${{ inputs.distinct_id }} - run: bash qbittorrent-nox-static.sh -bs-a + - name: Bootstrap deps ${{ inputs.distinct_id }} + run: bash ${script_name} bootstrap_deps - - name: Host - qBittorrent v5 transition ${{ inputs.distinct_id }} - run: | + - name: Bootstrap build ${{ inputs.distinct_id }} + run: bash ${script_name} -bs-a - name: Host - qBittorrent v5 transition ${{ inputs.distinct_id }} run: | @@ -103,47 +110,47 @@ jobs: - name: glibc ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh glibc + run: bash ${script_name} glibc - name: zlib ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh zlib + run: bash ${script_name} zlib - name: iconv ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh iconv + run: bash ${script_name} iconv - name: icu ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh icu + run: bash ${script_name} icu - name: openssl ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh openssl + run: bash ${script_name} openssl - name: boost ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh boost + run: bash ${script_name} boost - name: libtorrent ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh libtorrent + run: bash ${script_name} libtorrent - name: double conversion ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' && matrix.qbt_build_tool == 'cmake' - run: bash qbittorrent-nox-static.sh double_conversion + run: bash ${script_name} double_conversion - name: qtbase ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh qtbase + run: bash ${script_name} qtbase - name: qttools ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh qttools + run: bash ${script_name} qttools - name: qbittorrent ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' - run: bash qbittorrent-nox-static.sh qbittorrent + run: bash ${script_name} qbittorrent - name: Upload ${{ env.artifact_name }} artifacts ${{ inputs.distinct_id }} if: env.disable_qt5 != 'yes' @@ -151,3 +158,10 @@ jobs: with: name: ${{ env.artifact_name }} path: ${{ env.qbt_build_dir }}/completed/qbittorrent-nox + + - name: Host - Upload logs on error + if: failure() && env.disable_qt5 != 'yes' + uses: actions/upload-artifact@v4 + with: + name: "${{ env.artifact_name }}-logs" + path: "${{ env.qbt_build_dir }}" diff --git a/.github/workflows/ci-main-reusable-caller.yml b/.github/workflows/ci-main-reusable-caller.yml index 3b6c1c85..78223515 100644 --- a/.github/workflows/ci-main-reusable-caller.yml +++ b/.github/workflows/ci-main-reusable-caller.yml @@ -4,6 +4,12 @@ name: ci - main reusable caller on: workflow_dispatch: inputs: + script_name: + description: "Which script to run?" + required: true + default: "qbt-nox-static.bash" + type: choice + options: ["qbt-nox-static.bash", "qbittorrent-nox-static.sh"] debian-build: description: "Debian: build" required: true @@ -51,21 +57,26 @@ on: options: ["1", "2", "3", "4", "5", "6", "7", "8", "9"] concurrency: - group: ci-main-reusable-caller + group: ${{ github.workflow }} cancel-in-progress: true +permissions: {} + jobs: ci-debian-build: if: always() && github.event.inputs.debian-build == 'true' concurrency: group: ci-debian-build cancel-in-progress: true + permissions: + contents: read uses: ./.github/workflows/ci-debian-build.yml with: distinct_id: ${{ github.event.inputs.distinct_id }} workflow-files: ${{ github.event.inputs.workflow-files == 'true' && 'yes' || 'no' }} icu: ${{ github.event.inputs.icu == 'true' && 'no' || 'yes' }} debug: ${{ github.event.inputs.debug == 'true' && 'yes' || 'no' }} + script_name: ${{ github.event.inputs.script_name }} ci-alpine-build: if: always() && github.event.inputs.alpine-build == 'true' @@ -82,6 +93,7 @@ jobs: workflow-files: ${{ github.event.inputs.workflow-files == 'true' && 'yes' || 'no' }} icu: ${{ github.event.inputs.icu == 'true' && 'no' || 'yes' }} debug: ${{ github.event.inputs.debug == 'true' && 'yes' || 'no' }} + script_name: ${{ github.event.inputs.script_name }} ci-alpine-release: needs: [ci-alpine-build] diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bde0d2bc..ae08b5d0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -13,6 +13,8 @@ on: jobs: build: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout your repository using git uses: actions/checkout@v4 diff --git a/changelog.md b/changelog.md index a9acfc0b..42cd3feb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,46 @@ +### v2.1.0 - 20/01/2025 + +`qbt-nox-static.bash` will be a created alongside the `qbittorrent-nox-static.sh`. + +`qbt-nox-static.bash` ≥ `v2.1.0` + +`qbt-nox-static.bash` will start with `v2.1.0` and `qbittorrent-nox-static.sh` will be frozen at `v2.0.15`going forward. This is to avoid breaking anything by replacing `qbittorrent-nox-static.sh` with`qbt-nox-static.bash` and removing access to the old file. `v2.1.0` is not really changing the outcome but the behaviour of the script towards that outcome. So the least disruptive way is the opt in route. I also wanted to changed the extension from `sh` to `bash` as it is a bash script. + +There is feature parity between the two scripts as of this change. All major changes, fixes and tweaks are applied to both scripts with the exception of the reworked dependency and module installation logic which breaks expected behavior of the script. + +#### Main changes + +A reworked dependency and module installation logic, which has changed the default behaviour of the script. + +Reasoning: The script was designed to be run in a docker and needs `curl` and `git` to perform basic test functions. So it would automatically try to install all deps from a single array when run as root or with sudo to able to then do the basic interactions. This was not ideal behaviour as it would behave the same way on a host system whereas in a docker it didn't really matter. This required reworking hoe dependencies were checked, managed and installed. + +#### Changes unique to `qbt-nox-static.bash` + +- The script no longer tries to modify the host or create files if just called by it's name. It will do basic dependency checks and offer options to install what's needed. +- It can now just install the required test dependencies or perform basic functions if they are already installed meaning the basic features and help functions are usable without installing the full suits of dependencies. +- dependency specific modules new modules unique to this check. `update` | `install_test` | `install_core` | `bootstrap_deps` +- Removed build script support for buster and focal due to conflicts with updated builds flags and will support current releases only going forward. + +Changes applied to both `qbt-nox-static.bash` `qbittorrent-nox-static.sh` + +- Revised the optimisation and build flags system to be a more modern and useful, which breaks building on some older systems. Though this really only applies to debian hosts and the primary method is Alpine. +- changed: optimise still just applies `march-native` on non crossbuilds but now you can export `CFLAGS` `CPPFLAGS` `CXXFLAGS` `LDFLAGS` in the main env and they will be appended to the builds. +- fixed: optimise was not working as intended for being spelled inconsistently, optimise/optimize, so the checks for cross-building were not correct. +- all build optimisation stuff moved to a unified function `_custom_flags` instead of being spread out across the script. +- Alpine only - if building using native gcc on the host it will attempt to use `-flto` - does not do this on crossbuilding as it does not work. +- General refactoring towards more consistent use of array data throughout the script with a preference towards associative arrays. +- fixed: standards checking - checks are more targets to include os version names so as to avoid certain build bad combinations +- new: a new flag `-bs-e` that dumps a template `.qbt_env` file with all env vars that are unset then exits. +- crossbuild toolchains won't extract every time you run the script and will also now determine if you have the correct toolchains if you change the settings and not juts assume. +- many consistency tweaks, minors bug fixes and streamlining of code. +- credits: Borrowed some build flags from here [qbittorrent/docker-qbittorrent-nox](https://github.com/qbittorrent/docker-qbittorrent-nox/blob/main/Dockerfile#L59-L61) + +> For example: `release-5.0.3` on Debian Bullseye. Before it would have set `cxx20` and then failed when building qBittorrent. Now it won't try to build and give a warning whilst still allowing building older combos on that host. + +### v2.0.15 - 20/01/2025 + +see `v2.1.0` changelog + ### v2.0.14 - 31/12/2024 fix: libtorrent `v1.2` and boost `1.86.0` check to not ignore `RC_1_2` @@ -19,11 +62,11 @@ fix: changed `-bt | --boost-version` to `-bt | --boost-tag` for consistency. It ### v2.0.11 - 13/10/2024 -Disable glib tests on zlib-ng https://github.com/userdocs/qbittorrent-nox-static/pull/173 +Disable glib tests on zlib-ng Update contributor info -minor changes - https://github.com/userdocs/qbittorrent-nox-static/commit/e4a674fa3832e0c0d6950539adac9d1d8d00d0e7 +minor changes - ### v2.0.10 - 05/10/2024 @@ -37,7 +80,7 @@ Change default c++ standard used for newer build combinations from 23 to 20. Fixed a regression with `-o` where part the code was left in and duplicated after introducing a check for cross compilation, causing the positional parameters to be shifted twice, breaking things. -fix - https://github.com/userdocs/qbittorrent-nox-static/commit/b51e1ef356fbdbd3f2f93f2b2a8a6279b99e5f22 +fix - ### v2.0.7 - 12-02-2024 @@ -48,11 +91,11 @@ fixed: associative arrays declared earlier and in a group to allow changing sett ### v2.0.6 - 2024-01-27 -New flag: `-si` / `--static-ish` for Debian, Ubuntu, and Alpine platforms. This flag disables LDFLAG static linking, allowing the OS libc to be dynamically linked. +New flag: `-si` / `--static-ish` for Debian, Ubuntu, and Alpine platforms. This flag disables LDFLAGS static linking, allowing the OS `libc` to be dynamically linked. You cannot you this flag with cross compilation, only native host builds. -Tests were added for ` static-ish` and `optimise` to check for bad combinations, exiting the script with a helpful reason when used in combination with cross compilation, as the build will fail. +Tests were added for `static-ish` and `optimise` to check for bad combinations, exiting the script with a helpful reason when used in combination with cross compilation, as the build will fail. ### v2.0.5 - 23-01-2024 @@ -79,7 +122,7 @@ other minor tweaks and cosmetic changes Fixed a regression from the V2 update where the host arch for `zlib-ng` was incorrectly set to `x86_64`, regardless of the actual host arch, when building on a non `x86_64` host to the same target arch (not cross building). -https://github.com/userdocs/qbittorrent-nox-static/issues/131 + ### v2.0.2 - 26-05-2023 @@ -99,7 +142,7 @@ Alpine Crossbuild tools are 70% reduced in size. The script can now build for these arches using musl or debian though workflows and releases may not target them all yet. -armel armhf armv7 aarch64 x86_64 x86 s390x powerpc ppc64el mips mispel mips64 mips64el riscv64 +armel armhf armv7 aarch64 x86_64 x86 s390x powerpc ppc64el mips mipsel mips64 mips64el riscv64 v2 is is an overhaul that aims to be more sensibly coded and and use associative arrays to handle the URL data properly. Less obfuscated and consistent in how it uses this data. diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 019e2468..e5262f61 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -1,50 +1,7 @@ import { defineConfig } from "astro/config"; import starlight from "@astrojs/starlight"; -import { ExpressiveCodeTheme } from "@astrojs/starlight/expressive-code"; -import fs from "node:fs"; -import path from "node:path"; import starlightImageZoom from "starlight-image-zoom"; -// Define allowed paths relative to project root -const ALLOWED_PATHS = ["src/themes/expressive-code"]; - -function readFileSyncSafe(url) { - if (url.protocol !== "file:") { - throw new Error("Invalid URL protocol"); - } - - // Convert URL to filesystem path and normalize - const filePath = path.normalize(url.pathname); - - // Ensure path is within allowed directories - const isAllowed = ALLOWED_PATHS.some((allowedPath) => - filePath.includes(path.normalize(allowedPath)) - ); - - if (!isAllowed) { - throw new Error("Access to this directory is not allowed"); - } - - return fs.readFileSync(url, "utf-8"); -} - -const jsoncStringLight = readFileSyncSafe( - new URL( - "./src/themes/expressive-code/Snazzy-Light-color-theme.json", - import.meta.url - ) -); - -const jsoncStringDark = readFileSyncSafe( - new URL( - "./src/themes/expressive-code/aura-soft-dark-soft-text-color-theme.json", - import.meta.url - ) -); - -const darkMode = ExpressiveCodeTheme.fromJSONString(jsoncStringDark); -const lightMode = ExpressiveCodeTheme.fromJSONString(jsoncStringLight); - // https://astro.build/config export default defineConfig({ site: "https://userdocs.github.io", @@ -59,19 +16,6 @@ export default defineConfig({ components: { Header: "./src/components/Header.astro", }, - expressiveCode: { - themes: [darkMode, lightMode], - tabWidth: 0, - styleOverrides: { - borderRadius: "0.1rem", - frames: { - shadowColor: "none", - }, - }, - defaultProps: { - frame: "none", - }, - }, social: { github: "https://github.com/userdocs/qbittorrent-nox-static", diff --git a/docs/ec.config.mjs b/docs/ec.config.mjs new file mode 100644 index 00000000..1f36c2fb --- /dev/null +++ b/docs/ec.config.mjs @@ -0,0 +1,62 @@ +import { pluginCollapsibleSections } from "@expressive-code/plugin-collapsible-sections"; +import { ExpressiveCodeTheme } from "@astrojs/starlight/expressive-code"; +import fs from "node:fs"; +import path from "node:path"; + +// Define allowed paths relative to project root +const ALLOWED_PATHS = ["src/themes/expressive-code"]; + +function readFileSyncSafe(url) { + if (url.protocol !== "file:") { + throw new Error("Invalid URL protocol"); + } + + // Convert URL to filesystem path and normalize + const filePath = path.normalize(url.pathname); + + // Ensure path is within allowed directories + const isAllowed = ALLOWED_PATHS.some((allowedPath) => + filePath.includes(path.normalize(allowedPath)) + ); + + if (!isAllowed) { + throw new Error("Access to this directory is not allowed"); + } + + return fs.readFileSync(url, "utf-8"); +} + +const jsoncStringLight = readFileSyncSafe( + new URL( + "./src/themes/expressive-code/Snazzy-Light-color-theme.json", + import.meta.url + ) +); + +const jsoncStringDark = readFileSyncSafe( + new URL( + "./src/themes/expressive-code/aura-soft-dark-soft-text-color-theme.json", + import.meta.url + ) +); + +const darkMode = ExpressiveCodeTheme.fromJSONString(jsoncStringDark); +const lightMode = ExpressiveCodeTheme.fromJSONString(jsoncStringLight); + +/** @type {import('@astrojs/starlight/expressive-code').StarlightExpressiveCodeOptions} */ +export default { + // Example: Using a custom plugin (which makes this `ec.config.mjs` file necessary) + plugins: [pluginCollapsibleSections()], + defaultProps: { + collapseStyle: "collapsible-start", + frame: "none", + }, + themes: [darkMode, lightMode], + tabWidth: 0, + styleOverrides: { + borderRadius: "0.1rem", + frames: { + shadowColor: "none", + }, + }, +}; diff --git a/docs/package-lock.json b/docs/package-lock.json index a04cb4ba..6b44657c 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9,7 +9,9 @@ "version": "0.0.1", "dependencies": { "@astrojs/starlight": "^0.31.0", + "@expressive-code/plugin-collapsible-sections": "^0.40.0", "astro": "^5.1.7", + "expressive-code": "^0.40.0", "gray-matter": "^4.0.3", "sharp": "^0.32.5", "starlight-image-zoom": "^0.9.0", @@ -656,6 +658,15 @@ "unist-util-visit-parents": "^6.0.1" } }, + "node_modules/@expressive-code/plugin-collapsible-sections": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-collapsible-sections/-/plugin-collapsible-sections-0.40.0.tgz", + "integrity": "sha512-OktWRqYOC4g92wCK1dClYX1UGvO4WAkAv0gUd+kAuZH/lAaesl+TC0NWoLRY+fEqMx3co4YfKmboCmjXWmBwBw==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.40.0" + } + }, "node_modules/@expressive-code/plugin-frames": { "version": "0.40.0", "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.40.0.tgz", diff --git a/docs/package.json b/docs/package.json index 82c860fc..e066728e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,7 +11,9 @@ }, "dependencies": { "@astrojs/starlight": "^0.31.0", + "@expressive-code/plugin-collapsible-sections": "^0.40.0", "astro": "^5.1.7", + "expressive-code": "^0.40.0", "gray-matter": "^4.0.3", "sharp": "^0.32.5", "starlight-image-zoom": "^0.9.0", diff --git a/docs/public/docs_images/script_usage/1.png b/docs/public/docs_images/script_usage/1.png index c4d11ef19dc9150924a5a60ab9887279d6155613..ad0436a3f0db2fa8fac945f49e5fed997bc159fa 100644 GIT binary patch literal 190760 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Ο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 literal 225783 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

R-Dzjg6|ZpTAf< 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∋O2aaxx(+~ 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 M$#e0XM=wAAe`c?9fB*mh diff --git a/docs/src/content/docs/build-help.mdx b/docs/src/content/docs/build-help.mdx index 40c5052c..b70d12de 100644 --- a/docs/src/content/docs/build-help.mdx +++ b/docs/src/content/docs/build-help.mdx @@ -55,6 +55,7 @@ You can export these before you run the script to set them. The can be used for | `qbt_build_debug` | `no` | `yes` `no` | `qbt_build_debug="no"` | | `qbt_standard` | `20` | `14` `17` `20` `23` | `qbt_standard="20"` | | `qbt_static_ish` | `no` | `yes` `no` | `qbt_static_ish="no"` | +| `qbt_optimise` | `no` | `yes` `no` | `qbt_optimise="yes"` |

`armel` `armhf` `armv7` `aarch64` @@ -93,92 +94,97 @@ The `--boot-strap-release` and `--boot-strap-multi-arch` options are specific to ```bash Here are a list of available options -Use: -b or --build-directory Help: -h-b or --help-build-directory -Use: -bt or --boost-version Help: -h-bt or --help-boost-version -Use: -c or --cmake Help: -h-c or --help-cmake -Use: -cd or --cache-directory Help: -h-cd or --help-cache-directory -Use: -d or --debug Help: -h-d or --help-debug -Use: -bs-p or --boot-strap-patches Help: -h-bs-p or --help-boot-strap-patches -Use: -bs-c or --boot-strap-cmake Help: -h-bs-c or --help-boot-strap-cmake -Use: -bs-r or --boot-strap-release Help: -h-bs-r or --help-boot-strap-release -Use: -bs-ma or --boot-strap-multi-arch Help: -h-bs-ma or --help-boot-strap-multi-arch -Use: -bs-a or --boot-strap-all Help: -h-bs-a or --help-boot-strap-all -Use: -i or --icu Help: -h-i or --help-icu -Use: -lm or --libtorrent-master Help: -h-lm or --help-libtorrent-master -Use: -lt or --libtorrent-tag Help: -h-lt or --help-libtorrent-tag -Use: -m or --master Help: -h-m or --help-master -Use: -ma or --multi-arch Help: -h-ma or --help-multi-arch -Use: -n or --no-delete Help: -h-n or --help-no-delete -Use: -o or --optimize Help: -h-o or --help-optimize -Use: -p or --proxy Help: -h-p or --help-proxy -Use: -pr or --patch-repo Help: -h-pr or --help-patch-repo -Use: -qm or --qbittorrent-master Help: -h-qm or --help-qbittorrent-master -Use: -qt or --qbittorrent-tag Help: -h-qt or --help-qbittorrent-tag -Use: -qtt or --qt-tag Help: -h-qtt or --help-qtt-tag -Use: -sdu or --script-debug-urls Help: -h-sdu or --help-script-debug-urls -Use: -si or --static-ish Help: -h-s or --help-strip -Use: -s or --strip Help: -h-s or --help-strip -Use: -wf or --workflow Help: -h-wf or --help-workflow - -Module specific help - flags are used with the modules listed here. - -Use: all or module-name Usage: ~/qbittorrent-nox-static.sh all -i - -all ---------------- optional Recommended method to install all modules -install ------------ optional Install the ~/qbt-build/completed/qbittorrent-nox binary -zlib --------------- required Build zlib locally -iconv -------------- required Build iconv locally -icu ---------------- optional Build ICU locally -openssl ------------ required Build openssl locally -boost -------------- required Download, extract and build the boost library files -libtorrent --------- required Build libtorrent locally -double_conversion -- required A cmake + Qt6 build component on modern OS only. -qtbase ------------- required Build qtbase locally -qttools ------------ required Build qttools locally -qbittorrent -------- required Build qbittorrent locally - -env help - supported exportable environment variables - -export qbt_libtorrent_version="" -------- options 1.2 - 2.0 -export qbt_qt_version="" ---------------- options 5 - 5.15 - 6 - 6.2 - 6.3 and so on -export qbt_build_tool="" ---------------- options qmake - cmake -export qbt_cross_name="" ---------------- options x86_64 - aarch64 - armv7 - armhf -export qbt_patches_url="" --------------- options userdocs/qbittorrent-nox-static. -export qbt_libtorrent_tag="" ------------ options Takes a valid git tag or branch for libtorrent -export qbt_qbittorrent_tag="" ----------- options Takes a valid git tag or branch for qbittorrent -export qbt_boost_tag="" ----------------- options Takes a valid git tag or branch for boost -export qbt_qt_tag="" -------------------- options Takes a valid git tag or branch for Qt -export qbt_workflow_files="" ------------ options yes no - use qbt-workflow-files for dependencies -export qbt_workflow_artifacts="" -------- options yes no - use qbt_workflow_artifacts for dependencies -export qbt_cache_dir="" ----------------- options path empty - provide a path to a cache directory -export qbt_libtorrent_master_jamfile="" - options yes no - use RC branch instead of release jamfile -export qbt_optimise_strip="" ------------ options yes no - strip binaries - cannot be used with debug -export qbt_build_debug="" --------------- options yes no - debug build - cannot be used with strip -export qbt_standard="" ------------------ options 14 - 17 - 20 - 23 - c standard for gcc - for older build combos -export qbt_static_ish="" ---------------- options yes no - libc linking - link dynamically to libc - -⬤ Default env settings - -qbt_libtorrent_version="2.0" -qbt_qt_version="6" -qbt_build_tool="cmake" -qbt_cross_name="default" -qbt_patches_url="userdocs/qbittorrent-nox-static" -qbt_skip_icu="yes" -qbt_boost_tag="boost-1.86.0" -qbt_libtorrent_tag="v2.0.10" -qbt_qt_tag="v6.8.0" -qbt_qbittorrent_tag="release-5.0.1" -qbt_libtorrent_master_jamfile="no" -qbt_workflow_files="no" -qbt_workflow_artifacts="no" -qbt_cache_dir="" -qbt_optimise_strip="yes" -qbt_build_debug="no" -qbt_standard="17" -qbt_static_ish="no" + Use: -b or --build-directory Help: -h-b or --help-build-directory + Use: -bt or --boost-tag Help: -h-bt or --help-boost-version + Use: -c or --cmake Help: -h-c or --help-cmake + Use: -cd or --cache-directory Help: -h-cd or --help-cache-directory + Use: -d or --debug Help: -h-d or --help-debug + Use: -bs-e or --bootstrap-env Help: -h-bs-e or --help-bootstrap-env + Use: -bs-p or --bootstrap-patches Help: -h-bs-p or --help-bootstrap-patches + Use: -bs-c or --bootstrap-cmake Help: -h-bs-c or --help-bootstrap-cmake + Use: -bs-r or --bootstrap-release Help: -h-bs-r or --help-bootstrap-release + Use: -bs-ma or --bootstrap-multi-arch Help: -h-bs-ma or --help-bootstrap-multi-arch + Use: -bs-a or --bootstrap-all Help: -h-bs-a or --help-bootstrap-all + Use: -i or --icu Help: -h-i or --help-icu + Use: -lm or --libtorrent-master Help: -h-lm or --help-libtorrent-master + Use: -lt or --libtorrent-tag Help: -h-lt or --help-libtorrent-tag + Use: -m or --master Help: -h-m or --help-master + Use: -ma or --multi-arch Help: -h-ma or --help-multi-arch + Use: -n or --no-delete Help: -h-n or --help-no-delete + Use: -o or --optimise Help: -h-o or --help-optimise + Use: -p or --proxy Help: -h-p or --help-proxy + Use: -pr or --patch-repo Help: -h-pr or --help-patch-repo + Use: -q or --qmake Help: -h-q or --help-qmkae + Use: -qm or --qbittorrent-master Help: -h-qm or --help-qbittorrent-master + Use: -qt or --qbittorrent-tag Help: -h-qt or --help-qbittorrent-tag + Use: -qtt or --qt-tag Help: -h-qtt or --help-qtt-tag + Use: -sdu or --script-debug-urls Help: -h-sdu or --help-script-debug-urls + Use: -si or --static-ish Help: -h-s or --help-strip + Use: -s or --strip Help: -h-s or --help-strip + Use: -wf or --workflow Help: -h-wf or --help-workflow + + Module specific help - flags are used with the modules listed here. + + Use: all or module-name Usage: ~/qbittorrent-nox-static.sh all -i + + all ---------------- optional Recommended method to install all modules + install ------------ optional Install the ~/qbt-build/completed/qbittorrent-nox binary + zlib --------------- required Build zlib locally + iconv -------------- required Build iconv locally + icu ---------------- optional Build ICU locally + openssl ------------ required Build openssl locally + boost -------------- required Download, extract and build the boost library files + libtorrent --------- required Build libtorrent locally + double_conversion -- required A cmake + Qt6 build component on modern OS only. + qtbase ------------- required Build qtbase locally + qttools ------------ required Build qttools locally + qbittorrent -------- required Build qbittorrent locally + + env help - supported exportable environment variables + + export qbt_build_dir="" ----------------- options path - a valid path + export qbt_libtorrent_version="" -------- options 1.2 | 2.0 + export qbt_qt_version="" ---------------- options 5 | 5.15 | 6 | 6.2 | 6.3 and so on + export qbt_build_tool="" ---------------- options qmake | cmake - The default if empty is cmake + export qbt_cross_name="" ---------------- options x86_64 | aarch64 | armv7 | armhf + export qbt_patches_url="" --------------- options userdocs/qbittorrent-nox-static + export qbt_libtorrent_tag="" ------------ options Takes a valid git tag or branch for libtorrent + export qbt_qbittorrent_tag="" ----------- options Takes a valid git tag or branch for qbittorrent + export qbt_boost_tag="" ----------------- options Takes a valid git tag or branch for boost + export qbt_qt_tag="" -------------------- options Takes a valid git tag or branch for Qt + export qbt_workflow_files="" ------------ options yes | no - use qbt-workflow-files for dependencies + export qbt_workflow_artifacts="" -------- options yes | no - use qbt_workflow_artifacts for dependencies + export qbt_cache_dir="" ----------------- options path | empty - provide a path to a cache directory + export qbt_libtorrent_master_jamfile="" - options yes | no - use RC branch instead of release jamfile + export qbt_optimise_strip="" ------------ options yes | no - strip binaries - cannot be used with debug + export qbt_build_debug="" --------------- options yes | no - debug build - cannot be used with strip + export qbt_standard="" ------------------ options 14 | 17 | 20 | 23 - c standard for gcc - OS dependendent + export qbt_static_ish="" ---------------- options yes | no - libc linking - link dynamically to host libc + + ⬤ Default env settings + + qbt_build_dir="qbt-build" + qbt_libtorrent_version="2.0" + qbt_qt_version="6" + qbt_build_tool="cmake" + qbt_cross_name="default" + qbt_patches_url="userdocs/qbittorrent-nox-static" + qbt_skip_icu="yes" + qbt_boost_tag="boost-1.87.0" + qbt_libtorrent_tag="v2.0.10" + qbt_qt_tag="v6.8.1" + qbt_qbittorrent_tag="release-5.0.3" + qbt_libtorrent_master_jamfile="no" + qbt_workflow_files="no" + qbt_workflow_artifacts="no" + qbt_cache_dir="" + qbt_optimise_strip="yes" + qbt_build_debug="no" + qbt_standard="20" + qbt_static_ish="no" + qbt_optimise="no" -```` +```
::: @@ -252,8 +258,6 @@ It's best to consider all individual modules listed below as being dependent on Here are the list of supported modules: ```bash -bison (Debian based only) -gawk (Debian based only) glibc (Debian based only) zlib (default) iconv (default) diff --git a/docs/src/content/docs/script-installation.mdx b/docs/src/content/docs/script-installation.mdx index d540a9bf..537b78a1 100644 --- a/docs/src/content/docs/script-installation.mdx +++ b/docs/src/content/docs/script-installation.mdx @@ -67,7 +67,7 @@ You use `debian:bullseye` `debian:bookworm` `debian:latest` or a supported tag To bootstrap the container: ```bash -docker run -it -w /root -p 8080:8080 -e "LANG=en_GB.UTF-8" -v ~/qbt:/root debian:latest /bin/bash -c 'apt update && apt install -y curl && bash' +docker run -it -w /root -p 8080:8080 -e "LANG=C.UTF-8" -v ~/qbt:/root debian:latest /bin/bash -c 'apt update && apt install -y curl && bash' ``` If you need to download the script use this command @@ -86,7 +86,7 @@ You use `ubuntu:jammy` `ubuntu:noble` `ubuntu:latest` To bootstrap the container: ```bash -docker run -it -w /root -p 8080:8080 -e "LANG=en_GB.UTF-8" -v ~/qbt:/root ubuntu:latest /bin/bash -c 'apt update && apt install -y curl && bash' +docker run -it -w /root -p 8080:8080 -e "LANG=C.UTF-8" -v ~/qbt:/root ubuntu:latest /bin/bash -c 'apt update && apt install -y curl && bash' ``` If you need to download the script use this command diff --git a/docs/src/content/docs/script-usage.mdx b/docs/src/content/docs/script-usage.mdx index 4e53a788..5fdb420d 100644 --- a/docs/src/content/docs/script-usage.mdx +++ b/docs/src/content/docs/script-usage.mdx @@ -39,7 +39,7 @@ By passing `all` as the first argument, you can build everything based on the de ./qbittorrent-nox-static.sh all ``` -For example, to use `ICU` using `-i`, optimise for the host system CPU using `-o`, `-s` to strip the binary and build using libtorrent v1.2.19 +For example, to use `ICU` using `-i`, optimise for the host system CPU using `-o` to set `-march=native` and `-s` to strip the binary and build using libtorrent v1.2.19 ```bash ./qbittorrent-nox-static.sh all -i -o -s -lt v1.2.19 @@ -48,5 +48,5 @@ For example, to use `ICU` using `-i`, optimise for the host system CPU using `-o Same as previous command but using `env` settings ```bash -qbt_libtorrent_tag="v1.2.19" qbt_skip_icu="yes" qbt_optimise_strip="yes" qbt_optimize="-march=native" ./qbittorrent-nox-static.sh all +qbt_libtorrent_tag="v1.2.19" qbt_skip_icu="yes" qbt_optimise_strip="yes" qbt_optimize="yes" ./qbittorrent-nox-static.sh all ``` diff --git a/qbittorrent-nox-static.sh b/qbittorrent-nox-static.sh index 83905e01..943031c6 100644 --- a/qbittorrent-nox-static.sh +++ b/qbittorrent-nox-static.sh @@ -19,7 +19,7 @@ ################################################################################################################################################# # Script version = Major minor patch ################################################################################################################################################# -script_version="2.0.14" +script_version="2.0.15" ################################################################################################################################################# # Set some script features - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html ################################################################################################################################################# @@ -28,6 +28,13 @@ set -a # Unset some variables to set defaults. ################################################################################################################################################# unset qbt_skip_delete qbt_git_proxy qbt_curl_proxy qbt_install_dir qbt_working_dir qbt_modules_test qbt_python_version +unset qbt_cflags qbt_cxxflags_consumed qbt_cppflags_consumed qbt_ldflags_consumed +################################################################################################################################################# +# Declare our associative arrays +################################################################################################################################################# +declare -gA multi_arch_options skip_modules +declare -gA github_url github_tag app_version source_archive_url qbt_workflow_archive_url +declare -gA qbt_workflow_override source_default qbt_activated_modules ################################################################################################################################################# # Color me up Scotty - define some color values to use as variables in the scripts. ################################################################################################################################################# @@ -49,8 +56,9 @@ unicode_cyan_circle="\e[36m\U2B24\e[0m" unicode_cyan_light_circle="\e[96m\U2B24\ unicode_grey_circle="\e[37m\U2B24\e[0m" unicode_grey_light_circle="\e[97m\U2B24\e[0m" color_end="\e[0m" - +################################################################################################################################################# # Function to test color and show outputs in the terminal +################################################################################################################################################# _color_test() { # Check if the terminal supports color output if [[ -t 1 ]]; then @@ -70,17 +78,24 @@ _color_test() { } [[ "${1}" == "ctest" ]] && _color_test # ./scriptname.sh ctest ####################################################################################################################################################### -# Check we are on a supported OS and release. +# Get script basename and full path ####################################################################################################################################################### -get_os_info() { # Function to source /etc/os-release and get info from it on demand. +script_full_path=$(readlink -f "${BASH_SOURCE[0]}") +script_basename="${script_full_path##*/}" +####################################################################################################################################################### +# Function to source /etc/os-release and get info from it on demand. +####################################################################################################################################################### +get_os_info() { # shellcheck source=/dev/null if source /etc/os-release &> /dev/null; then - printf "%s" "${!1%_*}" # the exansion part is specific to the Alpine VERSION_ID format 1.2.3_alpha but won't break anything in Debian based format. 12/24.04 + printf "%s" "${!1%_*}" # the expansion part is specific to the Alpine VERSION_ID format 1.2.3_alpha but won't break anything in Debian based format e.g. 12/24.04 else printf "%s" "unknown" # This will make the script exit on the version check and provide useful reason. fi } - +####################################################################################################################################################### +# Checks to see if we are on a supported OS and release. +####################################################################################################################################################### os_id="$(get_os_info ID)" # Get the ID for this this OS. os_version_codename="$(get_os_info VERSION_CODENAME)" # Get the codename for this this OS. Note, Alpine does not have a unique codename. os_version_id="$(get_os_info VERSION_ID)" # Get the version number for this codename, for example: 10, 20.04, 3.12.4 @@ -95,7 +110,7 @@ if [[ ! "${os_version_codename}" =~ ^(alpine|bullseye|bookworm|focal|jammy|noble printf '%b\n' " ${color_magenta_light}Debian${color_end} - ${color_blue_light}bullseye${color_end} - ${color_blue_light}bookworm${color_end}" printf '%b\n' " ${color_magenta_light}Ubuntu${color_end} - ${color_blue_light}focal${color_end} - ${color_blue_light}jammy${color_end} - ${color_blue_light}noble${color_end}" printf '%b\n\n' " ${color_magenta_light}Alpine${color_end} - ${color_blue_light}3.10.0${color_end} ${text_dim}or greater${color_end}" - exit 1 + exit fi ####################################################################################################################################################### # Source env vars from a file if it exists but it will be overridden by switches and flags passed to the script @@ -106,31 +121,31 @@ if [[ -f "${PWD}/.qbt_env" ]]; then source "${PWD}/.qbt_env" fi ####################################################################################################################################################### -# Multi arch stuff -####################################################################################################################################################### -# Define all available multi arches we use from here https://github.com/userdocs/qbt-musl-cross-make#readme -declare -gA multi_arch_options -multi_arch_options[default]="skip" -multi_arch_options[armel]="armel" -multi_arch_options[armhf]="armhf" -multi_arch_options[armv7]="armv7" -multi_arch_options[aarch64]="aarch64" -multi_arch_options[x86_64]="x86_64" -multi_arch_options[x86]="x86" -multi_arch_options[s390x]="s390x" -multi_arch_options[powerpc]="powerpc" -multi_arch_options[ppc64el]="ppc64el" -multi_arch_options[mips]="mips" -multi_arch_options[mipsel]="mipsel" -multi_arch_options[mips64]="mips64" -multi_arch_options[mips64el]="mips64el" -multi_arch_options[riscv64]="riscv64" +# Multi arch stuff - Define all available multi arches we use from here https://github.com/userdocs/qbt-musl-cross-make#readme +####################################################################################################################################################### +multi_arch_options["default"]="skip" +multi_arch_options["armel"]="armel" +multi_arch_options["armhf"]="armhf" +multi_arch_options["armv7"]="armv7" +multi_arch_options["aarch64"]="aarch64" +multi_arch_options["x86_64"]="x86_64" +multi_arch_options["x86"]="x86" +multi_arch_options["s390x"]="s390x" +multi_arch_options["powerpc"]="powerpc" +multi_arch_options["ppc64el"]="ppc64el" +multi_arch_options["mips"]="mips" +multi_arch_options["mipsel"]="mipsel" +multi_arch_options["mips64"]="mips64" +multi_arch_options["mips64el"]="mips64el" +multi_arch_options["riscv64"]="riscv64" ####################################################################################################################################################### # This function sets some default values we use but whose values can be overridden by certain flags or exported as variables before running the script ####################################################################################################################################################### _set_default_values() { - # For docker deploys to not get prompted to set the timezone. - export DEBIAN_FRONTEND="noninteractive" && TZ="Europe/London" + # For debian based docker deploys to not get prompted to set the timezone. + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + export DEBIAN_FRONTEND="noninteractive" && TZ="Europe/London" + fi # The default build configuration is qmake + qt5, qbt_build_tool=cmake or -c will make qt6 and cmake default qbt_build_tool="${qbt_build_tool:-cmake}" @@ -145,7 +160,6 @@ _set_default_values() { qbt_build_debug="${qbt_build_debug:-no}" # github actions workflows - use https://github.com/userdocs/qbt-workflow-files/releases/latest instead of direct downloads from various source locations. - # Provides an alternative source and does not spam download hosts when building matrix builds. qbt_workflow_files="${qbt_workflow_files:-no}" # github actions workflows - use the workflow files saved as artifacts instead of downloading from workflow files or host per matrix @@ -194,6 +208,29 @@ _set_default_values() { # We are only using python3 but it's easier to just change this if we need to for some reason. qbt_python_version="3" + # provide gcc flags for the build - this is not used by default but can be set to provide custom flags for the build. + qbt_optimise="${qbt_optimise:-no}" + + # The default is 17 but can be manually defined via the env qbt_standard - this will be overridden by the _set_cxx_standard function in specific cases + qbt_standard="${qbt_standard:-20}" qbt_cxx_standard="c++${qbt_standard}" + + # Set the working dir to our current location and all things well be relative to this location. + qbt_working_dir="$(pwd)" + + # Used with printf. Use the qbt_working_dir variable but the ${HOME} path is replaced with a literal ~ + qbt_working_dir_short="${qbt_working_dir/${HOME}/\~}" + + qbt_build_dir="${qbt_build_dir:-qbt-build}" # Build directory + + # Install relative to the script location. + qbt_install_dir="${qbt_working_dir}/${qbt_build_dir}" + + # Used with printf. Use the qbt_install_dir variable but the ${HOME} path is replaced with a literal ~ + qbt_install_dir_short="${qbt_install_dir/${HOME}/\~}" + + # Get the local users $PATH before we isolate the script by setting HOME to the install dir in the _set_build_directory function. + qbt_local_paths="$PATH" + # The Alpine repository we use for package sources CDN_URL="http://dl-cdn.alpinelinux.org/alpine/edge/main" # for alpine @@ -205,6 +242,7 @@ _set_default_values() { # Create this array empty. Packages listed in or added to this array will be removed from the default list of packages, changing the list of installed dependencies delete_pkgs=() + # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug if [[ "${qbt_build_debug}" = "yes" ]]; then qbt_optimise_strip="no" @@ -216,26 +254,12 @@ _set_default_values() { fi # staticish builds - if [[ ${qbt_static_ish:=no} == "yes" ]]; then - qbt_ldflags_static="" - + if [[ "${qbt_static_ish:=no}" == "yes" ]]; then if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then delete+=("glibc"); fi - - if [[ ${qbt_cross_name} != "default" ]]; then + if [[ "${qbt_cross_name}" != "default" ]]; then printf '\n%b\n\n' " ${unicode_red_light_circle} You cannot use the ${color_blue_light}-si${color_end} flag with cross compilation${color_end}" exit 1 fi - else - qbt_ldflags_static="-static" - fi - - # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug - if [[ "${qbt_optimise_strip}" = "yes" && "${qbt_build_debug}" = "no" ]]; then - qbt_strip_qmake='strip' - qbt_strip_flags='-s' - else - qbt_strip_qmake='-nostrip' - qbt_strip_flags='' fi # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug @@ -302,26 +326,141 @@ _set_default_values() { else [[ "${qbt_skip_icu}" != "no" ]] && delete+=("icu") fi +} +####################################################################################################################################################### +# These functions set some build conditions dynamically based on the libtorrent versions, qt version and qbittorrent combinations +####################################################################################################################################################### +_qt_std_cons() { + if [[ "${qbt_qt_version}" == "6" ]]; then + printf "yes" + return + fi + printf "no" +} - # The default is 17 but can be manually defined via the env qbt_standard - this will be overridden by the _set_cxx_standard function in specific cases - qbt_standard="${qbt_standard:-17}" qbt_cxx_standard="c++${qbt_standard}" +_os_std_cons() { + if [[ "${os_version_codename}" =~ ^(alpine|bookworm|noble)$ ]]; then + printf "yes" + return + fi + printf "no" +} - # Set the working dir to our current location and all things well be relative to this location. - qbt_working_dir="$(pwd)" +_libtorrent_std_cons() { + if [[ "${github_tag[libtorrent]}" =~ ^(RC_1_2|RC_2_0)$ ]]; then + printf "yes" + return + fi - # Used with printf. Use the qbt_working_dir variable but the ${HOME} path is replaced with a literal ~ - qbt_working_dir_short="${qbt_working_dir/${HOME}/\~}" + if [[ "${github_tag[libtorrent]}" =~ ^v1\.2\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "1.2.19")" ]]; then + printf "yes" + return + fi + if [[ "${github_tag[libtorrent]}" =~ ^v2\.0\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "2.0.10")" ]]; then + printf "yes" + return + fi + printf 'no' +} - qbt_build_dir="${qbt_build_dir:-qbt-build}" # Build directory +_qbittorrent_std_cons() { + if [[ "${github_tag[qbittorrent]}" == "master" ]]; then + printf "yes" + return + fi - # Install relative to the script location. - qbt_install_dir="${qbt_working_dir}/${qbt_build_dir}" + if [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "4.6.0")" ]]; then + printf "yes" + return + fi + printf 'no' +} - # Used with printf. Use the qbt_install_dir variable but the ${HOME} path is replaced with a literal ~ - qbt_install_dir_short="${qbt_install_dir/${HOME}/\~}" +_qbittorrent_build_cons() { + if [[ "${github_tag[qbittorrent]}" == "master" ]]; then + printf "yes" + return + fi - # Get the local users $PATH before we isolate the script by setting HOME to the install dir in the _set_build_directory function. - qbt_local_paths="$PATH" + if [[ "${github_tag[qbittorrent]}" == "v5_0_x" ]]; then + printf "yes" + return + fi + + if [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "5.0.0")" ]]; then + printf "yes" + return + fi + printf 'no' +} + +_set_cxx_standard() { + if [[ "$(_qt_std_cons)" == "yes" && "$(_os_std_cons)" && "$(_libtorrent_std_cons)" == "yes" && "$(_qbittorrent_std_cons)" == "yes" ]]; then + qbt_standard="20" qbt_cxx_standard="c++${qbt_standard}" + else + qbt_standard="17" qbt_cxx_standard="c++${qbt_standard}" + fi +} + +_set_build_cons() { + if [[ "$(_qbittorrent_build_cons)" == "yes" && "${qbt_qt_version}" == "5" ]]; then + printf '\n%b\n\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}qBittorrent ${color_magenta}${github_tag[qbittorrent]}${color_yellow} does not support ${color_red}Qt5${color_yellow}. Please use ${color_green}Qt6${color_yellow} or a qBittorrent ${color_green}v4${color_yellow} tag.${color_end}" + if [[ -d "${release_info_dir}" ]]; then touch "${release_info_dir}/disable-qt5"; fi # qbittorrent v5 transition - workflow specific + exit + elif [[ "$(_qbittorrent_build_cons)" == "yes" && "$(_os_std_cons)" == "no" ]]; then + printf '\n%b\n\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}qBittorrent ${color_magenta}${github_tag[qbittorrent]}${color_yellow} does not support less than ${color_red}c++20${color_yellow}. Please use an OS with a more modern compiler for v5${color_end}" + if [[ -d "${release_info_dir}" ]]; then touch "${release_info_dir}/disable-qt5"; fi # qbittorrent v5 transition - workflow specific + exit + fi +} +####################################################################################################################################################### +# _print_env +####################################################################################################################################################### +_print_env() { + printf '\n%b\n\n' " ${unicode_yellow_circle} Default env settings${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_dir=\"${color_green_light}${qbt_build_dir}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_version=\"${color_green_light}${qbt_libtorrent_version}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qt_version=\"${color_green_light}${qbt_qt_version}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_tool=\"${color_green_light}${qbt_build_tool}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_cross_name=\"${color_green_light}${qbt_cross_name}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_patches_url=\"${color_green_light}${qbt_patches_url}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_skip_icu=\"${color_green_light}${qbt_skip_icu}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_boost_tag=\"${color_green_light}${github_tag[boost]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_tag=\"${color_green_light}${github_tag[libtorrent]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qt_tag=\"${color_green_light}${github_tag[qtbase]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qbittorrent_tag=\"${color_green_light}${github_tag[qbittorrent]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_master_jamfile=\"${color_green_light}${qbt_libtorrent_master_jamfile}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_workflow_files=\"${color_green_light}${qbt_workflow_files}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_workflow_artifacts=\"${color_green_light}${qbt_workflow_artifacts}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_cache_dir=\"${color_green_light}${qbt_cache_dir}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_optimise_strip=\"${color_green_light}${qbt_optimise_strip}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_debug=\"${color_green_light}${qbt_build_debug}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_standard=\"${color_green_light}${qbt_standard}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_static_ish=\"${color_green_light}${qbt_static_ish}${color_yellow_light}\"${color_end}" + printf '%b\n\n' " ${color_yellow_light} qbt_optimise=\"${color_green_light}${qbt_optimise}${color_yellow_light}\"${color_end}" +} +####################################################################################################################################################### +# This function converts a version string to a number for comparison purposes. +####################################################################################################################################################### +_semantic_version() { + local test_array + read -ra test_array < <(printf "%s" "${@//./ }") + printf "%d%03d%03d%03d" "${test_array[@]}" +} +####################################################################################################################################################### +# Script Version check +####################################################################################################################################################### +_script_version() { + script_version_remote="$(_curl -sL "${script_url}" | sed -rn 's|^script_version="(.*)"$|\1|p')" + + if [[ "$(_semantic_version "${script_version}")" -lt "$(_semantic_version "${script_version_remote}")" ]]; then + printf '\n%b\n' " ${text_blink}${unicode_red_circle}${color_end} Script update available! Versions - ${color_yellow_light}local:${color_red_light}${script_version}${color_end} ${color_yellow_light}remote:${color_green_light}${script_version_remote}${color_end}" + printf '\n%b\n' " ${unicode_green_circle} curl -sLo ${BASH_SOURCE[0]} https://git.io/qbstatic${color_end}" + elif [[ "$(_semantic_version "${script_version}")" -gt "$(_semantic_version "${script_version_remote}")" ]]; then + printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_red_light}${script_version}-dev${color_end}" + else + printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_green_light}${script_version}${color_end}" + fi } ####################################################################################################################################################### # This function will check for a list of defined dependencies from the qbt_required_pkgs array. Apps like python3-dev are dynamically set @@ -425,85 +564,6 @@ _check_dependencies() { fi } ####################################################################################################################################################### -# This function converts a version string to a number for comparison purposes. -####################################################################################################################################################### -_semantic_version() { - local test_array - read -ra test_array < <(printf "%s" "${@//./ }") - printf "%d%03d%03d%03d" "${test_array[@]}" -} -####################################################################################################################################################### -# _print_env -####################################################################################################################################################### -_print_env() { - printf '\n%b\n\n' " ${unicode_yellow_circle} Default env settings${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_build_dir=\"${color_green_light}${qbt_build_dir}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_libtorrent_version=\"${color_green_light}${qbt_libtorrent_version}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_qt_version=\"${color_green_light}${qbt_qt_version}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_build_tool=\"${color_green_light}${qbt_build_tool}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_cross_name=\"${color_green_light}${qbt_cross_name}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_patches_url=\"${color_green_light}${qbt_patches_url}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_skip_icu=\"${color_green_light}${qbt_skip_icu}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_boost_tag=\"${color_green_light}${github_tag[boost]}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_libtorrent_tag=\"${color_green_light}${github_tag[libtorrent]}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_qt_tag=\"${color_green_light}${github_tag[qtbase]}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_qbittorrent_tag=\"${color_green_light}${github_tag[qbittorrent]}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_libtorrent_master_jamfile=\"${color_green_light}${qbt_libtorrent_master_jamfile}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_workflow_files=\"${color_green_light}${qbt_workflow_files}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_workflow_artifacts=\"${color_green_light}${qbt_workflow_artifacts}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_cache_dir=\"${color_green_light}${qbt_cache_dir}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_optimise_strip=\"${color_green_light}${qbt_optimise_strip}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_build_debug=\"${color_green_light}${qbt_build_debug}${color_yellow_light}\"${color_end}" - printf '%b\n' " ${color_yellow_light} qbt_standard=\"${color_green_light}${qbt_standard}${color_yellow_light}\"${color_end}" - printf '%b\n\n' " ${color_yellow_light} qbt_static_ish=\"${color_green_light}${qbt_static_ish}${color_yellow_light}\"${color_end}" -} -####################################################################################################################################################### -# These functions set the cxx standard dynmically based on the libtorrent versions, qt version and qbittorrent combinations -####################################################################################################################################################### -_qt_std_cons() { - [[ "${qbt_qt_version}" == "6" ]] && cxx_check="yes" - printf '%s' "${cxx_check:-no}" -} - -_libtorrent_std_cons() { - [[ "${github_tag[libtorrent]}" =~ ^(RC_1_2|RC_2_0)$ ]] && cxx_check="yes" - [[ "${github_tag[libtorrent]}" =~ ^v1\.2\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "1.2.20")" ]] && cxx_check="yes" - [[ "${github_tag[libtorrent]}" =~ ^v2\.0\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "2.0.10")" ]] && cxx_check="yes" - printf '%s' "${cxx_check:-no}" -} - -_qbittorrent_std_cons() { - [[ "${github_tag[qbittorrent]}" == "master" ]] && cxx_check="yes" - [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "4.6.0")" ]] && cxx_check="yes" - printf '%s' "${cxx_check:-no}" -} - -_set_cxx_standard() { - if [[ $(_qt_std_cons) == "yes" && $(_libtorrent_std_cons) == "yes" && $(_qbittorrent_std_cons) == "yes" ]]; then - if [[ "${os_version_codename}" =~ ^(alpine|bookworm|jammy|noble)$ ]]; then - qbt_standard="20" qbt_cxx_standard="c++${qbt_standard}" - fi - fi -} - -####################################################################################################################################################### -# These functions set some build conditions dynmically based on the libtorrent versions, qt version and qbittorrent combinations -####################################################################################################################################################### -_qbittorrent_build_cons() { - [[ "${github_tag[qbittorrent]}" == "master" ]] && disable_qt5="yes" - [[ "${github_tag[qbittorrent]}" == "v5_0_x" ]] && disable_qt5="yes" - [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "5.0.0")" ]] && disable_qt5="yes" - printf '%s' "${disable_qt5:-no}" -} - -_set_build_cons() { - if [[ $(_qbittorrent_build_cons) == "yes" && "${qbt_qt_version}" == "5" ]]; then - printf '\n%b\n\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}qBittorrent ${color_magenta}${github_tag[qbittorrent]}${color_yellow} does not support ${color_red}Qt5${color_yellow}. Please use ${color_green}Qt6${color_yellow} or a qBittorrent ${color_green}v4${color_yellow} tag.${color_end}" - if [[ -d "${release_info_dir}" ]]; then touch "${release_info_dir}/disable-qt5"; fi # qbittorrent v5 transition - workflow specific - exit # non error exit to not upset github actions - just skip the step - fi -} -####################################################################################################################################################### # This is a command test function: _cmd exit 1 ####################################################################################################################################################### _cmd() { @@ -647,41 +707,47 @@ _boost_url() { ####################################################################################################################################################### _debug() { if [[ "${script_debug_urls}" == "yes" ]]; then - mapfile -t github_url_sorted < <(printf '%s\n' "${!github_url[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}github_url${color_end}" - for n in "${github_url_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_url[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r github_url_sorted; do + for n in "${github_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!github_url[@]}" | sort) - mapfile -t github_tag_sorted < <(printf '%s\n' "${!github_tag[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}github_tag${color_end}" - for n in "${github_tag_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_tag[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r github_tag_sorted; do + for n in "${github_tag_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_tag[$n]}${color_end}" + done + done < <(printf '%s\n' "${!github_tag[@]}" | sort) - mapfile -t app_version_sorted < <(printf '%s\n' "${!app_version[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}app_version${color_end}" - for n in "${app_version_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${app_version[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r app_version_sorted; do + for n in "${app_version_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${app_version[$n]}${color_end}" + done + done < <(printf '%s\n' "${!app_version[@]}" | sort) - mapfile -t source_archive_url_sorted < <(printf '%s\n' "${!source_archive_url[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}source_archive_url${color_end}" - for n in "${source_archive_url_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_archive_url[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r source_archive_url_sorted; do + for n in "${source_archive_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_archive_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!source_archive_url[@]}" | sort) - mapfile -t qbt_workflow_archive_url_sorted < <(printf '%s\n' "${!qbt_workflow_archive_url[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}qbt_workflow_archive_url${color_end}" - for n in "${qbt_workflow_archive_url_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${qbt_workflow_archive_url[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r qbt_workflow_archive_url_sorted; do + for n in "${qbt_workflow_archive_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${qbt_workflow_archive_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!qbt_workflow_archive_url[@]}" | sort) - mapfile -t source_default_sorted < <(printf '%s\n' "${!source_default[@]}" | sort) printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}source_default${color_end}" - for n in "${source_default_sorted[@]}"; do - printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_default[$n]}${color_end}" #: ${github_url[$n]}" - done + while IFS= read -r source_default_sorted; do + for n in "${source_default_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_default[$n]}${color_end}" + done + done < <(printf '%s\n' "${!source_default[@]}" | sort) printf '\n%b\n' " ${unicode_magenta_circle} ${color_yellow_light}Tests${color_end}" printf '\n%b\n' " ${color_green_light}boost_url_status:${color_end} ${color_blue_light}${boost_url_status}${color_end}" @@ -694,16 +760,85 @@ _debug() { ####################################################################################################################################################### # This function sets some compiler flags globally - b2 settings are set in the ~/user-config.jam set in the _installation_modules function ####################################################################################################################################################### -_custom_flags_set() { - CXXFLAGS="${qbt_optimize/*/${qbt_optimize} }-std=${qbt_cxx_standard} ${qbt_ldflags_static} -w -Wno-psabi -I${include_dir}" - CPPFLAGS="${qbt_optimize/*/${qbt_optimize} }${qbt_ldflags_static} -w -Wno-psabi -I${include_dir}" - LDFLAGS="${qbt_optimize/*/${qbt_optimize} }${qbt_ldflags_static} ${qbt_strip_flags} -L${lib_dir} -pthread -z max-page-size=65536" -} +# Define common flag sets +_custom_flags() { + # Compiler optimization flags (for CFLAGS/CXXFLAGS) + qbt_optimization_flags="-O3 -pipe -fdata-sections -ffunction-sections" + # Preprocessor only flags - _FORTIFY_SOURCE=3 has been in the GNU C Library (glibc) since version 2.34 + if [[ "${os_version_codename}" =~ ^(bullseye|focal)$ ]]; then + qbt_preprocessor_flags="-U_FORTIFY_SOURCE -D_GLIBCXX_ASSERTIONS" + else + qbt_preprocessor_flags="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS" + fi + # Security flags for compiler + qbt_security_flags="-fstack-clash-protection -fstack-protector-strong -fno-plt" + # Warning control + qbt_warning_flags="-w -Wno-error -Wno-error=attributes -Wno-attributes -Wno-psabi" + # Linker specific flags + qbt_linker_flags="-Wl,-O1,--as-needed,--sort-common,-z,now,-z,pack-relative-relocs,-z,relro,-z,max-page-size=65536" + + if [[ "${os_id}" =~ ^(alpine)$ ]] && [[ -z "${qbt_cross_name}" || "${qbt_cross_name}" == "default" ]]; then + if [[ ! "${app_name}" =~ ^(openssl)$ ]]; then + qbt_optimization_flags+=" -flto=auto -ffat-lto-objects" + qbt_linker_flags+=" -Wl,-flto -fuse-linker-plugin" + fi + fi + + # if qbt_optimise=yes then set -march=native for non cross builds - see --o | --optimise + if [[ $qbt_optimise == "yes" ]]; then + qbt_optimise_march="-march=native" + fi -_custom_flags_reset() { - CXXFLAGS="${qbt_optimize/*/${qbt_optimize} } -w -std=${qbt_cxx_standard}" - CPPFLAGS="${qbt_optimize/*/${qbt_optimize} } -w" - LDFLAGS="" + # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug + if [[ "${qbt_optimise_strip}" = "yes" && "${qbt_build_debug}" = "no" ]]; then + qbt_strip_qmake='strip' + qbt_strip_flags='-s' + else + qbt_strip_qmake='-nostrip' + qbt_strip_flags='' + fi + + # Static linking specific + if [[ "${qbt_static_ish}" == "yes" || "${app_name}" =~ ^(glibc|icu)$ ]]; then + qbt_static_flags="" + else + qbt_static_flags="-static-libstdc++ -static-libgcc -static" + fi + + # If you set and export your own flags in the env that the script is run, they will be appended to the defaults + # This is done via these checks and the flags are set in the _custom_flags_set function and it avoids duplication + [[ -z "${qbt_cflags_consumed}" ]] && qbt_cflags="${CFLAGS}" qbt_cflags_consumed="yes" + [[ -z "${qbt_cxxflags_consumed}" ]] && qbt_cxxflags="${CXXFLAGS}" qbt_cxxflags_consumed="yes" + [[ -z "${qbt_cppflags_consumed}" ]] && qbt_cppflags="${CPPFLAGS}" qbt_cppflags_consumed="yes" + [[ -z "${qbt_ldflags_consumed}" ]] && qbt_ldflags="${LDFLAGS}" qbt_ldflags_consumed="yes" + + _custom_flags_set() { + CFLAGS="${qbt_optimization_flags} ${qbt_security_flags} -pthread ${qbt_static_flags} ${qbt_optimise_march} ${qbt_cflags:-}" + CXXFLAGS="-I${include_dir} ${qbt_optimization_flags} ${qbt_security_flags} ${qbt_warning_flags} -std=${qbt_cxx_standard} -pthread ${qbt_static_flags} ${qbt_optimise_march} ${qbt_cxxflags:-}" + CPPFLAGS="-I${include_dir} ${qbt_preprocessor_flags} ${qbt_warning_flags} ${qbt_cppflags:-}" + LDFLAGS="-L${lib_dir} ${qbt_static_flags} ${qbt_strip_flags} ${qbt_linker_flags} -pthread ${qbt_optimise_march} ${qbt_ldflags:-}" + } + + _custom_flags_reset() { + CFLAGS="${qbt_optimization_flags} ${qbt_security_flags} ${qbt_optimise_march} ${qbt_cflags:-}" + CXXFLAGS="${qbt_optimization_flags} ${qbt_security_flags} ${qbt_warning_flags} -std=${qbt_cxx_standard} ${qbt_optimise_march} ${qbt_cxxflags:-}" + CPPFLAGS="${qbt_preprocessor_flags} ${qbt_warning_flags} ${qbt_cppflags:-}" + LDFLAGS="${qbt_strip_flags} ${qbt_optimise_march} ${qbt_ldflags:-}" + } + + if [[ "${qbt_build_tool}" == "qmake" && "${app_name}" =~ ^(boost)$ ]]; then + if [[ "${qbt_cross_name}" == "default" ]]; then + printf '%b\n' "using gcc : : : -std=${qbt_cxx_standard} ${qbt_optimise_march} -std=${qbt_cxx_standard} ${qbt_optimise_march} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" + else + printf '%b\n' "using gcc : ${qbt_cross_boost#gcc-} : ${qbt_cross_host}-g++ : -std=${qbt_cxx_standard} -std=${qbt_cxx_standard} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" + fi + fi + + if [[ "${app_name}" =~ ^(glibc|icu)$ ]]; then + _custom_flags_reset + else + _custom_flags_set + fi } ####################################################################################################################################################### # This function installs a completed static build of qbittorrent-nox to the /usr/local/bin for root or ${HOME}/bin for non root @@ -720,7 +855,11 @@ _install_qbittorrent() { printf '\n%b\n' " ${unicode_blue_light_circle} qbittorrent-nox has been installed!${color_end}" printf '\n%b\n' " Run it using this command:" - [[ "$(id -un)" == 'root' ]] && printf '\n%b\n\n' " ${color_green}qbittorrent-nox${color_end}" || printf '\n%b\n\n' " ${color_green}~/bin/qbittorrent-nox${color_end}" + if [[ "$(id -un)" == 'root' ]]; then + printf '\n%b\n\n' " ${color_green}qbittorrent-nox${color_end}" + else + printf '\n%b\n\n' " ${color_green}~/bin/qbittorrent-nox${color_end}" + fi exit else printf '\n%b\n\n' " ${unicode_red_circle} qbittorrent-nox has not been built to the defined install directory:" @@ -730,21 +869,6 @@ _install_qbittorrent() { fi } ####################################################################################################################################################### -# Script Version check -####################################################################################################################################################### -_script_version() { - script_version_remote="$(_curl -sL "${script_url}" | sed -rn 's|^script_version="(.*)"$|\1|p')" - - if [[ "$(_semantic_version "${script_version}")" -lt "$(_semantic_version "${script_version_remote}")" ]]; then - printf '\n%b\n' " ${text_blink}${unicode_red_circle}${color_end} Script update available! Versions - ${color_yellow_light}local:${color_red_light}${script_version}${color_end} ${color_yellow_light}remote:${color_green_light}${script_version_remote}${color_end}" - printf '\n%b\n' " ${unicode_green_circle} curl -sLo ${BASH_SOURCE[0]} https://git.io/qbstatic${color_end}" - elif [[ "$(_semantic_version "${script_version}")" -gt "$(_semantic_version "${script_version_remote}")" ]]; then - printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_red_light}${script_version}-dev${color_end}" - else - printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_green_light}${script_version}${color_end}" - fi -} -####################################################################################################################################################### # URL test for normal use and proxy use - make sure we can reach google.com before processing the URL functions ####################################################################################################################################################### _test_url() { @@ -788,10 +912,6 @@ _set_module_urls() { # Update check url for the _script_version function script_url="https://raw.githubusercontent.com/userdocs/qbittorrent-nox-static/master/qbittorrent-nox-static.sh" ########################################################################################################################################################## - # Create all the arrays now - ########################################################################################################################################################## - declare -gA github_url github_tag app_version source_archive_url qbt_workflow_archive_url qbt_workflow_override source_default - ########################################################################################################################################################## # Configure the github_url associative array for all the applications this script uses and we call them as ${github_url[app_name]} ########################################################################################################################################################## if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then @@ -947,42 +1067,35 @@ _installation_modules() { # Delete modules - using the the delete array to unset them from the qbt_modules array for target in "${delete[@]}"; do for deactivated in "${!qbt_modules[@]}"; do - [[ "${qbt_modules[${deactivated}]}" == "${target}" ]] && unset 'qbt_modules[${deactivated}]' + if [[ "${qbt_modules[${deactivated}]}" == "${target}" ]]; then + unset 'qbt_modules[${deactivated}]' + fi done - done - unset target deactivated + done && unset target deactivated # For any modules params passed, test that they exist in the qbt_modules array or set qbt_modules_test to fail for passed_params in "${@}"; do - if [[ ! "${qbt_modules[*]}" =~ (^|[^[:alpha:]])${passed_params}([^[:alpha:]]|$) ]]; then + if [[ ! "${qbt_modules[*]}" =~ ([[:space:]]|^)(${passed_params})([[:space:]]|$) ]]; then qbt_modules_test="fail" fi done unset passed_params if [[ "${qbt_modules_test}" != 'fail' && "${#}" -ne '0' ]]; then - if [[ "${1}" == "all" ]]; then - # If all is passed as a module and once the params check = pass has triggered this condition, remove to from the qbt_modules array to leave only the modules to be activated - unset 'qbt_modules[0]' - # Rebuild the qbt_modules array so it is indexed starting from 0 after we have modified and removed items from it previously. - qbt_modules=("${qbt_modules[@]}") - else # Only activate the module passed as a param and leave the rest defaulted to skip - unset 'qbt_modules[0]' - read -ra qbt_modules_skipped <<< "${qbt_modules[@]}" - declare -gA skip_modules + unset 'qbt_modules[0]' # Remove all the modules from the qbt_modules array before we process it + if [[ "${1}" != "all" ]]; then + read -ra qbt_modules_selected_compare <<< "${qbt_modules[@]}" for selected in "${@}"; do - for full_list in "${!qbt_modules_skipped[@]}"; do - [[ "${selected}" == "${qbt_modules_skipped[full_list]}" ]] && qbt_modules_skipped[full_list]="${color_magenta_light}${selected}${color_end}" - done - done - unset selected - qbt_modules=("${@}") + qbt_activated_modules["${selected}"]="yes" + done && unset selected + qbt_modules_install_processed=("${@}") + else + qbt_modules_install_processed=("${qbt_modules[@]}") # Rebuild the qbt_modules array so it is indexed starting from 0 after we have modified and removed items from it previously. fi - for modules_skip in "${qbt_modules[@]}"; do + for modules_skip in "${qbt_modules_install_processed[@]}"; do skip_modules["${modules_skip}"]="no" - done - unset modules_skip + done && unset modules_skip # Create the directories we need. mkdir -p "${qbt_install_dir}/logs" @@ -992,16 +1105,15 @@ _installation_modules() { # Set some python variables we need. python_major="$(python"${qbt_python_version}" -c "import sys; print(sys.version_info[0])")" python_minor="$(python"${qbt_python_version}" -c "import sys; print(sys.version_info[1])")" - python_short_version="${python_major}.${python_minor}" - printf '%b\n' "using gcc : : : ${qbt_optimize/*/${qbt_optimize} }-std=${qbt_cxx_standard} ${qbt_optimize/*/${qbt_optimize} }-std=${qbt_cxx_standard} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" - # printf the build directory. printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Install Prefix${color_end} : ${color_cyan_light}${qbt_install_dir_short}${color_end}" # Some basic help - printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Script help${color_end} : ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-h${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Script help${color_end} : ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-h${color_end}" + else + qbt_modules_install_processed=("${qbt_modules[@]}") fi } ####################################################################################################################################################### @@ -1020,16 +1132,16 @@ _apply_patches() { fi if [[ "${app_name}" == "bootstrap" ]]; then - for module_patch in "${qbt_modules[@]}"; do + for module_patch in "${qbt_modules_install_processed[@]}"; do [[ -n "${app_version["${module_patch}"]}" ]] && mkdir -p "${qbt_install_dir}/patches/${module_patch}/${app_version["${module_patch}"]}/source" - done - unset module_patch + done && unset module_patch + printf '\n%b\n\n' " ${unicode_yellow_circle} Using the defaults, these directories have been created:${color_end}" - for patch_info in "${qbt_modules[@]}"; do + for patch_info in "${qbt_modules_install_processed[@]}"; do [[ -n "${app_version["${patch_info}"]}" ]] && printf '%b\n' " ${color_cyan_light} ${qbt_install_dir_short}/patches/${patch_info}/${app_version["${patch_info}"]}${color_end}" - done - unset patch_info + done && unset patch_info + printf '\n%b\n' " ${unicode_cyan_circle} If a patch file, named ${color_cyan_light}patch${color_end} is found in these directories it will be applied to the relevant module with a matching tag." else patch_dir="${qbt_install_dir}/patches/${app_name}/${app_version[${app_name}]}" @@ -1274,25 +1386,22 @@ _download_file() { ####################################################################################################################################################### _fix_static_links() { log_name="${app_name}" - mapfile -t library_list < <(find "${lib_dir}" -maxdepth 1 -exec bash -c 'basename "$0" ".${0##*.}"' {} \; | sort | uniq -d) + mapfile -t library_list < <(find "${lib_dir}" -maxdepth 1 -type f -name '*.a' -exec basename {} \;) for file in "${library_list[@]}"; do - if [[ "$(readlink "${lib_dir}/${file}.so")" != "${file}.a" ]]; then - ln -fsn "${file}.a" "${lib_dir}/${file}.so" - printf '%b\n' "${lib_dir}${file}.so changed to point to ${file}.a" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null - fi + ln -fsn "${file}" "${lib_dir}/${file%\.a}.so" + printf '%b\n' "${lib_dir}/${file%\.a}.so changed to point to ${file}" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null done return } + _fix_multiarch_static_links() { if [[ -d "${qbt_install_dir}/${qbt_cross_host}" ]]; then log_name="${app_name}" multiarch_lib_dir="${qbt_install_dir}/${qbt_cross_host}/lib" - mapfile -t library_list < <(find "${multiarch_lib_dir}" -maxdepth 1 -exec bash -c 'basename "$0" ".${0##*.}"' {} \; | sort | uniq -d) + mapfile -t library_list < <(find "${multiarch_lib_dir}" -maxdepth 1 -type f -name '*.a' -exec basename {} \;) for file in "${library_list[@]}"; do - if [[ "$(readlink "${multiarch_lib_dir}/${file}.so")" != "${file}.a" ]]; then - ln -fsn "${file}.a" "${multiarch_lib_dir}/${file}.so" - printf '%b\n' "${multiarch_lib_dir}${file}.so changed to point to ${file}.a" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null - fi + ln -fsn "${file}" "${multiarch_lib_dir}/${file%\.a}.so" + printf '%b\n' "${multiarch_lib_dir}/${file%\.a}.so changed to point to ${file}" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null done return fi @@ -1630,12 +1739,24 @@ _multi_arch() { if [[ "${1}" == 'bootstrap' || "${qbt_cache_dir_options}" == "bs" || ! -f "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" ]]; then printf '\n%b\n' " ${unicode_blue_light_circle} Downloading ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}https://github.com/userdocs/qbt-musl-cross-make/releases/latest/download/${qbt_cross_host}.tar.xz${color_end}" _curl --create-dirs "https://github.com/userdocs/qbt-musl-cross-make/releases/latest/download/${qbt_cross_host}.tar.xz" -o "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" + fi + + if [[ -f "${qbt_install_dir}/.active-toolchain-info" ]]; then + if [[ $(cat "${qbt_install_dir}/.active-toolchain-info") == "${qbt_cross_host}.tar.gz" ]]; then + if "${qbt_install_dir}/bin/${qbt_cross_host}-gcc" -v &> /dev/null; then + skip_toolchain_extract="yes" + fi + fi + fi + + if [[ "${skip_toolchain_extract}" == "yes" ]]; then + printf '\n%b\n' " ${unicode_blue_light_circle} Extracted ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.xz${color_end}" else printf '\n%b\n' " ${unicode_blue_light_circle} Extracting ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.xz${color_end}" + tar xf "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" --strip-components=1 -C "${qbt_install_dir}" + printf '%s\n' "${qbt_cross_host}.tar.gz" > "${qbt_install_dir}/.active-toolchain-info" fi - tar xf "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" --strip-components=1 -C "${qbt_install_dir}" - _fix_multiarch_static_links "${qbt_cross_host}" fi @@ -1650,7 +1771,6 @@ _multi_arch() { multi_double_conversion=("-D CMAKE_CXX_COMPILER=${qbt_cross_host}-g++") # ${multi_double_conversion[@]} multi_qbittorrent=("-D CMAKE_CXX_COMPILER=${qbt_cross_host}-g++") # ${multi_qbittorrent[@]} else - printf '%b\n' "using gcc : ${qbt_cross_boost#gcc-} : ${qbt_cross_host}-g++ : ${qbt_optimize/*/${qbt_optimize} }-std=${qbt_cxx_standard} ${qbt_optimize/*/${qbt_optimize} }-std=${qbt_cxx_standard} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" multi_libtorrent=("toolset=${qbt_cross_boost:-gcc}") # ${multi_libtorrent[@]} multi_qbittorrent=("--host=${qbt_cross_host}") # ${multi_qbittorrent[@]} fi @@ -1670,7 +1790,7 @@ _multi_arch() { _release_info() { _error_tag - printf '\n%b\n' " ${unicode_green_circle} ${color_yellow_light}Release boot-strapped${color_end}" + printf '\n%b\n' " ${unicode_green_circle} ${color_yellow_light}Release bootstrapped${color_end}" release_info_dir="${qbt_install_dir}/release_info" @@ -1771,7 +1891,7 @@ while (("${#}")); do exit 1 fi ;; - -bs-c | --boot-strap-cmake) + -bs-c | --bootstrap-cmake) qbt_build_tool="cmake" params1+=("-bs-c") shift @@ -1804,7 +1924,9 @@ while (("${#}")); do ;; -i | --icu) qbt_skip_icu="no" - [[ "${qbt_skip_icu}" == "no" ]] && delete=("${delete[@]/icu/}") + if [[ "${qbt_skip_icu}" == "no" ]]; then + delete=("${delete[@]/icu/}") + fi shift ;; -ma | --multi-arch) @@ -1826,21 +1948,30 @@ while (("${#}")); do qbt_curl_proxy=("--proxy-insecure" "-x" "${2}") shift 2 ;; - -o | --optimize) - if [[ -z ${qbt_cross_name} ]]; then - qbt_optimize="-march=native" - shift + -o | --optimise) + if [[ -z "${qbt_cross_name}" ]] || [[ "${qbt_cross_name}" == "default" ]]; then + qbt_optimise="yes" + shift 1 else printf '\n%b\n\n' " ${unicode_red_light_circle} You cannot use the ${color_blue_light}-o${color_end} flag with cross compilation" exit 1 fi ;; + -q | --qmake) + qbt_build_tool="--qmake" + shift + ;; -s | --strip) qbt_optimise_strip="yes" shift ;; + -bs-e | --bootstrap-env) + printf '\n%b\n\n' " ${unicode_green_light_circle} A template .qbt_env has been created${color_end}" + _print_env | sed -e '1,/qbt/{ /qbt/!d }' -e 's/\x1B\[93m//g' -e 's/\x1B\[92m//g' -e 's/\x1B\[0m//g' -e 's/^[[:space:]]*//' -e '/^$/d' > .qbt_env + exit + ;; -si | --static-ish) - if [[ -z ${qbt_cross_name} ]]; then + if [[ -z "${qbt_cross_name}" ]] || [[ "${qbt_cross_name}" == "default" ]]; then qbt_static_ish="yes" shift else @@ -1890,19 +2021,19 @@ _script_version # see functions ####################################################################################################################################################### while (("${#}")); do case "${1}" in - -bs-p | --boot-strap-patches) + -bs-p | --bootstrap-patches) _apply_patches bootstrap shift ;; - -bs-c | --boot-strap-cmake) + -bs-c | --bootstrap-cmake) _cmake shift ;; - -bs-r | --boot-strap-release) + -bs-r | --bootstrap-release) _release_info shift ;; - -bs-ma | --boot-strap-multi-arch) + -bs-ma | --bootstrap-multi-arch) if [[ "${multi_arch_options[${qbt_cross_name}]}" == "${qbt_cross_name}" ]]; then _multi_arch shift @@ -1915,7 +2046,7 @@ while (("${#}")); do exit 1 fi ;; - -bs-a | --boot-strap-all) + -bs-a | --bootstrap-all) _apply_patches bootstrap _release_info _cmake @@ -2060,20 +2191,22 @@ while (("${#}")); do printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--cmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-cmake${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-cd${color_end} ${text_dim}or${color_end} ${color_blue_light}--cache-directory${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-cd${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-cache-directory${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-d${color_end} ${text_dim}or${color_end} ${color_blue_light}--debug${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-d${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-debug${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--boot-strap-patches${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boot-strap-patches${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--boot-strap-cmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boot-strap-cmake${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--boot-strap-release${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boot-strap-release${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--boot-strap-multi-arch${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boot-strap-multi-arch${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--boot-strap-all${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boot-strap-all${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-e${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-env${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-e${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-env${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-patches${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-patches${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-cmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-cmake${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-release${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-release${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-multi-arch${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-multi-arch${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-all${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-all${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-i${color_end} ${text_dim}or${color_end} ${color_blue_light}--icu${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-i${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-icu${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-lm${color_end} ${text_dim}or${color_end} ${color_blue_light}--libtorrent-master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-lm${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-libtorrent-master${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-lt${color_end} ${text_dim}or${color_end} ${color_blue_light}--libtorrent-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-lt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-libtorrent-tag${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-m${color_end} ${text_dim}or${color_end} ${color_blue_light}--master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-m${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-master${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--multi-arch${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-multi-arch${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-n${color_end} ${text_dim}or${color_end} ${color_blue_light}--no-delete${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-n${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-no-delete${color_end}" - printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--optimize${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-optimize${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--optimise${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-optimise${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--proxy${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-proxy${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-pr${color_end} ${text_dim}or${color_end} ${color_blue_light}--patch-repo${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-pr${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-patch-repo${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-q${color_end} ${text_dim}or${color_end} ${color_blue_light}--qmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-q${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qmkae${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qm${color_end} ${text_dim}or${color_end} ${color_blue_light}--qbittorrent-master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qm${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qbittorrent-master${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qt${color_end} ${text_dim}or${color_end} ${color_blue_light}--qbittorrent-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qbittorrent-tag${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qtt${color_end} ${text_dim}or${color_end} ${color_blue_light}--qt-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qtt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qtt-tag${color_end}" @@ -2082,7 +2215,7 @@ while (("${#}")); do printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-s${color_end} ${text_dim}or${color_end} ${color_blue_light}--strip${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-s${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-strip${color_end}" printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-wf${color_end} ${text_dim}or${color_end} ${color_blue_light}--workflow${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-wf${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-workflow${color_end}" printf '\n%b\n' " ${text_bold}${text_underlined}Module specific help - flags are used with the modules listed here.${color_end}" - printf '\n%b\n' " ${color_green}Use:${color_end} ${color_magenta_light}all${color_end} ${text_dim}or${color_end} ${color_magenta_light}module-name${color_end} ${color_green}Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_magenta_light}all${color_end} ${color_blue_light}-i${color_end}" + printf '\n%b\n' " ${color_green}Use:${color_end} ${color_magenta_light}all${color_end} ${text_dim}or${color_end} ${color_magenta_light}module-name${color_end} ${color_green}Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_magenta_light}all${color_end} ${color_blue_light}-i${color_end}" printf '\n%b\n' " ${text_dim}${color_magenta_light}all${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_yellow_light}optional${color_end} ${text_dim}Recommended method to install all modules${color_end}" printf '%b\n' " ${text_dim}${color_magenta_light}install${color_end} ${text_dim}------------${color_end} ${text_dim}${color_yellow_light}optional${color_end} ${text_dim}Install the ${text_dim}${color_cyan_light}${qbt_install_dir_short}/completed/qbittorrent-nox${color_end} ${text_dim}binary${color_end}" [[ "${os_id}" =~ ^(debian|ubuntu)$ ]] && printf '%b\n' " ${text_dim}${color_magenta_light}glibc${color_end} ${text_dim}--------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build libc locally to statically link nss${color_end}" @@ -2123,12 +2256,20 @@ while (("${#}")); do printf '\n%b\n' " Default build location: ${color_cyan}${qbt_install_dir_short}${color_end}" printf '\n%b\n' " ${color_blue_light}-b${color_end} or ${color_blue_light}--build-directory${color_end} to set the location of the build directory." printf '\n%b\n' " ${color_yellow}Paths are relative to the script location. I recommend that you use a full path.${color_end}" - printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${text_dim}${color_magenta_light}all${color_end} ${text_dim}- Will install all modules and build libtorrent to the default build location${color_end}" - printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${text_dim}${color_magenta_light}module${color_end} ${text_dim}- Will install a single module to the default build location${color_end}" - printf '\n%b\n\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${text_dim}${color_magenta_light}module${color_end} ${color_blue_light}-b${color_end} ${text_dim}${color_cyan_light}\"\$HOME/build\"${color_end} ${text_dim}- will specify a custom build directory and install a specific module use to that custom location${color_end}" + printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}all${color_end} ${text_dim}- Will install all modules and build libtorrent to the default build location${color_end}" + printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}module${color_end} ${text_dim}- Will install a single module to the default build location${color_end}" + printf '\n%b\n\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}module${color_end} ${color_blue_light}-b${color_end} ${text_dim}${color_cyan_light}\"\$HOME/build\"${color_end} ${text_dim}- will specify a custom build directory and install a specific module use to that custom location${color_end}" exit ;; - -h-bs-p | --help-boot-strap-patches) + -h-bs-e | --help-bootstrap-env) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Create the template env file ${color_cyan}.qbt_env${color_end}" + printf '\n%b\n' " Notes:" + printf '\n%b\n' " ${unicode_yellow_circle} If you use ${color_blue_light}-bs-e${color_end} it will create a default env file with empty vars and exit" + printf '\n%b\n\n' " ${unicode_yellow_circle} Order of priotiry: script flags > env file > env vars" + exit + ;; + -h-bs-p | --help-bootstrap-patches) _apply_patches bootstrap-help printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " Creates dirs in this structure: ${color_cyan}${qbt_install_dir_short}/patches/app_name/tag/patch${color_end}" @@ -2137,45 +2278,45 @@ while (("${#}")); do printf '\n%b\n\n' " ${color_cyan}${qbt_install_dir_short}/patches/qbittorrent/${app_version[qbittorrent]}/patch${color_end}" exit ;; - -h-bs-c | --help-boot-strap-cmake) + -h-bs-c | --help-bootstrap-cmake) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " This bootstrap will install cmake and ninja build to the build directory" - printf '\n%b\n\n'"${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs-c${color_end}" + printf '\n%b\n\n'"${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-c${color_end}" exit ;; - -h-bs-r | --help-boot-strap-release) + -h-bs-r | --help-bootstrap-release) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' "${color_red_light} Github action specific. You probably dont need it${color_end}" printf '\n%b\n' " This switch creates some github release template files in this directory" printf '\n%b\n' " ${qbt_install_dir_short}/release_info" - printf '\n%b\n\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs-r${color_end}" + printf '\n%b\n\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-r${color_end}" exit ;; - -h-bs-ma | --help-boot-strap-multi-arch) + -h-bs-ma | --help-bootstrap-multi-arch) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action and Alpine specific. You probably dont need it${color_end}" printf '\n%b\n' " This switch bootstraps the musl cross build files needed for any provided and supported architecture" printf '\n%b\n' " ${unicode_yellow_circle} armhf" printf '%b\n' " ${unicode_yellow_circle} armv7" printf '%b\n' " ${unicode_yellow_circle} aarch64" - printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" printf '\n%b\n\n' " ${unicode_yellow_circle} You can also set it as a variable to trigger cross building: ${color_blue_light}export qbt_cross_name=${qbt_cross_name:-aarch64}${color_end}" exit ;; - -h-bs-a | --help-boot-strap-all) + -h-bs-a | --help-bootstrap-all) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action specific and Alpine only. You probably dont need it${color_end}" printf '\n%b\n' " Performs all bootstrapping options" - printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs-a${color_end}" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-a${color_end}" printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Patches${color_end}" printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Release info${color_end}" printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Cmake and ninja build${color_end} if the ${color_blue_light}-c${color_end} flag is passed" printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Multi arch${color_end} if the ${color_blue_light}-ma${color_end} flag is passed" - printf '\n%b\n' " Equivalent of doing: ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs -bs-r${color_end}" - printf '\n%b\n\n' " And with ${color_blue_light}-c${color_end} and ${color_blue_light}-ma${color_end} : ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs -bs-c -bs-ma -bs-r ${color_end}" + printf '\n%b\n' " Equivalent of doing: ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs -bs-r${color_end}" + printf '\n%b\n\n' " And with ${color_blue_light}-c${color_end} and ${color_blue_light}-ma${color_end} : ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs -bs-c -bs-ma -bs-r ${color_end}" exit ;; - -h-bt | --help-boost-version) + -h-bt | --help-boost-tag) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " This will let you set a specific version of boost to use with older build combos" printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-bt boost-1.81.0${color_end}" @@ -2187,7 +2328,7 @@ while (("${#}")); do printf '\n%b\n' " This flag can change the build process in a few ways." printf '\n%b\n' " ${unicode_yellow_circle} Use cmake to build libtorrent." printf '%b\n' " ${unicode_yellow_circle} Use cmake to build qbittorrent." - printf '\n%b\n\n' " ${unicode_yellow_circle} You can use this flag with ICU and qtbase will use ICU instead of iconv." + printf '\n%b\n\n' " ${unicode_yellow_circle} This is the default setting for the script." exit ;; -h-cd | --help-cache-directory) @@ -2229,14 +2370,14 @@ while (("${#}")); do printf '\n%b\n\n' " ${color_blue_light}-lm${color_end}" exit ;; - -h-ma | --help-multi-arch) + -h-ma | --help-multiarch) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action and Alpine specific. You probably dont need it${color_end}" printf '\n%b\n' " This switch will make the script use the cross build configuration for these supported architectures" printf '\n%b\n' " ${unicode_yellow_circle} armhf" printf '%b\n' " ${unicode_yellow_circle} armv7" printf '%b\n' " ${unicode_yellow_circle} aarch64" - printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/$(basename -- "$0")${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" printf '\n%b\n\n' " ${unicode_yellow_circle} You can also set it as a variable to trigger cross building: ${color_blue_light}export qbt_cross_name=${qbt_cross_name:-aarch64}${color_end}" exit ;; @@ -2253,18 +2394,19 @@ while (("${#}")); do printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " Use a provided libtorrent tag when cloning from github." printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" - printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end}${color_blue_light} -lt ${color_cyan_light}${github_tag[libtorrent]}${color_end} ${color_blue_light}-h-lt${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -lt ${color_cyan_light}${github_tag[libtorrent]}${color_end} ${color_blue_light}-h-lt${color_end}" printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" printf '\n%b\n' " ${color_blue_light}-lt${color_end} ${color_cyan_light}${github_tag[libtorrent]}${color_end}" fi printf '\n' exit ;; - -h-o | --help-optimize) + -h-o | --help-optimise) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Warning:${color_end} using this flag will mean your static build is limited a CPU that matches the host spec" - printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-o${color_end}" - printf '\n%b\n\n' " Additonal flags used: ${color_cyan_light}-march=native${color_end}" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-o \"-my -custom --flags\"${color_end}" + printf '\n%b\n' " Notes:" + printf '\n%b\n\n' " ${color_cyan_light}-march=native${color_end} is always passed if this flag is used unless crosscompiling" exit ;; -h-p | --help-proxy) @@ -2291,6 +2433,14 @@ while (("${#}")); do printf '\n%b\n\n' " ${unicode_blue_light_circle} ${color_green}Usage example:${color_end} ${color_blue_light}-pr usnerame/repo${color_end}" exit ;; + -h-q | --help-qmake) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This flag can change the build process in a few ways." + printf '\n%b\n' " ${unicode_yellow_circle} Use configure scripts to build apps" + printf '%b\n' " ${unicode_yellow_circle} Use qmake to build qtbase, qttools and qbittorrent." + printf '\n%b\n\n' " ${unicode_yellow_circle} You can use this flag to build older build combinations that don't use cmake" + exit + ;; -h-qm | --help-qbittorrent-master) printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " Always use the master branch for ${color_green}qBittorrent${color_end}" @@ -2304,7 +2454,7 @@ while (("${#}")); do printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " Use a provided qBittorrent tag when cloning from github." printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" - printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qbittorrent]}${color_end} ${color_blue_light}-h-qt${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qbittorrent]}${color_end} ${color_blue_light}-h-qt${color_end}" printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" printf '\n%b\n' " ${color_blue_light}-qt${color_end} ${color_cyan_light}${github_tag[qbittorrent]}${color_end}" fi @@ -2316,7 +2466,7 @@ while (("${#}")); do printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" printf '\n%b\n' " Use a provided Qt tag when cloning from github." printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" - printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/$(basename -- "$0")${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qtbase]}${color_end} ${color_blue_light}-h-qt${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qtbase]}${color_end} ${color_blue_light}-h-qt${color_end}" printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" printf '\n%b\n' " ${color_blue_light}-qt${color_end} ${color_cyan_light}${github_tag[qtbase]}${color_end}" fi @@ -2388,7 +2538,7 @@ _installation_modules "${@}" # requires shifted params from options block 2 if [[ "${qbt_modules_test}" == 'fail' || "${#}" -eq '0' ]]; then printf '\n%b\n' " ${text_blink}${unicode_red_circle}${color_end}${text_bold} One or more of the provided modules are not supported${color_end}" printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Below is a list of supported modules${color_end}" - printf '\n%b\n' " ${unicode_magenta_circle}${color_magenta_light} ${qbt_modules[*]}${color_end}" + printf '\n%b\n' " ${unicode_magenta_circle}${color_magenta_light} ${qbt_modules_install_processed[*]}${color_end}" _print_env exit fi @@ -2404,8 +2554,8 @@ _glibc_bootstrap() { } # shellcheck disable=SC2317 _glibc() { - CFLAGS="-O2 -U_FORTIFY_SOURCE" "${qbt_dl_folder_path}/configure" "${multi_glibc[@]}" --prefix="${qbt_install_dir}" --enable-static-nss --disable-nscd --srcdir="${qbt_dl_folder_path}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" - CFLAGS="-O2 -U_FORTIFY_SOURCE" make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/$app_name.log" + "${qbt_dl_folder_path}/configure" "${multi_glibc[@]}" --prefix="${qbt_install_dir}" --enable-static-nss --disable-nscd --srcdir="${qbt_dl_folder_path}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/$app_name.log" _post_command build make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2434,7 +2584,7 @@ _zlib() { # force set some ARCH when using zlib-ng, configure and musl-cross since it does not detect the arch correctly on Alpine. [[ "${qbt_cross_target}" =~ ^(alpine)$ ]] && sed "s| CFLAGS=\"-O2 \${CFLAGS}\"| ARCH=${qbt_zlib_arch:-$(apk --print-arch)}\n CFLAGS=\"-O2 \${CFLAGS}\"|g" -i "${qbt_dl_folder_path}/configure" ./configure --prefix="${qbt_install_dir}" --static --zlib-compat |& _tee "${qbt_install_dir}/logs/${app_name}.log" - make -j"$(nproc)" CXXFLAGS="${CXXFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" _post_command build make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" fi @@ -2447,7 +2597,7 @@ _iconv() { ./autogen.sh fi - ./configure "${multi_iconv[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static CXXFLAGS="${CXXFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + ./configure "${multi_iconv[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static |& _tee "${qbt_install_dir}/logs/${app_name}.log" make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" } @@ -2471,7 +2621,7 @@ _icu() { _pushd "${qbt_install_dir}/${app_name}${sub_dir}" fi - ./configure "${multi_icu[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static --disable-samples --disable-tests --with-data-packaging=static CXXFLAGS="${CXXFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + ./configure "${multi_icu[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static --disable-samples --disable-tests --with-data-packaging=static |& _tee "${qbt_install_dir}/logs/${app_name}.log" make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" _post_command build make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2481,7 +2631,7 @@ _icu() { ####################################################################################################################################################### # shellcheck disable=SC2317 _openssl() { - "${multi_openssl[@]}" --prefix="${qbt_install_dir}" --libdir="${lib_dir##*/}" --openssldir="/etc/ssl" threads no-shared no-dso no-comp no-docs CXXFLAGS="${CXXFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + "${multi_openssl[@]}" --prefix="${qbt_install_dir}" --libdir="${lib_dir##*/}" --openssldir="/etc/ssl" threads no-shared no-dso no-comp no-docs |& _tee "${qbt_install_dir}/logs/${app_name}.log" make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" _post_command build make install_sw |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2529,7 +2679,6 @@ _libtorrent() { -D CMAKE_CXX_STANDARD="${qbt_standard}" \ -D CMAKE_PREFIX_PATH="${qbt_install_dir};${qbt_install_dir}/boost" \ -D Boost_NO_BOOST_CMAKE=TRUE \ - -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ -D BUILD_SHARED_LIBS=OFF \ -D Iconv_LIBRARY="${lib_dir}/libiconv.a" \ -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2557,7 +2706,7 @@ _libtorrent() { lt_cmake_flags="-DTORRENT_USE_LIBCRYPTO -DTORRENT_USE_OPENSSL -DTORRENT_USE_I2P=1 -DBOOST_ALL_NO_LIB -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_HAS_STD_CHRONO -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DTORRENT_USE_ICONV=1" fi - "${qbt_install_dir}/boost/b2" "${multi_libtorrent[@]}" -j"$(nproc)" "${lt_version_options[@]}" address-model="${bitness:-$(getconf LONG_BIT)}" "${qbt_libtorrent_debug}" optimization=speed cxxstd="${qbt_standard}" dht=on encryption=on crypto=openssl i2p=on extensions=on variant=release threading=multi link=static boost-link=static cxxflags="${CXXFLAGS}" cflags="${CPPFLAGS}" linkflags="${LDFLAGS}" install --prefix="${qbt_install_dir}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + "${qbt_install_dir}/boost/b2" "${multi_libtorrent[@]}" -j"$(nproc)" "${lt_version_options[@]}" address-model="${bitness:-$(getconf LONG_BIT)}" "${qbt_libtorrent_debug}" optimization=speed cxxstd="${qbt_standard}" dht=on encryption=on crypto=openssl i2p=on extensions=on variant=release threading=multi link=static boost-link=static install --prefix="${qbt_install_dir}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" _post_command build libtorrent_strings_version="$(strings -d "${lib_dir}/${libtorrent_library_filename}" | grep -Eom1 "^libtorrent/[0-9]\.(.*)")" # ${libtorrent_strings_version#*/} cat > "${PKG_CONFIG_PATH}/libtorrent-rasterbar.pc" <<- LIBTORRENT_PKG_CONFIG @@ -2584,7 +2733,6 @@ _double_conversion() { "${multi_double_conversion[@]}" \ -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ - -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ -D CMAKE_INSTALL_LIBDIR=lib \ -D BUILD_SHARED_LIBS=OFF \ -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2648,7 +2796,6 @@ _qtbase() { -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF -D QT_BUILD_TESTS_BY_DEFAULT=OFF \ -D CMAKE_CXX_STANDARD="${qbt_standard}" \ -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ - -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ -D BUILD_SHARED_LIBS=OFF \ -D CMAKE_SKIP_RPATH=on -D CMAKE_SKIP_INSTALL_RPATH=on \ -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2691,7 +2838,6 @@ _qttools() { -D CMAKE_BUILD_TYPE="release" \ -D CMAKE_CXX_STANDARD="${qbt_standard}" \ -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ - -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ -D BUILD_SHARED_LIBS=OFF \ -D CMAKE_SKIP_RPATH=on -D CMAKE_SKIP_INSTALL_RPATH=on \ -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2727,10 +2873,10 @@ _qbittorrent() { -D CMAKE_CXX_STANDARD="${qbt_standard}" \ -D CMAKE_PREFIX_PATH="${qbt_install_dir};${qbt_install_dir}/boost" \ -D Boost_NO_BOOST_CMAKE=TRUE \ - -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ -D Iconv_LIBRARY="${lib_dir}/libiconv.a" \ -D GUI=OFF \ -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" _post_command build cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" @@ -2743,7 +2889,6 @@ _qbittorrent() { "${multi_qbittorrent[@]}" \ "${qbt_qbittorrent_debug}" \ --disable-gui \ - CXXFLAGS="${CXXFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" \ --with-boost="${qbt_install_dir}/boost" --with-boost-libdir="${lib_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" _post_command build @@ -2755,7 +2900,7 @@ _qbittorrent() { ####################################################################################################################################################### # A module installer loop. This will loop through the activated modules and install them via their corresponding functions ####################################################################################################################################################### -for app_name in "${qbt_modules[@]}"; do +for app_name in "${qbt_modules_install_processed[@]}"; do if [[ "${qbt_cache_dir_options}" != "bs" ]] && [[ ! -d "${qbt_install_dir}/boost" && "${app_name}" =~ (libtorrent|qbittorrent) ]]; then printf '\n%b\n\n' " ${unicode_red_circle}${color_red_light} Warning${color_end} This module depends on the boost module. Use them together: ${color_magenta_light}boost ${app_name}${color_end}" else @@ -2767,15 +2912,11 @@ for app_name in "${qbt_modules[@]}"; do "_${app_name}_bootstrap" fi ######################################################## - if [[ "${app_name}" =~ (glibc|iconv|icu) ]]; then - _custom_flags_reset - else - _custom_flags_set - fi + _custom_flags ############################################################ _download ############################################################ - [[ "${qbt_cache_dir_options}" == "bs" && "${skipped_false}" -eq "${#qbt_modules[@]}" ]] && printf '\n' + [[ "${qbt_cache_dir_options}" == "bs" && "${skipped_false}" -eq "${#qbt_modules_install_processed[@]}" ]] && printf '\n' [[ "${qbt_cache_dir_options}" == "bs" ]] && continue ############################################################ _apply_patches @@ -2786,16 +2927,20 @@ for app_name in "${qbt_modules[@]}"; do [[ "${app_name}" != "boost" ]] && _delete_function fi - if [[ "${#qbt_modules_skipped[@]}" -gt '0' ]]; then + if [[ "${#qbt_modules_selected_compare[@]}" -gt '0' ]]; then printf '\n' - printf '%b' " ${unicode_magenta_light_circle} Activated:" - for skipped_true in "${qbt_modules_skipped[@]}"; do - printf '%b' " ${color_cyan_light}${skipped_true}${color_end}" + printf '%b' " ${unicode_magenta_light_circle} ${color_cyan_light}Activated modules:${color_end}" + for activated_modules in "${!qbt_modules_selected_compare[@]}"; do + if [[ "${qbt_activated_modules[${qbt_modules_selected_compare[$activated_modules]}]}" == "yes" ]]; then + printf '%b' " ${color_magenta_light}${qbt_modules_selected_compare[$activated_modules]}${color_end}" + else + printf '%b' " ${text_dim}${qbt_modules_selected_compare[$activated_modules]}${color_end}" + fi done printf '\n' fi - [[ "${skipped_false}" -eq "${#qbt_modules[@]}" ]] && printf '\n' + [[ "${skipped_false}" -eq "${#qbt_modules_install_processed[@]}" ]] && printf '\n' fi _pushd "${qbt_working_dir}" done diff --git a/qbt-nox-static.bash b/qbt-nox-static.bash new file mode 100644 index 00000000..45027355 --- /dev/null +++ b/qbt-nox-static.bash @@ -0,0 +1,3174 @@ +#!/usr/bin/env bash +# +# cSpell:includeRegExp #.* +# +# Copyright 2020 by userdocs and contributors +# +# SPDX-License-Identifier: Apache-2.0 +# +# @author - userdocs +# +# @contributors IceCodeNew Stanislas boredazfcuk AdvenT. guillaumedsde inochisa angristan xNihil0 Jercik +# +# https://github.com/userdocs/qbittorrent-nox-static/graphs/contributors +# +# @credits - https://gist.github.com/notsure2 https://github.com/c0re100/qBittorrent-Enhanced-Edition +# +# Script Formatting - https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format +# +################################################################################################################################################# +# Script version = Major minor patch +################################################################################################################################################# +script_version="2.1.0" +################################################################################################################################################# +# Set some script features - https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html +################################################################################################################################################# +set -a +################################################################################################################################################# +# Unset some variables to set defaults. +################################################################################################################################################# +unset qbt_skip_delete qbt_git_proxy qbt_curl_proxy qbt_install_dir qbt_working_dir qbt_modules_test qbt_python_version +unset qbt_cflags qbt_cxxflags_consumed qbt_cppflags_consumed qbt_ldflags_consumed +################################################################################################################################################# +# Declare our associative arrays +################################################################################################################################################# +# Associative arrays +declare -gA multi_arch_options qbt_test_tools qbt_core_deps qbt_deps_delete +declare -gA qbt_modules_delete skip_modules qbt_modules_install +declare -gA github_url github_tag app_version source_archive_url qbt_workflow_archive_url +declare -gA qbt_workflow_override source_default qbt_activated_modules +# Indexed arrays +declare -ga qbt_modules_order qbt_modules_install_processed qbt_modules_selected_compare +################################################################################################################################################# +# Color me up Scotty - define some color values to use as variables in the scripts. +################################################################################################################################################# +color_red="\e[31m" color_red_light="\e[91m" +color_green="\e[32m" color_green_light="\e[92m" +color_yellow="\e[33m" color_yellow_light="\e[93m" +color_blue="\e[34m" color_blue_light="\e[94m" +color_magenta="\e[35m" color_magenta_light="\e[95m" +color_cyan="\e[36m" color_cyan_light="\e[96m" + +text_bold="\e[1m" text_dim="\e[2m" text_underlined="\e[4m" text_blink="\e[5m" text_newline="\n" + +unicode_red_circle="\e[31m\U2B24\e[0m" unicode_red_light_circle="\e[91m\U2B24\e[0m" +unicode_green_circle="\e[32m\U2B24\e[0m" unicode_green_light_circle="\e[92m\U2B24\e[0m" +unicode_yellow_circle="\e[33m\U2B24\e[0m" unicode_yellow_light_circle="\e[93m\U2B24\e[0m" +unicode_blue_circle="\e[34m\U2B24\e[0m" unicode_blue_light_circle="\e[94m\U2B24\e[0m" +unicode_magenta_circle="\e[35m\U2B24\e[0m" unicode_magenta_light_circle="\e[95m\U2B24\e[0m" +unicode_cyan_circle="\e[36m\U2B24\e[0m" unicode_cyan_light_circle="\e[96m\U2B24\e[0m" +unicode_grey_circle="\e[37m\U2B24\e[0m" unicode_grey_light_circle="\e[97m\U2B24\e[0m" + +color_end="\e[0m" +################################################################################################################################################# +# Function to test color and show outputs in the terminal +################################################################################################################################################# +_color_test() { + # Check if the terminal supports color output + if [[ -t 1 ]]; then + colour_array=("${color_red}red" "${color_red_light}light red" "${color_green}green" "${color_green_light}light green" "${color_yellow}yellow" "${color_yellow_light}light yellow" "${color_blue}blue" "${color_blue_light}ligh blue" "${color_magenta}magenta" "${color_magenta_light}light magenta" "${color_cyan}cyan" "${color_cyan_light}light cyan") + formatting_array=("${text_bold}Text Bold" "${text_dim}Text Dim" "${text_underlined}Text Underline" "${text_newline}New line" "${text_blink}Text Blink") + unicode_array=("${unicode_red_circle}" "${unicode_red_light_circle}" "${unicode_green_circle}" "${unicode_green_light_circle}" "${unicode_yellow_circle}" "${unicode_yellow_light_circle}" "${unicode_blue_circle}" "${unicode_blue_light_circle}" "${unicode_magenta_circle}" "${unicode_magenta_light_circle}" "${unicode_cyan_circle}" "${unicode_cyan_light_circle}" "${unicode_grey_circle}" "${unicode_grey_light_circle}") + printf '\n' + for colours in "${colour_array[@]}" "${formatting_array[@]}" "${unicode_array[@]}"; do + printf '%b\n' "${colours}${color_end}" + done + printf '\n' + exit + else + echo "The terminal does not support color output." + exit 1 + fi +} +[[ "${1}" == "ctest" ]] && _color_test # ./scriptname.sh ctest +####################################################################################################################################################### +# Get script basename and full path +####################################################################################################################################################### +script_full_path=$(readlink -f "${BASH_SOURCE[0]}") +script_basename="${script_full_path##*/}" +####################################################################################################################################################### +# Function to source /etc/os-release and get info from it on demand. +####################################################################################################################################################### +get_os_info() { + # shellcheck source=/dev/null + if source /etc/os-release &> /dev/null; then + printf "%s" "${!1%_*}" # the expansion part is specific to the Alpine VERSION_ID format 1.2.3_alpha but won't break anything in Debian based format e.g. 12/24.04 + else + printf "%s" "unknown" # This will make the script exit on the version check and provide useful reason. + fi +} +####################################################################################################################################################### +# Checks to see if we are on a supported OS and release. +####################################################################################################################################################### +os_id="$(get_os_info ID)" # Get the ID for this this OS. +os_version_codename="$(get_os_info VERSION_CODENAME)" # Get the codename for this this OS. Note, Alpine does not have a unique codename. +os_version_id="$(get_os_info VERSION_ID)" # Get the version number for this codename, for example: 10, 20.04, 3.12.4 +[[ "$(wc -w <<< "${os_version_id//\./ }")" -eq "2" ]] && alpine_min_version="310" # Account for variation in the versioning 3.1 or 3.1.0 to make sure the check works correctly +[[ "${os_id}" =~ ^(alpine)$ ]] && os_version_codename="alpine" # If alpine, set the codename to alpine. We check for min v3.10 later with codenames. + +# Check against allowed codenames or if the codename is alpine version greater than 3.10 +if [[ ! "${os_version_codename}" =~ ^(alpine|bookworm|noble)$ ]] || [[ "${os_version_codename}" =~ ^(alpine)$ && "${os_version_id//\./}" -lt "${alpine_min_version:-3150}" ]]; then + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow} This is not a supported OS. There is no reason to continue.${color_end}" + printf '%b\n\n' " id: ${text_dim}${color_yellow_light}${os_id}${color_end} codename: ${text_dim}${color_yellow_light}${os_version_codename}${color_end} version: ${text_dim}${color_red_light}${os_version_id}${color_end}" + printf '%b\n\n' " ${unicode_yellow_circle} ${text_dim}These are the supported platforms${color_end}" + printf '%b\n' " ${color_magenta_light}Debian${color_end} - ${color_blue_light}bookworm${color_end}" + printf '%b\n' " ${color_magenta_light}Ubuntu${color_end} - ${color_blue_light}noble${color_end}" + printf '%b\n\n' " ${color_magenta_light}Alpine${color_end} - ${color_blue_light}3.15.0${color_end} ${text_dim}or greater${color_end}" + exit +fi +####################################################################################################################################################### +# Source env vars from a file if it exists but it will be overridden by switches and flags passed to the script +####################################################################################################################################################### +if [[ -f "${PWD}/.qbt_env" ]]; then + printf '\n%b\n' " ${unicode_magenta_circle} Sourcing .qbt_env file" + # shellcheck source=/dev/null + source "${PWD}/.qbt_env" +fi +####################################################################################################################################################### +# Multi arch stuff - Define all available multi arches we use from here https://github.com/userdocs/qbt-musl-cross-make#readme +####################################################################################################################################################### +multi_arch_options["default"]="skip" +multi_arch_options["armel"]="armel" +multi_arch_options["armhf"]="armhf" +multi_arch_options["armv7"]="armv7" +multi_arch_options["aarch64"]="aarch64" +multi_arch_options["x86_64"]="x86_64" +multi_arch_options["x86"]="x86" +multi_arch_options["s390x"]="s390x" +multi_arch_options["powerpc"]="powerpc" +multi_arch_options["ppc64el"]="ppc64el" +multi_arch_options["mips"]="mips" +multi_arch_options["mipsel"]="mipsel" +multi_arch_options["mips64"]="mips64" +multi_arch_options["mips64el"]="mips64el" +multi_arch_options["riscv64"]="riscv64" +####################################################################################################################################################### +# This function sets some default values we use but whose values can be overridden by certain flags or exported as variables before running the script +####################################################################################################################################################### +_set_default_values() { + # For debian based docker deploys to not get prompted to set the timezone. + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + export DEBIAN_FRONTEND="noninteractive" && TZ="Europe/London" + fi + + # The default build configuration is qmake + qt5, qbt_build_tool=cmake or -c will make qt6 and cmake default + qbt_build_tool="${qbt_build_tool:-cmake}" + + # Default to empty to use host native build tools. This way we can build on native arch on a supported OS and skip cross build toolchains + qbt_cross_name="${qbt_cross_name:-default}" + + # Default to host - we are not really using this for anything other than what it defaults to so no need to set it. + qbt_cross_target="${qbt_cross_target:-${os_id}}" + + # yes to create debug build to use with gdb - disables stripping - for some reason libtorrent b2 builds are 200MB or larger. qbt_build_debug=yes or -d + qbt_build_debug="${qbt_build_debug:-no}" + + # github actions workflows - use https://github.com/userdocs/qbt-workflow-files/releases/latest instead of direct downloads from various source locations. + qbt_workflow_files="${qbt_workflow_files:-no}" + + # github actions workflows - use the workflow files saved as artifacts instead of downloading from workflow files or host per matrix + qbt_workflow_artifacts="${qbt_workflow_artifacts:-no}" + + # Provide a git username and repo in this format - username/repo + # In this repo the structure needs to be like this /patches/libtorrent/1.2.11/patch and/or /patches/qbittorrent/4.3.1/patch + # your patch file will be automatically fetched and loaded for those matching tags. + qbt_patches_url="${qbt_patches_url:-userdocs/qbittorrent-nox-static}" + + # Default to this version of libtorrent is no tag or branch is specified. qbt_libtorrent_version=1.2 or -lt v1.2.18 + qbt_libtorrent_version="${qbt_libtorrent_version:-2.0}" + + # Use release Jamfile unless we need a specific fix from the relevant RC branch. + # Using this can also break builds when non backported changes are present which will require a custom jamfile + qbt_libtorrent_master_jamfile="${qbt_libtorrent_master_jamfile:-no}" + + # Strip symbols by default as we need full debug builds to be useful gdb to backtrace so stripping is a sensible default optimisation. + qbt_optimise_strip="${qbt_optimise_strip:-yes}" + + # Github actions specific - Build revisions - The workflow will set this dynamically so that the urls are not hardcoded to a single repo + qbt_revision_url="${qbt_revision_url:-userdocs/qbittorrent-nox-static}" + + # Provide a path to check for cached local git repos and use those instead. Priority over workflow files. + qbt_cache_dir="${qbt_cache_dir%/}" + + # Env setting for the icu tag + qbt_skip_icu="${qbt_skip_icu:-yes}" + + # Env setting for the boost tag + if [[ "${qbt_libtorrent_version}" == "1.2" || "${qbt_libtorrent_tag}" =~ ^(v1\.2\.|RC_1_2) ]]; then + qbt_boost_tag="${qbt_boost_tag:-boost-1.86.0}" + else + qbt_boost_tag="${qbt_boost_tag:-}" + fi + + # Env setting for the libtorrent tag + qbt_libtorrent_tag="${qbt_libtorrent_tag:-}" + + # Env setting for the Qt tag + qbt_qt_tag="${qbt_qt_tag:-}" + + # Env setting for the qbittorrent tag + qbt_qbittorrent_tag="${qbt_qbittorrent_tag:-}" + + # We are only using python3 but it's easier to just change this if we need to for some reason. + qbt_python_version="3" + + # provide gcc flags for the build - this is not used by default but can be set to provide custom flags for the build. + qbt_optimise="${qbt_optimise:-no}" + + # The default is 17 but can be manually defined via the env qbt_standard - this will be overridden by the _set_cxx_standard function in specific cases + qbt_standard="${qbt_standard:-20}" qbt_cxx_standard="c++${qbt_standard}" + + # Set the working dir to our current location and all things well be relative to this location. + qbt_working_dir="$(pwd)" + + # Used with printf. Use the qbt_working_dir variable but the ${HOME} path is replaced with a literal ~ + qbt_working_dir_short="${qbt_working_dir/${HOME}/\~}" + + qbt_build_dir="${qbt_build_dir:-qbt-build}" # Build directory + + # Install relative to the script location. + qbt_install_dir="${qbt_working_dir}/${qbt_build_dir}" + + # Used with printf. Use the qbt_install_dir variable but the ${HOME} path is replaced with a literal ~ + qbt_install_dir_short="${qbt_install_dir/${HOME}/\~}" + + # Get the local users $PATH before we isolate the script by setting HOME to the install dir in the _set_build_directory function. + qbt_local_paths="$PATH" + + # The Alpine repository we use for package sources + CDN_URL="http://dl-cdn.alpinelinux.org/alpine/edge/main" # for alpine + + # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug + if [[ "${qbt_build_debug}" = "yes" ]]; then + qbt_optimise_strip="no" + qbt_cmake_debug='ON' + qbt_libtorrent_debug='debug-symbols=on' + qbt_qbittorrent_debug='--enable-debug' + else + qbt_cmake_debug='OFF' + fi + + # staticish builds + if [[ "${qbt_static_ish:=no}" == "yes" ]]; then + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then qbt_modules_delete["glibc"]="true"; fi + if [[ "${qbt_cross_name}" != "default" ]]; then + printf '\n%b\n\n' " ${unicode_red_light_circle} You cannot use the ${color_blue_light}-si${color_end} flag with cross compilation${color_end}" + exit 1 + fi + fi + + # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug + case "${qbt_qt_version}" in + 5) + if [[ "${qbt_build_tool}" != 'cmake' ]]; then + qbt_build_tool="qmake" + qbt_use_qt6="OFF" + fi + ;;& + 6) + qbt_build_tool="cmake" + qbt_use_qt6="ON" + ;;& + "") + [[ "${qbt_build_tool}" == 'cmake' ]] && qbt_qt_version="6" || qbt_qt_version="5" + ;;& + *) + [[ ! "${qbt_qt_version}" =~ ^(5|6)$ ]] && qbt_workflow_files="no" + [[ "${qbt_build_tool}" == 'qmake' && "${qbt_qt_version}" =~ ^6 ]] && qbt_build_tool="cmake" + [[ "${qbt_build_tool}" == 'cmake' && "${qbt_qt_version}" =~ ^5 ]] && qbt_build_tool="cmake" qbt_qt_version="6" + [[ "${qbt_build_tool}" == 'cmake' && "${qbt_qt_version}" =~ ^6 ]] && qbt_use_qt6="ON" + ;; + esac + + # If we are cross building then bootstrap the cross build tools we ned for the target arch else set native arch and remove the debian cross build tools + if [[ "${multi_arch_options[${qbt_cross_name}]}" == "${qbt_cross_name}" ]]; then + _multi_arch info_bootstrap + else + cross_arch="$(uname -m)" + qbt_deps_delete["crossbuild-essential-${cross_arch}"]="true" + fi + + ####################################################################################################################################################### + # Create some associative arrays to use with checks to establish, modules, dependencies, privileges and required tools for the script to run. + ####################################################################################################################################################### + + # Define our list of available modules in a associative array for checks and a indexed array for order. + qbt_modules_install["all"]="true" && qbt_modules_order=("all") + qbt_modules_install["install"]="true" && qbt_modules_order+=("install") + qbt_modules_install["glibc"]="true" && qbt_modules_order+=("glibc") + qbt_modules_install["zlib"]="true" && qbt_modules_order+=("zlib") + qbt_modules_install["iconv"]="true" && qbt_modules_order+=("iconv") + qbt_modules_install["icu"]="true" && qbt_modules_order+=("icu") + qbt_modules_install["openssl"]="true" && qbt_modules_order+=("openssl") + qbt_modules_install["boost"]="true" && qbt_modules_order+=("boost") + qbt_modules_install["libtorrent"]="true" && qbt_modules_order+=("libtorrent") + qbt_modules_install["double_conversion"]="true" && qbt_modules_order+=("double_conversion") + qbt_modules_install["qtbase"]="true" && qbt_modules_order+=("qtbase") + qbt_modules_install["qttools"]="true" && qbt_modules_order+=("qttools") + qbt_modules_install["qbittorrent"]="true" && qbt_modules_order+=("qbittorrent") + + # Define our list privilege checks + qbt_privileges_required["root"]="false" + qbt_privileges_required["sudo"]="false" + + # Define our list of required test tools to performs basic script functions + qbt_test_tools["curl"]="false" + qbt_test_tools["bash"]="false" + qbt_test_tools["git"]="false" + + # Define our list of required dependencies per supported OS for the script to run + if [[ "${os_id}" =~ ^(alpine)$ ]]; then # Alpine specific dependencies + qbt_modules_delete["glibc"]="true" + + if [[ -z "${qbt_cache_dir}" ]]; then + qbt_deps_delete["coreutils"]="true" + qbt_deps_delete["gpg"]="true" + fi + + qbt_core_deps["autoconf"]="false" + qbt_core_deps["build-base"]="false" + qbt_core_deps["coreutils"]="false" + qbt_core_deps["cmake"]="false" + qbt_core_deps["gpg"]="false" + qbt_core_deps["linux-headers"]="false" + qbt_core_deps["pkgconf"]="false" + qbt_core_deps["py${qbt_python_version}-numpy"]="false" + qbt_core_deps["py${qbt_python_version}-numpy-dev"]="false" + qbt_core_deps["ttf-freefont"]="false" + fi + + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then # Debian specific dependencies + if [[ -z "${qbt_cache_dir}" ]]; then + qbt_deps_delete["autopoint"]="true" + qbt_deps_delete["gperf"]="true" + fi + + if [[ -z "${qbt_cache_dir}" ]]; then + qbt_deps_delete["autopoint"]="true" + qbt_deps_delete["gperf"]="true" + fi + + qbt_core_deps["autopoint"]="false" + qbt_core_deps["gperf"]="false" + qbt_core_deps["bison"]="false" + qbt_core_deps["build-essential"]="false" + qbt_core_deps["crossbuild-essential-${cross_arch}"]="false" + qbt_core_deps["gettext"]="false" + qbt_core_deps["gawk"]="false" + qbt_core_deps["openssl"]="false" + qbt_core_deps["pkg-config"]="false" + qbt_core_deps["python${qbt_python_version}-numpy"]="false" + qbt_core_deps["texinfo"]="false" + qbt_core_deps["unzip"]="false" + + fi + + # Deps with same package name across Alpine and Debian based systems + qbt_core_deps["perl"]="false" + qbt_core_deps["python${qbt_python_version}"]="false" + qbt_core_deps["python${qbt_python_version}-dev"]="false" + qbt_core_deps["curl"]="false" + qbt_core_deps["git"]="false" + qbt_core_deps["graphviz"]="false" + qbt_core_deps["libtool"]="false" + qbt_core_deps["libtool"]="false" + qbt_core_deps["bash"]="false" + qbt_core_deps["automake"]="false" + qbt_core_deps["re2c"]="false" + + # remove this module by default unless provided as a first argument to the script. + if [[ "${1}" != 'install' ]]; then + qbt_modules_delete["install"]="true" + fi + + # Don't remove the icu module if it was provided as a positional parameter. + # else skip icu by default unless the -i flag is provided. + if [[ "${qbt_skip_icu}" != 'yes' && "${*}" =~ ([[:space:]]|^)"icu"([[:space:]]|$) ]]; then + qbt_skip_icu="no" + elif [[ "${qbt_skip_icu}" != "no" ]]; then + qbt_modules_delete["icu"]="true" + fi + + # Configure default dependencies and modules if cmake is not specified + if [[ "${qbt_build_tool}" != 'cmake' ]]; then + qbt_modules_delete["double_conversion"]="true" + + qbt_deps_delete["unzip"]="true" + qbt_deps_delete["ttf-freefont"]="true" + qbt_deps_delete["graphviz"]="true" + qbt_deps_delete["graphviz"]="true" + qbt_deps_delete["cmake"]="true" + qbt_deps_delete["re2c"]="true" + else + if [[ "${qbt_skip_icu}" != "no" ]]; then + qbt_modules_delete["icu"]="true" + fi + fi +} +####################################################################################################################################################### +# These functions set some build conditions dynamically based on the libtorrent versions, qt version and qbittorrent combinations +####################################################################################################################################################### +_qt_std_cons() { + if [[ "${qbt_qt_version}" == "6" ]]; then + printf "yes" + return + fi + printf "no" +} + +_os_std_cons() { + if [[ "${os_version_codename}" =~ ^(alpine|bookworm|noble)$ ]]; then + printf "yes" + return + fi + printf "no" +} + +_libtorrent_std_cons() { + if [[ "${github_tag[libtorrent]}" =~ ^(RC_1_2|RC_2_0)$ ]]; then + printf "yes" + return + fi + + if [[ "${github_tag[libtorrent]}" =~ ^v1\.2\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "1.2.19")" ]]; then + printf "yes" + return + fi + if [[ "${github_tag[libtorrent]}" =~ ^v2\.0\. && "$(_semantic_version "${github_tag[libtorrent]/v/}")" -ge "$(_semantic_version "2.0.10")" ]]; then + printf "yes" + return + fi + printf 'no' +} + +_qbittorrent_std_cons() { + if [[ "${github_tag[qbittorrent]}" == "master" ]]; then + printf "yes" + return + fi + + if [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "4.6.0")" ]]; then + printf "yes" + return + fi + printf 'no' +} + +_qbittorrent_build_cons() { + if [[ "${github_tag[qbittorrent]}" == "master" ]]; then + printf "yes" + return + fi + + if [[ "${github_tag[qbittorrent]}" == "v5_0_x" ]]; then + printf "yes" + return + fi + + if [[ "${github_tag[qbittorrent]}" =~ ^release- && "$(_semantic_version "${github_tag[qbittorrent]/release-/}")" -ge "$(_semantic_version "5.0.0")" ]]; then + printf "yes" + return + fi + printf 'no' +} + +_set_cxx_standard() { + if [[ "$(_qt_std_cons)" == "yes" && "$(_os_std_cons)" && "$(_libtorrent_std_cons)" == "yes" && "$(_qbittorrent_std_cons)" == "yes" ]]; then + qbt_standard="20" qbt_cxx_standard="c++${qbt_standard}" + else + qbt_standard="17" qbt_cxx_standard="c++${qbt_standard}" + fi +} + +_set_build_cons() { + if [[ "$(_qbittorrent_build_cons)" == "yes" && "${qbt_qt_version}" == "5" ]]; then + printf '\n%b\n\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}qBittorrent ${color_magenta}${github_tag[qbittorrent]}${color_yellow} does not support ${color_red}Qt5${color_yellow}. Please use ${color_green}Qt6${color_yellow} or a qBittorrent ${color_green}v4${color_yellow} tag.${color_end}" + if [[ -d "${release_info_dir}" ]]; then touch "${release_info_dir}/disable-qt5"; fi # qbittorrent v5 transition - workflow specific + exit + elif [[ "$(_qbittorrent_build_cons)" == "yes" && "$(_os_std_cons)" == "no" ]]; then + printf '\n%b\n\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}qBittorrent ${color_magenta}${github_tag[qbittorrent]}${color_yellow} does not support less than ${color_red}c++20${color_yellow}. Please use an OS with a more modern compiler for v5${color_end}" + if [[ -d "${release_info_dir}" ]]; then touch "${release_info_dir}/disable-qt5"; fi # qbittorrent v5 transition - workflow specific + exit + fi +} +####################################################################################################################################################### +# _print_env +####################################################################################################################################################### +_print_env() { + printf '\n%b\n\n' " ${unicode_yellow_circle} Default env settings${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_dir=\"${color_green_light}${qbt_build_dir}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_version=\"${color_green_light}${qbt_libtorrent_version}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qt_version=\"${color_green_light}${qbt_qt_version}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_tool=\"${color_green_light}${qbt_build_tool}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_cross_name=\"${color_green_light}${qbt_cross_name}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_patches_url=\"${color_green_light}${qbt_patches_url}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_skip_icu=\"${color_green_light}${qbt_skip_icu}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_boost_tag=\"${color_green_light}${github_tag[boost]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_tag=\"${color_green_light}${github_tag[libtorrent]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qt_tag=\"${color_green_light}${github_tag[qtbase]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_qbittorrent_tag=\"${color_green_light}${github_tag[qbittorrent]}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_libtorrent_master_jamfile=\"${color_green_light}${qbt_libtorrent_master_jamfile}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_workflow_files=\"${color_green_light}${qbt_workflow_files}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_workflow_artifacts=\"${color_green_light}${qbt_workflow_artifacts}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_cache_dir=\"${color_green_light}${qbt_cache_dir}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_optimise_strip=\"${color_green_light}${qbt_optimise_strip}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_build_debug=\"${color_green_light}${qbt_build_debug}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_standard=\"${color_green_light}${qbt_standard}${color_yellow_light}\"${color_end}" + printf '%b\n' " ${color_yellow_light} qbt_static_ish=\"${color_green_light}${qbt_static_ish}${color_yellow_light}\"${color_end}" + printf '%b\n\n' " ${color_yellow_light} qbt_optimise=\"${color_green_light}${qbt_optimise}${color_yellow_light}\"${color_end}" +} +####################################################################################################################################################### +# This function converts a version string to a number for comparison purposes. +####################################################################################################################################################### +_semantic_version() { + local test_array + read -ra test_array < <(printf "%s" "${@//./ }") + printf "%d%03d%03d%03d" "${test_array[@]}" +} +####################################################################################################################################################### +# Script Version check +####################################################################################################################################################### +_script_version() { + script_version_remote="$(_curl -sL "${script_url}" | sed -rn 's|^script_version="(.*)"$|\1|p')" + + if [[ "$(_semantic_version "${script_version}")" -lt "$(_semantic_version "${script_version_remote}")" ]]; then + printf '\n%b\n' " ${text_blink}${unicode_red_circle}${color_end} Script update available! Versions - ${color_yellow_light}local:${color_red_light}${script_version}${color_end} ${color_yellow_light}remote:${color_green_light}${script_version_remote}${color_end}" + printf '\n%b\n' " ${unicode_green_circle} curl -sLo ${BASH_SOURCE[0]} https://git.io/qbstatic${color_end}" + elif [[ "$(_semantic_version "${script_version}")" -gt "$(_semantic_version "${script_version_remote}")" ]]; then + printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_red_light}${script_version}-dev${color_end}" + else + printf '\n%b\n' " ${unicode_green_circle} Script version: ${color_green_light}${script_version}${color_end}" + fi +} +####################################################################################################################################################### +# This function will check for a list of defined dependencies from the qbt_core_deps array. Apps like python3-dev are dynamically set +####################################################################################################################################################### +_check_dependencies() { + if [[ "$os_id" =~ (debian|ubuntu) ]]; then + local command_test_tool=("dpkg" "-s") + local command_install_deps=("apt-get" "install" "-y") + local command_update_upgrade_os=("bash" "-c" "apt-get update && apt-get upgrade -y && apt-get autoremove -y") + local install_simulation=("apt" "install" "--simulate") + elif [[ "$os_id" = "alpine" ]]; then + local command_test_tool=("apk" "info" "-e") + local command_install_deps=("apk" "add" "--no-cache" "--repository=${CDN_URL}") + local command_update_upgrade_os=("bash" "-c" "apk update --no-cache && apk upgrade --no-cache --repository=${CDN_URL} && apk fix") + local install_simulation=("apk" "add" "--simulate") + fi + + _privilege_check() { + printf '\n%b\n' " ${unicode_blue_light_circle} ${text_bold}Checking: ${color_red_light}available privileges${color_end}" + + if [[ "$(id -un 2> /dev/null)" == 'root' ]]; then + printf '\n%b\n' " $unicode_green_circle ${color_red_light}root${color_end}" + qbt_privileges_required["root"]="true" + command_privilege=() + else + printf '\n%b\n' " $unicode_red_circle ${color_red_light}root${color_end}" + fi + + if sudo -n true &> /dev/null; then + printf '%b\n' " $unicode_green_circle ${color_red_light}sudo${color_end}" + qbt_privileges_required["sudo"]="true" + command_privilege=("sudo") + else + printf '%b\n' " $unicode_red_circle ${color_red_light}sudo${color_end}" + fi + } + + _check_tools_work() { + local tool="${1}" + local tool_type="${2}" + local run_type="${3}" + _command_test() { + if [[ $tool_type = "test_tools" ]]; then + command -v "${tool}" + elif [[ $tool_type = "build_tools" ]]; then + "${command_test_tool[@]}" "${tool}" + fi + } + + if _command_test &> /dev/null; then + if [[ "${run_type}" != "silent" ]]; then + printf "%b\n" " $unicode_green_circle ${color_yellow}${1}${color_end}" + fi + return 0 + else + if [[ "${run_type}" != "silent" ]]; then + printf "%b\n" " $unicode_red_circle ${color_yellow}${1}${color_end}" + fi + return 1 + fi + + } + + _check_dependency_status() { + local silent="${1:-}" + + filerterd_params=("$pparam") + for pparam in "$@"; do + if [[ "$pparam" != "silent" ]]; then + filerterd_params+=("$pparam") + fi + done && unset pparam + + [[ "${silent}" != 'silent' ]] && printf '\n%b\n\n' " ${unicode_blue_light_circle} ${text_bold}Checking: ${color_yellow}test_tools${color_end}" + + while IFS= read -r qbt_tt; do + if _check_tools_work "${qbt_tt}" "test_tools" "${silent}"; then + qbt_test_tools["${qbt_tt}"]="true" + unset "build_tools[${qbt_tt}]" + fi + done < <(printf '%s\n' "${!qbt_test_tools[@]}" | sort) + + # remove packages in the qbt_deps_delete arrays from the qbt_core_deps array + + for qbt_dd in "${!qbt_deps_delete[@]}"; do + unset "qbt_core_deps[${qbt_dd}]" + done && unset qbt_dd + + # remove test_tools packages in the qbt_test_tools array from the qbt_core_deps array if available via command -v + for qbt_tt in "${!qbt_test_tools[@]}"; do + if [[ "${qbt_test_tools[$qbt_tt]}" == "true" ]]; then + unset "qbt_core_deps[$qbt_tt]" + fi + done && unset qbt_tt + + [[ "${silent}" != 'silent' ]] && printf '\n%b\n\n' " ${unicode_blue_light_circle} ${text_bold}Checking: ${color_magenta}core_dependencies${color_end}" + + # This checks over the qbt_core_deps array for the OS specified dependencies to see if they are installed + while IFS= read -r pkg; do + + if [[ "${os_id}" =~ ^(alpine)$ ]]; then + pkgman() { "${command_privilege[@]}" apk info -e "${pkg}"; } + fi + + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + pkgman() { "${command_privilege[@]}" dpkg -s "${pkg}"; } + fi + + if pkgman > /dev/null 2>&1; then + [[ "${silent}" != 'silent' ]] && printf '%b\n' " ${unicode_green_circle} ${color_magenta}${pkg}${color_end}" + qbt_core_deps["${pkg}"]="true" + else + if [[ -n "${pkg}" ]]; then + [[ "${silent}" != 'silent' ]] && printf '%b\n' " ${unicode_red_circle} ${color_magenta}${pkg}${color_end}" + qbt_core_deps_sorted+=("$pkg") + qbt_core_deps["${pkg}"]="false" + fi + fi + done < <(printf '%s\n' "${!qbt_core_deps[@]}" | sort) + } + + _check_dependency_status "${@}" + + _privilege_check + + if [[ ${qbt_privileges_required["root"]} == "true" || ${qbt_privileges_required["sudo"]} == "true" ]]; then + + if [[ "${qbt_core_deps[*]}" =~ "false" ]]; then + printf '\n%b\n\n' " $unicode_blue_circle ${color_blue}Info:${color_end} $script_full_path" + + if ! "${install_simulation[@]}" bash &> /dev/null; then + printf '%b\n' " $unicode_blue_circle ${color_blue_light}$script_basename${color_end} ${color_magenta}update${color_end} ------------ update host" + fi + + if [[ "${qbt_test_tools[*]}" =~ "false" ]]; then + printf '%b\n' " $unicode_blue_circle ${color_blue_light}$script_basename${color_end} ${color_magenta}install_test${color_end} ------ install test_tools" + fi + + printf '%b\n' " $unicode_blue_circle ${color_blue_light}$script_basename${color_end} ${color_magenta}install_core${color_end} ------ install ${color_magenta}core_dependencies${color_end}" + printf '%b\n' " $unicode_blue_circle ${color_blue_light}$script_basename${color_end} ${color_magenta}bootstrap_deps${color_end} ---- update + install ${color_magenta}test_tools${color_end} + ${color_magenta}install_core${color_end}" + fi + + else + printf '\n%b\n\n' " $unicode_red_circle ${color_yellow}Warning${color_end}: No root or sudo privileges detected. Nothing to do" + printf '%b\n' " $unicode_red_circle ${color_yellow}Warning${color_end}: ${color_magenta}test_tools${color_end} are required to access basic features of the script.${color_end}" + fi + + if [[ "${qbt_test_tools[*]}" =~ "false" ]]; then + printf '\n%b\n' " $unicode_red_circle ${color_yellow}Warning:${color_end} Missing required ${color_magenta}test_tools${color_end}" + fi + + if [[ "${qbt_core_deps[*]}" =~ "false" ]]; then + printf '\n%b\n' " $unicode_red_circle ${color_yellow}Warning:${color_end} Missing required ${color_magenta}core_dependencies${color_end}" + fi + + # Check if user is able to install the dependencies, if yes then do so, if no then exit. + if [[ ${qbt_privileges_required["root"]} == "true" || ${qbt_privileges_required["sudo"]} == "true" ]]; then + + _update_os() { + printf '\n%b\n\n' " ${unicode_blue_light_circle} ${color_green}Updating${color_end}" + "${command_privilege[@]}" "${command_update_upgrade_os[@]}" + # needed to use these functions in the -bs flags + declare -fx _update_os + } + + _install_tools() { + # We don't want to run update every time. Only if the the installation command cannot work without an update being run first + if ! "${install_simulation[@]}" bash &> /dev/null; then _update_os; fi + + if [[ "${1}" = "test" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle}${color_green} Installing test dependencies${color_end}" + elif [[ "${1}" = "core" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle}${color_green} Installing core dependencies${color_end}" + fi + + if [[ "${1}" = "test" ]]; then + for qbt_tt in "${!qbt_test_tools[@]}"; do + if [[ $qbt_tt != "root" && $qbt_tt != "sudo" ]]; then + "${command_install_deps[@]}" "$qbt_tt" + fi + done && unset qbt_tt + fi + + if [[ "${1}" = "core" ]]; then + "${command_install_deps[@]}" "${qbt_core_deps_sorted[@]}" + fi + # needed to use these functions in the -bs flags + declare -fx _install_tools + } + + if [[ $* =~ ([[:space:]]|^)(update)([[:space:]]|$) ]]; then + _update_os + elif [[ $* =~ ([[:space:]]|^)(install_test)([[:space:]]|$) ]]; then + _install_tools test + elif [[ $* =~ ([[:space:]]|^)(install_core)([[:space:]]|$) ]]; then + _install_tools core + elif [[ $* =~ ([[:space:]]|^)(bootstrap_deps)([[:space:]]|$) ]]; then + _update_os + _install_tools core + fi + + _check_dependency_status silent "${@}" + + else + printf '\n%b\n' " ${text_bold}Please request or install the missing core dependencies before using this script${color_end}" + if [[ "${os_id}" =~ ^(alpine)$ ]]; then + printf '\n%b\n\n' " ${color_red_light}apk add${color_end} ${qbt_core_deps_sorted[*]}" + elif [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + printf '\n%b\n\n' " ${color_red_light}apt-get install -y${color_end} ${qbt_core_deps_sorted[*]}" + fi + exit 1 + fi + + if [[ "${qbt_test_tools[*]}" =~ "false" ]]; then + printf '\n' + exit 1 + fi + + for qbt_mi in "${!qbt_modules_install[@]}"; do + if [[ "${filerterd_params[*]}" =~ ([[:space:]]|^)${qbt_mi}([[:space:]]|$) ]]; then + if [[ "${qbt_core_deps[*]}" =~ "false" ]]; then + printf '\n' + exit 1 + fi + fi + done && unset qbt_mi + + if [[ ! "${qbt_core_deps[*]}" =~ "false" ]]; then + printf '\n%b\n' " ${unicode_green_circle}${text_bold} Dependencies: All checks passed, continuing to build${color_end}" + fi + + declare -a qbt_modules_excluded=("debug" "update" "install_test" "install_core" "bootstrap" "bootstrap_deps") + for arg in "${@}"; do + if [[ ! "${qbt_modules_excluded[*]}" =~ ([[:space:]]|^)(${arg})([[:space:]]|$) ]]; then + declare -ga filtered_check_dependency_args+=("$arg") + fi + done +} +####################################################################################################################################################### +# This is a command test function: _cmd exit 1 +####################################################################################################################################################### +_cmd() { + if ! "${@}"; then + printf '\n%b\n\n' " The command: ${color_red_light}${*}${color_end} failed" + exit 1 + fi +} +####################################################################################################################################################### +# This is a command test function to test build commands for failure +####################################################################################################################################################### +_post_command() { + outcome=("${PIPESTATUS[@]}") + [[ -n "${1}" ]] && command_type="${1}" + if [[ "${outcome[*]}" =~ [1-9] ]]; then + printf '\n%b\n' " ${unicode_red_circle}${color_red} Error:${color_end} The ${command_type:-tested} command produced an exit code greater than 0 - Check the logs ${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle}${color_yellow} Warning:${color_end} Developers can be easily startled or confused by wild issues, if you are seeing this warning and cannot resolve the issue yourself, please open an issue at this repo first:" + printf '\n%b\n\n' " ${unicode_blue_circle}${color_blue_light} https://github.com/userdocs/qbittorrent-nox-static/issues ${color_end}" + exit 1 + fi +} +####################################################################################################################################################### +# This function is to test a directory exists before attempting to cd and fail with and exit code if it doesn't. +####################################################################################################################################################### +_pushd() { + if ! pushd "$@" &> /dev/null; then + printf '\n%b\n' "This directory does not exist. There is a problem" + printf '\n%b\n\n' "${color_red_light}${1}${color_end}" + exit 1 + fi +} + +_popd() { + if ! popd &> /dev/null; then + printf '%b\n' "This directory does not exist. There is a problem" + exit 1 + fi +} +####################################################################################################################################################### +# This function makes sure the log directory and path required exists for tee +####################################################################################################################################################### +_tee() { + [[ "$#" -eq 1 && "${1%/*}" =~ / ]] && mkdir -p "${1%/*}" + [[ "$#" -eq 2 && "${2%/*}" =~ / ]] && mkdir -p "${2%/*}" + command tee "$@" +} +####################################################################################################################################################### +# error functions +####################################################################################################################################################### +_error_tag() { + [[ "${github_tag[*]}" =~ error_tag ]] && { + printf '\n' + exit + } +} +####################################################################################################################################################### +# _curl test download functions - default is no proxy - _curl is a test function and _curl_curl is the command function +####################################################################################################################################################### +_curl_curl() { + "$(type -P curl)" -sNL4fq --connect-timeout 5 --retry 5 --retry-delay 5 --retry-max-time 25 "${qbt_curl_proxy[@]}" "${@}" +} + +_curl() { + if ! _curl_curl "${@}"; then + return 1 + fi +} +####################################################################################################################################################### +# git test download functions - default is no proxy - git is a test function and _git_git is the command function +####################################################################################################################################################### +_git_git() { + "$(type -P git)" "${qbt_git_proxy[@]}" "${@}" +} + +_git() { + if [[ "${2}" == '-t' ]]; then + git_test_cmd=("${1}" "${2}" "${3}") + else + [[ "${9}" =~ https:// ]] && git_test_cmd=("${9}") # 9th place in our download folder function for qttools + [[ "${11}" =~ https:// ]] && git_test_cmd=("${11}") # 11th place in our download folder function + fi + + if ! _curl -fIL "${git_test_cmd[@]}" &> /dev/null; then + printf '\n%b\n\n' " ${color_yellow}Git test 1: There is an issue with your proxy settings or network connection${color_end}" + exit + fi + + status="$( + _git_git ls-remote -qht --refs --exit-code "${git_test_cmd[@]}" &> /dev/null + printf "%s" "${?}" + )" + + if [[ "${2}" == '-t' && "${status}" -eq '0' ]]; then + printf '%b\n' "${3}" + elif [[ "${2}" == '-t' && "${status}" -ge '1' ]]; then + printf '%b\n' 'error_tag' + else + if ! _git_git "${@}"; then + printf '\n%b\n\n' " ${color_yellow}Git test 2: There is an issue with your proxy settings or network connection${color_end}" + exit + fi + fi +} + +_test_git_ouput() { + if [[ "${1}" == 'error_tag' ]]; then + printf '\n%b\n' " ${text_blink}${unicode_red_light_circle}${color_end} ${color_yellow}The provided ${2} tag ${color_red}${3}${color_end}${color_yellow} is not valid${color_end}" + fi +} +####################################################################################################################################################### +# Boost URL test function +####################################################################################################################################################### +_boost_url() { + if [[ "${github_tag[boost]}" =~ \.beta ]]; then + local boost_asset="${github_tag[boost]/\.beta/\.b}" + local boost_asset_type="beta" + else + local boost_asset="${github_tag[boost]}" + local boost_asset_type="release" + fi + + local boost_url_array=( + "https://github.com/boostorg/boost/${boost_asset_type}s/download/${github_tag[boost]}/${github_tag[boost]}-b2-nodocs.tar.xz" + "https://archives.boost.io/${boost_asset_type}/${github_tag[boost]/boost-/}/source/${boost_asset//[-\.]/_}.tar.gz" + ) + + for url in "${boost_url_array[@]}"; do + if _curl -sfLI "${url}" &> /dev/null; then + boost_url_status="200" + source_archive_url[boost]="${url}" + source_default[boost]="file" + break + else + boost_url_status="403" + source_default[boost]="folder" + fi + done +} +####################################################################################################################################################### +# Debug stuff +####################################################################################################################################################### +_debug() { + if [[ "${script_debug_urls}" == "yes" ]]; then + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}github_url${color_end}" + while IFS= read -r github_url_sorted; do + for n in "${github_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!github_url[@]}" | sort) + + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}github_tag${color_end}" + while IFS= read -r github_tag_sorted; do + for n in "${github_tag_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${github_tag[$n]}${color_end}" + done + done < <(printf '%s\n' "${!github_tag[@]}" | sort) + + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}app_version${color_end}" + while IFS= read -r app_version_sorted; do + for n in "${app_version_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${app_version[$n]}${color_end}" + done + done < <(printf '%s\n' "${!app_version[@]}" | sort) + + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}source_archive_url${color_end}" + while IFS= read -r source_archive_url_sorted; do + for n in "${source_archive_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_archive_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!source_archive_url[@]}" | sort) + + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}qbt_workflow_archive_url${color_end}" + while IFS= read -r qbt_workflow_archive_url_sorted; do + for n in "${qbt_workflow_archive_url_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${qbt_workflow_archive_url[$n]}${color_end}" + done + done < <(printf '%s\n' "${!qbt_workflow_archive_url[@]}" | sort) + + printf '\n%b\n\n' " ${unicode_magenta_circle} ${color_yellow_light}source_default${color_end}" + while IFS= read -r source_default_sorted; do + for n in "${source_default_sorted[@]}"; do + printf '%b\n' " ${color_green_light}$n${color_end}: ${color_blue_light}${source_default[$n]}${color_end}" + done + done < <(printf '%s\n' "${!source_default[@]}" | sort) + + printf '\n%b\n' " ${unicode_magenta_circle} ${color_yellow_light}Tests${color_end}" + printf '\n%b\n' " ${color_green_light}boost_url_status:${color_end} ${color_blue_light}${boost_url_status}${color_end}" + printf '%b\n' " ${color_green_light}test_url_status:${color_end} ${color_blue_light}${test_url_status}${color_end}" + + printf '\n' + exit + fi +} +####################################################################################################################################################### +# This function sets some compiler flags globally - b2 settings are set in the ~/user-config.jam set in the _installation_modules function +####################################################################################################################################################### +# Define common flag sets +_custom_flags() { + # Compiler optimization flags (for CFLAGS/CXXFLAGS) + qbt_optimization_flags="-O3 -pipe -fdata-sections -ffunction-sections" + # Preprocessor only flags - _FORTIFY_SOURCE=3 has been in the GNU C Library (glibc) since version 2.34 + if [[ "${os_version_codename}" =~ ^(bullseye|focal)$ ]]; then + qbt_preprocessor_flags="-U_FORTIFY_SOURCE -D_GLIBCXX_ASSERTIONS" + else + qbt_preprocessor_flags="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS" + fi + # Security flags for compiler + qbt_security_flags="-fstack-clash-protection -fstack-protector-strong -fno-plt" + # Warning control + qbt_warning_flags="-w -Wno-error -Wno-error=attributes -Wno-attributes -Wno-psabi" + # Linker specific flags + qbt_linker_flags="-Wl,-O1,--as-needed,--sort-common,-z,now,-z,pack-relative-relocs,-z,relro,-z,max-page-size=65536" + + if [[ "${os_id}" =~ ^(alpine)$ ]] && [[ -z "${qbt_cross_name}" || "${qbt_cross_name}" == "default" ]]; then + if [[ ! "${app_name}" =~ ^(openssl)$ ]]; then + qbt_optimization_flags+=" -flto=auto -ffat-lto-objects" + qbt_linker_flags+=" -Wl,-flto -fuse-linker-plugin" + fi + fi + + # if qbt_optimise=yes then set -march=native for non cross builds - see --o | --optimise + if [[ $qbt_optimise == "yes" ]]; then + qbt_optimise_march="-march=native" + fi + + # Dynamic tests to change settings based on the use of qmake,cmake,strip and debug + if [[ "${qbt_optimise_strip}" = "yes" && "${qbt_build_debug}" = "no" ]]; then + qbt_strip_qmake='strip' + qbt_strip_flags='-s' + else + qbt_strip_qmake='-nostrip' + qbt_strip_flags='' + fi + + # Static linking specific + if [[ "${qbt_static_ish}" == "yes" || "${app_name}" =~ ^(glibc|icu)$ ]]; then + qbt_static_flags="" + else + qbt_static_flags="-static-libstdc++ -static-libgcc -static" + fi + + # If you set and export your own flags in the env that the script is run, they will be appended to the defaults + # This is done via these checks and the flags are set in the _custom_flags_set function and it avoids duplication + [[ -z "${qbt_cflags_consumed}" ]] && qbt_cflags="${CFLAGS}" qbt_cflags_consumed="yes" + [[ -z "${qbt_cxxflags_consumed}" ]] && qbt_cxxflags="${CXXFLAGS}" qbt_cxxflags_consumed="yes" + [[ -z "${qbt_cppflags_consumed}" ]] && qbt_cppflags="${CPPFLAGS}" qbt_cppflags_consumed="yes" + [[ -z "${qbt_ldflags_consumed}" ]] && qbt_ldflags="${LDFLAGS}" qbt_ldflags_consumed="yes" + + _custom_flags_set() { + CFLAGS="${qbt_optimization_flags} ${qbt_security_flags} -pthread ${qbt_static_flags} ${qbt_optimise_march} ${qbt_cflags:-}" + CXXFLAGS="-I${include_dir} ${qbt_optimization_flags} ${qbt_security_flags} ${qbt_warning_flags} -std=${qbt_cxx_standard} -pthread ${qbt_static_flags} ${qbt_optimise_march} ${qbt_cxxflags:-}" + CPPFLAGS="-I${include_dir} ${qbt_preprocessor_flags} ${qbt_warning_flags} ${qbt_cppflags:-}" + LDFLAGS="-L${lib_dir} ${qbt_static_flags} ${qbt_strip_flags} ${qbt_linker_flags} -pthread ${qbt_optimise_march} ${qbt_ldflags:-}" + } + + _custom_flags_reset() { + CFLAGS="${qbt_optimization_flags} ${qbt_security_flags} ${qbt_optimise_march} ${qbt_cflags:-}" + CXXFLAGS="${qbt_optimization_flags} ${qbt_security_flags} ${qbt_warning_flags} -std=${qbt_cxx_standard} ${qbt_optimise_march} ${qbt_cxxflags:-}" + CPPFLAGS="${qbt_preprocessor_flags} ${qbt_warning_flags} ${qbt_cppflags:-}" + LDFLAGS="${qbt_strip_flags} ${qbt_optimise_march} ${qbt_ldflags:-}" + } + + if [[ "${qbt_build_tool}" == "qmake" && "${app_name}" =~ ^(boost)$ ]]; then + if [[ "${qbt_cross_name}" == "default" ]]; then + printf '%b\n' "using gcc : : : -std=${qbt_cxx_standard} ${qbt_optimise_march} -std=${qbt_cxx_standard} ${qbt_optimise_march} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" + else + printf '%b\n' "using gcc : ${qbt_cross_boost#gcc-} : ${qbt_cross_host}-g++ : -std=${qbt_cxx_standard} -std=${qbt_cxx_standard} ;${text_newline}using python : ${python_short_version} : /usr/bin/python${python_short_version} : /usr/include/python${python_short_version} : /usr/lib/python${python_short_version} ;" > "${HOME}/user-config.jam" + fi + fi + + if [[ "${app_name}" =~ ^(glibc|icu)$ ]]; then + _custom_flags_reset + else + _custom_flags_set + fi +} +####################################################################################################################################################### +# This function installs a completed static build of qbittorrent-nox to the /usr/local/bin for root or ${HOME}/bin for non root +####################################################################################################################################################### +_install_qbittorrent() { + if [[ -f "${qbt_install_dir}/completed/qbittorrent-nox" ]]; then + if [[ "${qbt_privileges_required[root]}" == 'true' ]] || [[ "${qbt_privileges_required[sudo]}" == 'true' ]]; then + mkdir -p "/usr/local/bin" + cp -rf "${qbt_install_dir}/completed/qbittorrent-nox" "/usr/local/bin" + else + mkdir -p "${HOME}/bin" + cp -rf "${qbt_install_dir}/completed/qbittorrent-nox" "${LOCAL_USER_HOME}/bin" + fi + + printf '\n%b\n' " ${unicode_blue_light_circle} qbittorrent-nox has been installed!${color_end}" + printf '\n%b\n' " Run it using this command:" + if [[ "${qbt_privileges_required[root]}" == 'true' ]] || [[ "${qbt_privileges_required[sudo]}" == 'true' ]]; then + printf '\n%b\n\n' " ${color_green}qbittorrent-nox${color_end}" + else + printf '\n%b\n\n' " ${color_green}~/bin/qbittorrent-nox${color_end}" + fi + exit + else + printf '\n%b\n\n' " ${unicode_red_circle} qbittorrent-nox has not been built to the defined install directory:" + printf '\n%b\n' "${color_green}${qbt_install_dir_short}/completed${color_end}" + printf '\n%b\n\n' "Please build it using the script first then install" + exit + fi +} +####################################################################################################################################################### +# URL test for normal use and proxy use - make sure we can reach google.com before processing the URL functions +####################################################################################################################################################### +_test_url() { + test_url_status="$(_curl -o /dev/null --head --write-out '%{http_code}' "https://github.com")" + if [[ "${test_url_status}" -eq "200" ]]; then + printf '\n%b\n' " ${unicode_green_circle} Test URL = ${color_green}passed${color_end}" + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow}Test URL failed:${color_end} ${color_yellow_light}There could be an issue with your proxy settings or network connection${color_end}" + exit + fi +} +####################################################################################################################################################### +# This function sets the build and installation directory. If the argument -b is used to set a build directory that directory is set and used. +# If nothing is specified or the switch is not used it defaults to the hard-coded path relative to the scripts location - qbittorrent-build +####################################################################################################################################################### +_set_build_directory() { + if [[ -n "${qbt_build_dir}" ]]; then + if [[ "${qbt_build_dir}" =~ ^/ ]]; then + qbt_install_dir="${qbt_build_dir}" + qbt_install_dir_short="${qbt_install_dir/${HOME}/\~}" + else + qbt_install_dir="${qbt_working_dir}/${qbt_build_dir}" + qbt_install_dir_short="${qbt_working_dir_short}/${qbt_build_dir}" + fi + fi + + # Set lib and include directory paths based on install path. + include_dir="${qbt_install_dir}/include" + lib_dir="${qbt_install_dir}/lib" + + # Define some build specific variables + LOCAL_USER_HOME="${HOME}" # Get the local user's home dir path before we contain HOME to the build dir. + HOME="${qbt_install_dir}" + PATH="${qbt_install_dir}/bin${PATH:+:${qbt_local_paths}}" + PKG_CONFIG_PATH="${lib_dir}/pkgconfig" +} +####################################################################################################################################################### +# This function is where we set your URL and github tag info that we use with other functions. +####################################################################################################################################################### +_set_module_urls() { + # Update check url for the _script_version function + script_url="https://raw.githubusercontent.com/userdocs/qbittorrent-nox-static/master/qbt-nox-static.bash" + ########################################################################################################################################################## + # Configure the github_url associative array for all the applications this script uses and we call them as ${github_url[app_name]} + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + github_url[cmake_ninja]="https://github.com/userdocs/qbt-cmake-ninja-crossbuilds.git" + github_url[glibc]="https://sourceware.org/git/glibc.git" + else + github_url[ninja]="https://github.com/userdocs/qbt-ninja-build.git" + fi + github_url[zlib]="https://github.com/zlib-ng/zlib-ng.git" + github_url[iconv]="https://git.savannah.gnu.org/git/libiconv.git" + github_url[icu]="https://github.com/unicode-org/icu.git" + github_url[double_conversion]="https://github.com/google/double-conversion.git" + github_url[openssl]="https://github.com/openssl/openssl.git" + github_url[boost]="https://github.com/boostorg/boost.git" + github_url[libtorrent]="https://github.com/arvidn/libtorrent.git" + github_url[qtbase]="https://github.com/qt/qtbase.git" + github_url[qttools]="https://github.com/qt/qttools.git" + github_url[qbittorrent]="https://github.com/qbittorrent/qBittorrent.git" + ########################################################################################################################################################## + # Configure the github_tag associative array for all the applications this script uses and we call them as ${github_tag[app_name]} + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + github_tag[cmake_ninja]="$(_git_git ls-remote -q -t --refs "${github_url[cmake_ninja]}" | awk '{sub("refs/tags/", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + if [[ "${os_version_codename}" =~ ^(bullseye|focal)$ ]]; then + github_tag[glibc]="glibc-2.31" + elif [[ "${os_version_codename}" =~ ^(bookworm|jammy)$ ]]; then + github_tag[glibc]="glibc-2.38" + else # "$(_git_git ls-remote -q -t --refs https://sourceware.org/git/glibc.git | awk '/\/tags\/glibc-[0-9]\.[0-9]{2}$/{sub("refs/tags/", "");sub("(.*)(-[^0-9].*)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[glibc]="glibc-2.40" + fi + else + github_tag[ninja]="$(_git_git ls-remote -q -t --refs "${github_url[ninja]}" | awk '/v/{sub("refs/tags/", "");sub("(.*)(-[^0-9].*)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + fi + github_tag[zlib]="develop" + #github_tag[iconv]="$(_git_git ls-remote -q -t --refs "${github_url[iconv]}" | awk '{sub("refs/tags/", "");sub("(.*)(-[^0-9].*)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[iconv]="v$(_curl "https://github.com/userdocs/qbt-workflow-files/releases/latest/download/dependency-version.json" | sed -rn 's|(.*)"iconv": "(.*)",|\2|p')" + github_tag[icu]="$(_git_git ls-remote -q -t --refs "${github_url[icu]}" | awk '/\/release-/{sub("refs/tags/", "");sub("(.*)(-[^0-9].*)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[double_conversion]="$(_git_git ls-remote -q -t --refs "${github_url[double_conversion]}" | awk '/v/{sub("refs/tags/", "");sub("(.*)(v6|rc|alpha|beta)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[openssl]="$(_git_git ls-remote -q -t --refs "${github_url[openssl]}" | awk '/openssl/{sub("refs/tags/", "");sub("(.*)(v6|rc|alpha|beta)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n1)" + github_tag[boost]=$(_git_git ls-remote -q -t --refs "${github_url[boost]}" | awk '{sub("refs/tags/", "");sub("(.*)(rc|alpha|beta|-bgl)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1) + github_tag[libtorrent]="$(_git_git ls-remote -q -t --refs "${github_url[libtorrent]}" | awk '/'"v${qbt_libtorrent_version}"'/{sub("refs/tags/", "");sub("(.*)(-[^0-9].*)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[qtbase]="$(_git_git ls-remote -q -t --refs "${github_url[qtbase]}" | awk '/'"v${qbt_qt_version}"'/{sub("refs/tags/", "");sub("(.*)(-a|-b|-r)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[qttools]="$(_git_git ls-remote -q -t --refs "${github_url[qttools]}" | awk '/'"v${qbt_qt_version}"'/{sub("refs/tags/", "");sub("(.*)(-a|-b|-r)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + github_tag[qbittorrent]="$(_git_git ls-remote -q -t --refs "${github_url[qbittorrent]}" | awk '{sub("refs/tags/", "");sub("(.*)(-[^0-9].*|rc|alpha|beta)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n 1)" + ########################################################################################################################################################## + # Configure the app_version associative array for all the applications this script uses and we call them as ${app_version[app_name]} + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + app_version[cmake_debian]="${github_tag[cmake_ninja]%_*}" + app_version[ninja_debian]="${github_tag[cmake_ninja]#*_}" + app_version[glibc]="${github_tag[glibc]#glibc-}" + else + app_version[cmake]="$(apk info -d cmake | awk '/cmake-/{sub("(cmake-)", "");sub("(-r)", ""); print $1 }' | sort -r | head -n1)" + app_version[ninja]="${github_tag[ninja]#v}" + fi + app_version[zlib]="$(_curl "https://raw.githubusercontent.com/zlib-ng/zlib-ng/${github_tag[zlib]}/zlib.h.in" | sed -rn 's|#define ZLIB_VERSION "(.*)"|\1|p' | sed 's/\.zlib-ng//g')" + app_version[iconv]="${github_tag[iconv]#v}" + app_version[icu]="${github_tag[icu]#release-}" + app_version[double_conversion]="${github_tag[double_conversion]#v}" + app_version[openssl]="${github_tag[openssl]#openssl-}" + app_version[boost]="${github_tag[boost]#boost-}" + app_version[libtorrent]="${github_tag[libtorrent]#v}" + app_version[qtbase]="$(printf '%s' "${github_tag[qtbase]#v}" | sed 's/-lts-lgpl//g')" + app_version[qttools]="$(printf '%s' "${github_tag[qttools]#v}" | sed 's/-lts-lgpl//g')" + app_version[qbittorrent]="${github_tag[qbittorrent]#release-}" + ########################################################################################################################################################## + # Configure the source_archive_url associative array for all the applications this script uses and we call them as ${source_archive_url[app_name]} + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + source_archive_url[cmake_ninja]="https://github.com/userdocs/qbt-cmake-ninja-crossbuilds/releases/latest/download/${os_id}-${os_version_codename}-cmake-$(dpkg --print-architecture).tar.xz" + source_archive_url[glibc]="https://ftpmirror.gnu.org/gnu/libc/${github_tag[glibc]}.tar.xz" + fi + source_archive_url[zlib]="https://github.com/zlib-ng/zlib-ng/archive/refs/heads/develop.tar.gz" + source_archive_url[iconv]="https://mirrors.dotsrc.org/gnu/libiconv/$(grep -Eo 'libiconv-([0-9]{1,3}[.]?)([0-9]{1,3}[.]?)([0-9]{1,3}?)\.tar.gz' <(_curl https://mirrors.dotsrc.org/gnu/libiconv/) | sort -V | tail -1)" + source_archive_url[icu]="https://github.com/unicode-org/icu/releases/download/${github_tag[icu]}/icu4c-${app_version[icu]/-/_}-src.tgz" + source_archive_url[double_conversion]="https://github.com/google/double-conversion/archive/refs/tags/${github_tag[double_conversion]}.tar.gz" + source_archive_url[openssl]="https://github.com/openssl/openssl/releases/download/${github_tag[openssl]}/${github_tag[openssl]}.tar.gz" + _boost_url # function to test and set the boost url and more + source_archive_url[libtorrent]="https://github.com/arvidn/libtorrent/releases/download/${github_tag[libtorrent]}/libtorrent-rasterbar-${github_tag[libtorrent]#v}.tar.gz" + + read -ra qt_version_short_array <<< "${app_version[qtbase]//\./ }" + qt_version_short="${qt_version_short_array[0]}.${qt_version_short_array[1]}" + + if [[ "${qbt_qt_version}" =~ ^6 ]]; then + source_archive_url[qtbase]="https://download.qt.io/official_releases/qt/${qt_version_short}/${app_version[qtbase]}/submodules/qtbase-everywhere-src-${app_version[qtbase]}.tar.xz" + source_archive_url[qttools]="https://download.qt.io/official_releases/qt/${qt_version_short}/${app_version[qttools]}/submodules/qttools-everywhere-src-${app_version[qttools]}.tar.xz" + else + source_archive_url[qtbase]="https://download.qt.io/official_releases/qt/${qt_version_short}/${app_version[qtbase]}/submodules/qtbase-everywhere-opensource-src-${app_version[qtbase]}.tar.xz" + source_archive_url[qttools]="https://download.qt.io/official_releases/qt/${qt_version_short}/${app_version[qttools]}/submodules/qttools-everywhere-opensource-src-${app_version[qttools]}.tar.xz" + fi + + source_archive_url[qbittorrent]="https://github.com/qbittorrent/qBittorrent/archive/refs/tags/${github_tag[qbittorrent]}.tar.gz" + ########################################################################################################################################################## + # Configure the qbt_workflow_archive_url associative array for all the applications this script uses and we call them as ${qbt_workflow_archive_url[app_name]} + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + qbt_workflow_archive_url[cmake_ninja]="${source_archive_url[cmake_ninja]}" + qbt_workflow_archive_url[glibc]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/glibc.${github_tag[glibc]#glibc-}.tar.xz" + fi + qbt_workflow_archive_url[zlib]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/zlib.tar.xz" + qbt_workflow_archive_url[iconv]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/iconv.tar.xz" + qbt_workflow_archive_url[icu]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/icu.tar.xz" + qbt_workflow_archive_url[double_conversion]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/double_conversion.tar.xz" + qbt_workflow_archive_url[openssl]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/openssl.tar.xz" + qbt_workflow_archive_url[boost]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/boost.tar.xz" + qbt_workflow_archive_url[libtorrent]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/libtorrent.${github_tag[libtorrent]/v/}.tar.xz" + qbt_workflow_archive_url[qtbase]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/qt${qbt_qt_version:0:1}base.tar.xz" + qbt_workflow_archive_url[qttools]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/qt${qbt_qt_version:0:1}tools.tar.xz" + qbt_workflow_archive_url[qbittorrent]="https://github.com/userdocs/qbt-workflow-files/releases/latest/download/qbittorrent.tar.xz" + ########################################################################################################################################################## + # Configure workflow override options + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + qbt_workflow_override[cmake_ninja]="no" + qbt_workflow_override[glibc]="no" + fi + qbt_workflow_override[zlib]="no" + qbt_workflow_override[iconv]="no" + qbt_workflow_override[icu]="no" + qbt_workflow_override[double_conversion]="no" + qbt_workflow_override[openssl]="no" + qbt_workflow_override[boost]="no" + qbt_workflow_override[libtorrent]="no" + qbt_workflow_override[qtbase]="no" + qbt_workflow_override[qttools]="no" + qbt_workflow_override[qbittorrent]="no" + ########################################################################################################################################################## + # Configure the default source type we use for the download function + ########################################################################################################################################################## + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + source_default[cmake_ninja]="file" + source_default[glibc]="file" + fi + source_default[zlib]="file" + source_default[iconv]="file" + source_default[icu]="file" + source_default[double_conversion]="file" + source_default[openssl]="file" + source_default[boost]="file" + source_default[libtorrent]="file" + source_default[qtbase]="file" + source_default[qttools]="file" + source_default[qbittorrent]="file" + ########################################################################################################################################################## + # + ########################################################################################################################################################## + return +} +####################################################################################################################################################### +# A function to take the associative array qbt_modules_install and sort it, after being processed, into a sorted indexed array +####################################################################################################################################################### +_sort_modules() { + if [[ ${#qbt_modules_install_processed[@]} -eq 0 ]]; then + for qbt_mo in "${qbt_modules_order[@]}"; do + if [[ -v qbt_modules_install["$qbt_mo"] ]]; then + qbt_modules_install_processed+=("$qbt_mo") + fi + done && unset qbt_mo + fi +} +####################################################################################################################################################### +# This function verifies the module names from the array qbt_modules_install in the default values function. +####################################################################################################################################################### +_installation_modules() { + # Delete modules - using the qbt_modules_delete array to unset them from the qbt_modules_install array + for qbt_md in "${!qbt_modules_delete[@]}"; do + if [[ "${qbt_modules_delete["$qbt_md"]}" == "true" ]]; then + unset "qbt_modules_install[${qbt_md}]" + fi + done && unset qbt_md + + # For any modules params passed, test that they exist in the qbt_modules_install array or set qbt_modules_test to fail + for passed_params in "${@}"; do + if [[ ! "${!qbt_modules_install[*]}" =~ ([[:space:]]|^)(${passed_params})([[:space:]]|$) ]]; then + qbt_modules_test="fail" + fi + done + unset passed_params + + if [[ "${qbt_modules_test}" != 'fail' && "${#}" -ne '0' ]]; then + unset "qbt_modules_install[all]" # Remove all the modules from the qbt_modules_install array before we process it + _sort_modules # Call the sort function to sort the associative array qbt_modules_install into an sorted indexed array so the installation order is correct + if [[ "${1}" != "all" ]]; then + read -ra qbt_modules_selected_compare <<< "${qbt_modules_install_processed[@]}" + for selected in "${@}"; do + qbt_activated_modules["${selected}"]="yes" + done && unset selected + qbt_modules_install_processed=("${@}") + fi + + for modules_skip in "${qbt_modules_install_processed[@]}"; do + skip_modules["${modules_skip}"]="no" + done && unset modules_skip + + # Create the directories we need. + mkdir -p "${qbt_install_dir}/logs" + mkdir -p "${PKG_CONFIG_PATH}" + mkdir -p "${qbt_install_dir}/completed" + + # Set some python variables we need. + python_major="$(python"${qbt_python_version}" -c "import sys; print(sys.version_info[0])")" + python_minor="$(python"${qbt_python_version}" -c "import sys; print(sys.version_info[1])")" + python_short_version="${python_major}.${python_minor}" + + # printf the build directory. + printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Install Prefix${color_end} : ${color_cyan_light}${qbt_install_dir_short}${color_end}" + + # Some basic help + printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Script help${color_end} : ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-h${color_end}" + else + _sort_modules + fi +} +####################################################################################################################################################### +# This function will test to see if a Jamfile patch file exists via the variable patches_github_url for the tag used. +####################################################################################################################################################### +_apply_patches() { + [[ -n "${1}" ]] && app_name="${1}" + # Start to define the default master branch we will use by transforming the app_version[libtorrent] variable to underscores. The result is dynamic and can be: RC_1_0, RC_1_1, RC_1_2, RC_2_0 and so on. + default_jamfile="${app_version[libtorrent]//./\_}" + + # Remove everything after second underscore. Occasionally the tag will be short, like v2.0 so we need to make sure not remove the underscore if there is only one present. + if [[ $(grep -o '_' <<< "${default_jamfile}" | wc -l) -le 1 ]]; then + default_jamfile="RC_${default_jamfile}" + elif [[ $(grep -o '_' <<< "${default_jamfile}" | wc -l) -ge 2 ]]; then + default_jamfile="RC_${default_jamfile%_*}" + fi + + if [[ "${app_name}" == "bootstrap" ]]; then + _sort_modules + for module_patch in "${qbt_modules_install_processed[@]}"; do + [[ -n "${app_version["${module_patch}"]}" ]] && mkdir -p "${qbt_install_dir}/patches/${module_patch}/${app_version["${module_patch}"]}/source" + done && unset module_patch + + printf '\n%b\n\n' " ${unicode_yellow_circle} Using the defaults, these directories have been created:${color_end}" + + for patch_info in "${qbt_modules_install_processed[@]}"; do + [[ -n "${app_version["${patch_info}"]}" ]] && printf '%b\n' " ${color_cyan_light} ${qbt_install_dir_short}/patches/${patch_info}/${app_version["${patch_info}"]}${color_end}" + done && unset patch_info + + printf '\n%b\n' " ${unicode_cyan_circle} If a patch file, named ${color_cyan_light}patch${color_end} is found in these directories it will be applied to the relevant module with a matching tag." + else + patch_dir="${qbt_install_dir}/patches/${app_name}/${app_version[${app_name}]}" + + # local + patch_file="${patch_dir}/patch" + patch_url_file="${patch_dir}/url" # A file with a url to raw patch info + # remote + qbt_patches_url_branch="$(_git_git ls-remote -q --symref "https://github.com/${qbt_patches_url}" HEAD | awk '/^ref:/{sub("refs/heads/", "", $2); print $2}')" + # qbt_patches_url_branch="$(_curl -sL "https://github.com/${qbt_patches_url}" | sed -n 's/.*"defaultBranch":"\([^"]*\)".*/\1/p')" + patch_file_remote="https://raw.githubusercontent.com/${qbt_patches_url}/${qbt_patches_url_branch}/patches/${app_name}/${app_version[${app_name}]}" + + if [[ "${app_name}" == "libtorrent" ]]; then + patch_jamfile="${patch_dir}/Jamfile" + patch_jamfile_url="https://raw.githubusercontent.com/${qbt_patches_url}/${qbt_patches_url_branch}/patches/${app_name}/${app_version[${app_name}]}/Jamfile" + fi + + # Order of patch file preference + # 1. Local patch file - A custom patch file in the module version folder matching the build configuration + # 2. Local url file - A custom url to a raw patch file in the module version folder matching the build configuration + # 3. Remote patch file using the patch_file_remote/patch - A custom url to a raw patch file + # 4. Remote url file using patch_file_remote/url - A url to a raw patch file in the patch repo + + [[ "${source_default[${app_name}]}" == "folder" && ! -d "${qbt_cache_dir}/${app_name}" ]] && printf '\n' # cosmetics + + _patch_url() { + patch_url="$(< "${patch_url_file}")" + if _curl --create-dirs "${patch_url}" -o "${patch_file}"; then + printf '%b\n\n' " ${unicode_green_circle} ${color_red}Patching${color_end} from ${color_red_light}remote:url${color_end} - ${color_magenta_light}${app_name}${color_end} ${color_yellow_light}${app_version[${app_name}]}${color_end} - ${color_yellow_light}${patch_url}${color_end}" + fi + } + + if [[ -f "${patch_file}" ]]; then # If the patch file exists in the module version folder matching the build configuration then use this. + printf '%b\n\n' " ${unicode_green_circle} ${color_red}Patching${color_end} from ${color_red_light}local:patch${color_end} - ${color_magenta_light}${app_name}${color_end} ${color_yellow_light}${app_version[${app_name}]}${color_end} - ${color_cyan_light}${patch_file}${color_end}" + elif [[ -f "${patch_url_file}" ]]; then # If a remote URL file exists in the module version folder matching the build configuration then use this to create the patch file for the next check + _patch_url + else # Else check that if there is a remotely host patch file available in the patch repo + if _curl --create-dirs "${patch_file_remote}/patch" -o "${patch_file}"; then + printf '%b\n\n' " ${unicode_green_circle} ${color_red}Patching${color_end} from ${color_red_light}remote:patch${color_end} - ${color_magenta_light}${app_name}${color_end} ${color_yellow_light}${app_version[${app_name}]}${color_end} - ${color_yellow_light}${patch_file_remote}/patch${color_end}" + elif _curl --create-dirs "${patch_file_remote}/url" -o "${patch_url_file}"; then + _patch_url + fi + fi + + # Libtorrent specific stuff + if [[ "${app_name}" == "libtorrent" ]]; then + if [[ "${qbt_libtorrent_master_jamfile}" == "yes" ]]; then + _curl --create-dirs "https://raw.githubusercontent.com/arvidn/libtorrent/${default_jamfile}/Jamfile" -o "${qbt_dl_folder_path}/${patch_jamfile##*/}" + printf '%b\n\n' " ${unicode_green_circle}${color_red} Using libtorrent branch master Jamfile file${color_end}" + elif [[ -f "${patch_dir}/Jamfile" ]]; then + cp -f "${patch_dir}/Jamfile" "${qbt_dl_folder_path}/${patch_jamfile##*/}" + printf '%b\n\n' " ${unicode_green_circle}${color_red} Using existing custom Jamfile file${color_end}" + else + if _curl --create-dirs "${patch_jamfile_url}" -o "${qbt_dl_folder_path}/${patch_jamfile##*/}"; then + printf '%b\n\n' " ${unicode_green_circle}${color_red} Using downloaded custom Jamfile file${color_end}" + else + printf '%b\n\n' " ${unicode_green_circle}${color_red} Using libtorrent ${github_tag[libtorrent]} Jamfile file${color_end}" + fi + fi + fi + + # Patch files + if [[ -f "${patch_file}" ]]; then + patch -p1 < "${patch_file}" + fi + + # Copy modified files from source directory + if [[ -d "${patch_dir}/source" && "$(ls -A "${patch_dir}/source")" ]]; then + printf '%b\n\n' " ${unicode_red_circle} ${color_yellow_light}Copying files from patch source dir${color_end}" + cp -rf "${patch_dir}/source/". "${qbt_dl_folder_path}/" + fi + fi +} +####################################################################################################################################################### +# A unified download function to handle the processing of various options and directions the script can take. +####################################################################################################################################################### +_download() { + _pushd "${qbt_install_dir}" + + [[ -n "${1}" ]] && app_name="${1}" + + # The location we download source archives and folders to + qbt_dl_dir="${qbt_install_dir}" + qbt_dl_file_path="${qbt_dl_dir}/${app_name}.tar.xz" + qbt_dl_folder_path="${qbt_dl_dir}/${app_name}" + + if [[ "${qbt_workflow_files}" == "no" ]] || [[ "${qbt_workflow_override[${app_name}]}" == "yes" ]]; then + qbt_dl_source_url="${source_archive_url[${app_name}]}" + source_type="source" + fi + + if [[ "${qbt_workflow_files}" == "yes" && "${qbt_workflow_override[${app_name}]}" == "no" ]] || [[ "${qbt_workflow_artifacts}" == 'yes' ]]; then + qbt_dl_source_url="${qbt_workflow_archive_url[${app_name}]}" + [[ "${qbt_workflow_files}" == "yes" ]] && source_type="workflow" + [[ "${qbt_workflow_artifacts}" == "yes" ]] && source_type="artifact" + fi + + [[ -n "${qbt_cache_dir}" ]] && _cache_dirs + [[ "${source_default[${app_name}]}" == "file" ]] && _download_file + [[ "${source_default[${app_name}]}" == "folder" ]] && _download_folder + + return 0 +} +####################################################################################################################################################### +# +####################################################################################################################################################### +_cache_dirs() { + # If the path is not starting with / then make it a full path by prepending the qbt_working_dir path + if [[ ! "${qbt_cache_dir}" =~ ^/ ]]; then + qbt_cache_dir="${qbt_working_dir}/${qbt_cache_dir}" + fi + + qbt_dl_dir="${qbt_cache_dir}" + qbt_dl_file_path="${qbt_dl_dir}/${app_name}.tar.xz" + qbt_dl_folder_path="${qbt_dl_dir}/${app_name}" + + if [[ "${qbt_workflow_files}" == "yes" && "${qbt_workflow_override[${app_name}]}" == "no" || "${app_name}" == "cmake_ninja" ]]; then + source_default["${app_name}"]="file" + elif [[ "${qbt_cache_dir_options}" == "bs" || -d "${qbt_dl_folder_path}" ]]; then + source_default["${app_name}"]="folder" + fi + + return +} +####################################################################################################################################################### +# This function is for downloading git releases based on their tag. +####################################################################################################################################################### +_download_folder() { + # Set this to avoid some warning when cloning some modules + _git_git config --global advice.detachedHead false + + # If not using artifacts remove the source files in the build directory if present before we download or copy them again + [[ -d "${qbt_install_dir}/${app_name}" ]] && rm -rf "${qbt_install_dir}/${app_name:?}" + [[ -d "${qbt_install_dir}/include/${app_name}" ]] && rm -rf "${qbt_install_dir}/include/${app_name:?}" + + # if there IS NOT and app_name cache directory present in the path provided and we are bootstrapping then use this echo + if [[ "${qbt_cache_dir_options}" == "bs" && ! -d "${qbt_dl_folder_path}" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle} Caching ${color_magenta_light}${app_name}${color_end} with tag ${color_yellow_light}${github_tag[${app_name}]}${color_end} to ${color_cyan_light}${color_cyan_light}${qbt_dl_folder_path}${color_end}${color_end} from ${color_yellow_light}${color_yellow_light}${github_url[${app_name}]}${color_end}" + fi + + # if cache dir is on and the app_name folder does not exist then get folder via cloning default source + if [[ "${qbt_cache_dir_options}" != "bs" && ! -d "${qbt_dl_folder_path}" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle} Downloading ${color_magenta_light}${app_name}${color_end} with tag ${color_yellow_light}${github_tag[${app_name}]}${color_end} to ${color_cyan_light}${color_cyan_light}${qbt_dl_folder_path}${color_end}${color_end} from ${color_yellow_light}${color_yellow_light}${github_url[${app_name}]}${color_end}" + fi + + if [[ ! -d "${qbt_dl_folder_path}" ]]; then + if [[ "${app_name}" =~ qttools ]]; then + _git clone --no-tags --single-branch --branch "${github_tag[${app_name}]}" -j"$(nproc)" --depth 1 "${github_url[${app_name}]}" "${qbt_dl_folder_path}" + _pushd "${qbt_dl_folder_path}" + git submodule update --force --recursive --init --remote --depth=1 --single-branch + _popd + else + _git clone --no-tags --single-branch --branch "${github_tag[${app_name}]}" --shallow-submodules --recurse-submodules -j"$(nproc)" --depth 1 "${github_url[${app_name}]}" "${qbt_dl_folder_path}" + fi + fi + + # if there IS a app_name cache directory present in the path provided and we are bootstrapping then use this + if [[ "${qbt_cache_dir_options}" == "bs" && -d "${qbt_dl_folder_path}" ]]; then + printf '\n%b\n\n' " ${unicode_green_circle} ${color_blue_light}${app_name}${color_end} - Updating directory ${color_cyan_light}${qbt_dl_folder_path}${color_end}" + _pushd "${qbt_dl_folder_path}" + + if git ls-remote -qh --refs --exit-code "${github_url[${app_name}]}" "${github_tag[${app_name}]}" &> /dev/null; then + _git_git fetch origin "${github_tag[${app_name}]}:${github_tag[${app_name}]}" --no-tags --depth=1 --recurse-submodules --update-head-ok + fi + + if git ls-remote -qt --refs --exit-code "${github_url[${app_name}]}" "${github_tag[${app_name}]}" &> /dev/null; then + _git_git fetch origin tag "${github_tag[${app_name}]}" --no-tags --depth=1 --recurse-submodules --update-head-ok + fi + + _git_git checkout "${github_tag[${app_name}]}" + _popd + fi + + if [[ "${qbt_cache_dir_options}" != "bs" && -n "${qbt_cache_dir}" && -d "${qbt_dl_folder_path}" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle} Copying ${color_magenta_light}${app_name}${color_end} from cache ${color_cyan_light}${qbt_cache_dir}/${app_name}${color_end} with tag ${color_yellow_light}${github_tag[${app_name}]}${color_end} to ${color_cyan_light}${qbt_install_dir}/${app_name}${color_end}" + cp -rf "${qbt_dl_folder_path}" "${qbt_install_dir}/" + fi + + if [[ "${qbt_cache_dir_options}" != "bs" ]]; then + mkdir -p "${qbt_install_dir}/${app_name}${sub_dir}" + _pushd "${qbt_install_dir}/${app_name}${sub_dir}" + fi + + printf '%s' "${github_url[${app_name}]}" |& _tee "${qbt_install_dir}/logs/${app_name}_github_url.log" > /dev/null + + return +} +####################################################################################################################################################### +# This function is for downloading source code archives +####################################################################################################################################################### +_download_file() { + if [[ -f "${qbt_dl_file_path}" && "${qbt_workflow_artifacts}" == "no" ]]; then + # This checks that the archive is not corrupt or empty checking for a top level folder and exiting if there is no result i.e. the archive is empty - so that we do rm and empty substitution + _cmd grep -Eqom1 "(.*)[^/]" <(tar tf "${qbt_dl_file_path}") + # delete any existing extracted archives and archives + rm -rf {"${qbt_install_dir:?}/$(tar tf "${qbt_dl_file_path}" | grep -Eom1 "(.*)[^/]")","${qbt_install_dir}/${app_name}.tar.xz"} + [[ -d "${qbt_install_dir}/${app_name}" ]] && rm -rf "${qbt_install_dir}/${app_name:?}" + [[ -d "${qbt_install_dir}/include/${app_name}" ]] && rm -rf "${qbt_install_dir}/include/${app_name:?}" + fi + + if [[ "${qbt_cache_dir_options}" != "bs" && ! -f "${qbt_dl_file_path}" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle} Downloading ${color_magenta_light}${app_name}${color_end} using ${color_yellow_light}${source_type}${color_end} files to ${color_cyan_light}${qbt_dl_file_path}${color_end} - ${color_yellow_light}${qbt_dl_source_url}${color_end}" + elif [[ -n "${qbt_cache_dir}" && "${qbt_cache_dir_options}" == "bs" && ! -f "${qbt_dl_file_path}" ]]; then + printf '\n%b\n' " ${unicode_blue_light_circle} Caching ${color_magenta_light}${app_name}${color_end} ${color_yellow_light}${source_type}${color_end} files to ${color_cyan_light}${qbt_cache_dir}/${app_name}.tar.xz${color_end} - ${color_yellow_light}${qbt_dl_source_url}${color_end}" + elif [[ -n "${qbt_cache_dir}" && "${qbt_cache_dir_options}" == "bs" && -f "${qbt_dl_file_path}" ]]; then + [[ "${qbt_cache_dir_options}" == "bs" ]] && printf '\n%b\n' " ${unicode_blue_light_circle} Updating ${color_magenta_light}${app_name}${color_end} cached ${color_yellow_light}${source_type}${color_end} files from - ${color_cyan_light}${qbt_cache_dir}/${app_name}.tar.xz${color_end}" + elif [[ -n "${qbt_cache_dir}" && "${qbt_cache_dir_options}" != "bs" && -f "${qbt_dl_file_path}" ]]; then + printf '\n%b\n\n' " ${unicode_blue_light_circle} Extracting ${color_magenta_light}${app_name}${color_end} cached ${color_yellow_light}${source_type}${color_end} files from - ${color_cyan_light}${qbt_cache_dir}/${app_name}.tar.xz${color_end}" + fi + + if [[ "${qbt_workflow_artifacts}" == "no" ]]; then + # download the remote source file using curl + if [[ "${qbt_cache_dir_options}" = "bs" || ! -f "${qbt_dl_file_path}" ]]; then + _curl --create-dirs "${qbt_dl_source_url}" -o "${qbt_dl_file_path}" + fi + fi + + # Set the extracted dir name to a var to easily use or remove it + qbt_dl_folder_path="${qbt_install_dir}/$(tar tf "${qbt_dl_file_path}" | head -1 | cut -f1 -d"/")" + + printf '%b\n' "${qbt_dl_source_url}" |& _tee "${qbt_install_dir}/logs/${app_name}_${source_type}_archive_url.log" > /dev/null + + [[ "${app_name}" == "cmake_ninja" ]] && additional_cmds=("--strip-components=1") + + if [[ "${qbt_cache_dir_options}" != "bs" ]]; then + _cmd tar xf "${qbt_dl_file_path}" -C "${qbt_install_dir}" "${additional_cmds[@]}" + # we don't need to cd into the boost if we download it via source archives + + if [[ "${app_name}" == "cmake_ninja" ]]; then + _delete_function + else + mkdir -p "${qbt_dl_folder_path}${sub_dir}" + _pushd "${qbt_dl_folder_path}${sub_dir}" + fi + fi + + unset additional_cmds + return +} +####################################################################################################################################################### +# static lib link fix: check for *.so and *.a versions of a lib in the $lib_dir and change the *.so link to point to the static lib e.g. libdl.a +####################################################################################################################################################### +_fix_static_links() { + log_name="${app_name}" + mapfile -t library_list < <(find "${lib_dir}" -maxdepth 1 -type f -name '*.a' -exec basename {} \;) + for file in "${library_list[@]}"; do + ln -fsn "${file}" "${lib_dir}/${file%\.a}.so" + printf '%b\n' "${lib_dir}/${file%\.a}.so changed to point to ${file}" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null + done + return +} + +_fix_multiarch_static_links() { + if [[ -d "${qbt_install_dir}/${qbt_cross_host}" ]]; then + log_name="${app_name}" + multiarch_lib_dir="${qbt_install_dir}/${qbt_cross_host}/lib" + mapfile -t library_list < <(find "${multiarch_lib_dir}" -maxdepth 1 -type f -name '*.a' -exec basename {} \;) + for file in "${library_list[@]}"; do + ln -fsn "${file}" "${multiarch_lib_dir}/${file%\.a}.so" + printf '%b\n' "${multiarch_lib_dir}/${file%\.a}.so changed to point to ${file}" |& _tee -a "${qbt_install_dir}/logs/${log_name}-fix-static-links.log" > /dev/null + done + return + fi +} +####################################################################################################################################################### +# This function is for removing files and folders we no longer need +####################################################################################################################################################### +_delete_function() { + [[ "${app_name}" != "cmake_ninja" ]] && printf '\n' + if [[ "${qbt_skip_delete}" != "yes" ]]; then + printf '%b\n' " ${unicode_green_circle}${color_red_light} Deleting ${app_name} uncached installation files and folders${color_end}" + [[ -f "${qbt_dl_file_path}" && "${qbt_workflow_artifacts}" == "no" ]] && rm -rf {"${qbt_install_dir:?}/$(tar tf "${qbt_dl_file_path}" | grep -Eom1 "(.*)[^/]")","${qbt_install_dir}/${app_name}.tar.xz"} + [[ -d "${qbt_dl_folder_path}" ]] && rm -rf "${qbt_install_dir}/${app_name:?}" + _pushd "${qbt_working_dir}" + else + printf '%b\n' " ${unicode_yellow_circle}${color_red_light} Skipping ${app_name} deletion${color_end}" + fi +} +####################################################################################################################################################### +# cmake installation +####################################################################################################################################################### +_cmake() { + if [[ "${qbt_build_tool}" == 'cmake' ]]; then + printf '\n%b\n' " ${unicode_blue_light_circle} ${color_blue_light}Checking if cmake and ninja need to be installed${color_end}" + mkdir -p "${qbt_install_dir}/bin" + + if [[ "${os_id}" =~ ^(debian|ubuntu)$ ]]; then + if [[ "$(cmake --version 2> /dev/null | awk 'NR==1{print $3}')" != "${app_version[cmake_debian]}" ]]; then + _download cmake_ninja + _post_command "Debian cmake and ninja installation" + + printf '\n%b\n' " ${unicode_yellow_circle} Using cmake: ${color_yellow_light}${app_version[cmake_debian]}" + printf '\n%b\n' " ${unicode_yellow_circle} Using ninja: ${color_yellow_light}${app_version[ninja_debian]}" + fi + fi + + if [[ "${os_id}" =~ ^(alpine)$ ]]; then + if [[ "$("${qbt_install_dir}/bin/ninja" --version 2> /dev/null | sed 's/\.git//g')" != "${app_version[ninja]}" ]]; then + _curl "https://github.com/userdocs/qbt-ninja-build/releases/latest/download/ninja-$(apk info --print-arch)" -o "${qbt_install_dir}/bin/ninja" + _post_command ninja + chmod 700 "${qbt_install_dir}/bin/ninja" + + printf '\n%b\n' " ${unicode_yellow_circle} Using cmake: ${color_yellow_light}${app_version[cmake]}" + printf '\n%b\n' " ${unicode_yellow_circle} Using ninja: ${color_yellow_light}${app_version[ninja]}" + fi + fi + printf '\n%b\n' " ${unicode_green_circle} ${color_green_light}cmake and ninja are installed and ready to use${color_end}" + fi + _pushd "${qbt_working_dir}" +} +####################################################################################################################################################### +# This function handles the Multi Arch dynamics of the script. +####################################################################################################################################################### +_multi_arch() { + if [[ "${multi_arch_options[${qbt_cross_name:-default}]}" == "${qbt_cross_name}" ]]; then + if [[ "${os_id}" =~ ^(alpine|debian|ubuntu)$ ]]; then + [[ "${1}" != "bootstrap" ]] && printf '\n%b\n' " ${unicode_green_circle}${color_yellow_light} Using multiarch - arch: ${qbt_cross_name} host: ${os_id} target: ${qbt_cross_target}${color_end}" + case "${qbt_cross_name}" in + armel) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="arm-linux-musleabi" + qbt_zlib_arch="armv5" + ;;& + debian | ubuntu) + qbt_cross_host="arm-linux-gnueabi" + ;;& + *) + bitness="32" + cross_arch="armel" + qbt_cross_boost="gcc-arm" + qbt_cross_openssl="linux-armv4" + qbt_cross_qtbase="linux-arm-gnueabi-g++" + ;; + esac + ;; + armhf) + case "${qbt_cross_target}" in + alpine) + cross_arch="armhf" + qbt_cross_host="arm-linux-musleabihf" + qbt_zlib_arch="armv6" + ;;& + debian | ubuntu) + cross_arch="armel" + qbt_cross_host="arm-linux-gnueabihf" + ;;& + *) + bitness="32" + qbt_cross_boost="gcc-arm" + qbt_cross_openssl="linux-armv4" + qbt_cross_qtbase="linux-arm-gnueabi-g++" + ;; + esac + ;; + armv7) + case "${qbt_cross_target}" in + alpine) + cross_arch="armv7" + qbt_cross_host="armv7l-linux-musleabihf" + qbt_zlib_arch="armv7" + ;;& + debian | ubuntu) + cross_arch="armhf" + qbt_cross_host="arm-linux-gnueabihf" + ;;& + *) + bitness="32" + qbt_cross_boost="gcc-arm" + qbt_cross_openssl="linux-armv4" + qbt_cross_qtbase="linux-arm-gnueabi-g++" + ;; + esac + ;; + aarch64) + case "${qbt_cross_target}" in + alpine) + cross_arch="aarch64" + qbt_cross_host="aarch64-linux-musl" + qbt_zlib_arch="aarch64" + ;;& + debian | ubuntu) + cross_arch="arm64" + qbt_cross_host="aarch64-linux-gnu" + ;;& + *) + bitness="64" + qbt_cross_boost="gcc-arm" + qbt_cross_openssl="linux-aarch64" + qbt_cross_qtbase="linux-aarch64-gnu-g++" + ;; + esac + ;; + x86_64) + case "${qbt_cross_target}" in + alpine) + cross_arch="x86_64" + qbt_cross_host="x86_64-linux-musl" + qbt_zlib_arch="x86_64" + ;;& + debian | ubuntu) + cross_arch="amd64" + qbt_cross_host="x86_64-linux-gnu" + ;;& + *) + bitness="64" + qbt_cross_boost="" + qbt_cross_openssl="linux-x86_64" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + x86) + case "${qbt_cross_target}" in + alpine) + cross_arch="x86" + qbt_cross_host="i686-linux-musl" + qbt_zlib_arch="i686" + ;;& + debian | ubuntu) + cross_arch="i386" + qbt_cross_host="i686-linux-gnu" + ;;& + *) + bitness="32" + qbt_cross_openssl="linux-x86" + qbt_cross_qtbase="linux-g++-32" + ;; + esac + ;; + s390x) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="s390x-linux-musl" + qbt_zlib_arch="s390x" + ;;& + debian | ubuntu) + qbt_cross_host="s390x-linux-gnu" + ;;& + *) + cross_arch="s390x" + bitness="64" + qbt_cross_boost="gcc-s390x" + qbt_cross_openssl="linux64-s390x" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + powerpc) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="powerpc-linux-musl" + qbt_zlib_arch="ppc" + ;;& + debian | ubuntu) + qbt_cross_host="powerpc-linux-gnu" + ;;& + *) + bitness="32" + cross_arch="powerpc" + qbt_cross_boost="gcc-ppc" + qbt_cross_openssl="linux-ppc" + qbt_cross_qtbase="linux-g++-32" + ;; + esac + ;; + ppc64el) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="powerpc64le-linux-musl" + qbt_zlib_arch="ppc64el" + ;;& + debian | ubuntu) + qbt_cross_host="powerpc64le-linux-gnu" + ;;& + *) + bitness="64" + cross_arch="ppc64el" + qbt_cross_boost="gcc-ppc64el" + qbt_cross_openssl="linux-ppc64le" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + mips) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="mips-linux-musl" + qbt_zlib_arch="mips" + ;;& + debian | ubuntu) + qbt_cross_host="mips-linux-gnu" + ;;& + *) + bitness="32" + cross_arch="mips" + qbt_cross_boost="gcc-mips" + qbt_cross_openssl="linux-mips32" + qbt_cross_qtbase="linux-g++-32" + ;; + esac + ;; + mipsel) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="mipsel-linux-musl" + qbt_zlib_arch="mipsel" + ;;& + debian | ubuntu) + qbt_cross_host="mipsel-linux-gnu" + ;;& + *) + bitness="32" + cross_arch="mipsel" + qbt_cross_boost="gcc-mipsel" + qbt_cross_openssl="linux-mips32" + qbt_cross_qtbase="linux-g++-32" + ;; + esac + ;; + mips64) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="mips64-linux-musl" + qbt_zlib_arch="mips64" + ;;& + debian | ubuntu) + qbt_cross_host="mips64-linux-gnuabi64" + ;;& + *) + bitness="64" + cross_arch="mips64" + qbt_cross_boost="gcc-mips64" + qbt_cross_openssl="linux64-mips64" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + mips64el) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="mips64el-linux-musl" + qbt_zlib_arch="mips64el" + ;;& + debian | ubuntu) + qbt_cross_host="mips64el-linux-gnuabi64" + ;;& + *) + bitness="64" + cross_arch="mips64el" + qbt_cross_boost="gcc-mips64el" + qbt_cross_openssl="linux64-mips64" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + riscv64) + case "${qbt_cross_target}" in + alpine) + qbt_cross_host="riscv64-linux-musl" + qbt_zlib_arch="riscv64" + ;;& + debian) + printf '\n%b\n\n' " ${unicode_red_circle} The arch ${color_yellow_light}${qbt_cross_name}${color_end} can only be cross built on and Alpine OS Host" + exit 1 + ;; + ubuntu) + qbt_cross_host="riscv64-linux-gnu" + ;;& + *) + bitness="64" + cross_arch="riscv64" + qbt_cross_boost="gcc-riscv64" + qbt_cross_openssl="linux64-riscv64" + qbt_cross_qtbase="linux-g++-64" + ;; + esac + ;; + esac + + [[ "${1}" == 'info_bootstrap' ]] && return + + export CHOST="${qbt_cross_host}" + export CC="${qbt_cross_host}-gcc" + export AR="${qbt_cross_host}-ar" + export CXX="${qbt_cross_host}-g++" + + mkdir -p "${qbt_install_dir}/logs" + + if [[ "${1}" == 'bootstrap' || "${qbt_cache_dir_options}" == "bs" ]] && [[ -f "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" ]]; then + rm -f "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" + fi + + if [[ "${qbt_cross_target}" =~ ^(alpine)$ ]]; then + if [[ "${1}" == 'bootstrap' || "${qbt_cache_dir_options}" == "bs" || ! -f "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" ]]; then + printf '\n%b\n' " ${unicode_blue_light_circle} Downloading ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}https://github.com/userdocs/qbt-musl-cross-make/releases/latest/download/${qbt_cross_host}.tar.xz${color_end}" + _curl --create-dirs "https://github.com/userdocs/qbt-musl-cross-make/releases/latest/download/${qbt_cross_host}.tar.xz" -o "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" + fi + + if [[ -f "${qbt_install_dir}/.active-toolchain-info" ]]; then + if [[ $(cat "${qbt_install_dir}/.active-toolchain-info") == "${qbt_cross_host}.tar.gz" ]]; then + if "${qbt_install_dir}/bin/${qbt_cross_host}-gcc" -v &> /dev/null; then + skip_toolchain_extract="yes" + fi + fi + fi + + if [[ "${skip_toolchain_extract}" == "yes" ]]; then + printf '\n%b\n' " ${unicode_blue_light_circle} Extracted ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.xz${color_end}" + else + printf '\n%b\n' " ${unicode_blue_light_circle} Extracting ${color_magenta_light}${qbt_cross_host}.tar.gz${color_end} cross tool chain - ${color_cyan_light}${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.xz${color_end}" + tar xf "${qbt_cache_dir:-${qbt_install_dir}}/${qbt_cross_host}.tar.gz" --strip-components=1 -C "${qbt_install_dir}" + printf '%s\n' "${qbt_cross_host}.tar.gz" > "${qbt_install_dir}/.active-toolchain-info" + fi + + _fix_multiarch_static_links "${qbt_cross_host}" + fi + + multi_glibc=("--host=${qbt_cross_host}") # ${multi_glibc[@]} + multi_iconv=("--host=${qbt_cross_host}") # ${multi_iconv[@]} + multi_icu=("--host=${qbt_cross_host}" "-with-cross-build=${qbt_install_dir}/icu/cross") # ${multi_icu[@]} + multi_openssl=("./Configure" "${qbt_cross_openssl}") # ${multi_openssl[@]} + multi_qtbase=("-xplatform" "${qbt_cross_qtbase}") # ${multi_qtbase[@]} + + if [[ "${qbt_build_tool}" == 'cmake' ]]; then + multi_libtorrent=("-D CMAKE_CXX_COMPILER=${qbt_cross_host}-g++") # ${multi_libtorrent[@]} + multi_double_conversion=("-D CMAKE_CXX_COMPILER=${qbt_cross_host}-g++") # ${multi_double_conversion[@]} + multi_qbittorrent=("-D CMAKE_CXX_COMPILER=${qbt_cross_host}-g++") # ${multi_qbittorrent[@]} + else + multi_libtorrent=("toolset=${qbt_cross_boost:-gcc}") # ${multi_libtorrent[@]} + multi_qbittorrent=("--host=${qbt_cross_host}") # ${multi_qbittorrent[@]} + fi + return + else + printf '\n%b\n\n' " ${unicode_red_circle} Multiarch only works with Alpine Linux (native or docker)${color_end}" + exit 1 + fi + else + multi_openssl=("./config") # ${multi_openssl[@]} + return + fi +} +####################################################################################################################################################### +# Github Actions release info +####################################################################################################################################################### +_release_info() { + _error_tag + + printf '\n%b\n' " ${unicode_green_circle} ${color_yellow_light}Release bootstrapped${color_end}" + + release_info_dir="${qbt_install_dir}/release_info" + + mkdir -p "${release_info_dir}" + + cat > "${release_info_dir}/tag.md" <<- TAG_INFO + ${github_tag[qbittorrent]}_${github_tag[libtorrent]} + TAG_INFO + + cat > "${release_info_dir}/title.md" <<- TITLE_INFO + qbittorrent ${app_version[qbittorrent]} libtorrent ${app_version[libtorrent]} + TITLE_INFO + + if _git_git ls-remote -t --exit-code "https://github.com/${qbt_revision_url}.git" "${github_tag[qbittorrent]}_${github_tag[libtorrent]}" &> /dev/null; then + if grep -q '"name": "dependency-version.json"' < <(_curl "https://api.github.com/repos/${qbt_revision_url}/releases/tags/${github_tag[qbittorrent]}_${github_tag[libtorrent]}"); then + until _curl "https://github.com/${qbt_revision_url}/releases/download/${github_tag[qbittorrent]}_${github_tag[libtorrent]}/dependency-version.json" > "${release_info_dir}/remote-dependency-version.json"; do + printf '%b\n' "Waiting for dependency-version.json URL." + sleep 2 + done + + remote_revision_version="$(sed -rn 's|(.*)"revision": "(.*)"|\2|p' < "${release_info_dir}/remote-dependency-version.json")" + rm -f "${release_info_dir}/remote-dependency-version.json" + qbt_revision_version="$((remote_revision_version + 1))" + fi + fi + + # Dependency version info + printf '%b\n' "{\n \"openssl\": \"${app_version[openssl]}\",\n \"boost\": \"${app_version[boost]}\",\n \"libtorrent_${qbt_libtorrent_version//\./_}\": \"${app_version[libtorrent]}\",\n \"qt${qt_version_short_array[0]}\": \"${app_version[qtbase]}\",\n \"qbittorrent\": \"${app_version[qbittorrent]}\",\n \"revision\": \"${qbt_revision_version:-0}\"\n}" > "${release_info_dir}/qt${qt_version_short_array[0]}-dependency-version.json" + + [[ ${qbt_workflow_files} == "no" && ${qbt_workflow_artifacts} == "no" ]] && source_text="source files - direct" + [[ ${qbt_workflow_files} == "yes" ]] && source_text="source files - workflows: [qbt-workflow-files](https://github.com/userdocs/qbt-workflow-files/releases/latest)" + [[ ${qbt_workflow_artifacts} == "yes" ]] && source_text="source files - artifacts: [qbt-workflow-files](https://github.com/userdocs/qbt-workflow-files/releases/latest)" + + cat > "${release_info_dir}/qt${qt_version_short_array[0]}-${qbt_cross_name}-release.md" <<- RELEASE_INFO + ## Build info + + | Components | Version | + | :----------------------------: | :-------------------------: | + | Qbittorrent | ${app_version[qbittorrent]} | + | Qt${qt_version_short_array[0]} | ${app_version[qtbase]} | + | Libtorrent | ${app_version[libtorrent]} | + | Boost | ${app_version[boost]} | + | OpenSSL | ${app_version[openssl]} | + | zlib-ng | ${app_version[zlib]} | + + ## Architecture and build info + + > [!NOTE] + > ${source_text} + > + > These builds were created on Alpine linux using [custom prebuilt musl toolchains](https://github.com/userdocs/qbt-musl-cross-make/releases/latest) for: + RELEASE_INFO + + { + printf '\n%s\n' "| Crossarch | Alpine Cross build files | Arch config | Tuning |" + printf '%s\n' "| :---------: | :----------------------: | :---------: | :-----------------------------------------------------------------------------------------------------------------------------: |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == armel ]] && printf '%s\n' "| armel | arm-linux-musleabi | armv5te | --with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-abi=aapcs-linux |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == armhf ]] && printf '%s\n' "| armhf | arm-linux-musleabihf | armv6zk | --with-arch=armv6kz --with-tune=arm1176jzf-s --with-fpu=vfpv2 --with-float=hard --with-abi=aapcs-linux |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == armv7 ]] && printf '%s\n' "| armv7 | armv7l-linux-musleabihf | armv7-a | --with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == aarch64 ]] && printf '%s\n' "| aarch64 | aarch64-linux-musl | armv8-a | --with-arch=armv8-a --with-abi=lp64 |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == x86_64 ]] && printf '%s\n' "| x86_64 | x86_64-linux-musl | amd64 | N/A |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == x86 ]] && printf '%s\n' "| x86 | i686-linux-musl | i686 | --with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == s390x ]] && printf '%s\n' "| s390x | s390x-linux-musl | zEC12 | --with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == powerpc ]] && printf '%s\n' "| powerpc | powerpc-linux-musl | ppc | --enable-secureplt --enable-decimal-float=no |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == ppc64el ]] && printf '%s\n' "| powerpc64le | powerpc64le-linux-musl | ppc64 | --with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == mips ]] && printf '%s\n' "| mips | mips-linux-musl | mips32 | --with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32 |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == mipsel ]] && printf '%s\n' "| mipsel | mipsel-linux-musl | mips32 | -with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32 |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == mips64 ]] && printf '%s\n' "| mips64 | mips64-linux-musl | mips64 | --with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64 |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == mips64el ]] && printf '%s\n' "| mips64el | mips64el-linux-musl | mips64 | --with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64 |" + [[ "${multi_arch_options[${qbt_cross_name}]}" == riscv64 ]] && printf '%s\n' "| riscv64 | riscv64-linux-musl | rv64gc | --with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic |" + printf '\n' + } >> "${release_info_dir}/qt${qt_version_short_array[0]}-${qbt_cross_name}-release.md" + + cat >> "${release_info_dir}/qt${qt_version_short_array[0]}-${qbt_cross_name}-release.md" <<- RELEASE_INFO + ## General Info + + > [!WARNING] + > With Qbittorrent 4.4.0 onwards all cmake builds use Qt6 and all qmake builds use Qt5, as long as Qt5 is supported or qBitorrent V5 is released. + > + > Qbittorrent v5 won't support qmake (Qt5) builds so Qt6 (cmake) will become default and Qt5 builds will no longer be released. + > + > Binary builds are stripped - See https://userdocs.github.io/qbittorrent-nox-static/debugging/ + RELEASE_INFO + + return +} +####################################################################################################################################################### +# This is first help section that for triggers that do not require any processing and only provide a static result whe using help +####################################################################################################################################################### +while (("${#}")); do + case ${1} in + -b | --build-directory) + if [[ -n $2 ]]; then + qbt_build_dir="${2}" + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} You must provide a directory path when using ${color_blue_light}-b${color_end}" + exit 1 + fi + ;; + -bs-c | --bootstrap-cmake) + qbt_build_tool="cmake" + params1+=("-bs-c") + shift + ;; + -c | --cmake) + qbt_build_tool="cmake" + shift + ;; + -d | --debug) + qbt_build_debug="yes" + shift + ;; + -cd | --cache-directory) + qbt_cache_dir="${2%/}" + if [[ -n "${3}" && "${3}" =~ (^rm$|^bs$) ]]; then + qbt_cache_dir_options="${3}" + if [[ "${3}" == "rm" ]]; then + [[ -d "${qbt_cache_dir}" ]] && rm -rf "${qbt_cache_dir}" + printf '\n%b\n\n' " ${unicode_red_circle} Cache directory removed: ${color_cyan_light}${qbt_cache_dir}${color_end}" + exit + fi + shift 3 + elif [[ -n "${3}" && ! "${3}" =~ ^- ]]; then + printf '\n%b\n' " ${unicode_red_circle} Only ${color_blue_light}bs${color_end} or ${color_blue_light}rm${color_end} are supported as conditionals for this switch${color_end}" + printf '\n%b\n\n' " ${unicode_yellow_circle} See ${color_blue_light}-h-cd${color_end} for more information${color_end}" + exit + else + shift 2 + fi + ;; + -i | --icu) + qbt_skip_icu="no" + if [[ "${qbt_skip_icu}" == "no" ]]; then + qbt_modules_delete["icu"]="false" + fi + shift + ;; + -ma | --multi-arch) + if [[ -n "${2}" && "${multi_arch_options[${2}]}" == "${2}" ]]; then + qbt_cross_name="${2}" + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} You must provide a valid arch option when using${color_end} ${color_blue_light}-ma${color_end}" + unset "multi_arch_options[default]" + for arches in "${multi_arch_options[@]}"; do + printf '%b\n' " ${unicode_blue_light_circle} ${arches}${color_end}" + done + printf '\n%b\n\n' " ${unicode_green_circle} Example usage:${color_blue_light} -ma aarch64${color_end}" + exit 1 + fi + ;; + -p | --proxy) + qbt_git_proxy=("-c" "http.sslVerify=false" "-c" "http.https://github.com.proxy=${2}") + qbt_curl_proxy=("--proxy-insecure" "-x" "${2}") + shift 2 + ;; + -o | --optimise) + if [[ -z "${qbt_cross_name}" ]] || [[ "${qbt_cross_name}" == "default" ]]; then + qbt_optimise="yes" + shift 1 + else + printf '\n%b\n\n' " ${unicode_red_light_circle} You cannot use the ${color_blue_light}-o${color_end} flag with cross compilation" + exit 1 + fi + ;; + -q | --qmake) + qbt_build_tool="--qmake" + shift + ;; + -s | --strip) + qbt_optimise_strip="yes" + shift + ;; + -bs-e | --bootstrap-env) + printf '\n%b\n\n' " ${unicode_green_light_circle} A template .qbt_env has been created${color_end}" + _print_env | sed -e '1,/qbt/{ /qbt/!d }' -e 's/\x1B\[93m//g' -e 's/\x1B\[92m//g' -e 's/\x1B\[0m//g' -e 's/^[[:space:]]*//' -e '/^$/d' > .qbt_env + exit + ;; + -si | --static-ish) + if [[ -z "${qbt_cross_name}" ]] || [[ "${qbt_cross_name}" == "default" ]]; then + qbt_static_ish="yes" + shift + else + printf '\n%b\n\n' " ${unicode_red_light_circle} You cannot use the ${color_blue_light}-si${color_end} flag with cross compilation${color_end}" + exit 1 + fi + ;; + -sdu | --script-debug-urls) + script_debug_urls="yes" + shift + ;; + -wf | --workflow) + qbt_workflow_files="yes" + shift + ;; + --) # end argument parsing + shift + break + ;; + *) # preserve positional arguments + params1+=("${1}") + shift + ;; + esac +done +# Set positional arguments in their proper place. +set -- "${params1[@]}" +####################################################################################################################################################### +# Functions part 1: Use some of our functions +####################################################################################################################################################### +_set_default_values "${@}" # see functions +_check_dependencies "${@}" && set -- "${filtered_check_dependency_args[@]}" # see functions +_test_url +_set_build_directory # see functions +_set_module_urls "${@}" # see functions +_script_version # see functions +####################################################################################################################################################### +# Environment variables - settings positional parameters of flags +####################################################################################################################################################### +[[ -n "${qbt_patches_url}" ]] && set -- -pr "${qbt_patches_url}" "${@}" +[[ -n "${qbt_boost_tag}" ]] && set -- -bt "${qbt_boost_tag}" "${@}" +[[ -n "${qbt_libtorrent_tag}" ]] && set -- -lt "${qbt_libtorrent_tag}" "${@}" +[[ -n "${qbt_qt_tag}" ]] && set -- -qtt "${qbt_qt_tag}" "${@}" +[[ -n "${qbt_qbittorrent_tag}" ]] && set -- -qt "${qbt_qbittorrent_tag}" "${@}" +####################################################################################################################################################### +# This section controls our flags that we can pass to the script to modify some variables and behavior. +####################################################################################################################################################### +while (("${#}")); do + case "${1}" in + -bs-p | --bootstrap-patches) + _apply_patches bootstrap + shift + ;; + -bs-c | --bootstrap-cmake) + _cmake + shift + ;; + -bs-r | --bootstrap-release) + _release_info + shift + ;; + -bs-ma | --bootstrap-multi-arch) + if [[ "${multi_arch_options[${qbt_cross_name}]}" == "${qbt_cross_name}" ]]; then + _multi_arch + shift + else + printf '\n%b\n\n' " ${unicode_red_circle} You must provide a valid arch option when using${color_end} ${color_blue_light}-ma${color_end}" + for arches in "${multi_arch_options[@]}"; do + printf '%b\n' " ${unicode_blue_light_circle} ${arches}${color_end}" + done + printf '\n%b\n\n' " ${unicode_green_circle} Example usage:${color_blue_light} -ma aarch64${color_end}" + exit 1 + fi + ;; + -bs-a | --bootstrap-all) + _apply_patches bootstrap + _release_info + _cmake + _multi_arch bootstrap + shift + ;; + -bt | --boost-tag) + if [[ -n "${2}" ]]; then + github_tag[boost]="$(_git "${github_url[boost]}" -t "${2}")" + app_version[boost]="${github_tag[boost]#boost-}" + _boost_url + qbt_workflow_override[boost]="yes" + _test_git_ouput "${github_tag[boost]}" "boost" "${2}" + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow_light}You must provide a tag for this switch:${color_end} ${color_blue_light}${1} TAG ${color_end}" + exit + fi + ;; + -n | --no-delete) + qbt_skip_delete="yes" + shift + ;; + -m | --master) + github_tag[libtorrent]="$(_git "${github_url[libtorrent]}" -t "RC_${qbt_libtorrent_version//./_}")" + app_version[libtorrent]="${github_tag[libtorrent]}" + qbt_workflow_override[libtorrent]="yes" + source_default[libtorrent]="folder" + _test_git_ouput "${github_tag[libtorrent]}" "libtorrent" "RC_${qbt_libtorrent_version//./_}" + github_tag[qbittorrent]="$(_git "${github_url[qbittorrent]}" -t "master")" + app_version[qbittorrent]="${github_tag[qbittorrent]#release-}" + qbt_workflow_override[qbittorrent]="yes" + source_default[qbittorrent]="folder" + _test_git_ouput "${github_tag[qbittorrent]}" "qbittorrent" "master" + shift + ;; + -lm | --libtorrent-master) + github_tag[libtorrent]="$(_git "${github_url[libtorrent]}" -t "RC_${qbt_libtorrent_version//./_}")" + app_version[libtorrent]="${github_tag[libtorrent]}" + source_default[qbittorrent]="folder" + qbt_workflow_override[libtorrent]="yes" + _test_git_ouput "${github_tag[libtorrent]}" "libtorrent" "RC_${qbt_libtorrent_version//./_}" + shift + ;; + -lt | --libtorrent-tag) + if [[ -n "${2}" ]]; then + github_tag[libtorrent]="$(_git "${github_url[libtorrent]}" -t "$2")" + [[ "${github_tag[libtorrent]}" =~ ^RC_ ]] && app_version[libtorrent]="${github_tag[libtorrent]/RC_/}" app_version[libtorrent]="${app_version[libtorrent]//_/\.}" + [[ "${github_tag[libtorrent]}" =~ ^libtorrent- ]] && app_version[libtorrent]="${github_tag[libtorrent]#libtorrent-}" app_version[libtorrent]="${app_version[libtorrent]//_/\.}" + [[ "${github_tag[libtorrent]}" =~ ^libtorrent_ ]] && app_version[libtorrent]="${github_tag[libtorrent]#libtorrent_}" app_version[libtorrent]="${app_version[libtorrent]//_/\.}" + [[ "${github_tag[libtorrent]}" =~ ^v[0-9] ]] && app_version[libtorrent]="${github_tag[libtorrent]#v}" + source_archive_url[libtorrent]="https://github.com/arvidn/libtorrent/releases/download/${github_tag[libtorrent]}/libtorrent-rasterbar-${app_version[libtorrent]}.tar.gz" + if ! _curl "${source_archive_url[libtorrent]}" &> /dev/null; then + source_default[libtorrent]="folder" + fi + qbt_workflow_override[libtorrent]="yes" + + read -ra lt_version_short_array <<< "${app_version[libtorrent]//\./ }" + qbt_libtorrent_version="${lt_version_short_array[0]}.${lt_version_short_array[1]}" + [[ "${github_tag[libtorrent]}" =~ ^RC_ ]] && app_version[libtorrent]="RC_${app_version[libtorrent]//\./_}" # set back to RC_... so that release info has proper version context + + _test_git_ouput "${github_tag[libtorrent]}" "libtorrent" "$2" + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow_light}You must provide a tag for this switch:${color_end} ${color_blue_light}${1} TAG ${color_end}" + exit + fi + ;; + -pr | --patch-repo) + if [[ -n "${2}" ]]; then + if _curl "https://github.com/${2}" &> /dev/null; then + qbt_patches_url="${2}" + else + printf '\n%b\n' " ${unicode_red_circle} ${color_yellow_light}This repo does not exist:${color_end}" + printf '\n%b\n' " ${color_cyan_light}https://github.com/${2}${color_end}" + printf '\n%b\n\n' " ${unicode_yellow_circle} ${color_yellow_light}Please provide a valid username and repo.${color_end}" + exit + fi + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow_light}You must provide a tag for this switch:${color_end} ${color_blue_light}${1} username/repo ${color_end}" + exit + fi + ;; + -qm | --qbittorrent-master) + github_tag[qbittorrent]="$(_git "${github_url[qbittorrent]}" -t "master")" + app_version[qbittorrent]="${github_tag[qbittorrent]#release-}" + qbt_workflow_override[qbittorrent]="yes" + source_archive_url[qbittorrent]="https://github.com/qbittorrent/qBittorrent/archive/refs/heads/${github_tag[qbittorrent]}.tar.gz" + _test_git_ouput "${github_tag[qbittorrent]}" "qbittorrent" "master" + shift + ;; + -qt | --qbittorrent-tag) + if [[ -n "${2}" ]]; then + github_tag[qbittorrent]="$(_git "${github_url[qbittorrent]}" -t "$2")" + app_version[qbittorrent]="${github_tag[qbittorrent]#release-}" + if [[ "${github_tag[qbittorrent]}" =~ ^release- ]]; then + source_archive_url[qbittorrent]="https://github.com/qbittorrent/qBittorrent/archive/refs/tags/${github_tag[qbittorrent]}.tar.gz" + else + source_archive_url[qbittorrent]="https://github.com/qbittorrent/qBittorrent/archive/refs/heads/${github_tag[qbittorrent]}.tar.gz" + fi + qbt_workflow_override[qbittorrent]="yes" + _test_git_ouput "${github_tag[qbittorrent]}" "qbittorrent" "$2" + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow_light}You must provide a tag for this switch:${color_end} ${color_blue_light}${1} TAG ${color_end}" + exit + fi + ;; + -qtt | --qt-tag) + if [[ -n "${2}" ]]; then + github_tag[qtbase]="$(_git "${github_url[qtbase]}" -t "${2}")" + github_tag[qttools]="$(_git "${github_url[qttools]}" -t "${2}")" + app_version[qtbase]="$(printf '%s' "${github_tag[qtbase]#v}" | sed 's/-lts-lgpl//g')" + app_version[qttools]="$(printf '%s' "${github_tag[qttools]#v}" | sed 's/-lts-lgpl//g')" + source_default[qtbase]="folder" + source_default[qttools]="folder" + qbt_workflow_override[qtbase]="yes" + qbt_workflow_override[qttools]="yes" + qbt_qt_version="${app_version[qtbase]%%.*}" + read -ra qt_version_short_array <<< "${app_version[qtbase]//\./ }" + qt_version_short="${qt_version_short_array[0]}.${qt_version_short_array[1]}" + _test_git_ouput "${github_tag[qtbase]}" "qtbase" "${2}" + _test_git_ouput "${github_tag[qttools]}" "qttools" "${2}" + + if [[ $qbt_build_tool == "cmake" && "${2}" =~ ^v5 ]]; then + printf '\n%b\n' " ${unicode_red_circle} Please use a correct qt and build tool combination" + printf '\n%b\n' " ${unicode_green_circle} qt5 + qmake ${unicode_green_circle} qt6 + cmake ${unicode_red_circle} qt5 + cmake ${unicode_red_circle} qt6 + qmake" + _print_env + exit 1 + fi + shift 2 + else + printf '\n%b\n\n' " ${unicode_red_circle} ${color_yellow_light}You must provide a tag for this switch:${color_end} ${color_blue_light}${1} TAG ${color_end}" + exit + fi + ;; + -h | --help) + printf '\n%b\n\n' " ${text_bold}${text_underlined}Here are a list of available options${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-b${color_end} ${text_dim}or${color_end} ${color_blue_light}--build-directory${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-b${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-build-directory${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bt${color_end} ${text_dim}or${color_end} ${color_blue_light}--boost-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-boost-version${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--cmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-cmake${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-cd${color_end} ${text_dim}or${color_end} ${color_blue_light}--cache-directory${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-cd${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-cache-directory${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-d${color_end} ${text_dim}or${color_end} ${color_blue_light}--debug${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-d${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-debug${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-e${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-env${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-e${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-env${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-patches${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-patches${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-cmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-c${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-cmake${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-release${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-r${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-release${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-multi-arch${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-multi-arch${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--bootstrap-all${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-bs-a${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-bootstrap-all${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-i${color_end} ${text_dim}or${color_end} ${color_blue_light}--icu${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-i${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-icu${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-lm${color_end} ${text_dim}or${color_end} ${color_blue_light}--libtorrent-master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-lm${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-libtorrent-master${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-lt${color_end} ${text_dim}or${color_end} ${color_blue_light}--libtorrent-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-lt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-libtorrent-tag${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-m${color_end} ${text_dim}or${color_end} ${color_blue_light}--master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-m${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-master${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--multi-arch${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-ma${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-multi-arch${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-n${color_end} ${text_dim}or${color_end} ${color_blue_light}--no-delete${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-n${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-no-delete${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--optimise${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-o${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-optimise${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--proxy${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-p${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-proxy${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-pr${color_end} ${text_dim}or${color_end} ${color_blue_light}--patch-repo${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-pr${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-patch-repo${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-q${color_end} ${text_dim}or${color_end} ${color_blue_light}--qmake${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-q${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qmkae${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qm${color_end} ${text_dim}or${color_end} ${color_blue_light}--qbittorrent-master${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qm${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qbittorrent-master${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qt${color_end} ${text_dim}or${color_end} ${color_blue_light}--qbittorrent-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qbittorrent-tag${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-qtt${color_end} ${text_dim}or${color_end} ${color_blue_light}--qt-tag${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-qtt${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-qtt-tag${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-sdu${color_end} ${text_dim}or${color_end} ${color_blue_light}--script-debug-urls${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-sdu${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-script-debug-urls${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-si${color_end} ${text_dim}or${color_end} ${color_blue_light}--static-ish${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-s${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-strip${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-s${color_end} ${text_dim}or${color_end} ${color_blue_light}--strip${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-s${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-strip${color_end}" + printf '%b\n' " ${color_green}Use:${color_end} ${color_blue_light}-wf${color_end} ${text_dim}or${color_end} ${color_blue_light}--workflow${color_end} ${color_yellow}Help:${color_end} ${color_blue_light}-h-wf${color_end} ${text_dim}or${color_end} ${color_blue_light}--help-workflow${color_end}" + printf '\n%b\n' " ${text_bold}${text_underlined}Module specific help - flags are used with the modules listed here.${color_end}" + printf '\n%b\n' " ${color_green}Use:${color_end} ${color_magenta_light}all${color_end} ${text_dim}or${color_end} ${color_magenta_light}module-name${color_end} ${color_green}Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_magenta_light}all${color_end} ${color_blue_light}-i${color_end}" + printf '\n%b\n' " ${text_dim}${color_magenta_light}all${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_yellow_light}optional${color_end} ${text_dim}Recommended method to install all modules${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}install${color_end} ${text_dim}------------${color_end} ${text_dim}${color_yellow_light}optional${color_end} ${text_dim}Install the ${text_dim}${color_cyan_light}${qbt_install_dir_short}/completed/qbittorrent-nox${color_end} ${text_dim}binary${color_end}" + [[ "${os_id}" =~ ^(debian|ubuntu)$ ]] && printf '%b\n' " ${text_dim}${color_magenta_light}glibc${color_end} ${text_dim}--------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build libc locally to statically link nss${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}zlib${color_end} ${text_dim}---------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build zlib locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}iconv${color_end} ${text_dim}--------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build iconv locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}icu${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_yellow_light}optional${color_end} ${text_dim}Build ICU locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}openssl${color_end} ${text_dim}------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build openssl locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}boost${color_end} ${text_dim}--------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Download, extract and build the boost library files${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}libtorrent${color_end} ${text_dim}---------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build libtorrent locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}double_conversion${color_end} ${text_dim}--${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}A cmake + Qt6 build component on modern OS only.${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}qtbase${color_end} ${text_dim}-------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build qtbase locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}qttools${color_end} ${text_dim}------------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build qttools locally${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}qbittorrent${color_end} ${text_dim}--------${color_end} ${text_dim}${color_red_light}required${color_end} ${text_dim}Build qbittorrent locally${color_end}" + printf '\n%b\n' " ${text_bold}${text_underlined}env help - supported exportable environment variables${color_end}" + printf '\n%b\n' " ${text_dim}${color_magenta_light}export qbt_build_dir=\"\"${color_end} ${text_dim}-----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}path - a valid path${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_libtorrent_version=\"\"${color_end} ${text_dim}--------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}1.2 | 2.0${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_qt_version=\"\"${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}5 | 5.15 | 6 | 6.2 | 6.3 and so on${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_build_tool=\"\"${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}qmake | cmake - The default if empty is cmake ${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_cross_name=\"\"${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}x86_64 | aarch64 | armv7 | armhf${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_patches_url=\"\"${color_end} ${text_dim}---------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}userdocs/qbittorrent-nox-static${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_libtorrent_tag=\"\"${color_end} ${text_dim}------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}Takes a valid git tag or branch for libtorrent${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_qbittorrent_tag=\"\"${color_end} ${text_dim}-----------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}Takes a valid git tag or branch for qbittorrent${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_boost_tag=\"\"${color_end} ${text_dim}-----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}Takes a valid git tag or branch for boost${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_qt_tag=\"\"${color_end} ${text_dim}--------------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}Takes a valid git tag or branch for Qt${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_workflow_files=\"\"${color_end} ${text_dim}------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - use qbt-workflow-files for dependencies${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_workflow_artifacts=\"\"${color_end} ${text_dim}--------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - use qbt_workflow_artifacts for dependencies${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_cache_dir=\"\"${color_end} ${text_dim}-----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}path | empty - provide a path to a cache directory${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_libtorrent_master_jamfile=\"\"${color_end} ${text_dim}-${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - use RC branch instead of release jamfile${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_optimise_strip=\"\"${color_end} ${text_dim}------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - strip binaries - cannot be used with debug${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_build_debug=\"\"${color_end} ${text_dim}---------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - debug build - cannot be used with strip${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_standard=\"\"${color_end} ${text_dim}------------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}14 | 17 | 20 | 23 - c standard for gcc - OS dependendent${color_end}" + printf '%b\n' " ${text_dim}${color_magenta_light}export qbt_static_ish=\"\"${color_end} ${text_dim}----------------${color_end} ${text_dim}${color_red_light}options${color_end} ${text_dim}yes | no - libc linking - link dynamically to host libc${color_end}" + _print_env + exit + ;; + -h-b | --help-build-directory) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Default build location: ${color_cyan}${qbt_install_dir_short}${color_end}" + printf '\n%b\n' " ${color_blue_light}-b${color_end} or ${color_blue_light}--build-directory${color_end} to set the location of the build directory." + printf '\n%b\n' " ${color_yellow}Paths are relative to the script location. I recommend that you use a full path.${color_end}" + printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}all${color_end} ${text_dim}- Will install all modules and build libtorrent to the default build location${color_end}" + printf '\n%b\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}module${color_end} ${text_dim}- Will install a single module to the default build location${color_end}" + printf '\n%b\n\n' " ${text_dim}${unicode_blue_light_circle} Usage example:${color_end} ${text_dim}${color_green}${qbt_working_dir_short}/${script_basename}${color_end} ${text_dim}${color_magenta_light}module${color_end} ${color_blue_light}-b${color_end} ${text_dim}${color_cyan_light}\"\$HOME/build\"${color_end} ${text_dim}- will specify a custom build directory and install a specific module use to that custom location${color_end}" + exit + ;; + -h-bs-e | --help-bootstrap-env) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Create the template env file ${color_cyan}.qbt_env${color_end}" + printf '\n%b\n' " Notes:" + printf '\n%b\n' " ${unicode_yellow_circle} If you use ${color_blue_light}-bs-e${color_end} it will create a default env file with empty vars and exit" + printf '\n%b\n\n' " ${unicode_yellow_circle} Order of priotiry: script flags > env file > env vars" + exit + ;; + -h-bs-p | --help-bootstrap-patches) + _apply_patches bootstrap-help + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Creates dirs in this structure: ${color_cyan}${qbt_install_dir_short}/patches/app_name/tag/patch${color_end}" + printf '\n%b\n' " Add your patches there, for example." + printf '\n%b\n' " ${color_cyan}${qbt_install_dir_short}/patches/libtorrent/${app_version[libtorrent]}/patch${color_end}" + printf '\n%b\n\n' " ${color_cyan}${qbt_install_dir_short}/patches/qbittorrent/${app_version[qbittorrent]}/patch${color_end}" + exit + ;; + -h-bs-c | --help-bootstrap-cmake) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This bootstrap will install cmake and ninja build to the build directory" + printf '\n%b\n\n'"${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-c${color_end}" + exit + ;; + -h-bs-r | --help-bootstrap-release) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' "${color_red_light} Github action specific. You probably dont need it${color_end}" + printf '\n%b\n' " This switch creates some github release template files in this directory" + printf '\n%b\n' " ${qbt_install_dir_short}/release_info" + printf '\n%b\n\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-r${color_end}" + exit + ;; + -h-bs-ma | --help-bootstrap-multi-arch) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action and Alpine specific. You probably dont need it${color_end}" + printf '\n%b\n' " This switch bootstraps the musl cross build files needed for any provided and supported architecture" + printf '\n%b\n' " ${unicode_yellow_circle} armhf" + printf '%b\n' " ${unicode_yellow_circle} armv7" + printf '%b\n' " ${unicode_yellow_circle} aarch64" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" + printf '\n%b\n\n' " ${unicode_yellow_circle} You can also set it as a variable to trigger cross building: ${color_blue_light}export qbt_cross_name=${qbt_cross_name:-aarch64}${color_end}" + exit + ;; + -h-bs-a | --help-bootstrap-all) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action specific and Alpine only. You probably dont need it${color_end}" + printf '\n%b\n' " Performs all bootstrapping options" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-a${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Patches${color_end}" + printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Release info${color_end}" + printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Cmake and ninja build${color_end} if the ${color_blue_light}-c${color_end} flag is passed" + printf '%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Multi arch${color_end} if the ${color_blue_light}-ma${color_end} flag is passed" + printf '\n%b\n' " Equivalent of doing: ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs -bs-r${color_end}" + printf '\n%b\n\n' " And with ${color_blue_light}-c${color_end} and ${color_blue_light}-ma${color_end} : ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs -bs-c -bs-ma -bs-r ${color_end}" + exit + ;; + -h-bt | --help-boost-tag) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This will let you set a specific version of boost to use with older build combos" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-bt boost-1.81.0${color_end}" + printf '\n%b\n\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-bt boost-1.82.0.beta1${color_end}" + exit + ;; + -h-c | --help-cmake) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This flag can change the build process in a few ways." + printf '\n%b\n' " ${unicode_yellow_circle} Use cmake to build libtorrent." + printf '%b\n' " ${unicode_yellow_circle} Use cmake to build qbittorrent." + printf '\n%b\n\n' " ${unicode_yellow_circle} This is the default setting for the script." + exit + ;; + -h-cd | --help-cache-directory) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This will let you set a path of a directory that contains cached github repos of modules" + printf '\n%b\n' " ${unicode_yellow_circle} Cached apps folder names must match the module name. Case and spelling" + printf '\n%b\n' " For example: ${color_cyan_light}~/cache_dir/qbittorrent${color_end}" + printf '\n%b\n' " Additonal flags supported: ${color_cyan_light}rm${color_end} - remove the cache directory and exit" + printf '\n%b\n' " Additonal flags supported: ${color_cyan_light}bs${color_end} - download cache for all activated modules then exit" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-cd ~/cache_dir${color_end}" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-cd ~/cache_dir rm${color_end}" + printf '\n%b\n\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-cd ~/cache_dir bs${color_end}" + exit + ;; + -h-d | --help-debug) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n\n' " Enables debug symbols for libtorrent and qbitorrent when building - required for gdb backtrace" + exit + ;; + -h-n | --help-no-delete) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Skip all delete functions for selected modules to leave source code directories behind." + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-n${color_end}" + exit + ;; + -h-i | --help-icu) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Use ICU libraries when building qBittorrent. Final binary size will be around ~50Mb" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-i${color_end}" + exit + ;; + -h-m | --help-master) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Always use the master branch for ${color_green}libtorrent RC_${qbt_libtorrent_version//./_}${color_end}" + printf '\n%b\n' " Always use the master branch for ${color_green}qBittorrent" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-lm${color_end}" + exit + ;; + -h-ma | --help-multiarch) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_red_circle}${color_red_light} Github action and Alpine specific. You probably dont need it${color_end}" + printf '\n%b\n' " This switch will make the script use the cross build configuration for these supported architectures" + printf '\n%b\n' " ${unicode_yellow_circle} armhf" + printf '%b\n' " ${unicode_yellow_circle} armv7" + printf '%b\n' " ${unicode_yellow_circle} aarch64" + printf '\n%b\n' "${color_green_light} Usage:${color_end} ${color_cyan_light}${qbt_working_dir_short}/${script_basename}${color_end} ${color_blue_light}-bs-ma ${qbt_cross_name:-aarch64}${color_end}" + printf '\n%b\n\n' " ${unicode_yellow_circle} You can also set it as a variable to trigger cross building: ${color_blue_light}export qbt_cross_name=${qbt_cross_name:-aarch64}${color_end}" + exit + ;; + -h-lm | --help-libtorrent-master) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Always use the master branch for ${color_green}libtorrent-${qbt_libtorrent_version}${color_end}" + printf '\n%b\n' " This master that will be used is: ${color_green}RC_${qbt_libtorrent_version//./_}${color_end}" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-lm${color_end}" + exit + ;; + -h-lt | --help-libtorrent-tag) + if [[ ! "${github_tag[libtorrent]}" =~ (error_tag|error_22) ]]; then + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Use a provided libtorrent tag when cloning from github." + printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -lt ${color_cyan_light}${github_tag[libtorrent]}${color_end} ${color_blue_light}-h-lt${color_end}" + printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" + printf '\n%b\n' " ${color_blue_light}-lt${color_end} ${color_cyan_light}${github_tag[libtorrent]}${color_end}" + fi + printf '\n' + exit + ;; + -h-o | --help-optimise) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Warning:${color_end} using this flag will mean your static build is limited a CPU that matches the host spec" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-o \"-my -custom --flags\"${color_end}" + printf '\n%b\n' " Notes:" + printf '\n%b\n\n' " ${color_cyan_light}-march=native${color_end} is always passed if this flag is used unless crosscompiling" + exit + ;; + -h-p | --help-proxy) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Specify a proxy URL and PORT to use with curl and git" + printf '\n%b\n' " ${unicode_blue_light_circle} Usage examples:" + printf '\n%b\n' " ${color_blue_light}-p${color_end} ${color_cyan_light}username:password@https://123.456.789.321:8443${color_end}" + printf '\n%b\n' " ${color_blue_light}-p${color_end} ${color_cyan_light}https://proxy.com:12345${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} Call this before the help option to see outcome dynamically:" + printf '\n%b\n\n' " ${color_blue_light}-p${color_end} ${color_cyan_light}https://proxy.com:12345${color_end} ${color_blue_light}-h-p${color_end}" + [[ -n "${qbt_curl_proxy[*]}" ]] && printf '%b\n' " proxy command: ${color_cyan_light}${qbt_curl_proxy[*]}${text_newline}${color_end}" + exit + ;; + -h-pr | --help-patch-repo) + _apply_patches bootstrap-help + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Specify a username and repo to use patches hosted on github${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}There is a specific github directory format you need to use with this flag${color_end}" + printf '\n%b\n' " ${color_cyan_light}patches/libtorrent/${app_version[libtorrent]}/patch${color_end}" + printf '%b\n' " ${color_cyan_light}patches/libtorrent/${app_version[libtorrent]}/Jamfile${color_end} ${color_red_light}(defaults to branch master)${color_end}" + printf '\n%b\n' " ${color_cyan_light}patches/qbittorrent/${app_version[qbittorrent]}/patch${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}If an installation tag matches a hosted tag patch file, it will be automatically used.${color_end}" + printf '\n%b\n' " The tag name will alway be an abbreviated version of the default or specificed tag.${color_end}" + printf '\n%b\n\n' " ${unicode_blue_light_circle} ${color_green}Usage example:${color_end} ${color_blue_light}-pr usnerame/repo${color_end}" + exit + ;; + -h-q | --help-qmake) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " This flag can change the build process in a few ways." + printf '\n%b\n' " ${unicode_yellow_circle} Use configure scripts to build apps" + printf '%b\n' " ${unicode_yellow_circle} Use qmake to build qtbase, qttools and qbittorrent." + printf '\n%b\n\n' " ${unicode_yellow_circle} You can use this flag to build older build combinations that don't use cmake" + exit + ;; + -h-qm | --help-qbittorrent-master) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Always use the master branch for ${color_green}qBittorrent${color_end}" + printf '\n%b\n' " This master that will be used is: ${color_green}master${color_end}" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-qm${color_end}" + exit + ;; + -h-qt | --help-qbittorrent-tag) + if [[ ! "${github_tag[qbittorrent]}" =~ (error_tag|error_22) ]]; then + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Use a provided qBittorrent tag when cloning from github." + printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qbittorrent]}${color_end} ${color_blue_light}-h-qt${color_end}" + printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" + printf '\n%b\n' " ${color_blue_light}-qt${color_end} ${color_cyan_light}${github_tag[qbittorrent]}${color_end}" + fi + printf '\n' + exit + ;; + -h-qtt | --help-qt-tag) + if [[ ! "${github_tag[qtbase]}" =~ (error_tag|error_22) ]]; then + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Use a provided Qt tag when cloning from github." + printf '\n%b\n' " ${color_yellow}You can use this flag with this help command to see the value if called before the help option.${color_end}" + printf '\n%b\n' " ${color_green}${qbt_working_dir_short}/${script_basename}${color_end}${color_blue_light} -qt ${color_cyan_light}${github_tag[qtbase]}${color_end} ${color_blue_light}-h-qt${color_end}" + printf '\n%b\n' " ${text_dim}This flag must be provided with arguments.${color_end}" + printf '\n%b\n' " ${color_blue_light}-qt${color_end} ${color_cyan_light}${github_tag[qtbase]}${color_end}" + fi + printf '\n' + exit + ;; + -h-s | --help-strip) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Strip the qbittorrent-nox binary of unneeded symbols to decrease file size" + printf '\n%b\n' " ${unicode_yellow_circle} Static musl builds don't work with qBittorrents built in stacktrace." + printf '\n%b\n' " If you need to debug a build with gdb you must build a debug build using the flag ${color_blue_light}-d${color_end}" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-s${color_end}" + exit + ;; + -h-si | --help-static-ish) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " Do not statically link libc (glibc/muslc) when building qbittorrent-nox" + printf '\n%b\n' " ${text_dim}This flag is provided with no arguments.${color_end}" + printf '\n%b\n\n' " ${color_blue_light}-si${color_end}" + exit + ;; + -h-sdu | --help-script-debug-urls) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_blue_light_circle} This will print out all the ${color_yellow_light}_set_module_urls${color_end} array info to check" + printf '\n%b\n\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-sdu${color_end}" + exit + ;; + -h-wf | --help-workflow) + printf '\n%b\n' " ${unicode_cyan_light_circle} ${text_bold}${text_underlined}Here is the help description for this flag:${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} Use archives from ${color_cyan_light}https://github.com/userdocs/qbt-workflow-files/releases/latest${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle} ${color_yellow_light}Warning:${color_end} If you set a custom version for supported modules it will override and disable workflows as a source for that module" + printf '\n%b\n\n' " ${unicode_blue_light_circle} Usage example: ${color_blue_light}-wf${color_end}" + exit + ;; + --) # end argument parsing + shift + break + ;; + -*) # unsupported flags + printf '\n%b\n\n' " ${unicode_red_circle} Error: Unsupported flag ${color_red_light}${1}${color_end} - use ${color_green_light}-h${color_end} or ${color_green_light}--help${color_end} to see the valid options${color_end}" >&2 + exit 1 + ;; + *) # preserve positional arguments + params2+=("${1}") + shift + ;; + esac +done +set -- "${params2[@]}" # Set positional arguments in their proper place. +####################################################################################################################################################### +# Functions part 2: Use some of our functions +####################################################################################################################################################### +[[ "${1}" == "install" ]] && _install_qbittorrent "${@}" # see functions +####################################################################################################################################################### +# Lets dip out now if we find that any github tags failed validation or the urls are invalid +####################################################################################################################################################### +_error_tag +####################################################################################################################################################### +# Functions part 3: Any functions that require that params in the above options while loop to have been shifted must come after this line +####################################################################################################################################################### +_set_cxx_standard +_set_build_cons +_debug "${@}" # requires shifted params from options block 2 +_installation_modules "${@}" # requires shifted params from options block 2 +####################################################################################################################################################### +# If any modules fail the qbt_modules_test then exit now. +####################################################################################################################################################### +if [[ "${qbt_modules_test}" == 'fail' || "${#}" -eq '0' ]]; then + printf '\n%b\n' " ${text_blink}${unicode_red_circle}${color_end}${text_bold} One or more of the provided modules are not supported${color_end}" + printf '\n%b\n' " ${unicode_yellow_circle}${text_bold} Below is a list of supported modules${color_end}" + printf '\n%b\n' " ${unicode_magenta_circle}${color_magenta_light} ${qbt_modules_install_processed[*]}${color_end}" + _print_env + exit +fi +####################################################################################################################################################### +# Functions part 4: +####################################################################################################################################################### +_cmake +_multi_arch +####################################################################################################################################################### +# shellcheck disable=SC2317 +_glibc_bootstrap() { + sub_dir="/BUILD" +} +# shellcheck disable=SC2317 +_glibc() { + "${qbt_dl_folder_path}/configure" "${multi_glibc[@]}" --prefix="${qbt_install_dir}" --enable-static-nss --disable-nscd --srcdir="${qbt_dl_folder_path}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/$app_name.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + + unset sub_dir +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_zlib() { + if [[ "${qbt_build_tool}" == "cmake" ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + # force set some ARCH when using zlib-ng, cmake and musl-cross since it does not detect the arch correctly on Alpine. + [[ "${qbt_cross_target}" =~ ^(alpine)$ ]] && printf '%b\n' "\narchfound ${qbt_zlib_arch:-$(apk --print-arch)}" >> "${qbt_dl_folder_path}/cmake/detect-arch.c" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_CXX_STANDARD="${qbt_standard}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ + -D BUILD_SHARED_LIBS=OFF \ + -D ZLIB_COMPAT=ON \ + -D WITH_GTEST=OFF \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + else + # force set some ARCH when using zlib-ng, configure and musl-cross since it does not detect the arch correctly on Alpine. + [[ "${qbt_cross_target}" =~ ^(alpine)$ ]] && sed "s| CFLAGS=\"-O2 \${CFLAGS}\"| ARCH=${qbt_zlib_arch:-$(apk --print-arch)}\n CFLAGS=\"-O2 \${CFLAGS}\"|g" -i "${qbt_dl_folder_path}/configure" + ./configure --prefix="${qbt_install_dir}" --static --zlib-compat |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_iconv() { + if [[ -n "${qbt_cache_dir}" && -d "${qbt_cache_dir}/${app_name}" ]]; then + ./gitsub.sh pull --depth 1 + ./autogen.sh + fi + + ./configure "${multi_iconv[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_icu_bootstrap() { + if [[ -n "${qbt_cache_dir}" && -d "${qbt_cache_dir}/${app_name}" && "${qbt_workflow_files}" == "no" ]]; then + sub_dir="/icu4c/source" + else + sub_dir="/source" + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_icu() { + if [[ "${multi_arch_options[${qbt_cross_name:-default}]}" == "${qbt_cross_name}" ]]; then + mkdir -p "${qbt_install_dir}/${app_name}/cross" + _pushd "${qbt_install_dir}/${app_name}/cross" + "${qbt_install_dir}/${app_name}${sub_dir}/runConfigureICU" Linux/gcc + make -j"$(nproc)" + _pushd "${qbt_install_dir}/${app_name}${sub_dir}" + fi + + ./configure "${multi_icu[@]}" --prefix="${qbt_install_dir}" --disable-shared --enable-static --disable-samples --disable-tests --with-data-packaging=static |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + + unset sub_dir +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_openssl() { + "${multi_openssl[@]}" --prefix="${qbt_install_dir}" --libdir="${lib_dir##*/}" --openssldir="/etc/ssl" threads no-shared no-dso no-comp no-docs |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install_sw |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_boost_bootstrap() { + # If using source files and the source fails, default to git, if we are not using workflows sources. + if [[ "${boost_url_status}" =~ (403|404) && "${qbt_workflow_files}" == "no" && "${qbt_workflow_artifacts}" == "no" ]]; then + source_default["${app_name}"]="folder" + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_boost() { + if [[ "${source_default["${app_name}"]}" == "file" ]]; then + mv -f "${qbt_dl_folder_path}/" "${qbt_install_dir}/boost" + _pushd "${qbt_install_dir}/boost" + fi + + if [[ "${qbt_build_tool}" != 'cmake' ]]; then + "${qbt_install_dir}/boost/bootstrap.sh" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + ln -s "${qbt_install_dir}/boost/boost" "${qbt_install_dir}/boost/include" + else + printf '%b\n' " ${unicode_yellow_circle} Skipping b2 as we are using cmake with Qt6" + fi + + if [[ "${source_default["${app_name}"]}" == "folder" ]]; then + "${qbt_install_dir}/boost/b2" headers |& _tee "${qbt_install_dir}/logs/${app_name}.log" + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_libtorrent() { + export BOOST_ROOT="${qbt_install_dir}/boost" + export BOOST_INCLUDEDIR="${qbt_install_dir}/boost" + export BOOST_BUILD_PATH="${qbt_install_dir}/boost" + + if [[ "${qbt_build_tool}" == 'cmake' ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + "${multi_libtorrent[@]}" \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_BUILD_TYPE="Release" \ + -D CMAKE_CXX_STANDARD="${qbt_standard}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir};${qbt_install_dir}/boost" \ + -D Boost_NO_BOOST_CMAKE=TRUE \ + -D BUILD_SHARED_LIBS=OFF \ + -D Iconv_LIBRARY="${lib_dir}/libiconv.a" \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + else + [[ ${qbt_cross_name} =~ ^(armhf|armv7)$ ]] && arm_libatomic="-l:libatomic.a" + # Check the actual version of the cloned libtorrent instead of using the tag so that we can determine RC_1_1, RC_1_2 or RC_2_0 when a custom pr branch was used. This will always give an accurate result. + libtorrent_version_hpp="$(sed -rn 's|(.*)LIBTORRENT_VERSION "(.*)"|\2|p' include/libtorrent/version.hpp)" + if [[ "${libtorrent_version_hpp}" =~ ^1\.1\. ]]; then + libtorrent_library_filename="libtorrent.a" + else + libtorrent_library_filename="libtorrent-rasterbar.a" + fi + + if [[ "${libtorrent_version_hpp}" =~ ^2\. ]]; then + lt_version_options=() + libtorrent_libs="-l:libboost_system.a -l:${libtorrent_library_filename} -l:libtry_signal.a ${arm_libatomic}" + lt_cmake_flags="-DTORRENT_USE_LIBCRYPTO -DTORRENT_USE_OPENSSL -DTORRENT_USE_I2P=1 -DBOOST_ALL_NO_LIB -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_HAS_STD_CHRONO -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DTORRENT_SSL_PEERS -DBOOST_ASIO_NO_DEPRECATED" + else + lt_version_options=("iconv=on") + libtorrent_libs="-l:libboost_system.a -l:${libtorrent_library_filename} ${arm_libatomic} -l:libiconv.a" + lt_cmake_flags="-DTORRENT_USE_LIBCRYPTO -DTORRENT_USE_OPENSSL -DTORRENT_USE_I2P=1 -DBOOST_ALL_NO_LIB -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_HAS_STD_CHRONO -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_SYSTEM_STATIC_LINK=1 -DTORRENT_USE_ICONV=1" + fi + + "${qbt_install_dir}/boost/b2" "${multi_libtorrent[@]}" -j"$(nproc)" "${lt_version_options[@]}" address-model="${bitness:-$(getconf LONG_BIT)}" "${qbt_libtorrent_debug}" optimization=speed cxxstd="${qbt_standard}" dht=on encryption=on crypto=openssl i2p=on extensions=on variant=release threading=multi link=static boost-link=static install --prefix="${qbt_install_dir}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + libtorrent_strings_version="$(strings -d "${lib_dir}/${libtorrent_library_filename}" | grep -Eom1 "^libtorrent/[0-9]\.(.*)")" # ${libtorrent_strings_version#*/} + cat > "${PKG_CONFIG_PATH}/libtorrent-rasterbar.pc" <<- LIBTORRENT_PKG_CONFIG + prefix=${qbt_install_dir} + libdir=\${prefix}/lib + includedir=\${prefix}/include + + Name: libtorrent-rasterbar + Description: The libtorrent-rasterbar libraries + Version: ${libtorrent_strings_version#*/} + + Requires: + Libs: -L\${libdir} ${libtorrent_libs} + Cflags: -I\${includedir} -I${BOOST_ROOT} ${lt_cmake_flags} + LIBTORRENT_PKG_CONFIG + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_double_conversion() { + if [[ "${qbt_build_tool}" == 'cmake' && "${qbt_qt_version}" =~ ^6 ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + "${multi_double_conversion[@]}" \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ + -D CMAKE_INSTALL_LIBDIR=lib \ + -D BUILD_SHARED_LIBS=OFF \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_qtbase() { + + cat > "mkspecs/${qbt_cross_qtbase}/qmake.conf" <<- QT_MKSPECS + MAKEFILE_GENERATOR = UNIX + CONFIG += incremental + QMAKE_INCREMENTAL_STYLE = sublib + + include(../common/linux.conf) + QT_MKSPECS + + if [[ "${qbt_cross_name}" =~ ^(x86|x86_64)$ ]]; then + cat >> "mkspecs/${qbt_cross_qtbase}/qmake.conf" <<- QT_MKSPECS + + QMAKE_CFLAGS = -m${bitness:-$(getconf LONG_BIT)} + QMAKE_LFLAGS = -m${bitness:-$(getconf LONG_BIT)} + + QT_MKSPECS + fi + + cat >> "mkspecs/${qbt_cross_qtbase}/qmake.conf" <<- QT_MKSPECS + include(../common/gcc-base-unix.conf) + include(../common/g++-unix.conf) + + # modifications to g++.conf + QMAKE_CC = ${qbt_cross_host}-gcc + QMAKE_CXX = ${qbt_cross_host}-g++ + QMAKE_LINK = ${qbt_cross_host}-g++ + QMAKE_LINK_SHLIB = ${qbt_cross_host}-g++ + + # modifications to linux.conf + QMAKE_AR = ${qbt_cross_host}-ar cqs + QMAKE_OBJCOPY = ${qbt_cross_host}-objcopy + QMAKE_NM = ${qbt_cross_host}-nm -P + QMAKE_STRIP = ${qbt_cross_host}-strip + + load(qt_config) + QT_MKSPECS + + if [[ "${qbt_build_tool}" == 'cmake' && "${qbt_qt_version}" =~ ^6 ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + "${multi_libtorrent[@]}" \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_BUILD_TYPE="release" \ + -D QT_FEATURE_optimize_full=on -D QT_FEATURE_static=on -D QT_FEATURE_shared=off \ + -D QT_FEATURE_gui=off -D QT_FEATURE_openssl_linked=on -D QT_FEATURE_dbus=off \ + -D QT_FEATURE_system_pcre2=off -D QT_FEATURE_widgets=off \ + -D FEATURE_androiddeployqt=OFF -D FEATURE_animation=OFF \ + -D QT_FEATURE_testlib=off -D QT_BUILD_EXAMPLES=off -D QT_BUILD_TESTS=off \ + -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF -D QT_BUILD_TESTS_BY_DEFAULT=OFF \ + -D CMAKE_CXX_STANDARD="${qbt_standard}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ + -D BUILD_SHARED_LIBS=OFF \ + -D CMAKE_SKIP_RPATH=on -D CMAKE_SKIP_INSTALL_RPATH=on \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + elif [[ "${qbt_qt_version}" =~ ^5 ]]; then + if [[ "${qbt_skip_icu}" == "no" ]]; then + icu=("-icu" "-no-iconv" "QMAKE_CXXFLAGS=-w -fpermissive") + else + icu=("-no-icu" "-iconv" "QMAKE_CXXFLAGS=-w -fpermissive") + fi + # Fix 5.15.4 to build on gcc 11 + sed '/^# include /a # include ' -i "src/corelib/global/qglobal.h" + # Don't strip by default by disabling these options. We will set it as off by default and use it with a switch + printf '%b\n' "CONFIG += ${qbt_strip_qmake}" >> "mkspecs/common/linux.conf" + ./configure "${multi_qtbase[@]}" -prefix "${qbt_install_dir}" "${icu[@]}" -opensource -confirm-license -release \ + -openssl-linked -static -c++std "${qbt_cxx_standard}" -qt-pcre \ + -no-feature-glib -no-feature-opengl -no-feature-dbus -no-feature-gui -no-feature-widgets -no-feature-testlib -no-compile-examples \ + -skip tests -nomake tests -skip examples -nomake examples \ + -I "${include_dir}" -L "${lib_dir}" QMAKE_LFLAGS="${LDFLAGS}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + else + printf '\n%b\n' " ${unicode_red_circle} Please use a correct qt and build tool combination" + printf '\n%b\n\n' " ${unicode_green_circle} qt5 + qmake ${unicode_green_circle} qt6 + cmake ${unicode_red_circle} qt5 + cmake ${unicode_red_circle} qt6 + qmake" + exit 1 + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_qttools() { + if [[ "${qbt_build_tool}" == 'cmake' && "${qbt_qt_version}" =~ ^6 ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + "${multi_libtorrent[@]}" \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_BUILD_TYPE="release" \ + -D CMAKE_CXX_STANDARD="${qbt_standard}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir}" \ + -D BUILD_SHARED_LIBS=OFF \ + -D CMAKE_SKIP_RPATH=on -D CMAKE_SKIP_INSTALL_RPATH=on \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + elif [[ "${qbt_qt_version}" =~ ^5 ]]; then + "${qbt_install_dir}/bin/qmake" -set prefix "${qbt_install_dir}" |& _tee "${qbt_install_dir}/logs/${app_name}.log" + "${qbt_install_dir}/bin/qmake" QMAKE_CXXFLAGS="-std=${qbt_cxx_standard} -static -w -fpermissive" QMAKE_LFLAGS="-static" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + else + printf '\n%b\n' " ${unicode_red_circle} Please use a correct qt and build tool combination" + printf '\n%b\n\n' " ${unicode_green_circle} qt5 + qmake ${unicode_green_circle} qt6 + cmake ${unicode_red_circle} qt5 + cmake ${unicode_red_circle} qt6 + qmake" + exit 1 + fi +} +####################################################################################################################################################### +# shellcheck disable=SC2317 +_qbittorrent() { + [[ "${os_id}" =~ ^(alpine)$ ]] && stacktrace="OFF" + + if [[ "${qbt_build_tool}" == 'cmake' ]]; then + mkdir -p "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}" + cmake -Wno-dev -Wno-deprecated --graphviz="${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" -G Ninja -B build \ + "${multi_qbittorrent[@]}" \ + -D CMAKE_VERBOSE_MAKEFILE="${qbt_cmake_debug}" \ + -D CMAKE_BUILD_TYPE="release" \ + -D QT6="${qbt_use_qt6}" \ + -D STACKTRACE="${stacktrace:-ON}" \ + -D CMAKE_CXX_STANDARD="${qbt_standard}" \ + -D CMAKE_PREFIX_PATH="${qbt_install_dir};${qbt_install_dir}/boost" \ + -D Boost_NO_BOOST_CMAKE=TRUE \ + -D Iconv_LIBRARY="${lib_dir}/libiconv.a" \ + -D GUI=OFF \ + -D CMAKE_INSTALL_PREFIX="${qbt_install_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + + cmake --build build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + cmake --install build |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + dot -Tpng -o "${qbt_install_dir}/completed/${app_name}-graph.png" "${qbt_install_dir}/graphs/${app_name}/${app_version["${app_name}"]}/dep-graph.dot" + else + ./bootstrap.sh |& _tee "${qbt_install_dir}/logs/${app_name}.log" + ./configure \ + QT_QMAKE="${qbt_install_dir}/bin" \ + --prefix="${qbt_install_dir}" \ + "${multi_qbittorrent[@]}" \ + "${qbt_qbittorrent_debug}" \ + --disable-gui \ + --with-boost="${qbt_install_dir}/boost" --with-boost-libdir="${lib_dir}" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + make -j"$(nproc)" |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + _post_command build + make install |& _tee -a "${qbt_install_dir}/logs/${app_name}.log" + fi + + [[ -f "${qbt_install_dir}/bin/qbittorrent-nox" ]] && cp -f "${qbt_install_dir}/bin/qbittorrent-nox" "${qbt_install_dir}/completed/qbittorrent-nox" +} +####################################################################################################################################################### +# A module installer loop. This will loop through the activated modules and install them via their corresponding functions +####################################################################################################################################################### +for app_name in "${qbt_modules_install_processed[@]}"; do + if [[ "${qbt_cache_dir_options}" != "bs" ]] && [[ ! -d "${qbt_install_dir}/boost" && "${app_name}" =~ (libtorrent|qbittorrent) ]]; then + printf '\n%b\n\n' " ${unicode_red_circle}${color_red_light} Warning${color_end} This module depends on the boost module. Use them together: ${color_magenta_light}boost ${app_name}${color_end}" + else + if [[ "${skip_modules["${app_name}"]}" == "no" ]]; then + ############################################################ + skipped_false=$((skipped_false + 1)) + ############################################################ + if command -v "_${app_name}_bootstrap" &> /dev/null; then + "_${app_name}_bootstrap" + fi + ######################################################## + _custom_flags + ############################################################ + _download + ############################################################ + [[ "${qbt_cache_dir_options}" == "bs" && "${skipped_false}" -eq "${#qbt_modules_install_processed[@]}" ]] && printf '\n' + [[ "${qbt_cache_dir_options}" == "bs" ]] && continue + ############################################################ + _apply_patches + ############################################################ + "_${app_name}" + ############################################################ + _fix_static_links + [[ "${app_name}" != "boost" ]] && _delete_function + fi + + if [[ "${#qbt_modules_selected_compare[@]}" -gt '0' ]]; then + printf '\n' + printf '%b' " ${unicode_magenta_light_circle} ${color_cyan_light}Activated modules:${color_end}" + for activated_modules in "${!qbt_modules_selected_compare[@]}"; do + if [[ "${qbt_activated_modules[${qbt_modules_selected_compare[$activated_modules]}]}" == "yes" ]]; then + printf '%b' " ${color_magenta_light}${qbt_modules_selected_compare[$activated_modules]}${color_end}" + else + printf '%b' " ${text_dim}${qbt_modules_selected_compare[$activated_modules]}${color_end}" + fi + done + printf '\n' + fi + + [[ "${skipped_false}" -eq "${#qbt_modules_install_processed[@]}" ]] && printf '\n' + fi + _pushd "${qbt_working_dir}" +done +####################################################################################################################################################### +# We are all done so now exit +####################################################################################################################################################### +exit diff --git a/todo.md b/todo.md deleted file mode 100644 index 08940b77..00000000 --- a/todo.md +++ /dev/null @@ -1,2 +0,0 @@ -- cache & multiarch - - If you swap multiarch the target cache won't update the crossbuild toolset unless you delete it or bootstrap the cache; add some method to update/download correct toolset.

C0F@ObgW^SC8`JB|`-fyL@|#FSD5 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Ο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 literal 220111 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ϛ?3PHhD<1uHem8SfJm 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