]> TLD Linux GIT Repositories - packages/rpm-tld-macros.git/blob - macros.java
- merged 2.029 from PLD
[packages/rpm-tld-macros.git] / macros.java
1 # vim:ts=4 sw=4 noet ft=spec
2 #
3 # Java macros. based on jpackage macros.java
4 #
5 # Import packaging conventions from jpackage.org (prefixed with _
6 # to avoid name collisions).
7 #
8 %_javadir               %{_datadir}/java
9 %_javadocdir            %{_datadir}/javadoc
10
11 # Root directory where all Java VMs/SDK/JREs are installed.
12 %_jvmdir                %{_libdir}/jvm
13
14 # Root directory where all Java VMs/SDK/JREs expose their jars
15 %_jvmjardir             %{_libdir}/jvm-exports
16
17 # Root directory for all Java VM/SDK/JRE's private things.
18 %_jvmprivdir            %{_libdir}/jvm-private
19
20 # Root directory for all architecture dependent parts of Java VM/SDK/JRE's
21 %_jvmlibdir             %{_libdir}/jvm
22
23 # Root directory for all architecture independent parts of Java VM/SDK/JRE's
24 %_jvmdatadir            %{_datadir}/jvm
25
26 # Root directory for all configurations parts of Java VM/SDK/JRE's
27 %_jvmsysconfdir         %{_sysconfdir}/jvm
28
29 # Root directory for all common architecture dependent parts of Java VM/SDK/JRE's
30 %_jvmcommonlibdir       %{_libdir}/jvm-common
31
32 # Root directory for all common architecture independent parts of Java VM/SDK/JRE's
33 %_jvmcommondatadir      %{_datadir}/jvm-common
34
35 # Root directory for all common configurations parts of Java VM/SDK/JRE's
36 %_jvmcommonsysconfdir   %{_sysconfdir}/jvm-common
37
38 # Directory where arch-specific (JNI) version-independent jars are installed.
39 %_jnidir                %{_libdir}/java
40
41
42 # JDK selection. Set this to name of the JDK implementation to use
43 # insead of the system default
44 #%use_jdk               icedtea6
45
46 # Lower bound for JDK version.
47 # In case of `%use_default_jdk %{expr:%min_jdk_version-1}` use %min_jdk_version
48 %min_jdk_version                8
49
50 # Default JDK provider and version
51 %default_jdk_provider   openjdk
52 %default_jdk_version    11
53
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>
58 #
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}
64
65 # Use default JDK in spec, optionally takes requested minimum version as argument
66 %use_default_jdk()              %{expand:%%global use_jdk %{default_jdk %{?*}}}
67
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})}
72
73 %buildrequires_jdk BuildRequires: %required_jdk
74
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
76
77 %_javasrcdir    %{_usrsrc}/java
78
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
84
85 %add_jvm_extension      JAVA_LIBDIR=%{buildroot}/%{_javadir}    %{_bindir}/jvmjar -l
86
87 %jpackage_script() \
88 install -d $RPM_BUILD_ROOT%{_bindir}\
89 cat > $RPM_BUILD_ROOT%{_bindir}/%5 << 'EOF' \
90 #!/bin/sh\
91 #\
92 # %{name} script\
93 # JPackage Project <http://www.jpackage.org/>\
94 \
95 # Source functions library\
96 . %{_javadir}-utils/java-functions\
97 \
98 # Source system prefs\
99 if [ -f %{_sysconfdir}/java/%{name}.conf ]; then\
100       . %{_sysconfdir}/java/%{name}.conf\
101 fi\
102 \
103 # Source user prefs\
104 if [ -f $HOME/.%{name}rc ]; then\
105       . $HOME/.%{name}rc\
106 fi\
107 \
108 # Configuration\
109 MAIN_CLASS=%1\
110 BASE_FLAGS=%2\
111 BASE_OPTIONS=%3\
112 BASE_JARS="%(echo %4 | tr ':' ' ')"\
113 \
114 # Set parameters\
115 set_jvm\
116 set_classpath $BASE_JARS\
117 set_flags $BASE_FLAGS\
118 set_options $BASE_OPTIONS\
119 \
120 # Let's start\
121 run "$@"\
122 EOF
123
124 # jpackage 1.7
125 # Directory for maven depmaps
126 #
127 %_mavendepmapdir /etc/maven
128 %_mavendepmapfragdir /etc/maven/fragments
129
130 #
131 # add_to_depmap adds an entry to the depmap. The arguments are:
132 #
133 # %1 the original groupid
134 # %2 the original artifact id
135 # %3 the version
136 # %4 the new groupid
137 # %5 the new artifactid
138 #
139
140 %add_to_maven_depmap() \
141 install -dm 755 $RPM_BUILD_ROOT/%{_mavendepmapfragdir}\
142 cat >>$RPM_BUILD_ROOT/%{_mavendepmapfragdir}/%{name}<< EOF\
143 <dependency>\
144     <maven>\
145         <groupId>%1</groupId>\
146         <artifactId>%2</artifactId>\
147         <version>%3</version>\
148     </maven>\
149     <jpp>\
150         <groupId>%4</groupId>\
151         <artifactId>%5</artifactId>\
152         <version>%3</version>\
153     </jpp>\
154 </dependency>\
155 \
156 EOF\
157 %{nil}
158
159 #==============================================================================
160 #
161 # update_maven_depmap updates the main maven depmap
162 #
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\
167 fi\
168 echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
169
170 # JAVA macros specific for TLD
171
172 # Directory for tomcat context configuration files
173 %_tomcatconfdir /etc/tomcat/Catalina/localhost
174
175 # Tomcat cache path
176 %_tomcatcachedir %{_sharedstatedir}/tomcat/work/Catalina/localhost
177
178 # Clear tomcat cache
179 # Author: PaweÅ‚ Zuzelski <pawelz@pld-linux.org>
180 #
181 # Usage:
182 # %%tomcat_clear_cache appname
183 #
184 # Call this script in %postun scriptlet. It will remove compiled jsps related to
185 # given app.
186 #
187 %tomcat_clear_cache() %{!?1:ERROR}%{?2:ERROR} %{__rm} -rf %{_tomcatcachedir}/%1