On Tue, 11 Feb 2020, 12:19 Nicolas Dechesne, nicolas.dechesne@linaro.org wrote:
hey,
On Tue, Feb 11, 2020 at 12:59 PM Ryan Harkin ryan.harkin@linaro.org wrote:
Hi Nico,
On Tue, 11 Feb 2020 at 08:34, Nicolas Dechesne <
nicolas.dechesne@linaro.org> wrote:
hi,
we are hitting some errors with repo init since last night.
Yes, I was investigating this failure too. Thanks very much for working
it out.
After looking into it , I came up with the following explanation and fix.. If I am correct, it will impact all our OE RPB build setup..
It definitely impacts on my WaRP7 builds, which are failing since last
night too.
Can you please review that carefully?
The PR is on github: https://github.com/96boards/oe-rpb-manifest/pull/121
I added myself as a reviewer and approved it.
thanks. Looks like Fathi merged it.
Good. That's a quick turnaround.
I will backport to other branches
and push the same fix. You are probably using your own branch anyways,
Yes, I have a clone with some small patches on top.
so you should cherry-pick for your project(s) !
Same difference, but I rebase my branch when anything new is committed.
You've highlighted problems below, but in the end, your fix is better
than no fix. And anything else we do could be on top of this fix.
I put a copy of the commit message below to bring it to your attention!
cheers nico
== All along we have been using a relative symlink for setup-environment which points outside of the project path. While we've enjoyed this hack for several years, a recent change was in repo, and repo init now fails with:
error.ManifestInvalidPathError: <linkfile> invalid "src": ../../.repo/manifests/setup-environment: bad component: .repo
The change in repo is this one:
https://gerrit.googlesource.com/git-repo/+/07392ed32662006c029299bc06617310c...
Yes, I also worked out this was the culprit.
The repo documentation states: The symlink is created at “dest” (relative to the top of the tree) and points to the path specified by “src” which is a path in the project.
As such, repo clearly expects that 'src' is in the project path, which is not the cause when using ../../.repo/ path.
This patch changes our folder structure in such a way that:
- the manifest git is checked out as ./conf/ folder in the top level
directory
- setup-environment link is created by repo, as a link to
conf/setup-environment-internal
The main drawback is that it feels non standard to duplicate the whole manifest project again (since it's already checked out in .repo) however using .repo content also meant we were making assumptions on
implementation details of repo itself.
I don't see an obvious way around this. We are using the repo contents,
but we're not allowed to use it directly.
So unless we re-work how we do setup-environment, I don't see a way to
avoid this. The only nagging thought I have is that setup-environment and default.xml are two distinct things, so we could split it into two repos. But as the repo is so small, I don't see the added value of doing this. It seems to be more overhead. That said, when I clone the manifest repo for my own projects, all I'm doing is editing default.xml, and nothing else. So it might make sense anyway, so I can get changes to things like setup-env without have to rebase my manifest repo. But again, it's such a small repo, it's not really a problem to have it like this. And probably makes life easier in the long term.
Cheers, Ryan.
Signed-off-by: Nicolas Dechesne nicolas.dechesne@linaro.org _______________________________________________ OpenEmbedded mailing list OpenEmbedded@lists.linaro.org https://lists.linaro.org/mailman/listinfo/openembedded