Magellan Linux

Contents of /trunk/depend-tools/discover_libs.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 331 - (show annotations) (download) (as text)
Mon Feb 20 00:14:24 2006 UTC (18 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 1231 byte(s)
new files

1 #!/bin/bash
2
3 SOURCE="$1"
4
5 not_in_list()
6 {
7 local deplist="$1"
8 local dep="$2"
9 local i
10
11 for i in ${deplist}
12 do
13 [[ ${i} = ${dep} ]] && return 1
14 done
15
16 return 0
17 }
18
19 echo -n "resolving linking lib ... "
20
21 # first binaries:
22 for bin in $(find ${SOURCE} | xargs file | grep "executable" | grep ELF | cut -f 1 -d :) \
23 $(find ${SOURCE} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d :)
24 do
25 while read lib
26 do
27 dep=$(echo "${lib}" | cut -d'>' -f2 | cut -d'(' -f1 | sed "s:\ ::g")
28 if [[ ${X11HACK} = true ]]
29 then
30 dep=$(echo ${dep} | sed "s:/usr/X11R6/:/usr/:g")
31 fi
32 if [[ -z $(echo ${dep} | grep "notfound") ]]
33 then
34 if not_in_list "${ALL_DEPS}" "${dep}"
35 then
36 ALL_DEPS="${ALL_DEPS} ${dep}"
37 fi
38 fi
39 done << EOF
40 $(ldd ${bin})
41 EOF
42 done
43 echo "done"
44
45 if [[ ${DEBUG} = true ]]
46 then
47 echo
48 for i in $(echo ${ALL_DEPS} | sort )
49 do
50 echo ${i}
51 done
52 echo
53 fi
54
55 echo -n "resolving packages ... "
56 for i in ${ALL_DEPS}
57 do
58 pkg=$(/sbin/magequery -f "${i}")
59 for z in ${pkg}
60 do
61 if not_in_list "${ALL_PACKAGES}" "${z}"
62 then
63 ALL_PACKAGES="${ALL_PACKAGES} ${z}"
64 [[ ${DEBUG} = true ]] && echo "DEBUG: ${z} ${i}"
65 fi
66 done
67 done
68 echo "done"
69
70 echo
71 for i in ${ALL_PACKAGES}
72 do
73 echo "${i}"
74 done | sort
75 echo