diff --git a/opencv/PKGBUILD b/opencv/PKGBUILD index dd75401963..61e77c2a69 100644 --- a/opencv/PKGBUILD +++ b/opencv/PKGBUILD @@ -5,9 +5,11 @@ pkgbase=opencv pkgname=(opencv opencv-samples python-opencv) -[ "${CARCH}" == 'x86_86' ] && pkgname+=(opencv-cuda) -pkgver=4.7.0 -pkgrel=13 +case "${CARCH}" in + x86_64) pkgname+=(opencv-cuda) +esac +pkgver=4.8.0 +pkgrel=3 pkgdesc='Open Source Computer Vision Library' arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) license=(BSD) @@ -15,7 +17,7 @@ url='https://opencv.org/' depends=(onetbb openexr gst-plugins-base libdc1394 cblas lapack libgphoto2 openjpeg2 ffmpeg protobuf) makedepends=(cmake python-numpy python-setuptools mesa eigen hdf5 lapacke qt6-5compat vtk glew ant java-environment pugixml openmpi fmt nlohmann-json) -makedepends_x86_86=(cudnn) +makedepends_x86_64=(cudnn) optdepends=('opencv-samples: samples' 'vtk: for the viz module' 'glew: for the viz module' @@ -25,24 +27,25 @@ optdepends=('opencv-samples: samples' '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 - https://github.com/opencv/opencv/commit/82616eec.patch - protobuf-23.patch - vtk9.patch) -sha256sums=('8df0079cdbe179748a18d44731af62a245a45ebf5085223dc03133954c662973' - '42df840cf9055e59d0e22c249cfb19f04743e1bdad113d31b1573d3934d62584' - 'a71e8ffad606d518a846296a06e59beac38887b30021a72b08321aeffd43a75d' - '572f7b774678e2fc46b524ce72d4b0ddf175b2a576c6dcfd013d16165ba39863' - 'f35a2d4ea0d6212c7798659e59eda2cb0b5bc858360f7ce9c696c77d3029668e') + vtk9.patch + cuda-12.2.patch) +sha256sums=('cbf47ecc336d2bff36b0dcd7d6c179a9bb59e805136af6b9670ca944aef889bd' + 'b4aef0f25a22edcd7305df830fa926ca304ea9db65de6ccd02f6cfa5f3357dbb' + 'f35a2d4ea0d6212c7798659e59eda2cb0b5bc858360f7ce9c696c77d3029668e' + '2acacd8df0fab431aa2197304c4496f3e4d8a8de9305994a6474e4c66dc3a159') prepare() { patch -d $pkgname-$pkgver -p1 < vtk9.patch # Don't require all vtk optdepends - patch -d $pkgname-$pkgver -p1 < 82616eec.patch # https://github.com/opencv/opencv/issues/23323 - patch -d $pkgname-$pkgver -p1 < protobuf-23.patch # Fix build with protobuf 23 + patch -d $pkgname-$pkgver -p1 < cuda-12.2.patch # Fix build with CUDA 12.2 } build() { case "${CARCH}" in powerpc) export CXXFLAGS+=' -latomic' ;; + powerpc64) + export CFLAGS='-O2 -pipe' + export CXXFLAGS='-O2 -pipe' + ;; esac export JAVA_HOME="/usr/lib/jvm/default" @@ -73,15 +76,10 @@ build() { -DOPENCV_ENABLE_NONFREE=ON \ -DOPENCV_JNI_INSTALL_PATH=lib \ -DOPENCV_GENERATE_SETUPVARS=OFF \ - -DEIGEN_INCLUDE_PATH=/usr/include/eigen3" + -DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \ + -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \ + -Dprotobuf_MODULE_COMPATIBLE=ON" - case "${CARCH}" in - powerpc64) - export CFLAGS='-O2 -pipe' - export CXXFLAGS='-O2 -pipe' - ;; - esac - cmake -B build -S $pkgname-$pkgver $_opts \ -DBUILD_WITH_DEBUG_INFO=ON cmake --build build diff --git a/opencv/cuda-12.2.patch b/opencv/cuda-12.2.patch new file mode 100644 index 0000000000..e35e0d274a --- /dev/null +++ b/opencv/cuda-12.2.patch @@ -0,0 +1,27 @@ +diff --git a/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp b/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp +index f067dddaa701..77b5ee81a08e 100644 +--- a/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp ++++ b/modules/dnn/src/cuda4dnn/primitives/normalize_bbox.hpp +@@ -111,7 +111,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { + * or there might be several weights + * or we don't have to scale + */ +- if (weight != 1.0) ++ if (weight != static_cast(1.0)) + { + kernels::scale1_with_bias1(stream, output, input, weight, 1.0); + } +diff --git a/modules/dnn/src/cuda4dnn/primitives/region.hpp b/modules/dnn/src/cuda4dnn/primitives/region.hpp +index d22d44214e7b..cd44f061ec98 100644 +--- a/modules/dnn/src/cuda4dnn/primitives/region.hpp ++++ b/modules/dnn/src/cuda4dnn/primitives/region.hpp +@@ -121,7 +121,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { + new_coords + ); + +- if (nms_iou_threshold > 0) { ++ if (nms_iou_threshold > static_cast(0)) { + auto output_mat = output_wrapper->getMutableHostMat(); + CV_Assert(output_mat.type() == CV_32F); + for (int i = 0; i < input.get_axis_size(0); i++) { + diff --git a/opencv/protobuf-23.patch b/opencv/protobuf-23.patch deleted file mode 100644 index 6bd266800b..0000000000 --- a/opencv/protobuf-23.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake/OpenCVFindProtobuf.cmake b/cmake/OpenCVFindProtobuf.cmake -index 8835347d1d..473f5fd850 100644 ---- a/cmake/OpenCVFindProtobuf.cmake -+++ b/cmake/OpenCVFindProtobuf.cmake -@@ -31,6 +31,7 @@ if(BUILD_PROTOBUF) - set(HAVE_PROTOBUF TRUE) - else() - unset(Protobuf_VERSION CACHE) -+ find_package(Protobuf CONFIG QUIET) - find_package(Protobuf QUIET) - - # Backwards compatibility