On 11/17/19 3:19 PM, Alexander Kanavin wrote:
I'd write the date into the file at image creation, via ROOTFS_POSTPROCESS_COMMAND.

Having it in a recipe means that you either force the recipe to not be a part of sstate cache, always rebuilding it and its dependencies (bad idea), or accept that the date comes from a previously built cache object, which means it will mismatch the actual image creation date.

Got it, thanks. I was unaware of ROOTFS_POSTPROCESS_COMMAND.



A bit of context would help: why would you want that info in os-release? Who would use that information and how?

I don't fully understand the use case for adding a build date to the image.  I 
don't have a use for it, but this question keeps coming up in the OpenBMC 
community, so I want to address it.  I am imagining a naive continuous delivery 
process where the build date is used as a substitute for a software version.  
That is easier than keeping track of software versions, but (as I mentioned 
before) does not meet my needs.

I've re-asked the question to the original poster in the OpenBMC email list:
https://lists.ozlabs.org/pipermail/openbmc/2019-November/019493.html

The response so far is: I just want to show the compile time of firmware to the 
user. If  only show the version, it can't correspond to the time. When both are 
displayed at the same time, the information will be clearer.

I'll continue the conversation in that email thread.  Thanks for your help!

 - Joseph



Alex

On Sat, 16 Nov 2019 at 23:14, Joseph Reynolds <[email protected] <mailto:[email protected]>> wrote:


    Is there a best practice for folks who want to put the build date
    into
    their generated os-release file?  I've seen this question come up at
    least 3 times in my brief involvement with OE.  I could perhaps add
    comment to the OpenBMC os-release.bbappend file to provide the proper
    guidance.  I would like to hear your ideas.

    - Joseph


    -------- Forwarded Message --------
    Subject:        Re: how to solve the error that basehash value
    changed from
    'xxx' to 'aaaa' ?
    Date:   Sat, 16 Nov 2019 15:50:38 -0600
    From:   Joseph Reynolds <[email protected]
    <mailto:[email protected]>>
    To:     www <[email protected] <mailto:[email protected]>>,
    [email protected] <mailto:[email protected]>
    <[email protected] <mailto:[email protected]>>



    Byron,

    What modification did you put into the os-release recipe?  It
    would help
    us help you if you put that in your email.


    Are you adding the build date to the generated os-release file? If
    so,
    be aware that might cause the issues with the shared state cache
    you are
    experiencing.  Also be aware this practice wrecks reproducible builds.

    A better way to get the same effect might be to create a git tag with
    the information you want to appear in the generated os-release file.
    When you buld with this tag is then picked up by the OpenBMC
    meta-phosphor os-release.bbappend (via `git describe`) and
    included in
    the genersted os-release file as the BUILD_ID. See:
    
https://github.com/ibm-openbmc/openbmc/blob/d1c59b7a36c10c18838c07af10b18080174cd61d/meta-phosphor/recipes-core/os-release/os-release.bbappend
    (But I have not tried that.)

    A way to work around the hash change is to add a line to your recipe
    like: PR[vardepsxeclude]="DATETIME"
    As suggested by:
    https://forums.openpli.org/topic/41447-how-to-get-rid-of-taskhash-mismatch/


    My apologies for top posting -- my email reader was not quoting the
    message properly, so I cut/pasted it below.

    - Joseph


    On 11/13/19 1:38 AM, www wrote:

    When I modify the os-release file in my yocto project, it appear some
    error, and how can I solve it ? Who can give me some help or advice?
    Thank you!
    I execute the recommended command on the console and it didn't work.

    ERROR: os-release-1.0-r0 do_compile: Taskhash mismatch
    ce133f0458608e03aa55224df28156e523e54903115efbbcd62946f84a867201
    versus
    7269881f0eb1759ed420a2db4c04fb477cd8c1288bc5f82df5c8161bb926ea1f
    for  
/home/temp/xxx/wsp/obmc-source/entity_xxx/meta/recipes-core/os-release/os-release.bb.do_compile
    ERROR: Taskhash mismatch
    ce133f0458608e03aa55224df28156e523e54903115efbbcd62946f84a867201
    versus
    7269881f0eb1759ed420a2db4c04fb477cd8c1288bc5f82df5c8161bb926ea1f
    for 
/home/temp/xxx/wsp/obmc-source/entity_xxx/meta/recipes-core/os-release/os-release.bb.do_compile
    ERROR: When reparsing
    
/home/temp/xxx/wsp/obmc-source/entity_xxx/meta/recipes-core/os-release/os-release.bb.do_compile,
 the

    basehash value changed from
    99a42a1a3b1a151de604267b159558ecaf1031a3bec8917df132c81302e729a5 to
    4f3288a8763e2e1af78e4b3cdd9c0c0ccb3b0d5c78a3073c188b22200df2a9b0. The
    metadata is not deterministic and this needs to be fixed.
    ERROR: The following commands may help:
    ERROR: $ bitbake os-release -cdo_compile -Snone
    ERROR: Then:
    ERROR: $ bitbake os-release -cdo_compile -Sprintdiff

    ERROR: When
    reparsing 
/home/temp/xxx/wsp/obmc-source/entity_xxx/meta/recipes-core/os-release/os-release.bb.do_compile,
 the

    basehash value changed from
    99a42a1a3b1a151de604267b159558ecaf1031a3bec8917df132c81302e729a5 to
    47c30012daa6aa77be09a93fe21e66995361ef26b4487111005617db8cb4de59. The
    metadata is not deterministic and this needs to be fixed.
    ERROR: The following commands may help:
    ERROR: $ bitbake os-release -cdo_compile -Snone
    ERROR: Then:
    ERROR: $ bitbake os-release -cdo_compile -Sprintdiff

    thanks,
    Byron

-- _______________________________________________
    Openembedded-core mailing list
    [email protected]
    <mailto:[email protected]>
    http://lists.openembedded.org/mailman/listinfo/openembedded-core


--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to