From aa832f67a55e851fbd7de69ffda44b7d82cd8bf8 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 8 Sep 2014 12:39:19 +0200 Subject: drop most of the script-based dependency generation bits Use rpmdeps to generate any "normal" dependencies even for the kernel module stuff, drop all other unnecessary duplication like elf, libtool and pkgconfig deps. But for TCL, which is broken since forever (we don't package the needed prov/req scripts since at least 2007) --- find-provides.in | 110 +------------------------------------------------------ 1 file changed, 2 insertions(+), 108 deletions(-) (limited to 'find-provides.in') diff --git a/find-provides.in b/find-provides.in index 1e16d3c..1f95f86 100755 --- a/find-provides.in +++ b/find-provides.in @@ -5,50 +5,11 @@ filelist=`sed "s/['\"]/\\\&/g"` -solist=$(echo "$filelist" | egrep -v "^/lib/ld\.so|/usr/lib(64)?/gcj/" | egrep '(/usr(/X11R6)?)?/lib(64)?/.*\.so' | \ - xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) -pythonlist= -tcllist= rubygemlist=$(echo "$filelist"| egrep "\.gemspec$") -mavenlist=$(echo "$filelist" |egrep '/usr/share/maven-fragments/*') -osgilist=$(echo "$filelist" |egrep "^(.*\.jar|((/usr/lib(64)|/usr/share).*/MANIFEST.MF))") # fix parsing output of objdump when localized (mga#7883): export LC_ALL=C -# -# --- Alpha does not mark 64bit dependencies -case `uname -m` in - alpha*) mark64="" ;; - *) mark64="()(64bit)" ;; -esac - -# -# --- Library sonames and weak symbol versions (from glibc). -for f in $solist; do - soname=$(objdump -p $f 2>/dev/null | awk '/SONAME/ {print $2}') - - lib64=`if file -L $f 2>/dev/null | \ - grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` - if [ "$soname" != "" ]; then - if [ ! -L $f ]; then - echo $soname$lib64 - objdump -p $f 2>/dev/null | awk ' - BEGIN { START=0 ; } - /Version definitions:/ { START=1; } - /^[0-9]/ && (START==1) { print $4; } - /^$/ { START=0; } - ' | \ - grep -v $soname | \ - while read symbol ; do - echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" - done - fi - else - echo ${f##*/}$lib64 - fi -done | sort -u - # # --- If libperl.so is found in buildroot, we provide perlapi- if [ -n "`echo $filelist | grep -e '/CORE/libperl\.so'`" ]; then @@ -66,24 +27,6 @@ if [ -n "`echo $filelist | grep -e '/CORE/libperl\.so'`" ]; then done fi -# -# --- Perl modules. -[ -x @RPMVENDORDIR@/perl.prov ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/perl.prov | grep 'perl([[:upper:]]' | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/perl.prov failed' >&2 && exit 1 - -# -# --- Python modules. -[ -x @RPMVENDORDIR@/pythoneggs.py -a -n "$filelist" ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pythoneggs.py --provides | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/pythoneggs.py failed' >&2 && exit 1 - -# -# --- Tcl modules. -[ -x @RPMVENDORDIR@/tcl.prov -a -n "$tcllist" ] && - echo "$tcllist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/tcl.prov | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/tcl.prov failed' >&2 && exit 1 - # # --- Php modules. [ -x @RPMVENDORDIR@/php.prov ] && @@ -96,37 +39,14 @@ fi echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/kmod.prov | sort -u \ && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/kmod.prov failed' >&2 && exit 1 -# -# --- Pkgconfig deps -[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -P | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMLIBDIR@/pkgconfigdeps.sh failed' >&2 && exit 1 - -# -# --- mimehandler -[ -x @RPMLIBDIR@/desktop-file.prov ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/desktop-file.prov --provides | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMLIBDIR@/desktop-file.prov failed' >&2 && exit 1 - -# -# --- fonts -[ -x @RPMLIBDIR@/fontconfig.prov ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/fontconfig.prov --provides | sort -u - # # --- typelib() gobject-introspection bindings [ -x @RPMVENDORDIR@/gi-find-deps.sh ] && echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/gi-find-deps.sh -P | sort -u \ && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/gi-find-deps.sh failed' >&2 && exit 1 -if [ -n "$LIBTOOLDEP" ]; then -# -# --- libtooldep deps -[ -x @RPMLIBDIR@/libtooldeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/libtooldeps.sh -P | sort -u \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/libtooldeps.sh failed' >&2 && exit 1 - -fi +[ -x /usr/lib/rpm/rpmdeps -a -n "$filelist" ] && + echo $filelist | tr '[:blank:]' \\n | /usr/lib/rpm/rpmdeps --provides # # --- Ruby gems @@ -143,14 +63,6 @@ for i in `echo $filelist | tr '[:blank:]' "\n" | egrep '(/usr(/X11R6)?)?/lib(|64 echo ${objd} | perl -p -e "s/.*SONAME\s+(\S+)\.so.*/devel(\1$lib64)/g" done | sort -u -# -# --- mono provides -if [ -x /usr/bin/mono-find-provides ]; then -echo $filelist | tr '[:blank:]' '\n' | /usr/bin/mono-find-provides \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: /usr/bin/mono-find-provides failed' >&2 && exit 1 -fi - - # # --- haskell provides if [ -x /usr/bin/haskell-find-provides ]; then @@ -168,22 +80,4 @@ fi echo "$solist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/gstreamer1.0.prov | sort -u \ && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMVENDORDIR@/gstreamer1.0.prov failed' >&2 && exit 1 -# -# --- osgi provides -if [ -x @RPMLIBDIR@/osgi.prov ];then - if [ ! -z "$osgilist" ]; then - echo "$osgilist" | tr '[:blank:]' '\n' | @RPMLIBDIR@/osgi.prov \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMLIBDIR@/osgi.prov failed' >&2 && exit 1 - fi -fi - -# -# --- maven provides -if [ -x @RPMLIBDIR@/maven.prov ];then - if [ ! -z "$mavenlist" ]; then - echo "$mavenlist" | tr '[:blank:]' '\n' | @RPMLIBDIR@/maven.prov \ - && test ${PIPESTATUS[2]} -ne 0 && echo 'error: @RPMLIBDIR@/maven.prov failed' >&2 && exit 1 - fi -fi - exit 0 -- cgit v1.2.1