15 Commits

Author SHA256 Message Date
088d8f3472 Accepting request 1295121 from science
OBS-URL: https://build.opensuse.org/request/show/1295121
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/opencv?expand=0&rev=107
2025-07-23 14:31:45 +00:00
Ana Guerrero
49eb979600 * Update to version 4.12.0.
* Drop use of explicit so version from opencv-rpmlintrc filters.

OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=49
2025-07-22 14:12:21 +00:00
2be0c7f156 OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=48 2025-05-29 07:32:59 +00:00
78eb4d388d Accepting request 1275513 from home:simotek:branches:science
- export CMAKE_POLICY_VERSION_MINIMUM="3.5" to ignore cmakes
  minimum version warnings

OBS-URL: https://build.opensuse.org/request/show/1275513
OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=47
2025-05-29 07:32:30 +00:00
b14ecd3c48 Accepting request 1270562 from science
OBS-URL: https://build.opensuse.org/request/show/1270562
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/opencv?expand=0&rev=106
2025-04-18 14:15:06 +00:00
206a352cdd * Add opencv-qt6_9-highgui-linking-test.patch: Fix highgui module linkage with Qt 6.9 libraries [gh#opencv/opencv#27223, QTBUG-134774].
* Build with ninja; add BuildRequires: ninja.

OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=46
2025-04-17 13:16:32 +00:00
3b3f273b1f Accepting request 1267162 from science
OBS-URL: https://build.opensuse.org/request/show/1267162
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/opencv?expand=0&rev=105
2025-04-07 15:35:10 +00:00
8bc19f933a Make devel package conflicts between different flavors explicit.
OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=45
2025-04-04 14:01:33 +00:00
cfaea83045 OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=44 2025-04-02 07:45:17 +00:00
Ana Guerrero
755c6506b9 * Split into multiple flavors to support switch to Qt6 for openSUSE TW and Leap 16+.
* Use ldconfig_scriptlets macro for post(un) scripts.

OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=43
2025-04-01 09:15:32 +00:00
cb15227c84 Accepting request 1238759 from science
Update

OBS-URL: https://build.opensuse.org/request/show/1238759
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/opencv?expand=0&rev=104
2025-01-21 20:09:33 +00:00
651b80e0ac OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=42 2025-01-19 04:33:55 +00:00
eace3eb8c6 - update to 4.11.0, highlights below, for details check
https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110
  * Generic:
    + Internal C API cleanup and back-ports for 5.x.
    + RISC-V/AArch64: disable CPU features detection
    + Support C++20 standard
    + algoHint parameter for some functions to allow potentially
      faster, but not bit-exact implementation
  * Core Module:
    + Added int64 data type support for FileStorage
    + Fixed invalid attribute value handling in FileStorage
    + Extended LUT for FP16 support
    + Fixed stdDev tail filling with zeros with HAL in meanStdDev
    + Set and check allocator pointer for all cv::Mat instances
    + Improved accuracy of Rect::contains
    + Fixed result offset in minMaxIdx with HAL in some cases
    + Replaced C++ operators with wrapper functions on universal
      intrinsics backends
    + Extended cv::TickMeter
    + Rewrote OpenCL-OpenGL-interop device discovery routine
      without extensions and with Apple support
    + Marked cv::Mat(Mat&&) as noexcept
    + Multiple Eigen library interop improvements
  * Calib3d module:
    + Multiple chessboard detector improvements
    + Enabled checkerboard detection with a central / corner
      marker on a black tile
    + Fixed Rodrigues CV_32F and CV_64F type mismatch in
      projectPoints
    + Added fisheye::distort with non-identity projection matrix
    + SQPnP solver updates
    + Fixed vector access in USAC
  * Imgproc Module:
    + Added a new function that approximates the polygon bounding
      a convex hull with a certain number of sides
    + Added Weighted Hough Transform
    + Fixed bug in contours approximation
    + Fixed bug in divSpectrums
    + Fixed result buffer overflow in intersectConvexConvex_ for
      non-convex input
    + Added flag to GaussianBlur for faster but not bit-exact
      implementation
    + Added flag to cvtColor for faster but not bit-exact
      implementation
    + Fixed fillPoly drawing over boundaries
  * DNN Module:
    + [GSoC] Blockwise quantization support
    + Faster implementation of blobFromImages for cpu nchw output
    + DNN optimization with RISC-V RVV
    + Added DepthToSpace and SpaceToDepth
    + Yolo v10 support and related samples
    + Parallel implementation of nary elementwise operations
    + Support for Unflatten operation required by Attention layer
    + Erf and GELU layers optimization
    + Activations optimization with v_exp
    + Fixed compilation errors with different OpenVINO versions
    + Fixed matmul crash with CuDNN
    + Fixed CuDNN runtime version check for CuDNN 9+
    + Added ONNX TopK
    + Fixed buffer allocation in einsum (fixed random crash on
      32-bit platforms)
    + Added Leaky RELU support for TFLite
    + Switched to run-time dispatcher for Winograd
  * Objdetect module:
    + Properly check markers when none are provided
    + Fixed invalid vector access in QR decoder and encoder
  * Highgui module:
    + Added new Highgui backend on top of Framebuffer
    + Fixed HWND_TOP window handling on Windows
    + [GSoC] Added OpenGL support with GTK3
    + Several OpenGL related fixed on Linux
    + Fixed leak in cvGetWindowRect_COCOA
  * Imgcodecs module:
    + [GSoC] New API for Animations with WEBP, AVIF and Animated
      PNG support
    + [GSoC] Add GIF decode and encode for imgcodecs
    + Added experimental JPEG XL (jxl) codec support
    + Initial RGB layout support in imread and imdecode
    + Fixed imread output type for some cases
    + Fixed file descriptor leak in HDR decoder
    + Fixed corrupted JPEG decoding
    + Improved error handling in image codecs
    + Fixed Bayer2Gray SIMD for U8
    + Avoid uninitialized value read in AVIF
    + Implemented imencodemulti()
    + Fixed compatibility with different OpenEXR versions
  * VideoIO module:
    + Added VideoCapture constructor for in-memory data stream
    + Fixed bugs in native video encoding on Android
    + Added BGRA streams support in GStreamer back-end
    + Updated materials for Orbbec cameras support
    + Fixed cv::VideoWriter with FFmpeg timestamps encapsulation
    + Fixed memory leak in Dshow back-end
    + Fixed V4L NV12 color conversion
    + Android native camera feature enhancements
    + AndroidMediaNdkCapture pixel format enhancement
    + Fixed VideoCapture fails to read single image with digits
      in name
    + Fixed writer setProperty with FFmpeg plugin
  * Video module:
    + Fixed VitTrack in the case where crop size grows until
      out-of-memory when the input is black
  * Features2d:
    + Fixed out of bounds access in SIFT
  * G-API module:
    + Fixed input buffer read overflow in vectorized G-API
      convertTo implementation
    + Extended G-API onnx::Params to pass arbitrary session
      options
    + Handling I32/I64 data types in G-API ONNX back-end
    + G-API: Introduce level optimization flag for ONNXRT backend
  * Optimizations:
    + New FastCV-based HAL for Qualcomm SoCs (-DWITH_FASTCV=ON
      CMake option)
    + Added own vectorized version of v_expv_log, v_erf, v_sin
      and v_cos
    + KleidiCV HAL for ARM updated to KleidiCV 0.3
    + Initial version of HAL for RISC-V RVV 1.0 and RISC-V RVV
      0.7.1 extensions
    + Used LMUL=2 in the RISC-V Vector (RVV) backend of Universal
      Intrinsic.
    + More functions in NDSRVP HAL for RISC-V P extension
    + Updated built-in IPP to version 2021.12. Fixed build issues
      with old and new Intel IPP layouts
  * Platforms:
    + HWAsan support on Android
    + Several CUDA fixes for old GPUs without FP16 support
    + Added getStdAllocator() to cv::cuda::GpuMat
    + Updated NPP calls to use the new NppStreamContext API if
      available
    + More convenient GpuMatND constructor
    + Added run-time GPU check to haveCUDA
    + Add support for QNX
  * OpenCV.js
    + Extended API white-list and added more tests
    + Split white-list per module. Added opportunity to cover
      opencv_contrib modules
    + Fix incorrect string format in js build script
    + Emscripten build fixes with SIMD intrinsics
    + Added more public types for USAC support
    + Rename Mat::clone binding because it is used in Emscripten
    + Fixed C preprocessor stringification
    + Fix enum generation issues
    + Multiple test improvements

OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=41
2025-01-19 04:28:27 +00:00
1078d9bfd3 Accepting request 1226857 from science
OBS-URL: https://build.opensuse.org/request/show/1226857
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/opencv?expand=0&rev=103
2024-11-27 21:10:43 +00:00
2e61cba436 - fix build with python 3.13 (needs python-setuptools)
LUT #25554, meanStdDev #25483, moments 25490,
      normHamming #25491. HAL entries for transpose #25342,
    + Added in-place support for cartToPolar and polarToCart
      Otsu threshold #25509. Added new HAL entries for
    + Fixed several bugs in findHomography implementation
    + Multiple improvements in findChessboardCorners
    + Fixed bugs in several ONNX layers: Slice #25660, Range
      #25414, Clip #25319, ReduceMean #25120, Einsum #25100,
    + Optimized fastDepthwiseConv for RISC-V P Packed SIMD
    + Added broadcasting if a.rank() != b.rank() with
    + Added Vulkan backend for NaryEltwiseLayer in DNN
    + New LAPACK interface support on MacOS and derivatives
    + CANN backend: bug fix, support HardSwish,
    + LayerNormalization: support OpenVINO, OpenCL and
      - Introduced "inferenence only" ("benchmark") mode
      TrackerVit for a vision transformer-based VitTrack.
    - Supported OpenVINO 2021.4.1 LTS release
  * Planned migration on Apache 2 license for next releases

OBS-URL: https://build.opensuse.org/package/show/science/opencv?expand=0&rev=40
2024-11-27 10:09:37 +00:00
9 changed files with 450 additions and 101 deletions

4
_multibuild Normal file
View File

@@ -0,0 +1,4 @@
<multibuild>
<package>qt6</package>
<package>nogui</package>
</multibuild>

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b2171af5be6b26f7a06b1229948bbb2bdaa74fcf5cd097e0af6378fce50a6eb9
size 94993429

3
opencv-4.12.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44c106d5bb47efec04e531fd93008b3fcd1d27138985c5baf4eafac0e1ec9e9d
size 95254890

View File

@@ -0,0 +1,21 @@
---
modules/highgui/CMakeLists.txt | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: opencv-4.11.0/modules/highgui/CMakeLists.txt
===================================================================
--- opencv-4.11.0.orig/modules/highgui/CMakeLists.txt
+++ opencv-4.11.0/modules/highgui/CMakeLists.txt
@@ -125,7 +125,11 @@ elseif(HAVE_QT)
endif()
foreach(dt_dep ${qt_deps})
- add_definitions(${Qt${QT_VERSION_MAJOR}${dt_dep}_DEFINITIONS})
+ if((QT_VERSION_MAJOR GREATER 5) AND (QT_VERSION_MINOR GREATER 8))
+ link_libraries(${Qt${QT_VERSION_MAJOR}${dt_dep}})
+ else()
+ add_definitions(${Qt${QT_VERSION_MAJOR}${dt_dep}_DEFINITIONS})
+ endif()
include_directories(${Qt${QT_VERSION_MAJOR}${dt_dep}_INCLUDE_DIRS})
list(APPEND HIGHGUI_LIBRARIES ${Qt${QT_VERSION_MAJOR}${dt_dep}_LIBRARIES})
endforeach()

3
opencv-rpmlintrc Normal file
View File

@@ -0,0 +1,3 @@
addFilter("opencv.*SUSE_Backports_policy-SLE_conflict")
addFilter("libopencv_highgui.*-qt6.*: E: shlib-policy-name-error")
addFilter("libopencv_highgui.*-gtk3.*: E: shlib-policy-name-error")

View File

@@ -1,3 +1,193 @@
-------------------------------------------------------------------
Wed Jul 9 07:04:51 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Update to version 4.12.0:
* Long list of changes, see
<https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120>.
- Drop use of explicit so version from opencv-rpmlintrc filters.
-------------------------------------------------------------------
Wed May 7 09:53:57 UTC 2025 - Simon Lees <sflees@suse.de>
- export CMAKE_POLICY_VERSION_MINIMUM="3.5" to ignore cmakes
minimum version warnings
-------------------------------------------------------------------
Wed Apr 9 17:59:51 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Add opencv-qt6_9-highgui-linking-test.patch: Fix highgui module
linkage with Qt 6.9 libraries [gh#opencv/opencv#27223,
QTBUG-134774].
- Build with ninja; add BuildRequires: ninja.
-------------------------------------------------------------------
Thu Apr 3 07:55:55 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Make devel package conflicts between different flavors explicit.
-------------------------------------------------------------------
Wed Feb 26 14:15:46 UTC 2025 - Atri Bhattacharya <badshah400@gmail.com>
- Split into multiple flavors to support switch to Qt6 for
openSUSE TW and Leap 16+:
* Main (no-name) flavor builds with Qt5.
* qt6 flavor builds with Qt6
* nogui flavor builds without Qt support.
- Use ldconfig_scriptlets macro for post(un) scripts.
-------------------------------------------------------------------
Sat Jan 18 09:20:42 UTC 2025 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- update to 4.11.0, highlights below, for details check
https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110
* Generic:
+ Internal C API cleanup and back-ports for 5.x.
+ RISC-V/AArch64: disable CPU features detection
+ Support C++20 standard
+ algoHint parameter for some functions to allow potentially
faster, but not bit-exact implementation
* Core Module:
+ Added int64 data type support for FileStorage
+ Fixed invalid attribute value handling in FileStorage
+ Extended LUT for FP16 support
+ Fixed stdDev tail filling with zeros with HAL in meanStdDev
+ Set and check allocator pointer for all cv::Mat instances
+ Improved accuracy of Rect::contains
+ Fixed result offset in minMaxIdx with HAL in some cases
+ Replaced C++ operators with wrapper functions on universal
intrinsics backends
+ Extended cv::TickMeter
+ Rewrote OpenCL-OpenGL-interop device discovery routine
without extensions and with Apple support
+ Marked cv::Mat(Mat&&) as noexcept
+ Multiple Eigen library interop improvements
* Calib3d module:
+ Multiple chessboard detector improvements
+ Enabled checkerboard detection with a central / corner
marker on a black tile
+ Fixed Rodrigues CV_32F and CV_64F type mismatch in
projectPoints
+ Added fisheye::distort with non-identity projection matrix
+ SQPnP solver updates
+ Fixed vector access in USAC
* Imgproc Module:
+ Added a new function that approximates the polygon bounding
a convex hull with a certain number of sides
+ Added Weighted Hough Transform
+ Fixed bug in contours approximation
+ Fixed bug in divSpectrums
+ Fixed result buffer overflow in intersectConvexConvex_ for
non-convex input
+ Added flag to GaussianBlur for faster but not bit-exact
implementation
+ Added flag to cvtColor for faster but not bit-exact
implementation
+ Fixed fillPoly drawing over boundaries
* DNN Module:
+ [GSoC] Blockwise quantization support
+ Faster implementation of blobFromImages for cpu nchw output
+ DNN optimization with RISC-V RVV
+ Added DepthToSpace and SpaceToDepth
+ Yolo v10 support and related samples
+ Parallel implementation of nary elementwise operations
+ Support for Unflatten operation required by Attention layer
+ Erf and GELU layers optimization
+ Activations optimization with v_exp
+ Fixed compilation errors with different OpenVINO versions
+ Fixed matmul crash with CuDNN
+ Fixed CuDNN runtime version check for CuDNN 9+
+ Added ONNX TopK
+ Fixed buffer allocation in einsum (fixed random crash on
32-bit platforms)
+ Added Leaky RELU support for TFLite
+ Switched to run-time dispatcher for Winograd
* Objdetect module:
+ Properly check markers when none are provided
+ Fixed invalid vector access in QR decoder and encoder
* Highgui module:
+ Added new Highgui backend on top of Framebuffer
+ Fixed HWND_TOP window handling on Windows
+ [GSoC] Added OpenGL support with GTK3
+ Several OpenGL related fixed on Linux
+ Fixed leak in cvGetWindowRect_COCOA
* Imgcodecs module:
+ [GSoC] New API for Animations with WEBP, AVIF and Animated
PNG support
+ [GSoC] Add GIF decode and encode for imgcodecs
+ Added experimental JPEG XL (jxl) codec support
+ Initial RGB layout support in imread and imdecode
+ Fixed imread output type for some cases
+ Fixed file descriptor leak in HDR decoder
+ Fixed corrupted JPEG decoding
+ Improved error handling in image codecs
+ Fixed Bayer2Gray SIMD for U8
+ Avoid uninitialized value read in AVIF
+ Implemented imencodemulti()
+ Fixed compatibility with different OpenEXR versions
* VideoIO module:
+ Added VideoCapture constructor for in-memory data stream
+ Fixed bugs in native video encoding on Android
+ Added BGRA streams support in GStreamer back-end
+ Updated materials for Orbbec cameras support
+ Fixed cv::VideoWriter with FFmpeg timestamps encapsulation
+ Fixed memory leak in Dshow back-end
+ Fixed V4L NV12 color conversion
+ Android native camera feature enhancements
+ AndroidMediaNdkCapture pixel format enhancement
+ Fixed VideoCapture fails to read single image with digits
in name
+ Fixed writer setProperty with FFmpeg plugin
* Video module:
+ Fixed VitTrack in the case where crop size grows until
out-of-memory when the input is black
* Features2d:
+ Fixed out of bounds access in SIFT
* G-API module:
+ Fixed input buffer read overflow in vectorized G-API
convertTo implementation
+ Extended G-API onnx::Params to pass arbitrary session
options
+ Handling I32/I64 data types in G-API ONNX back-end
+ G-API: Introduce level optimization flag for ONNXRT backend
* Optimizations:
+ New FastCV-based HAL for Qualcomm SoCs (-DWITH_FASTCV=ON
CMake option)
+ Added own vectorized version of v_expv_log, v_erf, v_sin
and v_cos
+ KleidiCV HAL for ARM updated to KleidiCV 0.3
+ Initial version of HAL for RISC-V RVV 1.0 and RISC-V RVV
0.7.1 extensions
+ Used LMUL=2 in the RISC-V Vector (RVV) backend of Universal
Intrinsic.
+ More functions in NDSRVP HAL for RISC-V P extension
+ Updated built-in IPP to version 2021.12. Fixed build issues
with old and new Intel IPP layouts
* Platforms:
+ HWAsan support on Android
+ Several CUDA fixes for old GPUs without FP16 support
+ Added getStdAllocator() to cv::cuda::GpuMat
+ Updated NPP calls to use the new NppStreamContext API if
available
+ More convenient GpuMatND constructor
+ Added run-time GPU check to haveCUDA
+ Add support for QNX
* OpenCV.js
+ Extended API white-list and added more tests
+ Split white-list per module. Added opportunity to cover
opencv_contrib modules
+ Fix incorrect string format in js build script
+ Emscripten build fixes with SIMD intrinsics
+ Added more public types for USAC support
+ Rename Mat::clone binding because it is used in Emscripten
+ Fixed C preprocessor stringification
+ Fix enum generation issues
+ Multiple test improvements
-------------------------------------------------------------------
Sat Nov 23 16:54:49 UTC 2024 - Dirk Müller <dmueller@suse.com>
- fix build with python 3.13 (needs python-setuptools)
-------------------------------------------------------------------
Sun Jun 9 01:48:55 UTC 2024 - Alessandro de Oliveira Faria <cabelo@opensuse.org>
@@ -9,13 +199,13 @@ Sun Jun 9 01:48:55 UTC 2024 - Alessandro de Oliveira Faria <cabelo@opensuse.org
cv::Mat::convertTo and analogs.
+ Fixed undefined behaviour in some cases related to FP16
arithmetic #25598 + Extended HAL API for minMaxIdx #25563,
LUT #25554, meanStdDev #25483, moments 25490,
normHamming #25491. HAL entries for transpose #25342,
LUT #25554, meanStdDev #25483, moments 25490,
normHamming #25491. HAL entries for transpose #25342,
some arithmetic functions #25574, #25506
+ Persistence: output reals as human-friendly expression.
#25351
+ Added cgroups v2 support to parallel framework #25285
+ Added in-place support for cartToPolar and polarToCart
+ Added in-place support for cartToPolar and polarToCart
#24893
* Imgproc Module:
+ Added relative displacement field option to cv::remap #24621
@@ -23,14 +213,14 @@ Sun Jun 9 01:48:55 UTC 2024 - Alessandro de Oliveira Faria <cabelo@opensuse.org
+ Refactored EMD algorithm to get rid of C-API usage #25469
+ Fixed bug in stackBlur with large kernels #25513
+ Extended HAL for projectPoints #25511, equalizeHist #25565,
Otsu threshold #25509. Added new HAL entries for
Otsu threshold #25509. Added new HAL entries for
gaussianBlur#25397, remap #25399, bilaterialFilter #25343.
* Calib3d Module:
+ Fixed several bugs in hand-eye calibration methods #24897,
#25423
+ Fixed several bugs in findHomography implementation
+ Fixed several bugs in findHomography implementation
#25308, #25665
+ Multiple improvements in findChessboardCorners
+ Multiple improvements in findChessboardCorners
implementation: #25365, 25195, 25177, 25182, 25145, 24779,
24710, 24833, 25090
+ Improved symmetric circles grid pattern detection #25258
@@ -45,22 +235,22 @@ Sun Jun 9 01:48:55 UTC 2024 - Alessandro de Oliveira Faria <cabelo@opensuse.org
+ Added support for several TFLite layers: Global_Pool_2D
#25613, Transpose #25297, HardSwishInt8 #24985, split, fully
connected, SoftMax, Cast #25273.
+ Fixed bugs in several ONNX layers: Slice #25660, Range
#25414, Clip #25319, ReduceMean #25120, Einsum #25100,
+ Fixed bugs in several ONNX layers: Slice #25660, Range
#25414, Clip #25319, ReduceMean #25120, Einsum #25100,
Norm #24808, negative axis support in Concat #24865.
+ Added new ONNX layers: Mod #24765, GroupNorm layer #24610.
+ Added more DNN layers with OpenVINO #25524, #25291, 25518.
+ Optimized fastDepthwiseConv #25361 and int8 layers 25230 for
RISC-V with RVV extension
+ Optimized fastDepthwiseConv for RISC-V P Packed SIMD
+ Optimized fastDepthwiseConv for RISC-V P Packed SIMD
Extension v0.5.2 #24556
+ Optimized Attention #24476, #25271, #25238, #24613, 25076.
+ Added parallel version for scatter and scatterND #24813
+ Added broadcasting if a.rank() != b.rank() with
+ Added broadcasting if a.rank() != b.rank() with
CuDNN backend #24834
+ Tuned Winograd algorithm usage for convolutions #24709
+ Added Raft model support and tracking sample with it #24913
+ Added Vulkan backend for NaryEltwiseLayer in DNN
+ Added Vulkan backend for NaryEltwiseLayer in DNN
module #24768
+ Imporved modern Yolo detectors support. Added sample and
documentation #24898, #24611
@@ -101,7 +291,7 @@ Sun Jun 9 01:48:55 UTC 2024 - Alessandro de Oliveira Faria <cabelo@opensuse.org
* Platforms support:
+ CUDA 12.4+ support #25658
+ Wayland back-end for Linux #25551, #25510, #25502
+ New LAPACK interface support on MacOS and derivatives
+ New LAPACK interface support on MacOS and derivatives
#24804, #25625
+ Added initial version of HAL for RISC-V processors with
P-extension (v0.5.2, Andes platforms) #25167
@@ -146,13 +336,13 @@ Sat Dec 30 15:54:41 UTC 2023 - Alessandro de Oliveira Faria <cabelo@opensuse.org
+ Tests and multiple fixes for Yolo family models support
+ New layers support and bug fixes in CUDA backend: GEMM,
Gelu, Add
+ CANN backend: bug fix, support HardSwish,
+ CANN backend: bug fix, support HardSwish,
LayerNormalization and InstanceNormalization
+ LayerNormalization: support OpenVINO, OpenCL and
+ LayerNormalization: support OpenVINO, OpenCL and
CUDA backend.
* G-API module:
+ Intel® OpenVINO™ DL inference backend:
- Introduced "inferenence only" ("benchmark") mode
- Introduced "inferenence only" ("benchmark") mode
in the OV2.0 backend.
- Fixed model layout setting issue in the OV2.0 backend.
- Fixed/relaxed various asserts in the OV2.0 backend.
@@ -183,7 +373,7 @@ Sat Dec 30 15:54:41 UTC 2023 - Alessandro de Oliveira Faria <cabelo@opensuse.org
Aruco makers, Charuco boards and QR codes.
* Video:
+ Google Summer of Code: added a new object tracking API
TrackerVit for a vision transformer-based VitTrack.
TrackerVit for a vision transformer-based VitTrack.
This work is done by LIU Pengyu.
* VideoIO:
+ Videoio: Add raw encoded video stream encapsulation
@@ -610,7 +800,7 @@ Wed Nov 24 21:53:53 UTC 2021 - Dirk Müller <dmueller@suse.com>
- New layers and models support
- Some existing layers have been fixed
- Soft-NMS implementation
- Supported OpenVINO 2021.4.1 LTS release
- Supported OpenVINO 2021.4.1 LTS release
-------------------------------------------------------------------
Mon Aug 30 09:20:06 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
@@ -808,7 +998,7 @@ Sun Sep 13 16:55:46 UTC 2020 - Dirk Mueller <dmueller@suse.com>
* BIMEF: A Bio-Inspired Multi-Exposure Fusion Framework for Low-light Image Enhancement
* Enable Otsu thresholding for CV_16UC1 images
* Add Stroke Width Transform algorithm for Text Detection
* Planned migration on Apache 2 license for next releases
* Planned migration on Apache 2 license for next releases
- remove opencv-includedir.patch (obsolete)
-------------------------------------------------------------------

View File

@@ -1,7 +1,7 @@
#
# spec file for package opencv
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,40 +16,72 @@
#
%global flavor @BUILD_FLAVOR@%{nil}
%define pname opencv
%if "%flavor" == ""
%define qt_ver 5
%bcond_without gui
# Only build pythons for main flavor
%bcond_without python3
%define psuffix %{nil}
%endif
%if "%flavor" == "qt6"
%define qt_ver 6
%bcond_without gui
%bcond_with python3
%define psuffix -%{flavor}
%if 0%{?suse_version} < 1600
ExclusiveArch: do_not_build
%endif
%endif
%if "%flavor" == "nogui"
%bcond_with gui
%bcond_with python3
%define psuffix -%{flavor}
%endif
# Build failure with LTO enabled on ppc64le boo#1146096
%ifarch ppc64le
%define _lto_cflags %{nil}
%endif
%define libname lib%{name}
%define soname 410
%define libname lib%{pname}
%define soname 412
# disabled by default as many fail
%bcond_with tests
%bcond_without gapi
%bcond_without ffmpeg
%bcond_without python3
%bcond_without openblas
%if %{with python3}
# Enable python311 for SLE15 in addition to the regular python3 which is python 3.6
%{?sle15allpythons}
%endif
%define __builder ninja
Name: opencv
Version: 4.10.0
Name: %{pname}%{psuffix}
Version: 4.12.0
Release: 0
Summary: Collection of algorithms for computer vision
# GPL-2.0 AND Apache-2.0 files are in 3rdparty/ittnotify which is not build
License: BSD-3-Clause AND GPL-2.0-only AND Apache-2.0
Group: Development/Libraries/C and C++
URL: https://opencv.org/
Source0: https://github.com/opencv/opencv/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source0: https://github.com/opencv/opencv/archive/%{version}.tar.gz#/%{pname}-%{version}.tar.gz
# Several modules from the opencv_contrib package
Source1: https://github.com/opencv/opencv_contrib/archive/%{version}.tar.gz#/opencv_contrib-%{version}.tar.gz
Source99: opencv-rpmlintrc
# PATCH-FIX-UPSTREAM opencv-qt6_9-highgui-linking-test.patch gh#opencv/opencv#27223 badshah400@gmail.com -- Fix highgui module linking against Qt 6.9; patch sent upstream
Patch0: opencv-qt6_9-highgui-linking-test.patch
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: libeigen3-devel
BuildRequires: libjpeg-devel
BuildRequires: memory-constraints
BuildRequires: ninja
BuildRequires: pkgconfig
# OpenJPEGTargets.cmake erroneously requires the binaries
BuildRequires: openjpeg2
@@ -68,8 +100,12 @@ BuildRequires: pkgconfig(libv4lconvert)
BuildRequires: pkgconfig(libva)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(zlib)
%if %{with gui}
%if %{qt_ver} < 6
Provides: opencv-qt5 = %{version}
Obsoletes: opencv-qt5 < %{version}
%endif
%endif
%if %{with gapi}
BuildRequires: ade-devel >= 0.1.0
%endif
@@ -83,18 +119,41 @@ BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
%else
BuildRequires: python3-base
BuildRequires: python3-setuptools
%endif
BuildRequires: pkgconfig(Qt5Concurrent) >= 5.2.0
BuildRequires: pkgconfig(Qt5Gui) >= 5.2.0
%if %{with gui}
BuildRequires: pkgconfig(Qt%{qt_ver}Concurrent) >= 5.2.0
BuildRequires: pkgconfig(Qt%{qt_ver}Gui) >= 5.2.0
BuildRequires: pkgconfig(Qt%{qt_ver}Test) >= 5.2.0
%if 0%{?qt_ver} < 6
BuildRequires: pkgconfig(Qt5OpenGL) >= 5.2.0
BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
%else
BuildRequires: pkgconfig(Qt6OpenGLWidgets)
%endif
%endif
%if "%{flavor}" != ""
BuildRequires: %{libname}%{soname} = %{version}
BuildRequires: libopencv_aruco%{soname} = %{version}
BuildRequires: libopencv_face%{soname} = %{version}
BuildRequires: libopencv_gapi%{soname} = %{version}
BuildRequires: libopencv_imgcodecs%{soname} = %{version}
BuildRequires: libopencv_objdetect%{soname} = %{version}
BuildRequires: libopencv_optflow%{soname} = %{version}
BuildRequires: libopencv_superres%{soname} = %{version}
BuildRequires: libopencv_videoio%{soname} = %{version}
BuildRequires: libopencv_videostab%{soname} = %{version}
BuildRequires: libopencv_ximgproc%{soname} = %{version}
%endif
%if %{with ffmpeg}
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libswscale)
%endif
%if %{with gui}
Requires: libopencv_highgui%{soname}%{psuffix} = %{version}
%endif
%if %{with python3}
%if "%pythons" != "python3"
# For Tumbleweed and SLE15 with activated multiflavor
@@ -106,14 +165,16 @@ BuildRequires: pkgconfig(libswscale)
%define python_files() -n python3-%{**}
%endif
%endif
%if "%{name}" != "{pname}"
Provides: %{pname} = %{version}
%endif
%description
OpenCV means Intel Open Source Computer Vision Library. It is a collection of C
functions and a few C++ classes that implement some popular Image Processing and
Computer Vision algorithms.
%package -n %{name}4-cascades-data
%package -n %{pname}4-cascades-data
Summary: Classifier cascades for OpenCV
License: BSD-3-Clause
Group: System/Libraries
@@ -121,7 +182,7 @@ Conflicts: %{name} < 4.5.1
Provides: %{name}:%{_datadir}/opencv4/lbpcascades/lbpcascade_silverware.xml
BuildArch: noarch
%description -n %{name}4-cascades-data
%description -n %{pname}4-cascades-data
Haar and LBP cascades for face and object detecton
%package -n %{libname}%{soname}
@@ -147,7 +208,7 @@ Summary: Face detection libraries for OpenCV
License: BSD-3-Clause
Group: System/Libraries
Conflicts: %{libname}%{soname} < %{version}-%{release}
Requires: %{name}4-cascades-data
Requires: %{pname}4-cascades-data
%description -n libopencv_face%{soname}
Face detection libraries for OpenCV
@@ -160,13 +221,16 @@ Group: System/Libraries
%description -n libopencv_gapi%{soname}
G-API library component for OpenCV
%package -n libopencv_highgui%{soname}
%if %{with gui}
%package -n libopencv_highgui%{soname}%{psuffix}
Summary: Higlevel GUI libraries for OpenCV
License: BSD-3-Clause
Group: System/Libraries
Conflicts: libopencv_highgui%{soname} = %{version}
%description -n libopencv_highgui%{soname}
%description -n libopencv_highgui%{soname}%{psuffix}
Higlevel GUI libraries for OpenCV
%endif
%package -n libopencv_imgcodecs%{soname}
Summary: Image codec libraries for OpenCV
@@ -188,7 +252,7 @@ Superresolution libraries for OpenCV
Summary: Face detection libraries for OpenCV
License: BSD-3-Clause
Group: System/Libraries
Requires: %{name}4-cascades-data
Requires: %{pname}4-cascades-data
%description -n libopencv_objdetect%{soname}
Object detection libraries for OpenCV
@@ -233,7 +297,21 @@ Requires: %{libname}%{soname} = %{version}
Requires: libopencv_aruco%{soname} = %{version}
Requires: libopencv_face%{soname} = %{version}
Requires: libopencv_gapi%{soname} = %{version}
Requires: libopencv_highgui%{soname} = %{version}
%if %{with gui}
Requires: libopencv_highgui%{soname}%{psuffix} = %{version}
%endif
%if "%flavor" == ""
Conflicts: opencv-qt6-devel = %{version}
Conflicts: opencv-nogui-devel = %{version}
%endif
%if "%flavor" == "qt6"
Conflicts: opencv-devel = %{version}
Conflicts: opencv-nogui-devel = %{version}
%endif
%if "%flavor" == "nogui"
Conflicts: opencv-devel = %{version}
Conflicts: opencv-qt6-devel = %{version}
%endif
Requires: libopencv_imgcodecs%{soname} = %{version}
Requires: libopencv_objdetect%{soname} = %{version}
Requires: libopencv_optflow%{soname} = %{version}
@@ -248,8 +326,12 @@ Requires: pkgconfig(ice)
Requires: pkgconfig(sm)
Requires: pkgconfig(x11)
Requires: pkgconfig(xext)
%if %{with gui}
%if %{qt_ver} < 6
Provides: %{name}-qt5-devel = %{version}
Obsoletes: %{name}-qt5-devel < %{version}
%endif
%endif
%description devel
This package contains the OpenCV C/C++ library and header files, as well as
@@ -261,10 +343,15 @@ use the OpenCV library.
Summary: Python %{python_version} bindings for apps which use OpenCV
License: BSD-3-Clause
Group: Development/Libraries/Python
%if %{with gui}
Requires: libopencv_highgui%{soname} = %{version}
%if %{qt_ver} < 6
%if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3"
Provides: python-%{name}-qt5 = %{version}
Obsoletes: python-%{name}-qt5 < %{version}
%endif
%endif
%endif
%description -n python-%{name}
This package contains Python %{python_version} bindings for the OpenCV library.
@@ -274,8 +361,12 @@ This package contains Python %{python_version} bindings for the OpenCV library.
Summary: Python 3 bindings for apps which use OpenCV
License: BSD-3-Clause
Group: Development/Libraries/Python
%if %{with gui}
%if %{qt_ver} < 6
Provides: python3-%{name}-qt5 = %{version}
Obsoletes: python3-%{name}-qt5 < %{version}
%endif
%endif
%description -n python3-%{name}
This package contains Python 3 bindings for the OpenCV library.
@@ -287,16 +378,19 @@ License: BSD-3-Clause
Group: Documentation/Other
# Since this package also contains examples that need -devel to be compiled
Suggests: %{name}-devel
%if %{with gui}
%if %{qt_ver} < 6
Provides: %{name}-qt5-doc = %{version}
Obsoletes: %{name}-qt5-doc < %{version}
%endif
%endif
BuildArch: noarch
%description doc
This package contains the documentation and examples for the OpenCV library.
%prep
%setup -q -a 1
%autopatch -p1
%autosetup -p1 -n %{pname}-%{version} -a 1
# Only copy over modules we need
mv opencv_contrib-%{version}/modules/{aruco,face,tracking,optflow,plot,shape,superres,videostab,ximgproc} modules/
@@ -307,6 +401,9 @@ cp opencv_contrib-%{version}/LICENSE LICENSE.contrib
rm -f doc/packaging.txt
%build
# Remove cmake4 error due to not setting
# min cmake version - sflees.de
export CMAKE_POLICY_VERSION_MINIMUM=3.5
%limit_build -m 1800
# openCV does not understand the standard RelWithDebinfo,
@@ -319,17 +416,16 @@ pushd $PWD
%cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_WITH_DEBUG_INFO=ON \
%if %{with tests}
-DBUILD_TESTS=ON \
%endif
-DBUILD_TESTS:BOOL=%{?with_tests:ON}%{!?with_tests:OFF} \
-DOPENCV_INCLUDE_INSTALL_PATH=%{_includedir} \
-DOPENCV_LICENSES_INSTALL_PATH=%{_licensedir}/%{name} \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DENABLE_OMIT_FRAME_POINTER=ON \
-DWITH_QT=ON \
-DWITH_OPENGL=ON \
-DWITH_QT=%{?with_gui:ON}%{!?with_gui:OFF} \
-DBUILD_opencv_highgui=%{?with_gui:ON}%{!?with_gui:OFF} \
-DWITH_OPENGL=%{?with_gui:ON}%{!?with_gui:OFF} \
-DOpenGL_GL_PREFERENCE:STRING="GLVND" \
-DWITH_UNICAP=ON \
-DWITH_XINE=ON \
@@ -409,12 +505,6 @@ fi
}
popd
%endif
mkdir -p %{buildroot}%{_docdir}/%{name}-doc
mv %{buildroot}%{_datadir}/opencv4/samples %{buildroot}%{_docdir}/%{name}-doc/examples
# Fix rpmlint warning "doc-file-dependency"
chmod 644 %{buildroot}%{_docdir}/%{name}-doc/examples/python/*.py
# Remove LD_LIBRARY_PATH wrapper script, we install into proper library dirs
rm %{buildroot}%{_bindir}/setup_vars_opencv4.sh
@@ -422,7 +512,52 @@ rm %{buildroot}%{_bindir}/setup_vars_opencv4.sh
cat %{buildroot}%{_libdir}/pkgconfig/opencv4.pc
sed -i -e 's|//usr||g' %{buildroot}%{_libdir}/pkgconfig/opencv4.pc
%fdupes -s %{buildroot}%{_docdir}/%{name}-doc/examples
# Clear everything except Qt dependent libs for named flavours
%if "%{flavor}" == ""
%fdupes -s %{buildroot}%{_docdir}/%{pname}-doc/examples
mkdir -p %{buildroot}%{_docdir}/%{pname}-doc
mv %{buildroot}%{_datadir}/opencv4/samples %{buildroot}%{_docdir}/%{pname}-doc/examples
# Fix rpmlint warning "doc-file-dependency"
chmod 644 %{buildroot}%{_docdir}/%{name}-doc/examples/python/*.py
%else
for exe in %{buildroot}%{_bindir}/opencv_*
do
mv ${exe} ${exe}%{psuffix}
done
rm -fr %{buildroot}%{_libdir}/libopencv_calib3d.so.* \
%{buildroot}%{_libdir}/libopencv_core.so.* \
%{buildroot}%{_libdir}/libopencv_dnn.so.* \
%{buildroot}%{_libdir}/libopencv_features2d.so.* \
%{buildroot}%{_libdir}/libopencv_flann.so.* \
%{buildroot}%{_libdir}/libopencv_imgproc.so.* \
%{buildroot}%{_libdir}/libopencv_ml.so.* \
%{buildroot}%{_libdir}/libopencv_photo.so.* \
%{buildroot}%{_libdir}/libopencv_plot.so.* \
%{buildroot}%{_libdir}/libopencv_shape.so.* \
%{buildroot}%{_libdir}/libopencv_stitching.so.* \
%{buildroot}%{_libdir}/libopencv_tracking.so.* \
%{buildroot}%{_libdir}/libopencv_video.so.* \
%{buildroot}%{_libdir}/libopencv_aruco.so.* \
%{buildroot}%{_libdir}/libopencv_face.so.* \
%{buildroot}%{_libdir}/libopencv_gapi.so.* \
%{buildroot}%{_libdir}/libopencv_imgcodecs.so.* \
%{buildroot}%{_libdir}/libopencv_objdetect.so.* \
%{buildroot}%{_libdir}/libopencv_optflow.so.* \
%{buildroot}%{_libdir}/libopencv_superres.so.* \
%{buildroot}%{_libdir}/libopencv_videoio.so.* \
%{buildroot}%{_libdir}/libopencv_videostab.so.* \
%{buildroot}%{_libdir}/libopencv_ximgproc.so.* \
%{buildroot}%{_datadir}/opencv4/*cascades \
%{buildroot}%{_datadir}/opencv4/samples \
%{nil}
%endif
%fdupes -s %{buildroot}%{_includedir}
%check
@@ -436,40 +571,26 @@ export LD_LIBRARY_PATH=$(pwd)/build/lib:$LD_LIBRARY_PATH
grep -E 'model|stepping|flags' /proc/cpuinfo | head -n4
%endif
%post -n %{libname}%{soname} -p /sbin/ldconfig
%postun -n %{libname}%{soname} -p /sbin/ldconfig
%post -n libopencv_aruco%{soname} -p /sbin/ldconfig
%postun -n libopencv_aruco%{soname} -p /sbin/ldconfig
%post -n libopencv_face%{soname} -p /sbin/ldconfig
%postun -n libopencv_face%{soname} -p /sbin/ldconfig
%post -n libopencv_gapi%{soname} -p /sbin/ldconfig
%postun -n libopencv_gapi%{soname} -p /sbin/ldconfig
%post -n libopencv_highgui%{soname} -p /sbin/ldconfig
%postun -n libopencv_highgui%{soname} -p /sbin/ldconfig
%post -n libopencv_imgcodecs%{soname} -p /sbin/ldconfig
%postun -n libopencv_imgcodecs%{soname} -p /sbin/ldconfig
%post -n libopencv_objdetect%{soname} -p /sbin/ldconfig
%postun -n libopencv_objdetect%{soname} -p /sbin/ldconfig
%post -n libopencv_optflow%{soname} -p /sbin/ldconfig
%postun -n libopencv_optflow%{soname} -p /sbin/ldconfig
%post -n libopencv_superres%{soname} -p /sbin/ldconfig
%postun -n libopencv_superres%{soname} -p /sbin/ldconfig
%post -n libopencv_videoio%{soname} -p /sbin/ldconfig
%postun -n libopencv_videoio%{soname} -p /sbin/ldconfig
%post -n libopencv_videostab%{soname} -p /sbin/ldconfig
%postun -n libopencv_videostab%{soname} -p /sbin/ldconfig
%post -n libopencv_ximgproc%{soname} -p /sbin/ldconfig
%postun -n libopencv_ximgproc%{soname} -p /sbin/ldconfig
%if "%flavor" == ""
%ldconfig_scriptlets -n %{libname}%{soname}
%ldconfig_scriptlets -n libopencv_aruco%{soname}
%ldconfig_scriptlets -n libopencv_face%{soname}
%ldconfig_scriptlets -n libopencv_gapi%{soname}
%ldconfig_scriptlets -n libopencv_imgcodecs%{soname}
%ldconfig_scriptlets -n libopencv_objdetect%{soname}
%ldconfig_scriptlets -n libopencv_optflow%{soname}
%ldconfig_scriptlets -n libopencv_superres%{soname}
%ldconfig_scriptlets -n libopencv_videoio%{soname}
%ldconfig_scriptlets -n libopencv_videostab%{soname}
%ldconfig_scriptlets -n libopencv_ximgproc%{soname}
%else
%if %{with gui}
%ldconfig_scriptlets -n libopencv_highgui%{soname}%{psuffix}
%endif
%endif
%files
%license LICENSE LICENSE.contrib
%license %{_licensedir}/opencv/*
%{_bindir}/opencv_*
%dir %{_datadir}/opencv4
%exclude %{_datadir}/opencv4/valgrind*
%files -n %{name}4-cascades-data
%if "%flavor" == ""
%files -n %{pname}4-cascades-data
%{_datadir}/opencv4/*cascades
%files -n %{libname}%{soname}
@@ -499,9 +620,6 @@ grep -E 'model|stepping|flags' /proc/cpuinfo | head -n4
%{_libdir}/libopencv_gapi.so.*
%endif
%files -n libopencv_highgui%{soname}
%{_libdir}/libopencv_highgui.so.*
%files -n libopencv_imgcodecs%{soname}
%{_libdir}/libopencv_imgcodecs.so.*
@@ -523,6 +641,28 @@ grep -E 'model|stepping|flags' /proc/cpuinfo | head -n4
%files -n libopencv_ximgproc%{soname}
%{_libdir}/libopencv_ximgproc.so.*
%if %{with python3}
%files %{python_files %{name}}
%license LICENSE LICENSE.contrib
%{python_sitearch}/cv2.*.so
%endif
%files doc
%{_docdir}/%{name}-doc/
%endif
%if %{with gui}
%files -n libopencv_highgui%{soname}%{psuffix}
%{_libdir}/libopencv_highgui.so.*
%endif
%files
%license LICENSE LICENSE.contrib
%license %{_licensedir}/%{name}/*
%{_bindir}/opencv_*%{psuffix}
%dir %{_datadir}/opencv4
%exclude %{_datadir}/opencv4/valgrind*
%files devel
%license LICENSE LICENSE.contrib
%{_includedir}/opencv2/
@@ -533,13 +673,4 @@ grep -E 'model|stepping|flags' /proc/cpuinfo | head -n4
%{_libdir}/cmake/opencv4/OpenCVModules*.cmake
%{_datadir}/opencv4/valgrind*
%if %{with python3}
%files %{python_files %{name}}
%license LICENSE LICENSE.contrib
%{python_sitearch}/cv2.*.so
%endif
%files doc
%{_docdir}/%{name}-doc/
%changelog

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:65597f8fb8dc2b876c1b45b928bbcc5f772ddbaf97539bf1b737623d0604cba1
size 55387316

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4197722b4c5ed42b476d42e29beb29a52b6b25c34ec7b4d589c3ae5145fee98e
size 55475555