[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/13] Make QEMU installation relocatable
From: |
Paolo Bonzini |
Subject: |
[PATCH 00/13] Make QEMU installation relocatable |
Date: |
Tue, 1 Sep 2020 02:20:07 -0400 |
Right now, the installation of QEMU is not relocatable; there is
a local hack in os_find_datadir() so that Windows binaries look
for ROMs in the executable directory, but that has several limitations:
- it does not extend to configuration files, icons, etc.
- it does not allow changing the data directory in any way
- it does not apply to POSIX platforms
This series fixes that by making all paths within the installation
prefix relative to the executable. This in practice means all paths
will be relocatable, except for /etc and /var if they're moved
outside the prefix.
Here is an example of relocatability; before:
$ make DESTDIR=$PWD/test install
$ cd test/usr/local/bin
$ ./qemu-system-ppc -L help
/usr/local/share/qemu-firmware
/usr/local/share/qemu
After:
$ make DESTDIR=$PWD/test install
$ cd test/usr/local/bin
$ ./qemu-system-ppc -L help
/home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu-firmware
/home/pbonzini/work/upstream/qemu/+build/test/usr/local/bin/../share/qemu
The main benefit of this is on Windows, as mentioned above; but it also
makes behavior more consistent across platforms and allows the removal
of the hack that hides the "c:/Program Files/QEMU" prefix from Meson
during cross compilation.
Paolo
Paolo Bonzini (13):
fuzz: use qemu_get_exec_dir
oslib: do not call g_strdup from qemu_get_exec_dir
oslib-posix: default exec_dir to bindir
cutils: introduce get_relocated_path
oslib-posix: relocate path to /var
module: relocate path to modules
net: relocate paths to helpers and scripts
vl: relocate paths to data directories
vl: relocate path to configuration file
qemu-bridge-helper: relocate path to default ACL
qga: relocate path to default configuration and hook
ui: relocate paths to icons and translations
configure: use a platform-neutral prefix
configure | 30 ++++++++------------
include/net/net.h | 4 +--
include/qemu-common.h | 1 -
include/qemu/cutils.h | 12 ++++++++
include/qemu/osdep.h | 8 ++----
include/sysemu/sysemu.h | 2 +-
meson.build | 4 +--
net/tap.c | 28 ++++++++++++++-----
os-posix.c | 24 ----------------
os-win32.c | 11 --------
qemu-bridge-helper.c | 9 ++++--
qga/main.c | 8 ++++--
softmmu/vl.c | 43 ++++++++++++++++++++---------
tests/qtest/fuzz/fuzz.c | 12 ++++----
ui/gtk.c | 10 +++++--
ui/sdl2.c | 9 ++++--
util/cutils.c | 61 +++++++++++++++++++++++++++++++++++++++++
util/module.c | 10 ++-----
util/oslib-posix.c | 35 +++++++++++------------
util/oslib-win32.c | 14 +++++++---
20 files changed, 205 insertions(+), 130 deletions(-)
--
2.26.2
- [PATCH 00/13] Make QEMU installation relocatable,
Paolo Bonzini <=