configure script breaks when $source_path contains white spaces

Bug #1817345 reported by Antonio Ospite
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Hi,

I noticed that 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".

Steps to reproduce the problem:

$ mkdir "dir with spaces"
$ cd dir\ with\ spaces/
$ git clone https://git.qemu.org/git/qemu.git
$ cd qemu/
$ ./configure --help | grep -A3 target-list

Actual result:

  --target-list=LIST set target list (default: build everything)
                           Available targets: dir with *-softmmu dir with
                           *-linux-user

Expected result:

  --target-list=LIST set target list (default: build everything)
                           Available targets: aarch64-softmmu alpha-softmmu
                           arm-softmmu cris-softmmu hppa-softmmu i386-softmmu
                           lm32-softmmu m68k-softmmu microblaze-softmmu

This happens because the $mak_wilds variable uses spaces to separate different paths, maybe newlines may be used, which are less likely to be in directory names.

BTW "shellcheck" may help finding some other problems.

Qemu version:

$ git describe
v3.1.0-1960-ga05838cb2a

Thanks,
   Antonio

Revision history for this message
Michael Tokarev (mjt+launchpad-tls) wrote :

I think it is better to just disallow building in a path containing spaces, -- there are so many packages and other tools that fails in this config, might require lots of work to fix this AND to ensure all future changes are still working, and there's an easy workaround

Just my few cents.

Revision history for this message
Peter Maydell (pmaydell) wrote : Re: [Qemu-devel] [Bug 1817345] Re: configure script breaks when $source_path contains white spaces

On Sun, 24 Feb 2019 at 19:46, Michael Tokarev
<email address hidden> wrote:
> I think it is better to just disallow building in a path containing
> spaces, -- there are so many packages and other tools that fails in this
> config, might require lots of work to fix this AND to ensure all future
> changes are still working, and there's an easy workaround

Certainly I bet that the problems with spaces in the path do
not stop with the handling of the target-list help message.
Make does not really get on at all with spaces...
It would probably be helpful if we made configure complain
if it finds spaces in the build or source paths.

thanks
-- PMM

Revision history for this message
Antonio Ospite (ospite) wrote :

I am OK with just checking and complaining.

Linux too solves the problem in this way: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Makefile?id=51193b76bfff5027cf96ba63effae808ad67cca7

A general "shellcheck" pass wouldn't hurt, tho.

Thank you,
   Antonio

Revision history for this message
Deepika Choudhary (deepi) wrote :

If calling from any Unix shell, and the parameter has spaces, then we need to quote it.we can also use single quotes, these are more powerful. They stop the shell from interpreting anything ($, !, \, *, ", etc, except ').

can't we use this approach here??

Revision history for this message
Peter Maydell (pmaydell) wrote :

Deepika: the tricky part is the makefiles, not the configure script...

Revision history for this message
Deepika Choudhary (deepi) wrote : Re: [Bug 1817345] Re: configure script breaks when $source_path contains white spaces

Oh~
Okay!

On Sun, Mar 10, 2019, 02:30 Peter Maydell <email address hidden> wrote:

> Deepika: the tricky part is the makefiles, not the configure script...
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1817345
>
> Title:
> configure script breaks when $source_path contains white spaces
>
> Status in QEMU:
> New
>
> Bug description:
> Hi,
>
> I noticed that 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".
>
> Steps to reproduce the problem:
>
> $ mkdir "dir with spaces"
> $ cd dir\ with\ spaces/
> $ git clone https://git.qemu.org/git/qemu.git
> $ cd qemu/
> $ ./configure --help | grep -A3 target-list
>
>
> Actual result:
>
> --target-list=LIST set target list (default: build everything)
> Available targets: dir with *-softmmu dir
> with
> *-linux-user
>
>
> Expected result:
>
> --target-list=LIST set target list (default: build everything)
> Available targets: aarch64-softmmu
> alpha-softmmu
> arm-softmmu cris-softmmu hppa-softmmu
> i386-softmmu
> lm32-softmmu m68k-softmmu microblaze-softmmu
>
>
> This happens because the $mak_wilds variable uses spaces to separate
> different paths, maybe newlines may be used, which are less likely to be in
> directory names.
>
> BTW "shellcheck" may help finding some other problems.
>
> Qemu version:
>
> $ git describe
> v3.1.0-1960-ga05838cb2a
>
> Thanks,
> Antonio
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1817345/+subscriptions
>

Revision history for this message
Peter Maydell (pmaydell) wrote :

Antonio has submitted a patchset here:
https://<email address hidden>/

Changed in qemu:
status: New → In Progress
Revision history for this message
Peter Maydell (pmaydell) wrote :

Antonio's patches are in git and will be in the upcoming 4.1.0 release.

Changed in qemu:
status: In Progress → Fix Committed
Revision history for this message
Thomas Huth (th-huth) wrote :
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.