blob: 64b65418c285a1380481398fd368cbd0e7b36c71 (
plain)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# Maintainer: Your Name <your.email@example.com>
pkgname=lzc-client-desktop-bin
pkgver=2.0.11
pkgrel=1
pkgdesc='懒猫微服客户端 Lazy Cat microservice desktop client'
arch=('x86_64')
url='https://lazycat.cloud/'
license=('custom')
depends=(
'zenity'
'libcap'
'glib2'
'nspr'
'nss'
'dbus'
'at-spi2-core'
'libcups'
'cairo'
'gtk3'
'pango'
'libx11'
'libxcomposite'
'libxdamage'
'libxext'
'libxfixes'
'libxrandr'
'mesa'
'expat'
'libxcb'
'libxkbcommon'
'systemd-libs'
'alsa-lib'
)
makedepends=('zstd')
install="${pkgname}.install"
source=("lzc-client-desktop_${pkgver}.tar.zst::https://dl.lazycat.cloud/client/desktop/stable/lzc-client-desktop_v${pkgver}.tar.zst"
"image.png")
sha256sums=('1059d5aa4296af42fcc68be8115185010fd58f69eec297c39fd7f74b793a9c17'
'cf462ea972a91a51d277d8bb8fd20647a10f8b9de2ac558b3a5cb3fc238711f4')
# Disable compression for faster testing during development
# Remove this line before publishing to AUR
PKGEXT='.pkg.tar'
package() {
cd "$srcdir"
# Files extract directly to srcdir, not in a subdirectory
_appdir="."
# 1. Install application files to /usr/lib/lzc-client-desktop
msg "Installing application files..."
install -dm755 "$pkgdir/usr/lib/lzc-client-desktop"
# Copy all application files (adjust based on actual structure)
cp -a "$_appdir"/* "$pkgdir/usr/lib/lzc-client-desktop/" 2>/dev/null || true
# Ensure binary is executable
if [ -f "$pkgdir/usr/lib/lzc-client-desktop/lzc-client-desktop" ]; then
chmod +x "$pkgdir/usr/lib/lzc-client-desktop/lzc-client-desktop"
fi
# Set chrome-sandbox permissions (required for Electron apps)
if [ -f "$pkgdir/usr/lib/lzc-client-desktop/chrome-sandbox" ]; then
chmod 4755 "$pkgdir/usr/lib/lzc-client-desktop/chrome-sandbox"
fi
# 2. Create wrapper script in /usr/bin
msg "Creating wrapper script..."
install -Dm755 /dev/stdin "$pkgdir/usr/bin/lzc-client-desktop" <<'EOF'
#!/bin/bash
# Wrapper script for lzc-client-desktop
exec /usr/lib/lzc-client-desktop/lzc-client-desktop "$@"
EOF
# 3. Install desktop file with corrected paths
msg "Installing desktop file..."
if [ -f "$_appdir/lzc-client.desktop" ]; then
install -Dm644 "$_appdir/lzc-client.desktop" \
"$pkgdir/usr/share/applications/lzc-client-desktop.desktop"
# Patch Exec and Icon paths
sed -i \
-e 's|^Exec=.*|Exec=/usr/bin/lzc-client-desktop|g' \
-e 's|^Icon=.*|Icon=lzc-client-desktop|g' \
-e 's|HOMEDIR|/usr/lib/lzc-client-desktop|g' \
"$pkgdir/usr/share/applications/lzc-client-desktop.desktop"
fi
# 4. Install icon
msg "Installing icon..."
install -Dm644 "$srcdir/image.png" \
"$pkgdir/usr/share/pixmaps/lzc-client-desktop.png"
# 5. Install polkit policy if present
msg "Installing polkit policy..."
if [ -f "$_appdir/cloud.lazycat.client.policy" ]; then
install -Dm644 "$_appdir/cloud.lazycat.client.policy" \
"$pkgdir/usr/share/polkit-1/actions/cloud.lazycat.client.policy"
# Patch script paths in polkit policy to use system paths
sed -i \
-e 's|HOMEDIR|/usr/lib/lzc-client-desktop|g' \
-e "s|/home/[^/]*/[^<]*|/usr/lib/lzc-client-desktop/lzc-client-desktop|g" \
"$pkgdir/usr/share/polkit-1/actions/cloud.lazycat.client.policy"
fi
# 6. Handle capabilities
# Note: Capabilities will be set during post_install via the .install script
# This is the recommended approach for AUR packages
# 7. Install license if present
msg "Installing license..."
for license_file in \
"$_appdir/LICENSE" \
"$_appdir/LICENSE.txt" \
"$_appdir/COPYING"
do
if [ -f "$license_file" ]; then
install -Dm644 "$license_file" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
break
fi
done
# Create a placeholder license file if none found
if [ ! -f "$pkgdir/usr/share/licenses/$pkgname/LICENSE" ]; then
install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE" <<EOF
Proprietary software from Lazy Cat (lazycat.cloud)
License terms available at: https://lazycat.cloud/
EOF
fi
# 8. Remove any bundled setcap scripts to prevent self-modification
rm -f "$pkgdir/usr/lib/lzc-client-desktop/set-capabilities.sh"
# 9. Clean up unnecessary files from /usr/lib
rm -f "$pkgdir/usr/lib/lzc-client-desktop"/*.desktop
rm -f "$pkgdir/usr/lib/lzc-client-desktop"/*.policy
rm -f "$pkgdir/usr/lib/lzc-client-desktop"/*.png
}
|