feat: include SSH helper binaries in Linux packages (#268)

* feat: copy SSH helper binaries from upstream installer

The upstream Claude Desktop now ships SSH helper binaries in
resources/claude-ssh/. Copy the architecture-matching Linux binary
and version.txt into the Electron resources directory during build,
enabling SSH mode support in Linux packages.

Only the binary for the target architecture is included to avoid
shipping unnecessary ~6MB binaries for other platforms/arches.

Refs #249

Co-Authored-By: Claude <claude@anthropic.com>

* refactor: simplify copy_ssh_helpers by removing redundant checks

The file existence checks after `cp ... || exit 1` were unreachable
dead code — if cp fails, the script already exits. Also quote the
variable in the -d test for style guide consistency.

Co-Authored-By: Claude <claude@anthropic.com>

---------

Co-authored-by: Claude <claude@anthropic.com>
This commit is contained in:
Aaddrick
2026-02-28 16:32:03 -05:00
committed by GitHub
parent a68acdca23
commit fd2451174b

View File

@@ -1289,6 +1289,31 @@ copy_locale_files() {
echo "app.asar processed and staged in $app_staging_dir"
}
copy_ssh_helpers() {
section_header 'SSH Helpers'
local ssh_src="$claude_extract_dir/lib/net45/resources/claude-ssh"
local ssh_dest="$electron_resources_dest/claude-ssh"
local binary_name="claude-ssh-linux-$architecture"
if [[ ! -d "$ssh_src" ]]; then
echo "Warning: SSH helpers not found at $ssh_src"
section_footer 'SSH Helpers'
return
fi
mkdir -p "$ssh_dest" || exit 1
cp "$ssh_src/version.txt" "$ssh_dest/" || exit 1
cp "$ssh_src/$binary_name" "$ssh_dest/" || exit 1
chmod +x "$ssh_dest/$binary_name"
echo "Copied SSH helper files:"
echo " version.txt"
echo " $binary_name"
section_footer 'SSH Helpers'
}
#===============================================================================
# Packaging Functions
#===============================================================================
@@ -1481,6 +1506,7 @@ main() {
stage_electron
process_icons
copy_locale_files
copy_ssh_helpers
cd "$project_root" || exit 1