gnu: indi-2.0: Adjust package style.

* gnu/packages/astronomy.scm (indi-2.0): Apply G-expressions.
[arguments] <tests>: Enable tests on all architectures.
<parallel-tests>: Disable it to make tests more stable.
<configure-flags>: Build all tests, do not set "Release" build type.
<phases>: Add 'patch-udev-rule phase. Refresh custom 'check phase to
include integration tests.'
[inputs]: Add kmod.

Change-Id: I46223344b042e2516065a4382fb0feb36645ebf9
This commit is contained in:
Sharlatan Hellseher 2024-08-13 16:53:33 +01:00
parent 1166035acb
commit 1e69ac70c7
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

@ -61,6 +61,7 @@ (define-module (gnu packages astronomy)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
@ -4316,26 +4317,30 @@ (define-public indi-2.0
(base32 "1rsy6ihwl3fnv502pmycx0xry9qn1qfz13kwdifcf2075wqd1lx9"))))
(build-system cmake-build-system)
(arguments
;; TODO: fix failing tests on aarch64-system.
`(#:tests? ,(not (or (%current-target-system) (target-aarch64?)))
#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list
"-DINDI_BUILD_UNITTESTS=ON"
"-DCMAKE_BUILD_TYPE=Release"
(string-append "-DCMAKE_INSTALL_PREFIX=" out)
(string-append "-DUDEVRULES_INSTALL_DIR=" out "/lib/udev/rules.d")))
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "test"
(invoke "ctest")))))
(add-before 'install 'set-install-directories
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/lib/udev/rules.d"))))))))
(list
#:parallel-tests? #f ; Socket address collisions between tests
#:configure-flags
#~(list "-DINDI_BUILD_UNITTESTS=ON"
"-DINDI_BUILD_INTEGTESTS=ON"
"-DCMAKE_INSTALL_LIBDIR=lib"
(string-append "-DCMAKE_INSTALL_PREFIX=" #$output)
(string-append "-DUDEVRULES_INSTALL_DIR=" #$output "/lib/udev/rules.d"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-udev-rules
(lambda _
(substitute* (list "drivers/auxiliary/99-indi_auxiliary.rules"
"drivers/video/80-dbk21-camera.rules")
(("/bin/sh") (which "sh"))
(("/sbin/modprobe")
(string-append #$(this-package-input "kmod") "/bin/modprobe")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "integs"
(invoke "ctest" "-V" "--output-on-failure"))
(with-directory-excursion "test"
(invoke "ctest" "-V"))))))))
(native-inputs
(list googletest))
(inputs
@ -4343,6 +4348,7 @@ (define-public indi-2.0
curl
fftw
gsl
kmod
libev
libjpeg-turbo
libnova