* [PATCH 1/1] os_find_datadir: search as in version 4.2
@ 2020-06-15 22:58 Joe Slater
2020-06-16 9:19 ` Peter Maydell
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Joe Slater @ 2020-06-15 22:58 UTC (permalink / raw)
To: qemu-devel; +Cc: joe.slater, randy.macleod
Always look for ../share/qemu then ../pc-bios when looking for datadir.
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
os-posix.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/os-posix.c b/os-posix.c
index 3cd52e1e70..f77da94bf6 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
/*
* Find a likely location for support files using the location of the binary.
+ * Typically, this would be "$bindir/../share/qemu".
* When running from the build tree this will be "$bindir/../pc-bios".
- * Otherwise, this is CONFIG_QEMU_DATADIR.
+ * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
*/
char *os_find_datadir(void)
{
@@ -93,6 +94,12 @@ char *os_find_datadir(void)
exec_dir = qemu_get_exec_dir();
g_return_val_if_fail(exec_dir != NULL, NULL);
+ dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
+ if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
+ return g_steal_pointer(&dir);
+ }
+ g_free(dir); /* no autofree this time */
+
dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
return g_steal_pointer(&dir);
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-06-15 22:58 [PATCH 1/1] os_find_datadir: search as in version 4.2 Joe Slater
@ 2020-06-16 9:19 ` Peter Maydell
2020-06-16 15:37 ` Slater, Joseph
2020-07-15 19:37 ` Peter Maydell
2020-07-16 14:12 ` Marc-André Lureau
2020-08-10 7:33 ` Marc-André Lureau
2 siblings, 2 replies; 13+ messages in thread
From: Peter Maydell @ 2020-06-16 9:19 UTC (permalink / raw)
To: Joe Slater
Cc: Marc-André Lureau, Paolo Bonzini, QEMU Developers, MacLeod, Randy
On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
>
> Always look for ../share/qemu then ../pc-bios when looking for datadir.
Could you provide some more context, please? Why is this
change useful; presumably we broke some setup in 5.0, but
what exactly ?
I'm guessing this might be a regression introduced by commit
6dd2dacedd83d12328 so I'm ccing the relevant people.
> Signed-off-by: Joe Slater <joe.slater@windriver.com>
> ---
> os-posix.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/os-posix.c b/os-posix.c
> index 3cd52e1e70..f77da94bf6 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
>
> /*
> * Find a likely location for support files using the location of the binary.
> + * Typically, this would be "$bindir/../share/qemu".
> * When running from the build tree this will be "$bindir/../pc-bios".
> - * Otherwise, this is CONFIG_QEMU_DATADIR.
> + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> */
> char *os_find_datadir(void)
> {
> @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> exec_dir = qemu_get_exec_dir();
> g_return_val_if_fail(exec_dir != NULL, NULL);
>
> + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> + return g_steal_pointer(&dir);
> + }
> + g_free(dir); /* no autofree this time */
> +
> dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> return g_steal_pointer(&dir);
> --
> 2.17.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-06-16 9:19 ` Peter Maydell
@ 2020-06-16 15:37 ` Slater, Joseph
2020-07-15 19:37 ` Peter Maydell
1 sibling, 0 replies; 13+ messages in thread
From: Slater, Joseph @ 2020-06-16 15:37 UTC (permalink / raw)
To: Peter Maydell
Cc: Marc-André Lureau, Paolo Bonzini, QEMU Developers, MacLeod, Randy
Hi Peter,
Specifically, 5.0 breaks the way yocto runqemu starts qemu-system-*. The installation path which is not known at qemu build time, is <arbitrary-prefix>/usr/{bin,share}. In general, though, I think it's a good idea to look in "reasonable" locations relative to the executable, maybe with command line options taking precedence.
Joe
-----Original Message-----
From: Peter Maydell <peter.maydell@linaro.org>
Sent: Tuesday, June 16, 2020 2:20 AM
To: Slater, Joseph <joe.slater@windriver.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>; MacLeod, Randy <Randy.MacLeod@windriver.com>; Marc-André Lureau <marcandre.lureau@redhat.com>; Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
>
> Always look for ../share/qemu then ../pc-bios when looking for datadir.
Could you provide some more context, please? Why is this change useful; presumably we broke some setup in 5.0, but what exactly ?
I'm guessing this might be a regression introduced by commit
6dd2dacedd83d12328 so I'm ccing the relevant people.
> Signed-off-by: Joe Slater <joe.slater@windriver.com>
> ---
> os-posix.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/os-posix.c b/os-posix.c
> index 3cd52e1e70..f77da94bf6 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
>
> /*
> * Find a likely location for support files using the location of the binary.
> + * Typically, this would be "$bindir/../share/qemu".
> * When running from the build tree this will be "$bindir/../pc-bios".
> - * Otherwise, this is CONFIG_QEMU_DATADIR.
> + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> */
> char *os_find_datadir(void)
> {
> @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> exec_dir = qemu_get_exec_dir();
> g_return_val_if_fail(exec_dir != NULL, NULL);
>
> + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> + return g_steal_pointer(&dir);
> + }
> + g_free(dir); /* no autofree this time */
> +
> dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> return g_steal_pointer(&dir);
> --
> 2.17.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-06-16 9:19 ` Peter Maydell
2020-06-16 15:37 ` Slater, Joseph
@ 2020-07-15 19:37 ` Peter Maydell
2020-07-15 19:57 ` Marc-André Lureau
1 sibling, 1 reply; 13+ messages in thread
From: Peter Maydell @ 2020-07-15 19:37 UTC (permalink / raw)
To: Joe Slater
Cc: Marc-André Lureau, Paolo Bonzini, QEMU Developers, MacLeod, Randy
On Tue, 16 Jun 2020 at 10:19, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
> >
> > Always look for ../share/qemu then ../pc-bios when looking for datadir.
>
> Could you provide some more context, please? Why is this
> change useful; presumably we broke some setup in 5.0, but
> what exactly ?
>
> I'm guessing this might be a regression introduced by commit
> 6dd2dacedd83d12328 so I'm ccing the relevant people.
Marco, Paolo: ping? Another user has just asked me the status
of this as they also ran into this regression in what directories
we search...
thanks
-- PMM
> > Signed-off-by: Joe Slater <joe.slater@windriver.com>
> > ---
> > os-posix.c | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/os-posix.c b/os-posix.c
> > index 3cd52e1e70..f77da94bf6 100644
> > --- a/os-posix.c
> > +++ b/os-posix.c
> > @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
> >
> > /*
> > * Find a likely location for support files using the location of the binary.
> > + * Typically, this would be "$bindir/../share/qemu".
> > * When running from the build tree this will be "$bindir/../pc-bios".
> > - * Otherwise, this is CONFIG_QEMU_DATADIR.
> > + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> > */
> > char *os_find_datadir(void)
> > {
> > @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> > exec_dir = qemu_get_exec_dir();
> > g_return_val_if_fail(exec_dir != NULL, NULL);
> >
> > + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> > + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> > + return g_steal_pointer(&dir);
> > + }
> > + g_free(dir); /* no autofree this time */
> > +
> > dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> > if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> > return g_steal_pointer(&dir);
> > --
> > 2.17.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-07-15 19:37 ` Peter Maydell
@ 2020-07-15 19:57 ` Marc-André Lureau
2020-08-08 1:35 ` Brian Norris
0 siblings, 1 reply; 13+ messages in thread
From: Marc-André Lureau @ 2020-07-15 19:57 UTC (permalink / raw)
To: Peter Maydell; +Cc: Paolo Bonzini, Joe Slater, QEMU Developers, MacLeod, Randy
Hi
On Wed, Jul 15, 2020 at 11:37 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Tue, 16 Jun 2020 at 10:19, Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
> > >
> > > Always look for ../share/qemu then ../pc-bios when looking for datadir.
> >
> > Could you provide some more context, please? Why is this
> > change useful; presumably we broke some setup in 5.0, but
> > what exactly ?
> >
> > I'm guessing this might be a regression introduced by commit
> > 6dd2dacedd83d12328 so I'm ccing the relevant people.
>
> Marco, Paolo: ping? Another user has just asked me the status
> of this as they also ran into this regression in what directories
> we search...
Thanks for the heads-up, I didn't see that bug/mail. Indeed, that
commit assumed that either we run from a build directory or from an
installed qemu. It seems this is hybrid approach, which I didn't know
we supported. I'll check it.
cheers
>
> thanks
> -- PMM
>
>
> > > Signed-off-by: Joe Slater <joe.slater@windriver.com>
> > > ---
> > > os-posix.c | 9 ++++++++-
> > > 1 file changed, 8 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/os-posix.c b/os-posix.c
> > > index 3cd52e1e70..f77da94bf6 100644
> > > --- a/os-posix.c
> > > +++ b/os-posix.c
> > > @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
> > >
> > > /*
> > > * Find a likely location for support files using the location of the binary.
> > > + * Typically, this would be "$bindir/../share/qemu".
> > > * When running from the build tree this will be "$bindir/../pc-bios".
> > > - * Otherwise, this is CONFIG_QEMU_DATADIR.
> > > + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> > > */
> > > char *os_find_datadir(void)
> > > {
> > > @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> > > exec_dir = qemu_get_exec_dir();
> > > g_return_val_if_fail(exec_dir != NULL, NULL);
> > >
> > > + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> > > + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> > > + return g_steal_pointer(&dir);
> > > + }
> > > + g_free(dir); /* no autofree this time */
> > > +
> > > dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> > > if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> > > return g_steal_pointer(&dir);
> > > --
> > > 2.17.1
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-06-15 22:58 [PATCH 1/1] os_find_datadir: search as in version 4.2 Joe Slater
2020-06-16 9:19 ` Peter Maydell
@ 2020-07-16 14:12 ` Marc-André Lureau
2020-08-10 7:33 ` Marc-André Lureau
2 siblings, 0 replies; 13+ messages in thread
From: Marc-André Lureau @ 2020-07-16 14:12 UTC (permalink / raw)
To: Joe Slater; +Cc: QEMU, randy.macleod
[-- Attachment #1: Type: text/plain, Size: 1821 bytes --]
Hi
On Tue, Jun 16, 2020 at 2:59 AM Joe Slater <joe.slater@windriver.com> wrote:
> Always look for ../share/qemu then ../pc-bios when looking for datadir.
>
> Signed-off-by: Joe Slater <joe.slater@windriver.com>
>
Looks good to me, with:
Fixes: 6dd2dacedd83d12328 ("os-posix: simplify os_find_datadir")
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Alternatively, we may want to check the binary install location to decide
which path to return. I sent a proposal "[RFC PATCH] os-posix: fix
regression for install-less datadir location".
---
> os-posix.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/os-posix.c b/os-posix.c
> index 3cd52e1e70..f77da94bf6 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
>
> /*
> * Find a likely location for support files using the location of the
> binary.
> + * Typically, this would be "$bindir/../share/qemu".
> * When running from the build tree this will be "$bindir/../pc-bios".
> - * Otherwise, this is CONFIG_QEMU_DATADIR.
> + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> */
> char *os_find_datadir(void)
> {
> @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> exec_dir = qemu_get_exec_dir();
> g_return_val_if_fail(exec_dir != NULL, NULL);
>
> + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> + return g_steal_pointer(&dir);
> + }
> + g_free(dir); /* no autofree this time */
> +
> dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> return g_steal_pointer(&dir);
> --
> 2.17.1
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 2742 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-07-15 19:57 ` Marc-André Lureau
@ 2020-08-08 1:35 ` Brian Norris
2020-08-08 15:34 ` Peter Maydell
0 siblings, 1 reply; 13+ messages in thread
From: Brian Norris @ 2020-08-08 1:35 UTC (permalink / raw)
To: Marc-André Lureau
Cc: Peter Maydell, Joe Slater, MacLeod, Randy, QEMU Developers,
Paolo Bonzini
Hello!
On Wed, Jul 15, 2020 at 11:57:14PM +0400, Marc-André Lureau wrote:
> Hi
>
> On Wed, Jul 15, 2020 at 11:37 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Tue, 16 Jun 2020 at 10:19, Peter Maydell <peter.maydell@linaro.org> wrote:
> > >
> > > On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
> > > >
> > > > Always look for ../share/qemu then ../pc-bios when looking for datadir.
> > >
> > > Could you provide some more context, please? Why is this
> > > change useful; presumably we broke some setup in 5.0, but
> > > what exactly ?
> > >
> > > I'm guessing this might be a regression introduced by commit
> > > 6dd2dacedd83d12328 so I'm ccing the relevant people.
> >
> > Marco, Paolo: ping? Another user has just asked me the status
> > of this as they also ran into this regression in what directories
> > we search...
>
> Thanks for the heads-up, I didn't see that bug/mail. Indeed, that
> commit assumed that either we run from a build directory or from an
> installed qemu. It seems this is hybrid approach, which I didn't know
> we supported. I'll check it.
Add one more to the pile! Chrome OS noticed this when upgrading to
5.0.0:
https://bugs.chromium.org/p/chromium/issues/detail?id=1114204#c8
I'd love to see this applied to a release.
I actually wrote basically this exact same patch and was about to submit
it, when I saw that this was already here. I've tested Joe's variant:
Tested-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
The Chromium bug report is public, so you can see details there, but
it's basically the same -- we sometimes run qemu from a path that's not
the same absolute path noted in ./configure. This is because we build
qemu to run within our SDK (a semi-containerized chroot), but we also
support running that same QEMU binary from outside the container, which
then may be at some arbitrary hierarchy on a developer's machine.
It might be wise to include a tiny bit more verbose of a code comment,
to prevent oversights like this in the future. I'm sure that could be
spliced in when the patch is applied though.
Regards,
Brian
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-08-08 1:35 ` Brian Norris
@ 2020-08-08 15:34 ` Peter Maydell
2020-08-10 7:29 ` Marc-André Lureau
0 siblings, 1 reply; 13+ messages in thread
From: Peter Maydell @ 2020-08-08 15:34 UTC (permalink / raw)
To: Brian Norris
Cc: Marc-André Lureau, Joe Slater, MacLeod, Randy,
QEMU Developers, Paolo Bonzini
On Sat, 8 Aug 2020 at 02:35, Brian Norris <briannorris@chromium.org> wrote:
>
> Hello!
>
> On Wed, Jul 15, 2020 at 11:57:14PM +0400, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Jul 15, 2020 at 11:37 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > >
> > > On Tue, 16 Jun 2020 at 10:19, Peter Maydell <peter.maydell@linaro.org> wrote:
> > > >
> > > > On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
> > > > >
> > > > > Always look for ../share/qemu then ../pc-bios when looking for datadir.
> > > >
> > > > Could you provide some more context, please? Why is this
> > > > change useful; presumably we broke some setup in 5.0, but
> > > > what exactly ?
> > > >
> > > > I'm guessing this might be a regression introduced by commit
> > > > 6dd2dacedd83d12328 so I'm ccing the relevant people.
> > >
> > > Marco, Paolo: ping? Another user has just asked me the status
> > > of this as they also ran into this regression in what directories
> > > we search...
> >
> > Thanks for the heads-up, I didn't see that bug/mail. Indeed, that
> > commit assumed that either we run from a build directory or from an
> > installed qemu. It seems this is hybrid approach, which I didn't know
> > we supported. I'll check it.
>
> Add one more to the pile! Chrome OS noticed this when upgrading to
> 5.0.0:
>
> https://bugs.chromium.org/p/chromium/issues/detail?id=1114204#c8
>
> I'd love to see this applied to a release.
It's just missed 5.1, unfortunately :-(
Marc-André, did you want to review it ?
thanks
-- PMM
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-08-08 15:34 ` Peter Maydell
@ 2020-08-10 7:29 ` Marc-André Lureau
2020-08-10 21:41 ` Brian Norris
0 siblings, 1 reply; 13+ messages in thread
From: Marc-André Lureau @ 2020-08-10 7:29 UTC (permalink / raw)
To: Peter Maydell
Cc: Paolo Bonzini, Joe Slater, Brian Norris, QEMU Developers, MacLeod, Randy
Hi
On Sat, Aug 8, 2020 at 7:34 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Sat, 8 Aug 2020 at 02:35, Brian Norris <briannorris@chromium.org> wrote:
> >
> > Hello!
> >
> > On Wed, Jul 15, 2020 at 11:57:14PM +0400, Marc-André Lureau wrote:
> > > Hi
> > >
> > > On Wed, Jul 15, 2020 at 11:37 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > > >
> > > > On Tue, 16 Jun 2020 at 10:19, Peter Maydell <peter.maydell@linaro.org> wrote:
> > > > >
> > > > > On Tue, 16 Jun 2020 at 00:00, Joe Slater <joe.slater@windriver.com> wrote:
> > > > > >
> > > > > > Always look for ../share/qemu then ../pc-bios when looking for datadir.
> > > > >
> > > > > Could you provide some more context, please? Why is this
> > > > > change useful; presumably we broke some setup in 5.0, but
> > > > > what exactly ?
> > > > >
> > > > > I'm guessing this might be a regression introduced by commit
> > > > > 6dd2dacedd83d12328 so I'm ccing the relevant people.
> > > >
> > > > Marco, Paolo: ping? Another user has just asked me the status
> > > > of this as they also ran into this regression in what directories
> > > > we search...
> > >
> > > Thanks for the heads-up, I didn't see that bug/mail. Indeed, that
> > > commit assumed that either we run from a build directory or from an
> > > installed qemu. It seems this is hybrid approach, which I didn't know
> > > we supported. I'll check it.
> >
> > Add one more to the pile! Chrome OS noticed this when upgrading to
> > 5.0.0:
> >
> > https://bugs.chromium.org/p/chromium/issues/detail?id=1114204#c8
> >
> > I'd love to see this applied to a release.
>
> It's just missed 5.1, unfortunately :-(
>
> Marc-André, did you want to review it ?
I tried an alternative approach, and ack his version instead:
https://patchew.org/QEMU/20200716141100.398296-1-marcandre.lureau@redhat.com/
(I am going to do this in this thread instead)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-06-15 22:58 [PATCH 1/1] os_find_datadir: search as in version 4.2 Joe Slater
2020-06-16 9:19 ` Peter Maydell
2020-07-16 14:12 ` Marc-André Lureau
@ 2020-08-10 7:33 ` Marc-André Lureau
2 siblings, 0 replies; 13+ messages in thread
From: Marc-André Lureau @ 2020-08-10 7:33 UTC (permalink / raw)
To: Joe Slater; +Cc: QEMU, randy.macleod
[-- Attachment #1: Type: text/plain, Size: 1531 bytes --]
On Tue, Jun 16, 2020 at 2:59 AM Joe Slater <joe.slater@windriver.com> wrote:
> Always look for ../share/qemu then ../pc-bios when looking for datadir.
>
> Signed-off-by: Joe Slater <joe.slater@windriver.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
> os-posix.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/os-posix.c b/os-posix.c
> index 3cd52e1e70..f77da94bf6 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
>
> /*
> * Find a likely location for support files using the location of the
> binary.
> + * Typically, this would be "$bindir/../share/qemu".
> * When running from the build tree this will be "$bindir/../pc-bios".
> - * Otherwise, this is CONFIG_QEMU_DATADIR.
> + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
> */
> char *os_find_datadir(void)
> {
> @@ -93,6 +94,12 @@ char *os_find_datadir(void)
> exec_dir = qemu_get_exec_dir();
> g_return_val_if_fail(exec_dir != NULL, NULL);
>
> + dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
> + if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> + return g_steal_pointer(&dir);
> + }
> + g_free(dir); /* no autofree this time */
> +
> dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
> if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
> return g_steal_pointer(&dir);
> --
> 2.17.1
>
>
>
--
Marc-André Lureau
[-- Attachment #2: Type: text/html, Size: 2400 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-08-10 7:29 ` Marc-André Lureau
@ 2020-08-10 21:41 ` Brian Norris
2021-01-23 2:05 ` Brian Norris
0 siblings, 1 reply; 13+ messages in thread
From: Brian Norris @ 2020-08-10 21:41 UTC (permalink / raw)
To: Marc-André Lureau
Cc: Peter Maydell, Joe Slater, MacLeod, Randy, QEMU Developers,
Paolo Bonzini
On Mon, Aug 10, 2020 at 12:29 AM Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
> On Sat, Aug 8, 2020 at 7:34 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > On Sat, 8 Aug 2020 at 02:35, Brian Norris <briannorris@chromium.org> wrote:
> > > Add one more to the pile! Chrome OS noticed this when upgrading to
> > > 5.0.0:
> > >
> > > https://bugs.chromium.org/p/chromium/issues/detail?id=1114204#c8
> > >
> > > I'd love to see this applied to a release.
> >
> > It's just missed 5.1, unfortunately :-(
> >
> > Marc-André, did you want to review it ?
>
> I tried an alternative approach, and ack his version instead:
>
> https://patchew.org/QEMU/20200716141100.398296-1-marcandre.lureau@redhat.com/
>
> (I am going to do this in this thread instead)
FWIW, you already provided your Review a month ago:
https://lore.kernel.org/qemu-devel/CAJ+F1CJmMV6pY6r0P6ukNZA_q+w6yLvAxekGnusgXYuuip6gZA@mail.gmail.com/
But I see you've now repeated it ;)
https://lore.kernel.org/qemu-devel/CAJ+F1CJdHo7R9rnmoD1cLEzsYLFsFVVjcAr5UcsYFgfcW3z2LA@mail.gmail.com/
In any case, thanks! We'll likely carry this patch in Chrome OS, until
it gets applied to a proper release.
Regards,
Brian
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2020-08-10 21:41 ` Brian Norris
@ 2021-01-23 2:05 ` Brian Norris
2021-01-23 18:08 ` Paolo Bonzini
0 siblings, 1 reply; 13+ messages in thread
From: Brian Norris @ 2021-01-23 2:05 UTC (permalink / raw)
To: Marc-André Lureau
Cc: Peter Maydell, Joe Slater, MacLeod, Randy, QEMU Developers,
Paolo Bonzini
Just to follow-up here, since nobody followed up for months...
On Mon, Aug 10, 2020 at 2:41 PM Brian Norris <briannorris@chromium.org> wrote:
> On Mon, Aug 10, 2020 at 12:29 AM Marc-André Lureau
> <marcandre.lureau@redhat.com> wrote:
> > On Sat, Aug 8, 2020 at 7:34 PM Peter Maydell <peter.maydell@linaro.org> wrote:
> > > On Sat, 8 Aug 2020 at 02:35, Brian Norris <briannorris@chromium.org> wrote:
> > > It's just missed 5.1, unfortunately :-(
And it missed 5.2 too :(
> > > Marc-André, did you want to review it ?
> >
> > I tried an alternative approach, and ack his version instead:
> >
> > https://patchew.org/QEMU/20200716141100.398296-1-marcandre.lureau@redhat.com/
> >
> > (I am going to do this in this thread instead)
>
> FWIW, you already provided your Review a month ago:
> https://lore.kernel.org/qemu-devel/CAJ+F1CJmMV6pY6r0P6ukNZA_q+w6yLvAxekGnusgXYuuip6gZA@mail.gmail.com/
>
> But I see you've now repeated it ;)
> https://lore.kernel.org/qemu-devel/CAJ+F1CJdHo7R9rnmoD1cLEzsYLFsFVVjcAr5UcsYFgfcW3z2LA@mail.gmail.com/
>
> In any case, thanks! We'll likely carry this patch in Chrome OS, until
> it gets applied to a proper release.
It turns out that Paolo inadvertently (?) fixed this issue by
refactoring, in v5.2.0:
ea1edcd7da1a vl: relocate paths to data directories
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=ea1edcd7da1a375ef7ccf8aa93b72827b518ad8e;hp=63c4db4c2e6d221cecb5aafa365934bb05724cb4
I tested that out here, and the new find_datadir() is able to track
relocations properly, by looking for a common directory ancestor of
the running executable. Thanks Paolo!
Brian
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/1] os_find_datadir: search as in version 4.2
2021-01-23 2:05 ` Brian Norris
@ 2021-01-23 18:08 ` Paolo Bonzini
0 siblings, 0 replies; 13+ messages in thread
From: Paolo Bonzini @ 2021-01-23 18:08 UTC (permalink / raw)
To: Brian Norris, Marc-André Lureau
Cc: Peter Maydell, Joe Slater, QEMU Developers, MacLeod, Randy
On 23/01/21 03:05, Brian Norris wrote:
> It turns out that Paolo inadvertently (?) fixed this issue by
> refactoring, in v5.2.0:
> ea1edcd7da1a vl: relocate paths to data directories
> https://git.qemu.org/?p=qemu.git;a=commitdiff;h=ea1edcd7da1a375ef7ccf8aa93b72827b518ad8e;hp=63c4db4c2e6d221cecb5aafa365934bb05724cb4
That wasn't entirely inadvertent. It had been on my todo list to fix
relocatability for good, I just didn't remember how it got on the list. :)
So on one hand I didn't remember it to be a regression, and I only
really set out to make QEMU relocatable in order to enable the change of
commit d17f305a26 ("configure: use a platform-neutral prefix",
2020-09-30). On the other hand, your report was what had made me aware
that relocatable installs were buggy and inconsistent.
Paolo
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-01-23 18:11 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-15 22:58 [PATCH 1/1] os_find_datadir: search as in version 4.2 Joe Slater
2020-06-16 9:19 ` Peter Maydell
2020-06-16 15:37 ` Slater, Joseph
2020-07-15 19:37 ` Peter Maydell
2020-07-15 19:57 ` Marc-André Lureau
2020-08-08 1:35 ` Brian Norris
2020-08-08 15:34 ` Peter Maydell
2020-08-10 7:29 ` Marc-André Lureau
2020-08-10 21:41 ` Brian Norris
2021-01-23 2:05 ` Brian Norris
2021-01-23 18:08 ` Paolo Bonzini
2020-07-16 14:12 ` Marc-André Lureau
2020-08-10 7:33 ` Marc-André Lureau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).