[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 0/4] softmmu: make qemu_find_file more flexible wrt build dir
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v3 0/4] softmmu: make qemu_find_file more flexible wrt build dir layout |
Date: |
Wed, 15 Jun 2022 11:52:08 +0100 |
The qemu_find_file method impl is rather crude with a variety of
problems (detailed in commit message of first patch).
This series addresses those problems, making qemu_find_file
much more flexible and able to be trivially extended to find
any type of file, both in a (optionally relocated) install
tree location and the local build tree.
This is proposed as an alternative to
https://lists.gnu.org/archive/html/qemu-devel/2022-06/msg02589.html
avoiding the need to add many more meson rules to simulate
results of 'make install' in the build dir.
It has been tested as follows:
mkdir -p build/quick
cd build/quick
./configure --target-list=x86_64-softmmu --prefix=/usr
make -j 8 install DESTDIR=`pwd`/../vroot
Now running from build dir:
$ ./build/local/qemu-system-x86_64 -vnc :1 -k fr -trace 'datadir*' -display
sdl
datadir_init default data dir
/home/berrange/src/virt/qemu/build/local/../share/qemu icon dir
/home/berrange/src/virt/qemu/build/local/../share/icons helper dir
/home/berrange/src/virt/qemu/build/local/../libexec in build dir 1
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/local/pc-bios/bios-256k.bin errno 0
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/local/pc-bios/bios-256k.bin errno 0
datadir_load_file name kvmvapic.bin location
/home/berrange/src/virt/qemu/build/local/pc-bios/kvmvapic.bin errno 0
datadir_load_file name vgabios-stdvga.bin location
/home/berrange/src/virt/qemu/build/local/pc-bios/vgabios-stdvga.bin errno 0
datadir_load_file name efi-e1000.rom location
/home/berrange/src/virt/qemu/build/local/pc-bios/efi-e1000.rom errno 0
datadir_load_file name 128x128/apps/qemu.png location
/home/berrange/src/virt/qemu/build/local/ui/icons/128x128/apps/qemu.png errno 0
datadir_load_file name fr location
/home/berrange/src/virt/qemu/build/local/ui/keymaps/fr errno 0
$ ./build/local/qemu-system-x86_64 -vnc :1 -k fr -trace 'datadir*' -display
sdl -net bridge
datadir_init default data dir
/home/berrange/src/virt/qemu/build/local/../share/qemu icon dir
/home/berrange/src/virt/qemu/build/local/../share/icons helper dir
/home/berrange/src/virt/qemu/build/local/../libexec in build dir 1
datadir_load_file name qemu-bridge-helper location
/home/berrange/src/virt/qemu/build/local/qemu-bridge-helper errno 0
Helper /home/berrange/src/virt/qemu/build/local/qemu-bridge-helper
access denied by acl file
And running from the (relocated) install dir:
$ ./build/vroot/usr/bin/qemu-system-x86_64 -vnc :1 -k fr -trace 'datadir*'
-display sdl
datadir_init default data dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu icon dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/icons helper dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../libexec in build dir 0
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../qemu-firmware/bios-256k.bin
errno 2
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/bios-256k.bin
errno 0
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../qemu-firmware/bios-256k.bin
errno 2
datadir_load_file name bios-256k.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/bios-256k.bin
errno 0
datadir_load_file name kvmvapic.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../qemu-firmware/kvmvapic.bin
errno 2
datadir_load_file name kvmvapic.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/kvmvapic.bin
errno 0
datadir_load_file name vgabios-stdvga.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../qemu-firmware/vgabios-stdvga.bin
errno 2
datadir_load_file name vgabios-stdvga.bin location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/vgabios-stdvga.bin
errno 0
datadir_load_file name efi-e1000.rom location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../qemu-firmware/efi-e1000.rom
errno 2
datadir_load_file name efi-e1000.rom location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/efi-e1000.rom
errno 0
datadir_load_file name 128x128/apps/qemu.png location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/icons/hicolor/128x128/apps/qemu.png
errno 0
datadir_load_file name fr location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu/keymaps/fr errno 0
$ ./build/vroot/usr/bin/qemu-system-x86_64 -vnc :1 -k fr -trace 'datadir*'
-display sdl -net bridge
datadir_init default data dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/qemu icon dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../share/icons helper dir
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../libexec in build dir 0
datadir_load_file name qemu-bridge-helper location
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../libexec/qemu-bridge-helper
errno 0
Helper
/home/berrange/src/virt/qemu/build/vroot/usr/bin/../libexec/qemu-bridge-helper
access denied by acl file
These trace messages show it searching the correct paths to find the
files in both installed and build root cases.
NB, I've been unable to actually test the cocoa.m change since I
lack macOS.
Daniel P. Berrangé (4):
softmmu: rewrite handling of qemu_find_file
ui: move 'pc-bios/keymaps' to 'ui/keymaps'
ui: find icons using qemu_find_file
net: convert to use qemu_find_file to locate bridge helper
configure | 1 +
docs/conf.py | 4 +-
include/net/net.h | 3 +-
include/qemu/datadir.h | 8 +-
net/tap.c | 5 +-
pc-bios/meson.build | 1 -
qemu-options.hx | 4 +-
softmmu/datadir.c | 164 +++++++++++-------
softmmu/trace-events | 5 +-
softmmu/vl.c | 2 +-
tests/qtest/fuzz/fuzz.c | 2 +-
ui/cocoa.m | 3 +-
ui/gtk.c | 3 +-
.../apps/qemu.png} | Bin
.../{qemu_16x16.png => 16x16/apps/qemu.png} | Bin
.../{qemu_24x24.png => 24x24/apps/qemu.png} | Bin
.../apps/qemu.png} | Bin
.../{qemu_32x32.bmp => 32x32/apps/qemu.bmp} | Bin
.../{qemu_32x32.png => 32x32/apps/qemu.png} | Bin
.../{qemu_48x48.png => 48x48/apps/qemu.png} | Bin
.../apps/qemu.png} | Bin
.../{qemu_64x64.png => 64x64/apps/qemu.png} | Bin
ui/icons/meson.build | 27 ++-
ui/icons/{ => scalable/apps}/qemu.svg | 0
{pc-bios => ui}/keymaps/ar | 0
{pc-bios => ui}/keymaps/bepo | 0
{pc-bios => ui}/keymaps/cz | 0
{pc-bios => ui}/keymaps/da | 0
{pc-bios => ui}/keymaps/de | 0
{pc-bios => ui}/keymaps/de-ch | 0
{pc-bios => ui}/keymaps/en-gb | 0
{pc-bios => ui}/keymaps/en-us | 0
{pc-bios => ui}/keymaps/es | 0
{pc-bios => ui}/keymaps/et | 0
{pc-bios => ui}/keymaps/fi | 0
{pc-bios => ui}/keymaps/fo | 0
{pc-bios => ui}/keymaps/fr | 0
{pc-bios => ui}/keymaps/fr-be | 0
{pc-bios => ui}/keymaps/fr-ca | 0
{pc-bios => ui}/keymaps/fr-ch | 0
{pc-bios => ui}/keymaps/hr | 0
{pc-bios => ui}/keymaps/hu | 0
{pc-bios => ui}/keymaps/is | 0
{pc-bios => ui}/keymaps/it | 0
{pc-bios => ui}/keymaps/ja | 0
{pc-bios => ui}/keymaps/lt | 0
{pc-bios => ui}/keymaps/lv | 0
{pc-bios => ui}/keymaps/meson.build | 0
{pc-bios => ui}/keymaps/mk | 0
{pc-bios => ui}/keymaps/nl | 0
{pc-bios => ui}/keymaps/no | 0
{pc-bios => ui}/keymaps/pl | 0
{pc-bios => ui}/keymaps/pt | 0
{pc-bios => ui}/keymaps/pt-br | 0
{pc-bios => ui}/keymaps/ru | 0
{pc-bios => ui}/keymaps/sl | 0
{pc-bios => ui}/keymaps/sv | 0
{pc-bios => ui}/keymaps/th | 0
{pc-bios => ui}/keymaps/tr | 0
ui/meson.build | 1 +
ui/sdl2.c | 5 +-
61 files changed, 152 insertions(+), 86 deletions(-)
rename ui/icons/{qemu_128x128.png => 128x128/apps/qemu.png} (100%)
rename ui/icons/{qemu_16x16.png => 16x16/apps/qemu.png} (100%)
rename ui/icons/{qemu_24x24.png => 24x24/apps/qemu.png} (100%)
rename ui/icons/{qemu_256x256.png => 256x256/apps/qemu.png} (100%)
rename ui/icons/{qemu_32x32.bmp => 32x32/apps/qemu.bmp} (100%)
rename ui/icons/{qemu_32x32.png => 32x32/apps/qemu.png} (100%)
rename ui/icons/{qemu_48x48.png => 48x48/apps/qemu.png} (100%)
rename ui/icons/{qemu_512x512.png => 512x512/apps/qemu.png} (100%)
rename ui/icons/{qemu_64x64.png => 64x64/apps/qemu.png} (100%)
rename ui/icons/{ => scalable/apps}/qemu.svg (100%)
rename {pc-bios => ui}/keymaps/ar (100%)
rename {pc-bios => ui}/keymaps/bepo (100%)
rename {pc-bios => ui}/keymaps/cz (100%)
rename {pc-bios => ui}/keymaps/da (100%)
rename {pc-bios => ui}/keymaps/de (100%)
rename {pc-bios => ui}/keymaps/de-ch (100%)
rename {pc-bios => ui}/keymaps/en-gb (100%)
rename {pc-bios => ui}/keymaps/en-us (100%)
rename {pc-bios => ui}/keymaps/es (100%)
rename {pc-bios => ui}/keymaps/et (100%)
rename {pc-bios => ui}/keymaps/fi (100%)
rename {pc-bios => ui}/keymaps/fo (100%)
rename {pc-bios => ui}/keymaps/fr (100%)
rename {pc-bios => ui}/keymaps/fr-be (100%)
rename {pc-bios => ui}/keymaps/fr-ca (100%)
rename {pc-bios => ui}/keymaps/fr-ch (100%)
rename {pc-bios => ui}/keymaps/hr (100%)
rename {pc-bios => ui}/keymaps/hu (100%)
rename {pc-bios => ui}/keymaps/is (100%)
rename {pc-bios => ui}/keymaps/it (100%)
rename {pc-bios => ui}/keymaps/ja (100%)
rename {pc-bios => ui}/keymaps/lt (100%)
rename {pc-bios => ui}/keymaps/lv (100%)
rename {pc-bios => ui}/keymaps/meson.build (100%)
rename {pc-bios => ui}/keymaps/mk (100%)
rename {pc-bios => ui}/keymaps/nl (100%)
rename {pc-bios => ui}/keymaps/no (100%)
rename {pc-bios => ui}/keymaps/pl (100%)
rename {pc-bios => ui}/keymaps/pt (100%)
rename {pc-bios => ui}/keymaps/pt-br (100%)
rename {pc-bios => ui}/keymaps/ru (100%)
rename {pc-bios => ui}/keymaps/sl (100%)
rename {pc-bios => ui}/keymaps/sv (100%)
rename {pc-bios => ui}/keymaps/th (100%)
rename {pc-bios => ui}/keymaps/tr (100%)
--
2.36.1
- [PATCH v3 0/4] softmmu: make qemu_find_file more flexible wrt build dir layout,
Daniel P . Berrangé <=