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 # Lower bound for JDK version.
47 # In case of `%use_default_jdk %{expr:%min_jdk_version-1}` use %min_jdk_version
50 # Default JDK provider and version
51 %default_jdk_provider openjdk
52 %default_jdk_version 11
54 # Name of default JDK, takes requested minimum version as argument or if not
55 # given defaults to %default_jdk_version. Result is is either:
56 # - %{expand:%%default_jdk<requested version>}
57 # - %{expand:%%default_jdk_provider}<requested version>
59 # Examples for overriding:
60 # - specific JDK: --define 'default_jdk8 oracle8'
61 # - JDK provider: --define 'default_jdk_provider oracle'
62 # - JDK version: --define 'default_jdk_version 11'
63 %default_jdk() %{expand:%%define __jdk_v %{?1}%{!?1:%default_jdk_version}}%{expand:%%define __jdk_vf %{expr:%__jdk_v < %min_jdk_version ? %min_jdk_version : %__jdk_v}}%{expand:%%{?default_jdk%{__jdk_vf}}}%{expand:%%{!?default_jdk%{__jdk_vf}:%default_jdk_provider%{__jdk_vf}}}%{expand:%%undefine __jdk_vf}%{expand:%%undefine __jdk_v}
65 # Use default JDK in spec, optionally takes requested minimum version as argument
66 %use_default_jdk() %{expand:%%global use_jdk %{default_jdk %{?*}}}
68 # expands to the value with right jdk for BuildRequires header
69 # 'jdk' if %%use_jdk is not defined, jdk(%%use_jdk) otherwise
70 # The requirement will not replace current 'default' JDK
71 %required_jdk jdk%{?use_jdk:(%{use_jdk})}
73 %buildrequires_jdk BuildRequires: %required_jdk
75 %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
77 %_javasrcdir %{_usrsrc}/java
79 %ant JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
80 %jar %{java_home}/bin/jar
81 %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
82 %javac %{java_home}/bin/javac
83 %javadoc %{java_home}/bin/javadoc
85 %add_jvm_extension JAVA_LIBDIR=%{buildroot}/%{_javadir} %{_bindir}/jvmjar -l
88 install -d $RPM_BUILD_ROOT%{_bindir}\
89 cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
93 # JPackage Project <http://www.jpackage.org/>\
95 # Source functions library\
96 . %{_javadir}-utils/java-functions\
98 # Source system prefs\
99 if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
100 . %{_sysconfdir}/java/%{name}.conf\
104 if [ -f $HOME/.%{name}rc ]; then\
112 BASE_JARS="%(echo %4 | tr ':' ' ')"\
116 set_classpath $BASE_JARS\
117 set_flags $BASE_FLAGS\
118 set_options $BASE_OPTIONS\
125 # Directory for maven depmaps
127 %_mavendepmapdir /etc/maven
128 %_mavendepmapfragdir /etc/maven/fragments
131 # add_to_depmap adds an entry to the depmap. The arguments are:
133 # %1 the original groupid
134 # %2 the original artifact id
137 # %5 the new artifactid
140 %add_to_maven_depmap() \
141 install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
142 cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
145 <groupId>%1</groupId>\
146 <artifactId>%2</artifactId>\
147 <version>%3</version>\
150 <groupId>%4</groupId>\
151 <artifactId>%5</artifactId>\
152 <version>%3</version>\
159 #==============================================================================
161 # update_maven_depmap updates the main maven depmap
163 %update_maven_depmap() \
164 echo -e "<dependencies>\\n" > %{_mavendepmapdir}/maven2-depmap.xml\
165 if [ -d %{_mavendepmapfragdir} ] && [ -n "`find %{_mavendepmapfragdir} -type f`" ]; then\
166 cat %{_mavendepmapfragdir}/* >> %{_mavendepmapdir}/maven2-depmap.xml\
168 echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
170 # JAVA macros specific for PLD
172 # Directory for tomcat context configuration files
173 %_tomcatconfdir /etc/tomcat/Catalina/localhost
176 %_tomcatcachedir %{_sharedstatedir}/tomcat/work/Catalina/localhost
179 # Author: Paweł Zuzelski <pawelz@pld-linux.org>
182 # %%tomcat_clear_cache appname
184 # Call this script in %postun scriptlet. It will remove compiled jsps related to
187 %tomcat_clear_cache() %{!?1:ERROR}%{?2:ERROR} %{__rm} -rf %{_tomcatcachedir}/%1