On Wed, 3 Oct 2007, Mel wrote:

I use the following little php script to identify programs/libraries still
using old libs:
#!/usr/local/bin/php -q
<?php
// vim: ts=4 sw=4 noet ai tw=78
$localbase = getenv('LOCALBASE');
if(!$localbase)
   $localbase='/usr/local';
$cmd_fmt = '/usr/bin/ldd %s 2>/dev/null| grep compat/pkg';
$search_paths = array('bin', 'sbin', 'lib', 'libexec');
chdir($localbase);
foreach($search_paths AS $path)
{
   echo("==> $path\n");
   $files = glob("$path/*");
   foreach($files AS $file)
   {
       $check = shell_exec(sprintf($cmd_fmt, $file));
       if( empty($check) )
           continue;
       // pretty print reformat
       $check = preg_replace('/^.*?=>/m', "\t\t=>", $check);
       echo("\t$file depends on:\n$check");
   }
}
?>

Interesting. Here's a Ruby version, which shows either I have no old dependencies or that I just didn't translate it correctly:

#!/usr/local/bin/ruby
localbase = ENV["LOCALBASE"] || '/usr/local'
Dir.chdir(localbase)
%w( bin sbin lib libexec ).each do |path|
  puts path
  Dir.glob(path + '/*').each do |file|
    check = `/usr/bin/ldd "#{file}" 2>/dev/null | grep compat/pkg`
    next if check.empty?
    check.sub!(/^.*?=>/m, "\t\t=>")
    puts "\t#{file} depends on:\n#{check}"
  end
end

-Warren Block * Rapid City, South Dakota USA
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to