summary refs log tree commit diff
path: root/gnu/packages/virtualization.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r--gnu/packages/virtualization.scm23
1 files changed, 20 insertions, 3 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 7c69f7b60e..b4b9dfc411 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -416,6 +417,15 @@ manage system or application containers.")
              (substitute* "config.h.in"
                (("/bin/sh") (which "sh")))
              #t))
+         (add-before 'configure 'patch-libtirpc-file-names
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; libvirt uses an m4 macro instead of pkg-config to determine where
+             ;; the RPC headers are located.  Tell it to look in the right place.
+             (substitute* "configure"
+               (("/usr/include/tirpc")  ;defined in m4/virt-xdr.m4
+                (string-append (assoc-ref inputs "libtirpc")
+                               "/include/tirpc")))
+             #t))
          (add-before 'configure 'disable-broken-tests
            (lambda _
              (let ((tests (list "commandtest"      ; hangs idly
@@ -452,8 +462,9 @@ manage system or application containers.")
        ("qemu" ,qemu)
        ("libpcap" ,libpcap)
        ("libnl" ,libnl)
+       ("libtirpc" ,libtirpc)           ;for <rpc/rpc.h>
        ("libuuid" ,util-linux)
-       ("lvm2" ,lvm2)                   ; for libdevmapper
+       ("lvm2" ,lvm2)                   ;for libdevmapper
        ("curl" ,curl)
        ("openssl" ,openssl)
        ("cyrus-sasl" ,cyrus-sasl)
@@ -682,7 +693,13 @@ domains, their live performance and resource utilization statistics.")
              (setenv "C_INCLUDE_PATH"
                      (string-append (assoc-ref inputs "libnl")
                                     "/include/libnl3:"
-                                    (getenv "C_INCLUDE_PATH")))
+                                    ;; Also add the kernel headers here so that GCC
+                                    ;; treats them as "system headers".  Otherwise
+                                    ;; the build fails with -Werror because parasite.c
+                                    ;; includes both <linux/fs.h> and <sys/mount.h>,
+                                    ;; which define some of the same constants.
+                                    (assoc-ref inputs "kernel-headers")
+                                    "/include"))
              ;; Prevent xmlto from failing the install phase.
              (substitute* "Documentation/Makefile"
                (("XMLTO.*:=.*")
@@ -1282,7 +1299,7 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc"))
     (native-inputs
      `(("dev86" ,dev86)
        ("bison" ,bison)
-       ("cmake" ,cmake)
+       ("cmake" ,cmake-minimal)
        ("figlet" ,figlet)
        ("flex" ,flex)
        ("gettext" ,gettext-minimal)