gnu: fio: Install python scripts in separate output.

* gnu/packages/benchmark.scm (fio)[outputs]: New field.
[arguments]: Rename 'wrap-python-scripts' phase to 'move-outputs'. Keep wrapper.
master
Marius Bakke 2017-03-28 00:08:36 +02:00
parent 1a75083b0d
commit f125ec8ef2
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
1 changed files with 20 additions and 7 deletions

View File

@ -64,13 +64,26 @@
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"
(string-append "--prefix=" out))))))
(add-after
'install 'wrap-python-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/fiologparser_hist.py")
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
#t))))))
;; The main `fio` executable is fairly small and self contained.
;; Moving the auxiliary python and gnuplot scripts to a separate
;; output saves almost 400 MiB on the closure.
(add-after 'install 'move-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let ((oldbin (string-append (assoc-ref outputs "out") "/bin"))
(newbin (string-append (assoc-ref outputs "utils") "/bin")))
(mkdir-p newbin)
(for-each (lambda (file)
(let ((src (string-append oldbin "/" file))
(dst (string-append newbin "/" file)))
(link src dst)
(delete-file src)))
'("fio2gnuplot" "fio_latency2csv.py"
"fiologparser_hist.py" "fiologparser.py"))
;; Make sure numpy et.al is found.
(wrap-program (string-append newbin "/fiologparser_hist.py")
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
#t))))))
(outputs '("out" "utils"))
(inputs
`(("libaio" ,libaio)
("gnuplot" ,gnuplot)