]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- omit package's own Provides: from Requires (taken from mono deps scripts)
authorElan Ruusamäe <glen@pld-linux.org>
Tue, 10 Apr 2007 22:04:18 +0000 (22:04 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    find-java-req.sh -> 1.7

find-java-req.sh

index 9c1733fd06cd08d43995adfb8de6b8c6e3c48f71..d79cff6cec0041f2ba708fdb0935dbf71e86af7f 100755 (executable)
@@ -28,15 +28,52 @@ javajarversion() {
        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
This page took 0.061068 seconds and 4 git commands to generate.