#!/usr/bin/perl -w # # Find dependancies. Simple dpkg-shlibdeps wrapper. use strict; use Cwd; use Debian::Debhelper::Dh_Lib; init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $ext=pkgext($package); my @filelist; my $ff; # Generate a list of ELF binaries in the package, ignoring any # we were told to exclude. my $find_options=''; if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') { $find_options="! \\( $dh{EXCLUDE_FIND} \\)"; } foreach my $file (split(/\n/,`find $tmp -type f \\( -perm +111 -or -name "*.so*" \\) $find_options`)) { # TODO: this is slow, optimize. Ie, file can run once on multiple files.. $ff=`file "$file"`; if ($ff=~m/ELF/ && $ff!~/statically linked/) { push @filelist,$file; } } if (@filelist) { if ($dh{L_PARAMS}) { # Force the path absolute. unless ($dh{L_PARAMS}=~m:^/:) { $dh{L_PARAMS}=getcwd()."/$dh{L_PARAMS}"; } $ENV{'LD_LIBRARY_PATH'}=$dh{L_PARAMS}; verbose_print("LD_LIBRARY_PATH=$dh{L_PARAMS} \\"); } doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",@{$dh{U_PARAMS}},'-dDepends',@filelist); } }