Open GeorgesStavracas opened 9 months ago
I can't reproduce and I really don't understand the error you're getting. Do you have local changes? for combo option
that seems to indicate something has option('introspection', type: 'combo')
.
Hm, feature options are subclass of combo option, that's why you can get that error message. Can you run again with MESON_FORCE_BACKTRACE=1
? I see what could be happening, but not sure how you got there.
Sure, this is what I get with MESON_FORCE_BACKTRACE=1:
libadwaita| Using subprojects/libadwaita/subprojects/gtk.wrap
libadwaita| WARNING: Subproject gtk's revision may be out of date; its wrap file has changed since it was first configured
Executing subproject libadwaita:gtk
subprojects/gtk/meson.build:1:0: ERROR: Value "<mesonbuild.coredata.UserFeatureOption object at 0x7fc59b9daf90>" (of type "string") for combo option "Build introspection data (requires gobject-introspection)" is not one of the choices. Possible choices are (as string): "enabled", "disabled", "auto".
A full log can be found at /home/feaneron/Documentos/Projetos/xdg-desktop-portal-gnome/_build2/meson-logs/meson-log.txt
Traceback (most recent call last):
File "/usr/bin/meson", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 294, in main
return run(sys.argv[1:], launcher)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 285, in run
return CommandLineParser().run(args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 196, in run
return errorhandler(e, command)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 40, in errorhandler
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/mesonmain.py", line 194, in run
return options.run_func(options)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 358, in run
app.generate()
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 183, in generate
return self._generate(env, capture, vslite_ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/msetup.py", line 228, in _generate
intr.run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 3002, in run
super().run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 164, in run
self.evaluate_codeblock(self.ast, start=1)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 2414, in func_subdir
self.evaluate_codeblock(codeblock)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 198, in evaluate_statement
self.assignment(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 635, in assignment
value = self.evaluate_statement(node.value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Previous line repeated 4 more times]
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 109, in wrapped
ret = f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 127, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 1779, in func_dependency
d = df.lookup(kwargs)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/dependencyfallbacks.py", line 355, in lookup
dep = func(kwargs, func_args, func_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/dependencyfallbacks.py", line 130, in _do_subproject
self.interpreter.do_subproject(subp_name, 'meson', func_kwargs)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 960, in do_subproject
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 944, in do_subproject
return self._do_subproject_meson(subp_name, subdir, default_options, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 987, in _do_subproject_meson
subi.run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 3002, in run
super().run()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 164, in run
self.evaluate_codeblock(self.ast, start=1)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 2414, in func_subdir
self.evaluate_codeblock(codeblock)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 198, in evaluate_statement
self.assignment(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 635, in assignment
value = self.evaluate_statement(node.value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 826, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Previous line repeated 4 more times]
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 109, in wrapped
ret = f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 127, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 1779, in func_dependency
d = df.lookup(kwargs)
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/dependencyfallbacks.py", line 355, in lookup
dep = func(kwargs, func_args, func_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/dependencyfallbacks.py", line 130, in _do_subproject
self.interpreter.do_subproject(subp_name, 'meson', func_kwargs)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 960, in do_subproject
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 944, in do_subproject
return self._do_subproject_meson(subp_name, subdir, default_options, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 971, in _do_subproject_meson
subi = Interpreter(new_build, self.backend, subp_name, subdir, self.subproject_dir,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 331, in __init__
self.parse_project()
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 134, in parse_project
self.evaluate_codeblock(self.ast, end=1)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 190, in evaluate_codeblock
raise e
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 182, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 196, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 521, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 277, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreterbase/decorators.py", line 596, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/interpreter/interpreter.py", line 1233, in func_project
self.coredata.set_default_options(default_options, self.subproject, self.environment)
File "/usr/lib/python3.11/site-packages/mesonbuild/coredata.py", line 913, in set_default_options
self.set_options(options, subproject=subproject, first_invocation=env.first_invocation)
File "/usr/lib/python3.11/site-packages/mesonbuild/coredata.py", line 864, in set_options
dirty |= self.set_option(k, v, first_invocation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/coredata.py", line 718, in set_option
changed = opt.set_value(value)
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/coredata.py", line 128, in set_value
self.value = self.validate_value(newvalue)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/mesonbuild/coredata.py", line 244, in validate_value
raise MesonException('Value "{}" (of type "{}") for combo option "{}" is not one of the choices.'
mesonbuild.utils.core.MesonException: Value "<mesonbuild.coredata.UserFeatureOption object at 0x7fc59b9daf90>" (of type "string") for combo option "Build introspection data (requires gobject-introspection)" is not one of the choices. Possible choices are (as string): "enabled", "disabled", "auto".
It's really weird, I have no idea how you end up with a UserFeatureOption object there, it is supposed to be a string value 'enabled', etc. It's pretty straightforward to fix this specific error, but I would like to understand the root cause...
One thing is you clearly have local changes, neither xdg-desktop-portal-gnome nor libadwaita upstream have gtk.wrap. If I add a wrap myself it works just fine...
One thing is you clearly have local changes, neither xdg-desktop-portal-gnome nor libadwaita upstream have gtk.wrap.
I mean, xdg-desktop-portal-gnome main branch has libadwaita.wrap pointing to 1.2.0 which does not have gtk.wrap. I guess you pulled manually libadwaita main?
Yes, sorry, that was me updating the libadwaita.wrap
file to 1.4.0
. The context is this commit.
ah! with libadwaita 1.4.0 I can reproduce, but not with libadwaita main... that's progress :D
\o/
Whaaat, 'introspection=@0@'.format(introspection_feature)
somehow does not make a string... I can even reproduce that in a very simple test case.
Got it! it's already fixed in Meson master with https://github.com/mesonbuild/meson/pull/11834. What's super confusing here in the error you see is <mesonbuild.coredata.UserFeatureOption object at 0x7fc59b9daf90>
is actually the string value it gets, because format() does str(arg)
where arg
is a UserFeatureOption object and python converts to a string representation...
Not sure it's still worth having a fix in 1.2.3, but made one just in case: https://github.com/mesonbuild/meson/pull/12334.
Describe the bug
The xdg-desktop-portal-gnome project has a Meson wrap for libadwaita. libadwaita has a Meson wrap for gtk4.
GTK4 has the following Meson option:
libadwaita has the following Meson option:
Finally, xdg-desktop-portal-gnome declares dependency on libadwaita with the following declaration:
When the Meson wrap file is used to build both libadwaita and GTK4, this results in the following error:
To Reproduce
meson setup . _build --force-fallback-for=libadwaita,gtk
Expected behavior
Meson propagates the
introspection=disabled
param from libadwaita to GTK4, and the build succeeds.system parameters