I'm proposing an ugly patch for missing deps which is at least working.
The output will be something like :

libparrot from parrot-3.1.0-1.mga1.src.rpm is missing /usr/lib/pkgconfig

when the script is parsing the i586 arch.

Regards,


-- 
Balcaen John
Index: missing-deps.sh
===================================================================
--- missing-deps.sh	(révision 1300)
+++ missing-deps.sh	(copie de travail)
@@ -18,8 +18,43 @@
 	d="${repo}/${arch}"
 	urpmf --requires --use-distrib $d : | cut -d: -f2- | sed 's/\[.*//' | sort -u | xargs urpmq -p --use-distrib $d 2>&1 >/dev/null | sed -n 's/No package named //p'
 }
-
+requirelist() {
+		arch=$1
+		      d="${repo}/${arch}"
+				urpmf --requires --use-distrib $d : 
+			}
+getsrpm() {
+		arch=$1
+		rpm=$2
+		deps=$3
+		   d="${repo}/${arch}"
+				echo "$rpm from" $(urpmf --sourcerpm --use-distrib $d $rpm |cut -d: -f2|sort -u) "is missing $deps"
+		      }
 for arch in i586 x86_64
-do
+	do
 	missing $arch > missing-deps.$arch.txt
+	requirelist $arch > listing.$arch.txt
+	 if [ -a list.$arch.txt ]
+		then rm  list.$arch.txt
+	 fi
+	for deps in $(cat missing-deps.$arch.txt)
+		  do
+		  grep -w $deps  listing.$arch.txt |sort -u >> list.$arch.txt
+	done
+	if [ -a final.$arch.list ]
+		then rm final.$arch.list
+	fi
+
+	for list in $(cat list.$arch.txt|sed 's/\[.*//')
+		  do
+		  rpm=`echo $list|cut -d: -f1`
+		  deps=`echo $list|cut -d: -f2-`
+		  getsrpm $arch $rpm $deps >> final.$arch.list
+		  
+	done
+	cat final.$arch.list |sort -u >| final.$arch.txt
+	rm final.$arch.list
+	rm listing.$arch.txt
+	rm list.$arch.txt
+	rm missing-deps.$arch.txt
 done

Reply via email to