glibc checkoutScript fails on rebuild
tu-maurice opened this issue · 2 comments
I am building the glibc recipe for my target rootfs, but everytime I run bob build ...
again it fails with the following error. For now I'm deleting work/libs/glibc/src
as a workaround, which does cause a new checkout, but not a new build.
[ 7] CHECKOUT libs::glibc - work/libs/glibc/src/1/workspace
[ 7] |libs::glibc| Patch was (partially) squashed? Trying to recover...
[ 7] |libs::glibc| Step failed with return status 1; Command: patch -p $p -F 0 -f < $i
[ 7] |libs::glibc| Call stack (most recent call first)
[ 7] |libs::glibc| #0: Class patch, layer basement, line 42, in patchApplySeries
[ 7] |libs::glibc| #1: Recipe libs::glibc, layer basement, line 1, in main
My guess is bob tries to run the checkoutScript again on sources where the checkoutScript was already executed?
There are not many reasons why the checkoutScript
will run again for fixed packages. This is rather unusual. I'm wondering why this is the case for you. Did you update glibc and removed the digestSHA256
? It looks like the tar file was extracted again (and squashed the patch) which should not happen.
Anyway, the real culprit is the patch class that cannot cope with the fact when some or all of it's modifications were reverted. Plus the fact that the $<<glibc/*.diff>>
syntax concatenates all files which leads to additional problems when multiple patches patch the same file. See #55 for some similar issue.
I did neither of those things. I also keep deleting the source directory I mentioned above. However I do build 2 glibcs, one for the gcc-native to look at during compilation and one for the target rootfs, I have yet to find out how to tell bob to reuse the first glibc.