From: Daniele Varrazzo Date: Thu, 31 Mar 2022 19:34:27 +0000 (+0200) Subject: ci: print versions of depending packages on psycopg-binary build X-Git-Tag: 3.1~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=953b43290224f393f6076bef5fa6fbd838395597;p=thirdparty%2Fpsycopg.git ci: print versions of depending packages on psycopg-binary build Only on manylinux and musllinux images for the moment. See #262 --- diff --git a/tools/build/print_so_versions.sh b/tools/build/print_so_versions.sh new file mode 100755 index 000000000..316cb7d33 --- /dev/null +++ b/tools/build/print_so_versions.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Take a .so file as input and print the Debian packages and versions of the +# libraries it links. + +set -euo pipefail +# set -x + +source /etc/os-release + +sofile="$1" + +case "$ID" in + alpine) + depfiles=$( (ldd "$sofile" 2>/dev/null || true) | grep '=>' | sed 's/.*=> \(.*\) (.*)/\1/') + (for depfile in $depfiles; do + echo "$(basename "$depfile") => $(apk info --who-owns "${depfile}" | awk '{print $(NF)}')" + done) | sort | uniq + ;; + + debian) + depfiles=$(ldd "$sofile" | grep '=>' | sed 's/.*=> \(.*\) (.*)/\1/') + (for depfile in $depfiles; do + pkgname=$(dpkg -S "${depfile}" | sed 's/\(\): .*/\1/') + dpkg -l "${pkgname}" | grep '^ii' | awk '{print $2 " => " $3}' + done) | sort | uniq + ;; + + *) + echo "$0: unexpected Linux distribution: '$ID'" >&2 + exit 1 + ;; +esac diff --git a/tools/build/strip_wheel.sh b/tools/build/strip_wheel.sh index 3710ef1ca..bfcd30256 100755 --- a/tools/build/strip_wheel.sh +++ b/tools/build/strip_wheel.sh @@ -13,7 +13,10 @@ # This script is designed to run on a wheel archive before auditwheel. set -euo pipefail -set -x +# set -x + +source /etc/os-release +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" wheel=$(realpath "$1") shift @@ -24,9 +27,20 @@ trap "rm -r ${tmpdir}" EXIT cd "${tmpdir}" python -m zipfile -e "${wheel}" . +echo " +Libs before:" # Busybox doesn't have "find -ls" find . -name \*.so | xargs ls -l + +# On Debian, print the package versions libraries come from +echo " +Dependencies versions of '_psycopg.so' library:" +"${dir}/print_so_versions.sh" "$(find . -name \*_psycopg\*.so)" + find . -name \*.so -exec strip "$@" {} \; + +echo " +Libs after:" find . -name \*.so | xargs ls -l python -m zipfile -c ${wheel} * diff --git a/tools/build/wheel_linux_before_all.sh b/tools/build/wheel_linux_before_all.sh index fe29e4122..0395712ac 100755 --- a/tools/build/wheel_linux_before_all.sh +++ b/tools/build/wheel_linux_before_all.sh @@ -6,7 +6,7 @@ set -euo pipefail set -x -. /etc/os-release +source /etc/os-release # Install PostgreSQL development files. case "$ID" in @@ -28,13 +28,14 @@ case "$ID" in curl -skf https://www.postgresql.org/media/keys/ACCC4CF8.asc \ > /etc/apt/trusted.gpg.d/postgresql.asc fi + apt-get update apt-get -y upgrade apt-get -y install libpq-dev ;; *) - echo "Unexpected Linux distribution: '$ID'" >&2 + echo "$0: unexpected Linux distribution: '$ID'" >&2 exit 1 ;; esac