X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fpackaging%2Ftest-rpm-deps.sh;h=982fb5c27c564d8c12e0a0254cc406ccef895286;hb=d0d7baa904cbbc510867470eb7688b93d1c1ff98;hp=4aa90dd8a45154e64804d44da5135db79bc45cb7;hpb=733e81e8225fc136517a3ac64b034641fe1551a6;p=releng%2Fbuilder.git diff --git a/jjb/packaging/test-rpm-deps.sh b/jjb/packaging/test-rpm-deps.sh index 4aa90dd8a..982fb5c27 100644 --- a/jjb/packaging/test-rpm-deps.sh +++ b/jjb/packaging/test-rpm-deps.sh @@ -6,38 +6,69 @@ # -o pipefail: Fail on errors in scripts this calls, give stacktrace set -ex -o pipefail -# 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" - "/usr/bin/env" - "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" ) - # 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/rpmbuild/RPMS/noarch/*.rpm) + +# If no RPM found, fail clearly +if [ -z $path ]; then + echo "RPM not found" + exit 1 +fi + + +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 + expected_deps+=( "/usr/bin/env" ) +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