Merge "Move openflowplugin Sonar scan to Sonarcloud"
[releng/builder.git] / jjb / packaging / test-rpm-deps.sh
index d8fd61e581adad291a5514d75ee158fa0b8c43b1..1455e8fb4ed04c626b01967b8dd956254151c7f7 100644 (file)
@@ -7,31 +7,48 @@
 set -ex -o pipefail
 
 # Verify exactly 1 RPM is in the path we expect
-set -- /home/$USER/rpmbuild/RPMS/noarch/*.rpm
-# shellcheck disable=SC1054
-[ $# -eq 1 ] || {{ echo "Expected 1 RPM, found $#"; exit 1; }}
+set -- "$HOME"/rpmbuild/RPMS/noarch/*.rpm
+if [ $# -eq 1 ]; then
+    echo "Found one RPM in build out dir, as expected"
+else
+    echo "Expected 1 RPM, found $#"
+    echo 1
+fi
 
 # If path is globbed (/path/to/*.rpm), expand it
-path=$(sudo find / -wholename /home/$USER/rpmbuild/RPMS/noarch/*.rpm)
+path=$(sudo find / -wholename "$HOME"/rpmbuild/RPMS/noarch/*.rpm)
 
 # If no RPM found, fail clearly
-if [ -z $path ]; then
+if [ -z "$path" ]; then
     echo "RPM not found"
     exit 1
 fi
 
-# Requirements for package where SRPM was built into noarch on CentOS CBS
-# rpm -qp opendaylight-8.0.0-0.1.20171125rel2049.el7.noarch.rpm --requires
-# shellcheck disable=SC2034
-declare -a expected_deps=( "/bin/bash"
-                           "/bin/sh"
-                           "java >= 1:1.8.0"
-                           "rpmlib(CompressedFileNames) <= 3.0.4-1"
-                           "rpmlib(FileDigests) <= 4.6.0-1"
-                           "rpmlib(PartialHardlinkSets) <= 4.0.4-1"
-                           "rpmlib(PayloadFilesHavePrefix) <= 4.0-1"
-                           "shadow-utils"
-                           "rpmlib(PayloadIsXz) <= 5.2-1" )
+
+if [ -f /usr/bin/yum ]; then
+  # Requirements for package where SRPM was built into noarch on CentOS CBS
+  # rpm -qp opendaylight-8.0.0-0.1.20171125rel2049.el7.noarch.rpm --requires
+  # shellcheck disable=SC2034
+  declare -a expected_deps=( "/bin/bash"
+                             "/bin/sh"
+                             "java >= 1:1.8.0"
+                             "rpmlib(CompressedFileNames) <= 3.0.4-1"
+                             "rpmlib(FileDigests) <= 4.6.0-1"
+                             "rpmlib(PartialHardlinkSets) <= 4.0.4-1"
+                             "rpmlib(PayloadFilesHavePrefix) <= 4.0-1"
+                             "shadow-utils"
+                             "rpmlib(PayloadIsXz) <= 5.2-1" )
+
+elif [ -f /usr/bin/zypper ]; then
+  declare -a expected_deps=( "/bin/bash"
+                             "/bin/sh"
+                             "java >= 1.8.0"
+                             "rpmlib(CompressedFileNames) <= 3.0.4-1"
+                             "rpmlib(PayloadFilesHavePrefix) <= 4.0-1"
+                             "shadow"
+                             "rpmlib(PayloadIsLzma) <= 4.4.6-1" )
+
+fi
 
 # Karaf 4 distros also have a /usr/bin/env requirement INTPAK-120
 if [[ ! $path == *opendaylight-6*  ]]; then
@@ -39,18 +56,19 @@ if [[ ! $path == *opendaylight-6*  ]]; then
 fi
 
 # shellcheck disable=SC2034
-mapfile -t actual_deps < <( rpm -qp /home/$USER/rpmbuild/RPMS/noarch/*.rpm --requires )
+mapfile -t actual_deps < <( rpm -qp "$HOME"/rpmbuild/RPMS/noarch/*.rpm --requires )
 # shellcheck disable=SC2154 disable=SC2145
-printf 'Dependency found: %s\n' "${{actual_deps[@]}}"
+printf 'Dependency found: %s\n' "${actual_deps[@]}"
+
+# shellcheck disable=SC2154,SC2145,SC2034,SC2207
+diff_deps=($(echo "${expected_deps[@]}" "${actual_deps[@]}" | tr ' ' '\n' | sort | uniq -u))
 
-# shellcheck disable=SC2154 disable=SC2145 disable=SC2034
-diff_deps=(`echo "${{expected_deps[@]}}" "${{actual_deps[@]}}" | tr ' ' '\n' | sort | uniq -u`)
 # shellcheck disable=SC2154 disable=SC2145 disable=SC2068 disable=SC2170 disable=SC1083
-if [ ${{#diff_deps[*]}} -eq 0 ]; then
+if [ ${#diff_deps[*]} -eq 0 ]; then
     echo "RPM requirements are as expected"
 else
     echo "RPM requirements don't match the expected requirements"
     # shellcheck disable=SC2154 disable=SC2145
-    printf 'Dependency mismatch: %s\n' ${{diff_deps[@]}}
+    printf 'Dependency mismatch: %s\n' ${diff_deps[@]}
     exit 1
 fi