summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2019-03-05 16:56:41 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2019-03-05 17:01:53 +0100
commit908a3f361480f39819c712d62a5e0b685e823c54 (patch)
treeacf5fbf365401253eadd698e8c0db963f46b6219 /gnu/packages/linux.scm
parent9a3d176ee1b49d4b6d8a7cf0a80512cfa61c0e61 (diff)
downloadguix-patches-908a3f361480f39819c712d62a5e0b685e823c54.tar
guix-patches-908a3f361480f39819c712d62a5e0b685e823c54.tar.gz
gnu: thinkfan: Let the build system handle rcscripts/.
This moves them from /share/thinkfan to their conventional locations in /etc and /lib; the former was an arbitrary Guixism anyway. * gnu/packages/linux.scm (thinkfan)[arguments]: Re-write 'install-rc-scripts' as 'create-init-scripts' and move it after the 'unpack' phase.
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm28
1 files changed, 16 insertions, 12 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9f83f97cef..dd9e19aa37 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -3507,19 +3507,23 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.")
`("-DUSE_ATASMART:BOOL=ON")
#:phases
(modify-phases %standard-phases
- ;; Install scripts for various foreign init systems. Also fix
- ;; hard-coded path for daemon.
- (add-after 'install 'install-rc-scripts
+ (add-after 'unpack 'create-init-scripts
+ ;; CMakeLists.txt relies on build-time symptoms of OpenRC and
+ ;; systemd to patch and install their service files. Fake their
+ ;; presence rather than duplicating the build system below. Leave
+ ;; things like ‘/bin/kill’ because they're not worth a dependency.
+ ;; The sysvinit needs manual patching, but since upstream doesn't
+ ;; even provide the option to install it: don't.
(lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (files (find-files "../source/rcscripts" ".*")))
- (substitute* files
- (("/usr/sbin/(\\$NAME|thinkfan)" _ name)
- (string-append out "/sbin/" name)))
- (for-each (cute install-file <>
- (string-append out "/share/thinkfan"))
- files))
- #t)))))
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share/" ,name)))
+ (substitute* "CMakeLists.txt"
+ (("pkg_check_modules\\((OPENRC|SYSTEMD) .*" _ package)
+ (format "option(~a_FOUND \"Faked\" ON)\n" package))
+ ;; That was easy! Now we just need to fix the destinations.
+ (("/etc" directory)
+ (string-append out directory)))
+ #t))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs