I share an sstate-cache with my fellow developers and I was assessing why sometimes things got rebuild even though I did not expect this.
One of the things I discovered was that we had two versions of of glog/0.3.5-r0 in sstate.
The difference was caused run.do_configure where one user had this in run.do_configure
do_configure() { cmake_do_configure # remove WORKDIR info to improve reproducibility if [ -f "/workdir/build-nano/tmp/work/aarch64-sorama-linux/glog/0.3.5-r0/build/config.h" ] ; then sed -i 's/'$(echo /workdir/build-nano/tmp/work/aarch64-sorama-linux/glog/0.3.5-r0 | sed 's_/_\\/_g')'/../g' /workdir/build-nano/tmp/work/aarch64-sorama-linux/glog/0.3.5-r0/build/config.h fi }
whereas the other just had:
do_configure() { cmake_do_configure }
The weird thing is that these two builds were about a day apart, they were build on the same system with as far as I know the same metadata, the same distro, the same image etc etc
User settings should also be the same (we build under docker and I checked, we used the same version of ubuntu in the container (18.04). (Actually the containers were generated from the same Docker file and docker inspect tells me the images are identical).
Anyone an idea how this happens and where that extra snippet comes from? (I grepped for the string "reproducibility" in the bitbake folder, but that did not help)