From d8c0f33e7d51a2f2b5b2958abd6300d60dbe5f04 Mon Sep 17 00:00:00 2001 From: patrickjaja Date: Tue, 16 Sep 2025 11:42:09 +0000 Subject: [PATCH] Update to version 0.13.11 --- .SRCINFO | 6 +++--- PKGBUILD | 54 +++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 6c29ec4f7f2c2..2dbb5834850f2 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,8 +1,8 @@ pkgbase = claude-desktop-bin pkgdesc = Unofficial Linux build of Claude Desktop AI assistant - pkgver = 0.7.7 + pkgver = 0.13.11 pkgrel = 1 - url = https://github.com/k3d3/claude-desktop-linux-flake + url = https://github.com/patrickjaja/claude-desktop-bin arch = x86_64 license = custom makedepends = p7zip @@ -14,7 +14,7 @@ pkgbase = claude-desktop-bin depends = nodejs source = Claude-Setup-x64.exe::https://storage.googleapis.com/osprey-downloads-c02f6a0d-347c-492b-a752-3e0651722e97/nest-win-x64/Claude-Setup-x64.exe source = git+https://github.com/k3d3/claude-desktop-linux-flake.git - sha256sums = SKIP + sha256sums = 477ee0bcd7af02f1f1ffb15f5a4ad1209d7d4c755b5745550fc8bb24c5248ae3 sha256sums = SKIP pkgname = claude-desktop-bin diff --git a/PKGBUILD b/PKGBUILD index f96baf826f28b..af7bc7454926b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,10 +1,10 @@ -# Maintainer: Your Name +# Maintainer: patrickjaja pkgname=claude-desktop-bin -pkgver=0.7.7 +pkgver=0.13.11 pkgrel=1 pkgdesc="Unofficial Linux build of Claude Desktop AI assistant" arch=('x86_64') -url="https://github.com/k3d3/claude-desktop-linux-flake" +url="https://github.com/patrickjaja/claude-desktop-bin" license=('custom') depends=( 'electron' @@ -21,58 +21,77 @@ source=( "Claude-Setup-x64.exe::https://storage.googleapis.com/osprey-downloads-c02f6a0d-347c-492b-a752-3e0651722e97/nest-win-x64/Claude-Setup-x64.exe" "git+https://github.com/k3d3/claude-desktop-linux-flake.git" ) -sha256sums=('SKIP' 'SKIP') # We'll add proper hashes later +sha256sums=('477ee0bcd7af02f1f1ffb15f5a4ad1209d7d4c755b5745550fc8bb24c5248ae3' 'SKIP') + prepare() { cd "${srcdir}" # Build patchy-cnb cd claude-desktop-linux-flake/patchy-cnb cargo build --release } + package() { cd "${srcdir}" # Create working directory mkdir -p build cd build - # Extract the Windows installer - 7z x ../Claude-Setup-x64.exe + + # Extract the Windows installer (force overwrite) + 7z x -y ../Claude-Setup-x64.exe + # Find and extract the nupkg file dynamically NUPKG_FILE=$(ls AnthropicClaude*-full.nupkg) - 7z x "$NUPKG_FILE" + 7z x -y "$NUPKG_FILE" + # Extract and convert icons wrestool -x -t 14 lib/net45/claude.exe -o claude.ico icotool -x claude.ico # Install icons for f in claude_*.png; do - if [ -f "$f" ]; then - size=$(identify -format "%wx%h" "$f" | cut -d'x' -f1) - install -Dm644 "$f" "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/claude-desktop.png" - fi - done + if [ -f "$f" ]; then + size=$(identify -format "%wx%h" "$f" | cut -d'x' -f1) + install -Dm644 "$f" "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/claude-desktop.png" + fi + done + # Process app.asar mkdir -p electron-app cp "lib/net45/resources/app.asar" electron-app/ cp -r "lib/net45/resources/app.asar.unpacked" electron-app/ cd electron-app asar extract app.asar app.asar.contents + # Replace native bindings with our Linux version local _target_triple="x86_64-unknown-linux-gnu" install -Dm755 "${srcdir}/claude-desktop-linux-flake/patchy-cnb/target/release/libpatchy_cnb.so" \ "app.asar.contents/node_modules/claude-native/claude-native-binding.node" cp "app.asar.contents/node_modules/claude-native/claude-native-binding.node" \ "app.asar.unpacked/node_modules/claude-native/claude-native-binding.node" - # Copy Tray icons + + # Copy Tray icons and language files mkdir -p app.asar.contents/resources cp ../lib/net45/resources/Tray* app.asar.contents/resources/ + cp ../lib/net45/resources/*.json app.asar.contents/resources/ + + # Patch process.resourcesPath to point to our app directory + sed -i 's|process\.resourcesPath|"/usr/lib/claude-desktop/resources"|g' app.asar.contents/.vite/build/index.js + # Repack app.asar asar pack app.asar.contents app.asar + # Install application files install -dm755 "${pkgdir}/usr/lib/claude-desktop" cp app.asar "${pkgdir}/usr/lib/claude-desktop/" cp -r app.asar.unpacked "${pkgdir}/usr/lib/claude-desktop/" + + # Install language files to the patched location + install -dm755 "${pkgdir}/usr/lib/claude-desktop/resources" + cp ../lib/net45/resources/*.json "${pkgdir}/usr/lib/claude-desktop/resources/" + # Create desktop entry - install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/claude-desktop.desktop" << EOF + install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/claude-desktop.desktop" << DESKTOP_EOF [Desktop Entry] Name=Claude Exec=claude-desktop %u @@ -80,10 +99,11 @@ Icon=claude-desktop Type=Application Categories=Office;Utility; Comment=Claude Desktop AI assistant -EOF +DESKTOP_EOF + # Create launcher script - install -Dm755 /dev/stdin "${pkgdir}/usr/bin/claude-desktop" << EOF + install -Dm755 /dev/stdin "${pkgdir}/usr/bin/claude-desktop" << LAUNCHER_EOF #!/bin/sh exec electron /usr/lib/claude-desktop/app.asar "\$@" -EOF +LAUNCHER_EOF }