devtool upgrade for go recipes with git "broken"


Thomas Roos
 

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
Is this a bug or do anybody know why go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Alexander Kanavin
 

It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
<throos=amazon.de@...> wrote:

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
Is this a bug or do anybody know why go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094





Thomas Roos
 

yes, easy
- set the go-helloworld bb srcrev to an older rev - e.g:
SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"

"devtool upgrade go-helloworld"

INFO: Extracting upgraded version source...
Traceback (most recent call last):
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
    rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
    __run('git checkout %s' % rev)
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
    return _run(cmd, srctree)
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
    return bb.process.run('%s' % cmd, cwd=cwd)
  File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
    raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
    ret = main()
  File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
    ret = args.func(args, config, basepath, workspace)
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
    _upgrade_error(e, recipedir, srctree, args.keep_failure)
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
    _cleanup_on_error(rd, srctree)
  File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
    if not len(os.listdir(rdp)):
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'






Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
 
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
<throos=amazon.de@...> wrote:
>
> Hi,
> when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
> I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
> Is this a bug or do anybody know why go use that additional src folder?
>
>
> Cheers,
> Thomas
>
>
>
>
> Amazon Web Services EMEA SARL
> 38 avenue John F. Kennedy, L-1855 Luxembourg
> Sitz der Gesellschaft: L-1855 Luxemburg
> eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
>
> Amazon Web Services EMEA SARL, Niederlassung Deutschland
> Marcel-Breuer-Str. 12, D-80807 Muenchen
> Sitz der Zweigniederlassung: Muenchen
> eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
>
>
>
>
>



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Alexander Kanavin
 

Thanks, I do not have a quick answer to this, but would appreciate if
you can dig deeper into the issue.

Alex

On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:

yes, easy
- set the go-helloworld bb srcrev to an older rev - e.g:
SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"

"devtool upgrade go-helloworld"

INFO: Extracting upgraded version source...
Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
__run('git checkout %s' % rev)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
return _run(cmd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
return bb.process.run('%s' % cmd, cwd=cwd)
File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
ret = main()
File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
ret = args.func(args, config, basepath, workspace)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
_upgrade_error(e, recipedir, srctree, args.keep_failure)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
_cleanup_on_error(rd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
if not len(os.listdir(rdp)):
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'





________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
<throos=amazon.de@...> wrote:

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
Is this a bug or do anybody know why go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094






Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094


Thomas Roos
 

yes, I already did this - it's because that go.bbclass is spangly using a subdir called "src" and that will break the devtool check for upgrades mechanism because it's not looking into a src subdir. So git will fail checkout anything in the parent dir "reference is not a tree"

This simple change in the go.bbclass fix it - but I don't know if that additional src dir is somehow necessary:


# src folder will break devtool upgrade
python go_do_unpack() {
    src_uri = (d.getVar('SRC_URI') or "").split()
    if len(src_uri) == 0:
        return

    fetcher = bb.fetch2.Fetch(src_uri, d)
    for url in fetcher.urls:
        if fetcher.ud[url].type == 'git':
            if fetcher.ud[url].parm.get('destsuffix') is None:
                s_dirname = os.path.basename(d.getVar('S'))
#cause problems                fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
#FIX
                fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, '', d.getVar('GO_IMPORT')) + '/'
#FIX
    fetcher.unpack(d.getVar('WORKDIR'))
}

# src folder will break devtool upgrade
go_do_configure() {
#cause problems      ln -snf ${S}/src ${B}/
#FIX
    ln -snf ${S} ${B}/
#FIX
}



Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:56:48
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
 
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Thanks, I do not have a quick answer to this, but would appreciate if
you can dig deeper into the issue.

Alex

On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:
>
> yes, easy
> - set the go-helloworld bb srcrev to an older rev - e.g:
> SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"
>
> "devtool upgrade go-helloworld"
>
> INFO: Extracting upgraded version source...
> Traceback (most recent call last):
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
>     rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
>     __run('git checkout %s' % rev)
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
>     return _run(cmd, srctree)
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
>     return bb.process.run('%s' % cmd, cwd=cwd)
>   File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
>     raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
> bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
> fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94
>
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
>     ret = main()
>   File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
>     ret = args.func(args, config, basepath, workspace)
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
>     _upgrade_error(e, recipedir, srctree, args.keep_failure)
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
>     _cleanup_on_error(rd, srctree)
>   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
>     if not len(os.listdir(rdp)):
> FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'
>
>
>
>
>
> ________________________________
> Von: Alexander Kanavin <alex.kanavin@...>
> Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
> An: Roos, Thomas
> Cc: yocto@...
> Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
>
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> It helps if you show the exact error, and a way to reproduce this
> using a minimal setup (ideally only poky).
>
> Alex
>
> On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
> <throos=amazon.de@...> wrote:
> >
> > Hi,
> > when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
> > I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
> > Is this a bug or do anybody know why go use that additional src folder?
> >
> >
> > Cheers,
> > Thomas
> >
> >
> >
> >
> > Amazon Web Services EMEA SARL
> > 38 avenue John F. Kennedy, L-1855 Luxembourg
> > Sitz der Gesellschaft: L-1855 Luxemburg
> > eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
> >
> > Amazon Web Services EMEA SARL, Niederlassung Deutschland
> > Marcel-Breuer-Str. 12, D-80807 Muenchen
> > Sitz der Zweigniederlassung: Muenchen
> > eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
> >
> >
> >
> >
> >
>
>
>
> Amazon Web Services EMEA SARL
> 38 avenue John F. Kennedy, L-1855 Luxembourg
> Sitz der Gesellschaft: L-1855 Luxemburg
> eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
>
> Amazon Web Services EMEA SARL, Niederlassung Deutschland
> Marcel-Breuer-Str. 12, D-80807 Muenchen
> Sitz der Zweigniederlassung: Muenchen
> eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
>
>



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Alexander Kanavin
 

Can you propose a patch to core?

Alex

On Thu, 20 Oct 2022 at 12:05, Roos, Thomas <throos@...> wrote:

yes, I already did this - it's because that go.bbclass is spangly using a subdir called "src" and that will break the devtool check for upgrades mechanism because it's not looking into a src subdir. So git will fail checkout anything in the parent dir "reference is not a tree"

This simple change in the go.bbclass fix it - but I don't know if that additional src dir is somehow necessary:


# src folder will break devtool upgrade
python go_do_unpack() {
src_uri = (d.getVar('SRC_URI') or "").split()
if len(src_uri) == 0:
return

fetcher = bb.fetch2.Fetch(src_uri, d)
for url in fetcher.urls:
if fetcher.ud[url].type == 'git':
if fetcher.ud[url].parm.get('destsuffix') is None:
s_dirname = os.path.basename(d.getVar('S'))
#cause problems fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, '', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.unpack(d.getVar('WORKDIR'))
}

# src folder will break devtool upgrade
go_do_configure() {
#cause problems ln -snf ${S}/src ${B}/
#FIX
ln -snf ${S} ${B}/
#FIX
}


________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:56:48
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Thanks, I do not have a quick answer to this, but would appreciate if
you can dig deeper into the issue.

Alex

On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:

yes, easy
- set the go-helloworld bb srcrev to an older rev - e.g:
SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"

"devtool upgrade go-helloworld"

INFO: Extracting upgraded version source...
Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
__run('git checkout %s' % rev)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
return _run(cmd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
return bb.process.run('%s' % cmd, cwd=cwd)
File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
ret = main()
File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
ret = args.func(args, config, basepath, workspace)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
_upgrade_error(e, recipedir, srctree, args.keep_failure)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
_cleanup_on_error(rd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
if not len(os.listdir(rdp)):
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'





________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
<throos=amazon.de@...> wrote:

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
Is this a bug or do anybody know why go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094






Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094


Thomas Roos
 

sure, but may this src folder is necessary for something? Some go convention I don't know about...


Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 12:09:47
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
 
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Can you propose a patch to core?

Alex

On Thu, 20 Oct 2022 at 12:05, Roos, Thomas <throos@...> wrote:
>
> yes, I already did this - it's because that go.bbclass is spangly using a subdir called "src" and that will break the devtool check for upgrades mechanism because it's not looking into a src subdir. So git will fail checkout anything in the parent dir "reference is not a tree"
>
> This simple change in the go.bbclass fix it - but I don't know if that additional src dir is somehow necessary:
>
>
> # src folder will break devtool upgrade
> python go_do_unpack() {
>     src_uri = (d.getVar('SRC_URI') or "").split()
>     if len(src_uri) == 0:
>         return
>
>     fetcher = bb.fetch2.Fetch(src_uri, d)
>     for url in fetcher.urls:
>         if fetcher.ud[url].type == 'git':
>             if fetcher.ud[url].parm.get('destsuffix') is None:
>                 s_dirname = os.path.basename(d.getVar('S'))
> #cause problems                fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
> #FIX
>                 fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, '', d.getVar('GO_IMPORT')) + '/'
> #FIX
>     fetcher.unpack(d.getVar('WORKDIR'))
> }
>
> # src folder will break devtool upgrade
> go_do_configure() {
> #cause problems      ln -snf ${S}/src ${B}/
> #FIX
>     ln -snf ${S} ${B}/
> #FIX
> }
>
>
> ________________________________
> Von: Alexander Kanavin <alex.kanavin@...>
> Gesendet: Donnerstag, 20. Oktober 2022 11:56:48
> An: Roos, Thomas
> Cc: yocto@...
> Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
>
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> Thanks, I do not have a quick answer to this, but would appreciate if
> you can dig deeper into the issue.
>
> Alex
>
> On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:
> >
> > yes, easy
> > - set the go-helloworld bb srcrev to an older rev - e.g:
> > SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"
> >
> > "devtool upgrade go-helloworld"
> >
> > INFO: Extracting upgraded version source...
> > Traceback (most recent call last):
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
> >     rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
> >     __run('git checkout %s' % rev)
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
> >     return _run(cmd, srctree)
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
> >     return bb.process.run('%s' % cmd, cwd=cwd)
> >   File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
> >     raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
> > bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
> > fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94
> >
> >
> > During handling of the above exception, another exception occurred:
> >
> > Traceback (most recent call last):
> >   File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
> >     ret = main()
> >   File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
> >     ret = args.func(args, config, basepath, workspace)
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
> >     _upgrade_error(e, recipedir, srctree, args.keep_failure)
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
> >     _cleanup_on_error(rd, srctree)
> >   File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
> >     if not len(os.listdir(rdp)):
> > FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'
> >
> >
> >
> >
> >
> > ________________________________
> > Von: Alexander Kanavin <alex.kanavin@...>
> > Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
> > An: Roos, Thomas
> > Cc: yocto@...
> > Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"
> >
> > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
> >
> >
> >
> > It helps if you show the exact error, and a way to reproduce this
> > using a minimal setup (ideally only poky).
> >
> > Alex
> >
> > On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
> > <throos=amazon.de@...> wrote:
> > >
> > > Hi,
> > > when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
> > > I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
> > > Is this a bug or do anybody know why go use that additional src folder?
> > >
> > >
> > > Cheers,
> > > Thomas
> > >
> > >
> > >
> > >
> > > Amazon Web Services EMEA SARL
> > > 38 avenue John F. Kennedy, L-1855 Luxembourg
> > > Sitz der Gesellschaft: L-1855 Luxemburg
> > > eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
> > >
> > > Amazon Web Services EMEA SARL, Niederlassung Deutschland
> > > Marcel-Breuer-Str. 12, D-80807 Muenchen
> > > Sitz der Zweigniederlassung: Muenchen
> > > eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> > Amazon Web Services EMEA SARL
> > 38 avenue John F. Kennedy, L-1855 Luxembourg
> > Sitz der Gesellschaft: L-1855 Luxemburg
> > eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
> >
> > Amazon Web Services EMEA SARL, Niederlassung Deutschland
> > Marcel-Breuer-Str. 12, D-80807 Muenchen
> > Sitz der Zweigniederlassung: Muenchen
> > eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
> >
> >
>
>
>
> Amazon Web Services EMEA SARL
> 38 avenue John F. Kennedy, L-1855 Luxembourg
> Sitz der Gesellschaft: L-1855 Luxemburg
> eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284
>
> Amazon Web Services EMEA SARL, Niederlassung Deutschland
> Marcel-Breuer-Str. 12, D-80807 Muenchen
> Sitz der Zweigniederlassung: Muenchen
> eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094
>
>



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Alexander Kanavin
 

It may well be that no one remembers anymore why it's there, and in
this case you can just drop it. Or you can dig into git history with
'git blame' and similar techniques.

Alex

On Thu, 20 Oct 2022 at 12:23, Roos, Thomas <throos@...> wrote:

sure, but may this src folder is necessary for something? Some go convention I don't know about...

________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 12:09:47
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Can you propose a patch to core?

Alex

On Thu, 20 Oct 2022 at 12:05, Roos, Thomas <throos@...> wrote:

yes, I already did this - it's because that go.bbclass is spangly using a subdir called "src" and that will break the devtool check for upgrades mechanism because it's not looking into a src subdir. So git will fail checkout anything in the parent dir "reference is not a tree"

This simple change in the go.bbclass fix it - but I don't know if that additional src dir is somehow necessary:


# src folder will break devtool upgrade
python go_do_unpack() {
src_uri = (d.getVar('SRC_URI') or "").split()
if len(src_uri) == 0:
return

fetcher = bb.fetch2.Fetch(src_uri, d)
for url in fetcher.urls:
if fetcher.ud[url].type == 'git':
if fetcher.ud[url].parm.get('destsuffix') is None:
s_dirname = os.path.basename(d.getVar('S'))
#cause problems fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, '', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.unpack(d.getVar('WORKDIR'))
}

# src folder will break devtool upgrade
go_do_configure() {
#cause problems ln -snf ${S}/src ${B}/
#FIX
ln -snf ${S} ${B}/
#FIX
}


________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:56:48
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Thanks, I do not have a quick answer to this, but would appreciate if
you can dig deeper into the issue.

Alex

On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:

yes, easy
- set the go-helloworld bb srcrev to an older rev - e.g:
SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"

"devtool upgrade go-helloworld"

INFO: Extracting upgraded version source...
Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
__run('git checkout %s' % rev)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
return _run(cmd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
return bb.process.run('%s' % cmd, cwd=cwd)
File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
fatal: reference is not a tree: 2e68773dfca072cb81f219fc3b97ad34fe9d9f94


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
ret = main()
File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
ret = args.func(args, config, basepath, workspace)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
_upgrade_error(e, recipedir, srctree, args.keep_failure)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
_cleanup_on_error(rd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
if not len(os.listdir(rdp)):
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'





________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via lists.yoctoproject.org
<throos=amazon.de@...> wrote:

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src folder by overwriting the go_do_upack and go_do_configure method. Here: https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a91b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/amazon-ssm-agent_3.1.1856.0.bb
Is this a bug or do anybody know why go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094






Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg
Sitz der Gesellschaft: L-1855 Luxemburg
eingetragen im Luxemburgischen Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen
Sitz der Zweigniederlassung: Muenchen
eingetragen im Handelsregister des Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094


Monsees, Steven C (US)
 

Thanks...

-----Original Message-----
From: yocto@... <yocto@...> On Behalf Of Alexander Kanavin
Sent: Thursday, October 20, 2022 6:40 AM
To: Roos, Thomas <throos@...>
Cc: yocto@...
Subject: Re: [yocto] devtool upgrade for go recipes with git "broken"

External Email Alert

This email has been sent from an account outside of the BAE Systems network.

Please treat the email with caution, especially if you are requested to click on a link, decrypt/open an attachment, or enable macros. For further information on how to spot phishing, access “Cybersecurity OneSpace Page” and report phishing by clicking the button “Report Phishing” on the Outlook toolbar.


It may well be that no one remembers anymore why it's there, and in this case you can just drop it. Or you can dig into git history with 'git blame' and similar techniques.

Alex

On Thu, 20 Oct 2022 at 12:23, Roos, Thomas <throos@...> wrote:

sure, but may this src folder is necessary for something? Some go convention I don't know about...

________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 12:09:47
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Can you propose a patch to core?

Alex

On Thu, 20 Oct 2022 at 12:05, Roos, Thomas <throos@...> wrote:

yes, I already did this - it's because that go.bbclass is spangly using a subdir called "src" and that will break the devtool check for upgrades mechanism because it's not looking into a src subdir. So git will fail checkout anything in the parent dir "reference is not a tree"

This simple change in the go.bbclass fix it - but I don't know if that additional src dir is somehow necessary:


# src folder will break devtool upgrade python go_do_unpack() {
src_uri = (d.getVar('SRC_URI') or "").split()
if len(src_uri) == 0:
return

fetcher = bb.fetch2.Fetch(src_uri, d)
for url in fetcher.urls:
if fetcher.ud[url].type == 'git':
if fetcher.ud[url].parm.get('destsuffix') is None:
s_dirname = os.path.basename(d.getVar('S'))
#cause problems fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, '', d.getVar('GO_IMPORT')) + '/'
#FIX
fetcher.unpack(d.getVar('WORKDIR'))
}

# src folder will break devtool upgrade
go_do_configure() {
#cause problems ln -snf ${S}/src ${B}/
#FIX
ln -snf ${S} ${B}/
#FIX
}


________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:56:48
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



Thanks, I do not have a quick answer to this, but would appreciate
if you can dig deeper into the issue.

Alex

On Thu, 20 Oct 2022 at 11:50, Roos, Thomas <throos@...> wrote:

yes, easy
- set the go-helloworld bb srcrev to an older rev - e.g:
SRCREV = "ad95e7f791d8e1e7e7ec7f7cedfc2f6b29f6c9e2"

"devtool upgrade go-helloworld"

INFO: Extracting upgraded version source...
Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 567, in upgrade
rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 183, in _extract_new_source
__run('git checkout %s' % rev)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 170, in __run
return _run(cmd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 31, in _run
return bb.process.run('%s' % cmd, cwd=cwd)
File "/home/ubuntu/yocto/poky/bitbake/lib/bb/process.py", line 189, in run
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git checkout 2e68773dfca072cb81f219fc3b97ad34fe9d9f94' failed with exit code 128:
fatal: reference is not a tree:
2e68773dfca072cb81f219fc3b97ad34fe9d9f94


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ubuntu/yocto/poky/scripts/devtool", line 338, in <module>
ret = main()
File "/home/ubuntu/yocto/poky/scripts/devtool", line 325, in main
ret = args.func(args, config, basepath, workspace)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 575, in upgrade
_upgrade_error(e, recipedir, srctree, args.keep_failure)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 134, in _upgrade_error
_cleanup_on_error(rd, srctree)
File "/home/ubuntu/yocto/poky/scripts/lib/devtool/upgrade.py", line 126, in _cleanup_on_error
if not len(os.listdir(rdp)):
FileNotFoundError: [Errno 2] No such file or directory: '/home/ubuntu/yocto/build/workspace/recipes'





________________________________
Von: Alexander Kanavin <alex.kanavin@...>
Gesendet: Donnerstag, 20. Oktober 2022 11:32:19
An: Roos, Thomas
Cc: yocto@...
Betreff: RE: [EXTERNAL][yocto] devtool upgrade for go recipes with git "broken"

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



It helps if you show the exact error, and a way to reproduce this
using a minimal setup (ideally only poky).

Alex

On Thu, 20 Oct 2022 at 11:18, Thomas Roos via
lists.yoctoproject.org <throos=amazon.de@...> wrote:

Hi,
when doing a "devtool upgrade" for a recipe which inherits "go" and using a SRC_URI to a git repo this will fail. Complaining that the git revision is "out of tree" - I found that the additional "src" folder inside the checkout out sources is causing this problem and I wondering if this is necessary. I'm not a go programmer, but when changing this the recipe seems to produce the same result.
I did change our go recipe to don't use this additional src
folder by overwriting the go_do_upack and go_do_configure
method. Here:
https://github.com/aws4embeddedlinux/meta-aws/blob/942651026c7a9
1b9703609d7658bd1649350acaf/recipes-support/amazon-ssm-agent/ama
zon-ssm-agent_3.1.1856.0.bb Is this a bug or do anybody know why
go use that additional src folder?


Cheers,
Thomas




Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg Sitz der
Gesellschaft: L-1855 Luxemburg eingetragen im Luxemburgischen
Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen Sitz der
Zweigniederlassung: Muenchen eingetragen im Handelsregister des
Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094






Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg Sitz der
Gesellschaft: L-1855 Luxemburg eingetragen im Luxemburgischen
Handelsregister unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen Sitz der
Zweigniederlassung: Muenchen eingetragen im Handelsregister des
Amtsgerichts Muenchen unter HRB 242240, USt-ID DE317013094



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg Sitz der Gesellschaft:
L-1855 Luxemburg eingetragen im Luxemburgischen Handelsregister
unter R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen Sitz der Zweigniederlassung:
Muenchen eingetragen im Handelsregister des Amtsgerichts Muenchen
unter HRB 242240, USt-ID DE317013094



Amazon Web Services EMEA SARL
38 avenue John F. Kennedy, L-1855 Luxembourg Sitz der Gesellschaft:
L-1855 Luxemburg eingetragen im Luxemburgischen Handelsregister unter
R.C.S. B186284

Amazon Web Services EMEA SARL, Niederlassung Deutschland
Marcel-Breuer-Str. 12, D-80807 Muenchen Sitz der Zweigniederlassung:
Muenchen eingetragen im Handelsregister des Amtsgerichts Muenchen
unter HRB 242240, USt-ID DE317013094