/[packages]/cauldron/maven/current/SPECS/maven.spec
ViewVC logotype

Contents of /cauldron/maven/current/SPECS/maven.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134732 - (show annotations) (download)
Sun Aug 21 11:29:54 2011 UTC (12 years, 8 months ago) by dmorgan
File size: 12646 byte(s)
SILENT: Fix groups
1 %define docs 0
2
3 %global debug_package %{nil}
4
5 Name: maven
6 Version: 3.0.3
7 Release: %mkrel 6
8 Summary: Java project management and project comprehension tool
9
10 Group: Development/Java
11 License: ASL 2.0 and MIT and BSD
12 URL: http://maven.apache.org/
13 # Source URL is for testing only, final version will be in different place:
14 # http://www.apache.org/dyn/closer.cgi/maven/source/apache-%{name}-%{version}-src.tar.gz
15 Source0: http://www.apache.org/dyn/closer.cgi/maven/source/apache-%{name}-%{version}-src.tar.gz
16 Source1: maven-bash-completion
17
18 # custom resolver java files
19 # source: git clone git://fedorapeople.org/~sochotni/maven-javadir-resolver/
20 Source100: JavadirWorkspaceReader.java
21 Source101: MavenJPackageDepmap.java
22
23 # empty files for resolving to nothing
24 Source104: %{name}-empty-dep.pom
25 Source105: %{name}-empty-dep.jar
26
27 # 2xx for created non-buildable sources
28 Source200: %{name}-script
29 Source201: %{name}-script-local
30 Source202: %{name}-script-rpmbuild
31
32 # Other included files
33 Source250: repo-metadata.tar.xz
34
35 # Patch1XX could be upstreamed probably
36 # Patch15X are already upstream
37 Patch150: 0001-Add-plugin-api-deps.patch
38
39 # Patch2XX for non-upstreamable patches
40 Patch200: 0002-Use-custom-resolver.patch
41
42 BuildRequires: maven
43 BuildRequires: maven-parent
44 BuildRequires: maven-assembly-plugin
45 BuildRequires: maven-compiler-plugin
46 BuildRequires: maven-install-plugin
47 BuildRequires: maven-jar-plugin
48 BuildRequires: maven-javadoc-plugin
49 BuildRequires: maven-resources-plugin
50 BuildRequires: maven-site-plugin
51 BuildRequires: maven-surefire-plugin
52 BuildRequires: maven-surefire-provider-junit4
53 BuildRequires: buildnumber-maven-plugin
54 BuildRequires: plexus-containers-component-metadata >= 1.5.5
55 BuildRequires: plexus-containers-container-default
56 BuildRequires: animal-sniffer >= 1.6-5
57 BuildRequires: mojo-parent
58 BuildRequires: atinject
59 BuildRequires: aether >= 1.11
60 BuildRequires: async-http-client
61 BuildRequires: sonatype-oss-parent
62 BuildRequires: sisu >= 2.1.1-2
63 BuildRequires: google-guice >= 3.0
64 BuildRequires: hamcrest
65 BuildRequires: apache-commons-parent
66 BuildRequires: maven2-common-poms
67 BuildRequires: apache-commons-cli
68 BuildRequires: plexus-classworlds >= 2.4
69 BuildRequires: apache-commons-cli
70 BuildRequires: guava
71 BuildRequires: hamcrest
72 BuildRequires: nekohtml
73 BuildRequires: plexus-cipher
74 BuildRequires: plexus-containers-component-annotations
75 BuildRequires: plexus-containers-container-default
76 BuildRequires: plexus-interpolation
77 BuildRequires: plexus-sec-dispatcher
78 BuildRequires: plexus-utils
79 BuildRequires: xbean
80 BuildRequires: xerces-j2
81 BuildRequires: maven-wagon
82 BuildRequires: aether >= 1.11
83 BuildRequires: async-http-client
84 BuildRequires: sonatype-oss-parent
85 BuildRequires: sisu >= 2.1.1-2
86 BuildRequires: google-guice >= 3.0
87 BuildRequires: atinject
88 BuildRequires: animal-sniffer >= 1.6-5
89 BuildRequires: mojo-parent
90 BuildRequires: hamcrest
91 BuildRequires: apache-commons-parent
92 BuildRequires: forge-parent
93 BuildRequires: spice-parent
94 BuildRequires: backport-util-concurrent
95 BuildRequires: maven-shared-common-artifact-filters
96 BuildRequires: mojo-signatures
97 BuildRequires: plexus-digest
98 BuildRequires: maven-surefire-provider-junit
99 BuildRequires: qdox
100 BuildRequires: apache-commons-jxpath
101 BuildRequires: maven-scm
102 BuildRequires: easymock
103 BuildRequires: maven-shared-io
104 BuildRequires: maven-shared-repository-builder
105 BuildRequires: maven-shared-file-management
106
107 Requires: java >= 0:1.6.0
108 Requires: maven-parent
109 Requires: plexus-classworlds >= 2.4
110 Requires: apache-commons-cli
111 Requires: guava
112 Requires: hamcrest
113 Requires: nekohtml
114 Requires: plexus-cipher
115 Requires: plexus-containers-component-annotations
116 Requires: plexus-containers-container-default
117 Requires: plexus-interpolation
118 Requires: plexus-sec-dispatcher
119 Requires: plexus-utils
120 Requires: xbean
121 Requires: xerces-j2
122 Requires: maven-wagon
123 Requires: aether >= 1.11
124 Requires: async-http-client
125 Requires: sonatype-oss-parent
126 Requires: sisu >= 2.1.1-2
127 Requires: google-guice >= 3.0
128 Requires: atinject
129 Requires: animal-sniffer >= 1.6-5
130 Requires: mojo-parent
131 Requires: hamcrest
132 Requires: apache-commons-parent
133
134 %description
135 Maven is a software project management and comprehension tool. Based on the
136 concept of a project object model (POM), Maven can manage a project's build,
137 reporting and documentation from a central piece of information.
138
139 %if %docs
140 %package javadoc
141 Summary: API documentation for %{name}
142 Group: Development/Java
143 Requires: jpackage-utils
144
145 %description javadoc
146 %{summary}.
147 %endif
148
149 %prep
150 %setup -q -n apache-%{name}-%{version}%{?ver_add}
151 %patch150 -p1
152 %patch200 -p1
153
154 # get custom resolver in place
155 mkdir -p maven-aether-provider/src/main/java/org/apache/maven/artifact/resolver \
156 maven-aether-provider/src/main/java/org/apache/maven/artifact/repository
157
158 cp %{SOURCE100} maven-aether-provider/src/main/java/org/apache/maven/artifact/resolver
159 cp %{SOURCE101} maven-aether-provider/src/main/java/org/apache/maven/artifact/repository
160
161 # by adding our things this has become compile dep
162 sed -i 's:<scope>runtime</scope>::' maven-core/pom.xml
163
164 # not really used during build, but a precaution
165 rm maven-ant-tasks-*.jar
166
167 # fix line endings
168 sed -i 's:\r::' *.txt
169
170 # fix for animal-sniffer (we don't generate 1.5 signatures)
171 sed -i 's:check-java-1.5-compat:check-java-1.6-compat:' pom.xml
172
173 pushd apache-maven
174 rm src/bin/*bat
175 sed -i 's:\r::' src/conf/settings.xml
176
177 # Update shell scripts to use unversioned classworlds
178 sed -i -e s:'-classpath "${M2_HOME}"/boot/plexus-classworlds-\*.jar':'-classpath "${M2_HOME}"/boot/plexus-classworlds.jar':g \
179 src/bin/mvn*
180 popd
181
182 %build
183 mvn-rpmbuild -e install
184 #javadoc:aggregate
185
186 mkdir m2home
187 (cd m2home
188 tar xvf ../apache-maven/target/*tar.gz
189 chmod -x apache-%{name}-%{version}%{?ver_add}/conf/settings.xml
190 )
191
192
193 %install
194 export M2_HOME=$(pwd)/m2home/apache-maven-%{version}%{?ver_add}
195
196 # maven2 directory in /usr/share/java
197 install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
198
199 # put global m2 config into /etc and symlink it later
200 install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}
201 mv apache-maven/src/bin/m2.conf $RPM_BUILD_ROOT%{_sysconfdir}/
202 ###########
203 # M2_HOME #
204 ###########
205 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
206
207 #################
208 # Repo metadata #
209 #################
210 install -m 755 %{SOURCE250} $RPM_BUILD_ROOT%{_datadir}/%{name}/
211
212
213 ###############
214 # M2_HOME/bin #
215 ###############
216 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
217 cp -a $M2_HOME/bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
218
219 ln -sf %{_sysconfdir}/m2.conf $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/m2.conf
220
221
222 ################
223 # M2_HOME/boot #
224 ################
225 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/boot
226
227 # this dangling symlink will be filled in by Requires
228 (cd $RPM_BUILD_ROOT%{_datadir}/%{name}/boot
229 ln -sf `build-classpath plexus/classworlds` plexus-classworlds.jar
230 )
231
232
233 ################
234 # M2_HOME/conf #
235 ################
236 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
237 cp -a $M2_HOME/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf/
238
239 ###############
240 # M2_HOME/lib #
241 ###############
242 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
243
244 # jdom is needed for our custom resolving code only
245 (cd $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
246
247 build-jar-repository -s -p . aether/api aether/connector-wagon aether/impl aether/spi aether/util \
248 commons-cli guava google-guice hamcrest/core nekohtml plexus/plexus-cipher \
249 plexus/containers-component-annotations plexus/containers-container-default \
250 plexus/interpolation plexus/plexus-sec-dispatcher plexus/utils \
251 sisu/sisu-inject-bean sisu/sisu-inject-plexus maven-wagon/file \
252 maven-wagon/http-lightweight maven-wagon/http-shared maven-wagon/provider-api \
253 xbean/xbean-reflect xerces-j2 jdom xml-commons-apis atinject
254 if [ ! -d ext ]; then
255 mkdir ext/
256 fi
257 )
258
259 ################
260 # M2_HOME/poms #
261 #*##############
262 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
263
264 ########################
265 # /etc/maven/fragments #
266 ########################
267 install -dm 755 $RPM_BUILD_ROOT/%{_sysconfdir}/maven/fragments
268
269 ##############################
270 # /usr/share/java repository #
271 ##############################
272 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository
273 ln -s %{_javadir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository/JPP
274
275 ##############################
276 # /usr/share/java-jni repository #
277 ##############################
278 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-java-jni
279 ln -s %{_javajnidir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-java-jni/JPP
280
281 ##############################
282 # _libdir/java repository #
283 ##############################
284 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-jni
285 ln -s %{_jnidir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-jni/JPP
286
287 ##################
288 # javadir/maven #
289 #*################
290 install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
291
292 #######################
293 # javadir/maven/poms #
294 #*#####################
295 ln -s %{_datadir}/%{name}/poms $RPM_BUILD_ROOT%{_javadir}/%{name}/poms
296
297 # for our custom resolver to remove dependencies we need empty jar and
298 # pom file
299 install -m 644 %{SOURCE104} $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven-empty-dep.pom
300 install -m 644 %{SOURCE105} $RPM_BUILD_ROOT%{_javadir}/%{name}/empty-dep.jar
301
302 ############
303 # /usr/bin #
304 ############
305 install -dm 755 $RPM_BUILD_ROOT%{_bindir}
306
307 # Wrappers
308 cp -af %{SOURCE200} $RPM_BUILD_ROOT%{_bindir}/mvn3
309 cp -af %{SOURCE201} $RPM_BUILD_ROOT%{_bindir}/mvn-local
310 cp -af %{SOURCE202} $RPM_BUILD_ROOT%{_bindir}/mvn-rpmbuild
311
312 ###################
313 # Individual jars #
314 ###################
315
316 for module in maven-aether-provider maven-artifact maven-compat \
317 maven-core maven-embedder maven-model \
318 maven-model-builder maven-plugin-api \
319 maven-repository-metadata maven-settings \
320 maven-settings-builder;do
321
322 pushd $module
323 install -m 644 target/$module-%{version}%{?ver_add}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$module.jar
324 ln -s %{_javadir}/%{name}/$module.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$module.jar
325 install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$module.pom
326 %add_to_maven_depmap org.apache.maven $module %{version} JPP/%{name} $module
327 popd
328 done
329
330 # maven pom
331 install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-maven.pom
332 %add_to_maven_depmap org.apache.maven maven %{version} JPP/%{name} maven
333
334 %if %docs
335 # javadocs
336 install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
337 cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
338 %endif
339
340 # Install bash-completion
341 install -Dm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/bash_completion.d/%{name}
342
343 %files
344 %defattr(-,root,root,-)
345 %doc LICENSE.txt NOTICE.txt README.txt
346 %attr(0755,root,root) %{_bindir}/mvn3
347 %attr(0755,root,root) %{_bindir}/mvn-local
348 %attr(0755,root,root) %{_bindir}/mvn-rpmbuild
349 %dir %{_datadir}/%{name}
350 %dir %{_datadir}/%{name}/bin
351 %attr(0755,root,root) %{_datadir}/%{name}/bin/mvn
352 %attr(0755,root,root) %{_datadir}/%{name}/bin/mvnyjp
353 %attr(0755,root,root) %{_datadir}/%{name}/bin/mvnDebug
354 %{_datadir}/%{name}/bin/*.conf
355 %config(noreplace) %{_sysconfdir}/m2.conf
356 %{_datadir}/%{name}/boot
357 %{_datadir}/%{name}/conf
358 %{_datadir}/%{name}/lib
359 %{_datadir}/%{name}/poms
360 %{_datadir}/%{name}/repository
361 %{_datadir}/%{name}/repository-jni
362 %{_datadir}/%{name}/repository-java-jni
363 %config %{_mavendepmapfragdir}/%{name}
364 %{_javadir}/%{name}
365 %{_datadir}/%{name}/repo-metadata.tar.xz
366 %config(noreplace) %{_sysconfdir}/bash_completion.d/%{name}
367
368 %if %docs
369 %files javadoc
370 %defattr(-,root,root,-)
371 %doc LICENSE.txt
372 %{_javadocdir}/%{name}
373 %endif
374

  ViewVC Help
Powered by ViewVC 1.1.30