From ce7d3ee843f608662a0f52e122e65362cc53a4eb Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 28 Jan 2026 15:30:00 +0100 Subject: [PATCH 1/3] binary build: install cockpit,s3,sftp extras --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65841dbb4..9bf1f0a6c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -277,13 +277,13 @@ jobs: - name: Install borgbackup run: | if [[ "$TOXENV" == *"llfuse"* ]]; then - pip install -ve ".[llfuse]" + pip install -ve ".[llfuse,cockpit,s3,sftp]" elif [[ "$TOXENV" == *"pyfuse3"* ]]; then - pip install -ve ".[pyfuse3]" + pip install -ve ".[pyfuse3,cockpit,s3,sftp]" elif [[ "$TOXENV" == *"mfusepy"* ]]; then - pip install -ve ".[mfusepy]" + pip install -ve ".[mfusepy,cockpit,s3,sftp]" else - pip install -ve . + pip install -ve ".[cockpit,s3,sftp]" fi - name: Build Borg fat binaries (${{ matrix.binary }}) @@ -454,7 +454,7 @@ jobs: pip -V python -m pip install --upgrade pip wheel pip install -r requirements.d/development.txt - pip install -e ".[mfusepy]" + pip install -e ".[mfusepy,cockpit,s3,sftp]" tox -e py311-mfusepy if [[ "${{ matrix.do_binaries }}" == "true" && "${{ startsWith(github.ref, 'refs/tags/') }}" == "true" ]]; then @@ -638,7 +638,7 @@ jobs: run: | # build borg.exe . env/bin/activate - pip install -e . + pip install -e ".[cockpit,s3,sftp]" mkdir -p dist/binary pyinstaller -y --clean --distpath=dist/binary scripts/borg.exe.spec # build sdist and wheel in dist/... From 92ebb97ecb15fc186310d11f52076cc71c053a3e Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 28 Jan 2026 20:13:18 +0100 Subject: [PATCH 2/3] CI: add borg.exe to PATH --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bf1f0a6c..5f9590cff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -305,6 +305,8 @@ jobs: ./borg-dir/borg.exe -V tar czf borg.tgz borg-dir popd + # Ensure locally built binary in ./dist/binary/borg-dir is found during tests + export PATH="$GITHUB_WORKSPACE/dist/binary/borg-dir:$PATH" echo "borg.exe binary in PATH" borg.exe -V From 94d56e1c89e4447e6e50b71f245e534a077deb72 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 28 Jan 2026 21:58:50 +0100 Subject: [PATCH 3/3] pyinstaller: cockpit: add tcss file, add unicode data --- scripts/borg.exe.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/borg.exe.spec b/scripts/borg.exe.spec index 4e2e717df..5ab0fbbd3 100644 --- a/scripts/borg.exe.spec +++ b/scripts/borg.exe.spec @@ -12,7 +12,7 @@ basepath = os.path.abspath(os.path.join(here, '..')) if is_win32: hiddenimports = ['borghash'] else: - hiddenimports = ['borg.platform.posix', 'borghash'] + hiddenimports = ['borg.platform.posix', 'borghash', 'rich._unicode_data.unicode17-0-0'] block_cipher = None @@ -21,6 +21,7 @@ a = Analysis([os.path.join(basepath, 'src', 'borg', '__main__.py'), ], binaries=[], datas=[ (os.path.join(basepath, 'src', 'borg', 'paperkey.html'), 'borg'), + (os.path.join(basepath, 'src', 'borg', 'cockpit', 'cockpit.tcss'), os.path.join('borg', 'cockpit')), ], hiddenimports=hiddenimports, hookspath=[],