-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
dependencies:cargoIssues related to using cargo subprojectsIssues related to using cargo subprojectsexceptionMajor bug that raises a python-level exceptionMajor bug that raises a python-level exceptionlanguage:rust
Description
Describe the bug
when cargo packages put in subprojects directory, some of them can't be setup
To Reproduce
repo: https://github.com/ognevny/my-code/tree/refactor-meson/subprojects. it contains multiple cargo packages. run meson setup -Dbuild_rust=true build to reproduce
Expected behavior
successful setup
system parameters
Is this a [cross build](https://mesonbuild.com/Cross-compilation.html) or just a plain native build: native build
what operating system: Archlinux
what Python version are you using: 3.12.3
what meson --version: 1.4.99
what ninja --version: 1.12.1
Actual behaivour
meson log
The Meson build system
Version: 1.4.99
Source dir: /home/ogn/upstream/my-code
Build dir: /home/ogn/upstream/my-code/build
Build type: native build
Project name: ognevny-my-code
Project version: 0.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Executing subproject ege1 method cargo
ege1| Generated Meson AST: /home/ogn/upstream/my-code/build/subprojects/ege1/meson.build
ege1| Project name: ege1
ege1| Project version: 0.1.0
ege1| Rust compiler for the host machine: rustc -C linker=cc (rustc 1.79.0)
ege1| Rust linker for the host machine: rustc -C linker=cc ld.bfd 2.42.0
ege1| Message: Enabled features: ['default']
ege1| Build targets in project: 0
ege1| Subproject ege1 finished.
Executing subproject first_word method cargo
first_word| Generated Meson AST: /home/ogn/upstream/my-code/build/subprojects/first_word/meson.build
first_word| Project name: first_word
first_word| Project version: 0.1.0
first_word| Rust compiler for the host machine: rustc -C linker=cc (rustc 1.79.0)
first_word| Rust linker for the host machine: rustc -C linker=cc ld.bfd 2.42.0
first_word| Message: Enabled features: ['default']
first_word| Build targets in project: 0
first_word| Subproject first_word finished.
Executing subproject integral method cargo
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/mesonbuild/mesonmain.py", line 188, in run
return options.run_func(options)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/msetup.py", line 363, in run
app.generate()
File "/usr/lib/python3.12/site-packages/mesonbuild/msetup.py", line 187, in generate
return self._generate(env, capture, vslite_ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/msetup.py", line 226, in _generate
intr.run()
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreter/interpreter.py", line 3027, in run
super().run()
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 169, in run
self.evaluate_codeblock(self.ast, start=1)
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 195, in evaluate_codeblock
raise e
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 187, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 219, in evaluate_statement
return self.evaluate_if(cur)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 309, in evaluate_if
self.evaluate_codeblock(i.block)
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 195, in evaluate_codeblock
raise e
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 187, in evaluate_codeblock
self.evaluate_statement(cur)
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 201, in evaluate_statement
return self.function_call(cur)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/interpreterbase.py", line 528, in function_call
res = func(node, func_args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/decorators.py", line 250, in wrapper
return f(*nargs, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreterbase/decorators.py", line 569, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreter/interpreter.py", line 867, in func_subproject
return self.do_subproject(args[0], kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreter/interpreter.py", line 948, in do_subproject
raise e
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreter/interpreter.py", line 936, in do_subproject
return methods_map[method](subp_name, subdir, default_options, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/interpreter/interpreter.py", line 1044, in _do_subproject_cargo
ast, options = cargo.interpret(subp_name, subdir, self.environment)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/cargo/interpreter.py", line 708, in interpret
manifests = _load_manifests(os.path.join(env.source_dir, subdir))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/cargo/interpreter.py", line 338, in _load_manifests
manifest_ = _convert_manifest(raw_manifest, subdir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/cargo/interpreter.py", line 313, in _convert_manifest
{k: Dependency.from_raw(k, v) for k, v in raw_manifest.get('dependencies', {}).items()},
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/mesonbuild/cargo/interpreter.py", line 190, in from_raw
return cls(name, **_fixup_raw_mappings(raw))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Dependency.__init__() missing 1 required positional argument: 'version'
meson.build:28:2: ERROR: Unhandled python exception
This is a Meson bug and should be reported!
Originally posted by @ognevny in #12945 (comment)
theoparis
Metadata
Metadata
Assignees
Labels
dependencies:cargoIssues related to using cargo subprojectsIssues related to using cargo subprojectsexceptionMajor bug that raises a python-level exceptionMajor bug that raises a python-level exceptionlanguage:rust