File: 0002-Revamp-systemd-service-unit-file-installation.patch

package info (click to toggle)
keyd 2.5.0-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,472 kB
  • sloc: ansic: 5,206; python: 1,114; makefile: 114; javascript: 105; perl: 95; sh: 67
file content (73 lines) | stat: -rw-r--r-- 2,807 bytes parent folder | download | duplicates (2)
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
From: Richard Hansen <rhansen@rhansen.org>
Date: Sat, 6 Jan 2024 00:32:57 -0500
Subject: Revamp systemd service unit file installation

  * Make the systemd system directory configurable.
  * Use `/usr` instead of `$(PREFIX)` for systemd system directory
    because it is more likely to match user systems.
  * Skip systemd service install if `SYSTEMD_SYSTEM_DIR` is empty
  * Always install systemd service if `SYSTEMD_SYSTEM_DIR` is set

Forwarded: https://github.com/rvaiya/keyd/pull/674
---
 Makefile | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index 5df8832..9dc8580 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,10 @@ PREFIX?=/usr/local
 CONFIG_DIR?=/etc/keyd
 SOCKET_PATH=/var/run/keyd.socket
 
+# If this variable is set to the empty string, no systemd unit files will be
+# installed.
+SYSTEMD_SYSTEM_DIR = /usr/lib/systemd/system
+
 CFLAGS:=-DVERSION=\"v$(VERSION)\ \($(COMMIT)\)\" \
 	-I/usr/local/include \
 	-L/usr/local/lib \
@@ -49,15 +53,14 @@ man:
 		scdoc < "$$f" | gzip > "$$target"; \
 	done
 install:
-	@if [ -e /run/systemd/system ]; then \
-		mkdir -p $(DESTDIR)$(PREFIX)/lib/systemd/system/; \
-		install -Dm644 keyd.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service; \
-	else \
-		echo "NOTE: systemd not found, you will need to manually add keyd to your system's init process."; \
+	@if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \
+		mkdir -p '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)'; \
+		install -Dm644 keyd.service '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd.service'; \
 	fi
-
 	@if [ "$(VKBD)" = "usb-gadget" ]; then \
-		install -Dm644 src/vkbd/usb-gadget.service $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service; \
+		if [ -n '$(SYSTEMD_SYSTEM_DIR)' ]; then \
+			install -Dm644 src/vkbd/usb-gadget.service '$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd-usb-gadget.service'; \
+		fi; \
 		install -Dm755 src/vkbd/usb-gadget.sh $(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh; \
 	fi
 
@@ -80,15 +83,15 @@ install:
 
 uninstall:
 	-groupdel keyd
-	rm -rf $(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service \
-		$(DESTDIR)$(PREFIX)/bin/keyd \
+	[ -z '$(SYSTEMD_SYSTEM_DIR)' ] || rm -f \
+		'$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd.service' \
+		'$(DESTDIR)$(SYSTEMD_SYSTEM_DIR)/keyd-usb-gadget.service'
+	rm -rf $(DESTDIR)$(PREFIX)/bin/keyd \
 		$(DESTDIR)$(PREFIX)/bin/keyd-application-mapper \
 		$(DESTDIR)$(PREFIX)/share/doc/keyd/ \
 		$(DESTDIR)$(PREFIX)/share/man/man1/keyd*.gz \
 		$(DESTDIR)$(PREFIX)/share/keyd/ \
-		$(DESTDIR)$(PREFIX)/lib/systemd/system/keyd-usb-gadget.service \
-		$(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh \
-		$(DESTDIR)$(PREFIX)/lib/systemd/system/keyd.service
+		$(DESTDIR)$(PREFIX)/bin/keyd-usb-gadget.sh
 clean:
 	rm -rf bin keyd.service src/vkbd/usb-gadget.service
 test: