#!/usr/bin/bash


# Check the rpm exist
rpm=$1
rpm -q $rpm
if [ $? -eq 1 ]; then 
  exit 1
fi

bold=$(tput bold)
normal=$(tput sgr0)

echo "${bold}repoquery --requires --recursive --resolve ${rpm}${normal}"
repoquery --requires --recursive --resolve $rpm 

echo ""
echo "${bold}repoquery --whatrequires --recursive ${rpm}${normal}"
repoquery --whatrequires --recursive $rpm

echo ""
echo "${bold}List of shared libraries (.so):${normal}" 
rpm -ql $rpm | egrep "\.so$|\.so\.*" | while read shared_lib
do
  ldd $shared_lib | awk '{print $3}' | while read dep_lib
  do  
    if [ -z $dep_lib ]; then continue; fi
    echo $dep_lib | grep -q "0x"
    if [ $? -eq 0 ]; then continue; fi
    echo $dep_lib  
  done 
done | sort -u 

echo ""
echo "${bold}List of RPMs providing theses libraries:${normal}" 
rpm -ql $rpm | egrep "\.so$|\.so\.*" | while read shared_lib
do
  #echo shared_lib=$shared_lib
  ldd $shared_lib | awk '{print $3}' | while read dep_lib
  do  
    if [ -z $dep_lib ]; then continue; fi
    echo $dep_lib | grep -q "0x"
    if [ $? -eq 0 ]; then continue; fi
    rpm -qf $dep_lib  
  done 
done | sort -u 

echo ""
exit 0
