<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 7/27/21 10:52 AM, ytao wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:61fc5f83-49dd-5c31-d9db-5e4d986ab2c6@windriver.com">
      
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 7/27/21 7:05 AM, Short, Charles
        wrote:<br>
      </div>
      <blockquote type="cite" cite="mid:BN7PR11MB28652542D4ED185A2E337E7BE5E89@BN7PR11MB2865.namprd11.prod.outlook.com">
        
        <style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> Hi,</div>
      </blockquote>
      <p>      First of all, I'm appreciated for your input.<font size="2"><span style="font-size:11pt;"></span></font></p>
      <blockquote type="cite" cite="mid:BN7PR11MB28652542D4ED185A2E337E7BE5E89@BN7PR11MB2865.namprd11.prod.outlook.com">
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> I had a look through
          the document and it looks okay. I just have a couple of
          comments/questions about the folder content:</div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);">
          <div>
            <ul>
              <li><span>**debver** - This is the package version of the
                  debian package? This is generated from the
                  debian/changelog when the package is built. I guess
                  the problem is that you want to differentiate from a
                  starlingx package and native package? My suggestion
                  would be what the Ubuntu developers do. For example,
                  if we have patches to apply for systemd, the debian
                  version would be 247.3-3, while the StarlingX package
                  would be 247.3-3stx0. Then a user or developer can
                  quickly see that they are working with a native debian
                  package or a starlingx modified package.</span></li>
            </ul>
          </div>
        </div>
      </blockquote>
      <p>       For a Debian native package, the *debver* is the debian
        version. We use it to download the src via "apt-source
        packagname=debver", for a starlingx package, it is up to the
        developer. I observed in CentOS version, they added a patch to
        change the package version, for example
integ/base/lighttpd/centos/meta_patches/Update-package-versioning-for-TIS-format.patch,
        which appends a 'tis' to package version, that requests
        developer to update the version manually. After transiting to
        debian, OBS can achieve it automatically. It can append 'tis' or
        'stx' to a package, so don't need developers to update it
        manually.<br>
      </p>
    </blockquote>
    <p><br>
    </p>
    <p>Recently, we found an issue related to "--append-to-version"
      option of sbuild, via which we append the ".stx" to a built
      package version, so that we don't need to involve a developer to
      modify revision manually. A upstream commit
<a class="moz-txt-link-freetext" href="https://salsa.debian.org/debian/sbuild/commit/9741ec6eb018d500a93e607f998dda8af52c9ce0">https://salsa.debian.org/debian/sbuild/commit/9741ec6eb018d500a93e607f998dda8af52c9ce0</a>
      forces the "--append-to-version"implies "--no-arch-all", which
      causes the packages with --arch-all are skipped by sbuild, for
      example, most of the python modules, so we have to give up the
      "--append-to-version" option.</p>
    <p><br>
    </p>
    <p>After reviewing the function "srpm_source_build_data()" in<code class="code-inner"></code>
<a class="moz-txt-link-freetext" href="https://opendev.org/starlingx/root/src/branch/master/build-tools/srpm-utils">https://opendev.org/starlingx/root/src/branch/master/build-tools/srpm-utils</a>
      in depth, we decide to inherit the
      PKG_GITREVCOUNT/SRC_GITREVCOUNT/<br>
    </p>
    <p>PKG_BASE_SRCREV/SRC_BASE_SRCREV 4 macros from CentOS version to
      increase the revision automatically. Difference with CentOS
      version is using a yaml file instead of build_srpm.data.  And we
      define a new environment variable $STX_DIST (default value is
      ".stx"), which is appended to built package version.</p>
    <p><br>
    </p>
    <p>A new yaml file is involved, why not to merge other files into
      the yaml file? Hence, we merge the dl_path/src_path/debver/debname
      into meta_data.yaml, a sample of the meta_data_yaml</p>
    <p><br>
    </p>
    <p>$cat integ/base/libfdt/debian/meta_data.yaml<br>
    </p>
    <p>==================<br>
    </p>
    <p>debver: 1.4.4-1<br>
      debname: libfdt<br>
      dl_path:<br>
        name: dtc-1.4.4.tar.gz<br>
        url:
      <a class="moz-txt-link-freetext" href="https://www.kernel.org/pub/software/utils/dtc/dtc-1.4.4.tar.gz">https://www.kernel.org/pub/software/utils/dtc/dtc-1.4.4.tar.gz</a><br>
        md5sum: e558cd0e244f122bcb4ebaca166aea4e<br>
      revision:<br>
        dist: $STX_DIST<br>
        PKG_GITREVCOUNT:</p>
    <p>==================</p>
    <p><br>
    </p>
    <p>More details please see the stx_deb_folder_layout.rst file. <br>
    </p>
    <p><br>
    </p>
    <p>Thanks,</p>
    <p>ytao<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite" cite="mid:61fc5f83-49dd-5c31-d9db-5e4d986ab2c6@windriver.com">
      <p> </p>
      <p><br>
      </p>
      <blockquote type="cite" cite="mid:BN7PR11MB28652542D4ED185A2E337E7BE5E89@BN7PR11MB2865.namprd11.prod.outlook.com">
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);">
          <div>
            <ul>
              <li><span>**deb_patches** - As a developer, if the package
                  has its debian/patches I would rather use the
                  debian/patches directory. If the directory doesnt
                  exist I am more likely to create a debian/patches
                  directory and then send a patch to debian to fix a
                  problem. <br>
                </span></li>
            </ul>
          </div>
        </div>
      </blockquote>
      <p>       Exactly, we should send a fix to debian community and
        then uprev the package to get the fix, but we also need to
        consider local changes. The *patches" folder contains the local
        change for source codes, that will be copied to debian/patches
        (or create it if doesn't exist), and update the
        debian/patches/series. The *deb_patches* contains the patches to
        change debian folder, for example, we want to customize the
        installation of a package, we need to update override_dh_install
        stage in debian/rules. The patches will be applied to
        package/debian folder directly.</p>
      <p><br>
      </p>
      <p>       The *deb_patches* is similar with centos/meta_patches</p>
      <p>       The *patches* is similar with centos/patches<br>
      </p>
      <blockquote type="cite" cite="mid:BN7PR11MB28652542D4ED185A2E337E7BE5E89@BN7PR11MB2865.namprd11.prod.outlook.com">
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);">
          <div>
            <ul>
              <li><span> </span><br>
              </li>
              <li><span>**dl_path** - Debian already does this for you
                  already, the debian/watch file keeps track of where to
                  download a tarball, or a zip file, or a python wheel
                  for you. You can use uscan(1), which is a part of
                  devscripts package. Debian/Ubuntu developers have been
                  doing this for years. (<a href="https://wiki.debian.org/debian/watch" id="LPlnk" moz-do-not-send="true">https://wiki.debian.org/debian/watch</a>)</span></li>
            </ul>
          </div>
        </div>
      </blockquote>
      <p><br>
      </p>
      <p>         Thanks you for pointing me the debian/watch. I will
        take some time to learn about debian/watch and go back soon. It
        looks a debian file for monitoring the upstream version change.
        I am not sure if it is suitable for a no debian package. In our
        internal discussion, Davlet told me a special case, that the url
        of a tar ball likes this <span><a href="https://api.github.com/repos/ceph/jerasure/tarball/96c76b89d661c163f65a014b8042c9354ccf7f31" id="LPlnk272472" moz-do-not-send="true">https://api.github.com/repos/ceph/jerasure/tarball/96c76b89d661c163f65a014b8042c9354ccf7f31</a><br>
        </span></p>
      <p><br>
      </p>
      <p>          As Davlet's suggestion, the *dl_path* refers to <span><a href="https://opendev.org/starlingx/integ/src/branch/master/centos_tarball-dl.lst" title="https://opendev.org/starlingx/integ/src/branch/master/centos_tarball-dl.lst" moz-do-not-send="true">example file</a> and the <a href="https://opendev.org/starlingx/tools/src/branch/master/centos-mirror-tools/dl_tarball.sh#L215" title="https://opendev.org/starlingx/tools/src/branch/master/centos-mirror-tools/dl_tarball.sh#L215" moz-do-not-send="true"> script that parses it</a>. I will do
          assessment for debian/watch.</span></p>
      <p><span><br>
        </span></p>
      <p><span>Thanks,<br>
        </span></p>
      <p><span>ytao<br>
        </span></p>
      <p><br>
      </p>
      <blockquote type="cite" cite="mid:BN7PR11MB28652542D4ED185A2E337E7BE5E89@BN7PR11MB2865.namprd11.prod.outlook.com">
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);">
          <div>
            <div>If you have any questions please let me know.</div>
            <div><br>
            </div>
            <div>Regards</div>
            <div>chuck<br>
            </div>
            <ul>
              <div class="_Entity _EType_OWALinkPreview
                _EId_OWALinkPreview _EReadonly_1">
                <div id="LPBorder_GTaHR0cHM6Ly93aWtpLmRlYmlhbi5vcmcvZGViaWFuL3dhdGNo" class="LPBorder286411" style="width: 100%; margin-top:
                  16px; margin-bottom: 16px; position: relative;
                  max-width: 800px; min-width: 424px;">
                  <table id="LPContainer286411" role="presentation" style="padding: 12px 36px 12px 12px; width: 100%;
                    border-width: 1px; border-style: solid;
                    border-color: rgb(200, 200, 200); border-radius:
                    2px;">
                    <tbody>
                      <tr style="border-spacing: 0px;" valign="top">
                        <td style="width: 100%;">
                          <div id="LPTitle286411" style="font-size:
                            21px; font-weight: 300; margin-right: 8px;
                            font-family: "wf_segoe-ui_light",
                            "Segoe UI Light", "Segoe WP
                            Light", "Segoe UI",
                            "Segoe WP", Tahoma, Arial,
                            sans-serif; margin-bottom: 12px;"> <a target="_blank" id="LPUrlAnchor286411" href="https://wiki.debian.org/debian/watch" style="text-decoration: none;
                              color:var(--themePrimary);" moz-do-not-send="true">debian/watch -
                              Debian Wiki</a></div>
                          <div id="LPDescription286411" style="font-size: 14px; max-height: 100px;
                            color: rgb(102, 102, 102); font-family:
                            "wf_segoe-ui_normal", "Segoe
                            UI", "Segoe WP", Tahoma,
                            Arial, sans-serif; margin-bottom: 12px;
                            margin-right: 8px; overflow: hidden;">
                            debian/watch. The file named watch in the
                            debian directory is used to check for newer
                            versions of upstream software is available
                            and to download it if necessary. The
                            download itself will be performed with the
                            uscan program from the devscripts package.
                            It takes the path to the debian directory
                            that uses the watch file as an argument or
                            searches the directories underneath the
                            current working ...</div>
                          <div id="LPMetadata286411" style="font-size:
                            14px; font-weight: 400; color: rgb(166, 166,
                            166); font-family:
                            "wf_segoe-ui_normal", "Segoe
                            UI", "Segoe WP", Tahoma,
                            Arial, sans-serif;"> wiki.debian.org</div>
                        </td>
                      </tr>
                    </tbody>
                  </table>
                </div>
              </div>
              <br>
            </ul>
          </div>
          <div><br>
          </div>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
          font-size: 12pt; color: rgb(0, 0, 0);"> <br>
        </div>
        <hr style="display:inline-block;width:98%" tabindex="-1">
        <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> ytao
            <a class="moz-txt-link-rfc2396E" href="mailto:yue.tao@windriver.com" moz-do-not-send="true"><yue.tao@windriver.com></a><br>
            <b>Sent:</b> July 26, 2021 3:33 AM<br>
            <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:starlingx-discuss@lists.starlingx.io" moz-do-not-send="true">starlingx-discuss@lists.starlingx.io</a>
            <a class="moz-txt-link-rfc2396E" href="mailto:starlingx-discuss@lists.starlingx.io" moz-do-not-send="true"><starlingx-discuss@lists.starlingx.io></a>;
            Asselstine, Mark <a class="moz-txt-link-rfc2396E" href="mailto:Mark.Asselstine@windriver.com" moz-do-not-send="true"><Mark.Asselstine@windriver.com></a><br>
            <b>Subject:</b> [Starlingx-discuss] [Debian Build]: Layout
            of the debian folder</font>
          <div> </div>
        </div>
        <div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
              <div class="PlainText">Hello Everyone:<br>
                <br>
                You may have known Wind River team is working on the
                transition to <br>
                Debian OS, more details of the project can be found at <br>
                <a href="https://docs.starlingx.io/specs/specs/stx-6.0/" moz-do-not-send="true">https://docs.starlingx.io/specs/specs/stx-6.0/</a>.
                My purpose is launching <br>
                a discussion about the userspace packages transition to
                Debian. The spec <br>
                can be found at <br>
                <a href="https://docs.starlingx.io/specs/specs/stx-6.0/approved/starlingx_2008704_debian_transition.html" moz-do-not-send="true">https://docs.starlingx.io/specs/specs/stx-6.0/approved/starlingx_2008704_debian_transition.html</a><br>
                <br>
                In order to inherit the existing userspace construction
                as much as <br>
                possible, our proposal is creating a 'debian' folder in
                same directory <br>
                with 'centos' folder for each package. For example, the
                dhcp package in <br>
                integ repo, it's centos folder is at:<br>
                <br>
                <a href="https://opendev.org/starlingx/integ/src/branch/master/base/dhcp/centos" moz-do-not-send="true">https://opendev.org/starlingx/integ/src/branch/master/base/dhcp/centos</a><br>
                <br>
                We will create a debian folder in same location<br>
                <br>
                <a href="https://opendev.org/starlingx/integ/src/branch/master/base/dhcp/debian" moz-do-not-send="true">https://opendev.org/starlingx/integ/src/branch/master/base/dhcp/debian</a>.<br>
                <br>
                All materials in this folder control building dhcp under
                Debian host. <br>
                The "stx_deb_folder_layout.rst" is the layout of debian
                folder. I also <br>
                attach a couple of samples to demonstrate how to fill
                the debian folder <br>
                for a debian package and a 3rd package.<br>
                <br>
                This layout is not the final version, I'm appreciated
                for any suggestion <br>
                from you.<br>
                <br>
                <br>
                Thanks,<br>
                <br>
                ytao<br>
                <br>
              </div>
            </span></font></div>
      </blockquote>
    </blockquote>
  </body>
</html>