[libvirt PATCH 4/4] scripts: emit raw enum value in API build description

Michal Privoznik mprivozn at redhat.com
Thu May 21 12:43:10 UTC 2020


On 5/19/20 3:01 PM, Daniel P. Berrangé wrote:
> Currently the value for an enum is only emitted if it is a plain
> string. If the enum is an integer or hex value, or a complex code block,
> it is omitted from the API build. This fixes that by emitting the raw
> value if no string value is present.
> 
> With this change:
> 
>    <macro name='LIBVIR_CHECK_VERSION'
>           file='libvirt-common'
>           params='major,minor,micro'>
>    <macro name='LIBVIR_VERSION_NUMBER'
>           file='libvirt-common'>
>    <macro name='VIR_COPY_CPUMAP'
>           file='libvirt-domain'
>           params='cpumaps,maplen,vcpu,cpumap'>
>    ...snip...
> 
>    <macro name='LIBVIR_CHECK_VERSION'
>           file='libvirt-common'
>           params='major,minor,micro'
>           raw='((major) * 1000000 + (minor) * 1000 + (micro) <= LIBVIR_VERSION_NUMBER)'>
>    <macro name='LIBVIR_VERSION_NUMBER'
>           file='libvirt-common'
>           raw='6004000'>
>    <macro name='VIR_COPY_CPUMAP'
>           file='libvirt-domain'
>           params='cpumaps,maplen,vcpu,cpumap'
>           raw='memcpy(cpumap, VIR_GET_CPUMAP(cpumaps, maplen, vcpu), maplen)'>
>    ...snip...
> 
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
>   scripts/apibuild.py | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)

I'm seeing some weird errors after I apply this one, like:

make[2]: Entering directory 
'/home/zippy/work/libvirt/libvirt.git/_build/docs'
/usr/bin/xsltproc --nonet -o ./ \
   --stringparam builddir '/home/zippy/work/libvirt/libvirt.git/_build' \
   --stringparam timestamp "Thu May 21 12:42:53 UTC 2020" \
   ../../docs/newapi.xsl libvirt-api.xml
libvirt-api.xml:2092: parser error : Unescaped '<' not allowed in 
attributes values
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + 
(micro)
 
        ^
libvirt-api.xml:2092: parser error : attributes construct error
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + 
(micro)
 
        ^
libvirt-api.xml:2092: parser error : Couldn't find end of Start Tag 
macro line 2092
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + 
(micro)
 
        ^
libvirt-api.xml:2092: parser error : StartTag: invalid element name
  params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + 
(micro) <
 
        ^
libvirt-api.xml:2097: parser error : Opening and ending tag mismatch: 
symbols line 2091 and macro
     </macro>
             ^
libvirt-api.xml:2146: parser error : xmlParseEntityRef: no name
_CPU_USED' file='libvirt-domain' params='cpumap,cpu' 
raw='((cpumap)[(cpu) / 8] &
 
        ^
libvirt-api.xml:2146: parser error : Unescaped '<' not allowed in 
attributes values
_USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 
8] & (1
 
        ^
libvirt-api.xml:2146: parser error : attributes construct error
_USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 
8] & (1
 
        ^
libvirt-api.xml:2146: parser error : Couldn't find end of Start Tag 
macro line 2146
_USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 
8] & (1
 
        ^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 
8] & (1 <
 
        ^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
SED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] 
& (1 <<
 
        ^
libvirt-api.xml:2150: parser error : Opening and ending tag mismatch: 
api line 2 and macro
     </macro>
             ^
libvirt-api.xml:2151: parser error : Extra content at the end of the 
document
     <macro name='VIR_DOMAIN_BANDWIDTH_IN_AVERAGE' file='libvirt-domain' 
string='
     ^
unable to parse libvirt-api.xml


Michal




More information about the libvir-list mailing list