tazpkg diff modules/find-depends @ rev 844
Finish modularization. Beta release: still have few FIXMEs and TODOs.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Mon Oct 05 03:53:47 2015 +0300 (2015-10-05) |
parents | a02e36d44d06 |
children | 3af642cd5e69 |
line diff
1.1 --- a/modules/find-depends Fri Aug 28 16:10:34 2015 +0300 1.2 +++ b/modules/find-depends Mon Oct 05 03:53:47 2015 +0300 1.3 @@ -4,48 +4,31 @@ 1.4 # Functions that are common to tazpkg and tazpkg-convert, and sourced by them. 1.5 1.6 1.7 -# Need by check_depends 1.8 -unset TMPLOCALSTATE 1.9 - 1.10 - 1.11 -# Check for ELF file 1.12 - 1.13 -is_elf() { 1.14 - [ "$(dd if="$1" bs=1 skip=1 count=3 2>/dev/null)" == 'ELF' ] 1.15 -} 1.16 - 1.17 - 1.18 -# Print shared library dependencies 1.19 - 1.20 -ldd() { 1.21 - LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so "$1" 2>/dev/null 1.22 -} 1.23 - 1.24 - 1.25 # search dependencies for files in $TMP_DIR/$file/fs 1.26 1.27 find_depends() { 1.28 DEFAULT_DEPENDS='glibc-base gcc-lib-base' 1.29 1.30 - [ -z "$TMPLOCALSTATE" ] && TMPLOCALSTATE="$PKGS_DB" 1.31 - [ ! -f "$TMPLOCALSTATE/files.list.lzma" ] && tazpkg recharge >/dev/null 1.32 - for i in "$TMPLOCALSTATE/files.list.lzma" \ 1.33 - "$TMPLOCALSTATE/undigest/"*"/files.list.lzma"; do 1.34 + [ ! -f "$PKGS_DB/files.list.lzma" ] && tazpkg recharge >/dev/null 1.35 + 1.36 + for i in "$PKGS_DB/files.list.lzma" \ 1.37 + "$PKGS_DB/undigest/"*"/files.list.lzma"; do 1.38 [ -f "$i" ] && lzma d "$i" -so >> "$TMP_DIR/files.list" 1.39 done 1.40 1.41 _ 'Find depends...' 1>&2 1.42 libs_found='' 1.43 - find "${1:-$TMP_DIR/$file/fs}" -type f | \ 1.44 + find "$1" -type f | \ 1.45 while read chkfile; do 1.46 - is_elf "$chkfile" || continue 1.47 + [ "$(dd bs=1 skip=1 count=3 < "$chkfile" 2>/dev/null)" != 'ELF' ] && continue 1.48 + 1.49 case "$chkfile" in 1.50 *.o|*.ko|*.ko.gz|*.ko.xz) continue;; 1.51 esac 1.52 1.53 - for lib in $(ldd "$chkfile" | sed '/=>/!d;s/ =>.*//'); do 1.54 + for lib in $(LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so "$chkfile" 2>/dev/null | sed '/=>/!d;s/ =>.*//'); do 1.55 case " $libs_found " in 1.56 - *\ $lib\ *) continue 1.57 + *\ $lib\ *) continue;; 1.58 esac 1.59 libs_found="$libs_found $lib" 1.60 case "$lib" in 1.61 @@ -54,9 +37,9 @@ 1.62 find "${1:-$TMP_DIR/$file/fs}" | grep -q /$lib$ && continue 1.63 1.64 _n 'for %s' "$lib" 1>&2 1.65 - echo -ne " \r" 1>&2 1.66 + echo -ne ' \r' 1>&2 1.67 1.68 - for dep in $(fgrep $lib files.list | cut -d: -f1); do 1.69 + for dep in $(fgrep "$lib" "$TMP_DIR/files.list" | cut -d: -f1); do 1.70 case " $DEFAULT_DEPENDS " in 1.71 *\ $dep\ *) continue 2;; 1.72 esac