From b99bbf2b7d6c7f5678db1ce96b134f287f544731 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Tue, 10 Apr 2007 21:35:57 +0000 Subject: [PATCH] - scan also .class files - call `javadeps` for class deps Changed files: find-java-req.sh -> 1.4 --- find-java-req.sh | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/find-java-req.sh b/find-java-req.sh index 5a9b445..adbeb44 100755 --- a/find-java-req.sh +++ b/find-java-req.sh @@ -3,9 +3,6 @@ # information that needs to be included in the package. export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" -PATH=${PATH}:$(dirname $0) - -javadeps_args='--requires --rpmformat --keywords' IGNORE_DEPS="@" BUILDROOT="/" @@ -51,25 +48,35 @@ while :; do done javaclassversion() { - local file="$1" + local ver + classver=$(file "$@" | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u) + [ "$classver" ] || return + for v in $classver; do + echo "java(ClassDataVersion) >= $v" + done +} + +javajarversion() { + local jar="$1" # check only files, symlinks could point outside buildroot - [ -f "$file" -a ! -L "$file" ] || return + [ -f "$jar" -a ! -L "$jar" ] || return tmp=$(mktemp -d) - unzip -q -d $tmp $file >&2 - classver=$(find $tmp -type f -name '*.class' | xargs -r -d'\n' file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u) + unzip -q -d $tmp $jar >&2 + javaclassversion $(find $tmp -type f -name '*.class') rm -rf $tmp - [ "$classver" ] || return - for v in $classver; do - echo "java(ClassDataVersion) >= $v" - done } 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 | egrep -v \'$IGNORE_DEPS\' -- 2.43.0