qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]