Files
Khem Raj defa243f7f ufw: make usrmerge setup.py sed idempotent
do_package failed with a fatal QA error:

  QA Issue: ufw: Files/directories were installed but not shipped in
  any package: /usr/usr/lib/ufw/... (and on repeated rebuilds
  /usr/usr/usr/lib/ufw/...) [installed-vs-shipped]

Under the usrmerge DISTRO_FEATURE, do_configure:prepend rewrites the
single os.path.join('/lib', 'ufw') in setup.py to nonarch_base_libdir
(/usr/lib) with an in-place sed. The pattern '/lib' is not anchored, so
when do_configure re-runs against an already-patched ${S} (cached
unpack/patch, as happens on world rebuilds) it matches the '/lib' inside
the previously substituted '/usr/lib' and prepends another /usr, giving
/usr/usr/lib and then /usr/usr/usr/lib. FILES:${PN} ships
${nonarch_base_libdir}/ufw (/usr/lib/ufw), so the doubled paths are
unshipped and QA fails.

Anchor the substitution to the quoted literal '/lib'. After the first
run the text is '/usr/lib', which no longer contains '/lib', so
re-running do_configure is a no-op. Verified two forced do_configure
runs leave os.path.join('/usr/lib', 'ufw') and do_package succeeds.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-07-22 11:47:22 -07:00
..
…