* update opencv to 4.10.0-3

This commit is contained in:
Alexander Baldeck 2024-08-05 10:51:49 +02:00
parent 4b85965520
commit 09775f1456
3 changed files with 167 additions and 25 deletions

114
opencv/.SRCINFO Normal file
View File

@ -0,0 +1,114 @@
pkgbase = opencv
pkgdesc = Open Source Computer Vision Library
pkgver = 4.10.0
pkgrel = 3
url = https://opencv.org/
arch = x86_64
license = Apache-2.0
makedepends = ant
makedepends = cmake
makedepends = cuda
makedepends = cudnn
makedepends = eigen
makedepends = fmt
makedepends = gcc13
makedepends = git
makedepends = glew
makedepends = hdf5
makedepends = java-environment
makedepends = lapacke
makedepends = mesa
makedepends = nlohmann-json
makedepends = openmpi
makedepends = pugixml
makedepends = python-numpy
makedepends = python-setuptools
makedepends = qt6-5compat
makedepends = vtk
depends = abseil-cpp
depends = cblas
depends = ffmpeg
depends = freetype2
depends = gcc-libs
depends = glib2
depends = glibc
depends = gst-plugins-base
depends = gst-plugins-base-libs
depends = gstreamer
depends = harfbuzz
depends = lapack
depends = libdc1394
depends = libglvnd
depends = libjpeg-turbo
depends = libpng
depends = libtiff
depends = libwebp
depends = openexr
depends = openjpeg2
depends = verdict
depends = protobuf
depends = tbb
depends = zlib
optdepends = opencv-samples: samples
optdepends = vtk: for the viz module
optdepends = glew: for the viz module
optdepends = qt6-base: for the HighGUI module
optdepends = hdf5: for the HDF5 module
optdepends = opencl-icd-loader: For coding with OpenCL
optdepends = java-runtime: Java interface
source = git+https://github.com/opencv/opencv#tag=4.10.0
source = git+https://github.com/opencv/opencv_contrib#tag=4.10.0
source = vtk9.patch
sha256sums = 3882d3fdbd782983dcab19cada16a9206165d153bc5528f9007a48f27e52dc68
sha256sums = 24f040b420d63566aeb77191706ff08b446698adf13a715d1f3cc6b60d5c7c5b
sha256sums = f35a2d4ea0d6212c7798659e59eda2cb0b5bc858360f7ce9c696c77d3029668e
pkgname = opencv
pkgname = opencv-samples
pkgdesc = Open Source Computer Vision Library (samples)
depends = opencv
pkgname = python-opencv
pkgdesc = Python bindings for OpenCV
depends = fmt
depends = glew
depends = hdf5
depends = jsoncpp
depends = opencv
depends = openmpi
depends = pugixml
depends = python-numpy
depends = qt6-base
depends = vtk
pkgname = opencv-cuda
pkgdesc = Open Source Computer Vision Library (with CUDA support)
depends = abseil-cpp
depends = cblas
depends = ffmpeg
depends = freetype2
depends = gcc-libs
depends = glib2
depends = glibc
depends = gst-plugins-base
depends = gst-plugins-base-libs
depends = gstreamer
depends = harfbuzz
depends = lapack
depends = libdc1394
depends = libglvnd
depends = libjpeg-turbo
depends = libpng
depends = libtiff
depends = libwebp
depends = openexr
depends = openjpeg2
depends = verdict
depends = protobuf
depends = tbb
depends = zlib
depends = cudnn
provides = opencv=4.10.0
conflicts = opencv
options = !debug

4
opencv/.nvchecker.toml Normal file
View File

@ -0,0 +1,4 @@
[opencv]
source = 'github'
github = 'opencv/opencv'
use_max_tag = true

View File

@ -10,8 +10,8 @@ pkgname=(opencv
case "${CARCH}" in
x86_64) pkgname+=(opencv-cuda) ;;
esac
pkgver=4.9.0
pkgrel=6
pkgver=4.10.0
pkgrel=3
pkgdesc='Open Source Computer Vision Library'
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
license=(Apache-2.0)
@ -44,6 +44,7 @@ makedepends=(ant
cmake
eigen
fmt
git
glew
hdf5
java-environment
@ -56,7 +57,11 @@ makedepends=(ant
python-setuptools
qt6-5compat
vtk)
makedepends_x86_64=(cudnn)
makedepends_x86_64=(
cuda
cudnn
gcc13
)
optdepends=('opencv-samples: samples'
'vtk: for the viz module'
'glew: for the viz module'
@ -64,14 +69,13 @@ optdepends=('opencv-samples: samples'
'hdf5: for the HDF5 module'
'opencl-icd-loader: For coding with OpenCL'
'java-runtime: Java interface')
source=(https://github.com/opencv/opencv/archive/$pkgver/$pkgname-$pkgver.tar.gz
https://github.com/opencv/opencv_contrib/archive/$pkgver/opencv_contrib-$pkgver.tar.gz
source=(git+https://github.com/opencv/opencv#tag=$pkgver
git+https://github.com/opencv/opencv_contrib#tag=$pkgver
vtk9.patch)
sha256sums=('ddf76f9dffd322c7c3cb1f721d0887f62d747b82059342213138dc190f28bc6c'
'8952c45a73b75676c522dd574229f563e43c271ae1d5bbbd26f8e2b6bc1a4dae'
sha256sums=('3882d3fdbd782983dcab19cada16a9206165d153bc5528f9007a48f27e52dc68'
'24f040b420d63566aeb77191706ff08b446698adf13a715d1f3cc6b60d5c7c5b'
'f35a2d4ea0d6212c7798659e59eda2cb0b5bc858360f7ce9c696c77d3029668e')
case "${CARCH}" in
riscv64)
# fix: relocation truncated to fit: R_RISCV_PCREL_HI20 against `.LC19'
@ -80,19 +84,23 @@ case "${CARCH}" in
esac
prepare() {
patch -d $pkgname-$pkgver -p1 < vtk9.patch # Don't require all vtk optdepends
pushd opencv
patch -p1 < ../vtk9.patch # Don't require all vtk optdepends
# fix build with cudnn 9
git cherry-pick -n 05e48605a0aea00d3a89b9ab5e25cdf89568aa28
# fix build with CUDA 12.4
git cherry-pick -n 1668203a1c6474b8368e27c55abc10ae7f17c841
popd
pushd opencv_contrib
# fix build with CUDA 12.4
git cherry-pick -n 4e766a039eda04b75f28f6905e4192d99b7874c7
git cherry-pick -n 1ed3dd2c53888e3289afdb22ec4e9ebbff3dba87
git cherry-pick -n 8c16a489a1fa9e2ccf21ce8eeb7fbb1affe548b1
}
build() {
export LDFLAGS+=' -lverdict'
case "${CARCH}" in
powerpc) export CXXFLAGS+=' -latomic' ;;
powerpc64)
export CFLAGS='-O2 -pipe'
export CXXFLAGS='-O2 -pipe'
;;
esac
export JAVA_HOME="/usr/lib/jvm/default"
# cmake's FindLAPACK doesn't add cblas to LAPACK_LIBRARIES, so we need to specify them manually
_opts="-DWITH_OPENCL=ON \
@ -112,7 +120,7 @@ build() {
-DCMAKE_INSTALL_PREFIX=/usr \
-DCPU_BASELINE_DISABLE=SSE3 \
-DCPU_BASELINE_DISABLE=SSE2 \
-DOPENCV_EXTRA_MODULES_PATH=$srcdir/opencv_contrib-$pkgver/modules \
-DOPENCV_EXTRA_MODULES_PATH=$srcdir/opencv_contrib/modules \
-DOPENCV_SKIP_PYTHON_LOADER=ON \
-DLAPACK_LIBRARIES=/usr/lib/liblapack.so;/usr/lib/libblas.so;/usr/lib/libcblas.so \
-DLAPACK_CBLAS_H=/usr/include/cblas.h \
@ -123,22 +131,30 @@ build() {
-DOPENCV_GENERATE_SETUPVARS=OFF \
-DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
-Dprotobuf_MODULE_COMPATIBLE=ON \
-DBUILD_JAVA=OFF"
-Dprotobuf_MODULE_COMPATIBLE=ON"
cmake -B build -S $pkgname-$pkgver $_opts \
export LDFLAGS+=' -lverdict'
case "${CARCH}" in
powerpc) export CXXFLAGS+=' -latomic' ;;
powerpc64)
export CFLAGS='-O2 -pipe'
export CXXFLAGS='-O2 -pipe'
;;
esac
cmake -B build -S $pkgname $_opts \
-DBUILD_WITH_DEBUG_INFO=ON
cmake --build build
case "${CARCH}" in
x86_64)
CFLAGS="${CFLAGS} -fno-lto" CXXFLAGS="${CXXFLAGS} -fno-lto" LDFLAGS="${LDFLAGS} -fno-lto" \
cmake -B build-cuda -S $pkgname-$pkgver $_opts \
cmake -B build-cuda -S $pkgname $_opts \
-DBUILD_WITH_DEBUG_INFO=OFF \
-DWITH_CUDA=ON \
-DWITH_CUDNN=ON \
-DCMAKE_C_COMPILER=gcc-12 \
-DCMAKE_CXX_COMPILER=g++-12 \
-DCMAKE_C_COMPILER=gcc-13 \
-DCMAKE_CXX_COMPILER=g++-13 \
-DCUDA_ARCH_BIN='52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86-real;87-real;89-real;90-real;90-virtual' \
-DCUDA_ARCH_PTX='90-virtual'
cmake --build build-cuda
@ -152,6 +168,14 @@ package_opencv() {
# separate samples package
mv "$pkgdir"/usr/share/opencv4/samples "$srcdir"
case "${CARCH}" in
powerpc64le|riscv64|x86_64)
# Add java symlinks expected by some binary blobs
ln -sr "$pkgdir"/usr/share/java/{opencv4/opencv-${pkgver//./},opencv}.jar
ln -sr "$pkgdir"/usr/lib/{libopencv_java${pkgver//./},libopencv_java}.so
;;
esac
# Split Python bindings
rm -r "$pkgdir"/usr/lib/python3*
}