Refactor the build-packages scripts a bit to make them much more
[arvados.git] / build / package-testing / deb-common-test-packages.sh
1 #!/bin/bash
2
3 set -eu
4
5 # Multiple .deb based distros symlink to this script, so extract the target
6 # from the invocation path.
7 target=$(echo $0 | sed 's/.*test-packages-\([^.]*\)\.sh.*/\1/')
8
9 export ARV_PACKAGES_DIR="/arvados/packages/$target"
10
11 dpkg-query --show > "$ARV_PACKAGES_DIR/$1.before"
12
13 apt-get -qq update
14 apt-get --assume-yes --force-yes install "$1"
15
16 dpkg-query --show > "$ARV_PACKAGES_DIR/$1.after"
17
18 set +e
19 diff "$ARV_PACKAGES_DIR/$1.before" "$ARV_PACKAGES_DIR/$1.after" > "$ARV_PACKAGES_DIR/$1.diff"
20 set -e
21
22 mkdir -p /tmp/opts
23 cd /tmp/opts
24
25 export ARV_PACKAGES_DIR="/arvados/packages/$target"
26
27 dpkg-deb -x $(ls -t "$ARV_PACKAGES_DIR/$1"_*.deb | head -n1) .
28
29 while read so && [ -n "$so" ]; do
30     echo
31     echo "== Packages dependencies for $so =="
32     ldd "$so" | awk '($3 ~ /^\//){print $3}' | sort -u | xargs dpkg -S | cut -d: -f1 | sort -u
33 done <<EOF
34 $(find -name '*.so')
35 EOF
36
37 exec /jenkins/package-testing/common-test-packages.sh "$1"