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