All of lore.kernel.org
 help / color / mirror / Atom feed
* metadata mismatch between image and package (uninative)
@ 2019-08-24 12:52 Tim Blechmann
  2019-08-27  3:43 ` Tim Blechmann
  0 siblings, 1 reply; 2+ messages in thread
From: Tim Blechmann @ 2019-08-24 12:52 UTC (permalink / raw)
  To: yocto

hi all,

i'm currently running into an issue of non-deterministic metadata: my
packages build fine when building the package itself, but i'm getting a
metadata mismatch when building as dependency of an image:

>  ERROR: When reparsing /path/to/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb.do_build, the basehash value changed from 86577a31ea46d8046d45301bfc53b8240e3576adecd75f7cfd25945ebab0a10c to 3439e8b4cd0f876338d38c9a5d2dc7c50440754f33a03212130766c7514d52ea. The metadata is not deterministic and this needs to be fixed.


the relevant part of the diff comes from PATH:
`${STAGING_DIR}-uninative/${BUILD_ARCH}-linux${bindir_native}:`


> Dependency on variable BUILD_ARCH was added
> Dependency on variable STAGING_DIR was added
> Variable PATH value changed from '${@extra_path_elements(d)}${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:/path/to/poky/bitbake/bin:${HOSTTOOLS_DIR}' to '${STAGING_DIR}-uninative/${BUILD_ARCH}-linux${bindir_native}:${@extra_path_elements(d)}${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:/path/to/poky/bitbake/bin:${HOSTTOOLS_DIR}'

my distro is based on poky, which INHERITs "uninative"

--

i've been able to build by `INHERIT_remove`ing "uninative", but this
feels like a hack.

so i'm wondering: what could cause a reparse error when `uninative` is
enabled?

tia,
tim



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: metadata mismatch between image and package (uninative)
  2019-08-24 12:52 metadata mismatch between image and package (uninative) Tim Blechmann
@ 2019-08-27  3:43 ` Tim Blechmann
  0 siblings, 0 replies; 2+ messages in thread
From: Tim Blechmann @ 2019-08-27  3:43 UTC (permalink / raw)
  To: yocto

> i've been able to build by `INHERIT_remove`ing "uninative", but this
> feels like a hack.
> 
> so i'm wondering: what could cause a reparse error when `uninative` is
> enabled?

i think i've tracked down the error:
`uninative_event_enable` extends `PATH`, but only if `UNINATIVE_LOADER`
points to a valid path
https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/classes/uninative.bbclass#n128


`UNINATIVE_LOADER` only points to a valid path after
`uninative_event_fetchloader` succeeds.
https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/classes/uninative.bbclass#n33

but `uninative_event_fetchloader` is only executed during
`bb.event.BuildStarted`, while `uninative_event_enable` is called during
`bb.event.ConfigParsed
`.
https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/classes/uninative.bbclass#n16



afaict this leads to the following situation:
* the initial `uninative_event_enable` "fails", as no `UNINATIVE_LOADER
` path exists
* the recipes are parsed with original `PATH`
* during `BuildStarted`, the `UNINATIVE_LOADER` is populated and
`enable_uninative` is called from `uninative_event_fetchloader`,
extending `PATH`
* reparsing sees a different `PATH`

----

now i'm wondering, what's the correct way to fix this?

thanks a lot,
tim



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-27  3:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-24 12:52 metadata mismatch between image and package (uninative) Tim Blechmann
2019-08-27  3:43 ` Tim Blechmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.