qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Antonio Ospite <ao2@ao2.it>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Antonio Ospite <antonio.ospite@collabora.com>,
	Laurent Vivier <laurent@vivier.eu>
Subject: [Qemu-devel] [PATCH v3 2/2] configure: disallow spaces and colons in source path and build path
Date: Sun, 26 May 2019 16:47:47 +0200	[thread overview]
Message-ID: <20190526144747.30019-3-ao2@ao2.it> (raw)
In-Reply-To: <20190526144747.30019-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

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Antonio Ospite <antonio.ospite@collabora.com>
---
 Makefile  | 4 ++++
 configure | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/Makefile b/Makefile
index e02b88bcb1..bed1323a45 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 9f12120ad9..2833d73ccc 100755
--- a/configure
+++ b/configure
@@ -279,6 +279,11 @@ ld_has() {
 # make source path absolute
 source_path=$(cd "$(dirname -- "$0")"; pwd)
 
+if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]";
+then
+  error_exit "main directory cannot contain spaces nor colons"
+fi
+
 # default parameters
 cpu=""
 iasl="iasl"
-- 
2.20.1



  parent reply	other threads:[~2019-05-26 15:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-26 14:47 [Qemu-devel] [PATCH v3 0/2] configure: disallow spaces and colons in source path and build path Antonio Ospite
2019-05-26 14:47 ` [Qemu-devel] [PATCH v3 1/2] configure: set source_path only once and make its definition more robust Antonio Ospite
2019-06-26 15:56   ` Laurent Vivier
2019-05-26 14:47 ` Antonio Ospite [this message]
2019-06-26 15:56   ` [Qemu-devel] [PATCH v3 2/2] configure: disallow spaces and colons in source path and build path Laurent Vivier
2019-06-26 15:16 ` [Qemu-devel] [PATCH v3 0/2] " Antonio Ospite
2019-06-26 15:50   ` Laurent Vivier
2019-06-26 15:54     ` Antonio Ospite
2019-06-26 15:52   ` Eric Blake

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=20190526144747.30019-3-ao2@ao2.it \
    --to=ao2@ao2.it \
    --cc=antonio.ospite@collabora.com \
    --cc=laurent@vivier.eu \
    --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: link
Be 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).