GNOME Bugzilla – Bug 784948
Building GStreamer using jhbuild fails due to "RuntimeError: generator didn't yield"
Last modified: 2018-01-19 18:33:46 UTC
Building GStreamer in a clean prefix and a clean source collection fails due to ``` *** Erstellung läuft gstreamer *** [42/181] ninja [0/1] Regenerating build files. The Meson build system Version: 0.41.1 Source dir: /mnt/data/sources/gstreamer Build dir: /home/richter/.cache/jhbuild/build/gstreamer Build type: native build Project name: gstreamer Native c compiler: ccache cc (gcc 6.3.0) Build machine cpu family: x86_64 Build machine cpu: x86_64 Traceback (most recent call last):
+ Trace 237651
app.generate()
intr.run()
super().run()
self.evaluate_codeblock(self.ast, start=1)
raise e
self.evaluate_statement(cur)
return self.evaluate_if(cur)
result = self.evaluate_statement(i.condition)
return self.method_call(cur)
return obj.method_call(method_name, self.flatten(args), kwargs)
return self.methods[method_name](args, kwargs)
result = self.compiler.has_argument(args[0], self.environment)
return self.has_multi_arguments([arg], env)
return self.compiles('int i;\n', env, extra_args=args)
with self.compile(code, args.to_native(), mode) as p:
raise RuntimeError("generator didn't yield") from None
FAILED: build.ninja /usr/bin/python3 /home/richter/prefix/bin/meson --internal regenerate /mnt/data/sources/gstreamer /home/richter/.cache/jhbuild/build/gstreamer --backend ninja ninja: error: rebuilding 'build.ninja': subcommand failed ``` experienced with 1.12.0-90-g5bd4603ed on Ubuntu 17.04
Can you please attach the meson debug log? You will find it here: /home/richter/.cache/jhbuild/build/gstreamer/meson-logs/meson-log.txt
Created attachment 355595 [details] the requested meson-log.txt
From what I can tell, that error can only happen if you don't have read-write permissions to /tmp or something like that, but Python can create the temporary directory, so it's quite confusing. It's definitely a meson bug that it's not outputting the actual exception that is happening. The error happens here: https://github.com/mesonbuild/meson/blob/0.41/mesonbuild/compilers.py#L723 Can you edit that file in your meson installation and change the "except ... pass" to "except ... raise" and tell us what the traceback is? That should give us more information.
> Can you edit that file in your meson installation and change the "except ... pass" to "except ... raise" and tell us what the traceback is? That should give us more information. I did that (see https://github.com/krichter722/meson/blob/exception_fix/mesonbuild/compilers/compilers.py#L734 for details) and did a `git clean -x -f -d && python3 setup.py build && sudo python3 setup.py install` in `meson`'s source root. Then `jhbuild build gstreamer` results in the same exception with the same stack and `meson-log.txt` doesn't contain additional information.
I don't think that your steps actually resulted in jhbuild using the changed meson. Can you try this inside the meson git repository with your changes? $ cd "test cases/common/140 get define" $ ../../../meson.py build This should use your changes and give a more useful error.
Sorry for the trouble you've have building GStreamer, and thanks for the bug report. I'm closing this bug since the problem seems to be in Meson (doesn't catch/show the actual error) and/or jhbuild, and no further information has been provided. Please feel free to re-open if you can provide more information, or file a bug against Meson instead. It might also have been fixed already, there have been a few Meson releases since then.