SOURCES: find-java-req.sh - omit package's own Provides: from Requ...

glen glen at pld-linux.org
Wed Apr 11 00:04:23 CEST 2007


Author: glen                         Date: Tue Apr 10 22:04:23 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- omit package's own Provides: from Requires (taken from mono deps scripts)

---- Files affected:
SOURCES:
   find-java-req.sh (1.6 -> 1.7) 

---- Diffs:

================================================================
Index: SOURCES/find-java-req.sh
diff -u SOURCES/find-java-req.sh:1.6 SOURCES/find-java-req.sh:1.7
--- SOURCES/find-java-req.sh:1.6	Wed Apr 11 00:00:07 2007
+++ SOURCES/find-java-req.sh	Wed Apr 11 00:04:18 2007
@@ -28,15 +28,52 @@
 	rm -rf $tmp
 }
 
-for file in $(cat -); do
-	case $file in
-	*.jar)
-		javajarversion "$file"
-		unzip -p $file | javadeps --requires --rpmformat --keywords -
-	;;
-	*.class)
-		javaclassversion "$file"
-		javadeps --requires --rpmformat --keywords $file
-	;;
-	esac
-done | sort -u
+FILES=$(cat -)
+
+REQUIRES=$(
+	for file in $FILES; do
+		case $file in
+		*.jar)
+			javajarversion "$file"
+			unzip -p $file | javadeps --requires --rpmformat --keywords -
+		;;
+		*.class)
+			javaclassversion "$file"
+			javadeps --requires --rpmformat --keywords $file
+		;;
+		esac
+	done | sort -u
+)
+
+PROVIDES=$(
+	for file in $FILES; do
+		case $file in
+		*.jar)
+			unzip -p $file | javadeps --provides --rpmformat --keywords --starprov -
+		;;
+		*.class)
+			javadeps --provides --rpmformat --keywords --starprov $file
+		;;
+		esac
+	done | sort -u
+)
+
+# This is a little magic trick to get all REQUIRES that are not
+# in PROVIDES. While RPM functions correctly when such deps exist,
+# they make the metadata a bit bloated.
+
+# Filter out dups from both lists
+REQUIRES=$(echo "$REQUIRES" | sort | uniq)
+PROVIDES=$(echo "$PROVIDES" | sort | uniq)
+
+#
+# Get a list of elements that exist in exactly one of PROVIDES or REQUIRES
+#
+UNIQ=$(echo "$PROVIDES
+$REQUIRES" | sort | uniq -u)
+
+#
+# Of those, only choose the ones that are in REQUIRES
+#
+echo "$UNIQ
+$REQUIRES" | sort | uniq -d
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/find-java-req.sh?r1=1.6&r2=1.7&f=u



More information about the pld-cvs-commit mailing list