1 # vim:ts=4 sw=4 noet ft=spec
3 # Java macros. based on jpackage macros.java
5 # Import packaging conventions from jpackage.org (prefixed with _
6 # to avoid name collisions).
8 %_javadir %{_datadir}/java
9 %_javadocdir %{_datadir}/javadoc
11 # Root directory where all Java VMs/SDK/JREs are installed.
12 %_jvmdir %{_libdir}/jvm
14 # Root directory where all Java VMs/SDK/JREs expose their jars
15 %_jvmjardir %{_libdir}/jvm-exports
17 # Root directory for all Java VM/SDK/JRE's private things.
18 %_jvmprivdir %{_libdir}/jvm-private
20 # Root directory for all architecture dependent parts of Java VM/SDK/JRE's
21 %_jvmlibdir %{_libdir}/jvm
23 # Root directory for all architecture independent parts of Java VM/SDK/JRE's
24 %_jvmdatadir %{_datadir}/jvm
26 # Root directory for all configurations parts of Java VM/SDK/JRE's
27 %_jvmsysconfdir %{_sysconfdir}/jvm
29 # Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
30 %_jvmcommonlibdir %{_libdir}/jvm-common
32 # Root directory for all common architecture independent parts of Java VM/SDK/JRE's
33 %_jvmcommondatadir %{_datadir}/jvm-common
35 # Root directory for all common configurations parts of Java VM/SDK/JRE's
36 %_jvmcommonsysconfdir %{_sysconfdir}/jvm-common
38 # Directory where arch-specific (JNI) version-independent jars are installed.
39 %_jnidir %{_libdir}/java
42 # JDK selection. Set this to name of the JDK implementation to use
43 # insead of the system default
46 # expands to the value with right jdk for BuildRequires header
47 # 'jdk' if %%use_jdk is not defined, jdk(%%use_jdk) otherwise
48 # The requirement will not replace current 'default' JDK
49 %required_jdk jdk%{?use_jdk:(%{use_jdk})}
51 %buildrequires_jdk BuildRequires: %required_jdk
53 %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
55 %_javasrcdir %{_usrsrc}/java
57 %ant JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
58 %jar %{java_home}/bin/jar
59 %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
60 %javac %{java_home}/bin/javac
61 %javadoc %{java_home}/bin/javadoc
63 %add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
66 install -d $RPM_BUILD_ROOT%{_bindir}\
67 cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
71 # JPackage Project <http://www.jpackage.org/>\
73 # Source functions library\
74 . %{_javadir}-utils/java-functions\
76 # Source system prefs\
77 if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
78 . %{_sysconfdir}/java/%{name}.conf\
82 if [ -f $HOME/.%{name}rc ]; then\
90 BASE_JARS="%(echo %4 | tr ':' ' ')"\
94 set_classpath $BASE_JARS\
95 set_flags $BASE_FLAGS\
96 set_options $BASE_OPTIONS\
103 # Directory for maven depmaps
105 %_mavendepmapdir /etc/maven
106 %_mavendepmapfragdir /etc/maven/fragments
109 # add_to_depmap adds an entry to the depmap. The arguments are:
111 # %1 the original groupid
112 # %2 the original artifact id
115 # %5 the new artifactid
118 %add_to_maven_depmap() \
119 install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
120 cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
123 <groupId>%1</groupId>\
124 <artifactId>%2</artifactId>\
125 <version>%3</version>\
128 <groupId>%4</groupId>\
129 <artifactId>%5</artifactId>\
130 <version>%3</version>\
137 #==============================================================================
139 # update_maven_depmap updates the main maven depmap
141 %update_maven_depmap() \
142 echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
143 if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
144 cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
146 echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
148 # JAVA macros specific for TLD
150 # Directory for tomcat context configuration files
151 %_tomcatconfdir /etc/tomcat/Catalina/localhost
154 %_tomcatcachedir %{_sharedstatedir}/tomcat/work/Catalina/localhost
157 # Author: Paweł Zuzelski <pawelz@pld-linux.org>
160 # %%tomcat_clear_cache appname
162 # Call this script in %postun scriptlet. It will remove compiled jsps related to
165 %tomcat_clear_cache() %{!?1:ERROR}%{?2:ERROR} %{__rm} -rf %{_tomcatcachedir}/%1