implements patch support for repos

With this commit its now possible to patch 3rd party repos before bitbake is started.

Example:

This is our repo:
  .
  ├── kas.yml
  ├── first-patch.patch
  └── quilt-patches
      ├── second-patch.patch
      ├── third-patch.patch
      └── series

Content of kas.yml:
  header:
    version: 8

  repos:
    my:
    third-party:
      url: "git://example.com/third-party.git"
      refspec: "35adf4...34"
      patches:
        01-first:
          repo: my
          path: "first-patch.patch"
        02-second:
          repo: my
          path: "quilt-patches"

Currently only 'git' repositories can be patched.

Signed-off-by: Claudius Heine <ch@denx.de>
This commit is contained in:
Claudius Heine
2018-03-09 08:22:52 +01:00
committed by Daniel Wagner
parent b9032ec025
commit e8851a5fb3
9 changed files with 175 additions and 12 deletions

View File

@@ -30,7 +30,7 @@ from kas.libkas import kasplugin
from kas.config import Config
from kas.libcmds import (Macro, Command, SetupDir, SetupProxy, SetupEnviron,
WriteConfig, SetupHome, ReposFetch, ReposCheckout,
CleanupSSHAgent, SetupSSHAgent)
ReposApplyPatches, CleanupSSHAgent, SetupSSHAgent)
__license__ = 'MIT'
__copyright__ = 'Copyright (c) Siemens AG, 2017'
@@ -91,13 +91,15 @@ class Shell:
if not args.keep_config_unchanged:
macro.add(ReposFetch())
macro.add(ReposCheckout())
macro.add(SetupEnviron())
macro.add(SetupEnviron())
macro.add(SetupHome())
if not args.keep_config_unchanged:
macro.add(ReposApplyPatches())
macro.add(WriteConfig())
else:
macro.add(SetupEnviron())
# Shell
macro.add(SetupHome())
macro.add(ShellCommand(args.command))
if 'SSH_PRIVATE_KEY' in os.environ: