Properly added dependencies between RPM packages (#14258)

This commit is contained in:
Ilya Lavrenov
2022-11-26 11:11:19 +04:00
committed by GitHub
parent f80babff51
commit 9db70d774f
2 changed files with 48 additions and 66 deletions

View File

@@ -81,8 +81,6 @@ macro(ov_rpm_specific_settings)
set(CPACK_RPM_COMPONENT_INSTALL ON)
# automatically find dependencies for binaries
set(CPACK_RPM_PACKAGE_AUTOREQPROV ON)
# enable dependencies between components
set(CPACK_RPM_ENABLE_COMPONENT_DEPENDS ON)
# homepage
set(CPACK_RPM_PACKAGE_URL "https://docs.openvino.ai/")
# ASL 2.0 # Apache Software License 2.0
@@ -102,7 +100,7 @@ macro(ov_rpm_specific_settings)
# naming convention for rpm package files
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
# need to update this version once we rebuild the same package with additional fixes
# set(CPACK_RPM_PACKAGE_RELEASE "1")
set(CPACK_RPM_PACKAGE_RELEASE "1")
# enable this if someday we change the version scheme
# set(CPACK_RPM_PACKAGE_EPOCH "2")
@@ -123,7 +121,7 @@ ov_rpm_specific_settings()
# needed to add triggers for packages with libraries
set(def_triggers "${OpenVINO_BINARY_DIR}/_CPack_Packages/triggers")
set(triggers_content "activate-noawait ldconfig\n\n")
set(triggers_content "/sbin/ldconfig\n")
file(WRITE "${def_triggers}" "${triggers_content}")
#
@@ -235,7 +233,7 @@ macro(ov_rpm_add_latest_component comp)
set(upper_case "${ucomp}_LATEST")
set(CPACK_COMPONENT_${upper_case}_DESCRIPTION "${CPACK_COMPONENT_${ucomp}_DESCRIPTION}")
set(CPACK_COMPONENT_${upper_case}_DEPENDS "${comp}")
set(CPACK_RPM_${upper_case}_PACKAGE_REQUIRES "${CPACK_RPM_${ucomp}_PACKAGE_NAME} = ${cpack_full_ver}")
set(CPACK_RPM_${upper_case}_PACKAGE_ARCHITECTURE "noarch")
set(${comp_name}_copyright "generic")

View File

@@ -6,7 +6,7 @@
# OpenVINO Core components including frontends, plugins, etc
#
function(_ov_add_plugin comp is_pseudo)
function(_ov_add_package package_names comp)
string(TOUPPER "${comp}" ucomp)
if(NOT DEFINED CPACK_RPM_${ucomp}_PACKAGE_NAME)
message(FATAL_ERROR "CPACK_RPM_${ucomp}_PACKAGE_NAME is not defined")
@@ -18,25 +18,11 @@ function(_ov_add_plugin comp is_pseudo)
message(FATAL_ERROR "Internal variable 'cpack_full_ver' is not defined")
endif()
if(is_pseudo)
if(pseudo_plugins_recommends)
set(pseudo_plugins_recommends "${pseudo_plugins_recommends}, ${package_name} = ${cpack_full_ver}")
else()
set(pseudo_plugins_recommends "${package_name} = ${cpack_full_ver}")
endif()
endif()
if(all_plugins_suggest)
set(all_plugins_suggest "${all_plugins_suggest}, ${package_name} = ${cpack_full_ver}")
if(${package_names})
set("${package_names}" "${${package_names}}, ${package_name} = ${cpack_full_ver}" PARENT_SCOPE)
else()
set(all_plugins_suggest "${package_name} = ${cpack_full_ver}")
set("${package_names}" "${package_name} = ${cpack_full_ver}" PARENT_SCOPE)
endif()
list(APPEND installed_plugins ${comp})
set(pseudo_plugins_recommends "${pseudo_plugins_recommends}" PARENT_SCOPE)
set(all_plugins_suggest "${all_plugins_suggest}" PARENT_SCOPE)
set(installed_plugins "${installed_plugins}" PARENT_SCOPE)
endfunction()
macro(ov_cpack_settings)
@@ -122,6 +108,7 @@ macro(ov_cpack_settings)
set(CPACK_COMPONENT_CORE_DESCRIPTION "OpenVINO C / C++ Runtime libraries")
set(CPACK_RPM_CORE_PACKAGE_NAME "libopenvino-${cpack_name_ver}")
set(core_package "${CPACK_RPM_CORE_PACKAGE_NAME} = ${cpack_full_ver}")
set(CPACK_RPM_CORE_POST_INSTALL_SCRIPT_FILE "${def_triggers}")
set(CPACK_RPM_CORE_POST_UNINSTALL_SCRIPT_FILE "${def_triggers}")
set(${OV_CPACK_COMP_CORE}_copyright "generic")
@@ -133,18 +120,18 @@ macro(ov_cpack_settings)
# hetero
if(ENABLE_HETERO)
set(CPACK_COMPONENT_HETERO_DESCRIPTION "OpenVINO Hetero plugin")
set(CPACK_COMPONENT_HETERO_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_HETERO_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_HETERO_PACKAGE_NAME "libopenvino-hetero-plugin-${cpack_name_ver}")
_ov_add_plugin(hetero ON)
_ov_add_package(plugin_packages hetero)
set(hetero_copyright "generic")
endif()
# auto batch
if(ENABLE_AUTO_BATCH)
set(CPACK_COMPONENT_BATCH_DESCRIPTION "OpenVINO Automatic Batching plugin")
set(CPACK_COMPONENT_BATCH_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_BATCH_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_BATCH_PACKAGE_NAME "libopenvino-auto-batch-plugin-${cpack_name_ver}")
_ov_add_plugin(batch ON)
_ov_add_package(plugin_packages batch)
set(batch_copyright "generic")
endif()
@@ -155,15 +142,15 @@ macro(ov_cpack_settings)
else()
set(CPACK_COMPONENT_MULTI_DESCRIPTION "OpenVINO Multi plugin")
endif()
set(CPACK_COMPONENT_MULTI_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_MULTI_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_MULTI_PACKAGE_NAME "libopenvino-auto-plugin-${cpack_name_ver}")
_ov_add_plugin(multi ON)
_ov_add_package(plugin_packages multi)
set(multi_copyright "generic")
elseif(ENABLE_AUTO)
set(CPACK_COMPONENT_AUTO_DESCRIPTION "OpenVINO Auto plugin")
set(CPACK_COMPONENT_AUTO_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_AUTO_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_AUTO_PACKAGE_NAME "libopenvino-auto-plugin-${cpack_name_ver}")
_ov_add_plugin(auto ON)
_ov_add_package(plugin_packages auto)
set(auto_copyright "generic")
endif()
@@ -176,37 +163,35 @@ macro(ov_cpack_settings)
set(CPACK_COMPONENT_CPU_DESCRIPTION "ARM CPU")
set(cpu_copyright "arm_cpu")
endif()
set(CPACK_COMPONENT_CPU_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_CPU_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_CPU_PACKAGE_NAME "libopenvino-intel-cpu-plugin-${cpack_name_ver}")
_ov_add_plugin(cpu OFF)
_ov_add_package(plugin_packages cpu)
endif()
# intel-gpu
if(ENABLE_INTEL_GPU)
set(CPACK_COMPONENT_GPU_DESCRIPTION "Intel® Processor Graphics")
set(CPACK_COMPONENT_GPU_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_GPU_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_GPU_PACKAGE_NAME "libopenvino-intel-gpu-plugin-${cpack_name_ver}")
# auto batch exhances GPU
# set(CPACK_RPM_BATCH_PACKAGE_ENHANCES "${CPACK_RPM_GPU_PACKAGE_NAME} = (${cpack_full_ver})")
_ov_add_plugin(gpu OFF)
_ov_add_package(plugin_packages gpu)
set(gpu_copyright "generic")
endif()
# intel-myriad
if(ENABLE_INTEL_MYRIAD AND "myriad" IN_LIST CPACK_COMPONENTS_ALL)
set(CPACK_COMPONENT_MYRIAD_DESCRIPTION "Intel® Movidius™ VPU")
set(CPACK_COMPONENT_MYRIAD_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_MYRIAD_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_MYRIAD_PACKAGE_NAME "libopenvino-intel-vpu-plugin-${cpack_name_ver}")
_ov_add_plugin(myriad OFF)
_ov_add_package(plugin_packages myriad)
set(myriad_copyright "generic")
endif()
# intel-gna
if(ENABLE_INTEL_GNA AND "gna" IN_LIST CPACK_COMPONENTS_ALL)
set(CPACK_COMPONENT_GNA_DESCRIPTION "Intel® Gaussian Neural Accelerator")
set(CPACK_COMPONENT_GNA_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_GNA_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_GNA_PACKAGE_NAME "libopenvino-intel-gna-plugin-${cpack_name_ver}")
_ov_add_plugin(gna OFF)
_ov_add_package(plugin_packages gna)
set(gna_copyright "generic")
endif()
@@ -216,41 +201,41 @@ macro(ov_cpack_settings)
if(ENABLE_OV_IR_FRONTEND)
set(CPACK_COMPONENT_IR_DESCRIPTION "OpenVINO IR Frontend")
set(CPACK_COMPONENT_IR_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_IR_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_IR_PACKAGE_NAME "libopenvino-ir-frontend-${cpack_name_ver}")
set(CPACK_RPM_IR_POST_INSTALL_SCRIPT_FILE "${def_triggers}")
set(CPACK_RPM_IR_POST_UNINSTALL_SCRIPT_FILE "${def_triggers}")
list(APPEND frontends ir)
_ov_add_package(frontend_packages ir)
set(ir_copyright "generic")
endif()
if(ENABLE_OV_ONNX_FRONTEND)
set(CPACK_COMPONENT_ONNX_DESCRIPTION "OpenVINO ONNX Frontend")
set(CPACK_COMPONENT_ONNX_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_ONNX_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_ONNX_PACKAGE_NAME "libopenvino-onnx-frontend-${cpack_name_ver}")
set(CPACK_RPM_ONNX_POST_INSTALL_SCRIPT_FILE "${def_triggers}")
set(CPACK_RPM_ONNX_POST_UNINSTALL_SCRIPT_FILE "${def_triggers}")
list(APPEND frontends onnx)
_ov_add_package(frontend_packages onnx)
set(onnx_copyright "generic")
endif()
if(ENABLE_OV_TF_FRONTEND)
set(CPACK_COMPONENT_TENSORFLOW_DESCRIPTION "OpenVINO TensorFlow Frontend")
set(CPACK_COMPONENT_TENSORFLOW_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_TENSORFLOW_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_TENSORFLOW_PACKAGE_NAME "libopenvino-tensorflow-frontend-${cpack_name_ver}")
set(CPACK_RPM_TENSORFLOW_POST_INSTALL_SCRIPT_FILE "${def_triggers}")
set(CPACK_RPM_TENSORFLOW_POST_UNINSTALL_SCRIPT_FILE "${def_triggers}")
list(APPEND frontends tensorflow)
_ov_add_package(frontend_packages tensorflow)
set(tensorflow_copyright "generic")
endif()
if(ENABLE_OV_PADDLE_FRONTEND)
set(CPACK_COMPONENT_PADDLE_DESCRIPTION "OpenVINO Paddle Frontend")
set(CPACK_COMPONENT_PADDLE_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_PADDLE_PACKAGE_REQUIRES "${core_package}")
set(CPACK_RPM_PADDLE_PACKAGE_NAME "libopenvino-paddle-frontend-${cpack_name_ver}")
set(CPACK_RPM_PADDLE_POST_INSTALL_SCRIPT_FILE "${def_triggers}")
set(CPACK_RPM_PADDLE_POST_UNINSTALL_SCRIPT_FILE "${def_triggers}")
list(APPEND frontends paddle)
_ov_add_package(frontend_packages paddle)
set(paddle_copyright "generic")
endif()
@@ -259,8 +244,9 @@ macro(ov_cpack_settings)
#
set(CPACK_COMPONENT_CORE_DEV_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit C / C++ Development files")
set(CPACK_COMPONENT_CORE_DEV_DEPENDS "${OV_CPACK_COMP_CORE};${frontends}")
set(CPACK_RPM_CORE_DEV_PACKAGE_REQUIRES "${core_package}, ${frontend_packages}")
set(CPACK_RPM_CORE_DEV_PACKAGE_NAME "libopenvino-devel-${cpack_name_ver}")
set(core_dev_package "${CPACK_RPM_CORE_DEV_PACKAGE_NAME} = ${cpack_full_ver}")
ov_rpm_generate_conflicts("${OV_CPACK_COMP_CORE_DEV}" ${conflicting_versions})
ov_rpm_add_rpmlint_suppression("${OV_CPACK_COMP_CORE_DEV}"
@@ -282,12 +268,10 @@ macro(ov_cpack_settings)
string(TOUPPER "${pyversion}" pyversion)
set(CPACK_COMPONENT_PYOPENVINO_${pyversion}_DESCRIPTION "OpenVINO Python bindings")
set(CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS "${OV_CPACK_COMP_CORE}")
list(APPEND CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS ${installed_plugins})
list(APPEND CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS ${frontends})
set(CPACK_RPM_PYOPENVINO_${pyversion}_PACKAGE_REQUIRES "python3")
set(CPACK_RPM_PYOPENVINO_${pyversion}_PACKAGE_REQUIRES
"${core_package}, ${frontend_packages}, ${plugin_packages}, python3")
set(CPACK_RPM_PYOPENVINO_${pyversion}_PACKAGE_NAME "libopenvino-python-${cpack_name_ver}")
set(python_package "${CPACK_RPM_PYOPENVINO_${pyversion}_PACKAGE_NAME} = ${cpack_full_ver}")
set(${python_component}_copyright "generic")
endif()
@@ -295,18 +279,17 @@ macro(ov_cpack_settings)
# Samples
#
# TODO: provide different packages in two lines below
set(samples_build_deps "cmake3, gcc-c++, gcc, glibc-devel, make")
set(samples_build_deps_suggest "opencv-devel >= 3.0")
# c_samples / cpp_samples
set(CPACK_COMPONENT_SAMPLES_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit C / C++ Samples")
set(CPACK_COMPONENT_SAMPLES_DEPENDS "core_dev")
set(CPACK_RPM_SAMPLES_PACKAGE_NAME "openvino-samples-${cpack_name_ver}")
set(samples_package "${CPACK_RPM_SAMPLES_PACKAGE_NAME} = ${cpack_full_ver}")
# SUGGESTS may be unsupported, it's part of RPM 4.12.0 (Sep 16th 2014) only
# see https://rpm.org/timeline.html
set(CPACK_RPM_SAMPLES_PACKAGE_SUGGESTS "${samples_build_deps_suggest}, ${all_plugins_suggest}")
set(CPACK_RPM_SAMPLES_PACKAGE_REQUIRES "gflags-devel, json-devel, zlib-devel")
set(CPACK_RPM_SAMPLES_PACKAGE_SUGGESTS "${samples_build_deps_suggest}, ${plugin_packages}")
set(CPACK_RPM_SAMPLES_PACKAGE_REQUIRES "${core_dev_package}, ${samples_build_deps}, gflags-devel, json-devel, zlib-devel")
set(CPACK_RPM_SAMPLES_PACKAGE_ARCHITECTURE "noarch")
ov_rpm_add_rpmlint_suppression("${OV_CPACK_COMP_CPP_SAMPLES}"
@@ -320,9 +303,8 @@ macro(ov_cpack_settings)
# python_samples
if(ENABLE_PYTHON)
set(CPACK_COMPONENT_PYTHON_SAMPLES_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit Python Samples")
set(CPACK_COMPONENT_PYTHON_SAMPLES_DEPENDS "${python_component}")
set(CPACK_RPM_PYTHON_SAMPLES_PACKAGE_REQUIRES "${python_package}, python3")
set(CPACK_RPM_PYTHON_SAMPLES_PACKAGE_NAME "openvino-samples-python-${cpack_name_ver}")
set(CPACK_RPM_PYTHON_SAMPLES_PACKAGE_REQUIRES "python3")
set(CPACK_RPM_PYTHON_SAMPLES_PACKAGE_ARCHITECTURE "noarch")
set(python_samples_copyright "generic")
endif()
@@ -333,26 +315,28 @@ macro(ov_cpack_settings)
# all libraries
set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit Libraries")
if(installed_plugins)
set(CPACK_COMPONENT_LIBRARIES_DEPENDS "${installed_plugins}")
if(plugin_packages)
set(CPACK_RPM_LIBRARIES_PACKAGE_REQUIRES "${plugin_packages}")
else()
set(CPACK_COMPONENT_LIBRARIES_DEPENDS "${OV_CPACK_COMP_CORE}")
set(CPACK_RPM_LIBRARIES_PACKAGE_REQUIRES "${core_package}")
endif()
set(CPACK_RPM_LIBRARIES_PACKAGE_NAME "openvino-libraries-${cpack_name_ver}")
set(libraries_package "${CPACK_RPM_LIBRARIES_PACKAGE_NAME} = ${cpack_full_ver}")
set(CPACK_RPM_LIBRARIES_PACKAGE_ARCHITECTURE "noarch")
set(libraries_copyright "generic")
# all libraries-dev
set(CPACK_COMPONENT_LIBRARIES_DEV_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit Libraries and Development files")
set(CPACK_COMPONENT_LIBRARIES_DEV_DEPENDS "core_dev;libraries")
set(CPACK_RPM_LIBRARIES_DEV_PACKAGE_REQUIRES "${core_dev_package}, ${libraries_package}")
set(CPACK_RPM_LIBRARIES_DEV_PACKAGE_NAME "openvino-libraries-devel-${cpack_name_ver}")
set(libraries_dev_package "${CPACK_RPM_LIBRARIES_DEV_PACKAGE_NAME} = ${cpack_full_ver}")
set(CPACK_RPM_LIBRARIES_DEV_PACKAGE_ARCHITECTURE "noarch")
ov_rpm_generate_conflicts(libraries_dev ${conflicting_versions})
set(libraries_dev_copyright "generic")
# all openvino
set(CPACK_COMPONENT_OPENVINO_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit Libraries and Development files")
set(CPACK_COMPONENT_OPENVINO_DEPENDS "libraries_dev;samples")
set(CPACK_RPM_OPENVINO_PACKAGE_REQUIRES "${libraries_dev_package}, ${samples_package}")
set(CPACK_RPM_OPENVINO_PACKAGE_NAME "openvino-${cpack_name_ver}")
set(CPACK_RPM_OPENVINO_PACKAGE_ARCHITECTURE "noarch")
ov_rpm_generate_conflicts(openvino ${conflicting_versions})