Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Tomasz Dziendzielski
>Try checking if the "task" flag is set for "do_patch"
Good idea, thanks! It's working correctly. I can see both 'noexec' and
'task' flags can be set separately, so to make it more general (and make it
work for similar recipes without sources) I will check both 'noexec' and
'task' flags.
I will submit another patchset with suggested change  (see below) and with
another condition check to not affect kernel build.:

diff --git a/scripts/lib/devtool/standard.py
b/scripts/lib/devtool/standard.py
index 8b80fb8bfa..6f4cbbe219 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py

-if 'noexec' in (d.getVarFlags(task, False) or []):
+if 'noexec' in (d.getVarFlags(task, False) or []) or
'task' not in (d.getVarFlags(task, False) or []):
...
-if 'noexec' in (d.getVarFlags('do_patch', False) or []):
+if not is_kernel_yocto and ('noexec' in (d.getVarFlags('do_patch',
False) or []) or 'task' not in (d.getVarFlags('do_patch', False) or []):

Best regards,
Tomasz Dziendzielski

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147007): 
https://lists.openembedded.org/g/openembedded-core/message/147007
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Richard Purdie
On Tue, 2021-01-19 at 19:05 +0100, Tomasz Dziendzielski wrote:
> > > diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc
> > > b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> > > index aac4b49313..9ef80f2074 100644
> > > --- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
> > > +++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> > > @@ -2,6 +2,7 @@ do_fetch() {
> > >       :
> > >  }
> > >  do_fetch[noexec] = "1"
> > > +do_patch[noexec] = "1"
> > >  deltask do_unpack
> > >  deltask do_patch
> 
> > This is in itself a little odd. The "deltask do_patch" line deletes
> > the
> > task, so there is no task to set as noexec?
> 
> This was added because from the devtool script I couldn't find
> another way to determine if the task is run or not. If I add
> "do_patch[noexec]" (which logically doesn't change anything) even if
> task is deleted, I can check "if 'noexec' in d.getVarFlags(task,
> False)" and tell devtool to execute do_configure task dependencies
> (to prepare gcc sources).

Try checking if the "task" flag is set for "do_patch"?

Cheers,

Richard



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147005): 
https://lists.openembedded.org/g/openembedded-core/message/147005
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Tomasz Dziendzielski
>> diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc
b/meta/recipes-devtools/gcc/gcc-shared-source.inc
>> index aac4b49313..9ef80f2074 100644
>> --- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
>> @@ -2,6 +2,7 @@ do_fetch() {
>>   :
>>  }
>>  do_fetch[noexec] = "1"
>> +do_patch[noexec] = "1"
>>  deltask do_unpack
>>  deltask do_patch

>This is in itself a little odd. The "deltask do_patch" line deletes the
>task, so there is no task to set as noexec?

This was added because from the devtool script I couldn't find another way
to determine if the task is run or not. If I add "do_patch[noexec]" (which
logically doesn't change anything) even if task is deleted, I can check "if
'noexec' in d.getVarFlags(task, False)" and tell devtool to execute
do_configure task dependencies (to prepare gcc sources).

Best regards,
Tomasz Dziendzielski

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147004): 
https://lists.openembedded.org/g/openembedded-core/message/147004
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Richard Purdie
On Tue, 2021-01-19 at 16:53 +0100, Tomasz Dziendzielski wrote:
> If do_patch task is disabled then prepare do_configure dependencies to
> fetch external sources and create symlink to ${S} in devtool workspace.
> 
> [YOCTO #13036]
> 
> Signed-off-by: Tomasz Dziendzielski 
> ---
>  .../gcc/gcc-shared-source.inc |  1 +
>  scripts/lib/devtool/standard.py   | 30 ---
>  2 files changed, 27 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc 
> b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> index aac4b49313..9ef80f2074 100644
> --- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
> +++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> @@ -2,6 +2,7 @@ do_fetch() {
>   :
>  }
>  do_fetch[noexec] = "1"
> +do_patch[noexec] = "1"
>  deltask do_unpack
>  deltask do_patch

This is in itself a little odd. The "deltask do_patch" line deletes the
task, so there is no task to set as noexec?

Cheers,

Richard



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147002): 
https://lists.openembedded.org/g/openembedded-core/message/147002
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Tomasz Dziendzielski
>Have you tested whether the archiver class is still working after this
>change? If not it'd be helpful to run `oe-selftest -r archiver` to
>check.

Hi Paul,
I have just run that script and it passed with no errors:
oe-selftest - OK - All required tests passed (successes=13, skipped=0,
failures=0, errors=0)

Best regards,
Tomasz Dziendzielski

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147000): 
https://lists.openembedded.org/g/openembedded-core/message/147000
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Paul Barker
On Tue, 19 Jan 2021 at 15:51, Tomasz Dziendzielski
 wrote:
>
> If do_patch task is disabled then prepare do_configure dependencies to
> fetch external sources and create symlink to ${S} in devtool workspace.
>
> [YOCTO #13036]
>
> Signed-off-by: Tomasz Dziendzielski 
> ---
>  .../gcc/gcc-shared-source.inc |  1 +
>  scripts/lib/devtool/standard.py   | 30 ---
>  2 files changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc 
> b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> index aac4b49313..9ef80f2074 100644
> --- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
> +++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
> @@ -2,6 +2,7 @@ do_fetch() {
> :
>  }
>  do_fetch[noexec] = "1"
> +do_patch[noexec] = "1"

Have you tested whether the archiver class is still working after this
change? If not it'd be helpful to run `oe-selftest -r archiver` to
check.

-- 
Paul Barker
Konsulko Group

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146993): 
https://lists.openembedded.org/g/openembedded-core/message/146993
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] devtool: Fix source extraction for gcc shared source

2021-01-19 Thread Tomasz Dziendzielski
If do_patch task is disabled then prepare do_configure dependencies to
fetch external sources and create symlink to ${S} in devtool workspace.

[YOCTO #13036]

Signed-off-by: Tomasz Dziendzielski 
---
 .../gcc/gcc-shared-source.inc |  1 +
 scripts/lib/devtool/standard.py   | 30 ---
 2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc-shared-source.inc 
b/meta/recipes-devtools/gcc/gcc-shared-source.inc
index aac4b49313..9ef80f2074 100644
--- a/meta/recipes-devtools/gcc/gcc-shared-source.inc
+++ b/meta/recipes-devtools/gcc/gcc-shared-source.inc
@@ -2,6 +2,7 @@ do_fetch() {
:
 }
 do_fetch[noexec] = "1"
+do_patch[noexec] = "1"
 deltask do_unpack
 deltask do_patch
 
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 261d642d4a..8b80fb8bfa 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -589,6 +589,16 @@ def _extract_source(srctree, keep_temp, devbranch, sync, 
config, basepath, works
 else:
 task = 'do_patch'
 
+if 'noexec' in (d.getVarFlags(task, False) or []):
+logger.info('The %s recipe has %s disabled. Running only '
+   'do_configure task dependencies' % (pn, 
task))
+
+if 'depends' in d.getVarFlags('do_configure', False):
+pn = d.getVarFlags('do_configure', False)['depends']
+pn = pn.replace('${PV}', d.getVar('PV'))
+pn = pn.replace('${COMPILERDEP}', 
d.getVar('COMPILERDEP'))
+task = None
+
 # Run the fetch + unpack tasks
 res = tinfoil.build_targets(pn,
 task,
@@ -600,6 +610,17 @@ def _extract_source(srctree, keep_temp, devbranch, sync, 
config, basepath, works
 if not res:
 raise DevtoolError('Extracting source for %s failed' % pn)
 
+if 'noexec' in (d.getVarFlags('do_patch', False) or []):
+workshareddir = d.getVar('S')
+if os.path.islink(srctree):
+os.unlink(srctree)
+
+os.symlink(workshareddir, srctree)
+
+# The initial_rev file is created in devtool_post_unpack function 
that will not be executed if
+# do_unpack/do_patch tasks are disabled so we have to directly say 
that source extraction was successful
+return True, True
+
 try:
 with open(os.path.join(tempdir, 'initial_rev'), 'r') as f:
 initial_rev = f.read()
@@ -847,10 +868,11 @@ def modify(args, config, basepath, workspace):
 if not initial_rev:
 return 1
 logger.info('Source tree extracted to %s' % srctree)
-# Get list of commits since this revision
-(stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % 
initial_rev, cwd=srctree)
-commits = stdout.split()
-check_commits = True
+if os.path.exists(os.path.join(srctree, '.git')):
+# Get list of commits since this revision
+(stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' 
% initial_rev, cwd=srctree)
+commits = stdout.split()
+check_commits = True
 else:
 if os.path.exists(os.path.join(srctree, '.git')):
 # Check if it's a tree previously extracted by us. This is done
-- 
2.29.2


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146992): 
https://lists.openembedded.org/g/openembedded-core/message/146992
Mute This Topic: https://lists.openembedded.org/mt/79954315/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-