Bug 2251785

Summary: Review Request: openvino - Open Visual Inference And Optimization toolkit for AI inference
Product: [Fedora] Fedora Reporter: Ali Erdinc Koroglu <aekoroglu>
Component: Package ReviewAssignee: Adam Jackson <ajax>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: package-review, sgrubb, trix
Target Milestone: ---Keywords: AutomationTriaged
Target Release: ---Flags: ajax: fedora-review+
Hardware: Unspecified   
OS: Linux   
URL: https://github.com/openvinotoolkit/openvino
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-01-12 14:00:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2254599    
Bug Blocks: 1011110    
Attachments:
Description Flags
The .spec file difference from Copr build 6766923 to 7400792
none
The .spec file difference from Copr build 7400792 to 7720382
none
The .spec file difference from Copr build 7720382 to 8295451 none

Description Ali Erdinc Koroglu 2023-11-27 15:18:48 UTC
SPEC Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-aarch64/06698631-openvino/openvino.spec
SRPM Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-aarch64/06698631-openvino/openvino-2023.2.0-1.fc40.src.rpm

Description:
OpenVINO is an open-source toolkit for optimizing and deploying AI inference.
It can be used to develop applications and solutions based on deep learning
tasks, such as: emulation of human vision, automatic speech recognition, 
natural language processing, recommendation systems, etc.

Reproducible: Always

Comment 1 Fedora Review Service 2023-11-27 21:02:48 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6700410
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2251785-openvino/srpm-builds/06700410/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Tom Rix 2023-12-01 17:15:24 UTC
On first look, the big problem is the third_party/  dir in the tarball.
These should should be their own packages.
If they are not needed, then the third_party dir should be rm-ed in %prep

Comment 3 Tom Rix 2023-12-14 18:42:00 UTC
What I mean is these third party packages need to be their own packages.
Please see 
https://bugzilla.redhat.com/show_bug.cgi?id=2254599
this removes the openvino/thirdparty/json dependency.
And if you have the time, please review.

Comment 4 Ali Erdinc Koroglu 2023-12-14 19:12:30 UTC
Hello Tom, I disabled them in the patch file, but do you want me to delete them instead?

--- a/CMakeLists.txt	2023-11-22 08:22:33.730665512 +0200
+++ b/CMakeLists.txt	2023-11-24 00:34:16.675363131 +0200
@@ -38,7 +38,7 @@
 include(cmake/features.cmake)
 
 # These options are shared with 3rdparty plugins by means of developer package
-include(cmake/dependencies.cmake)
+# include(cmake/dependencies.cmake)
 
 if(ENABLE_COVERAGE)
     include(cmake/coverage.cmake)
@@ -133,7 +133,7 @@
     include(cmake/test_model_zoo.cmake)
 endif()
 
-include(thirdparty/dependencies.cmake)
+# include(thirdparty/dependencies.cmake)
 add_subdirectory(src)
 
 if(ENABLE_SAMPLES OR ENABLE_TESTS)
@@ -146,10 +146,10 @@
 endif()
 
 include(cmake/extra_modules.cmake)
-add_subdirectory(docs)
-add_subdirectory(tools)
-add_subdirectory(scripts)
-add_subdirectory(licensing)
+# add_subdirectory(docs)
+# add_subdirectory(tools)
+# add_subdirectory(scripts)
+# add_subdirectory(licensing)
 
 if(ENABLE_TESTS)
     # layers and other more high-level / e2e tests
--- a/src/CMakeLists.txt	2023-11-22 08:23:48.722438766 +0200
+++ b/src/CMakeLists.txt	2023-11-22 08:25:27.304120882 +0200
@@ -8,7 +8,9 @@
     ov_add_compiler_flags(-Wmissing-declarations)
 endif()
 
-include(cmake/install_tbb.cmake)
+# dont install_tbb
+# include(cmake/install_tbb.cmake)
+include(cmake/ov_parallel.cmake)
 
 # CC library should be registered before other cc targets
 add_subdirectory(common)
--- a/src/plugins/intel_cpu/thirdparty/CMakeLists.txt	2023-11-22 08:35:23.572344257 +0200
+++ b/src/plugins/intel_cpu/thirdparty/CMakeLists.txt	2023-11-22 08:35:40.634293194 +0200
@@ -115,7 +115,7 @@
         list(APPEND CMAKE_MODULE_PATH "${intel_cpu_thirdparty_SOURCE_DIR}")
     endif()
 
-    add_subdirectory(onednn EXCLUDE_FROM_ALL)
+    # add_subdirectory(onednn EXCLUDE_FROM_ALL)
 
     # install static libraries
     ov_install_static_lib(dnnl ${OV_CPACK_COMP_CORE})

Comment 5 Tom Rix 2023-12-15 01:12:04 UTC
Unwinding third_party can be complicated.
To prove you do not needed it, remove it in prep
Like
https://src.fedoraproject.org/rpms/python-torch/blob/rawhide/f/python-torch.spec#_178

I was really only looking at the toplevel thirdparty/ , but it looks like from above that they are also in the plugins.

Comment 7 Fedora Review Service 2023-12-18 15:12:49 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6766923
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2251785-openvino/fedora-rawhide-x86_64/06766923-openvino/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 8 Tom Rix 2024-03-21 13:11:13 UTC
At least the licensecheck seems to be missing from the above auto review.
Spec looks generally fine.

This line should not be needed.
        -DCMAKE_CXX_FLAGS="%{optflags} -Wformat -Wformat-security" \ 

There is also at least third party for 
src/bindings/python/thirdparty
src/plugins/intel_gpu/thirdparty

That needs to be removed.

I think the two small plugin subpackages should be rolled into the the main package.

There should be a way, even a manual way to test.

The samples/ would be good to include into the devel package.

Can python be enabled ? python is widely used in AI so this would be good.

Comment 9 Ali Erdinc Koroglu 2024-05-03 08:36:38 UTC
Hello Tom, it's been a while sorry about it.
Python API, PyTorch + IR frontend supports are enabled and tested

SPEC Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-x86_64/07399413-openvino/openvino.spec
SRPM Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-x86_64/07399413-openvino/openvino-2024.0.0-1.fc41.src.rpm

Known issues
- onednn (opevino forked version) and intel-mlas bundled to compile intel_cpu_plugin 
- onnx disabled (requested version of Google Protobuf is 3.20.3)
- aarch64 disabled (https://github.com/ARM-software/ComputeLibrary not packed yet)
- 2024.1.0 version has some more thirdparty deps.

PS: I added CXX_FLAGS="%{optflags} -Wformat -Wformat-security" to  fix src/bindings/c/src/ov_dimension.cpp compilation error
cc1plus: error: ‘-Wformat-security’ ignored without ‘-Wformat’ [-Werror=format-security]

Manual test results:
[aekoroglu@test samples]$ python sync_benchmark.py /home/aekoroglu/models/public/googlenet-v1/FP32/googlenet-v1.xml
[ INFO ] OpenVINO:
[ INFO ] Build ................................. 2024.0.0-000--
[ INFO ] Count:          1856 iterations
[ INFO ] Duration:       10000.79 ms
[ INFO ] Latency:
[ INFO ]     Median:     4.91 ms
[ INFO ]     Average:    5.39 ms
[ INFO ]     Min:        4.46 ms
[ INFO ]     Max:        15.30 ms
[ INFO ] Throughput: 185.59 FPS
[aekoroglu@test samples]$ python throughput_benchmark.py /home/aekoroglu/models/public/googlenet-v1/FP32/googlenet-v1.xml
[ INFO ] OpenVINO:
[ INFO ] Build ................................. 2024.0.0-000--
[ INFO ] Count:          2893 iterations
[ INFO ] Duration:       10017.42 ms
[ INFO ] Latency:
[ INFO ]     Median:     13.50 ms
[ INFO ]     Average:    13.71 ms
[ INFO ]     Min:        11.57 ms
[ INFO ]     Max:        28.85 ms
[ INFO ] Throughput: 288.80 FPS

https://github.com/openvinotoolkit/openvino/tree/2024.0.0/samples/python/benchmark/sync_benchmark
https://github.com/openvinotoolkit/openvino/tree/2024.0.0/samples/python/benchmark/throughput_benchmark

Comment 10 Fedora Review Service 2024-05-03 11:39:42 UTC
Created attachment 2031038 [details]
The .spec file difference from Copr build 6766923 to 7400792

Comment 11 Fedora Review Service 2024-05-03 11:39:44 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7400792
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2251785-openvino/fedora-rawhide-x86_64/07400792-openvino/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 12 Tom Rix 2024-05-10 12:39:51 UTC
License:        Apache-2.0

[ ]: License field in the package spec file matches the actual license.                                                                                                     
     Note: Checking patched sources after %prep for licenses. Licenses                                                                                                      
     found: "Unknown or generated", "Apache License 2.0", "*No copyright*                                                                                                   
     Apache License 2.0", "BSD 3-Clause License", "MIT License", "Apache                                                                                                    
     License 2.0 and/or Intel Open Source License", "MIT License and/or                                                                                                     
     zlib License", "Apache License", "*No copyright* MIT License", "*No                                                                                                    
     copyright* Apache License 2.0 and/or MIT License", "GNU General Public                                                                                                 
     License, Version 2", "BSD 3-Clause License and/or GNU General Public                                                                                                   
     License, Version 2", "Apache License 2.0 and/or MIT License", "Apache                                                                                                  
     License 2.0 and/or Boost Software License 1.0", "Apache License 2.0                                                                                                    
     and/or BSD 3-Clause License", "Apache License 2.0 [generated file]",                                                                                                   
     "Apache License 2.0 and/or Historical Permission Notice and                                                                                                            
     Disclaimer". 5539 files have unknown license. Detailed output of                                                                                                       
     licensecheck in /home/trix/reviews/review-openvino/licensecheck.txt  

Your license: file is not complete.
Since you have bundled components, go into detail which of these licenses are for the main package and which are for the others.

[ ]: Package requires other packages for directories it uses.                                                                                                               
     Note: No known owner of /usr/lib64/python3.12/site-packages,                                                                                                           
     /usr/lib64/python3.12, /usr/lib64/pkgconfig,                                                                                                                           
     /usr/lib64/openvino-2024.0.0, /usr/lib64/cmake

Need to add %dir's here ex/
%dir %_libdir/openvino-2024.0.0

ExclusiveArch:  x86_64 
%ifarch x86_64                                                                                                                                                              
BuildRequires:  xbyak-devel                                                                                                                                                 
%endif 

This ifarch check is not needed.

Provides:       bundled(onednn) 

should have a bundled(onednn) == version
similar for mlas

Requires:       lib%{name}-ir-frontend = %{version}                                                                                                                         
Requires:       lib%{name}-pytorch-frontend = %{version}                                                                                                                                                                                                                                                                          
Recommends:     %{name}-auto-plugin = %{version}                                                                                                                            
Recommends:     %{name}-auto-batch-plugin = %{version}                                                                                                                      
Recommends:     %{name}-hetero-plugin = %{version}                                                                                                                          
Recommends:     %{name}-intel-cpu-plugin = %{version}

This is an overly complicated use of subpackages, most (all?) have a single *.so
Reduce the subpackages to just the main, python and devel or make a strong case for each.

        -DCMAKE_CXX_FLAGS="%{optflags} -Wformat -Wformat-security" \

Should be redundant, why is this needed ?

-python package seems to missing its distinfo/egg dir.

The should be a %check or some option -test subpackage.

Comment 13 Ali Erdinc Koroglu 2024-07-09 10:42:10 UTC
@trix : I fixed the licensing issues, converted the sub-plugin packages into one, resolved the Python packaging issue, and added tests.

Ps: CXX_FLAGS="%{optflags} -Wformat -Wformat-security" added to fix src/bindings/c/src/ov_dimension.cpp compilation error

SPEC Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-x86_64/07719158-openvino/openvino.spec
SRPM Url: https://download.copr.fedorainfracloud.org/results/aekoroglu/fedora/fedora-rawhide-x86_64/07719158-openvino/openvino-2024.2.0-1.fc41.src.rpm

Comment 15 Fedora Review Service 2024-07-09 20:51:58 UTC
Created attachment 2039354 [details]
The .spec file difference from Copr build 7400792 to 7720382

Comment 16 Fedora Review Service 2024-07-09 20:52:00 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7720382
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2251785-openvino/fedora-rawhide-x86_64/07720382-openvino/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 17 Adam Jackson 2024-08-07 20:15:06 UTC
Why is onednn bundled here? We have a onednn package in Fedora already, does it need to be updated to a newer version to make openvino happy?

Comment 18 Package Review 2024-08-09 00:45:26 UTC
This is an automatic action taken by review-stats script.

The ticket reviewer failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we reset the status and the assignee of this ticket.

Comment 19 Adam Jackson 2024-09-10 15:29:14 UTC
The onednn bundling is fine here for now. It would be nice to see a way to try to build this with Fedora's onednn-devel instead, even if it doesn't work to do so yet.

I hadn't caught the ExclusiveArch on the first pass. We should be able to build _some_ CPU support on non-x86, right?

Comment 20 Ali Erdinc Koroglu 2024-09-30 17:35:16 UTC
We'll need to patch several components to demonstrate that Fedora's onednn-devel package will fail during the build. Are you sure you want to proceed with that?
Yes, we should be able to build for arm64. But since the https://github.com/ARM-software/ComputeLibrary package is not available in our repository, I have added ExclusiveArch for x86_64.

Comment 21 Ali Erdinc Koroglu 2024-10-06 12:43:54 UTC
I also submitted a package review request for the ARM Compute Library (https://bugzilla.redhat.com/show_bug.cgi?id=2316806) but I don't think that's a blocker at the moment.

Comment 23 Fedora Review Service 2024-11-21 17:20:31 UTC
Created attachment 2059127 [details]
The .spec file difference from Copr build 7720382 to 8295451

Comment 24 Fedora Review Service 2024-11-21 17:20:34 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8295451
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2251785-openvino/fedora-rawhide-x86_64/08295451-openvino/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 25 Adam Jackson 2024-11-27 16:57:56 UTC
This doesn't build on F40 for missing dependencies, I'm okay with this for F41+.

Comment 26 Fedora Admin user for bugzilla script actions 2024-11-28 08:29:19 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/openvino