[Spice-devel] [PATCH spice-server 1/3] fixup! Update gitlab-ci to use meson

Eduardo Lima (Etrunko) etrunko at redhat.com
Wed Jul 25 13:21:55 UTC 2018


On 25/07/18 10:16, Frediano Ziglio wrote:
>> On 25/07/18 06:07, Frediano Ziglio wrote:
>>> Check we get correctly project version
>>> ---
>>>  meson.build | 9 ++++++---
>>>  1 file changed, 6 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/meson.build b/meson.build
>>> index c564941b9..360d1a543 100644
>>> --- a/meson.build
>>> +++ b/meson.build
>>> @@ -1,14 +1,17 @@
>>>  #
>>>  # project definition
>>>  #
>>> -# TODO: double check meson.project_version()
>>> -# Ideally we would use the output of git-version-gen as input for meson,
>>> because
>>> -# we can not check the result of the command before declaring project().
>>>  #
>>>  project('spice', 'c',
>>>           version : run_command('build-aux/git-version-gen',
>>>           '.tarball-version').stdout().strip(),
>>>           license : 'LGPLv2.1',
>>>           meson_version : '>= 0.47.0')
>>> +# double check meson.project_version()
>>> +# we can not check the result of the command before declaring project().
>>> +version = run_command('build-aux/git-version-gen', '.tarball-version',
>>> check : true).stdout().strip()
>>> +if meson.project_version() != version
>>> +  error('Wrong project version')
>>> +endif
>>>  
>>
>>
>> Thinking better about this one, wouldn't it be enough to add 'check :
>> true' to the run_command in project definition only, instead of running
>> it again?
>>
> 
> Would... but not work! Meson die really badly if you try...

Okay, I tested it and got this long backtrace, looks like we found a bug
in meson.

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line
351, in run
    app.generate()
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line
117, in generate
    self._generate(env)
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line
134, in _generate
    intr = interpreter.Interpreter(b)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreter.py",
line 1874, in __init__
    self.parse_project()
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 362, in parse_project
    self.evaluate_codeblock(self.ast, end=1)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 401, in evaluate_codeblock
    raise e
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 395, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 406, in evaluate_statement
    return self.function_call(cur)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 688, in function_call
    (posargs, kwargs) = self.reduce_arguments(node.args)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 925, in reduce_arguments
    reduced_kw[key] = self.evaluate_statement(a)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 410, in evaluate_statement
    return self.method_call(cur)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 706, in method_call
    obj = self.evaluate_statement(invokable)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 410, in evaluate_statement
    return self.method_call(cur)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 706, in method_call
    obj = self.evaluate_statement(invokable)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 406, in evaluate_statement
    return self.function_call(cur)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 696, in function_call
    return func(node, posargs, kwargs)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 269, in wrapped
    FeatureCheckClass(name, self.feature_version).use(subproject)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 178, in use
    tv = self.get_target_version(subproject)
  File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py",
line 175, in get_target_version
    return mesonlib.project_meson_versions[subproject]
KeyError: ''


> 
>>
>> diff --git a/meson.build b/meson.build
>> index c564941b..bc5424cc 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -1,12 +1,8 @@
>>  #
>>  # project definition
>>  #
>> -# TODO: double check meson.project_version()
>> -# Ideally we would use the output of git-version-gen as input for
>> meson, because
>> -# we can not check the result of the command before declaring project().
>> -#
>>  project('spice', 'c',
>> -         version : run_command('build-aux/git-version-gen',
>> '.tarball-version').stdout().strip(),
>> +         version : run_command('build-aux/git-version-gen',
>> '.tarball-version', check : true).stdout().strip(),
>>           license : 'LGPLv2.1',
>>           meson_version : '>= 0.47.0')
>>
>>
>>
>>
>>>  spice_server_so_version = '1.12.4'
>>>  
>>>


-- 
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etrunko at redhat.com


More information about the Spice-devel mailing list