summaryrefslogtreecommitdiff
path: root/gnu/packages/virtualization.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r--gnu/packages/virtualization.scm34
1 files changed, 28 insertions, 6 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 5c6f88d55f..cb9e973dcc 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1547,6 +1547,9 @@ pretty simple, REST API.")
(build-system meson-build-system)
(arguments
(list
+ #:modules '((guix build meson-build-system)
+ (guix build utils)
+ (ice-9 format))
#:configure-flags
#~(list "-Ddriver_qemu=enabled"
"-Dqemu_user=nobody"
@@ -1573,12 +1576,31 @@ pretty simple, REST API.")
(substitute* "scripts/meson-install-dirs.py"
(("destdir = .*")
"destdir = '/tmp'"))))
- (add-after 'unpack 'use-absolute-dnsmasq
+ (add-after 'unpack 'patch-commands
(lambda* (#:key inputs #:allow-other-keys)
- (let ((dnsmasq (search-input-file inputs "sbin/dnsmasq")))
- (substitute* "src/util/virdnsmasq.c"
- (("#define DNSMASQ \"dnsmasq\"")
- (string-append "#define DNSMASQ \"" dnsmasq "\""))))))
+ (let-syntax
+ ((patch-command-define
+ ;; Patch lines of the form: #define COMMAND "command"
+ (lambda (x)
+ (syntax-case x ()
+ ((_ file command)
+ (with-syntax ((pattern (datum->syntax x 'pattern)))
+ #'(let ((pattern
+ (format #f "(#define ~:@(~a~) )\"~a\""
+ command command)))
+ (substitute* file
+ ((pattern dummy head)
+ (format
+ #f "~a~s" head
+ (search-input-file
+ inputs (string-append "sbin/"
+ command))))))))))))
+ (with-directory-excursion "src/util"
+ (patch-command-define "virdnsmasq.c" "dnsmasq")
+ (patch-command-define "virfirewall.h" "ebtables")
+ (patch-command-define "virfirewall.h" "iptables")
+ (patch-command-define "virfirewall.h" "ip6tables")
+ (patch-command-define "virfirewall.h" "nft")))))
(add-before 'configure 'disable-broken-tests
(lambda _
(let ((tests (list "commandtest" ; hangs idly
@@ -1601,7 +1623,6 @@ pretty simple, REST API.")
dbus
dmidecode
dnsmasq
- ebtables
eudev
fuse-2
gnutls
@@ -1615,6 +1636,7 @@ pretty simple, REST API.")
libtirpc ;for <rpc/rpc.h>
libxml2
lvm2 ;for libdevmapper
+ nftables
openssl
parted
`(,util-linux "lib")