mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-15 21:46:34 +03:00
38 lines
938 B
Bash
38 lines
938 B
Bash
|
#!/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
|
||
|
;;
|
||
|
|
||
|
centos)
|
||
|
echo "TODO!"
|
||
|
;;
|
||
|
|
||
|
*)
|
||
|
echo "$0: unexpected Linux distribution: '$ID'" >&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|