[packages/rpm-build-macros] - move java macros and javaprov here from rpm package
baggins
baggins at pld-linux.org
Thu Jan 2 14:39:48 CET 2020
commit 2e434209d35be19548e12eba46cb285664485529
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Thu Jan 2 22:38:59 2020 +0900
- move java macros and javaprov here from rpm package
attr.java | 3 +
eclipse-feature.xslt | 81 +++++++++++++++++++++++++
macros.java | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++
macros.pld | 158 -----------------------------------------------
rpm-build-macros.spec | 38 +++++++++++-
rpm-java-requires | 137 +++++++++++++++++++++++++++++++++++++++++
6 files changed, 423 insertions(+), 159 deletions(-)
---
diff --git a/rpm-build-macros.spec b/rpm-build-macros.spec
index 846859a..ffc7683 100644
--- a/rpm-build-macros.spec
+++ b/rpm-build-macros.spec
@@ -18,6 +18,11 @@ Source11: macros.ruby
Source12: rubygems.rb
Source13: gem_helper.rb
+Source20: attr.java
+Source21: macros.java
+Source22: rpm-java-requires
+Source23: eclipse-feature.xslt
+
Patch0: disable-systemd.patch
#Patchx: %{name}-pydebuginfo.patch
BuildRequires: rpm >= 4.4.9-56
@@ -63,7 +68,7 @@ Requires: ruby
Requires: ruby-modules
Requires: ruby-rubygems
Provides: rpm-rubyprov
-Obsoletes; rpm-rubyprov
+Obsoletes: rpm-rubyprov
%description rubyprov
Ruby tools, which simplifies creation of RPM packages with Ruby
@@ -73,6 +78,27 @@ software.
Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
Ruby.
+%package javaprov
+Summary: Additional utilities for checking Java provides/requires in RPM packages
+Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzania zależności kodu w Javie w pakietach RPM
+Group: Applications/File
+Requires: %{name} = %{version}-%{release}
+Requires: jar
+Requires: file
+Requires: findutils >= 1:4.2.26
+Requires: mktemp
+Requires: unzip
+Provides: rpm-javaprov
+Obsoletes: rpm-javaprov
+
+%description javaprov
+Additional utilities for checking Java provides/requires in RPM
+packages.
+
+%description javaprov -l pl.UTF-8
+Dodatkowe narzędzia do sprawdzania zależności kodu w Javie w pakietach
+RPM.
+
%prep
%setup -qcT
cp -p %{SOURCE0} .
@@ -113,12 +139,17 @@ cat %{SOURCE11} %{SOURCE10} >$RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/ruby
install -p %{SOURCE12} $RPM_BUILD_ROOT%{_usrlibrpm}/rubygems.rb
install -p %{SOURCE13} $RPM_BUILD_ROOT%{_usrlibrpm}/gem_helper.rb
+cat %{SOURCE21} %{SOURCE20} >$RPM_BUILD_ROOT%{_usrlibrpm}/macros.d/java
+install %{SOURCE22} $RPM_BUILD_ROOT%{_usrlibrpm}/java-find-requires
+install %{SOURCE23} $RPM_BUILD_ROOT%{_usrlibrpm}/eclipse-feature.xslt
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%{_usrlibrpm}/macros.build
+%{_usrlibrpm}/macros.d/java
%{_usrlibrpm}/macros.d/kernel
%{_usrlibrpm}/macros.d/ruby
%attr(755,root,root) %{_usrlibrpm}/service_generator.sh
@@ -129,3 +160,8 @@ rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%attr(755,root,root) %{_usrlibrpm}/gem_helper.rb
%attr(755,root,root) %{_usrlibrpm}/rubygems.rb
+
+%files javaprov
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_usrlibrpm}/java-find-requires
+%{_usrlibrpm}/eclipse-feature.xslt
diff --git a/attr.java b/attr.java
new file mode 100644
index 0000000..a3d1191
--- /dev/null
+++ b/attr.java
@@ -0,0 +1,3 @@
+%__java_requires env RPM_BUILD_ROOT=%{buildroot} MIN_CLASSDATAVERSION=%{?java_min_classdataversion} %{_rpmhome}/java-find-requires
+%__java_magic ^Java .*
+%__java_path \\.(jar|class)$
diff --git a/eclipse-feature.xslt b/eclipse-feature.xslt
new file mode 100644
index 0000000..d48df03
--- /dev/null
+++ b/eclipse-feature.xslt
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="text"/>
+
+<!-- we match from root, not to left anything to default template -->
+<xsl:template match="/">
+ <xsl:apply-templates select="feature"/>
+</xsl:template>
+
+<xsl:template match="feature">
+ <!-- process provides -->
+ <xsl:if test="$mode = 'provides'">
+ <!-- include root tag of feature -->
+ <xsl:text>eclipse(</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>) = </xsl:text>
+ <xsl:value-of select="@version"/>
+ <xsl:text>
</xsl:text>
+
+ <!-- is feature and plugin any way different? -->
+ <!-- process feature/plugin -->
+ <xsl:for-each select="plugin">
+ <xsl:text>eclipse(</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>) = </xsl:text>
+ <xsl:value-of select="@version"/>
+ <xsl:text>
</xsl:text>
+ </xsl:for-each>
+ <!-- process feature/includes -->
+ <xsl:for-each select="includes">
+ <xsl:text>eclipse(</xsl:text>
+ <xsl:value-of select="@id"/>
+ <xsl:text>) = </xsl:text>
+ <xsl:value-of select="@version"/>
+ <xsl:text>
</xsl:text>
+ </xsl:for-each>
+ </xsl:if>
+
+ <!-- process requires -->
+ <xsl:if test="$mode = 'requires'">
+ <xsl:for-each select="requires/import">
+ <xsl:text>eclipse(</xsl:text>
+ <!-- match plugin or feature -->
+ <xsl:if test="@plugin != ''">
+ <xsl:value-of select="@plugin"/>
+ </xsl:if>
+ <xsl:if test="@feature != ''">
+ <xsl:value-of select="@feature"/>
+ </xsl:if>
+ <xsl:text>)</xsl:text>
+
+ <!-- handle match="perfect" (probably means: same version as us) -->
+ <xsl:if test="@match = 'perfect'">
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="//feature/@version"/>
+ </xsl:if>
+
+ <xsl:if test="@match = 'compatible'">
+ <xsl:text> >= </xsl:text>
+ <xsl:value-of select="@version"/>
+ </xsl:if>
+
+ <!-- apparently: base ver or greater -->
+ <xsl:if test="@match = 'equivalent'">
+ <xsl:text> >= </xsl:text>
+ <xsl:value-of select="@version"/>
+ </xsl:if>
+
+ <!-- no qualifier, assume any? -->
+ <xsl:if test="@match = ''">
+ <xsl:text> >= </xsl:text>
+ <xsl:value-of select="@version"/>
+ </xsl:if>
+
+ <xsl:text>
</xsl:text>
+ </xsl:for-each>
+ </xsl:if>
+
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/macros.java b/macros.java
new file mode 100644
index 0000000..746e426
--- /dev/null
+++ b/macros.java
@@ -0,0 +1,165 @@
+# vim:ts=4 sw=4 noet ft=spec
+#
+# Java macros. based on jpackage macros.java
+#
+# Import packaging conventions from jpackage.org (prefixed with _
+# to avoid name collisions).
+#
+%_javadir %{_datadir}/java
+%_javadocdir %{_datadir}/javadoc
+
+# Root directory where all Java VMs/SDK/JREs are installed.
+%_jvmdir %{_libdir}/jvm
+
+# Root directory where all Java VMs/SDK/JREs expose their jars
+%_jvmjardir %{_libdir}/jvm-exports
+
+# Root directory for all Java VM/SDK/JRE's private things.
+%_jvmprivdir %{_libdir}/jvm-private
+
+# Root directory for all architecture dependent parts of Java VM/SDK/JRE's
+%_jvmlibdir %{_libdir}/jvm
+
+# Root directory for all architecture independent parts of Java VM/SDK/JRE's
+%_jvmdatadir %{_datadir}/jvm
+
+# Root directory for all configurations parts of Java VM/SDK/JRE's
+%_jvmsysconfdir %{_sysconfdir}/jvm
+
+# Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
+%_jvmcommonlibdir %{_libdir}/jvm-common
+
+# Root directory for all common architecture independent parts of Java VM/SDK/JRE's
+%_jvmcommondatadir %{_datadir}/jvm-common
+
+# Root directory for all common configurations parts of Java VM/SDK/JRE's
+%_jvmcommonsysconfdir %{_sysconfdir}/jvm-common
+
+# Directory where arch-specific (JNI) version-independent jars are installed.
+%_jnidir %{_libdir}/java
+
+
+# JDK selection. Set this to name of the JDK implementation to use
+# insead of the system default
+#%use_jdk icedtea6
+
+# expands to the value with right jdk for BuildRequires header
+# 'jdk' if %%use_jdk is not defined, jdk(%%use_jdk) otherwise
+# The requirement will not replace current 'default' JDK
+%required_jdk jdk%{?use_jdk:(%{use_jdk})}
+
+%buildrequires_jdk BuildRequires: %required_jdk
+
+%java_home %{expand:%%global java_home %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; %{!?use_jdk:unset JAVA_HOME; . %{_javadir}-utils/java-functions; set_jvm}%{?use_jdk:JAVA_HOME=%{_jvmdir}/%{use_jdk}}; echo ${JAVA_HOME:-ERROR})}%java_home
+
+%_javasrcdir %{_usrsrc}/java
+
+%ant JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
+%jar %{java_home}/bin/jar
+%java %{expand:%%global java %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; %{!?use_jdk:unset JAVACMD; . %{_javadir}-utils/java-functions; set_javacmd}%{?use_jdk:JAVACMD=%{java_home}/bin/java}; echo $JAVACMD)}%java
+%javac %{java_home}/bin/javac
+%javadoc %{java_home}/bin/javadoc
+
+%add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
+
+%jpackage_script() \
+install -d $RPM_BUILD_ROOT%{_bindir}\
+cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
+#!/bin/sh\
+#\
+# %{name} script\
+# JPackage Project <http://www.jpackage.org/>\
+\
+# Source functions library\
+. %{_javadir}-utils/java-functions\
+\
+# Source system prefs\
+if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
+ . %{_sysconfdir}/java/%{name}.conf\
+fi\
+\
+# Source user prefs\
+if [ -f $HOME/.%{name}rc ]; then\
+ . $HOME/.%{name}rc\
+fi\
+\
+# Configuration\
+MAIN_CLASS=%1\
+BASE_FLAGS=%2\
+BASE_OPTIONS=%3\
+BASE_JARS="%(echo %4 | tr ':' ' ')"\
+\
+# Set parameters\
+set_jvm\
+set_classpath $BASE_JARS\
+set_flags $BASE_FLAGS\
+set_options $BASE_OPTIONS\
+\
+# Let's start\
+run "$@"\
+EOF
+
+# jpackage 1.7
+# Directory for maven depmaps
+#
+%_mavendepmapdir /etc/maven
+%_mavendepmapfragdir /etc/maven/fragments
+
+#
+# add_to_depmap adds an entry to the depmap. The arguments are:
+#
+# %1 the original groupid
+# %2 the original artifact id
+# %3 the version
+# %4 the new groupid
+# %5 the new artifactid
+#
+
+%add_to_maven_depmap() \
+install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
+cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
+<dependency>\
+ <maven>\
+ <groupId>%1</groupId>\
+ <artifactId>%2</artifactId>\
+ <version>%3</version>\
+ </maven>\
+ <jpp>\
+ <groupId>%4</groupId>\
+ <artifactId>%5</artifactId>\
+ <version>%3</version>\
+ </jpp>\
+</dependency>\
+\
+EOF\
+%{nil}
+
+#==============================================================================
+#
+# update_maven_depmap updates the main maven depmap
+#
+%update_maven_depmap() \
+echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
+if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
+cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
+fi\
+echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
+
+# JAVA macros specific for PLD
+
+# Directory for tomcat context configuration files
+%_tomcatconfdir /etc/tomcat/Catalina/localhost
+
+# Tomcat cache path
+%_tomcatcachedir %{_sharedstatedir}/tomcat/work/Catalina/localhost
+
+# Clear tomcat cache
+# Author: Paweł Zuzelski <pawelz at pld-linux.org>
+#
+# Usage:
+# %%tomcat_clear_cache appname
+#
+# Call this script in %postun scriptlet. It will remove compiled jsps related to
+# given app.
+#
+%tomcat_clear_cache() %{!?1:ERROR}%{?2:ERROR} %{__rm} -rf %{_tomcatcachedir}/%1
diff --git a/macros.pld b/macros.pld
index b0f4195..1a3837f 100644
--- a/macros.pld
+++ b/macros.pld
@@ -1552,164 +1552,6 @@ fi \
# BuildRequires: rpmbuild(macros) >= 1.450
%service(qn) {{%(export noop=%{-n:1} quiet=%{-q:1} RPM_BUILD_ROOT=%{buildroot}; /usr/lib/rpm/service_generator.sh %{*}) };}
-# Java macros. based on jpackage macros.java
-#
-# Root directory where all Java VMs/SDK/JREs are installed.
-%_jvmdir %{_libdir}/jvm
-
-# Root directory where all Java VMs/SDK/JREs expose their jars
-%_jvmjardir %{_libdir}/jvm-exports
-
-# Root directory for all Java VM/SDK/JRE's private things.
-%_jvmprivdir %{_libdir}/jvm-private
-
-# Root directory for all architecture dependent parts of Java VM/SDK/JRE's
-%_jvmlibdir %{_libdir}/jvm
-
-# Root directory for all architecture independent parts of Java VM/SDK/JRE's
-%_jvmdatadir %{_datadir}/jvm
-
-# Root directory for all configurations parts of Java VM/SDK/JRE's
-%_jvmsysconfdir %{_sysconfdir}/jvm
-
-# Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
-%_jvmcommonlibdir %{_libdir}/jvm-common
-
-# Root directory for all common architecture independent parts of Java VM/SDK/JRE's
-%_jvmcommondatadir %{_datadir}/jvm-common
-
-# Root directory for all common configurations parts of Java VM/SDK/JRE's
-%_jvmcommonsysconfdir %{_sysconfdir}/jvm-common
-
-# Directory where arch-specific (JNI) version-independent jars are installed.
-%_jnidir %{_libdir}/java
-
-
-# JDK selection. Set this to name of the JDK implementation to use
-# insead of the system default
-#%use_jdk icedtea6
-
-# expands to the value with right jdk for BuildRequires header
-# 'jdk' if %%use_jdk is not defined, jdk(%%use_jdk) otherwise
-# The requirement will not replace current 'default' JDK
-%required_jdk jdk%{?use_jdk:(%{use_jdk})}
-
-%buildrequires_jdk BuildRequires: %required_jdk
-
-%java_home %{expand:%%global java_home %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; %{!?use_jdk:unset JAVA_HOME; . %{_javadir}-utils/java-functions; set_jvm}%{?use_jdk:JAVA_HOME=%{_jvmdir}/%{use_jdk}}; echo ${JAVA_HOME:-ERROR})}%java_home
-
-%_javasrcdir %{_usrsrc}/java
-
-%ant JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
-%jar %{java_home}/bin/jar
-%java %{expand:%%global java %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; %{!?use_jdk:unset JAVACMD; . %{_javadir}-utils/java-functions; set_javacmd}%{?use_jdk:JAVACMD=%{java_home}/bin/java}; echo $JAVACMD)}%java
-%javac %{java_home}/bin/javac
-%javadoc %{java_home}/bin/javadoc
-
-%add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
-
-%jpackage_script() \
-install -d $RPM_BUILD_ROOT%{_bindir}\
-cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
-#!/bin/sh\
-#\
-# %{name} script\
-# JPackage Project <http://www.jpackage.org/>\
-\
-# Source functions library\
-. %{_javadir}-utils/java-functions\
-\
-# Source system prefs\
-if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
- . %{_sysconfdir}/java/%{name}.conf\
-fi\
-\
-# Source user prefs\
-if [ -f $HOME/.%{name}rc ]; then\
- . $HOME/.%{name}rc\
-fi\
-\
-# Configuration\
-MAIN_CLASS=%1\
-BASE_FLAGS=%2\
-BASE_OPTIONS=%3\
-BASE_JARS="%(echo %4 | tr ':' ' ')"\
-\
-# Set parameters\
-set_jvm\
-set_classpath $BASE_JARS\
-set_flags $BASE_FLAGS\
-set_options $BASE_OPTIONS\
-\
-# Let's start\
-run "$@"\
-EOF
-
-# jpackage 1.7
-# Directory for maven depmaps
-#
-%_mavendepmapdir /etc/maven
-%_mavendepmapfragdir /etc/maven/fragments
-
-#
-# add_to_depmap adds an entry to the depmap. The arguments are:
-#
-# %1 the original groupid
-# %2 the original artifact id
-# %3 the version
-# %4 the new groupid
-# %5 the new artifactid
-#
-
-%add_to_maven_depmap() \
-install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
-cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
-<dependency>\
- <maven>\
- <groupId>%1</groupId>\
- <artifactId>%2</artifactId>\
- <version>%3</version>\
- </maven>\
- <jpp>\
- <groupId>%4</groupId>\
- <artifactId>%5</artifactId>\
- <version>%3</version>\
- </jpp>\
-</dependency>\
-\
-EOF\
-%{nil}
-
-#==============================================================================
-#
-# update_maven_depmap updates the main maven depmap
-#
-%update_maven_depmap() \
-echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
-if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
-cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
-fi\
-echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
-
-# JAVA macros specific for PLD
-
-# Directory for tomcat context configuration files
-%_tomcatconfdir /etc/tomcat/Catalina/localhost
-
-# Tomcat cache path
-%_tomcatcachedir %{_sharedstatedir}/tomcat/work/Catalina/localhost
-
-# Clear tomcat cache
-# Author: Paweł Zuzelski <pawelz at pld-linux.org>
-#
-# Usage:
-# %%tomcat_clear_cache appname
-#
-# Call this script in %postun scriptlet. It will remove compiled jsps related to
-# given app.
-#
-%tomcat_clear_cache() %{!?1:ERROR}%{?2:ERROR} %{__rm} -rf %{_tomcatcachedir}/%1
-
# PEAR install macros
# Author: Elan Ruusamäe <glen at pld-linux.org>
#
diff --git a/rpm-java-requires b/rpm-java-requires
new file mode 100755
index 0000000..8bbac6f
--- /dev/null
+++ b/rpm-java-requires
@@ -0,0 +1,137 @@
+#!/bin/sh
+# This script reads filenames from STDIN and outputs any relevant requires
+# information that needs to be included in the package.
+#
+# Based on rpm-4.4.2/scripts/find-req.pl
+# Authors: Elan Ruusamäe <glen at pld-linux.org>
+
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
+
+# Set the prefix, unless it is overriden
+: ${RPM_LIBDIR=/usr/lib/rpm}
+
+# Enable debug: JAVADEPS_DEBUG=true
+: ${JAVADEPS_DEBUG=false}
+
+# xsltproc for eclipse feature.xml
+: ${xsltproc=/usr/bin/xsltproc}
+
+# "%define java_min_classdataversion 51.0" in spec to minimum version to be 51.0
+: ${MIN_CLASSDATAVERSION=}
+
+# save $- state, to enable in functions
+debug=$-
+
+javaclassversionfilter() {
+ if [ "$MIN_CLASSDATAVERSION" ]; then
+ set -- $* "$MIN_CLASSDATAVERSION"
+ fi
+
+ local v
+ for v in $*; do
+ echo "java(ClassDataVersion) >= $v"
+ done | sort -V | tail -n 1
+}
+
+javaclassversion() {
+ set -$debug
+ local mode=$1; shift
+ [ $# -gt 0 ] || return 1
+ $JAVADEPS_DEBUG && echo >&2 ">> javaclassversion($mode): $*"
+
+ # process only requires
+ [ "$mode" = requires ] || return $ret
+
+ local classver=$(echo "$@" | xargs -r file | grep -o 'compiled Java class data, version [0-9.]*' | awk '{print $NF}' | sort -u)
+ if [ -z "$classver" ]; then
+ return 1
+ fi
+
+ javaclassversionfilter $classver
+ return 0
+}
+
+javajarversion() {
+ set -$debug
+ local mode=$1; shift
+ local jar=$1
+ local tmp ret=0
+ $JAVADEPS_DEBUG && echo >&2 ">> javajarversion($mode): $jar"
+
+ # check only files, symlinks could point outside buildroot
+ [ -f "$jar" -a ! -L "$jar" ] || return $ret
+
+ tmp=$(mktemp -d)
+ unzip -q -d $tmp $jar >&2
+ # workaround for .jar files with stupid permissions
+ chmod -R u+rwX $tmp
+
+ # find .jar and .class files
+ find_javadeps $mode $(find $tmp -type f -regextype posix-extended -regex '^.+\.(class|jar)$') || ret=1
+ rm -rf $tmp
+ return $ret
+}
+
+eclipse_feature() {
+ set -$debug
+ local mode=$1; shift
+ local file=$1
+ local ret=0
+
+ $JAVADEPS_DEBUG && echo >&2 ">> eclipse_feature($mode): $file"
+
+ if [ ! -x $xsltproc ]; then
+ return 0
+ fi
+
+ $xsltproc --stringparam mode $mode ${RPM_LIBDIR}/eclipse-feature.xslt $file
+}
+
+find_javadeps() {
+ set -$debug
+ local mode=$1; shift
+ local ret=0
+
+ $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): $*"
+ for file in $@; do
+ case $file in
+ *.jar)
+ javajarversion $mode "$file" || ret=1
+ ;;
+ *.class)
+ javaclassversion $mode "$file" || {
+ echo >&2 "ERROR: Class version could not be extracted from $file"
+ ret=1
+ }
+ ;;
+ */feature.xml)
+ eclipse_feature $mode "$file" || ret=1
+ ;;
+ *)
+ $JAVADEPS_DEBUG && echo >&2 ">> find_javadeps($mode): no handle: $file"
+ ;;
+ esac
+ done
+ return $ret
+}
+
+ret=0
+# default mode to requires for backward compat
+mode=requires
+case $1 in
+-P|--provides)
+ mode=provides
+ shift
+ ;;
+-R|--requires)
+ mode=requires
+ shift
+ ;;
+esac
+
+t=$(mktemp)
+find_javadeps $mode $(cat -) > $t || ret=1
+sort -u $t
+rm -f $t
+
+exit $ret
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rpm-build-macros.git/commitdiff/34019f6aadce21f9aeb1986e2b65559912dd4eef
More information about the pld-cvs-commit
mailing list