Skip to content

Commit 06aadf0

Browse files
author
Shimi Dudkin
committed
Release v0.3.7
Linux packaging cleanup on top of v0.3.6: - Install binary as /usr/bin/screenmcp (was /usr/bin/screenmcp-linux). Cleaner name; dpkg's upgrade path removes the old screenmcp-linux file automatically. Cargo crate name unchanged. - .deb (both local build.sh and CI release.yml) now declares the full runtime dep set so tray-icon + winit have everything they dlopen / link to: libayatana-appindicator3-1 | libappindicator3-1, libxkbcommon-x11-0, libgtk-3-0t64 alternative for Ubuntu 24.04+, plus libasound2 (was only in CI, not build.sh). - screenmcp.desktop Exec updated to /usr/bin/screenmcp. v0.3.6's CI-built .deb shipped without libayatana-appindicator3-1 declared, which meant the v0.3.6 tray fix could silently fail on machines that didn't already happen to have that lib installed. v0.3.7 fixes that.
1 parent d35ae8f commit 06aadf0

6 files changed

Lines changed: 19 additions & 17 deletions

File tree

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,8 +375,8 @@ jobs:
375375
mkdir -p "${pkg}/usr/share/applications"
376376
mkdir -p "${pkg}/usr/share/icons/hicolor/512x512/apps"
377377
378-
cp "$binary" "${pkg}/usr/bin/screenmcp-linux"
379-
chmod 755 "${pkg}/usr/bin/screenmcp-linux"
378+
cp "$binary" "${pkg}/usr/bin/screenmcp"
379+
chmod 755 "${pkg}/usr/bin/screenmcp"
380380
cp linux/screenmcp.desktop "${pkg}/usr/share/applications/"
381381
cp linux/assets/icon-app.png "${pkg}/usr/share/icons/hicolor/512x512/apps/screenmcp.png"
382382
@@ -389,7 +389,7 @@ jobs:
389389
Priority: optional
390390
Architecture: ${arch}
391391
Installed-Size: ${installed_size}
392-
Depends: libgtk-3-0, libssl3 | libssl1.1, libxdo3, wmctrl, libasound2
392+
Depends: libgtk-3-0 | libgtk-3-0t64, libssl3 | libssl1.1, libxdo3, libxkbcommon-x11-0, wmctrl, libasound2, libayatana-appindicator3-1 | libappindicator3-1
393393
Maintainer: ScreenMCP <support@screenmcp.com>
394394
Homepage: https://screenmcp.com
395395
Description: AI desktop control via MCP

linux/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

linux/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "screenmcp-linux"
3-
version = "0.3.6"
3+
version = "0.3.7"
44
edition = "2021"
55
description = "ScreenMCP Linux client - desktop control via system tray"
66

linux/build.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
55
cd "$SCRIPT_DIR"
66

77
APP_NAME="ScreenMCP"
8-
BINARY_NAME="screenmcp-linux"
9-
VERSION="0.3.6"
8+
CARGO_BIN_NAME="screenmcp-linux" # name cargo produces in target/release
9+
INSTALL_BIN_NAME="screenmcp" # name we install into /usr/bin
10+
PKG_NAME="screenmcp" # .deb Package name (also drives .deb filename)
11+
VERSION="0.3.7"
1012
ARCH="amd64"
11-
DEB_NAME="${BINARY_NAME}_${VERSION}_${ARCH}"
13+
DEB_NAME="${PKG_NAME}_${VERSION}_${ARCH}"
1214
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
1315

1416
echo "=== ScreenMCP Linux Build + Package ==="
@@ -17,7 +19,7 @@ echo "=== ScreenMCP Linux Build + Package ==="
1719
echo ""
1820
echo "[1/3] Building release binary..."
1921
cargo build --release
20-
BINARY="target/release/${BINARY_NAME}"
22+
BINARY="target/release/${CARGO_BIN_NAME}"
2123
if [ ! -f "$BINARY" ]; then
2224
echo "ERROR: Binary not found at $BINARY"
2325
exit 1
@@ -30,11 +32,11 @@ echo "[2/3] Creating .deb package..."
3032
DEB_DIR="/tmp/${DEB_NAME}"
3133
rm -rf "$DEB_DIR"
3234

33-
# Binary
35+
# Binary — install as plain `screenmcp` (not `screenmcp-linux`)
3436
mkdir -p "$DEB_DIR/usr/bin"
35-
cp "$BINARY" "$DEB_DIR/usr/bin/${BINARY_NAME}"
36-
chmod 755 "$DEB_DIR/usr/bin/${BINARY_NAME}"
37-
strip "$DEB_DIR/usr/bin/${BINARY_NAME}" 2>/dev/null || true
37+
cp "$BINARY" "$DEB_DIR/usr/bin/${INSTALL_BIN_NAME}"
38+
chmod 755 "$DEB_DIR/usr/bin/${INSTALL_BIN_NAME}"
39+
strip "$DEB_DIR/usr/bin/${INSTALL_BIN_NAME}" 2>/dev/null || true
3840

3941
# Desktop entry
4042
mkdir -p "$DEB_DIR/usr/share/applications"
@@ -50,13 +52,13 @@ INSTALLED_SIZE=$(du -sk "$DEB_DIR" | cut -f1)
5052
# DEBIAN control file
5153
mkdir -p "$DEB_DIR/DEBIAN"
5254
cat > "$DEB_DIR/DEBIAN/control" <<EOF
53-
Package: screenmcp
55+
Package: ${PKG_NAME}
5456
Version: ${VERSION}
5557
Section: utils
5658
Priority: optional
5759
Architecture: ${ARCH}
5860
Installed-Size: ${INSTALLED_SIZE}
59-
Depends: libgtk-3-0 | libgtk-3-0t64, libssl3 | libssl1.1, libxdo3, libxkbcommon-x11-0, wmctrl, libayatana-appindicator3-1 | libappindicator3-1
61+
Depends: libgtk-3-0 | libgtk-3-0t64, libssl3 | libssl1.1, libxdo3, libxkbcommon-x11-0, wmctrl, libasound2, libayatana-appindicator3-1 | libappindicator3-1
6062
Maintainer: ScreenMCP <support@screenmcp.com>
6163
Homepage: https://screenmcp.com
6264
Description: AI desktop control via MCP

linux/screenmcp.desktop

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Name=ScreenMCP
33
Comment=AI desktop control via MCP
4-
Exec=/usr/bin/screenmcp-linux
4+
Exec=/usr/bin/screenmcp
55
Icon=screenmcp
66
Type=Application
77
Categories=Utility;RemoteAccess;

linux/src/commands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,7 @@ fn handle_elevate() -> Result<Value, String> {
12591259

12601260
// Try pkexec first, then gksudo
12611261
let result = std::process::Command::new("pkexec")
1262-
.arg(exe_path.to_str().unwrap_or("screenmcp-linux"))
1262+
.arg(exe_path.to_str().unwrap_or("screenmcp"))
12631263
.spawn();
12641264

12651265
match result {

0 commit comments

Comments
 (0)