summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2016-04-18 17:00:44 +0200
committerMathieu Lirzin <mthl@gnu.org>2016-05-02 17:58:23 +0200
commit4c48bf55020d5900c67b37be0b7380455de88a51 (patch)
tree2bb305a2da0d29b642e7145bfc313a2ddc02bb87 /gnu
parentd0184f44d3c1cc2f143e48d769c11f77666bcd68 (diff)
gnu: powertop: Patch absolute file names.
* gnu/packages/linux.scm (powertop)[inputs]: Add kmod. [arguments]: Patch absolute file names.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/linux.scm26
1 files changed, 23 insertions, 3 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a26e641342..aa778beefb 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1203,11 +1203,31 @@ devices. It replaces 'iwconfig', which is deprecated.")
(base32
"0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; TODO: Patch some hardcoded "wlan0" in calibrate/calibrate.cpp to
+ ;; allow calibrating the network interface in GuixSD.
+ (add-after 'unpack 'patch-absolute-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((kmod (assoc-ref inputs "kmod")))
+ (substitute* (find-files "src" "\\.cpp$")
+ ;; Give the right 'modprobe' file name so that essential
+ ;; modules such as msr.ko can be loaded.
+ (("/sbin/modprobe") (string-append kmod "/bin/modprobe"))
+ ;; These programs are only needed to calibrate, so using
+ ;; relative file names avoids adding extra inputs. When they
+ ;; are missing powertop gracefully handles it.
+ (("/usr/bin/hcitool") "hcitool")
+ (("/usr/bin/xset") "xset")
+ (("/usr/sbin/hciconfig") "hciconfig"))
+ #t))))))
(inputs
- `(("zlib" ,zlib)
- ("pciutils" ,pciutils)
+ `(("kmod" ,kmod)
+ ("libnl" ,libnl)
("ncurses" ,ncurses)
- ("libnl" ,libnl)))
+ ("pciutils" ,pciutils)
+ ("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://01.org/powertop/")