Re: [Qemu-devel] [PATCH v1 01/24] configure: add test for docker availability

2018-04-11 Thread Fam Zheng
On Wed, 04/11 11:58, Alex Bennée wrote:
> 
> Fam Zheng  writes:
> 
> > On Tue, 04/10 20:38, Alex Bennée wrote:
> >> This tests for a working docker installation without sudo and sets up
> >> config-host.mak accordingly. This will be useful from cross compiling
> >> things in the future.
> >>
> >> Signed-off-by: Alex Bennée 
> >> ---
> >>  configure | 23 +++
> >>  1 file changed, 23 insertions(+)
> >>
> >> diff --git a/configure b/configure
> >> index 4d0e92c96c..b402befe94 100755
> >> --- a/configure
> >> +++ b/configure
> >> @@ -451,6 +451,7 @@ jemalloc="no"
> >>  replication="yes"
> >>  vxhs=""
> >>  libxml2=""
> >> +docker="no"
> >>
> >>  supported_cpu="no"
> >>  supported_os="no"
> >> @@ -5396,6 +5397,23 @@ EOF
> >>fi
> >>  fi
> >>
> >> +##
> >> +# Docker and cross-compiler support
> >> +#
> >> +# This is specifically for building test
> >> +# cases for foreign architectures, not
> >> +# cross-compiling QEMU itself.
> >> +
> >> +if has "docker"; then
> >> +if docker images  >/dev/null 2>&1 ; then
> >> +docker="yes"
> >> +else
> >> +# docker may be available but using sudo
> >> +# so we won't use it for cross-building
> >> +docker="maybe"
> >
> > What is the problem with using sudo for cross-building?
> 
> Nothing in particular but we need someway of testing if the sudo is
> passwordless otherwise you might find the build stuck waiting for user
> interaction. This is fine for "make docker-foo" but for an eventual
> unattended "make check" this may cause problems.
> 
> Is there a way we can test for this? Maybe we can push the docker probe
> into docker.py and just return to configure if it can run docker
> unattended?

We can try 'sudo -n -k docker' to test if passwordless docker works. According
to the manpage, -k ignores the credential cache, and -n ensures non-interaction.

Fam



Re: [Qemu-devel] [PATCH v1 01/24] configure: add test for docker availability

2018-04-11 Thread Alex Bennée

Fam Zheng  writes:

> On Tue, 04/10 20:38, Alex Bennée wrote:
>> This tests for a working docker installation without sudo and sets up
>> config-host.mak accordingly. This will be useful from cross compiling
>> things in the future.
>>
>> Signed-off-by: Alex Bennée 
>> ---
>>  configure | 23 +++
>>  1 file changed, 23 insertions(+)
>>
>> diff --git a/configure b/configure
>> index 4d0e92c96c..b402befe94 100755
>> --- a/configure
>> +++ b/configure
>> @@ -451,6 +451,7 @@ jemalloc="no"
>>  replication="yes"
>>  vxhs=""
>>  libxml2=""
>> +docker="no"
>>
>>  supported_cpu="no"
>>  supported_os="no"
>> @@ -5396,6 +5397,23 @@ EOF
>>fi
>>  fi
>>
>> +##
>> +# Docker and cross-compiler support
>> +#
>> +# This is specifically for building test
>> +# cases for foreign architectures, not
>> +# cross-compiling QEMU itself.
>> +
>> +if has "docker"; then
>> +if docker images  >/dev/null 2>&1 ; then
>> +docker="yes"
>> +else
>> +# docker may be available but using sudo
>> +# so we won't use it for cross-building
>> +docker="maybe"
>
> What is the problem with using sudo for cross-building?

Nothing in particular but we need someway of testing if the sudo is
passwordless otherwise you might find the build stuck waiting for user
interaction. This is fine for "make docker-foo" but for an eventual
unattended "make check" this may cause problems.

Is there a way we can test for this? Maybe we can push the docker probe
into docker.py and just return to configure if it can run docker
unattended?

--
Alex Bennée



Re: [Qemu-devel] [PATCH v1 01/24] configure: add test for docker availability

2018-04-11 Thread Fam Zheng
On Tue, 04/10 20:38, Alex Bennée wrote:
> This tests for a working docker installation without sudo and sets up
> config-host.mak accordingly. This will be useful from cross compiling
> things in the future.
> 
> Signed-off-by: Alex Bennée 
> ---
>  configure | 23 +++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/configure b/configure
> index 4d0e92c96c..b402befe94 100755
> --- a/configure
> +++ b/configure
> @@ -451,6 +451,7 @@ jemalloc="no"
>  replication="yes"
>  vxhs=""
>  libxml2=""
> +docker="no"
>  
>  supported_cpu="no"
>  supported_os="no"
> @@ -5396,6 +5397,23 @@ EOF
>fi
>  fi
>  
> +##
> +# Docker and cross-compiler support
> +#
> +# This is specifically for building test
> +# cases for foreign architectures, not
> +# cross-compiling QEMU itself.
> +
> +if has "docker"; then
> +if docker images  >/dev/null 2>&1 ; then
> +docker="yes"
> +else
> +# docker may be available but using sudo
> +# so we won't use it for cross-building
> +docker="maybe"

What is the problem with using sudo for cross-building?

Fam

> +fi
> +fi
> +
>  ##
>  # End of CC checks
>  # After here, no more $cc or $ld runs
> @@ -5857,6 +5875,7 @@ echo "avx2 optimization $avx2_opt"
>  echo "replication support $replication"
>  echo "VxHS block device $vxhs"
>  echo "capstone  $capstone"
> +echo "docker$docker"
>  
>  if test "$sdl_too_old" = "yes"; then
>  echo "-> Your SDL version is too old - please upgrade to have SDL support"
> @@ -6680,6 +6699,10 @@ if test "$gcov" = "yes" ; then
>echo "GCOV=$gcov_tool" >> $config_host_mak
>  fi
>  
> +if test "$docker" = "yes"; then
> +echo "HAVE_USER_DOCKER=y" >> $config_host_mak
> +fi
> +
>  # use included Linux headers
>  if test "$linux" = "yes" ; then
>mkdir -p linux-headers
> -- 
> 2.16.2
> 



[Qemu-devel] [PATCH v1 01/24] configure: add test for docker availability

2018-04-10 Thread Alex Bennée
This tests for a working docker installation without sudo and sets up
config-host.mak accordingly. This will be useful from cross compiling
things in the future.

Signed-off-by: Alex Bennée 
---
 configure | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/configure b/configure
index 4d0e92c96c..b402befe94 100755
--- a/configure
+++ b/configure
@@ -451,6 +451,7 @@ jemalloc="no"
 replication="yes"
 vxhs=""
 libxml2=""
+docker="no"
 
 supported_cpu="no"
 supported_os="no"
@@ -5396,6 +5397,23 @@ EOF
   fi
 fi
 
+##
+# Docker and cross-compiler support
+#
+# This is specifically for building test
+# cases for foreign architectures, not
+# cross-compiling QEMU itself.
+
+if has "docker"; then
+if docker images  >/dev/null 2>&1 ; then
+docker="yes"
+else
+# docker may be available but using sudo
+# so we won't use it for cross-building
+docker="maybe"
+fi
+fi
+
 ##
 # End of CC checks
 # After here, no more $cc or $ld runs
@@ -5857,6 +5875,7 @@ echo "avx2 optimization $avx2_opt"
 echo "replication support $replication"
 echo "VxHS block device $vxhs"
 echo "capstone  $capstone"
+echo "docker$docker"
 
 if test "$sdl_too_old" = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -6680,6 +6699,10 @@ if test "$gcov" = "yes" ; then
   echo "GCOV=$gcov_tool" >> $config_host_mak
 fi
 
+if test "$docker" = "yes"; then
+echo "HAVE_USER_DOCKER=y" >> $config_host_mak
+fi
+
 # use included Linux headers
 if test "$linux" = "yes" ; then
   mkdir -p linux-headers
-- 
2.16.2