2007-10-19 Marek Habersack <mhabersack@novell.com>
[mono.git] / scripts / mono-find-requires.in
index 02deeeef7e32ea7125846656e8c7e75a304ff529..420275d7a6d7cd434012ab5d5236256a6f0b85eb 100644 (file)
@@ -33,9 +33,16 @@ fi
 if test "x@reloc_libdir@" = "xlib64" ; then
         libext="()(64bit)"
 else
+       # (note, this works on ppc64 since we only have 32bit mono)
         libext=""
 fi
 
+# Exceptions:
+case `uname -m` in
+       # ia64 doesn't use lib64 for 'libdir' (sles 9 rpm used to provide both... no longer)
+       ia64)   libext="()(64bit)" ;;
+esac
+
 # set LD_LIBRARY_PATH to ensure that libmono.so is found
 export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
 
@@ -69,7 +76,9 @@ REQUIRES=$(
                        ignore=0
                        req=""
                        split($_, toks, "\"")
-                       for(i=1; i <= length(toks); i++) {
+                       toks_size=0
+                        for(tok in toks) { toks_size++ }
+                       for(i=1; i <= toks_size; i++) {
                                if(toks[i] ~ /target=/) {
                                        req=toks[i+1]
                                }
@@ -84,7 +93,9 @@ REQUIRES=$(
                                        }
 
                                        split(attr, os_targets, ",")
-                                       for(j=1; j <= length(os_targets); j++) {
+                                       os_targets_size=0
+                                        for(os_target in os_targets) { os_targets_size++ }
+                                       for(j=1; j <= os_targets_size; j++) {
                                                if(os_targets[j] == "linux") {
                                                        found=1
                                                }
@@ -105,6 +116,12 @@ REQUIRES=$(
        done
 )
 
+# Note about above:
+#  Use to do: system("rpm -q --whatprovides --queryformat \"%{NAME}\n\" ""\""req"'$libext'""\"")
+#  rpmlint prefers to have lib names instead of package names.  There was a reason I was using package names but it slips me now...
+#  Ah... now I remember... it's for noarch packs.  The noarch packages can be built on either 32 or 64 bit... so we have to depend
+#   on the package name instead.
+
 PROVIDES=$(
        for i in "${monolist[@]}"; do
                ($bindir/monodis --assembly $i | awk '