diff options
-rw-r--r-- | gnu/packages/linux.scm | 126 |
1 files changed, 60 insertions, 66 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7f909e863e..a203adc1d4 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5223,75 +5223,69 @@ arrays when needed.") #t)))) (build-system gnu-build-system) (arguments - '(#:test-target "test" - #:parallel-build? #f ;XXX: broken in 0.8.4 - #:make-flags (list "CC=gcc" - (string-append "DESTDIR=" - (assoc-ref %outputs "out")) - ;; Install Udev rules below this directory, relative - ;; to the prefix. - "SYSTEMDPATH=lib" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") - "/lib")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda* (#:key inputs #:allow-other-keys) - (let ((lvm2 (assoc-ref inputs "lvm2")) - (udev (assoc-ref inputs "udev"))) - (substitute* "Makefile.inc" - (("\\$\\(prefix\\)/usr") "$(prefix)") - ;; Do not save timestamp to avoid gzip "timestamp - ;; out-of-range" warnings. - (("gzip -9") "gzip -9n")) - (substitute* '("kpartx/Makefile" "libmultipath/Makefile") - (("/usr/include/libdevmapper.h") - (string-append lvm2 "/include/libdevmapper.h")) - (("/usr/include/libudev.h") - (string-append udev "/include/libudev.h"))) - #t))) - (add-after 'unpack 'fix-maybe-uninitialized-variable - (lambda _ - ;; This variable gets initialized later if needed, but GCC 7 - ;; fails to notice. Should be fixed for > 0.8.4. - ;; https://www.redhat.com/archives/dm-devel/2020-March/msg00137.html - (substitute* "libmultipath/structs_vec.c" - (("bool is_queueing;") - "bool is_queueing = false;")) - #t)) - (add-after 'unpack 'fix-linking-tests - (lambda _ - ;; Add missing linker flag for -lmpathcmd. This should be fixed - ;; for versions > 0.8.4. - (substitute* "tests/Makefile" - (("-lmultipath -lcmocka") - "-lmultipath -L$(mpathcmddir) -lmpathcmd -lcmocka")) - #t)) - (add-after 'unpack 'skip-failing-tests - (lambda _ - ;; This test and the module's setup() test an arbitrary block - ;; device node name, but the build environment has none. - (substitute* "tests/devt.c" - (("return get_one_devt.*") "return 0;\n") - (("cmocka_unit_test\\(test_devt2devname_devt_good\\),") "")) - ;; The above triggers -Werror=unused-function. Ignore it. - (substitute* "tests/Makefile" - (("CFLAGS \\+= " match) - (string-append match "-Wno-error=unused-function "))) - #t)) - (delete 'configure)))) ; no configure script + (list + #:test-target "test" + #:parallel-build? #f ;XXX: broken since 0.8.4 + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "DESTDIR=" #$output) + ;; Install Udev rules below this directory, relative + ;; to the prefix. + "SYSTEMDPATH=lib" + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (let ((libdevmapper.h + (search-input-file inputs "include/libdevmapper.h")) + (libudev.h + (search-input-file inputs "include/libudev.h"))) + (substitute* "Makefile.inc" + (("\\$\\(prefix\\)/usr") "$(prefix)") + ;; Do not save timestamp to avoid gzip "timestamp + ;; out-of-range" warnings. + (("gzip -9") "gzip -9n")) + (substitute* '("kpartx/Makefile" "libmultipath/Makefile") + (("/usr/include/libdevmapper.h") libdevmapper.h) + (("/usr/include/libudev.h") libudev.h))))) + (add-after 'unpack 'fix-maybe-uninitialized-variable + (lambda _ + ;; This variable gets initialized later if needed, but GCC 7 + ;; fails to notice. Should be fixed for > 0.8.4. + ;; https://www.redhat.com/archives/dm-devel/2020-March/msg00137.html + (substitute* "libmultipath/structs_vec.c" + (("bool is_queueing;") + "bool is_queueing = false;")))) + (add-after 'unpack 'fix-linking-tests + (lambda _ + ;; Add missing linker flag for -lmpathcmd. This should be fixed + ;; for versions > 0.8.4. + (substitute* "tests/Makefile" + (("-lmultipath -lcmocka") + "-lmultipath -L$(mpathcmddir) -lmpathcmd -lcmocka")))) + (add-after 'unpack 'skip-failing-tests + (lambda _ + ;; This test and the module's setup() test an arbitrary block + ;; device node name, but the build environment has none. + (substitute* "tests/devt.c" + (("return get_one_devt.*") "return 0;\n") + (("cmocka_unit_test\\(test_devt2devname_devt_good\\),") "")) + ;; The above triggers -Werror=unused-function. Ignore it. + (substitute* "tests/Makefile" + (("CFLAGS \\+= " match) + (string-append match "-Wno-error=unused-function "))))) + (delete 'configure)))) ;no configure script (native-inputs (list perl pkg-config valgrind ;; For tests. cmocka)) (inputs - `(("json-c" ,json-c) - ("libaio" ,libaio) - ("liburcu" ,liburcu) - ("lvm2" ,lvm2) - ("readline" ,readline) - ("udev" ,eudev))) + (list json-c + libaio + liburcu + lvm2 + readline + eudev)) (home-page "http://christophe.varoqui.free.fr/") (synopsis "Access block devices through multiple paths") (description @@ -5304,8 +5298,8 @@ Linux Device Mapper multipathing driver: @code{dm} multipath devices. @item @command{kpartx} - Create device maps from partition tables. @end enumerate") - (license (list license:gpl2+ ; main distribution - license:lgpl2.0+)))) ; libmpathcmd/mpath_cmd.h + (license (list license:gpl2+ ;main distribution + license:lgpl2.0+)))) ;libmpathcmd/mpath_cmd.h (define-public libaio (package |