<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>