* [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path @ 2019-05-03 8:27 Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Antonio Ospite, Antonio Ospite, Peter Maydell, Eric Blake Hi, Here is a v2 patch set to address https://bugs.launchpad.net/qemu/+bug/1817345 The series follows up to: https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05290.html https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05573.html Changes since v1: - Add a preparatory patch to set source_path only once and in a more robust way. - Move the checks in configure after the source_path definition to avoid using realpath which is not available everywhere. - Cover also the build path in Makefile. An extensive explanation of why I think this is needed is here: https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05398.html Thanks, Antonio Antonio Ospite (2): configure: set source_path only once and make its definition more robust configure: disallow spaces and colons in source path and build path Makefile | 4 ++++ configure | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) -- Antonio Ospite https://ao2.it https://twitter.com/ao2it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing? ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path 2019-05-03 8:27 [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path Antonio Ospite @ 2019-05-03 8:27 ` Antonio Ospite 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2 siblings, 0 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Antonio Ospite, Antonio Ospite Hi, Here is a v2 patch set to address https://bugs.launchpad.net/qemu/+bug/1817345 The series follows up to: https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05290.html https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05573.html Changes since v1: - Add a preparatory patch to set source_path only once and in a more robust way. - Move the checks in configure after the source_path definition to avoid using realpath which is not available everywhere. - Cover also the build path in Makefile. An extensive explanation of why I think this is needed is here: https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg05398.html Thanks, Antonio Antonio Ospite (2): configure: set source_path only once and make its definition more robust configure: disallow spaces and colons in source path and build path Makefile | 4 ++++ configure | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) -- Antonio Ospite https://ao2.it https://twitter.com/ao2it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing? ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust 2019-05-03 8:27 [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite @ 2019-05-03 8:27 ` Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:23 ` Eric Blake 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2 siblings, 2 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Antonio Ospite, Antonio Ospite, Peter Maydell, Eric Blake From: Antonio Ospite <antonio.ospite@collabora.com> Since commit 79d77bcd36 (configure: Remove --source-path option, 2019-04-29) source_path cannot be overridden anymore, move it out of the "default parameters" block since the word "default" may suggest that the value can change, while in fact it does not. While at it, only set source_path once and separate the positional argument of basename with "--" to more robustly cover the case of path names starting with a dash. Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> --- configure | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 60719ddcc5..9832cbca5c 100755 --- a/configure +++ b/configure @@ -276,10 +276,10 @@ ld_has() { $ld --help 2>/dev/null | grep ".$1" >/dev/null 2>&1 } -# default parameters -source_path=$(dirname "$0") # make source path absolute -source_path=$(cd "$source_path"; pwd) +source_path=$(cd "$(dirname -- "$0")"; pwd) + +# default parameters cpu="" iasl="iasl" interp_prefix="/usr/gnemul/qemu-%M" -- 2.20.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite @ 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:23 ` Eric Blake 1 sibling, 0 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Antonio Ospite, Antonio Ospite From: Antonio Ospite <antonio.ospite@collabora.com> Since commit 79d77bcd36 (configure: Remove --source-path option, 2019-04-29) source_path cannot be overridden anymore, move it out of the "default parameters" block since the word "default" may suggest that the value can change, while in fact it does not. While at it, only set source_path once and separate the positional argument of basename with "--" to more robustly cover the case of path names starting with a dash. Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> --- configure | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 60719ddcc5..9832cbca5c 100755 --- a/configure +++ b/configure @@ -276,10 +276,10 @@ ld_has() { $ld --help 2>/dev/null | grep ".$1" >/dev/null 2>&1 } -# default parameters -source_path=$(dirname "$0") # make source path absolute -source_path=$(cd "$source_path"; pwd) +source_path=$(cd "$(dirname -- "$0")"; pwd) + +# default parameters cpu="" iasl="iasl" interp_prefix="/usr/gnemul/qemu-%M" -- 2.20.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite @ 2019-05-06 17:23 ` Eric Blake 1 sibling, 0 replies; 15+ messages in thread From: Eric Blake @ 2019-05-06 17:23 UTC (permalink / raw) To: Antonio Ospite, qemu-devel; +Cc: Peter Maydell, Antonio Ospite [-- Attachment #1: Type: text/plain, Size: 883 bytes --] On 5/3/19 3:27 AM, Antonio Ospite wrote: > From: Antonio Ospite <antonio.ospite@collabora.com> > > Since commit 79d77bcd36 (configure: Remove --source-path option, > 2019-04-29) source_path cannot be overridden anymore, move it out of the > "default parameters" block since the word "default" may suggest that the > value can change, while in fact it does not. > > While at it, only set source_path once and separate the positional > argument of basename with "--" to more robustly cover the case of path > names starting with a dash. > > Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> > --- > configure | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-03 8:27 [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite @ 2019-05-03 8:27 ` Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:27 ` Eric Blake 2 siblings, 2 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Antonio Ospite, Antonio Ospite, Peter Maydell, Eric Blake From: Antonio Ospite <antonio.ospite@collabora.com> The configure script breaks when the qemu source directory is in a path containing white spaces, in particular the list of targets is not correctly generated when calling "./configure --help" because of how the default_target_list variable is built. In addition to that, *building* qemu from a directory with spaces breaks some assumptions in the Makefiles, even if the original source path does not contain spaces like in the case of an out-of-tree build, or when symlinks are involved. To avoid these issues, refuse to run the configure script and the Makefile if there are spaces or colons in the source path or the build path, taking as inspiration what the kbuild system in linux does. Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> --- Makefile | 4 ++++ configure | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Makefile b/Makefile index 1211e78c91..7f3f7a7fef 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,9 @@ # Makefile for QEMU. +ifneq ($(words $(subst :, ,$(CURDIR))), 1) + $(error main directory cannot contain spaces nor colons) +endif + # Always point to the root of the build tree (needs GNU make). BUILD_DIR=$(CURDIR) diff --git a/configure b/configure index 9832cbca5c..f7ad4381bd 100755 --- a/configure +++ b/configure @@ -279,6 +279,12 @@ ld_has() { # make source path absolute source_path=$(cd "$(dirname -- "$0")"; pwd) +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; +then + error_exit "main directory cannot contain spaces nor colons" +fi + # default parameters cpu="" iasl="iasl" -- 2.20.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Antonio Ospite @ 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:27 ` Eric Blake 1 sibling, 0 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-03 8:27 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Antonio Ospite, Antonio Ospite From: Antonio Ospite <antonio.ospite@collabora.com> The configure script breaks when the qemu source directory is in a path containing white spaces, in particular the list of targets is not correctly generated when calling "./configure --help" because of how the default_target_list variable is built. In addition to that, *building* qemu from a directory with spaces breaks some assumptions in the Makefiles, even if the original source path does not contain spaces like in the case of an out-of-tree build, or when symlinks are involved. To avoid these issues, refuse to run the configure script and the Makefile if there are spaces or colons in the source path or the build path, taking as inspiration what the kbuild system in linux does. Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> --- Makefile | 4 ++++ configure | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Makefile b/Makefile index 1211e78c91..7f3f7a7fef 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,9 @@ # Makefile for QEMU. +ifneq ($(words $(subst :, ,$(CURDIR))), 1) + $(error main directory cannot contain spaces nor colons) +endif + # Always point to the root of the build tree (needs GNU make). BUILD_DIR=$(CURDIR) diff --git a/configure b/configure index 9832cbca5c..f7ad4381bd 100755 --- a/configure +++ b/configure @@ -279,6 +279,12 @@ ld_has() { # make source path absolute source_path=$(cd "$(dirname -- "$0")"; pwd) +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; +then + error_exit "main directory cannot contain spaces nor colons" +fi + # default parameters cpu="" iasl="iasl" -- 2.20.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite @ 2019-05-06 17:27 ` Eric Blake 2019-05-06 20:23 ` Antonio Ospite 2019-05-09 14:42 ` Peter Maydell 1 sibling, 2 replies; 15+ messages in thread From: Eric Blake @ 2019-05-06 17:27 UTC (permalink / raw) To: Antonio Ospite, qemu-devel; +Cc: Peter Maydell, Antonio Ospite [-- Attachment #1: Type: text/plain, Size: 2083 bytes --] On 5/3/19 3:27 AM, Antonio Ospite wrote: > From: Antonio Ospite <antonio.ospite@collabora.com> > > The configure script breaks when the qemu source directory is in a path > containing white spaces, in particular the list of targets is not > correctly generated when calling "./configure --help" because of how the > default_target_list variable is built. > > In addition to that, *building* qemu from a directory with spaces breaks > some assumptions in the Makefiles, even if the original source path does > not contain spaces like in the case of an out-of-tree build, or when > symlinks are involved. > > To avoid these issues, refuse to run the configure script and the > Makefile if there are spaces or colons in the source path or the build > path, taking as inspiration what the kbuild system in linux does. > > Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 > > Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> > --- > Makefile | 4 ++++ > configure | 6 ++++++ > 2 files changed, 10 insertions(+) > > +++ b/Makefile > @@ -1,5 +1,9 @@ > # Makefile for QEMU. > > +ifneq ($(words $(subst :, ,$(CURDIR))), 1) > + $(error main directory cannot contain spaces nor colons) > +endif > + > # Always point to the root of the build tree (needs GNU make). > BUILD_DIR=$(CURDIR) > > diff --git a/configure b/configure > index 9832cbca5c..f7ad4381bd 100755 > --- a/configure > +++ b/configure > @@ -279,6 +279,12 @@ ld_has() { > # make source path absolute > source_path=$(cd "$(dirname -- "$0")"; pwd) > > +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || > + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; For less typing and fewer processes, you could shorten this to: if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; but that's trivial enough for a maintainer to fold in if desired. Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-06 17:27 ` Eric Blake @ 2019-05-06 20:23 ` Antonio Ospite 2019-05-09 14:42 ` Peter Maydell 1 sibling, 0 replies; 15+ messages in thread From: Antonio Ospite @ 2019-05-06 20:23 UTC (permalink / raw) To: Eric Blake; +Cc: Peter Maydell, Antonio Ospite, qemu-devel On Mon, 6 May 2019 12:27:46 -0500 Eric Blake <eblake@redhat.com> wrote: > On 5/3/19 3:27 AM, Antonio Ospite wrote: > > From: Antonio Ospite <antonio.ospite@collabora.com> > > > > The configure script breaks when the qemu source directory is in a path > > containing white spaces, in particular the list of targets is not > > correctly generated when calling "./configure --help" because of how the > > default_target_list variable is built. > > > > In addition to that, *building* qemu from a directory with spaces breaks > > some assumptions in the Makefiles, even if the original source path does > > not contain spaces like in the case of an out-of-tree build, or when > > symlinks are involved. > > > > To avoid these issues, refuse to run the configure script and the > > Makefile if there are spaces or colons in the source path or the build > > path, taking as inspiration what the kbuild system in linux does. > > > > Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 > > > > Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> > > --- > > Makefile | 4 ++++ > > configure | 6 ++++++ > > 2 files changed, 10 insertions(+) > > > > > +++ b/Makefile > > @@ -1,5 +1,9 @@ > > # Makefile for QEMU. > > > > +ifneq ($(words $(subst :, ,$(CURDIR))), 1) > > + $(error main directory cannot contain spaces nor colons) > > +endif > > + > > # Always point to the root of the build tree (needs GNU make). > > BUILD_DIR=$(CURDIR) > > > > diff --git a/configure b/configure > > index 9832cbca5c..f7ad4381bd 100755 > > --- a/configure > > +++ b/configure > > @@ -279,6 +279,12 @@ ld_has() { > > # make source path absolute > > source_path=$(cd "$(dirname -- "$0")"; pwd) > > > > +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || > > + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; > > For less typing and fewer processes, you could shorten this to: > > if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; > I always forget about this printf feature :) > but that's trivial enough for a maintainer to fold in if desired. > > Reviewed-by: Eric Blake <eblake@redhat.com> Thanks, Antonio -- Antonio Ospite https://ao2.it https://twitter.com/ao2it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing? ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-06 17:27 ` Eric Blake 2019-05-06 20:23 ` Antonio Ospite @ 2019-05-09 14:42 ` Peter Maydell 2019-05-22 13:57 ` [Qemu-devel] [Qemu-trivial] " Laurent Vivier 1 sibling, 1 reply; 15+ messages in thread From: Peter Maydell @ 2019-05-09 14:42 UTC (permalink / raw) To: Eric Blake; +Cc: QEMU Trivial, Antonio Ospite, Antonio Ospite, QEMU Developers On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: > > On 5/3/19 3:27 AM, Antonio Ospite wrote: > > From: Antonio Ospite <antonio.ospite@collabora.com> > > > > The configure script breaks when the qemu source directory is in a path > > containing white spaces, in particular the list of targets is not > > correctly generated when calling "./configure --help" because of how the > > default_target_list variable is built. > > > > In addition to that, *building* qemu from a directory with spaces breaks > > some assumptions in the Makefiles, even if the original source path does > > not contain spaces like in the case of an out-of-tree build, or when > > symlinks are involved. > > > > To avoid these issues, refuse to run the configure script and the > > Makefile if there are spaces or colons in the source path or the build > > path, taking as inspiration what the kbuild system in linux does. > > > > Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 > > > > Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> > > --- > > Makefile | 4 ++++ > > configure | 6 ++++++ > > 2 files changed, 10 insertions(+) > > > > > +++ b/Makefile > > @@ -1,5 +1,9 @@ > > # Makefile for QEMU. > > > > +ifneq ($(words $(subst :, ,$(CURDIR))), 1) > > + $(error main directory cannot contain spaces nor colons) > > +endif > > + > > # Always point to the root of the build tree (needs GNU make). > > BUILD_DIR=$(CURDIR) > > > > diff --git a/configure b/configure > > index 9832cbca5c..f7ad4381bd 100755 > > --- a/configure > > +++ b/configure > > @@ -279,6 +279,12 @@ ld_has() { > > # make source path absolute > > source_path=$(cd "$(dirname -- "$0")"; pwd) > > > > +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || > > + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; > > For less typing and fewer processes, you could shorten this to: > > if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; > > but that's trivial enough for a maintainer to fold in if desired. > > Reviewed-by: Eric Blake <eblake@redhat.com> What tree is this going to go in via? I suggest the -trivial tree. thanks -- PMM ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-09 14:42 ` Peter Maydell @ 2019-05-22 13:57 ` Laurent Vivier 2019-05-22 15:01 ` Antonio Ospite 0 siblings, 1 reply; 15+ messages in thread From: Laurent Vivier @ 2019-05-22 13:57 UTC (permalink / raw) To: Peter Maydell, Eric Blake Cc: QEMU Trivial, Antonio Ospite, Antonio Ospite, QEMU Developers On 09/05/2019 16:42, Peter Maydell wrote: > On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: >> >> On 5/3/19 3:27 AM, Antonio Ospite wrote: >>> From: Antonio Ospite <antonio.ospite@collabora.com> >>> >>> The configure script breaks when the qemu source directory is in a path >>> containing white spaces, in particular the list of targets is not >>> correctly generated when calling "./configure --help" because of how the >>> default_target_list variable is built. >>> >>> In addition to that, *building* qemu from a directory with spaces breaks >>> some assumptions in the Makefiles, even if the original source path does >>> not contain spaces like in the case of an out-of-tree build, or when >>> symlinks are involved. >>> >>> To avoid these issues, refuse to run the configure script and the >>> Makefile if there are spaces or colons in the source path or the build >>> path, taking as inspiration what the kbuild system in linux does. >>> >>> Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 >>> >>> Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> >>> --- >>> Makefile | 4 ++++ >>> configure | 6 ++++++ >>> 2 files changed, 10 insertions(+) >>> >> >>> +++ b/Makefile >>> @@ -1,5 +1,9 @@ >>> # Makefile for QEMU. >>> >>> +ifneq ($(words $(subst :, ,$(CURDIR))), 1) >>> + $(error main directory cannot contain spaces nor colons) >>> +endif >>> + >>> # Always point to the root of the build tree (needs GNU make). >>> BUILD_DIR=$(CURDIR) >>> >>> diff --git a/configure b/configure >>> index 9832cbca5c..f7ad4381bd 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -279,6 +279,12 @@ ld_has() { >>> # make source path absolute >>> source_path=$(cd "$(dirname -- "$0")"; pwd) >>> >>> +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || >>> + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; >> >> For less typing and fewer processes, you could shorten this to: >> >> if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; >> >> but that's trivial enough for a maintainer to fold in if desired. >> >> Reviewed-by: Eric Blake <eblake@redhat.com> > > What tree is this going to go in via? I suggest the > -trivial tree. Applied (unchanged) to my trivial-patches branch. Thanks, Laurent ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-22 13:57 ` [Qemu-devel] [Qemu-trivial] " Laurent Vivier @ 2019-05-22 15:01 ` Antonio Ospite 2019-05-22 15:21 ` Laurent Vivier 0 siblings, 1 reply; 15+ messages in thread From: Antonio Ospite @ 2019-05-22 15:01 UTC (permalink / raw) To: Laurent Vivier, Peter Maydell, Eric Blake Cc: QEMU Trivial, Antonio Ospite, QEMU Developers On 22/05/19 15:57, Laurent Vivier wrote: > On 09/05/2019 16:42, Peter Maydell wrote: >> On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: >>> >>> On 5/3/19 3:27 AM, Antonio Ospite wrote: >>>> From: Antonio Ospite <antonio.ospite@collabora.com> >>>> >>>> The configure script breaks when the qemu source directory is in a path >>>> containing white spaces, in particular the list of targets is not >>>> correctly generated when calling "./configure --help" because of how >>>> the >>>> default_target_list variable is built. >>>> >>>> In addition to that, *building* qemu from a directory with spaces >>>> breaks >>>> some assumptions in the Makefiles, even if the original source path >>>> does >>>> not contain spaces like in the case of an out-of-tree build, or when >>>> symlinks are involved. >>>> >>>> To avoid these issues, refuse to run the configure script and the >>>> Makefile if there are spaces or colons in the source path or the build >>>> path, taking as inspiration what the kbuild system in linux does. >>>> >>>> Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 >>>> >>>> Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> >>>> --- >>>> Makefile | 4 ++++ >>>> configure | 6 ++++++ >>>> 2 files changed, 10 insertions(+) >>>> >>> >>>> +++ b/Makefile >>>> @@ -1,5 +1,9 @@ >>>> # Makefile for QEMU. >>>> >>>> +ifneq ($(words $(subst :, ,$(CURDIR))), 1) >>>> + $(error main directory cannot contain spaces nor colons) >>>> +endif >>>> + >>>> # Always point to the root of the build tree (needs GNU make). >>>> BUILD_DIR=$(CURDIR) >>>> >>>> diff --git a/configure b/configure >>>> index 9832cbca5c..f7ad4381bd 100755 >>>> --- a/configure >>>> +++ b/configure >>>> @@ -279,6 +279,12 @@ ld_has() { >>>> # make source path absolute >>>> source_path=$(cd "$(dirname -- "$0")"; pwd) >>>> >>>> +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || >>>> + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; >>> >>> For less typing and fewer processes, you could shorten this to: >>> >>> if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; >>> >>> but that's trivial enough for a maintainer to fold in if desired. >>> >>> Reviewed-by: Eric Blake <eblake@redhat.com> >> >> What tree is this going to go in via? I suggest the >> -trivial tree. > > > Applied (unchanged) to my trivial-patches branch. > Thank you Laurent. I'll think about sending a followup patch with the changes proposed by Eric and I'll CC you if I do. Ciao, Antonio ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-22 15:01 ` Antonio Ospite @ 2019-05-22 15:21 ` Laurent Vivier 2019-05-22 15:26 ` Antonio Ospite 0 siblings, 1 reply; 15+ messages in thread From: Laurent Vivier @ 2019-05-22 15:21 UTC (permalink / raw) To: Antonio Ospite, Peter Maydell, Eric Blake Cc: QEMU Trivial, Antonio Ospite, QEMU Developers On 22/05/2019 17:01, Antonio Ospite wrote: > On 22/05/19 15:57, Laurent Vivier wrote: >> On 09/05/2019 16:42, Peter Maydell wrote: >>> On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: >>>> >>>> On 5/3/19 3:27 AM, Antonio Ospite wrote: >>>>> From: Antonio Ospite <antonio.ospite@collabora.com> >>>>> >>>>> The configure script breaks when the qemu source directory is in a >>>>> path >>>>> containing white spaces, in particular the list of targets is not >>>>> correctly generated when calling "./configure --help" because of >>>>> how the >>>>> default_target_list variable is built. >>>>> >>>>> In addition to that, *building* qemu from a directory with spaces >>>>> breaks >>>>> some assumptions in the Makefiles, even if the original source path >>>>> does >>>>> not contain spaces like in the case of an out-of-tree build, or when >>>>> symlinks are involved. >>>>> >>>>> To avoid these issues, refuse to run the configure script and the >>>>> Makefile if there are spaces or colons in the source path or the build >>>>> path, taking as inspiration what the kbuild system in linux does. >>>>> >>>>> Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 >>>>> >>>>> Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> >>>>> --- >>>>> Makefile | 4 ++++ >>>>> configure | 6 ++++++ >>>>> 2 files changed, 10 insertions(+) >>>>> >>>> >>>>> +++ b/Makefile >>>>> @@ -1,5 +1,9 @@ >>>>> # Makefile for QEMU. >>>>> >>>>> +ifneq ($(words $(subst :, ,$(CURDIR))), 1) >>>>> + $(error main directory cannot contain spaces nor colons) >>>>> +endif >>>>> + >>>>> # Always point to the root of the build tree (needs GNU make). >>>>> BUILD_DIR=$(CURDIR) >>>>> >>>>> diff --git a/configure b/configure >>>>> index 9832cbca5c..f7ad4381bd 100755 >>>>> --- a/configure >>>>> +++ b/configure >>>>> @@ -279,6 +279,12 @@ ld_has() { >>>>> # make source path absolute >>>>> source_path=$(cd "$(dirname -- "$0")"; pwd) >>>>> >>>>> +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || >>>>> + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; >>>> >>>> For less typing and fewer processes, you could shorten this to: >>>> >>>> if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; >>>> >>>> but that's trivial enough for a maintainer to fold in if desired. >>>> >>>> Reviewed-by: Eric Blake <eblake@redhat.com> >>> >>> What tree is this going to go in via? I suggest the >>> -trivial tree. >> >> >> Applied (unchanged) to my trivial-patches branch. >> > > Thank you Laurent. > > I'll think about sending a followup patch with the changes proposed by > Eric and I'll CC you if I do. If you want to send a v3 of this patch to update it, I can wait. Thanks, Laurent ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-22 15:21 ` Laurent Vivier @ 2019-05-22 15:26 ` Antonio Ospite 2019-05-22 15:37 ` Laurent Vivier 0 siblings, 1 reply; 15+ messages in thread From: Antonio Ospite @ 2019-05-22 15:26 UTC (permalink / raw) To: Laurent Vivier, Peter Maydell, Eric Blake Cc: QEMU Trivial, Antonio Ospite, QEMU Developers On 22/05/19 17:21, Laurent Vivier wrote: > On 22/05/2019 17:01, Antonio Ospite wrote: >> On 22/05/19 15:57, Laurent Vivier wrote: >>> On 09/05/2019 16:42, Peter Maydell wrote: >>>> On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: >>>>> >>>>> On 5/3/19 3:27 AM, Antonio Ospite wrote: >>>>>> From: Antonio Ospite <antonio.ospite@collabora.com> >>>>>> >>>>>> The configure script breaks when the qemu source directory is in a >>>>>> path >>>>>> containing white spaces, in particular the list of targets is not >>>>>> correctly generated when calling "./configure --help" because of >>>>>> how the >>>>>> default_target_list variable is built. >>>>>> >>>>>> In addition to that, *building* qemu from a directory with spaces >>>>>> breaks >>>>>> some assumptions in the Makefiles, even if the original source >>>>>> path does >>>>>> not contain spaces like in the case of an out-of-tree build, or when >>>>>> symlinks are involved. >>>>>> >>>>>> To avoid these issues, refuse to run the configure script and the >>>>>> Makefile if there are spaces or colons in the source path or the >>>>>> build >>>>>> path, taking as inspiration what the kbuild system in linux does. >>>>>> >>>>>> Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 >>>>>> >>>>>> Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> >>>>>> --- >>>>>> Makefile | 4 ++++ >>>>>> configure | 6 ++++++ >>>>>> 2 files changed, 10 insertions(+) >>>>>> >>>>> >>>>>> +++ b/Makefile >>>>>> @@ -1,5 +1,9 @@ >>>>>> # Makefile for QEMU. >>>>>> >>>>>> +ifneq ($(words $(subst :, ,$(CURDIR))), 1) >>>>>> + $(error main directory cannot contain spaces nor colons) >>>>>> +endif >>>>>> + >>>>>> # Always point to the root of the build tree (needs GNU make). >>>>>> BUILD_DIR=$(CURDIR) >>>>>> >>>>>> diff --git a/configure b/configure >>>>>> index 9832cbca5c..f7ad4381bd 100755 >>>>>> --- a/configure >>>>>> +++ b/configure >>>>>> @@ -279,6 +279,12 @@ ld_has() { >>>>>> # make source path absolute >>>>>> source_path=$(cd "$(dirname -- "$0")"; pwd) >>>>>> >>>>>> +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || >>>>>> + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; >>>>> >>>>> For less typing and fewer processes, you could shorten this to: >>>>> >>>>> if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; >>>>> >>>>> but that's trivial enough for a maintainer to fold in if desired. >>>>> >>>>> Reviewed-by: Eric Blake <eblake@redhat.com> >>>> >>>> What tree is this going to go in via? I suggest the >>>> -trivial tree. >>> >>> >>> Applied (unchanged) to my trivial-patches branch. >>> >> >> Thank you Laurent. >> >> I'll think about sending a followup patch with the changes proposed by >> Eric and I'll CC you if I do. > > If you want to send a v3 of this patch to update it, I can wait. That works too, I was waiting for the maintainers to decide what to do. I'll try to send a v3 before Monday then. Thanks, Antonio ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path 2019-05-22 15:26 ` Antonio Ospite @ 2019-05-22 15:37 ` Laurent Vivier 0 siblings, 0 replies; 15+ messages in thread From: Laurent Vivier @ 2019-05-22 15:37 UTC (permalink / raw) To: Antonio Ospite, Peter Maydell, Eric Blake Cc: QEMU Trivial, Antonio Ospite, QEMU Developers On 22/05/2019 17:26, Antonio Ospite wrote: > On 22/05/19 17:21, Laurent Vivier wrote: >> On 22/05/2019 17:01, Antonio Ospite wrote: >>> On 22/05/19 15:57, Laurent Vivier wrote: >>>> On 09/05/2019 16:42, Peter Maydell wrote: >>>>> On Mon, 6 May 2019 at 18:27, Eric Blake <eblake@redhat.com> wrote: >>>>>> >>>>>> On 5/3/19 3:27 AM, Antonio Ospite wrote: >>>>>>> From: Antonio Ospite <antonio.ospite@collabora.com> >>>>>>> >>>>>>> The configure script breaks when the qemu source directory is in >>>>>>> a path >>>>>>> containing white spaces, in particular the list of targets is not >>>>>>> correctly generated when calling "./configure --help" because of >>>>>>> how the >>>>>>> default_target_list variable is built. >>>>>>> >>>>>>> In addition to that, *building* qemu from a directory with spaces >>>>>>> breaks >>>>>>> some assumptions in the Makefiles, even if the original source >>>>>>> path does >>>>>>> not contain spaces like in the case of an out-of-tree build, or when >>>>>>> symlinks are involved. >>>>>>> >>>>>>> To avoid these issues, refuse to run the configure script and the >>>>>>> Makefile if there are spaces or colons in the source path or the >>>>>>> build >>>>>>> path, taking as inspiration what the kbuild system in linux does. >>>>>>> >>>>>>> Buglink: https://bugs.launchpad.net/qemu/+bug/1817345 >>>>>>> >>>>>>> Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com> >>>>>>> --- >>>>>>> Makefile | 4 ++++ >>>>>>> configure | 6 ++++++ >>>>>>> 2 files changed, 10 insertions(+) >>>>>>> >>>>>> >>>>>>> +++ b/Makefile >>>>>>> @@ -1,5 +1,9 @@ >>>>>>> # Makefile for QEMU. >>>>>>> >>>>>>> +ifneq ($(words $(subst :, ,$(CURDIR))), 1) >>>>>>> + $(error main directory cannot contain spaces nor colons) >>>>>>> +endif >>>>>>> + >>>>>>> # Always point to the root of the build tree (needs GNU make). >>>>>>> BUILD_DIR=$(CURDIR) >>>>>>> >>>>>>> diff --git a/configure b/configure >>>>>>> index 9832cbca5c..f7ad4381bd 100755 >>>>>>> --- a/configure >>>>>>> +++ b/configure >>>>>>> @@ -279,6 +279,12 @@ ld_has() { >>>>>>> # make source path absolute >>>>>>> source_path=$(cd "$(dirname -- "$0")"; pwd) >>>>>>> >>>>>>> +if printf "%s\n" "$source_path" | grep -q "[[:space:]:]" || >>>>>>> + printf "%s\n" "$PWD" | grep -q "[[:space:]:]"; >>>>>> >>>>>> For less typing and fewer processes, you could shorten this to: >>>>>> >>>>>> if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]"; >>>>>> >>>>>> but that's trivial enough for a maintainer to fold in if desired. >>>>>> >>>>>> Reviewed-by: Eric Blake <eblake@redhat.com> >>>>> >>>>> What tree is this going to go in via? I suggest the >>>>> -trivial tree. >>>> >>>> >>>> Applied (unchanged) to my trivial-patches branch. >>>> >>> >>> Thank you Laurent. >>> >>> I'll think about sending a followup patch with the changes proposed >>> by Eric and I'll CC you if I do. >> >> If you want to send a v3 of this patch to update it, I can wait. > > That works too, I was waiting for the maintainers to decide what to do. > > I'll try to send a v3 before Monday then. OK, I will queue your v3 in the pull-request of the next week. Thanks, Laurent ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-05-22 15:48 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-05-03 8:27 [Qemu-devel] [PATCH v2 0/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:23 ` Eric Blake 2019-05-03 8:27 ` [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Antonio Ospite 2019-05-03 8:27 ` Antonio Ospite 2019-05-06 17:27 ` Eric Blake 2019-05-06 20:23 ` Antonio Ospite 2019-05-09 14:42 ` Peter Maydell 2019-05-22 13:57 ` [Qemu-devel] [Qemu-trivial] " Laurent Vivier 2019-05-22 15:01 ` Antonio Ospite 2019-05-22 15:21 ` Laurent Vivier 2019-05-22 15:26 ` Antonio Ospite 2019-05-22 15:37 ` Laurent Vivier
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).