Browse Source

CPack: correctly perform querytags on old versions of RPM

In some versions of RPM, e.g. 4.0.4, rpmbuild does not understand
--querytags parameter, but rpm does. Such behavior was found on
Alt Linux P10 and Alt Linux Sisyphus (e2k).
makise-homura 10 months ago
parent
commit
488de6294a
1 changed files with 10 additions and 0 deletions
  1. 10 0
      Modules/Internal/CPack/CPackRPM.cmake

+ 10 - 0
Modules/Internal/CPack/CPackRPM.cmake

@@ -1088,7 +1088,17 @@ function(cpack_rpm_generate_package)
   execute_process(
     COMMAND "${RPMBUILD_EXECUTABLE}" --querytags
     OUTPUT_VARIABLE RPMBUILD_TAG_LIST
+    RESULT_VARIABLE RPMBUILD_QUERYTAGS_SUCCESS
+    ERROR_QUIET
     OUTPUT_STRIP_TRAILING_WHITESPACE)
+  # In some versions of RPM, rpmbuild does not understand --querytags parameter,
+  # but rpm does.
+  if(NOT RPMBUILD_QUERYTAGS_SUCCESS EQUAL 0)
+    execute_process(
+      COMMAND "${RPM_EXECUTABLE}" --querytags
+      OUTPUT_VARIABLE RPMBUILD_TAG_LIST
+      OUTPUT_STRIP_TRAILING_WHITESPACE)
+  endif()
   string(REPLACE "\n" ";" RPMBUILD_TAG_LIST "${RPMBUILD_TAG_LIST}")
 
   # In some versions of RPM, weak dependency tags are present in the --querytags