]>
Commit | Line | Data |
---|---|---|
95593bd3 | 1 | #!/bin/sh |
2d0c53d3 | 2 | # This script reads filenames from STDIN and outputs any relevant requires |
95593bd3 | 3 | # information that needs to be included in the package. |
2d0c53d3 ER |
4 | # |
5 | # Based on rpm-4.4.2/scripts/find-req.pl | |
6 | # Authors: Elan Ruusamäe <glen@pld-linux.org> | |
95593bd3 ER |
7 | |
8 | export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" | |
95593bd3 | 9 | |
95593bd3 | 10 | javaclassversion() { |
b99bbf2b ER |
11 | local ver |
12 | classver=$(file "$@" | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u) | |
13 | [ "$classver" ] || return | |
14 | for v in $classver; do | |
15 | echo "java(ClassDataVersion) >= $v" | |
16 | done | |
17 | } | |
18 | ||
19 | javajarversion() { | |
20 | local jar="$1" | |
95593bd3 | 21 | |
4e1562b5 | 22 | # check only files, symlinks could point outside buildroot |
b99bbf2b | 23 | [ -f "$jar" -a ! -L "$jar" ] || return |
4e1562b5 | 24 | |
95593bd3 | 25 | tmp=$(mktemp -d) |
b99bbf2b ER |
26 | unzip -q -d $tmp $jar >&2 |
27 | javaclassversion $(find $tmp -type f -name '*.class') | |
95593bd3 | 28 | rm -rf $tmp |
95593bd3 ER |
29 | } |
30 | ||
31 | for file in $(cat -); do | |
4e1562b5 | 32 | case $file in |
95593bd3 | 33 | *.jar) |
b99bbf2b ER |
34 | javajarversion "$file" |
35 | unzip -p $file | javadeps --requires --rpmformat --keywords - | |
36 | ;; | |
37 | *.class) | |
4e1562b5 | 38 | javaclassversion "$file" |
b99bbf2b | 39 | javadeps --requires --rpmformat --keywords $file |
95593bd3 ER |
40 | ;; |
41 | esac | |
1ae8d1e3 | 42 | done | sort -u |