On Tue, Mar 04, 2025 at 03:28:17PM +0100, Marek Vasut wrote:
> On 3/4/25 10:24 AM, Rasmus Villemoes wrote:
> > On Sun, Mar 02 2025, Marek Vasut <ma...@denx.de> wrote:
> > 
> > > The .scmversion is used by oe-core to append U-Boot version string.
> > > 
> > > LOCALVERSION is not fully compatible replacement as it adds trailing
> > > "-dirty" string at the end of version string in case the U-Boot git
> > > tree contains uncommitted changes. This behavior itself is correct.
> > > However, OE builds do clone U-Boot sources from git and may apply
> > > additional patches on top, which are not tracked in U-Boot git tree,
> > > but rather in the OE metalayer git tree, which leads to the addition
> > > of "-dirty" string as well.
> > > 
> > 
> > ... which is then _also_ correct, no?
> 
> No
> 
> > It means that U-Boot is built from
> > v2024.10-321-gabcd1234 plus some entirely unknown additional patches,
> 
> This is not true, the patches are known and tracked in the OE layers.
> 
> They are not uncommited ad-hoc local changes.
> 
> > which can be anything from fixing a typo in a printf string to
> > completely overhauling everything.
> > 
> > > The .scmversion used by oe-core used to replace the version string
> > > suffix fully, including the "-dirty" string. Reinstate support for
> > > the .scmversion to let OE core do exactly that as it used to do it.
> > 
> > No, please don't. Let's not let this script deviate from upstream linux
> > again, and let's instead try to fix the bug in oe-core
> 
> There is no bug in oe-core.
> 
> U-Boot commit Fixes: 5c02350fa03d ("scripts/setlocalversion: sync with linux
> v6.9") introduced breaking change, the removal of .scmversion support . This
> patch fixes it. It is as simple as that.
> 
> > that (ab)uses
> > this legacy .scmversion file. The fundamental bug is that oe-core
> > creates these .scmversion files unconditionally, even if they end up
> > empty, making CONFIG_LOCALVERSION_AUTO completely useless. I have long
> > since worked around those bugs in my own u-boot and linux recipes, but
> > I'd much rather be able to eventually drop those workarounds.
> > 
> > Why doesn't doing what kernel.bbclass has done,
> > 
> > export LOCALVERSION = "${UBOOT_LOCALVERSION}"
> U-Boot and Linux builds in OE-core work differently.
> 
> Linux uses SCC to apply patches onto a git tree (i.e. it behaves like "git
> am *patch") and therefore the "-dirty" suffix is not added.
> 
> U-Boot recipe uses plain bitbake do_patch to apply patches, and therefore
> the build tree is effectively dirty and the "-dirty" suffix is added. The
> .scmversion overrides the dirty suffix.

Yes, but that's Rasmus' point isn't it?
0592671fbba8c96df043d537d1f6415492de886e (v2025.01 hash) in oe-core
isn't the same as in mainline because there's patches on top and it's
non-obvious.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to