mbox series

[v2,0/9] execute patch commands without an implicit shell

Message ID cover.1782304923.git.anders.heimer@est.tech
Headers show
Series execute patch commands without an implicit shell | expand

Message

Anders Heimer June 24, 2026, 12:43 p.m. UTC
Continue the shell=True cleanup in oe.patch.

Run runcmd() argument lists directly instead of joining them into an
implicit shell command string.

This series converts the non test runcmd() callers that invoked it with
-sh.

The series also replaces the cat-to-patch pipeline with patch -i,
removes the obsolete PATCHFILE assignment, converts GitApplyTree
commands to argv lists, and keeps manual-resolution commands as argv
lists.

oelib tests cover argv handling and error reporting, GitApplyTree
patch-name preservation, fallback commit metadata, and run=False
command generation without repository side effects.

Changes in v2:
- Accept both valid Git `%aI` representations of UTC, `Z` and `+00:00`,
  in the fallback metadata test

Anders Heimer (9):
  oe/patch: drop shell=True from runcmd
  oeqa/oelib: add runcmd tests
  oe/patch: convert simple runcmd shell callers
  oe/patch: avoid shell pipeline in _applypatch
  oe/patch: remove obsolete PATCHFILE assignment
  oeqa/oelib: test GitApplyTree patch names
  oe/patch: pass GitApplyTree commands as argv lists
  oe/patch: return manual-resolution commands as argv lists
  oeqa/oelib: test patch command argv handling

 meta/lib/oe/patch.py                        | 131 +++++----
 meta/lib/oeqa/selftest/cases/oelib/patch.py | 282 ++++++++++++++++++++
 scripts/lib/devtool/upgrade.py              |   2 +-
 3 files changed, 355 insertions(+), 60 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/oelib/patch.py