[libvirt] [PATCH] schema: use arch list from basictypes for os arch attribute

Michal Privoznik mprivozn at redhat.com
Thu Jun 11 14:58:05 UTC 2015


On 08.06.2015 15:42, James Cowgill wrote:
> I see no reason to duplicate this list of architectures. This also allows
> more guest architectures to be used with libvirt (like the mips64el qemu
> machine I am trying to run).
> 
> Signed-off-by: James Cowgill <james410 at cowgill.org.uk>
> ---
>  docs/schemas/domaincommon.rng | 26 ++++++--------------------
>  1 file changed, 6 insertions(+), 20 deletions(-)
> 
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 7c6fa5c..fc28fb3 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -331,7 +331,9 @@
>    <define name="ostypehvm">
>      <element name="type">
>        <optional>
> -        <ref name="archList"/>
> +        <attribute name="arch">
> +          <ref name="archnames"/>
> +        </attribute>
>        </optional>
>        <optional>
>          <attribute name="machine">
> @@ -344,29 +346,13 @@
>      </element>
>    </define>
>  
> -  <define name="archList">
> -    <attribute name="arch">
> -      <choice>
> -        <value>armv7l</value>
> -        <value>aarch64</value>
> -        <value>i686</value>
> -        <value>x86_64</value>
> -        <value>mips</value>
> -        <value>ppc</value>
> -        <value>ppc64</value>
> -        <value>ppc64le</value>
> -        <value>s390</value>
> -        <value>s390x</value>
> -        <value>sparc</value>
> -      </choice>
> -    </attribute>
> -  </define>
> -
>    <define name="osexe">
>      <element name="os">
>        <element name="type">
>          <optional>
> -          <ref name="archList"/>
> +          <attribute name="arch">
> +            <ref name="archnames"/>
> +          </attribute>
>          </optional>
>          <value>exe</value>
>        </element>
> 


The patch looks good to me. ACked and pushed. Although during testing
I've found 2 small bugs (for which I'm going to propose patches in a
while) and one big issue that I'm not sure how to fix. The problem is,
imagine you have some system-wide qemus installed. Say for x86_64 and
ppc. Then, you have qemu.git where you have all arches built. Therefore,
in order to use them, you put something like this into the xml:

<emulator>/path/to/qemu.git/mips64el-softmmu/qemu-system-mips64el</emulator>

But defining such domain fails, since the emulator is not in the
capabilities (virsh capabilities) - it's not system wide emulator
installed under $PATH. Sigh. We need those capabilities in order to
check whether the emulator supports desired architecture from the xml.
However, the capabilities construction is driver dependent - caps for
qemu binaries are constructed differently than for VBOX or XEN server,
right?

Frankly, I don't have any bright idea how to fix this. If anybody has,
please enlighten me.

Michal




More information about the libvir-list mailing list