9309: Add packages and tests for CentOS 7.
[arvados.git] / build / package-testing / rpm-common-test-packages.sh
1 #!/bin/bash
2
3 set -eu
4
5 target=$(basename "$0" | grep -Eo '\bcentos[[:digit:]]+\b')
6
7 yum -q clean all
8 touch /var/lib/rpm/*
9
10 export ARV_PACKAGES_DIR="/arvados/packages/$target"
11
12 rpm -qa | sort > "$ARV_PACKAGES_DIR/$1.before"
13
14 yum install --assumeyes $1
15
16 rpm -qa | sort > "$ARV_PACKAGES_DIR/$1.after"
17
18 diff "$ARV_PACKAGES_DIR/$1".{before,after} >"$ARV_PACKAGES_DIR/$1.diff" || true
19
20 # Enable any Software Collections that the package depended on.
21 if [[ -d /opt/rh ]]; then
22     # We have to stage the list to a file, because `ls | while read` would
23     # make a subshell, causing the `source` lines to have no effect.
24     scl_list=$(mktemp)
25     ls /opt/rh >"$scl_list"
26
27     # SCL scripts aren't designed to run with -eu.
28     set +eu
29     while read scl; do
30         source scl_source enable "$scl"
31     done <"$scl_list"
32     set -eu
33     rm "$scl_list"
34 fi
35
36 mkdir -p /tmp/opts
37 cd /tmp/opts
38
39 rpm2cpio $(ls -t "$ARV_PACKAGES_DIR/$1"-*.rpm | head -n1) | cpio -idm 2>/dev/null
40
41 find -name '*.so' | while read so; do
42     echo -e "\n== Packages dependencies for $so =="
43     ldd "$so" \
44         | awk '($3 ~ /^\//){print $3}' | sort -u | xargs rpm -qf | sort -u
45 done
46
47 exec /jenkins/package-testing/common-test-packages.sh "$1"