| Summary: |
Indirect depends on getopt will cause do_patch failures. |
| Product: |
[Build System, Metadata & Runtime] OE-Core
|
Reporter: |
Lin Zhang <zhang.lin16> |
| Component: |
devtools / tool chain | Assignee: |
Paul Eggleton <bluelightning> |
| Status: |
RESOLVED
OBSOLETE
|
QA Contact: |
|
| Severity: |
normal
|
|
|
| Priority: |
Undecided
|
CC: |
meta.mr.watcher, meta.watcher, richard.purdie
|
| Version: |
2.6 | |
|
| Target Milestone: |
--- | |
|
| Hardware: |
x86 | |
|
| OS: |
Multiple | |
|
| Whiteboard: |
|
|
OS type for building Yocto:
|
---
|
Type of Regression:
|
---
|
|
Verified:
|
|
Documentation change:
|
No (bug/feature does not impact docs)
|
| Attachments: |
|
Created attachment 4412 [details] A fix solution In poky/meta/classes/patch.bbclass, I found patch_do_patch depends on "${PATCHTOOL}-native:do_populate_sysroot". if ${PATCHTOOL} is quilt, we will find that quilt-native has RDEPENDS on getopt in turn, while getopt is provided by util-linux. During the building process, if util-linux hasn't been DO_POPULATE_SYSROOTed yet, other packages depending on quilt will fail! eg: =========== ERROR: pciutils-3.5.1-r0 do_patch: Command Error: 'quilt --quiltrc /mnt/JenkinsBuild/workspace/CGEL_V6/cgel_v6_tl_mergeci/cgel6x_yocto/build_output/build_aarch64-busybox-console/tmp/sysroots/x86_64-linux/etc/quiltrc push' exited with 0 Output: /mnt/JenkinsBuild/workspace/CGEL_V6/cgel_v6_tl_mergeci/cgel6x_yocto/build_output/build_aarch64-busybox-console/tmp/sysroots/x86_64-linux/usr/share/quilt/push: line 299: /mnt/JenkinsBuild/workspace/CGEL_V6/cgel_v6_tl_mergeci/cgel6x_yocto/build_output/build_aarch64-busybox-console/tmp/sysroots/x86_64-linux/bin/getopt: No such file or directory Usage: quilt push [-afqv] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [--refresh] [num|patch] ERROR: pciutils-3.5.1-r0 do_patch: Function failed: patch_do_patch ERROR: Logfile of failure stored in: /mnt/JenkinsBuild/workspace/CGEL_V6/cgel_v6_tl_mergeci/cgel6x_yocto/build_output/build_aarch64-busybox-console/tmp/work/aarch64-poky-linux/pciutils/3.5.1-r0/temp/log.do_patch.4368 NOTE: recipe pciutils-3.5.1-r0: task do_patch: Failed ERROR: Task (/mnt/JenkinsBuild/workspace/CGEL_V6/cgel_v6_tl_mergeci/cgel6x_yocto/sources/poky/meta/recipes-bsp/pciutils/pciutils_3.5.1.bb:do_patch) failed with exit code '1' ========== In further debugging, I found that quilt has an private implementation on getopt, to fix this bug, just pass "--without-getopt" to EXTRA_OECONF of quilt-native.inc.