<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p><br>
</p>
<div class="moz-cite-prefix">On 9/19/2021 1:48 PM, open infra wrote:<br>
</div>
<blockquote type="cite" cite="mid:CA+NeQFmTOxOU9XTcRAteHpgaXJAxZpe3Uiq3WKen6p2zYprAhg@mail.gmail.com">
<div dir="ltr">
<div>Hi Xiao,</div>
<div><br>
</div>
<div>I have checked the possibilities with Debian project.<br>
</div>
<div>Here is the response from Debian dev to this issue. [1]</div>
<div><br>
</div>
</div>
</blockquote>
<p>Great thanks for your kindly help!</p>
<p>These resolutions are too heavy and complex for us. Developers
have to find method shrink the build depend package list to break
the loop.<br>
</p>
<p>On my understanding, suppose source package A build depend on
binary b, source package B build depend on binary package a. While
both binary package a and b are released by Debian repository.
Here we just add some packages into both A and B. I suppose we
should</p>
<p>1) Build patched A based on original b and get a a-v1;</p>
<p>2) Use a-v1 build patched B get b-v1;</p>
<p>3) Use b-v1 build patched A again get a-v2;</p>
<p>4) Use a-v2 build patched B again get b-v2;<br>
</p>
<p>Then we just abandon v1 packages and use the v2 ones.</p>
<p>While the above is the easiest loop and seems not too hard to
make it, but for some complex loop like I described in the first
mail, it is really hard to make it.</p>
<p>And, Of course if we have other packages have no original binary
packages can be used, we have to break the loop dependency
manually as bootstrap does. That will be painful. :-(<br>
</p>
<p>Currently, we have no whole package list yet, thus we have no
idea if we really have loop dependency in the future.<br>
</p>
<p>So I wonder if our original StarlingX(based on CentOS) do have
such loop dependency issue? And if it has, what they are how they
resolved it? <br>
</p>
<p><br>
</p>
<p>Thanks a lot!</p>
<p>Xiao<br>
</p>
<blockquote type="cite" cite="mid:CA+NeQFmTOxOU9XTcRAteHpgaXJAxZpe3Uiq3WKen6p2zYprAhg@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>[1] <a href="https://urldefense.com/v3/__https://lists.debian.org/debian-devel/2021/09/msg00267.html__;!!AjveYdw8EvQ!KaJIz1wDBOtemtxYBvDyNBy5e-CyetG_0MowjUmBQdDE1XaPDGiCqnMVHsnfNdnQwyB9$" moz-do-not-send="true">https://lists.debian.org/debian-devel/2021/09/msg00267.html</a></div>
<div><br>
</div>
<div>Regards,</div>
<div>Danishka<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, Sep 18, 2021 at 2:35
PM open infra <<a href="mailto:openinfradn@gmail.com" moz-do-not-send="true" class="moz-txt-link-freetext">openinfradn@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi Xiao,
<div><br>
</div>
<div>May I know the package names? and arch of them?</div>
<div>Btw, there is a way to analyse circular dependent
packages. [1]</div>
<div>Debian wiki has leff info about circular build but [2]
has something.<br>
<div><br>
</div>
<div>
<div>In case of installation of fedora/centos/rhel, rpm
-Uvh a.rpm b.rpm will solve the problem.</div>
<div><br>
</div>
<div>[1] <a href="https://urldefense.com/v3/__https://wiki.debian.org/CircularBuildDependencies__;!!AjveYdw8EvQ!KaJIz1wDBOtemtxYBvDyNBy5e-CyetG_0MowjUmBQdDE1XaPDGiCqnMVHsnfNXNTqspa$" target="_blank" moz-do-not-send="true">https://wiki.debian.org/CircularBuildDependencies</a><br>
</div>
<div>[2] <a href="https://urldefense.com/v3/__https://www.debian.org/doc/debian-policy/ch-relationships.html*binary-dependencies-depends-recommends-suggests-enhances-pre-depends__;Iw!!AjveYdw8EvQ!KaJIz1wDBOtemtxYBvDyNBy5e-CyetG_0MowjUmBQdDE1XaPDGiCqnMVHsnfNWiz_Q1Y$" target="_blank" moz-do-not-send="true">https://www.debian.org/doc/debian-policy/ch-relationships.html#binary-dependencies-depends-recommends-suggests-enhances-pre-depends</a><br>
</div>
</div>
</div>
<div><br>
</div>
<div>Regards,</div>
<div>Danishka</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, Sep 18, 2021 at
12:24 PM Zhang, Xiao <<a href="mailto:xiao.zhang@windriver.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">xiao.zhang@windriver.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"> Hi,<br>
<br>
<br>
We are trying to construct basic environment for porting
starlingX on <br>
Debian. While when I dealing with the build order of user
space <br>
packages, the loop dependent problem blocked me.<br>
<br>
The easiest example: source package A build depend on B
while B is also <br>
build depend on A. We can just build A, B, A, B and only
use the later <br>
result.<br>
<br>
A fairly complex example: A depends on B and C, B depends
on D, C <br>
depends on F, D depends on A and F. In this case there
will be three <br>
cycles as below:<br>
<br>
A->B->D->A, A->B->D->F->A,
A->C->F->A . Even more, if in some cases we <br>
needn't B or D, then we have only one cycle: ACFA<br>
<br>
I tried to find a method to deal with it but failed.<br>
<br>
So I wonder how did we deal with such loop dependent
before, on CentOS. <br>
Any advises about it?<br>
<br>
<br>
Thanks a lot<br>
<br>
Xiao<br>
<br>
<br>
_______________________________________________<br>
Starlingx-discuss mailing list<br>
<a href="mailto:Starlingx-discuss@lists.starlingx.io" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Starlingx-discuss@lists.starlingx.io</a><br>
<a href="https://urldefense.com/v3/__http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss__;!!AjveYdw8EvQ!KaJIz1wDBOtemtxYBvDyNBy5e-CyetG_0MowjUmBQdDE1XaPDGiCqnMVHsnfNRZQicM9$" rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss</a><br>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</body>
</html>