#! /bin/sh
kver=$(uname -K 2>/dev/null || sysctl -n kern.osreldate || echo 0)
uver=$(uname -U 2>/dev/null || awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $3 }' /usr/include/osreldate.h || echo 0)

if [ $uver = 0 -o $kver != $uver ]; then
  echo "Userland sync: userland: $uver; kernel $kver"
fi

find /usr/local -type f -print0 | xargs -0 file | egrep 'ELF (32|64)-bit [LM]SB' | sed -E -ne 's@^([^:]+): .*\(([0-9]+)\).*$@\2 \1@p' | while read ver path
do
  case $path in
    /usr/local/bin/p4* | /usr/local/bin/mailsend | /usr/local/sbin/mfi*)
      ;;
    *)
      if [ $uver != $ver ]; then
        echo "$ver $path"
      fi
      ;;
  esac
done | sort -nr

