All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] devtool: extract: remove patches when S=WORKDIR
@ 2015-04-21 14:49 Markus Lehtonen
  2015-04-21 15:04 ` Paul Eggleton
  0 siblings, 1 reply; 3+ messages in thread
From: Markus Lehtonen @ 2015-04-21 14:49 UTC (permalink / raw)
  To: openembedded-core; +Cc: Paul Eggleton

All local files from the layer, including patches, are added to to
srctree repository when S==WORKDIR. The patch files are useless as they
are automatically applied on top of the srctree by devtool.

This change causes devtool extract to remove these unnecessary (and
possibly confusing) patch file(s). The patches will be removed in one
single commit.

[YOCTO #7602]

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
---
 scripts/lib/devtool/standard.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index a50a771..41bcf86 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -248,6 +248,26 @@ def _extract_source(srctree, keep_temp, devbranch, d):
             else:
                 os.rmdir(patchdir)
 
+        # Find local patches that were "unpacked" to srctree directory
+        patches = []
+        for uri in (crd.getVar('SRC_URI', True) or "").split():
+            if uri.startswith('file://'):
+                fname = os.path.basename(uri).split(';')[0]
+                # Take patch "basename" without the possible compression
+                # extension (.gz etc)
+                match = re.match(r'^(.+\.patch)(\..+)?$', fname)
+                if match:
+                    patches.append(match.group(1))
+        patches = [fname for fname in os.listdir(workdir) if fname in patches]
+
+        # Remove patches if S=WORKDIR so that the unneeded patch files are
+        # not committed into srctree (as they're applied later on)
+        if patches and srcsubdir == workdir:
+            logger.info('Removing patch files...')
+            for patch in patches:
+                os.unlink(os.path.join(workdir, patch))
+
+        # Set-up srctree repo
         if bb.data.inherits_class('kernel-yocto', d):
             (stdout, _) = bb.process.run('git --git-dir="%s" rev-parse HEAD' % crd.expand('${WORKDIR}/git'), cwd=srcsubdir)
             initial_rev = stdout.rstrip()
-- 
2.1.4



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

* Re: [PATCH] devtool: extract: remove patches when S=WORKDIR
  2015-04-21 14:49 [PATCH] devtool: extract: remove patches when S=WORKDIR Markus Lehtonen
@ 2015-04-21 15:04 ` Paul Eggleton
  2015-04-22 13:51   ` Markus Lehtonen
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Eggleton @ 2015-04-21 15:04 UTC (permalink / raw)
  To: Markus Lehtonen; +Cc: openembedded-core

Hi Markus,

On Tuesday 21 April 2015 17:49:54 Markus Lehtonen wrote:
> All local files from the layer, including patches, are added to to
> srctree repository when S==WORKDIR. The patch files are useless as they
> are automatically applied on top of the srctree by devtool.
> 
> This change causes devtool extract to remove these unnecessary (and
> possibly confusing) patch file(s). The patches will be removed in one
> single commit.
> 
> [YOCTO #7602]
> 
> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
> ---
>  scripts/lib/devtool/standard.py | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/scripts/lib/devtool/standard.py
> b/scripts/lib/devtool/standard.py index a50a771..41bcf86 100644
> --- a/scripts/lib/devtool/standard.py
> +++ b/scripts/lib/devtool/standard.py
> @@ -248,6 +248,26 @@ def _extract_source(srctree, keep_temp, devbranch, d):
>              else:
>                  os.rmdir(patchdir)
> 
> +        # Find local patches that were "unpacked" to srctree directory
> +        patches = []
> +        for uri in (crd.getVar('SRC_URI', True) or "").split():
> +            if uri.startswith('file://'):
> +                fname = os.path.basename(uri).split(';')[0]
> +                # Take patch "basename" without the possible compression
> +                # extension (.gz etc)
> +                match = re.match(r'^(.+\.patch)(\..+)?$', fname)
> +                if match:
> +                    patches.append(match.group(1))

Could you please use get_recipe_patches() from recipeutils.py for this? 
There's some logic in there that I'd rather we didn't re-implement.

Thanks,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


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

* Re: [PATCH] devtool: extract: remove patches when S=WORKDIR
  2015-04-21 15:04 ` Paul Eggleton
@ 2015-04-22 13:51   ` Markus Lehtonen
  0 siblings, 0 replies; 3+ messages in thread
From: Markus Lehtonen @ 2015-04-22 13:51 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-core

Hi Paul,

On Tue, 2015-04-21 at 16:04 +0100, Paul Eggleton wrote:
> Hi Markus,
> 
> On Tuesday 21 April 2015 17:49:54 Markus Lehtonen wrote:
> > All local files from the layer, including patches, are added to to
> > srctree repository when S==WORKDIR. The patch files are useless as they
> > are automatically applied on top of the srctree by devtool.
> > 
> > This change causes devtool extract to remove these unnecessary (and
> > possibly confusing) patch file(s). The patches will be removed in one
> > single commit.
> > 
> > [YOCTO #7602]
> > 
> > Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
> > ---
> >  scripts/lib/devtool/standard.py | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> > 
> > diff --git a/scripts/lib/devtool/standard.py
> > b/scripts/lib/devtool/standard.py index a50a771..41bcf86 100644
> > --- a/scripts/lib/devtool/standard.py
> > +++ b/scripts/lib/devtool/standard.py
> > @@ -248,6 +248,26 @@ def _extract_source(srctree, keep_temp, devbranch, d):
> >              else:
> >                  os.rmdir(patchdir)
> > 
> > +        # Find local patches that were "unpacked" to srctree directory
> > +        patches = []
> > +        for uri in (crd.getVar('SRC_URI', True) or "").split():
> > +            if uri.startswith('file://'):
> > +                fname = os.path.basename(uri).split(';')[0]
> > +                # Take patch "basename" without the possible compression
> > +                # extension (.gz etc)
> > +                match = re.match(r'^(.+\.patch)(\..+)?$', fname)
> > +                if match:
> > +                    patches.append(match.group(1))
> 
> Could you please use get_recipe_patches() from recipeutils.py for this? 
> There's some logic in there that I'd rather we didn't re-implement.

OK. Fixed in v2 of the patch.

Thanks,
  Markus



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

end of thread, other threads:[~2015-04-22 13:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-21 14:49 [PATCH] devtool: extract: remove patches when S=WORKDIR Markus Lehtonen
2015-04-21 15:04 ` Paul Eggleton
2015-04-22 13:51   ` Markus Lehtonen

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.