GNOME Bugzilla – Bug 792839
cerbero build failure due to malformed recipes_remotes in cerbero.cbc
Last modified: 2018-01-25 17:12:22 UTC
Created attachment 367329 [details] Cerbero Build Output Using a fresh clone of cerbero master and running this command: ./cerbero-uninstalled -c config/cross-ios-universal.cbc package gstreamer-1.0 I am having build failures on the fetch of gat-plugins-base-1.0. I have attached the full output of running the command. I am running this on with the latest macOS High Sierra and the latest Xcdoe installed.
Just to make sure: - This is with a completely unmodified cerbero checkout? - Do you have a ~/.cerbero/cerbero.cbc (it's fine if not, but if you do it might help to know what's in there or if it also happens if you move it out of the way)
It was completely unmodified. I do have a ~/.cerbero/cerbero.cbc which contains this: recipes_remotes = { "gst-plugins-base-1.0" : "https://github.com/bscothern/gst-plugins-base.git", } When I was trying to build I was still getting git://anongit.freedesktop.org/gstreamer/gst-plugins-base as the remote address. I have since then branched off of master and changed gst-plugins-base-1.0.recipe to have my repo as the origin and changed the line where the exception was to this: for remote, url in self.config.recipes_remotes.iteritems(): And it has been working with that modification. I can pull just that change as a patch if you want. I imagine it will break other build components though...
> I do have a ~/.cerbero/cerbero.cbc which contains this: > recipes_remotes = { > "gst-plugins-base-1.0" : > "https://github.com/bscothern/gst-plugins-base.git", > } Right, I think that's why this happens. From the code it looks like it's expecting something like: recipes_remotes = { "gst-plugins-base-1.0" : { 'bscothern' : 'https://github.com/bscothern/gst-plugins-base.git' } }
That seems to have fixed the issue! So I it seems to have just been me not being familiar with the build system yet. I imagine that this bug can be closed.
Out of curiosity, where did you find the information that you could specify other remotes in cerbero.cbc? Maybe we need to fix some documentation somewhere? Thanks for confirming this fixed it. I'd like to keep it open for now. I'll either try to add a better error message or at least document the proper format somewhere.
I was actually directed to creating my cerbero.cbc by at the GStreamer Conference in October. But because of other tasks at work I haven't been able to start contributing back to GStreamer until now. And currently a lot of the stuff is still just magic and I hope it works. At the conference I was instructed to create the file like this: $ cat ~/.cerbero/cerbero.cbc recipes_commits = { "gst-plugins-base-1.0" : "test", "gst-plugins-good-1.0" : "test", "gst-plugins-bad-1.0" : "test", } recipes_remotes = { "gst-plugins-base-1.0" : "...", "gst-plugins-good-1.0" : "...", "gst-plugins-bad-1.0" : "...", } Other than that I have only really used the README, cerbero-uninstalled's help, and https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-cerbero.html#page-description which don't discuss the recipes_commits or recipes_remotes in the cbc. I imagine a document with all of the properties that can be the cerbero.cbc and an example of how to format them would be helpful. I don't know where I would start with that other than maybe show-config and see what it complains about as I modify my cerbero.cbc.
Looks like someone gave you wrong advice. I think this someone might have been me. Sorry! :)
commit 43968f75bb7752c29e7177187ac9b8eb17661ec7 (HEAD -> master) Author: Tim-Philipp Müller <tim@centricular.com> Date: Wed Jan 24 22:31:59 2018 +0000 Raise error if recipes_remotes value for recipe is malformed Expect a dict there. Better raise an explicit error than to fail with "AttributeError: 'str' object has no attribute 'iteritems'" if the value in ~/.cerbero/cerbero.cbc is malformed. https://bugzilla.gnome.org/show_bug.cgi?id=792839
Thanks for the help Tim. This seems like a good fix!