]>
Commit | Line | Data |
---|---|---|
2e434209 JR |
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 | ||
67d88123 JP |
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 %min_jdk_version | |
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 | |
9aa247e6 | 66 | %use_default_jdk() %{expand:%%global use_jdk %{default_jdk %{?*}}} |
67d88123 | 67 | |
2e434209 JR |
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 PLD | |
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 |