nixpkgs/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

474 lines
17 KiB
Diff
Raw Normal View History

2022-03-14 17:12:12 +00:00
From ad42041cfedcf25716429d2aad16641e0e2a012f Mon Sep 17 00:00:00 2001
From: Euan Kemp <euank@euank.com>
Date: Thu, 14 Jan 2021 00:32:00 -0800
Subject: [PATCH] meson: patch in an install prefix for building on nix
Used in the nixpkgs version of libvirt so that we can install things in
the nix store, but read them from the root filesystem.
---
2022-03-14 17:12:12 +00:00
meson.build | 9 ++++++++
meson_options.txt | 2 ++
2022-03-14 17:12:12 +00:00
src/ch/meson.build | 6 ++---
src/interface/meson.build | 2 +-
src/libxl/meson.build | 18 +++++++--------
src/locking/meson.build | 8 +++----
src/lxc/meson.build | 10 ++++----
src/meson.build | 18 +++++++--------
src/network/meson.build | 14 ++++++------
src/node_device/meson.build | 2 +-
src/nwfilter/meson.build | 6 ++---
src/nwfilter/xml/meson.build | 2 +-
2022-03-14 17:12:12 +00:00
src/qemu/meson.build | 38 +++++++++++++++----------------
src/remote/meson.build | 10 ++++----
src/secret/meson.build | 4 ++--
src/security/apparmor/meson.build | 8 +++----
src/storage/meson.build | 6 ++---
tools/meson.build | 2 +-
18 files changed, 88 insertions(+), 77 deletions(-)
diff --git a/meson.build b/meson.build
2022-03-14 17:12:12 +00:00
index 9016c0458a..b26e690194 100644
--- a/meson.build
+++ b/meson.build
@@ -39,6 +39,8 @@ if host_machine.system() == 'windows'
conf.set('WINVER', '0x0600') # Win Vista / Server 2008
endif
+# patched in for nix
+install_prefix = get_option('install_prefix')
# set various paths
@@ -57,6 +59,13 @@ else
sysconfdir = prefix / get_option('sysconfdir')
endif
+# nix: don't prefix the localstatedir; some things need to write to it, so it
+# can't be in the nix store, and that's what the prefix is.
+# We'll prefix things ourselves where needed
+localstatedir = get_option('localstatedir')
+# Same for sysconfidr
+sysconfdir = get_option('sysconfdir')
+
# if --prefix is /usr, don't use /usr/var for localstatedir or /usr/etc for
# sysconfdir as this makes a lot of things break in testing situations
if prefix == '/usr'
diff --git a/meson_options.txt b/meson_options.txt
2022-03-14 07:33:21 +00:00
index 5b43cdbd6b..e9dff18441 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,5 @@
+option('install_prefix', type: 'string', value: '', description: 'prefix for nix store installation')
+
option('no_git', type: 'boolean', value: false, description: 'Disable git submodule update')
option('packager', type: 'string', value: '', description: 'Extra packager name')
option('packager_version', type: 'string', value: '', description: 'Extra packager version')
2022-03-14 07:33:21 +00:00
diff --git a/src/ch/meson.build b/src/ch/meson.build
2022-03-14 17:12:12 +00:00
index 66b77907b0..6aa9bbc548 100644
2022-03-14 07:33:21 +00:00
--- a/src/ch/meson.build
+++ b/src/ch/meson.build
2022-03-14 17:12:12 +00:00
@@ -64,8 +64,8 @@ if conf.has('WITH_CH')
2022-03-14 07:33:21 +00:00
}
virt_install_dirs += [
- localstatedir / 'lib' / 'libvirt' / 'ch',
2022-03-14 17:12:12 +00:00
- localstatedir / 'log' / 'libvirt' / 'ch',
2022-03-14 07:33:21 +00:00
- runstatedir / 'libvirt' / 'ch',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'ch',
2022-03-14 17:12:12 +00:00
+ install_prefix + localstatedir / 'log' / 'libvirt' / 'ch',
2022-03-14 07:33:21 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'ch',
]
endif
2022-03-14 17:12:12 +00:00
diff --git a/src/interface/meson.build b/src/interface/meson.build
index 828f274422..2a6b1f8c5e 100644
--- a/src/interface/meson.build
+++ b/src/interface/meson.build
@@ -56,6 +56,6 @@ if conf.has('WITH_INTERFACE')
}
virt_install_dirs += [
- runstatedir / 'libvirt' / 'interface',
+ install_prefix + runstatedir / 'libvirt' / 'interface',
]
endif
diff --git a/src/libxl/meson.build b/src/libxl/meson.build
2022-03-14 17:12:12 +00:00
index 0cc277db82..48d8c5b962 100644
--- a/src/libxl/meson.build
+++ b/src/libxl/meson.build
2022-03-14 17:12:12 +00:00
@@ -79,14 +79,14 @@ if conf.has('WITH_LIBXL')
}
virt_install_dirs += [
2022-03-14 17:12:12 +00:00
- confdir / 'libxl',
- confdir / 'libxl' / 'autostart',
- localstatedir / 'lib' / 'libvirt' / 'libxl',
2022-03-14 17:12:12 +00:00
- localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel',
- localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel' / 'target',
- localstatedir / 'lib' / 'libvirt' / 'libxl' / 'dump',
- localstatedir / 'lib' / 'libvirt' / 'libxl' / 'save',
- localstatedir / 'log' / 'libvirt' / 'libxl',
2022-03-14 17:12:12 +00:00
- runstatedir / 'libvirt' / 'libxl',
+ install_prefix + confdir / 'libxl',
+ install_prefix + confdir / 'libxl' / 'autostart',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl',
2022-03-14 17:12:12 +00:00
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel' / 'target',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'dump',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'save',
+ install_prefix + localstatedir / 'log' / 'libvirt' / 'libxl',
2022-03-14 17:12:12 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'libxl',
]
endif
diff --git a/src/locking/meson.build b/src/locking/meson.build
2022-03-14 17:12:12 +00:00
index 72f7780438..abe70d20d5 100644
--- a/src/locking/meson.build
+++ b/src/locking/meson.build
2022-03-14 17:12:12 +00:00
@@ -238,14 +238,14 @@ if conf.has('WITH_LIBVIRTD')
}
virt_install_dirs += [
- localstatedir / 'lib' / 'libvirt' / 'lockd',
- localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
- runstatedir / 'libvirt' / 'lockd',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
+ install_prefix + runstatedir / 'libvirt' / 'lockd',
]
if conf.has('WITH_SANLOCK')
virt_install_dirs += [
- localstatedir / 'lib' / 'libvirt' / 'sanlock',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'sanlock',
]
endif
endif
diff --git a/src/lxc/meson.build b/src/lxc/meson.build
2022-03-14 17:12:12 +00:00
index 99d4a34213..aae477c1ee 100644
--- a/src/lxc/meson.build
+++ b/src/lxc/meson.build
2022-03-14 17:12:12 +00:00
@@ -176,10 +176,10 @@ if conf.has('WITH_LXC')
}
virt_install_dirs += [
2022-03-14 17:12:12 +00:00
- confdir / 'lxc',
- confdir / 'lxc' / 'autostart',
- localstatedir / 'lib' / 'libvirt' / 'lxc',
- localstatedir / 'log' / 'libvirt' / 'lxc',
2022-03-14 17:12:12 +00:00
- runstatedir / 'libvirt' / 'lxc',
+ install_prefix + confdir / 'lxc',
+ install_prefix + confdir / 'lxc' / 'autostart',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lxc',
+ install_prefix + localstatedir / 'log' / 'libvirt' / 'lxc',
2022-03-14 17:12:12 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'lxc',
]
endif
diff --git a/src/meson.build b/src/meson.build
2022-03-14 17:12:12 +00:00
index b2d951d36c..305716010f 100644
--- a/src/meson.build
+++ b/src/meson.build
2022-03-14 17:12:12 +00:00
@@ -210,7 +210,7 @@ openrc_init_files = []
# virt_install_dirs:
# list of directories to create during installation
-virt_install_dirs = [ confdir ]
+virt_install_dirs = [ install_prefix + confdir ]
# driver_source_files:
# driver source files to check
@@ -663,7 +663,7 @@ endforeach
virt_conf_files += 'libvirt.conf'
-install_data(virt_conf_files, install_dir: confdir)
+install_data(virt_conf_files, install_dir: install_prefix + confdir)
install_data(virt_aug_files, install_dir: virt_aug_dir)
# augeas_test_data:
2022-03-14 17:12:12 +00:00
@@ -723,7 +723,7 @@ foreach data : virt_daemon_confs
output: '@0@.conf'.format(data['name']),
configuration: daemon_conf,
install: true,
- install_dir: confdir,
+ install_dir: install_prefix + confdir,
)
if data.get('with_ip', false)
2022-03-14 17:12:12 +00:00
@@ -847,7 +847,7 @@ if conf.has('WITH_LIBVIRTD')
install_data(
init_file,
- install_dir: sysconfdir / 'init.d',
+ install_dir: install_prefix + sysconfdir / 'init.d',
2022-03-14 17:12:12 +00:00
install_mode: 'rwxr-xr-x',
rename: [ init['name'] ],
)
2022-03-14 17:12:12 +00:00
@@ -855,7 +855,7 @@ if conf.has('WITH_LIBVIRTD')
if init.has_key('confd')
install_data(
init['confd'],
- install_dir: sysconfdir / 'conf.d',
+ install_dir: install_prefix + sysconfdir / 'conf.d',
rename: [ init['name'] ],
)
endif
2022-03-14 17:12:12 +00:00
@@ -882,10 +882,10 @@ endif
# Install empty directories
virt_install_dirs += [
- localstatedir / 'cache' / 'libvirt',
- localstatedir / 'lib' / 'libvirt' / 'images',
- localstatedir / 'lib' / 'libvirt' / 'filesystems',
- localstatedir / 'lib' / 'libvirt' / 'boot',
+ install_prefix + localstatedir / 'cache' / 'libvirt',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'images',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'filesystems',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'boot',
]
meson.add_install_script(
diff --git a/src/network/meson.build b/src/network/meson.build
2022-03-14 17:12:12 +00:00
index b5eff0c3ab..a0f26d624e 100644
--- a/src/network/meson.build
+++ b/src/network/meson.build
@@ -73,11 +73,11 @@ 'in_file': files('virtnetworkd.init.in'),
}
virt_install_dirs += [
2022-03-14 17:12:12 +00:00
- confdir / 'qemu' / 'networks',
- confdir / 'qemu' / 'networks' / 'autostart',
- localstatedir / 'lib' / 'libvirt' / 'network',
- localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
- runstatedir / 'libvirt' / 'network',
2022-03-14 17:12:12 +00:00
+ install_prefix + confdir / 'qemu' / 'networks',
+ install_prefix + confdir / 'qemu' / 'networks' / 'autostart',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'network',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
+ install_prefix + runstatedir / 'libvirt' / 'network',
]
configure_file(
@@ -85,12 +85,12 @@ input: 'default.xml.in',
output: '@BASENAME@',
copy: true,
install: true,
- install_dir: confdir / 'qemu' / 'networks',
+ install_dir: install_prefix + confdir / 'qemu' / 'networks',
)
meson.add_install_script(
meson_python_prog.full_path(), python3_prog.full_path(), meson_install_symlink_prog.full_path(),
- confdir / 'qemu' / 'networks' / 'autostart',
+ install_prefix + confdir / 'qemu' / 'networks' / 'autostart',
'../default.xml', 'default.xml',
)
2022-03-14 17:12:12 +00:00
diff --git a/src/node_device/meson.build b/src/node_device/meson.build
index 1c95975c37..a7831242db 100644
--- a/src/node_device/meson.build
+++ b/src/node_device/meson.build
@@ -64,6 +64,6 @@ if conf.has('WITH_NODE_DEVICES')
}
virt_install_dirs += [
- runstatedir / 'libvirt' / 'nodedev',
+ install_prefix + runstatedir / 'libvirt' / 'nodedev',
]
endif
diff --git a/src/nwfilter/meson.build b/src/nwfilter/meson.build
index 55cf8fcce4..d331086f2e 100644
--- a/src/nwfilter/meson.build
+++ b/src/nwfilter/meson.build
@@ -62,9 +62,9 @@ if conf.has('WITH_NWFILTER')
}
virt_install_dirs += [
- confdir / 'nwfilter',
- runstatedir / 'libvirt' / 'nwfilter-binding',
- runstatedir / 'libvirt' / 'nwfilter',
+ install_prefix + confdir / 'nwfilter',
+ install_prefix + runstatedir / 'libvirt' / 'nwfilter-binding',
+ install_prefix + runstatedir / 'libvirt' / 'nwfilter',
]
subdir('xml')
diff --git a/src/nwfilter/xml/meson.build b/src/nwfilter/xml/meson.build
2022-03-14 07:33:21 +00:00
index 0d96c54ebe..66c92a1016 100644
--- a/src/nwfilter/xml/meson.build
+++ b/src/nwfilter/xml/meson.build
@@ -25,4 +25,4 @@ nwfilter_xml_files = [
'qemu-announce-self.xml',
]
-install_data(nwfilter_xml_files, install_dir: sysconfdir / 'libvirt' / 'nwfilter')
+install_data(nwfilter_xml_files, install_dir: install_prefix + sysconfdir / 'libvirt' / 'nwfilter')
diff --git a/src/qemu/meson.build b/src/qemu/meson.build
2022-03-14 17:12:12 +00:00
index 39f0f615cc..5f6f30f82b 100644
--- a/src/qemu/meson.build
+++ b/src/qemu/meson.build
2023-01-17 07:14:00 +00:00
@@ -200,25 +200,25 @@ if conf.has('WITH_QEMU')
2022-03-14 17:12:12 +00:00
endif
virt_install_dirs += [
2022-03-14 17:12:12 +00:00
- confdir / 'qemu',
- confdir / 'qemu' / 'autostart',
- localstatedir / 'cache' / 'libvirt' / 'qemu',
2022-03-14 17:12:12 +00:00
- localstatedir / 'lib' / 'libvirt' / 'qemu',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel' / 'target',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'checkpoint',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'dump',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'nvram',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'ram',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'save',
- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'snapshot',
- localstatedir / 'lib' / 'libvirt' / 'swtpm',
2022-03-14 17:12:12 +00:00
- localstatedir / 'log' / 'libvirt' / 'qemu',
- localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
2022-03-14 17:12:12 +00:00
- runstatedir / 'libvirt' / 'qemu',
- runstatedir / 'libvirt' / 'qemu' / 'dbus',
2023-01-17 07:14:00 +00:00
- runstatedir / 'libvirt' / 'qemu' / 'passt',
2022-03-14 17:12:12 +00:00
- runstatedir / 'libvirt' / 'qemu' / 'slirp',
- runstatedir / 'libvirt' / 'qemu' / 'swtpm',
+ install_prefix + confdir / 'qemu',
+ install_prefix + confdir / 'qemu' / 'autostart',
+ install_prefix + localstatedir / 'cache' / 'libvirt' / 'qemu',
2022-03-14 17:12:12 +00:00
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel' / 'target',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'checkpoint',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'dump',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'nvram',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'ram',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'save',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'snapshot',
+ install_prefix + localstatedir / 'lib' / 'libvirt' / 'swtpm',
2022-03-14 17:12:12 +00:00
+ install_prefix + localstatedir / 'log' / 'libvirt' / 'qemu',
+ install_prefix + localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
2022-03-14 17:12:12 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'qemu',
+ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'dbus',
2023-01-17 07:14:00 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'passt',
2022-03-14 17:12:12 +00:00
+ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'slirp',
+ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'swtpm',
]
endif
diff --git a/src/remote/meson.build b/src/remote/meson.build
2022-03-14 17:12:12 +00:00
index b2aafe6320..6972d254ca 100644
--- a/src/remote/meson.build
+++ b/src/remote/meson.build
2022-03-14 17:12:12 +00:00
@@ -235,9 +235,9 @@ if conf.has('WITH_REMOTE')
}
virt_install_dirs += [
- localstatedir / 'log' / 'libvirt',
2022-03-14 17:12:12 +00:00
- runstatedir / 'libvirt',
- runstatedir / 'libvirt' / 'common',
+ install_prefix + localstatedir / 'log' / 'libvirt',
2022-03-14 17:12:12 +00:00
+ install_prefix + runstatedir / 'libvirt',
+ install_prefix + runstatedir / 'libvirt' / 'common',
]
logrotate_conf = configuration_data()
2022-03-14 17:12:12 +00:00
@@ -251,7 +251,7 @@ if conf.has('WITH_REMOTE')
)
install_data(
log_file,
- install_dir: sysconfdir / 'logrotate.d',
+ install_dir: install_prefix + sysconfdir / 'logrotate.d',
rename: [ name ],
)
endforeach
2022-03-14 17:12:12 +00:00
@@ -301,7 +301,7 @@ endif
if conf.has('WITH_SASL')
install_data(
'libvirtd.sasl',
- install_dir: sysconfdir / 'sasl2',
+ install_dir: install_prefix + sysconfdir / 'sasl2',
rename: [ 'libvirt.conf' ],
)
endif
2022-03-14 17:12:12 +00:00
diff --git a/src/secret/meson.build b/src/secret/meson.build
index 1bda59849b..392bc2cb2e 100644
--- a/src/secret/meson.build
+++ b/src/secret/meson.build
@@ -45,7 +45,7 @@ if conf.has('WITH_SECRETS')
}
virt_install_dirs += [
- confdir / 'secrets',
- runstatedir / 'libvirt' / 'secrets',
+ install_prefix + confdir / 'secrets',
+ install_prefix + runstatedir / 'libvirt' / 'secrets',
]
endif
diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
2023-08-16 00:07:08 +00:00
index b9257c816d..98701755d8 100644
--- a/src/security/apparmor/meson.build
+++ b/src/security/apparmor/meson.build
2023-08-16 00:07:08 +00:00
@@ -57,7 +57,7 @@ foreach name : apparmor_gen_profiles
output: name,
configuration: apparmor_gen_profiles_conf,
install: true,
- install_dir: apparmor_dir,
+ install_dir: install_prefix + apparmor_dir,
)
endforeach
2023-08-16 00:07:08 +00:00
@@ -68,13 +68,13 @@ foreach name : apparmor_gen_abstractions
command: apparmor_gen_cmd,
capture: true,
install: true,
- install_dir: apparmor_dir / 'abstractions',
+ install_dir: install_prefix + apparmor_dir / 'abstractions',
)
endforeach
install_data(
[ 'TEMPLATE.qemu', 'TEMPLATE.lxc' ],
- install_dir: apparmor_dir / 'libvirt',
+ install_dir: install_prefix + apparmor_dir / 'libvirt',
)
2023-08-16 00:07:08 +00:00
if not conf.has('WITH_APPARMOR_3')
@@ -83,7 +83,7 @@ if not conf.has('WITH_APPARMOR_3')
# files in order to limit the amount of filesystem clutter.
install_data(
'usr.lib.libvirt.virt-aa-helper.local',
- install_dir: apparmor_dir / 'local',
+ install_dir: install_prefix + apparmor_dir / 'local',
rename: 'usr.lib.libvirt.virt-aa-helper',
)
endif
2022-03-14 17:12:12 +00:00
diff --git a/src/storage/meson.build b/src/storage/meson.build
index 26e7ff1a1a..ad5c6eddc3 100644
--- a/src/storage/meson.build
+++ b/src/storage/meson.build
@@ -127,9 +127,9 @@ if conf.has('WITH_STORAGE')
}
virt_install_dirs += [
- confdir / 'storage',
- confdir / 'storage' / 'autostart',
- runstatedir / 'libvirt' / 'storage',
+ install_prefix + confdir / 'storage',
+ install_prefix + confdir / 'storage' / 'autostart',
+ install_prefix + runstatedir / 'libvirt' / 'storage',
]
endif
diff --git a/tools/meson.build b/tools/meson.build
2022-03-14 17:12:12 +00:00
index f4b4a16c29..059c73a955 100644
--- a/tools/meson.build
+++ b/tools/meson.build
2022-03-14 07:33:21 +00:00
@@ -120,7 +120,7 @@ if conf.has('WITH_LOGIN_SHELL')
install_rpath: libvirt_rpath,
)
- install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt')
+ install_data('virt-login-shell.conf', install_dir: install_prefix + sysconfdir / 'libvirt')
endif
if host_machine.system() == 'windows'
2022-03-14 07:33:21 +00:00
--
2.35.1