#!/bin/sh
set -e

for prefix in / /usr/
do
  for lib in "${prefix}lib" "${prefix}lib32" "${prefix}lib64" "${prefix}libx32"
  do
    test -d "$lib" || continue
    test -L "$lib" && continue
    for libdir in "$lib" "$lib"/*-gnu*
    do
	test -d "$libdir" || continue
	for f in "$libdir"/*
	do
		test -d "$f" && continue
		test -L "$f" || continue
		rl=$(readlink "$f")
		test -n "${rl##/etc/alternatives/*}" || continue
		owned=0
		dpkg-query -S "$f" >/dev/null 2>&1 && owned=1
		if [ "$owned" = "0" ] && [ -L "/lib" ]
		then
			dpkg-query -S "${f#/usr}" >/dev/null 2>&1 && owned=1
		fi
		if [ "$owned" = "0" ]
		then
			case "$f" in
				/lib/ld-lsb.so.?|\
				/lib/ld-lsb-*.so.?)
					# created by lsb-core
					continue
					;;
				/usr/lib/libglide.so.2|\
				/usr/lib/libglide3.so.3)
					# created by maintainer script
					continue
					;;
				/usr/lib/libfmpich.so.12|\
				/usr/lib/libmpi_cxx.so.20|\
				/usr/lib/libmpich.so.12|\
				/usr/lib/libmpichcxx.so.12|\
				/usr/lib/libmpichf90.so.12|\
				/usr/lib/libmpichfort.so.12)
					if [ -f /etc/alternatives/libmpi.so ]
					then
						# managed by mpi-default-dev via alternatives
						# to /usr/lib/<triplet>/lib${impl}.so
						# ldconfig adds the "real" soname links
						continue
					fi
					;;
			esac
			echo "UNOWNED SYMLINK $f -> $rl"
		fi
	done
    done
  done
done
