Repository navigation
Expand file tree
/
Copy pathget-dependencies.sh
More file actions
executable file
·69 lines (56 loc) · 2.66 KB
/
Copy pathget-dependencies.sh
File metadata and controls
executable file
·69 lines (56 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
set -euo pipefail
ARCH=$(uname -m)
echo "Installing package dependencies..."
echo "---------------------------------------------------------------"
case "$ARCH" in
x86_64)
farch=amd64
qemu_pkg="qemu-system-x86"
edk2_flag="-S"
edk2_pkg="edk2-ovmf"
edk_arch="x64"
vmf_dir="OVMF"
code_src="OVMF_CODE.4m.fd"
vars_src="OVMF_VARS.4m.fd"
vmf_sfx="_4M"
;;
aarch64)
farch=arm64
qemu_pkg="qemu-system-aarch64"
edk2_flag="-U"
curl -sSfL "https://archlinux.org/packages/extra/any/edk2-aarch64/download/" -o /tmp/edk2-aarch64.pkg.tar.zst
edk2_pkg="/tmp/edk2-aarch64.pkg.tar.zst"
edk_arch="aarch64"
vmf_dir="AAVMF"
code_src="QEMU_EFI.fd"
vars_src="QEMU_VARS.fd"
vmf_sfx=""
;;
esac
pacman -Syu --noconfirm patchelf libnss_nis nss-mdns nss socat qemu-img $qemu_pkg
pacman $edk2_flag --noconfirm $edk2_pkg
echo "Installing debloated packages..."
echo "---------------------------------------------------------------"
get-debloated-pkgs --add-common --prefer-nano
echo "Getting binary..."
echo "---------------------------------------------------------------"
BASE_URL="https://downloads.claude.ai/claude-desktop/apt/stable"
link="$BASE_URL/$(curl -sL --compressed "$BASE_URL/dists/stable/main/binary-$farch/Packages" | awk '/^Filename:/ {val=$2} END {print val}')"
curl -sSfL --retry 30 --retry-connrefused "$link" -o /tmp/temp.deb
echo "$link" | grep -oP 'claude-desktop_\K[^_]+' > ~/version
echo "Preparing AppDir..."
mkdir -p ./AppDir/
bsdtar -xOf /tmp/temp.deb data.tar.xz | bsdtar -xf - --strip-components=2 -C ./AppDir/
cp /usr/bin/qemu-system-$ARCH /usr/bin/qemu-img /usr/bin/socat ./AppDir/bin/
mv -f ./AppDir/lib/claude-desktop/* ./AppDir/bin/
rm -rf ./AppDir/lib
cp -r /usr/share/qemu ./AppDir/share/
cp ./fix-nspr.hook ./AppDir/bin/fix-nspr.hook
mkdir ./AppDir/share/$vmf_dir
cp -f /usr/share/edk2/$edk_arch/$code_src ./AppDir/share/$vmf_dir/${vmf_dir}_CODE${vmf_sfx}.fd
cp -f /usr/share/edk2/$edk_arch/$vars_src ./AppDir/share/$vmf_dir/${vmf_dir}_VARS${vmf_sfx}.fd
perl -pi -e 's/\Q[`\/usr\/share\/OVMF\/OVMF_CODE_4M.fd`,`\/usr\/share\/OVMF\/OVMF_CODE.fd`]\E/sprintf("%-*s", length($&), "[\`\${process.env.APPDIR}\/share\/OVMF\/OVMF_CODE_4M.fd\`]")/e' ./AppDir/bin/resources/app.asar
perl -pi -e 's/\Q[`\/usr\/share\/AAVMF\/AAVMF_CODE.fd`]\E/sprintf("%-*s", length($&), "[\`\${process.env.APPDIR}\/AAVMF\`]")/e' ./AppDir/bin/resources/app.asar
perl -pi -e 's/\Qe?.id===`ubuntu`&&(e.versionId??``).startsWith(`22.`)\E/sprintf("%-*s", length($&), "true")/e' ./AppDir/bin/resources/app.asar
# sed -i 's|MimeType=x-scheme-handler/claude;|MimeType=x-scheme-handler/claude;x-scheme-handler/claude-desktop;|' ./AppDir/share/applications/com.anthropic.Claude.desktop