From: Antonio Ospite <ao2@ao2.it> To: qemu-devel@nongnu.org Cc: Antonio Ospite <antonio.ospite@collabora.com>, Antonio Ospite <ao2@ao2.it>, Peter Maydell <peter.maydell@linaro.org>, Eric Blake <eblake@redhat.com> Subject: [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Date: Fri, 3 May 2019 10:27:28 +0200 [thread overview] Message-ID: <20190503082728.16485-3-ao2@ao2.it> (raw) In-Reply-To: <20190503082728.16485-1-ao2@ao2.it> 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
WARNING: multiple messages have this Message-ID (diff)
From: Antonio Ospite <ao2@ao2.it> To: qemu-devel@nongnu.org Cc: Peter Maydell <peter.maydell@linaro.org>, Antonio Ospite <ao2@ao2.it>, Antonio Ospite <antonio.ospite@collabora.com> Subject: [Qemu-devel] [PATCH v2 2/2] configure: disallow spaces and colons in source path and build path Date: Fri, 3 May 2019 10:27:28 +0200 [thread overview] Message-ID: <20190503082728.16485-3-ao2@ao2.it> (raw) Message-ID: <20190503082728.FeCxtFPCiHw5olPtK-UFsrmc8zyBPKpScszmKAXSvbM@z> (raw) In-Reply-To: <20190503082728.16485-1-ao2@ao2.it> 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
next prev parent reply other threads:[~2019-05-03 8:27 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 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 ` Antonio Ospite [this message] 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-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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190503082728.16485-3-ao2@ao2.it \ --to=ao2@ao2.it \ --cc=antonio.ospite@collabora.com \ --cc=eblake@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).