RE: [AUH][PATCH v2 3/9] upgrade-helper.py: allow to set the git directory from layer-dir

Daniel Turull <[email protected]>
Newsgroups org.yoctoproject.lists.yocto-patches
Message-ID <PA3PR07MB1072109B63492CFBDC5E3C6F98A362@PA3PR07MB10721.eurprd07.prod.outlook.com>
Hi Alex,

I went back and checked. scripts_path already uses os.path.realpath, which resolves symlinks correctly. I reverted the patch and I cannot reproduce it.

My layout uses standalone oe-core with symlinks:

  yocto-scarthgap/
-  scripts -> openembedded-core/scripts/
-  oe-init-build-env -> openembedded-core/oe-init-build-env
- openembedded-core/          (git repo)
- meta-openembedded/        (git repo)

The error I described in the commit message must have been caused by something else in my environment at the time. I'll drop this patch in v3.

Thanks,
Daniel

> -----Original Message-----
> From: Alexander Kanavin <[email protected]>
> Sent: Monday, 27 April 2026 11:52
> To: Daniel Turull <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: [AUH][PATCH v2 3/9] upgrade-helper.py: allow to set the git
> directory from layer-dir
> 
> On Fri, 24 Apr 2026 at 13:46, <[email protected]> wrote:
> 
> >              self.git = Git(self.opts['layer_dir'])
> > +        elif settings.get('layer_dir'):
> > +            # allow to set the git repo directory without enabling layer_mode
> > +            self.git = Git(settings.get('layer_dir'))
> >          else:
> >              # use scripts_path to get oe-core directory
> >              self.git = Git(os.path.dirname(scripts_path))
> 
> I don't understand. scripts_path is set thusly:
> 
> scripts_path =
> os.path.realpath(os.path.abspath(os.path.dirname(shutil.which("devtool"))))
> 
> What is the layer layout that causes the 'wrong' path to be picked by this?
> Either you use integrated poky repo without oe-core, or you use oe-core
> without integrated poky, but you shouldn't be using both.
> 
> Alex
> 
> On Fri, 24 Apr 2026 at 13:46, <[email protected]> wrote:
> >
> > From: Daniel Turull <[email protected]>
> >
> > Replace the assumption that the poky directory is the first PATH entry
> > and reuse --layer-dir to setup directory for git repo.
> >
> > This is useful when not using poky and each meta-layer is its own git.
> > Without this fix, commit_changes fails in non-poky layouts:
> >
> >   git add .../openembedded-core/meta/recipes-support/gnupg
> >   fatal: '.../openembedded-core/meta/recipes-support/gnupg'
> >   is outside repository at '.../yocto-scarthgap'
> >
> > Assisted-by: Claude, Anthropic
> > Signed-off-by: Daniel Turull <[email protected]>
> > ---
> >  upgrade-helper.py | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/upgrade-helper.py b/upgrade-helper.py index
> > 98391f3..df927d1 100755
> > --- a/upgrade-helper.py
> > +++ b/upgrade-helper.py
> > @@ -184,6 +184,9 @@ class Updater(object):
> >                      _layer_settings_error(s)
> >
> >              self.git = Git(self.opts['layer_dir'])
> > +        elif settings.get('layer_dir'):
> > +            # allow to set the git repo directory without enabling layer_mode
> > +            self.git = Git(settings.get('layer_dir'))
> >          else:
> >              # use scripts_path to get oe-core directory
> >              self.git = Git(os.path.dirname(scripts_path))
> > --
> > 2.34.1
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.