diff --git a/.github/workflows/build-ui.yml b/.github/workflows/build-ui.yml index 22cf7c8bc5..0ac73f4230 100644 --- a/.github/workflows/build-ui.yml +++ b/.github/workflows/build-ui.yml @@ -981,6 +981,7 @@ jobs: - **Linux x64 (tarball):** [SubtitleEdit-Linux-x64.tar.gz](https://github.com/${{ github.repository }}/releases/download/${{ steps.tag.outputs.tag }}/SubtitleEdit-Linux-x64.tar.gz) - **Linux ARM64 (tarball, aarch64):** [SubtitleEdit-Linux-ARM64.tar.gz](https://github.com/${{ github.repository }}/releases/download/${{ steps.tag.outputs.tag }}/SubtitleEdit-Linux-ARM64.tar.gz) - **Linux x64 (Flatpak):** [SubtitleEdit-linux-x64.flatpak](https://github.com/${{ github.repository }}/releases/download/${{ steps.tag.outputs.tag }}/SubtitleEdit-linux-x64.flatpak) + - **Logitech Options+ plugin (optional):** [Logi Marketplace](https://marketplace.logi.com/plugin/SubtitleEdit/en) — the workflow also attaches the pinned, SHA-256-verified v1.3.1 package and its MIT license notice when the external download succeeds. ### Installation 1. Read and fix requirements, please see [System Requirements](https://github.com/SubtitleEdit/subtitleedit#-system-requirements) @@ -1004,6 +1005,69 @@ jobs: ./release-assets/SubtitleEdit-Linux-ARM64.tar.gz ./release-assets/SubtitleEdit-linux-x64.flatpak + attach-logi-plugin: + # Optional third-party release asset. Keep it outside create-release so an outage in + # the external plugin repository cannot block Subtitle Edit's first-party release. + needs: [create-release] + runs-on: ubuntu-latest + continue-on-error: true + permissions: + contents: write + env: + LOGI_PLUGIN_REPO: muaz978/subtitleedit-logi-plugin + LOGI_PLUGIN_TAG: v1.3.1 + LOGI_PLUGIN_ASSET: SubtitleEdit_1_3_1.lplug4 + LOGI_PLUGIN_SHA256: ec5c6b5e28bfe6ed8b8cb4a919c1bb7dd512100523fba811c3c6b10c32a8ea54 + + steps: + - name: Download and verify pinned Logitech Options+ plugin + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -euo pipefail + gh release download "$LOGI_PLUGIN_TAG" \ + --repo "$LOGI_PLUGIN_REPO" \ + --pattern "$LOGI_PLUGIN_ASSET" \ + --output "$LOGI_PLUGIN_ASSET" + echo "$LOGI_PLUGIN_SHA256 $LOGI_PLUGIN_ASSET" | sha256sum -c - + mv "$LOGI_PLUGIN_ASSET" SubtitleEdit-LogiOptionsPlus-Plugin.lplug4 + + # Preserve the third-party MIT notice alongside the redistributed package. + # Source: muaz978/subtitleedit-logi-plugin, tag v1.3.1, LICENSE. + cat > SubtitleEdit-LogiOptionsPlus-Plugin-LICENSE.txt <<'EOF' + MIT License + + Copyright (c) 2026 Muaz Sabbagh + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + EOF + + - name: Attach verified Logitech Options+ plugin + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release upload "${{ needs.create-release.outputs.release_tag }}" \ + SubtitleEdit-LogiOptionsPlus-Plugin.lplug4 \ + SubtitleEdit-LogiOptionsPlus-Plugin-LICENSE.txt \ + --repo "${{ github.repository }}" \ + --clobber + call-seconv: needs: [create-release] uses: ./.github/workflows/build-seconv.yml