<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>12937</bug_id>
          
          <creation_ts>2018-09-27 09:08:01 +0000</creation_ts>
          <short_desc>Consistent naming scheme for deployed artifacts</short_desc>
          <delta_ts>2026-08-13 15:20:37 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>core</component>
          <version>2.7</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>6.99</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Jansa">Martin.Jansa</reporter>
          <assigned_to name="Unassigned">unassigned</assigned_to>
          <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>richard.purdie</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Yes (doc changes required)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81648</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2018-09-27 09:08:01 +0000</bug_when>
    <thetext>I&apos;ve started working on this in 2.6 and couple supporting changes were already merged, (e.g. https://patchwork.openembedded.org/series/9882/) but unfortunately I haven&apos;t finished the most intrusive one before 2.6 freeze.

The missing pieces as described in commit message of my WIP change:

bitbake.conf, kernel*.bbclass: include IMAGE_VERSION_SUFFIX only in the _LINK_NAME variables and change it to hard link
* move IMAGE_VERSION_SUFFIX from _NAME variables to _LINK_NAME
  that way e.g. kernel.do_deploy can be reused from sstate to
  provide &quot;version-less&quot; artifacts and then very fast
  do_deploy_links task just adds links with consistent suffixes
* create hard links instead of symlinks, so that whatever version
  the filename says is really there
* some IMAGE_FSTYPES might need the &quot;version-less&quot; IMAGE_NAME file
  to be removed first or they might either append or update the
  content of the image instead of creating new image file from
  scratch - I have seen this only with one proprietary format we
  generate with our own tool, so hopefully this isn&apos;t very common
* this is basically the mechanism are using in webOS with
  WEBOS_IMAGE_NAME_SUFFIX which is for official builds set from
  jenkins job and then all artifacts (images as well as corresponding
  kernel files) have the same version string, the implementation
  &quot;from outside&quot; is a bit tricky as shown in webOS OSE, the variable
  modifications:
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/conf/distro/include/webos.inc#L65
  and then various bbclasses to hook do_webos_deploy_fixup task creating
  the hardlinks for possible artifacts:
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/webos_deploy.bbclass
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/kernel.bbclass
  https://github.com/webosose/meta-webosose/blob/a35e81622aae1066591e44a132d01297ff478248/meta-webos/classes/image.bbclass
  so hopefully with all these changes in oe-core other project can
  achieve the same just by setting one variable IMAGE_VERSION_SUFFIX</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84677</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2019-08-15 15:04:29 +0000</bug_when>
    <thetext>Hi Martin,

Any update on what we should do with this?

Cheers,

Richard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84680</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2019-08-15 15:13:46 +0000</bug_when>
    <thetext>The implementation is here:
http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/artifacts
top 6 commits.

It seems to work fine for our internal builds, but I still haven&apos;t tested it properly in various other scenarios to send it to ML for review.

Also want to document more examples for people to better understand what will change and why this is useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84706</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2019-08-16 18:27:22 +0000</bug_when>
    <thetext>RFC with hopefully better description sent to oe-core ML:
http://lists.openembedded.org/pipermail/openembedded-core/2019-August/285822.html

This isn&apos;t the final version, just after sending it I&apos;ve noticed that the branch was missing one more fix, which is now in the jansa/artifacts branch, but I haven&apos;t sent v2 with it yet (waiting for some comments from others).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84854</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2019-09-02 17:17:28 +0000</bug_when>
    <thetext>Implementation sent to ML:
http://lists.openembedded.org/pipermail/openembedded-core/2019-August/286026.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89655</commentid>
    <comment_count>5</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2021-03-18 15:17:23 +0000</bug_when>
    <thetext>3.3 development is closed, move to 3.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94360</commentid>
    <comment_count>6</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2022-11-03 15:17:55 +0000</bug_when>
    <thetext>Some day...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95119</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2023-03-13 12:29:25 +0000</bug_when>
    <thetext>Another set of &quot;preparation&quot; changes sent to ML:
https://lists.openembedded.org/g/openembedded-core/message/178432

Only 2 commits are left in:
https://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/artifacts

1st changes the naming scheme a bit (used to verify the selftest changes - runqemu script still need few fixes for this to pass completely).

2nd is the important one which switches the _NAME and _LINK_NAME, from symlinks to hardlinks and introduces deploy_links task.

Both will be sent for Nanbield once it&apos;s open as they might need some adaptation from other layers which use own IMAGE_FSTYPEs etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96954</commentid>
    <comment_count>8</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2023-10-24 14:24:50 +0000</bug_when>
    <thetext>Bulk move from 4.99 or 0.00 to 5.99</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97302</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2023-11-22 12:55:29 +0000</bug_when>
    <thetext>Sent hopefully last batch of the changes for this:
https://lists.openembedded.org/g/openembedded-core/message/191077
https://patchwork.yoctoproject.org/project/oe-core/list/?series=19541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98447</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Jansa">Martin.Jansa</who>
    <bug_when>2024-03-10 15:32:32 +0000</bug_when>
    <thetext>The whole series was rejected in:
https://lists.openembedded.org/g/openembedded-core/topic/102747718#191102
(some patches from it might be useful even without the switch to hardlinks).

I can make it more configurable (to allow using symlinks instead of hardlinks) or to create versioned links in subdirectory with the same version, so it&apos;s easier to copy just one hardlink either with version or without in filename).

But I don&apos;t want to spend even more time on this if there is no agreement to fix this (I though we had agreement to use hardlinks as it was mentioned in all previous patch series and in this ticket).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106526</commentid>
    <comment_count>11</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2026-08-13 15:20:37 +0000</bug_when>
    <thetext>We could review the work done and try to get agreement again.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>