Search code examples
patchyoctobitbake

Bitbake build error, Patch does not apply bitbake error?


I created new question, because I felt the previous one had been answered and this belongs in a new place.

I run bitbake core-image-minimal and I get the following error:

ERROR: systemd-1_232-r0 do_patch: Command Error: 'quilt --quiltrc /home/rama/repositories/poky/build/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/systemd/1_232-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
Applying patch 0001-systemd-udevd.service.in-set-MountFlags-shared.patch
patching file units/systemd-udevd.service.in
Hunk #1 FAILED at 21.
1 out of 1 hunk FAILED -- rejects in file units/systemd-udevd.service.in
Patch 0001-systemd-udevd.service.in-set-MountFlags-shared.patch does not apply (enforce with -f)
ERROR: systemd-1_232-r0 do_patch: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /home/rama/repositories/poky/build/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/systemd/1_232-r0/temp/log.do_patch.5314
ERROR: Task (/home/rama/repositories/poky/meta/recipes-core/systemd/systemd_232.bb:do_patch) failed with exit code '1'

I located the place where the patch is written in file meta-toradex/recipes-core/systemd/systemd_%.bbappend :

FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"

SRC_URI += " \
    file://rndis.network \
    file://0001-systemd-udevd.service.in-set-MountFlags-shared.patch \
"

PACKAGECONFIG_append = " networkd"

do_install_append() {
    # The network files need to be in /usr/lib/systemd, not ${systemd_unitdir}...
    install -d ${D}${prefix}/lib/systemd/network/
    install -m 0644 ${WORKDIR}/rndis.network ${D}${prefix}/lib/systemd/network/
}

FILES_${PN} += " \
    ${nonarch_base_libdir}/systemd/network \

I was told that I can :

  1. Remove the patch.
  2. Apply it manually.

To remove the path, Should I just remove it from SRC_URI list? How does one apply patch manually? I tried to google this, I did not quite get how this can be done.

Any help is appreciated, Thank you.


Solution

  • When looking at repo manifest, meta-toradex is not used, and in meta-toradex, it says oe-core BSP layer (obsolete). I think you're not using the right environment.

    Nevertheless, if you want to check patch problem, you can use devshell with bitbake -c devshell systemd, then type quilt push in new console. You then need to analyze with patch fails to apply by looking at patch file and corresponding source code.

    You should not modify existing layer, and create your own layer overriding recipes, but if you want to, you can indeed remove patch to SRC_URI, then use bitbake -c clean systemd; bitbake systemd and it should be OK.

    In Toradex developer knowledge-base, if you are making a new environment, i think you need to look at V2.1 and Later Images section.