On Wed, Apr 17, 2024 at 4:25 AM Daniel Klauer via lists.openembedded.org <daniel.klauer=gin...@lists.openembedded.org> wrote:
> ${COREBASE}/scripts contains a "git" wrapper disabling fakeroot/pseudo. > This patch allows CMake to find ${COREBASE}/scripts/git instead of > ${HOSTTOOLS_DIR}/git. This is needed for git invocations during do_install, > since do_install is a fakeroot task, and otherwise all git commands fail > with "fatal: detected dubious ownership in repository ...". > > I don't know how common it is for CMake projects to invoke git during the > install phase intentionally. It's probably more common to do this during > the configure phase. However, the install step may re-run the configure > step, if some dependencies changed. If a package build system has such dependencies they should be better expressed in recipes and linked using bitbake task level dependency mechanism I wonder why git is needed during install phase Can you explain a bit more on that And since change it in a class it means it has to be a pattern > > In my case, this happened in incremental Yocto builds which reran > do_install and repopulated parts of the recipe-sysroot during that, > without first rerunning do_configure or do_compile. One of the dependencies > changed (but only changing a file in some unrelated sub-package of it which > was not even installed into the recipe-sysroot), causing the dependant's > recipe-sysroot to be repopulated during do_install and thus causing the > CMake project to be reconfigured during do_install. > > Signed-off-by: Daniel Klauer <daniel.kla...@gin.de> > --- > meta/classes-recipe/cmake.bbclass | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/classes-recipe/cmake.bbclass > b/meta/classes-recipe/cmake.bbclass > index 3d3781ef33..e1c3d7ddb5 100644 > --- a/meta/classes-recipe/cmake.bbclass > +++ b/meta/classes-recipe/cmake.bbclass > @@ -124,7 +124,7 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" > CACHE STRING "LDFLAGS" ) > > # only search in the paths provided so cmake doesnt pick > # up libraries and tools from the native build machine > -set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} > ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} > ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR}) > +set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} > ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} > ${EXTERNAL_TOOLCHAIN} ${COREBASE}/scripts ${HOSTTOOLS_DIR} ) > set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) > set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM > ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM} ) > set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) > -- > 2.34.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#198475): https://lists.openembedded.org/g/openembedded-core/message/198475 Mute This Topic: https://lists.openembedded.org/mt/105575001/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-