<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">The only way to make this work is to
      place the kernel and out-of-tree kernel modules into a layer of
      their own.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><span style="font-size: 16px;">Scott</span></div>
    <div class="moz-cite-prefix"><span style="font-family: "Times
        New Roman"; font-size: 16px;"><br>
      </span></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 2020-02-25 7:39 p.m., Hu, Yong
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:AD74087AB4284741A84661E5C7516A45614E262E@SHSMSX104.ccr.corp.intel.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" id="owaParaStyle"></style>
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;">Hi Scott,
        <div>It's a fantastic sharing and thanks for comprehensive
          explanation!</div>
        <div><br>
        </div>
        <div>Inspired by the case here (with 2 versions of <span
            style="font-family: "Times New Roman"; font-size:
            16px;">python-oslo-concurrency for different layers), I
            would like to hear your ideas on a similar case (a tech
            challenge) which we met during CentOS 8 upgrade. </span><span
            style="font-family: "Times New Roman"; font-size:
            16px;">Simply we wanted to use new version gcc-8.2.1 for
            kernel 4.18, and then old version gcc-4.8.5 for user space
            packages. </span></div>
        <div><span style="font-family: "Times New Roman";
            font-size: 16px;">Is there a way to support this case above
            under the context of layered build design?</span></div>
        <div><span style="font-family: "Times New Roman";
            font-size: 16px;">We know currently kernel (and out of tree
            kernel modules) and a set user space packages belong to
            "disto" layer. </span></div>
        <div><span style="font-family: "Times New Roman";
            font-size: 16px;">But what if we create a new layer for
            kernel and kernel related modules?  Will this make 2
            different versions of GCC </span><span style="font-family:
            "Times New Roman"; font-size: 16px;">work </span><span
            style="font-family: "Times New Roman"; font-size:
            16px;">for 2 layers?</span></div>
        <div><br>
        </div>
        <div><font size="3" face="Times New Roman">regards,</font></div>
        <div><font size="3" face="Times New Roman">Yong</font></div>
        <div>
          <div style="font-family: Times New Roman; color: #000000;
            font-size: 16px">
            <hr tabindex="-1">
            <div id="divRpF622423" style="direction: ltr;"><font
                size="2" face="Tahoma" color="#000000"><b>From:</b>
                Scott Little [<a class="moz-txt-link-abbreviated" href="mailto:scott.little@windriver.com">scott.little@windriver.com</a>]<br>
                <b>Sent:</b> Wednesday, February 26, 2020 12:49 AM<br>
                <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:starlingx-discuss@lists.starlingx.io">starlingx-discuss@lists.starlingx.io</a><br>
                <b>Subject:</b> Re: [Starlingx-discuss] [Important]
                STX_build_pre_installer_layered - Build # 53 - Failure!<br>
              </font><br>
            </div>
            <div>
              <div class="moz-cite-prefix"><b>This was an interesting
                  failure</b></div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">An update to distributed
                cloud changed the minimum version of
                python-oslo-concurrency</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">  
/cgcs-root/stx/distributedcloud/distributedcloud/centos/distributedcloud.spec:BuildRequires:
                python-oslo-concurrency<font color="#cc0000"> >=
                  3.29.1</font><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">A corresponding change was
                attempted in ...</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">  
                stx-tools/centos-mirror-tools/config/centos/distro/rpms_centos.lst<br>
                      -python2-oslo-concurrency-3.27.0-1.el7.noarch.rpm<br>
                      +python2-oslo-concurrency-3.29.1-1.el7.noarch.rpm</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">but it was not made in ...</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">  
                stx-tools/centos-mirror-tools/config/centos/flock/rpms_centos.lst<br>
                      python2-oslo-concurrency-3.27.0-1.el7.noarch.rpm</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><b>The monolithic build was
                  ok, but not the flock layer build failed.   Why? 
                </b><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">Distributed cloud builds
                under the flock layer.  The flock layer build only uses
                flock layer lst file.   So it needs 3.29.1, but only
                3.27.0 is available.  Build fails.</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">The monolithic build merges
                the lst files of all layers.  We ended up with two
                copies of python2-oslo-concurrency,  3.27.0 and 3.29.1,
                and the highest version was used in the build.  So all
                would seem ok if the designer tested with a monolithic
                build rather than a flock layer build.</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">The monolithic build is going
                away.</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><b>Designers need to do layer
                  builds to test their changes!</b></div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">Other thoughts ...<br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><b>Does </b><b>python2-oslo-concurrency
                  need to be listed in two places?</b> 
                <br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">Yes.  <br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">There are distro layer
                components that BuildRequire python2-oslo-concurrency as
                well.  A distro layer build would look at
                stx-tools/centos-mirror-tools/config/centos/distro/rpms_centos.lst</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><b>What if I only upversion
                  the flock layer and not the distro layer?</b></div>
              <div class="moz-cite-prefix"><b><br>
                </b></div>
              <div class="moz-cite-prefix">While it would have passed
                build on all layers, I don't think it's a good idea. 
                The iso is built from the flock layer, and will use the
                newer version.  The distro layer packages would have run
                there tox tests versus an older version of the library
                than would be used at runtime.  An error that might have
                been caught by a unit test will now only be caught at
                runtime.</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">All lst files should agree on
                the version to use.</div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><b>What if the need to
                  upversion was being driven by a distro layer package? 
                  Would I still need to upversion the flock layer lst
                  file in addition to the distro layer lst?</b><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">Yes.  <br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">A package with a
                'BuildRequire' on a newer version will also usually have
                a 'Require' on the newer version as well.   Updating the
                distro layer lst will allow the distro layer build-pkgs
                to succeed.  However, build-iso runs under the flock
                layer, only uses the flock layer lst.  Omitting the
                flock layer lst update will fail on the 'Require' when
                build-iso is run.<br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix"><br>
              </div>
              <div class="moz-cite-prefix">On 2020-02-24 2:35 p.m., <a
                  class="moz-txt-link-abbreviated"
                  href="mailto:build.starlingx@gmail.com"
                  target="_blank" rel="noopener noreferrer"
                  moz-do-not-send="true">
                  build.starlingx@gmail.com</a> wrote:<br>
              </div>
              <blockquote type="cite">
                <pre class="moz-quote-pre">Project: STX_build_pre_installer_layered
Build #: 53
Status: Failure
Timestamp: 20200224T192300Z

Check logs at:
<a class="moz-txt-link-freetext" href="http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/flock/20200224T185245Z/logs" target="_blank" rel="noopener noreferrer" moz-do-not-send="true">http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/flock/20200224T185245Z/logs</a>
--------------------------------------------------------------------------------
Parameters

MY_WORKSPACE: /localdisk/loadbuild/jenkins/master-flock/20200224T185245Z
DOCKER_BUILD_ID: jenkins-master-flock-20200224T185245Z-builder
OS: centos
MY_REPO: /localdisk/designer/jenkins/master-flock/cgcs-root
PUBLISH_LOGS_URL: <a class="moz-txt-link-freetext" href="http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/flock/20200224T185245Z/logs" target="_blank" rel="noopener noreferrer" moz-do-not-send="true">http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/flock/20200224T185245Z/logs</a>
PUBLISH_LOGS_BASE: /export/mirror/starlingx/master/centos/flock/20200224T185245Z/logs
MASTER_JOB_NAME: STX_build_layer_flock_master_master
LAYER: flock
MY_REPO_ROOT: /localdisk/designer/jenkins/master-flock
BUILD_ISO: true</pre>
                <br>
                <fieldset class="mimeAttachmentHeader" target="_blank"
                  rel="noopener noreferrer">
                </fieldset>
                <pre class="moz-quote-pre">_______________________________________________
Starlingx-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Starlingx-discuss@lists.starlingx.io" target="_blank" rel="noopener noreferrer" moz-do-not-send="true">Starlingx-discuss@lists.starlingx.io</a>
<a class="moz-txt-link-freetext" href="http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss" target="_blank" rel="noopener noreferrer" moz-do-not-send="true">http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss</a>
</pre>
              </blockquote>
              <p><br>
              </p>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>