Bug 9627

Summary: devtool seems to mangle incorrectly the .bb file, when modifying the set of patches for a component
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Igor Stoppa <igor.stoppa>
Component: devtools / tool chainAssignee: Unassigned <unassigned>
Status: NEW --- QA Contact:
Severity: normal    
Priority: Medium CC: benjamin.esquivel, jose.perez.carranza, meta.mr.watcher, meta.watcher, randy.macleod, sgw
Version: unspecified   
Target Milestone: 5.99   
Hardware: x86   
OS: Multiple   
Whiteboard: .
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Igor Stoppa 2016-05-13 12:42:21 UTC
I'm working on a recipe from meta-swup: swupd-client.

I udes devtool to remove one of the existing patches and replace it with another. 
I got a build error - patch not found, referring to the one I removed.

When I looked into the bb file, the SRC_URI looked like this:

SRC_URI = "https://download.clearlinux.org/releases/5700/clear/source/SRPMS/${BPN}-${PV}-105.src.rpm;extract=${BP}.tar.gz \
           file://Fix-build-failure-on-Yocto.patch \
           file://Right-usage-of-AC_ARG_ENABLE-on-bzip2.patch \
           file://Change-systemctl-path-to-OE-systemctl-path.patch \
           file://0001-Tolerate-quotes-in-os-release-files.patch \
           file://0005-swupd-client-Add-existence-check-to-staging-target.patch \
           file://0006-Backport-Use-rename-instead-of-tar-transform.patch \
           file://0007-Add-compatibility-with-libarchive-s-bsdtar-command.patch \
           file://0001-log.c-avoid-segfault-and-show-staging-file-name.patch \
           file://0002-downloads-minimize-syscalls-to-improve-performance.patch \
           file://0001-globals.c-Use-fake-address-as-default-updates-url.patch \
           file://0001-manifest.c-Always-initialize-preserver-pointer-of-fi.patch \
           file://0001-Add-configure-option-to-re-enable-updating-of-config.patch \
           file://0001-staging.c-Protect-tar-command-against-special-charac.patch \
           file://efi_combo_updater.c \
           ${@ 'file://efi-combo-trigger.service' if ${OSTRO_USE_DSK_IMAGES} else ''} \
           file://0001-Disable-boot-file-heuristics.patch \
           file://efi_combo_updater.c \
           ${@ 'file://efi-combo-trigger.service' if ${OSTRO_USE_DSK_IMAGES} else ''} \
           file://0001-Disable-boot-file-heuristics.patch \
           file://efi_combo_updater.c \
           ${@ 'file://efi-combo-trigger.service' if ${OSTRO_USE_DSK_IMAGES} else ''} \
           file://0001-Make-optional-the-special-handling-of-boot-files.patch \
           "

Notice that efi_combo_updater.c is now referred to 3 times and 0001-Disable-boot-file-heuristics.patch 2 times.

Unfortunately I do not recall the exact sequence of operations I did in the workspace, but they involved generating few patches, then squashing them and updating the original recipe.

I'll add more info if I see this happening again, but I thought it might be better to document it.
Comment 1 Igor Stoppa 2016-05-13 12:47:32 UTC
Also efi-combo-trigger.service is listed 3 times.
Comment 2 Igor Stoppa 2016-05-13 14:14:29 UTC
I figured out what was happening: a separate bbappend file was adding to the git stack the 0001-Disable-boot-file-heuristics.patch, which I removed.
This didn't alter the bbappend, thought, so when I tried to build again, the bbappend was still causing bitbake to look for the patch that is no more.

It's kinda complex, so I understand that it must be trick to deal with it from devtools, but it was very easy for me to shoot myself in the foot.
Comment 3 Randy MacLeod 2023-10-24 14:24:33 UTC
Bulk move from 4.99 or 0.00 to 5.99
Comment 4 Randy MacLeod 2025-02-14 16:46:36 UTC
bulk change to add Saul's non-WR address.
Comment 5 Randy MacLeod 2025-02-14 16:48:14 UTC
Bulk change: Remove Saul's old WR address.