mbox series

[v2,0/2] package: replace copydebugsources shell pipelines

Message ID cover.1781766061.git.anders.heimer@est.tech
Headers show
Series package: replace copydebugsources shell pipelines | expand

Message

Anders Heimer June 18, 2026, 7:19 a.m. UTC
Replace the copydebugsources() sort/grep/sed shell pipeline with Python
filtering over the NUL-separated source list while keeping cpio for the
copy pass. Use an explicit prefix + "/" match before stripping the mapped
debug source prefix, replace the symlink fixup pipeline with os.walk()
plus cpio, use an argv-list mv for externalsrc relocation, and pass the
empty-directory find command as an argv list.

The externalsrc relocation keeps mv, but now with an argv list and
glob.glob(glob.escape(...)). This preserves the old shell "*" and mv
overwrite semantics.

The first cpio copy pass keeps the previous failure-tolerant behavior,
while the symlink fixup copy still reports cpio failures.

Benchmarks did not indicate regression.

Changes in v2:
  - Replace sort/grep/sed filtering with Python filtering while keeping cpio.
  - Preserve externalsrc mv behavior using argv-list mv.
  - Add test coverage for filtering, copy failures, symlinks, and relocation.

Anders Heimer (2):
  package: replace copydebugsources shell pipelines
  oeqa/selftest: add copydebugsources tests

 meta/lib/oe/package.py                        |  70 +++--
 meta/lib/oeqa/selftest/cases/oelib/package.py | 274 ++++++++++++++++++
 2 files changed, 322 insertions(+), 22 deletions(-)
 create mode 100644 meta/lib/oeqa/selftest/cases/oelib/package.py