1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
instruction: 0.989
graphic: 0.987
semantic: 0.986
device: 0.985
assembly: 0.979
other: 0.970
boot: 0.956
socket: 0.950
network: 0.946
KVM: 0.928
vnc: 0.919
mistranslation: 0.875
configure script breaks when $source_path contains white spaces
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
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.
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
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
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??
Deepika: the tricky part is the makefiles, not the configure script...
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
>
Antonio has submitted a patchset here:
https://<email address hidden>/
Antonio's patches are in git and will be in the upcoming 4.1.0 release.
Patch included here:
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=4ace32e22713ffd79deb22
|