12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/bin/bash
- #
- # mono-find-provides
- #
- # Authors:
- # Ben Maurer (bmaurer@ximian.com)
- #
- # (C) 2005 Novell (http://www.novell.com)
- #
- if [ -n "$DISABLE_MONO_RPM_AUTO_DEPS" ]; then exit 0; fi
- IFS=$'\n'
- filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
- monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$"))
- # Only include files with /gac/, /Facades/ or /4.5/ in path
- # (Allows packages to contain private assemblies that don't conflict with other packages)
- monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/(gac|Facades|4\\.5)/"))
- # Disabled... see ChangeLog
- # Set the prefix, unless it is overriden (used when building mono rpms)
- : ${prefix=/Users/bokken/workspace/Build-mono/tmp}
- libdir=$prefix/lib
- bindir=$prefix/bin
- # Bail out if monodis or libmono is missing
- if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then
- echo "monodis missing or unusable, exiting..." 1>&2
- exit 1
- fi
- # set LD_LIBRARY_PATH to ensure that libmono is found
- export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
- # and set MONO_PATH to ensure that mscorlib.dll can be found
- export MONO_PATH=$prefix/lib/mono/4.5
- for i in "${monolist[@]}"; do
- ($bindir/monodis --assembly $i | awk '
- BEGIN { LIBNAME=""; VERSION=""; }
- /^Version:/ { VERSION=$2 }
- /^Name:/ { LIBNAME=$2 }
- END {
- if (LIBNAME ~ /^policy/) {
- cnt = split(LIBNAME, toks, ".")
- VERSION=toks[2] "." toks[3] ".0.0"
- LIBNAME=""
- for (i=4; i<= cnt; i++)
- LIBNAME = (LIBNAME toks[i] ".")
- LIBNAME=substr(LIBNAME, 1, length(LIBNAME)-1)
- }
- if (VERSION && LIBNAME)
- print "mono(" LIBNAME ") = " VERSION
- }
- ') 2>/dev/null
- done
|