<div dir="ltr"><div dir="ltr">Hi, Mark:<div><br></div><div>I have done a quick test, seems the problem fixed with this patch, the steps are as follows:</div><div>```</div><div>bitbake aktualizr -c cleanall</div><div>bitbake aktualizr<br></div><div>```</div><div>build succeeded.</div><div><br></div><div>the best,</div><div>thank you</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Mark Hatle &lt;<a href="mailto:mark.hatle@windriver.com">mark.hatle@windriver.com</a>&gt; 於 2019年1月27日 週日 上午2:19寫道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 1/26/19 7:50 AM, Stefan Agner wrote:<br>
&gt; On 26.01.2019 14:35, Richard Purdie wrote:<br>
&gt;&gt; On Sat, 2019-01-26 at 13:07 +0100, Patrick Vacek wrote:<br>
&gt;&gt;&gt; On Sat, Jan 26, 2019 at 11:15 AM Stefan Agner &lt;<a href="mailto:stefan@agner.ch" target="_blank">stefan@agner.ch</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; So it seems to be that something in the recipe was expecting<br>
&gt;&gt;&gt;&gt; semi-broken<br>
&gt;&gt;&gt;&gt;&gt; behavior.. and its actually a recipe problem.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Agreed, in this case we need to fix the recipe.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Sorry, I must be missing something. What might be wrong with the<br>
&gt;&gt;&gt; recipe? Is there more that needs to be specified than a SRCREV and a<br>
&gt;&gt;&gt; branch? As far as I understand git, it keeps track of the submodules,<br>
&gt;&gt;&gt; so I don&#39;t know what other information there would be to provide. The<br>
&gt;&gt;&gt; reason this particular case is difficult is because there are<br>
&gt;&gt;&gt; recursive submodules. When we build aktualizr, we have to be careful<br>
&gt;&gt;&gt; to specify that. See<br>
&gt;&gt;&gt; <a href="https://github.com/advancedtelematic/aktualizr#building" rel="noreferrer" target="_blank">https://github.com/advancedtelematic/aktualizr#building</a>:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; git submodule update --init --recursive<br>
&gt;&gt;<br>
&gt;&gt; The problem is the checkout from the old version of the fetcher was<br>
&gt;&gt; broken, it incorrectly checked out that SRCREV. The recipe was written<br>
&gt;&gt; to build that broken checkout.<br>
&gt;&gt;<br>
&gt;&gt; We&#39;ve fixed the fetcher and Mark is saying that it now checks out the<br>
&gt;&gt; correct thing (as compared with a git checkout outside of the build<br>
&gt;&gt; system, independent of the fetcher).<br>
&gt;&gt;<br>
&gt;&gt; The recipe assumed the old broken code so now fails to build. The<br>
&gt;&gt; recipe therefore needs to change to adapt to the now correct source<br>
&gt;&gt; code.<br>
&gt; <br>
&gt; I was not able to reproduce Marks findings.<br>
&gt; <br>
&gt; In particular:<br>
&gt; <br>
&gt;&gt; For instance, the submodule partial/extern/isotp-c:<br>
&gt;&gt;<br>
&gt;&gt; In the current version is checked out on<br>
&gt;&gt; 4c5904bff3ed83ec471c8586b5faed62898d0224.  (Which matches the manual git behavior.)<br>
&gt;&gt;<br>
&gt;&gt; While the gitsm fetcher in the older system checkedout commit<br>
&gt;&gt; 614fe48fe55aeea98b49804b7e31ef2d304f62de.  Which is incorrect.<br>
&gt; <br>
&gt; That wasn&#39;t the case for me, the old code checked out 4c5904bf just<br>
&gt; fine.<br>
&gt; <br>
&gt; However, I think Ming Liu&#39;s recent findings point out the culprit.<br>
&gt; <br>
&gt; The submodule isotp-c requires a submodule on its own, and the new code<br>
&gt; seems not to unpack that.<br>
<br>
i see what you are saying, but for some reason the version of git on my machine<br>
(using the steps I mentioned in the original email) for some reason did not pull<br>
down the recursive git submodule, which would explain why my diff didn&#39;t find<br>
it.  (It&#39;s pretty clear to me that even within git itself, some submodule<br>
operations have been broken in various versions in the past.. my guess is that<br>
I&#39;m hitting one of those errant behaviors locally.)<br>
<br>
If I manually go to the isotp-c directory and run git init ; git submodule<br>
update it -then- downloads it.  (So apparently the --recursive argument isn&#39;t in<br>
some versions.  My system has 1.8.3.1 on it BTW.)<br>
<br>
Looking at this quickly, I suspect I know what the problem is:<br>
<br>
        if not ud.bareclone and self.process_submodules(ud, ud.destdir,<br>
unpack_submodules, d):<br>
<br>
if ud.bareclone is set, then python will optimize and not even run the<br>
process_submodules which is what does the unpack.  This is set for recursive<br>
submodule parsing.<br>
<br>
I&#39;m getting ready to board a plane in a few hours.  So it&#39;ll be a day or so<br>
before I can get back to this.  I think I have a fix, see:<br>
<br>
<a href="http://git.openembedded.org/bitbake-contrib/commit/?h=mgh/gitsm&amp;id=ce5bb0056e6c510855811a26afb95073daf90f2a" rel="noreferrer" target="_blank">http://git.openembedded.org/bitbake-contrib/commit/?h=mgh/gitsm&amp;id=ce5bb0056e6c510855811a26afb95073daf90f2a</a><br>
<br>
If you see this and can test it... I can formally send it for review if it&#39;s<br>
resolved the issues when I get to my destination.<br>
<br>
--Mark<br>
</blockquote></div>