Skip to content

Commit da98a75

Browse files
anujm1akuster
authored andcommitted
opencv: fix reproducibility issues
Download and unpack contrib modules and other repositories in S instead of WORKDIR so they don't escape file-prefix-map substitutions. Fixes a number of reproducibility problems because of OpenCV check macros that were embedding path to files in contrib/. MJ: this is backport from langdale and fixes not only reproducibility issues but also pseudo aborts in do_install when do_install is executed again after do_package (in incremental builds): | DEBUG: Executing shell function do_install | NOTE: DESTDIR=opencv/4.5.5-r0/image VERBOSE=1 cmake --build opencv/4.5.5-r0/build --target install -- | abort()ing pseudo client by server request. See https://wiki.yoctoproject.org/wiki/Pseudo_Abort for more details on this. | Check logfile: opencv/4.5.5-r0/pseudo//pseudo.log | Subprocess aborted and pseudo.log file shows: path mismatch [3 links]: ino 214373575 db 'opencv/4.5.5-r0/package/usr/src/debug/lib32-opencv/4.5.5-r0/contrib/modules/intensity_transform/src/bimef.cpp' req 'opencv/4.5.5-r0/contrib/modules/intensity_transform/src/bimef.cpp'. easily reproducible with: bitbake -c cleansstate opencv; bitbake -c package opencv; bitbake -c install -f opencv unlike ${S} ${WORKDIR}/contrib isn't in default PSEUDO_IGNORE_PATHS Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
1 parent 938a3ff commit da98a75

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

meta-oe/recipes-support/opencv/opencv_4.5.5.bb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,23 @@ IPP_MD5 = "${@ipp_md5sum(d)}"
3939

4040
SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
4141
SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https \
42-
git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib;branch=master;protocol=https \
43-
git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=ipp;name=ipp;protocol=https \
44-
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc;protocol=https \
45-
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg;protocol=https \
46-
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face;protocol=https \
47-
git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=wechat_qrcode;name=wechat-qrcode;protocol=https \
42+
git://github.com/opencv/opencv_contrib.git;destsuffix=git/contrib;name=contrib;branch=master;protocol=https \
43+
git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=git/ipp;name=ipp;protocol=https \
44+
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=git/boostdesc;name=boostdesc;protocol=https \
45+
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=git/vgg;name=vgg;protocol=https \
46+
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=git/face;name=face;protocol=https \
47+
git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=git/wechat_qrcode;name=wechat-qrcode;protocol=https \
4848
file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
4949
file://0003-To-fix-errors-as-following.patch \
5050
file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
5151
file://0001-Dont-use-isystem.patch \
5252
file://download.patch \
5353
file://0001-Make-ts-module-external.patch \
5454
file://0001-core-vsx-update-vec_absd-workaround-condition.patch \
55-
file://CVE-2023-2617.patch;patchdir=../contrib \
56-
file://CVE-2023-2618.patch;patchdir=../contrib \
55+
file://CVE-2023-2617.patch;patchdir=contrib \
56+
file://CVE-2023-2618.patch;patchdir=contrib \
5757
"
58-
SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib"
58+
SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=contrib"
5959

6060
S = "${WORKDIR}/git"
6161

@@ -64,7 +64,7 @@ S = "${WORKDIR}/git"
6464
OPENCV_DLDIR = "${WORKDIR}/downloads"
6565

6666
do_unpack_extra() {
67-
tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
67+
tar xzf ${S}/ipp/ippicv/${IPP_FILENAME} -C ${S}
6868

6969
md5() {
7070
# Return the MD5 of $1
@@ -79,22 +79,22 @@ do_unpack_extra() {
7979
test -e $DEST || ln -s $F $DEST
8080
done
8181
}
82-
cache xfeatures2d/boostdesc ${WORKDIR}/boostdesc/*.i
83-
cache xfeatures2d/vgg ${WORKDIR}/vgg/*.i
84-
cache data ${WORKDIR}/face/*.dat
85-
cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.caffemodel
86-
cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.prototxt
82+
cache xfeatures2d/boostdesc ${S}/boostdesc/*.i
83+
cache xfeatures2d/vgg ${S}/vgg/*.i
84+
cache data ${S}/face/*.dat
85+
cache wechat_qrcode ${S}/wechat_qrcode/*.caffemodel
86+
cache wechat_qrcode ${S}/wechat_qrcode/*.prototxt
8787
}
8888
addtask unpack_extra after do_unpack before do_patch
8989

9090
CMAKE_VERBOSE = "VERBOSE=1"
9191

92-
EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
92+
EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${S}/contrib/modules \
9393
-DWITH_1394=OFF \
9494
-DENABLE_PRECOMPILED_HEADERS=OFF \
9595
-DCMAKE_SKIP_RPATH=ON \
9696
-DOPENCV_ICV_HASH=${IPP_MD5} \
97-
-DIPPROOT=${WORKDIR}/ippicv_lnx \
97+
-DIPPROOT=${S}/ippicv_lnx \
9898
-DOPENCV_GENERATE_PKGCONFIG=ON \
9999
-DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \
100100
-DOPENCV_ALLOW_DOWNLOADS=OFF \

0 commit comments

Comments
 (0)