]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-java-requires
- left on AC-branch
[packages/rpm.git] / rpm-java-requires
CommitLineData
071d8496
JB
1#!/bin/sh
2# This script reads filenames from STDIN and outputs any relevant requires
3# information that needs to be included in the package.
4#
5# Based on rpm-4.4.2/scripts/find-req.pl
6# Authors: Elan Ruusamäe <glen@pld-linux.org>
7
8export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
9
10javaclassversion() {
11 [ $# -gt 0 ] || return
12
13 local ver
14 classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
15 [ "$classver" ] || return
16 for v in $classver; do
17 echo "java(ClassDataVersion) >= $v"
18 done
19}
20
21javajarversion() {
22 local jar="$1"
23
24 # check only files, symlinks could point outside buildroot
25 [ -f "$jar" -a ! -L "$jar" ] || return
26
27# echo >&2 "find java requires: ${jar#$RPM_BUILD_ROOT}"
28
29 tmp=$(mktemp -d)
30 unzip -q -d $tmp $jar >&2
31 javaclassversion $(find $tmp -type f -name '*.class')
32 rm -rf $tmp
33}
34
35FILES=$(cat -)
36
37find_requires() {
38 for file in $FILES; do
39 case $file in
40 *.jar)
41 javajarversion "$file"
42 ;;
43 *.class)
44 javaclassversion "$file"
45 ;;
46 esac
47 done
48}
49
50find_requires | sort -u
This page took 0.103964 seconds and 4 git commands to generate.