From c957791859411fba5cea59719386017b4bdfebf2 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Thu, 23 Jul 2020 13:00:08 +0200 Subject: [PATCH] meson: src/network: install default network xml Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- scripts/meson-install-symlink.py | 15 ++++++++++ scripts/meson.build | 1 + src/network/Makefile.inc.am | 20 ------------- src/network/{default.xml => default.xml.in} | 0 src/network/meson.build | 32 +++++++++++++++++++++ 5 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 scripts/meson-install-symlink.py rename src/network/{default.xml => default.xml.in} (100%) diff --git a/scripts/meson-install-symlink.py b/scripts/meson-install-symlink.py new file mode 100644 index 0000000000..e38507072d --- /dev/null +++ b/scripts/meson-install-symlink.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +import os +import sys + +destdir = os.environ.get('DESTDIR', os.sep) +dirname = sys.argv[1] +target = sys.argv[2] +link = sys.argv[3] + +workdir = os.path.join(destdir, dirname.strip(os.sep)) + +os.makedirs(workdir, exist_ok=True) +os.chdir(workdir) +os.symlink(target, link) diff --git a/scripts/meson.build b/scripts/meson.build index bd641236a2..e1ecda2a0c 100644 --- a/scripts/meson.build +++ b/scripts/meson.build @@ -21,6 +21,7 @@ scripts = [ 'meson-gen-def.py', 'meson-gen-sym.py', 'meson-install-dirs.py', + 'meson-install-symlink.py', 'meson-python.sh', 'mock-noinline.py', 'prohibit-duplicate-header.py', diff --git a/src/network/Makefile.inc.am b/src/network/Makefile.inc.am index 8482f924a1..c19b1f9952 100644 --- a/src/network/Makefile.inc.am +++ b/src/network/Makefile.inc.am @@ -7,23 +7,7 @@ STATEFUL_DRIVER_SOURCE_FILES += \ if WITH_NETWORK INSTALL_DATA_DIRS += network -UUID=$(shell uuidgen 2>/dev/null) - install-data-network: - $(MKDIR_P) "$(DESTDIR)$(confdir)/qemu/networks/autostart" - $(INSTALL_DATA) $(srcdir)/network/default.xml \ - $(DESTDIR)$(confdir)/qemu/networks/default.xml - test -z "$(UUID)" || \ - { sed -e "s,,; $(UUID)," \ - $(DESTDIR)$(confdir)/qemu/networks/default.xml | \ - tr ";" "\n" > \ - $(DESTDIR)$(confdir)/qemu/networks/default.xml.t && \ - cp $(DESTDIR)$(confdir)/qemu/networks/default.xml.t \ - $(DESTDIR)$(confdir)/qemu/networks/default.xml && \ - rm $(DESTDIR)$(confdir)/qemu/networks/default.xml.t; } - ( cd $(DESTDIR)$(confdir)/qemu/networks/autostart && \ - rm -f default.xml && \ - $(LN_S) ../default.xml default.xml ) if WITH_FIREWALLD_ZONE $(MKDIR_P) "$(DESTDIR)$(prefix)/lib/firewalld/zones" $(INSTALL_DATA) $(srcdir)/network/libvirt.zone \ @@ -31,10 +15,6 @@ if WITH_FIREWALLD_ZONE endif WITH_FIREWALLD_ZONE uninstall-data-network: - rm -f $(DESTDIR)$(confdir)/qemu/networks/autostart/default.xml - rm -f $(DESTDIR)$(confdir)/qemu/networks/default.xml - rmdir "$(DESTDIR)$(confdir)/qemu/networks/autostart" || : - rmdir "$(DESTDIR)$(confdir)/qemu/networks" || : if WITH_FIREWALLD_ZONE rm -f $(DESTDIR)$(prefix)/lib/firewalld/zones/libvirt.xml endif WITH_FIREWALLD_ZONE diff --git a/src/network/default.xml b/src/network/default.xml.in similarity index 100% rename from src/network/default.xml rename to src/network/default.xml.in diff --git a/src/network/meson.build b/src/network/meson.build index cc8739e53c..e0b50a707c 100644 --- a/src/network/meson.build +++ b/src/network/meson.build @@ -82,4 +82,36 @@ if conf.has('WITH_NETWORK') localstatedir / 'lib' / 'libvirt' / 'dnsmasq', runstatedir / 'libvirt' / 'network', ] + + uuidgen_prog = find_program('uuidgen', required: false) + + if uuidgen_prog.found() + uuid = run_command(uuidgen_prog).stdout().strip() + + configure_file( + input: 'default.xml.in', + output: 'default.xml', + command: [ + 'sed', '-e', 's||\\n @0@|'.format(uuid), + '@INPUT@', + ], + capture: true, + install: true, + install_dir: confdir / 'qemu' / 'networks', + ) + else + configure_file( + input: 'default.xml.in', + output: 'default.xml', + copy: true, + install: true, + install_dir: confdir / 'qemu' / 'networks', + ) + endif + + meson.add_install_script( + meson_python_prog.path(), python3_prog.path(), meson_install_symlink_prog.path(), + confdir / 'qemu' / 'networks' / 'autostart', + '../default.xml', 'default.xml', + ) endif