Skip to content

Commit 9821f7a

Browse files
committed
fix: aur PKGBUILD
1 parent 80fbd44 commit 9821f7a

File tree

2 files changed

+75
-223
lines changed

2 files changed

+75
-223
lines changed

aur/PKGBUILD

Lines changed: 72 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -1,224 +1,88 @@
11
# Created by: damachin3 (damachine3 at proton dot me)
22
# Website: https://github.com/damachine/coolerdash
33

4-
pre_install() {
5-
echo "Checking for legacy files and performing migration cleanup..." 2>/dev/null
6-
# Stop and disable service before install or update to prevent conflicts with plugin mode
7-
if systemctl list-unit-files coolerdash.service 2>/dev/null || systemctl list-unit-files coolerdash.service 2>/dev/null; then
8-
echo "Stopping coolerdash service..." 2>/dev/null
9-
systemctl stop coolerdash.service 2>/dev/null
10-
echo "Disabling coolerdash service (CoolerControl plugin mode preferred)..." 2>/dev/null
11-
systemctl disable coolerdash.service 2>/dev/null
12-
fi
13-
14-
# Remove old systemd service file if it exists (migration from standalone to plugin mode)
15-
if [ -f /etc/systemd/system/coolerdash.service ]; then
16-
echo "Removing deprecated systemd service file..." 2>/dev/null
17-
rm -f /etc/systemd/system/coolerdash.service 2>/dev/null
18-
fi
19-
20-
# Remove legacy installation directories if they exist
21-
if [ -d /opt/coolerdash ]; then
22-
echo "Removing legacy installation: /opt/coolerdash/" 2>/dev/null
23-
rm -rf /opt/coolerdash 2>/dev/null
24-
fi
25-
26-
# Remove legacy config directory if it exists
27-
if [ -d /etc/coolerdash ]; then
28-
echo "Removing legacy config: /etc/coolerdash/" 2>/dev/null
29-
rm -rf /etc/coolerdash 2>/dev/null
30-
fi
31-
32-
# Remove legacy config.ini and ui.html if they exist in plugin directory
33-
if [ -f /etc/coolercontrol/plugins/coolerdash/config.ini ]; then
34-
echo "Removing legacy config.ini..." 2>/dev/null
35-
rm -f /etc/coolercontrol/plugins/coolerdash/config.ini 2>/dev/null
36-
fi
37-
if [ -f /etc/coolercontrol/plugins/coolerdash/ui.html ]; then
38-
echo "Removing legacy ui.html..." 2>/dev/null
39-
rm -f /etc/coolercontrol/plugins/coolerdash/ui.html 2>/dev/null
40-
fi
41-
if [ -f /usr/share/applications/coolerdash-settings.desktop ]; then
42-
echo "Removing legacy coolerdash-settings.desktop..." 2>/dev/null
43-
rm -f /usr/share/applications/coolerdash-settings.desktop 2>/dev/null
44-
fi
45-
46-
# Remove legacy user if it exists
47-
if id -u coolerdash &>/dev/null; then
48-
echo "Removing legacy coolerdash user..." 2>/dev/null
49-
userdel -rf coolerdash 2>/dev/null || true
50-
fi
51-
52-
# Remove legacy symlinks in /bin/ and /usr/bin/ if they exist (migration from standalone)
53-
if [ -L /bin/coolerdash ] || [ -f /bin/coolerdash ]; then
54-
echo "Removing legacy symlink: /bin/coolerdash"
55-
rm -f /bin/coolerdash
56-
fi
57-
if [ -L /usr/bin/coolerdash ] || [ -f /usr/bin/coolerdash ]; then
58-
echo "Removing legacy symlink: /usr/bin/coolerdash"
59-
rm -f /usr/bin/coolerdash
60-
fi
4+
pkgname=coolerdash-git
5+
pkgver=2.1.4.r0.gabf6a17
6+
pkgrel=1
7+
provides=('coolerdash')
8+
replaces=('coolerdash')
9+
conflicts=('coolerdash')
10+
pkgdesc="Monitor telemetry data on an AIO liquid cooler with an integrated LCD display"
11+
arch=('x86_64')
12+
url="https://github.com/damachine/coolerdash"
13+
license=('MIT')
14+
depends=('cairo' 'coolercontrol' 'jansson' 'libcurl-gnutls' 'ttf-roboto')
15+
makedepends=('gcc' 'make' 'pkg-config' 'git')
16+
backup=('etc/coolercontrol/plugins/coolerdash/config.json')
17+
install=coolerdash.install
18+
_commit=abf6a17754f2c0230076a6e1a8d02012fe9257b4
19+
source=("git+https://github.com/damachine/coolerdash.git#commit=${_commit}")
20+
sha256sums=('SKIP') # SKIP for git repo source builds
21+
22+
pkgver() {
23+
cd "${srcdir}/coolerdash"
24+
git fetch --tags
25+
git describe --tags --long --match "v*" | sed -E 's/^v//; s/-([0-9]+)-g/\.r\1.g/; s/-/./g'
6126
}
6227

63-
post_install() {
64-
# Ensure plugin directory files have correct permissions
65-
if [ -d /etc/coolercontrol/plugins/coolerdash ]; then
66-
echo "Plugin directory permissions configured"
67-
chmod 755 /etc/coolercontrol/plugins/coolerdash 2>/dev/null || true
68-
chmod 755 /etc/coolercontrol/plugins/coolerdash/coolerdash 2>/dev/null || true
69-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.md 2>/dev/null || true
70-
chmod 644 /etc/coolercontrol/plugins/coolerdash/VERSION 2>/dev/null || true
71-
chmod 644 /etc/coolercontrol/plugins/coolerdash/LICENSE 2>/dev/null || true
72-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.toml 2>/dev/null || true
73-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.png 2>/dev/null || true
74-
chmod 666 /etc/coolercontrol/plugins/coolerdash/config.json 2>/dev/null || true
75-
chmod 755 /etc/coolercontrol/plugins/coolerdash/ui 2>/dev/null || true
76-
chmod 644 /etc/coolercontrol/plugins/coolerdash/ui/* 2>/dev/null || true
77-
fi
28+
build() {
29+
# Build inside the checked-out repository
30+
cd "${srcdir}/coolerdash" || return 1
7831

79-
# Reload udev rules for USB power management
80-
if [ -f /usr/lib/udev/rules.d/99-coolerdash.rules ]; then
81-
echo "Reloading udev rules..."
82-
udevadm control --reload-rules 2>/dev/null || true
83-
udevadm trigger --subsystem-match=usb 2>/dev/null || true
84-
fi
85-
86-
# Create systemd drop-in for startup delay (allow shutdown.png to display)
87-
mkdir -p /etc/systemd/system/cc-plugin-coolerdash.service.d
88-
printf "[Service]\nExecStartPre=/bin/sleep 10\n" > /etc/systemd/system/cc-plugin-coolerdash.service.d/startup-delay.conf
89-
chmod 644 /etc/systemd/system/cc-plugin-coolerdash.service.d/startup-delay.conf
90-
echo "Systemd drop-in created: 10s startup delay"
91-
92-
# Create/ensure shutdown notifier unit (uses printf to avoid cat heredocs)
93-
printf "[Unit]\nDescription=CoolerDash helper daemon\nBindsTo=coolercontrold.service\nPartOf=coolercontrold.service\nAfter=coolercontrold.service\n\n[Service]\nType=simple\nExecStart=/bin/sleep infinity\nExecStop=/etc/coolercontrol/plugins/coolerdash/coolerdash --shutdown\nTimeoutStopSec=3\nRestart=no\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/coolerdash-helperd.service
94-
chmod 644 /etc/systemd/system/coolerdash-helperd.service || true
95-
echo "Helper unit created: coolerdash-helperd.service"
96-
97-
# Reload systemd manager configuration
98-
systemctl daemon-reload
99-
100-
# Create shutdown notifier unit
101-
if systemctl list-unit-files coolerdash-helperd.service >/dev/null 2>&1; then
102-
echo "Enabling and starting coolerdash-helperd.service..."
103-
systemctl enable --now coolerdash-helperd.service || echo "Note: coolerdash-helperd.service enable/start failed. Please enable/start manually."
104-
fi
32+
# Remove all previous tarball builds
33+
rm -rf coolerdash-*.pkg.* || true
10534

106-
# Restart CoolerControl to pick up the new plugin
107-
if systemctl list-unit-files coolercontrold.service >/dev/null 2>&1; then
108-
echo "Restarting CoolerControl service to load new plugin..."
109-
systemctl restart coolercontrold.service || echo "Note: CoolerControl service restart failed. Please restart manually."
35+
# Clean any previous builds if a Makefile exists
36+
if [[ -f Makefile || -f GNUmakefile ]]; then
37+
make clean || true
11038
fi
11139

112-
echo "================================================================"
113-
echo "CoolerDash has been installed successfully!"
114-
echo "================================================================"
40+
# Build
41+
make || return 1
11542
}
11643

117-
post_upgrade() {
118-
# Ensure plugin directory files have correct permissions after upgrade
119-
if [ -d /etc/coolercontrol/plugins/coolerdash ]; then
120-
echo "Plugin directory permissions configured"
121-
chmod 755 /etc/coolercontrol/plugins/coolerdash 2>/dev/null || true
122-
chmod 755 /etc/coolercontrol/plugins/coolerdash/coolerdash 2>/dev/null || true
123-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.md 2>/dev/null || true
124-
chmod 644 /etc/coolercontrol/plugins/coolerdash/VERSION 2>/dev/null || true
125-
chmod 644 /etc/coolercontrol/plugins/coolerdash/LICENSE 2>/dev/null || true
126-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.toml 2>/dev/null || true
127-
chmod 644 /etc/coolercontrol/plugins/coolerdash/*.png 2>/dev/null || true
128-
chmod 666 /etc/coolercontrol/plugins/coolerdash/config.json 2>/dev/null || true
129-
chmod 755 /etc/coolercontrol/plugins/coolerdash/ui 2>/dev/null || true
130-
chmod 644 /etc/coolercontrol/plugins/coolerdash/ui/* 2>/dev/null || true
131-
fi
132-
133-
# Create systemd drop-in for startup delay (allow shutdown.png to display)
134-
mkdir -p /etc/systemd/system/cc-plugin-coolerdash.service.d
135-
printf "[Service]\nExecStartPre=/bin/sleep 10\n" > /etc/systemd/system/cc-plugin-coolerdash.service.d/startup-delay.conf
136-
chmod 644 /etc/systemd/system/cc-plugin-coolerdash.service.d/startup-delay.conf
137-
echo "Systemd drop-in updated: 10s startup delay"
138-
139-
# Create/ensure shutdown notifier unit (uses printf to avoid cat heredocs)
140-
printf "[Unit]\nDescription=CoolerDash helper daemon\nBindsTo=coolercontrold.service\nPartOf=coolercontrold.service\nAfter=coolercontrold.service\n\n[Service]\nType=simple\nExecStart=/bin/sleep infinity\nExecStop=/etc/coolercontrol/plugins/coolerdash/coolerdash --shutdown\nTimeoutStopSec=3\nRestart=no\n\n[Install]\nWantedBy=multi-user.target\n" > /etc/systemd/system/coolerdash-helperd.service
141-
chmod 644 /etc/systemd/system/coolerdash-helperd.service || true
142-
echo "Helper unit updated: coolerdash-helperd.service"
143-
144-
# Reload systemd manager configuration
145-
systemctl daemon-reload
146-
147-
# Create shutdown notifier unit
148-
if systemctl list-unit-files coolerdash-helperd.service >/dev/null 2>&1; then
149-
echo "Enabling and starting coolerdash-helperd.service..."
150-
systemctl enable --now coolerdash-helperd.service || echo "Note: coolerdash-helperd.service enable/start failed. Please enable/start manually."
151-
fi
44+
check() {
45+
# Check in the checked-out repository
46+
cd "${srcdir}/coolerdash" || return 1
15247

153-
# Restart CoolerDash to pick up the updated plugin
154-
if systemctl list-unit-files cc-plugin-coolerdash.service >/dev/null 2>&1; then
155-
echo "Restarting CoolerDash service to load updated plugin..."
156-
systemctl restart cc-plugin-coolerdash.service || echo "Note: CoolerDash service restart failed. Please restart manually."
48+
# Verify that the binary was created successfully
49+
if [[ -f bin/coolerdash ]]; then
50+
echo "Build successful - binary created"
51+
else
52+
echo "ERROR: Binary not found"
53+
return 1
15754
fi
158-
159-
echo "================================================================"
160-
echo "CoolerDash has been upgraded successfully!"
161-
echo "================================================================"
16255
}
16356

164-
pre_remove() {
165-
# Stop and disable service before uninstallation
166-
if systemctl is-active --quiet coolerdash.service || systemctl is-enabled --quiet coolerdash.service; then
167-
echo "Stopping coolerdash service..."
168-
systemctl stop coolerdash.service
169-
echo "Disabling coolerdash service"
170-
systemctl disable coolerdash.service
171-
fi
172-
173-
# Stop and disable service before uninstallation
174-
if systemctl is-active --quiet cc-plugin-coolerdash.service || systemctl is-enabled --quiet cc-plugin-coolerdash.service; then
175-
echo "Stopping cc-plugin-coolerdash service..."
176-
systemctl stop cc-plugin-coolerdash.service
177-
echo "Disabling cc-plugin-coolerdash service"
178-
systemctl disable cc-plugin-coolerdash.service
179-
fi
180-
181-
# Remove systemd drop-in directory
182-
if [ -d /etc/systemd/system/cc-plugin-coolerdash.service.d ]; then
183-
echo "Removing systemd drop-in directory..."
184-
rm -rf /etc/systemd/system/cc-plugin-coolerdash.service.d || echo "Note: Failed to remove systemd drop-in directory. Please remove manually."
185-
fi
186-
187-
# Remove notify unit (stop, disable and remove)
188-
if systemctl list-unit-files coolerdash-helperd.service >/dev/null 2>&1; then
189-
echo "Stopping, disabling and removing coolerdash-helperd.service..."
190-
systemctl stop --no-block coolerdash-helperd.service 2>/dev/null || true
191-
systemctl disable --now coolerdash-helperd.service 2>/dev/null || true
192-
rm -f /etc/systemd/system/coolerdash-helperd.service || echo "Note: Failed to remove coolerdash-helperd.service file. Please remove manually."
193-
fi
194-
195-
# Remove all installed users, files and directories
196-
if id -u coolerdash &>/dev/null; then
197-
echo "Removing legacy coolerdash user..." 2>/dev/null
198-
userdel -rf coolerdash || true
199-
fi
200-
201-
# Remove old systemd service file if it exists (migration from standalone to plugin mode)
202-
if [ -f /etc/systemd/system/coolerdash.service ]; then
203-
echo "Removing deprecated systemd service file..."
204-
rm -f /etc/systemd/system/coolerdash.service || echo "Note: Failed to remove coolerdash.service file. Please remove manually."
205-
fi
206-
207-
# Remove legacy installation directories if they exist
208-
rm -f /usr/share/applications/coolerdash-settings.desktop
209-
rm -f /bin/coolerdash
210-
rm -f /usr/bin/coolerdash
211-
rm -rf /opt/coolerdash
212-
rm -rf /etc/coolerdash
213-
214-
systemctl daemon-reload
215-
216-
# Restart CoolerControl to remove the plugin
217-
if systemctl list-unit-files coolercontrold.service >/dev/null 2>&1; then
218-
echo "Restarting CoolerControl service to unload plugin..."
219-
systemctl restart coolercontrold.service || echo "Note: CoolerControl service restart failed. Please restart manually."
220-
fi
221-
echo "================================================================"
222-
echo "CoolerDash and all related files have been removed."
223-
echo "================================================================"
57+
package() {
58+
# Plugin-mode installation: Everything in /etc/coolercontrol/plugins/coolerdash/
59+
install -dm755 "${pkgdir}/etc/coolercontrol/plugins/coolerdash"
60+
install -m755 "${srcdir}/coolerdash/bin/coolerdash" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/coolerdash"
61+
install -m644 "${srcdir}/coolerdash/README.md" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/README.md"
62+
install -m644 "${srcdir}/coolerdash/VERSION" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/VERSION"
63+
install -m644 "${srcdir}/coolerdash/LICENSE" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/LICENSE"
64+
install -m644 "${srcdir}/coolerdash/CHANGELOG.md" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/CHANGELOG.md"
65+
install -m666 "${srcdir}/coolerdash/etc/coolercontrol/plugins/coolerdash/config.json" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/config.json"
66+
67+
# Create ui directory first with correct permissions
68+
install -dm755 "${pkgdir}/etc/coolercontrol/plugins/coolerdash/ui"
69+
install -m644 "${srcdir}/coolerdash/etc/coolercontrol/plugins/coolerdash/ui/index.html" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/ui/index.html"
70+
install -m644 "${srcdir}/coolerdash/etc/coolercontrol/plugins/coolerdash/ui/cc-plugin-lib.js" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/ui/cc-plugin-lib.js"
71+
install -m644 "${srcdir}/coolerdash/images/shutdown.png" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/shutdown.png"
72+
install -m644 "${srcdir}/coolerdash/etc/coolercontrol/plugins/coolerdash/manifest.toml" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/manifest.toml"
73+
74+
# Substitute VERSION placeholder in manifest.toml
75+
sed -i "s/{{VERSION}}/${pkgver}/g" "${pkgdir}/etc/coolercontrol/plugins/coolerdash/manifest.toml"
76+
77+
# Manual page
78+
install -Dm644 "${srcdir}/coolerdash/man/coolerdash.1" "${pkgdir}/usr/share/man/man1/coolerdash.1"
79+
80+
# Desktop shortcut for settings UI
81+
install -Dm644 "${srcdir}/coolerdash/etc/applications/coolerdash.desktop" "${pkgdir}/usr/share/applications/coolerdash.desktop"
82+
83+
# USB power management udev rule for
84+
install -Dm644 "${srcdir}/etc/udev/rules.d/99-coolerdash.rules" "${pkgdir}/usr/lib/udev/rules.d/99-coolerdash.rules"
85+
86+
# Application icon
87+
install -Dm644 "${srcdir}/coolerdash/etc/icons/coolerdash.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/coolerdash.svg"
22488
}

aur/coolerdash.install

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,23 +76,11 @@ post_install() {
7676
chmod 644 /etc/coolercontrol/plugins/coolerdash/ui/* 2>/dev/null || true
7777
fi
7878

79-
# Reload udev rules for NZXT USB power management
79+
# Reload udev rules for USB power management
8080
if [ -f /usr/lib/udev/rules.d/99-coolerdash.rules ]; then
81-
echo "Reloading udev rules for NZXT devices..."
81+
echo "Reloading udev rules..."
8282
udevadm control --reload-rules 2>/dev/null || true
83-
udevadm trigger --subsystem-match=usb --attr-match=idVendor=1e71 2>/dev/null || true
84-
85-
# Apply settings to already connected NZXT devices (udev rules only trigger on add/bind)
86-
for device in /sys/bus/usb/devices/*/idVendor; do
87-
if [ -f "$device" ] && [ "$(cat $device 2>/dev/null)" = "1e71" ]; then
88-
device_path=$(dirname "$device")
89-
if [ -f "$device_path/power/autosuspend_delay_ms" ]; then
90-
echo -1 > "$device_path/power/autosuspend_delay_ms" 2>/dev/null || true
91-
echo on > "$device_path/power/control" 2>/dev/null || true
92-
echo "Configured USB autosuspend delay for $(basename $device_path)"
93-
fi
94-
fi
95-
done
83+
udevadm trigger --subsystem-match=usb 2>/dev/null || true
9684
fi
9785

9886
# Create systemd drop-in for startup delay (allow shutdown.png to display)

0 commit comments

Comments
 (0)