ALT Linux repos
Group :: Development/Java
RPM: maven2
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
%define _with_bootstrap 1
%define _bootstrap 1
BuildRequires: /proc
BuildRequires: jpackage-1.5-compat
BuildRequires: excalibur-avalon-framework
%define version 2.0.4
%define name maven2
# Copyright (c) 2000-2005, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define with_itests %{!?_with_itests:0}%{?_with_itests:1}
%define without_itests %{?_with_itests:0}%{!?_with_itests:1}
%define with_regeneratedpoms %{!?_with_regeneratedpoms:0}%{?_with_regeneratedpoms:1}
%define without_regeneratedpoms %{?_with_regeneratedpoms:0}%{!?_with_regeneratedpoms:1}
%define with_bootstrap %{!?_with_bootstrap:0}%{?_with_bootstrap:1}
%define without_bootstrap %{?_with_bootstrap:0}%{!?_with_bootstrap:1}
%define maven_version 2.0.4
%define RHEL4 0
%define NONFREE 0
%define base_name maven
%define name maven2
%define repo_dir m2_home_local/repository
%define maven_settings_file %{_builddir}/%{name}/settings.xml
Name: %{name}
Version: %{maven_version}
Release: alt1_10jpp1.7.M40
Epoch: 0
Summary: Java project management and project comprehension tool.
Group: Development/Java
License: Apache Software License
URL: http://maven.apache.org/
# svn export http://svn.apache.org/repos/asf/maven/components/tags/maven-2.0.4 maven2
Source0: %{name}-src.tar.gz
# svn export -r {2006-04-20} http://svn.apache.org/repos/asf/maven/plugins/trunk maven2-plugins
Source2: %{name}-plugins-060420-src.tar.gz
Source3: m2_pom_repo.tar.gz
Source4: m2_jar_repo.tar.gz
Source5: %{name}-script
Source6: maven2-JPackageRepositoryLayout.java
Source7: maven2-settings.xml
Source8: %{name}-maven-site-plugin.tar.gz
Source9: %{name}-run-it-tests.sh
Source10: %{name}-model-v3.tar.gz
Source11: %{name}-MavenJPackageDepmap.java
Source12: %{name}-addjdom-depmap.xml
Source13: %{name}-empty-dep.pom
Source14: %{name}-empty-dep.jar
Source15: %{name}-jpp-script
Source16: %{name}-jpp-readme.html
Patch0: maven2-disable-itests.patch
Patch1: maven2-addjdomtobootstrappath.patch
Patch2: maven2-plugins-plexus151.patch
Patch3: %{name}-jpprepolayout.patch
Patch4: %{name}-it-jppfixes.patch
Patch5: %{name}-buildallplugins.patch
Patch6: %{name}-enable-unbuilt-modules.patch
BuildRequires: jpackage-utils >= 0:1.7.2
BuildRequires: /bin/ls /usr/bin/head /usr/bin/find /usr/bin/awk /bin/grep /bin/sed
BuildRequires: ant >= 1.6.5
BuildRequires: antlr >= 2.7.4
BuildRequires: bsh >= 1.3.0
BuildRequires: cglib >= 2.1.0
BuildRequires: checkstyle >= 4.1
BuildRequires: classworlds >= 1.1
%if %{NONFREE}
BuildRequires: clover
%endif
BuildRequires: dom4j >= 1.6.1
BuildRequires: geronimo-servlet-2.4-api >= 1.0
BuildRequires: gnu-regexp >= 1.1.4
BuildRequires: httpunit >= 1.6
BuildRequires: jakarta-commons-beanutils >= 1.7.0
BuildRequires: jakarta-commons-cli >= 1.0
BuildRequires: jakarta-commons-collections >= 3.1
BuildRequires: jakarta-commons-io >= 1.1
BuildRequires: jakarta-commons-lang >= 2.1
BuildRequires: jakarta-commons-logging >= 1.0.4
BuildRequires: jakarta-commons-validator >= 1.1.4
BuildRequires: jaxen >= 1.1
BuildRequires: jdom >= 1.0
BuildRequires: jmock >= 1.0.1
BuildRequires: jline >= 0.8.1
BuildRequires: jsch >= 0.1.20
BuildRequires: jtidy >= 1.0
BuildRequires: junit >= 3.8.2
BuildRequires: maven2-common-poms >= 1.0-3
BuildRequires: maven-doxia >= 1.0-0.a7.3
BuildRequires: maven-jxr >= 1.0-2
BuildRequires: maven-surefire >= 1.5.3-2
BuildRequires: maven-surefire-booter >= 1.5.3-2
BuildRequires: maven-wagon >= 1.0
#BuildRequires: modello >= 1.0-0.a8
BuildRequires: nekohtml >= 0.9.3
BuildRequires: oro >= 2.0.8
BuildRequires: plexus-ant-factory >= 1.0-0.a1.2
BuildRequires: plexus-bsh-factory >= 1.0-0.a7s.2
BuildRequires: plexus-archiver >= 1.0-0.a6
BuildRequires: plexus-compiler >= 1.5.1
BuildRequires: plexus-container-default >= 1.0
BuildRequires: plexus-i18n >= 1.0
BuildRequires: plexus-interactivity >= 1.0
BuildRequires: plexus-utils >= 1.2
BuildRequires: plexus-velocity >= 1.1.2
BuildRequires: pmd >= 3.6
BuildRequires: qdox >= 1.5
BuildRequires: rhino >= 1.5
BuildRequires: velocity >= 1.4
BuildRequires: xerces-j2 >= 2.7.1
BuildRequires: xalan-j2 >= 2.6.0
%if %{with_itests}
BuildRequires: log4j >= 1.2.13
BuildRequires: xml-commons-apis >= 1.3.02
%endif
%if %{with_regeneratedpoms}
BuildRequires: saxon-scripts >= 6.5.3
%endif
%if %{without_bootstrap}
BuildRequires: %{name} = %{epoch}:%{version}
BuildRequires: maven-scm >= 0:1.0-0.b3.2
BuildRequires: maven-scm-test >= 0:1.0-0.b3.2
BuildRequires: maven-shared-file-management >= 1.0-4
BuildRequires: maven-shared-plugin-testing-harness >= 1.0-4
BuildRequires: modello >= 1.0-0.a8.3
##BuildRequires: modello-maven-plugin >= 1.0-0.a8.3
%endif
Requires: ant >= 1.6.5
Requires: antlr >= 2.7.4
Requires: bsh >= 1.3.0
Requires: cglib >= 2.1.0
Requires: checkstyle >= 4.1
Requires: classworlds >= 1.1
%if %{NONFREE}
Requires: clover
%endif
Requires: dom4j >= 1.6.1
Requires: geronimo-servlet-2.4-api >= 1.0
Requires: gnu-regexp >= 1.1.4
Requires: httpunit >= 1.6
Requires: jakarta-commons-beanutils >= 1.7.0
Requires: jakarta-commons-cli >= 1.0
Requires: jakarta-commons-collections >= 3.1
Requires: jakarta-commons-io >= 1.1
Requires: jakarta-commons-lang >= 2.1
Requires: jakarta-commons-logging >= 1.0.4
Requires: jakarta-commons-validator >= 1.1.4
Requires: jaxen >= 1.1
Requires: jdom >= 1.0
Requires: jmock >= 1.0.1
Requires: jline >= 0.8.1
Requires: jsch >= 0.1.20
Requires: jtidy >= 1.0
Requires: junit >= 3.8.2
Requires: maven2-common-poms >= 1.0-3
Requires: maven-doxia >= 1.0-0.a7.3
Requires: maven-jxr >= 1.0
Requires: maven-surefire >= 1.5.3-2
Requires: maven-surefire-booter >= 1.5.3-2
Requires: maven-wagon >= 1.0
#Requires: modello >= 1.0-0.a8
Requires: nekohtml >= 0.9.3
Requires: oro >= 2.0.8
Requires: plexus-ant-factory >= 1.0-0.a1.2
Requires: plexus-bsh-factory >= 1.0-0.a7s.2
Requires: plexus-archiver >= 1.0-0.a6
Requires: plexus-compiler >= 1.5.1
Requires: plexus-container-default >= 1.0
Requires: plexus-i18n >= 1.0
Requires: plexus-interactivity >= 1.0
Requires: plexus-utils >= 1.2
Requires: plexus-velocity >= 1.1.2
Requires: pmd >= 3.6
Requires: qdox >= 1.5
Requires: rhino >= 1.5
Requires: velocity >= 1.4
Requires: xerces-j2 >= 2.7.1
Requires: xalan-j2 >= 2.6.0
%if %{without_bootstrap}
Requires: %{name} = %{epoch}:%{version}
Requires: maven-scm >= 0:1.0-0.b3.2
Requires: maven-scm-test >= 0:1.0-0.b3.2
Requires: maven-shared-file-management >= 1.0-4
Requires: maven-shared-plugin-testing-harness >= 1.0-4
Requires: modello >= 1.0-0.a8.3
Requires: modello-maven-plugin >= 1.0-0.a8.3
%endif
Requires(post): jpackage-utils >= 0:1.7.2
Requires(postun): jpackage-utils >= 0:1.7.2 /bin/rmdir
BuildArch: noarch
BuildRequires: checkstyle-optional jmock
BuildRequires: saxon-scripts
BuildRequires: maven2-bootstrap-bundle
Patch33: maven2-2.0.4-MANTTASKS-44.diff
%add_findreq_skiplist /usr/share/maven2/bin/mvn
%description
Maven is a software project management and comprehension tool. Based on the
concept of a project object model (POM), Maven can manage a project's build,
reporting and documentation from a central piece of information.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation
%description javadoc
%{summary}.
%package manual
Summary: Documents for %{name}
Group: Development/Documentation
%description manual
%{summary}.
%package plugin-ant
Summary: Ant plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-ant
%{summary}.
%package plugin-antlr
Summary: Antlr plugin for maven
Group: Development/Java
Requires: antlr >= 2.7.4
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-antlr
%{summary}.
%package plugin-antrun
Summary: Antrun plugin for maven
Group: Development/Java
Requires: ant >= 1.6.5
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-antrun
%{summary}.
%package plugin-assembly
Summary: Assembly plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-assembly
%{summary}.
%package plugin-checkstyle
Summary: Checkstyle plugin for maven
Group: Development/Java
Requires: checkstyle >= 4.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
Requires: plexus-velocity >= 1.1.2
%description plugin-checkstyle
%{summary}.
%package plugin-clean
Summary: Clean plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-clean
%{summary}.
%if %{NONFREE}
%package plugin-clover
Summary: Clover plugin for maven
Group: Development/Java
Requires: ant >= 1.6.5
Requires: jmock >= 1.0.1
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-compiler >= 1.5.1
%description plugin-clover
%{summary}.
%endif
%package plugin-compiler
Summary: Compiler plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-compiler >= 1.5.1
Requires: plexus-utils >= 1.2
%description plugin-compiler
%{summary}.
%package plugin-dependency
Summary: Dependency plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-dependency
%{summary}.
%package plugin-deploy
Summary: Deploy plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-deploy
%{summary}.
%package plugin-ear
Summary: Ear plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-ear
%{summary}.
%package plugin-eclipse
Summary: Eclipse plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-eclipse
%{summary}.
%package plugin-ejb
Summary: Ejb plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-ejb
%{summary}.
%package plugin-help
Summary: Help plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-help
%{summary}.
%package plugin-idea
Summary: Idea plugin for maven
Group: Development/Java
Requires: dom4j >= 1.6.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-wagon >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-idea
%{summary}.
%package plugin-install
Summary: Install plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-install
%{summary}.
%package plugin-jar
Summary: Jar plugin for maven
Group: Development/Java
Requires: jakarta-commons-lang >= 2.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-jar
%{summary}.
%package plugin-javadoc
Summary: Javadoc plugin for maven
Group: Development/Java
Requires: jakarta-commons-lang >= 2.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-archiver >= 1.0
%description plugin-javadoc
%{summary}.
%package plugin-jxr
Summary: Jxr plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-jxr
%{summary}.
%package plugin-one
Summary: One plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-one
%{summary}.
%package plugin-plugin
Summary: Plugin plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-plugin
%{summary}.
%package plugin-pmd
Summary: Pmd plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
Requires: pmd >= 3.3
%description plugin-pmd
%{summary}.
%package plugin-project-info-reports
Summary: Project-info-reports plugin for maven
Group: Development/Java
Requires: httpunit >= 1.6
Requires: jakarta-commons-validator >= 1.1.4
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-i18n >= 1.0
%description plugin-project-info-reports
%{summary}.
%package plugin-rar
Summary: Rar plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-rar
%{summary}.
%package plugin-release
Summary: Release plugin for maven
Group: Development/Java
Requires: jmock >= 1.0.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-interactivity >= 1.0
%description plugin-release
%{summary}.
%package plugin-repository
Summary: Repository plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
%description plugin-repository
%{summary}.
%package plugin-resources
Summary: Resources plugin for maven
Group: Development/Java
Requires: jakarta-commons-io >= 1.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-resources
%{summary}.
%package plugin-site
Summary: Site plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-doxia >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-site
%{summary}.
%package plugin-source
Summary: Source plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-container-default >= 1.0
%description plugin-source
%{summary}.
%package plugin-surefire
Summary: Surefire plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-surefire >= 1.5.2
Requires: maven-surefire-booter >= 1.5.2
Requires: plexus-utils >= 1.2
%description plugin-surefire
%{summary}.
%package plugin-surefire-report
Summary: Surefire report plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-surefire >= 1.5.2
Requires: maven-surefire-booter >= 1.5.2
Requires: plexus-utils >= 1.2
%description plugin-surefire-report
%{summary}.
%package plugin-verifier
Summary: Verifier plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-utils >= 1.2
%description plugin-verifier
%{summary}.
%package plugin-war
Summary: War plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-war
%{summary}.
%prep
%setup -q -c -n %{name}
# Extract the plugins
tar xzf %{SOURCE2}
# Use an older version of site plugin because newer one requires newer doxia
# (1.0a8) which is not compatible with the older one (1.0a7) which is needed
# by other parts of maven
rm -rf maven2-plugins/maven-site-plugin
tar xzf %{SOURCE8}
# Remove dependencies on org.codehaus.doxia.* (it is now
# org.apache.maven.doxia, and in the interest of maintaining just one
# doxia jar, we substitute things accordingly)
for i in maven2-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java \
maven2-plugins/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java \
maven2-plugins/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java \
maven2-plugins/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java \
maven2-plugins/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java; do
sed -i -e s:org.codehaus.doxia.sink.Sink:org.apache.maven.doxia.sink.Sink:g $i
sed -i -e s:org.codehaus.doxia.site.renderer.SiteRenderer:org.apache.maven.doxia.siterenderer.Renderer:g $i
sed -i -r -e s:\(\\s+\)SiteRenderer\(\\s+\):\\1Renderer\\2:g $i
done
# Remove existing binaries from source trees
#find . -name "*.jar" -exec rm -f '{}' \;
%patch0 -b .sav
%patch1 -b .sav
%patch2 -b .sav
%patch3 -b .sav
%patch4 -b .sav
%patch5 -b .sav
%patch6 -b .sav
# FIXME: Maven eclipse plugin tests are disabled for now, until a way
# is found to stop it from connecting to the web despite offline mode.
rm -rf maven2-plugins/maven-eclipse-plugin/src/test/*
# FIXME: Disabled goal (because we don't want a jetty dependency)
rm -f maven2-plugins/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteRunMojo.java
# extract poms and jars (if any)
tar xzf %{SOURCE3}
# extract jars iff in bootstrap mode
%if %{with_bootstrap}
tar xzf %{SOURCE4}
%endif
# Extract model-v3
tar xzf %{SOURCE10}
mkdir external_repo
ln -s %{_javadir} external_repo/JPP
cp %{SOURCE6} maven2/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/JPackageRepositoryLayout.java
cp %{SOURCE11} maven2/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/MavenJPackageDepmap.java
# FIXME: bootstrap-mini has no dependencies, so we copy the file there
# (for now). Since bootstrap classes are not in the final package, there
# will be no duplicates.
mkdir -p maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/artifact/repository/layout/
cp %{SOURCE11} maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/artifact/repository/layout/MavenJPackageDepmap.java
cp %{SOURCE7} %{maven_settings_file}
sed -i -e "s|<url>__INTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" %{maven_settings_file}
%if %{with_bootstrap}
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" %{maven_settings_file}
%else
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://%{_datadir}/%{name}/repository</url>|g" %{maven_settings_file}
%endif
sed -i -e "s|__INTERNAL_REPO_PLACEHOLDER__|file://`pwd`/m2_repo/repository|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%if %{with_bootstrap}
sed -i -e "s|__EXTERNAL_REPO_PLACEHOLDER__|file://`pwd`/external_repo|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%else
sed -i -e "s|__EXTERNAL_REPO_PLACEHOLDER__|file://%{_datadir}/%{name}/repository|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%endif
# Copy the empty dependency jar/pom in place
mkdir -p m2_repo/repository/JPP/maven2/default_poms
cp %{SOURCE13} m2_repo/repository/JPP/maven2/default_poms/JPP.maven2-empty-dep.pom
cp %{SOURCE14} m2_repo/repository/JPP/maven2/empty-dep.jar
%patch33 -p1
%__subst "s,import org.jmock.cglib.Mock,import org.jmock.Mock," maven2-plugins/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
cp -a /usr/share/maven2/default_poms/*.pom m2_repo/repository/JPP/maven2/default_poms/
cp -a /usr/share/maven2/poms/*.pom m2_repo/repository/JPP/maven2/default_poms/
%build
# Wire in jdom dependency
cp maven2/maven-artifact/pom.xml maven2/maven-artifact/pom.xml.withoutjdom
saxon -o maven2/maven-artifact/pom.xml maven2/maven-artifact/pom.xml.withoutjdom /usr/share/java-utils/xml/maven2jpp-mapdeps.xsl map=%{SOURCE12}
cp maven2/bootstrap/bootstrap-installer/pom.xml maven2/bootstrap/bootstrap-installer/pom.xml.withoutjdom
saxon -o maven2/bootstrap/bootstrap-installer/pom.xml maven2/bootstrap/bootstrap-installer/pom.xml.withoutjdom /usr/share/java-utils/xml/maven2jpp-mapdeps.xsl map=%{SOURCE12}
# Build maven2
export MAVEN_REPO_LOCAL=`pwd`/%{repo_dir}
export M2_SETTINGS_FILE=%{maven_settings_file}
# In bootstrap mode, we want it looking at default poms only (controlled via
# maven2-common-poms). This enables us to change naming structures without
# breaking build.
export MAVEN_OPTS="-Dmaven.repo.local=$MAVEN_REPO_LOCAL -Dmaven2.ignore.versions -Dmaven2.offline.mode -Dmaven.test.failure.ignore=true"
export M2_HOME=`pwd`/maven2/home/%{base_name}-%{version}
# pushd maven2/ ...
pushd %{name} >& /dev/null
[ -z "$JAVA_HOME" ] && JAVA_HOME=%{_jvmdir}/java
export JAVA_HOME
mkdir bootstrap/lib
ln -s $(build-classpath jdom) bootstrap/lib/jdom.jar
export CLASSPATH=`pwd`/bootstrap/lib/jdom.jar
export JDOMCLASS=$CLASSPATH
./bootstrap.sh --prefix=`pwd`/home --settings=%{maven_settings_file}
unset CLASSPATH
popd >& /dev/null
# Update the classworlds jar name in the mvn script
sed -i -e s:"/core/boot/classworlds-\*.jar":/core/boot/classworlds\*.jar:g $M2_HOME/bin/mvn
# Build plugins
pushd maven2-plugins >& /dev/null
# Build the plugin-plugin first, as it is needed to build itself later on
# NOTE: Build of this plugin for the first time is expected to cause errors.
# That is why we build it first with -fn . Subsequent builds should not have
# errors, and if they do, they will be caught when all plugins are built
# again below. See: http://mail-archives.apache.org/mod_mbox/maven-users/200511.mbox/[%%]3c4374C819.7090609 at commonjava.org/[%%]3e
(cd maven-plugin-plugin
$M2_HOME/bin/mvn -e --batch-mode -s %{maven_settings_file} $MAVEN_OPTS -npu --no-plugin-registry -fn clean install
)
%if ! %{NONFREE}
# Disable clover plugin. We don't have a clover package yet.
sed -i -e s:"<module>maven-clover-plugin</module>"::g pom.xml
%endif
# Now build everything
$M2_HOME/bin/mvn -e --batch-mode -s %{maven_settings_file} $MAVEN_OPTS -npu --no-plugin-registry --fail-at-end clean install
popd >& /dev/null
# Build complete. Run it tests.
%if %{with_itests}
(cd maven2
# One of the tests (#63) needs tools.jar. Fix the path for it
sed -i -e s:"<systemPath>\${java.home}/../lib/tools.jar</systemPath>":"<systemPath>$JAVA_HOME/lib/tools.jar</systemPath>":g maven-core-it/it0063/pom.xml
(cd integration-tests/maven-core-it-plugin
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-plugin-plugin:2.1.1-SNAPSHOT:descriptor org.apache.maven.plugins:maven-resources-plugin:2.2-SNAPSHOT:resources org.apache.maven.plugins:maven-compiler-plugin:2.1-SNAPSHOT:compile org.apache.maven.plugins:maven-jar-plugin:2.1-SNAPSHOT:jar org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install-file -DgroupId=org.apache.maven.plugins -DartifactId=maven-core-it-plugin -Dversion=2.0.4-JPP -Dpackaging=maven-plugin -Dfile=target/maven-core-it-plugin-1.0-SNAPSHOT.jar
)
for i in `find integration-tests/maven-core-it-support -name pom.xml`; do
pushd `dirname $i`
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-plugin-plugin:2.1.1-SNAPSHOT::descriptor org.apache.maven.plugins:maven-resources-plugin:2.2-SNAPSHOT:resources org.apache.maven.plugins:maven-compiler-plugin:2.1-SNAPSHOT:compile org.apache.maven.plugins:maven-jar-plugin:2.1-SNAPSHOT:jar org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install
popd
done
# Test 41 expects core-it-support 1.2 to be packed as a coreit-artifact
(cd integration-tests/maven-core-it-support/1.2
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install-file -DgroupId=org.apache.maven -DartifactId=maven-core-it-support -Dversion=1.2 -Dpackaging=coreit-artifact -Dfile=target/maven-core-it-support-1.2.jar
)
OLD_MAVEN_OPTS=$MAVEN_OPTS
MAVEN_OPTS="$MAVEN_OPTS -Dmaven.settings.file=$M2_SETTINGS_FILE -Dmaven2.ignore.versions -Dmaven2.jpp.mode -Dmaven2.jpp.mode=true"
sh -x %{SOURCE9}
export MAVEN_OPTS=$OLD_MAVEN_OPTS
)
%endif
# Build docs
(cd maven2
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-javadoc-plugin:2.0-SNAPSHOT:javadoc
)
(cd maven2-plugins
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-javadoc-plugin:2.0-SNAPSHOT:javadoc
)
%install
# Repository
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository
# /usr/bin/mvn
install -dm 755 $RPM_BUILD_ROOT%{_bindir}
install -pm 755 %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}/mvn
install -pm 755 %{SOURCE15} $RPM_BUILD_ROOT%{_bindir}/mvn-jpp
# maven.home
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
cp -p %{name}/home/%{base_name}-%{version}/bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
for library in maven-artifact \
maven-artifact-manager\
maven-core \
maven-error-diagnostics \
maven-model \
maven-monitor \
maven-plugin-api \
maven-plugin-descriptor \
maven-plugin-parameter-documenter \
maven-plugin-registry \
maven-profile \
maven-project \
maven-reporting-api \
maven-repository-metadata \
maven-settings; do
install -pm 644 %{name}/home/%{base_name}-%{version}/lib/$library-%{version}.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
done
# Also, link maven jars from /usr/share/java
install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
for library in $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/*-%{version}.jar; do
ln -s %{_datadir}/%{name}/lib/`basename $library` $RPM_BUILD_ROOT%{_javadir}/%{name}/`basename $library | sed -e s:^maven-::g`
done
# Some things are not in lib/ by default, and we don't want them there
# either, otherwise the maven classloader loads them and weird things
# happen... but there is no harm in putting in javadir/maven2
for project in maven-archiver maven-artifact-test maven-model-converter; do
installname=`echo $project | sed -e s:^maven-::g`
install -pm 644 %{name}/$project/target/$project-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$installname-%{version}.jar
done
install -pm 644 %{name}/maven-embedder/target/maven-embedder-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/embedder-%{version}.jar
install -pm 644 %{name}/maven-reporting/maven-reporting-impl/target/maven-reporting-impl-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/reporting-impl-%{version}.jar
install -pm 644 %{name}/maven-script/maven-script-ant/target/maven-script-ant-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-ant-%{version}.jar
install -pm 644 %{name}/maven-script/maven-script-beanshell/target/maven-script-beanshell-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-beanshell-%{version}.jar
for i in `find %{name}/maven-plugin-tools -maxdepth 1 -mindepth 1 -type d`; do
install -pm 644 $i/target/`basename $i`-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/`basename $i | sed -e s:^maven-::g`-%{version}.jar
done
# These items have a version other than 2.0.4..
install -pm 644 %{name}/maven-artifact-ant/target/maven-artifact-ant-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/artifact-ant-2.0.4-SNAPSHOT.jar
install -pm 644 %{name}/maven-meeper/target/maven-meeper-0.1-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/meeper-0.1-SNAPSHOT.jar
ln -s artifact-ant-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/artifact-ant.jar
ln -s meeper-0.1-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/meeper.jar
# model-v3
install -pm 644 %{repo_dir}/org/apache/maven/maven-model-v3/2.0/maven-model-v3-2.0.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/model-v3-2.0.jar
ln -s model-v3-2.0.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/model-v3.jar
%add_to_maven_depmap org.apache.maven maven-model-v3 2.0 JPP/%{name} model-v3
# Create versionless symlinks
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar | sed "s|-%{version}||g"`; done)
# For backwards compatibility with older maven2 rpm
ln -s core.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/mavencore.jar
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/core
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/core/boot
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
install -pm 644 %{name}/home/%{base_name}-%{version}/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/
# plugins
pushd %{repo_dir}/org/apache/maven/plugins
for plugin in `find -maxdepth 1 -type d -not -name "maven-core-it-plugin" -not -name "maven-it00*-plugin" -not -name "." -not -name ".." | sed -e s:^\./::g`; do
# Find the latest created version
latest_ver=`ls -tdF $plugin/* | grep /$ | head -n 1`
# Proceed only if this plugin has a jar
if [ -n "`find $latest_ver -type f -name '*.jar'`" ]; then
cp $latest_ver/*jar $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/`echo $plugin | sed -e s:^maven-::g`.jar
fi
done
popd
# Install poms
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
pushd %{repo_dir}/org/apache/maven
for project in maven-archiver \
maven-artifact \
maven-artifact-manager \
maven-artifact-test \
maven-core \
maven-embedder \
maven-error-diagnostics \
maven-model \
maven-model-converter \
maven-monitor \
maven-plugin-api \
maven-plugin-descriptor \
maven-plugin-parameter-documenter \
maven-plugin-registry \
maven-plugin-tools \
maven-plugin-tools-ant \
maven-plugin-tools-api \
maven-plugin-tools-beanshell \
maven-plugin-tools-java \
maven-plugin-tools-model \
maven-plugin-tools-pluggy \
maven-profile \
maven-project \
maven-repository-metadata \
maven-script \
maven-script-ant \
maven-script-beanshell \
maven-settings \
maven; do
artifactname=`echo $project | sed -e s:^maven-::g`
cp $project/%{version}/$project-%{version}.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$artifactname.pom
# dependency fragments
%add_to_maven_depmap org.apache.maven $project %{version} JPP/%{name} $artifactname
done
popd
pushd %{repo_dir}/org/apache/maven/reporting
for project in maven-reporting \
maven-reporting-api \
maven-reporting-impl; do
artifactname=`echo $project | sed -e s:^maven-::g`
cp $project/%{version}/$project-%{version}.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$artifactname.pom
%add_to_maven_depmap org.apache.maven.reporting $project %{version} JPP/%{name} $artifactname
done
popd
pushd %{repo_dir}/org/apache/maven/plugins
for plugin in `find -maxdepth 1 -type d -not -name "maven-core-it-plugin" -not -name "maven-it00*-plugin" -not -name "." -not -name ".." | sed -e s:^\./::g`; do
# Find the latest created version
latest_ver=`ls -tdF $plugin/* | grep /$ | head -n 1`
artifactname=`echo $plugin | sed -e s:^maven-::g`
latest_ver_num=`basename $latest_ver`
cp $latest_ver/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}.plugins-$artifactname.pom
%add_to_maven_depmap org.apache.maven.plugins $plugin $latest_ver_num JPP/%{name}/plugins $artifactname
done
popd
# artifact-ant and meeper have versions other than 2.0.4
cp %{repo_dir}/org/apache/maven/maven-artifact-ant/2.0.4-SNAPSHOT/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-artifact-ant.pom
%add_to_maven_depmap org.apache.maven maven-artifact-ant 2.0.4-SNAPSHOT JPP/%{name} artifact-ant
cp %{repo_dir}/org/apache/maven/maven-meeper/0.1-SNAPSHOT/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-meeper.pom
%add_to_maven_depmap org.apache.maven maven-meeper 0.1-SNAPSHOT JPP/%{name} meeper
# g=org.apache.maven.plugins a=maven-plugins needs to be copied manually, as
# it get's changed to a=plugins (a=plugins and a=maven-plugins is the same
# file, but the former is needed for compatiblity while newer projects use
# the latter)
cp maven2-plugins/pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2.plugins-maven-plugins.pom
%add_to_maven_depmap org.apache.maven.plugins maven-plugins 2-SNAPSHOT JPP/%{name}/plugins maven-plugins
# The empty dependencies
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
mkdir -p $RPM_BUILD_ROOT%{_javadir}/%{name}
cp %{SOURCE13} $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-empty-dep.pom
cp %{SOURCE14} $RPM_BUILD_ROOT%{_javadir}/%{name}/empty-dep.jar
# For backwards compatibility
ln -s JPP.maven2-core.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-mavencore.pom
# javadoc
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
(cd maven2
for doc_dir in `find . -type d -name apidocs`; do
targetdir=$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/`dirname \`dirname $doc_dir\``
install -dm 755 $targetdir
cp -pr $doc_dir/* $targetdir
done
)
(cd maven2-plugins
for doc_dir in `find . -type d -name apidocs`; do
targetdir=$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/plugins/`dirname \`dirname $doc_dir\``
install -dm 755 $targetdir
cp -pr $doc_dir/* $targetdir
done
)
# jdom is needed by the new mapping system
ln -s %{_javadir}/jdom.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
# manual and jpp readme
install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p %{name}/home/%{base_name}-%{version}/*.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp %{SOURCE16} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
# create appropriate links in /usr/share/java
ln -sf %{_datadir}/%{name}/poms $RPM_BUILD_ROOT%{_javadir}/%{name}
ln -sf %{_datadir}/%{name}/plugins $RPM_BUILD_ROOT%{_javadir}/%{name}
# Create repository links
ln -s %{_javadir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository/JPP
%post
build-jar-repository -s -p %{_datadir}/%{name}/core plexus/container-default plexus/utils
build-jar-repository -s -p %{_datadir}/%{name}/core/boot classworlds
build-jar-repository -s -p %{_datadir}/%{name}/lib \
commons-cli \
commons-lang \
commons-logging \
jsch \
maven-doxia/sink-api \
maven-wagon/file \
maven-wagon/http-lightweight \
maven-wagon/provider-api \
maven-wagon/ssh \
maven-wagon/ssh-external \
plexus/interactivity-api
%update_maven_depmap
%post javadoc
rm -f %{_javadocdir}/%{name}
ln -s %{name}-%{version} %{_javadocdir}/%{name}
# We create links in %post in the dir's below. rm -rf them.
%preun -n %{name}
[ $1 = 0 ] || exit 0
rm -rf %{_datadir}/%{name}/lib/*
rm -rf %{_datadir}/%{name}/core/*
%postun
# FIXME: This doesn't always remove the plugins dir. It seems that rpm doesn't
# honour the Requires(postun) as it should, causing maven to get uninstalled
# before some plugins are
if [ -d %{_javadir}/%{name} ] ; then rmdir --ignore-fail-on-non-empty %{_javadir}/%{name} >& /dev/null; fi
%update_maven_depmap
%files -n %{name}
%{_bindir}/mvn
%{_bindir}/mvn-jpp
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/bin
%{_datadir}/%{name}/conf
%{_datadir}/%{name}/core
%{_datadir}/%{name}/lib
%{_datadir}/%{name}/poms
%{_datadir}/%{name}/repository
%{_mavendepmapfragdir}
%{_javadir}/%{name}
%files javadoc
%doc %{_javadocdir}/%{name}-%{version}
%ghost %doc %{_javadocdir}/%{name}
%files manual
%doc %{_docdir}/%{name}-%{version}
%files plugin-ant
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ant-plugin.jar
%files plugin-antlr
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/antlr-plugin.jar
%files plugin-antrun
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/antrun-plugin.jar
%files plugin-assembly
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/assembly-plugin.jar
%files plugin-checkstyle
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/checkstyle-plugin.jar
%files plugin-clean
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/clean-plugin.jar
%if %{NONFREE}
%files plugin-clover
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/clover-plugin.jar
%endif
%files plugin-compiler
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/compiler-plugin.jar
%files plugin-dependency
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/dependency-plugin.jar
%files plugin-deploy
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/deploy-plugin.jar
%files plugin-ear
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ear-plugin.jar
%files plugin-eclipse
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/eclipse-plugin.jar
%files plugin-ejb
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ejb-plugin.jar
%files plugin-help
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/help-plugin.jar
%files plugin-idea
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/idea-plugin.jar
%files plugin-install
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/install-plugin.jar
%files plugin-jar
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/jar-plugin.jar
%files plugin-javadoc
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/javadoc-plugin.jar
%files plugin-jxr
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/jxr-plugin.jar
%files plugin-one
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/one-plugin.jar
%files plugin-plugin
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/plugin-plugin.jar
%files plugin-pmd
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/pmd-plugin.jar
%files plugin-project-info-reports
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/project-info-reports-plugin.jar
%files plugin-rar
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/rar-plugin.jar
%files plugin-release
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/release-plugin.jar
%files plugin-repository
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/repository-plugin.jar
%files plugin-resources
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/resources-plugin.jar
%files plugin-site
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/site-plugin.jar
%files plugin-source
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/source-plugin.jar
%files plugin-surefire
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/surefire-plugin.jar
%files plugin-surefire-report
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/surefire-report-plugin.jar
%files plugin-verifier
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/verifier-plugin.jar
%files plugin-war
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/war-plugin.jar
%changelog
…
Full changelog you can see here
%define _bootstrap 1
BuildRequires: /proc
BuildRequires: jpackage-1.5-compat
BuildRequires: excalibur-avalon-framework
%define version 2.0.4
%define name maven2
# Copyright (c) 2000-2005, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%define with_itests %{!?_with_itests:0}%{?_with_itests:1}
%define without_itests %{?_with_itests:0}%{!?_with_itests:1}
%define with_regeneratedpoms %{!?_with_regeneratedpoms:0}%{?_with_regeneratedpoms:1}
%define without_regeneratedpoms %{?_with_regeneratedpoms:0}%{!?_with_regeneratedpoms:1}
%define with_bootstrap %{!?_with_bootstrap:0}%{?_with_bootstrap:1}
%define without_bootstrap %{?_with_bootstrap:0}%{!?_with_bootstrap:1}
%define maven_version 2.0.4
%define RHEL4 0
%define NONFREE 0
%define base_name maven
%define name maven2
%define repo_dir m2_home_local/repository
%define maven_settings_file %{_builddir}/%{name}/settings.xml
Name: %{name}
Version: %{maven_version}
Release: alt1_10jpp1.7.M40
Epoch: 0
Summary: Java project management and project comprehension tool.
Group: Development/Java
License: Apache Software License
URL: http://maven.apache.org/
# svn export http://svn.apache.org/repos/asf/maven/components/tags/maven-2.0.4 maven2
Source0: %{name}-src.tar.gz
# svn export -r {2006-04-20} http://svn.apache.org/repos/asf/maven/plugins/trunk maven2-plugins
Source2: %{name}-plugins-060420-src.tar.gz
Source3: m2_pom_repo.tar.gz
Source4: m2_jar_repo.tar.gz
Source5: %{name}-script
Source6: maven2-JPackageRepositoryLayout.java
Source7: maven2-settings.xml
Source8: %{name}-maven-site-plugin.tar.gz
Source9: %{name}-run-it-tests.sh
Source10: %{name}-model-v3.tar.gz
Source11: %{name}-MavenJPackageDepmap.java
Source12: %{name}-addjdom-depmap.xml
Source13: %{name}-empty-dep.pom
Source14: %{name}-empty-dep.jar
Source15: %{name}-jpp-script
Source16: %{name}-jpp-readme.html
Patch0: maven2-disable-itests.patch
Patch1: maven2-addjdomtobootstrappath.patch
Patch2: maven2-plugins-plexus151.patch
Patch3: %{name}-jpprepolayout.patch
Patch4: %{name}-it-jppfixes.patch
Patch5: %{name}-buildallplugins.patch
Patch6: %{name}-enable-unbuilt-modules.patch
BuildRequires: jpackage-utils >= 0:1.7.2
BuildRequires: /bin/ls /usr/bin/head /usr/bin/find /usr/bin/awk /bin/grep /bin/sed
BuildRequires: ant >= 1.6.5
BuildRequires: antlr >= 2.7.4
BuildRequires: bsh >= 1.3.0
BuildRequires: cglib >= 2.1.0
BuildRequires: checkstyle >= 4.1
BuildRequires: classworlds >= 1.1
%if %{NONFREE}
BuildRequires: clover
%endif
BuildRequires: dom4j >= 1.6.1
BuildRequires: geronimo-servlet-2.4-api >= 1.0
BuildRequires: gnu-regexp >= 1.1.4
BuildRequires: httpunit >= 1.6
BuildRequires: jakarta-commons-beanutils >= 1.7.0
BuildRequires: jakarta-commons-cli >= 1.0
BuildRequires: jakarta-commons-collections >= 3.1
BuildRequires: jakarta-commons-io >= 1.1
BuildRequires: jakarta-commons-lang >= 2.1
BuildRequires: jakarta-commons-logging >= 1.0.4
BuildRequires: jakarta-commons-validator >= 1.1.4
BuildRequires: jaxen >= 1.1
BuildRequires: jdom >= 1.0
BuildRequires: jmock >= 1.0.1
BuildRequires: jline >= 0.8.1
BuildRequires: jsch >= 0.1.20
BuildRequires: jtidy >= 1.0
BuildRequires: junit >= 3.8.2
BuildRequires: maven2-common-poms >= 1.0-3
BuildRequires: maven-doxia >= 1.0-0.a7.3
BuildRequires: maven-jxr >= 1.0-2
BuildRequires: maven-surefire >= 1.5.3-2
BuildRequires: maven-surefire-booter >= 1.5.3-2
BuildRequires: maven-wagon >= 1.0
#BuildRequires: modello >= 1.0-0.a8
BuildRequires: nekohtml >= 0.9.3
BuildRequires: oro >= 2.0.8
BuildRequires: plexus-ant-factory >= 1.0-0.a1.2
BuildRequires: plexus-bsh-factory >= 1.0-0.a7s.2
BuildRequires: plexus-archiver >= 1.0-0.a6
BuildRequires: plexus-compiler >= 1.5.1
BuildRequires: plexus-container-default >= 1.0
BuildRequires: plexus-i18n >= 1.0
BuildRequires: plexus-interactivity >= 1.0
BuildRequires: plexus-utils >= 1.2
BuildRequires: plexus-velocity >= 1.1.2
BuildRequires: pmd >= 3.6
BuildRequires: qdox >= 1.5
BuildRequires: rhino >= 1.5
BuildRequires: velocity >= 1.4
BuildRequires: xerces-j2 >= 2.7.1
BuildRequires: xalan-j2 >= 2.6.0
%if %{with_itests}
BuildRequires: log4j >= 1.2.13
BuildRequires: xml-commons-apis >= 1.3.02
%endif
%if %{with_regeneratedpoms}
BuildRequires: saxon-scripts >= 6.5.3
%endif
%if %{without_bootstrap}
BuildRequires: %{name} = %{epoch}:%{version}
BuildRequires: maven-scm >= 0:1.0-0.b3.2
BuildRequires: maven-scm-test >= 0:1.0-0.b3.2
BuildRequires: maven-shared-file-management >= 1.0-4
BuildRequires: maven-shared-plugin-testing-harness >= 1.0-4
BuildRequires: modello >= 1.0-0.a8.3
##BuildRequires: modello-maven-plugin >= 1.0-0.a8.3
%endif
Requires: ant >= 1.6.5
Requires: antlr >= 2.7.4
Requires: bsh >= 1.3.0
Requires: cglib >= 2.1.0
Requires: checkstyle >= 4.1
Requires: classworlds >= 1.1
%if %{NONFREE}
Requires: clover
%endif
Requires: dom4j >= 1.6.1
Requires: geronimo-servlet-2.4-api >= 1.0
Requires: gnu-regexp >= 1.1.4
Requires: httpunit >= 1.6
Requires: jakarta-commons-beanutils >= 1.7.0
Requires: jakarta-commons-cli >= 1.0
Requires: jakarta-commons-collections >= 3.1
Requires: jakarta-commons-io >= 1.1
Requires: jakarta-commons-lang >= 2.1
Requires: jakarta-commons-logging >= 1.0.4
Requires: jakarta-commons-validator >= 1.1.4
Requires: jaxen >= 1.1
Requires: jdom >= 1.0
Requires: jmock >= 1.0.1
Requires: jline >= 0.8.1
Requires: jsch >= 0.1.20
Requires: jtidy >= 1.0
Requires: junit >= 3.8.2
Requires: maven2-common-poms >= 1.0-3
Requires: maven-doxia >= 1.0-0.a7.3
Requires: maven-jxr >= 1.0
Requires: maven-surefire >= 1.5.3-2
Requires: maven-surefire-booter >= 1.5.3-2
Requires: maven-wagon >= 1.0
#Requires: modello >= 1.0-0.a8
Requires: nekohtml >= 0.9.3
Requires: oro >= 2.0.8
Requires: plexus-ant-factory >= 1.0-0.a1.2
Requires: plexus-bsh-factory >= 1.0-0.a7s.2
Requires: plexus-archiver >= 1.0-0.a6
Requires: plexus-compiler >= 1.5.1
Requires: plexus-container-default >= 1.0
Requires: plexus-i18n >= 1.0
Requires: plexus-interactivity >= 1.0
Requires: plexus-utils >= 1.2
Requires: plexus-velocity >= 1.1.2
Requires: pmd >= 3.6
Requires: qdox >= 1.5
Requires: rhino >= 1.5
Requires: velocity >= 1.4
Requires: xerces-j2 >= 2.7.1
Requires: xalan-j2 >= 2.6.0
%if %{without_bootstrap}
Requires: %{name} = %{epoch}:%{version}
Requires: maven-scm >= 0:1.0-0.b3.2
Requires: maven-scm-test >= 0:1.0-0.b3.2
Requires: maven-shared-file-management >= 1.0-4
Requires: maven-shared-plugin-testing-harness >= 1.0-4
Requires: modello >= 1.0-0.a8.3
Requires: modello-maven-plugin >= 1.0-0.a8.3
%endif
Requires(post): jpackage-utils >= 0:1.7.2
Requires(postun): jpackage-utils >= 0:1.7.2 /bin/rmdir
BuildArch: noarch
BuildRequires: checkstyle-optional jmock
BuildRequires: saxon-scripts
BuildRequires: maven2-bootstrap-bundle
Patch33: maven2-2.0.4-MANTTASKS-44.diff
%add_findreq_skiplist /usr/share/maven2/bin/mvn
%description
Maven is a software project management and comprehension tool. Based on the
concept of a project object model (POM), Maven can manage a project's build,
reporting and documentation from a central piece of information.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation
%description javadoc
%{summary}.
%package manual
Summary: Documents for %{name}
Group: Development/Documentation
%description manual
%{summary}.
%package plugin-ant
Summary: Ant plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-ant
%{summary}.
%package plugin-antlr
Summary: Antlr plugin for maven
Group: Development/Java
Requires: antlr >= 2.7.4
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-antlr
%{summary}.
%package plugin-antrun
Summary: Antrun plugin for maven
Group: Development/Java
Requires: ant >= 1.6.5
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-antrun
%{summary}.
%package plugin-assembly
Summary: Assembly plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-assembly
%{summary}.
%package plugin-checkstyle
Summary: Checkstyle plugin for maven
Group: Development/Java
Requires: checkstyle >= 4.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
Requires: plexus-velocity >= 1.1.2
%description plugin-checkstyle
%{summary}.
%package plugin-clean
Summary: Clean plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-clean
%{summary}.
%if %{NONFREE}
%package plugin-clover
Summary: Clover plugin for maven
Group: Development/Java
Requires: ant >= 1.6.5
Requires: jmock >= 1.0.1
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-compiler >= 1.5.1
%description plugin-clover
%{summary}.
%endif
%package plugin-compiler
Summary: Compiler plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-compiler >= 1.5.1
Requires: plexus-utils >= 1.2
%description plugin-compiler
%{summary}.
%package plugin-dependency
Summary: Dependency plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-dependency
%{summary}.
%package plugin-deploy
Summary: Deploy plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-deploy
%{summary}.
%package plugin-ear
Summary: Ear plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-ear
%{summary}.
%package plugin-eclipse
Summary: Eclipse plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-eclipse
%{summary}.
%package plugin-ejb
Summary: Ejb plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-ejb
%{summary}.
%package plugin-help
Summary: Help plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-help
%{summary}.
%package plugin-idea
Summary: Idea plugin for maven
Group: Development/Java
Requires: dom4j >= 1.6.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-wagon >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-idea
%{summary}.
%package plugin-install
Summary: Install plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-install
%{summary}.
%package plugin-jar
Summary: Jar plugin for maven
Group: Development/Java
Requires: jakarta-commons-lang >= 2.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-jar
%{summary}.
%package plugin-javadoc
Summary: Javadoc plugin for maven
Group: Development/Java
Requires: jakarta-commons-lang >= 2.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-archiver >= 1.0
%description plugin-javadoc
%{summary}.
%package plugin-jxr
Summary: Jxr plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-jxr
%{summary}.
%package plugin-one
Summary: One plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-one
%{summary}.
%package plugin-plugin
Summary: Plugin plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-plugin
%{summary}.
%package plugin-pmd
Summary: Pmd plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
Requires: pmd >= 3.3
%description plugin-pmd
%{summary}.
%package plugin-project-info-reports
Summary: Project-info-reports plugin for maven
Group: Development/Java
Requires: httpunit >= 1.6
Requires: jakarta-commons-validator >= 1.1.4
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-i18n >= 1.0
%description plugin-project-info-reports
%{summary}.
%package plugin-rar
Summary: Rar plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-rar
%{summary}.
%package plugin-release
Summary: Release plugin for maven
Group: Development/Java
Requires: jmock >= 1.0.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-interactivity >= 1.0
%description plugin-release
%{summary}.
%package plugin-repository
Summary: Repository plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
%description plugin-repository
%{summary}.
%package plugin-resources
Summary: Resources plugin for maven
Group: Development/Java
Requires: jakarta-commons-io >= 1.1
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%description plugin-resources
%{summary}.
%package plugin-site
Summary: Site plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-doxia >= 1.0
Requires: plexus-utils >= 1.2
%description plugin-site
%{summary}.
%package plugin-source
Summary: Source plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 1.0
Requires: plexus-container-default >= 1.0
%description plugin-source
%{summary}.
%package plugin-surefire
Summary: Surefire plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-surefire >= 1.5.2
Requires: maven-surefire-booter >= 1.5.2
Requires: plexus-utils >= 1.2
%description plugin-surefire
%{summary}.
%package plugin-surefire-report
Summary: Surefire report plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: maven-surefire >= 1.5.2
Requires: maven-surefire-booter >= 1.5.2
Requires: plexus-utils >= 1.2
%description plugin-surefire-report
%{summary}.
%package plugin-verifier
Summary: Verifier plugin for maven
Group: Development/Java
Requires: junit >= 3.8.2
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
%if %{without_bootstrap}
Requires: modello >= 1.0-0.a8
%endif
Requires: plexus-utils >= 1.2
%description plugin-verifier
%{summary}.
%package plugin-war
Summary: War plugin for maven
Group: Development/Java
Requires: maven2 = %{epoch}:%{version}-%{release}
Requires(postun): maven2 = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 1.2
%description plugin-war
%{summary}.
%prep
%setup -q -c -n %{name}
# Extract the plugins
tar xzf %{SOURCE2}
# Use an older version of site plugin because newer one requires newer doxia
# (1.0a8) which is not compatible with the older one (1.0a7) which is needed
# by other parts of maven
rm -rf maven2-plugins/maven-site-plugin
tar xzf %{SOURCE8}
# Remove dependencies on org.codehaus.doxia.* (it is now
# org.apache.maven.doxia, and in the interest of maintaining just one
# doxia jar, we substitute things accordingly)
for i in maven2-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java \
maven2-plugins/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java \
maven2-plugins/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java \
maven2-plugins/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java \
maven2-plugins/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java \
maven2-plugins/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportMojo.java; do
sed -i -e s:org.codehaus.doxia.sink.Sink:org.apache.maven.doxia.sink.Sink:g $i
sed -i -e s:org.codehaus.doxia.site.renderer.SiteRenderer:org.apache.maven.doxia.siterenderer.Renderer:g $i
sed -i -r -e s:\(\\s+\)SiteRenderer\(\\s+\):\\1Renderer\\2:g $i
done
# Remove existing binaries from source trees
#find . -name "*.jar" -exec rm -f '{}' \;
%patch0 -b .sav
%patch1 -b .sav
%patch2 -b .sav
%patch3 -b .sav
%patch4 -b .sav
%patch5 -b .sav
%patch6 -b .sav
# FIXME: Maven eclipse plugin tests are disabled for now, until a way
# is found to stop it from connecting to the web despite offline mode.
rm -rf maven2-plugins/maven-eclipse-plugin/src/test/*
# FIXME: Disabled goal (because we don't want a jetty dependency)
rm -f maven2-plugins/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteRunMojo.java
# extract poms and jars (if any)
tar xzf %{SOURCE3}
# extract jars iff in bootstrap mode
%if %{with_bootstrap}
tar xzf %{SOURCE4}
%endif
# Extract model-v3
tar xzf %{SOURCE10}
mkdir external_repo
ln -s %{_javadir} external_repo/JPP
cp %{SOURCE6} maven2/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/JPackageRepositoryLayout.java
cp %{SOURCE11} maven2/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/MavenJPackageDepmap.java
# FIXME: bootstrap-mini has no dependencies, so we copy the file there
# (for now). Since bootstrap classes are not in the final package, there
# will be no duplicates.
mkdir -p maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/artifact/repository/layout/
cp %{SOURCE11} maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/artifact/repository/layout/MavenJPackageDepmap.java
cp %{SOURCE7} %{maven_settings_file}
sed -i -e "s|<url>__INTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" %{maven_settings_file}
%if %{with_bootstrap}
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" %{maven_settings_file}
%else
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://%{_datadir}/%{name}/repository</url>|g" %{maven_settings_file}
%endif
sed -i -e "s|__INTERNAL_REPO_PLACEHOLDER__|file://`pwd`/m2_repo/repository|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%if %{with_bootstrap}
sed -i -e "s|__EXTERNAL_REPO_PLACEHOLDER__|file://`pwd`/external_repo|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%else
sed -i -e "s|__EXTERNAL_REPO_PLACEHOLDER__|file://%{_datadir}/%{name}/repository|g" maven2/bootstrap/bootstrap-mini/src/main/java/org/apache/maven/bootstrap/download/OnlineArtifactDownloader.java
%endif
# Copy the empty dependency jar/pom in place
mkdir -p m2_repo/repository/JPP/maven2/default_poms
cp %{SOURCE13} m2_repo/repository/JPP/maven2/default_poms/JPP.maven2-empty-dep.pom
cp %{SOURCE14} m2_repo/repository/JPP/maven2/empty-dep.jar
%patch33 -p1
%__subst "s,import org.jmock.cglib.Mock,import org.jmock.Mock," maven2-plugins/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PrepareReleaseMojoTest.java
cp -a /usr/share/maven2/default_poms/*.pom m2_repo/repository/JPP/maven2/default_poms/
cp -a /usr/share/maven2/poms/*.pom m2_repo/repository/JPP/maven2/default_poms/
%build
# Wire in jdom dependency
cp maven2/maven-artifact/pom.xml maven2/maven-artifact/pom.xml.withoutjdom
saxon -o maven2/maven-artifact/pom.xml maven2/maven-artifact/pom.xml.withoutjdom /usr/share/java-utils/xml/maven2jpp-mapdeps.xsl map=%{SOURCE12}
cp maven2/bootstrap/bootstrap-installer/pom.xml maven2/bootstrap/bootstrap-installer/pom.xml.withoutjdom
saxon -o maven2/bootstrap/bootstrap-installer/pom.xml maven2/bootstrap/bootstrap-installer/pom.xml.withoutjdom /usr/share/java-utils/xml/maven2jpp-mapdeps.xsl map=%{SOURCE12}
# Build maven2
export MAVEN_REPO_LOCAL=`pwd`/%{repo_dir}
export M2_SETTINGS_FILE=%{maven_settings_file}
# In bootstrap mode, we want it looking at default poms only (controlled via
# maven2-common-poms). This enables us to change naming structures without
# breaking build.
export MAVEN_OPTS="-Dmaven.repo.local=$MAVEN_REPO_LOCAL -Dmaven2.ignore.versions -Dmaven2.offline.mode -Dmaven.test.failure.ignore=true"
export M2_HOME=`pwd`/maven2/home/%{base_name}-%{version}
# pushd maven2/ ...
pushd %{name} >& /dev/null
[ -z "$JAVA_HOME" ] && JAVA_HOME=%{_jvmdir}/java
export JAVA_HOME
mkdir bootstrap/lib
ln -s $(build-classpath jdom) bootstrap/lib/jdom.jar
export CLASSPATH=`pwd`/bootstrap/lib/jdom.jar
export JDOMCLASS=$CLASSPATH
./bootstrap.sh --prefix=`pwd`/home --settings=%{maven_settings_file}
unset CLASSPATH
popd >& /dev/null
# Update the classworlds jar name in the mvn script
sed -i -e s:"/core/boot/classworlds-\*.jar":/core/boot/classworlds\*.jar:g $M2_HOME/bin/mvn
# Build plugins
pushd maven2-plugins >& /dev/null
# Build the plugin-plugin first, as it is needed to build itself later on
# NOTE: Build of this plugin for the first time is expected to cause errors.
# That is why we build it first with -fn . Subsequent builds should not have
# errors, and if they do, they will be caught when all plugins are built
# again below. See: http://mail-archives.apache.org/mod_mbox/maven-users/200511.mbox/[%%]3c4374C819.7090609 at commonjava.org/[%%]3e
(cd maven-plugin-plugin
$M2_HOME/bin/mvn -e --batch-mode -s %{maven_settings_file} $MAVEN_OPTS -npu --no-plugin-registry -fn clean install
)
%if ! %{NONFREE}
# Disable clover plugin. We don't have a clover package yet.
sed -i -e s:"<module>maven-clover-plugin</module>"::g pom.xml
%endif
# Now build everything
$M2_HOME/bin/mvn -e --batch-mode -s %{maven_settings_file} $MAVEN_OPTS -npu --no-plugin-registry --fail-at-end clean install
popd >& /dev/null
# Build complete. Run it tests.
%if %{with_itests}
(cd maven2
# One of the tests (#63) needs tools.jar. Fix the path for it
sed -i -e s:"<systemPath>\${java.home}/../lib/tools.jar</systemPath>":"<systemPath>$JAVA_HOME/lib/tools.jar</systemPath>":g maven-core-it/it0063/pom.xml
(cd integration-tests/maven-core-it-plugin
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-plugin-plugin:2.1.1-SNAPSHOT:descriptor org.apache.maven.plugins:maven-resources-plugin:2.2-SNAPSHOT:resources org.apache.maven.plugins:maven-compiler-plugin:2.1-SNAPSHOT:compile org.apache.maven.plugins:maven-jar-plugin:2.1-SNAPSHOT:jar org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install-file -DgroupId=org.apache.maven.plugins -DartifactId=maven-core-it-plugin -Dversion=2.0.4-JPP -Dpackaging=maven-plugin -Dfile=target/maven-core-it-plugin-1.0-SNAPSHOT.jar
)
for i in `find integration-tests/maven-core-it-support -name pom.xml`; do
pushd `dirname $i`
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-plugin-plugin:2.1.1-SNAPSHOT::descriptor org.apache.maven.plugins:maven-resources-plugin:2.2-SNAPSHOT:resources org.apache.maven.plugins:maven-compiler-plugin:2.1-SNAPSHOT:compile org.apache.maven.plugins:maven-jar-plugin:2.1-SNAPSHOT:jar org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install
popd
done
# Test 41 expects core-it-support 1.2 to be packed as a coreit-artifact
(cd integration-tests/maven-core-it-support/1.2
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-install-plugin:2.2-SNAPSHOT:install-file -DgroupId=org.apache.maven -DartifactId=maven-core-it-support -Dversion=1.2 -Dpackaging=coreit-artifact -Dfile=target/maven-core-it-support-1.2.jar
)
OLD_MAVEN_OPTS=$MAVEN_OPTS
MAVEN_OPTS="$MAVEN_OPTS -Dmaven.settings.file=$M2_SETTINGS_FILE -Dmaven2.ignore.versions -Dmaven2.jpp.mode -Dmaven2.jpp.mode=true"
sh -x %{SOURCE9}
export MAVEN_OPTS=$OLD_MAVEN_OPTS
)
%endif
# Build docs
(cd maven2
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-javadoc-plugin:2.0-SNAPSHOT:javadoc
)
(cd maven2-plugins
$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS org.apache.maven.plugins:maven-javadoc-plugin:2.0-SNAPSHOT:javadoc
)
%install
# Repository
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository
# /usr/bin/mvn
install -dm 755 $RPM_BUILD_ROOT%{_bindir}
install -pm 755 %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}/mvn
install -pm 755 %{SOURCE15} $RPM_BUILD_ROOT%{_bindir}/mvn-jpp
# maven.home
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
cp -p %{name}/home/%{base_name}-%{version}/bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
for library in maven-artifact \
maven-artifact-manager\
maven-core \
maven-error-diagnostics \
maven-model \
maven-monitor \
maven-plugin-api \
maven-plugin-descriptor \
maven-plugin-parameter-documenter \
maven-plugin-registry \
maven-profile \
maven-project \
maven-reporting-api \
maven-repository-metadata \
maven-settings; do
install -pm 644 %{name}/home/%{base_name}-%{version}/lib/$library-%{version}.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
done
# Also, link maven jars from /usr/share/java
install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
for library in $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/*-%{version}.jar; do
ln -s %{_datadir}/%{name}/lib/`basename $library` $RPM_BUILD_ROOT%{_javadir}/%{name}/`basename $library | sed -e s:^maven-::g`
done
# Some things are not in lib/ by default, and we don't want them there
# either, otherwise the maven classloader loads them and weird things
# happen... but there is no harm in putting in javadir/maven2
for project in maven-archiver maven-artifact-test maven-model-converter; do
installname=`echo $project | sed -e s:^maven-::g`
install -pm 644 %{name}/$project/target/$project-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$installname-%{version}.jar
done
install -pm 644 %{name}/maven-embedder/target/maven-embedder-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/embedder-%{version}.jar
install -pm 644 %{name}/maven-reporting/maven-reporting-impl/target/maven-reporting-impl-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/reporting-impl-%{version}.jar
install -pm 644 %{name}/maven-script/maven-script-ant/target/maven-script-ant-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-ant-%{version}.jar
install -pm 644 %{name}/maven-script/maven-script-beanshell/target/maven-script-beanshell-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-beanshell-%{version}.jar
for i in `find %{name}/maven-plugin-tools -maxdepth 1 -mindepth 1 -type d`; do
install -pm 644 $i/target/`basename $i`-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/`basename $i | sed -e s:^maven-::g`-%{version}.jar
done
# These items have a version other than 2.0.4..
install -pm 644 %{name}/maven-artifact-ant/target/maven-artifact-ant-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/artifact-ant-2.0.4-SNAPSHOT.jar
install -pm 644 %{name}/maven-meeper/target/maven-meeper-0.1-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/meeper-0.1-SNAPSHOT.jar
ln -s artifact-ant-2.0.4-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/artifact-ant.jar
ln -s meeper-0.1-SNAPSHOT.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/meeper.jar
# model-v3
install -pm 644 %{repo_dir}/org/apache/maven/maven-model-v3/2.0/maven-model-v3-2.0.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/model-v3-2.0.jar
ln -s model-v3-2.0.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/model-v3.jar
%add_to_maven_depmap org.apache.maven maven-model-v3 2.0 JPP/%{name} model-v3
# Create versionless symlinks
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar | sed "s|-%{version}||g"`; done)
# For backwards compatibility with older maven2 rpm
ln -s core.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/mavencore.jar
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/core
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/core/boot
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
install -pm 644 %{name}/home/%{base_name}-%{version}/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/
# plugins
pushd %{repo_dir}/org/apache/maven/plugins
for plugin in `find -maxdepth 1 -type d -not -name "maven-core-it-plugin" -not -name "maven-it00*-plugin" -not -name "." -not -name ".." | sed -e s:^\./::g`; do
# Find the latest created version
latest_ver=`ls -tdF $plugin/* | grep /$ | head -n 1`
# Proceed only if this plugin has a jar
if [ -n "`find $latest_ver -type f -name '*.jar'`" ]; then
cp $latest_ver/*jar $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/`echo $plugin | sed -e s:^maven-::g`.jar
fi
done
popd
# Install poms
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
pushd %{repo_dir}/org/apache/maven
for project in maven-archiver \
maven-artifact \
maven-artifact-manager \
maven-artifact-test \
maven-core \
maven-embedder \
maven-error-diagnostics \
maven-model \
maven-model-converter \
maven-monitor \
maven-plugin-api \
maven-plugin-descriptor \
maven-plugin-parameter-documenter \
maven-plugin-registry \
maven-plugin-tools \
maven-plugin-tools-ant \
maven-plugin-tools-api \
maven-plugin-tools-beanshell \
maven-plugin-tools-java \
maven-plugin-tools-model \
maven-plugin-tools-pluggy \
maven-profile \
maven-project \
maven-repository-metadata \
maven-script \
maven-script-ant \
maven-script-beanshell \
maven-settings \
maven; do
artifactname=`echo $project | sed -e s:^maven-::g`
cp $project/%{version}/$project-%{version}.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$artifactname.pom
# dependency fragments
%add_to_maven_depmap org.apache.maven $project %{version} JPP/%{name} $artifactname
done
popd
pushd %{repo_dir}/org/apache/maven/reporting
for project in maven-reporting \
maven-reporting-api \
maven-reporting-impl; do
artifactname=`echo $project | sed -e s:^maven-::g`
cp $project/%{version}/$project-%{version}.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$artifactname.pom
%add_to_maven_depmap org.apache.maven.reporting $project %{version} JPP/%{name} $artifactname
done
popd
pushd %{repo_dir}/org/apache/maven/plugins
for plugin in `find -maxdepth 1 -type d -not -name "maven-core-it-plugin" -not -name "maven-it00*-plugin" -not -name "." -not -name ".." | sed -e s:^\./::g`; do
# Find the latest created version
latest_ver=`ls -tdF $plugin/* | grep /$ | head -n 1`
artifactname=`echo $plugin | sed -e s:^maven-::g`
latest_ver_num=`basename $latest_ver`
cp $latest_ver/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}.plugins-$artifactname.pom
%add_to_maven_depmap org.apache.maven.plugins $plugin $latest_ver_num JPP/%{name}/plugins $artifactname
done
popd
# artifact-ant and meeper have versions other than 2.0.4
cp %{repo_dir}/org/apache/maven/maven-artifact-ant/2.0.4-SNAPSHOT/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-artifact-ant.pom
%add_to_maven_depmap org.apache.maven maven-artifact-ant 2.0.4-SNAPSHOT JPP/%{name} artifact-ant
cp %{repo_dir}/org/apache/maven/maven-meeper/0.1-SNAPSHOT/*pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-meeper.pom
%add_to_maven_depmap org.apache.maven maven-meeper 0.1-SNAPSHOT JPP/%{name} meeper
# g=org.apache.maven.plugins a=maven-plugins needs to be copied manually, as
# it get's changed to a=plugins (a=plugins and a=maven-plugins is the same
# file, but the former is needed for compatiblity while newer projects use
# the latter)
cp maven2-plugins/pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2.plugins-maven-plugins.pom
%add_to_maven_depmap org.apache.maven.plugins maven-plugins 2-SNAPSHOT JPP/%{name}/plugins maven-plugins
# The empty dependencies
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
mkdir -p $RPM_BUILD_ROOT%{_javadir}/%{name}
cp %{SOURCE13} $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-empty-dep.pom
cp %{SOURCE14} $RPM_BUILD_ROOT%{_javadir}/%{name}/empty-dep.jar
# For backwards compatibility
ln -s JPP.maven2-core.pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven2-mavencore.pom
# javadoc
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
(cd maven2
for doc_dir in `find . -type d -name apidocs`; do
targetdir=$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/`dirname \`dirname $doc_dir\``
install -dm 755 $targetdir
cp -pr $doc_dir/* $targetdir
done
)
(cd maven2-plugins
for doc_dir in `find . -type d -name apidocs`; do
targetdir=$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/plugins/`dirname \`dirname $doc_dir\``
install -dm 755 $targetdir
cp -pr $doc_dir/* $targetdir
done
)
# jdom is needed by the new mapping system
ln -s %{_javadir}/jdom.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
# manual and jpp readme
install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p %{name}/home/%{base_name}-%{version}/*.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp %{SOURCE16} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
# create appropriate links in /usr/share/java
ln -sf %{_datadir}/%{name}/poms $RPM_BUILD_ROOT%{_javadir}/%{name}
ln -sf %{_datadir}/%{name}/plugins $RPM_BUILD_ROOT%{_javadir}/%{name}
# Create repository links
ln -s %{_javadir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository/JPP
%post
build-jar-repository -s -p %{_datadir}/%{name}/core plexus/container-default plexus/utils
build-jar-repository -s -p %{_datadir}/%{name}/core/boot classworlds
build-jar-repository -s -p %{_datadir}/%{name}/lib \
commons-cli \
commons-lang \
commons-logging \
jsch \
maven-doxia/sink-api \
maven-wagon/file \
maven-wagon/http-lightweight \
maven-wagon/provider-api \
maven-wagon/ssh \
maven-wagon/ssh-external \
plexus/interactivity-api
%update_maven_depmap
%post javadoc
rm -f %{_javadocdir}/%{name}
ln -s %{name}-%{version} %{_javadocdir}/%{name}
# We create links in %post in the dir's below. rm -rf them.
%preun -n %{name}
[ $1 = 0 ] || exit 0
rm -rf %{_datadir}/%{name}/lib/*
rm -rf %{_datadir}/%{name}/core/*
%postun
# FIXME: This doesn't always remove the plugins dir. It seems that rpm doesn't
# honour the Requires(postun) as it should, causing maven to get uninstalled
# before some plugins are
if [ -d %{_javadir}/%{name} ] ; then rmdir --ignore-fail-on-non-empty %{_javadir}/%{name} >& /dev/null; fi
%update_maven_depmap
%files -n %{name}
%{_bindir}/mvn
%{_bindir}/mvn-jpp
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/bin
%{_datadir}/%{name}/conf
%{_datadir}/%{name}/core
%{_datadir}/%{name}/lib
%{_datadir}/%{name}/poms
%{_datadir}/%{name}/repository
%{_mavendepmapfragdir}
%{_javadir}/%{name}
%files javadoc
%doc %{_javadocdir}/%{name}-%{version}
%ghost %doc %{_javadocdir}/%{name}
%files manual
%doc %{_docdir}/%{name}-%{version}
%files plugin-ant
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ant-plugin.jar
%files plugin-antlr
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/antlr-plugin.jar
%files plugin-antrun
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/antrun-plugin.jar
%files plugin-assembly
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/assembly-plugin.jar
%files plugin-checkstyle
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/checkstyle-plugin.jar
%files plugin-clean
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/clean-plugin.jar
%if %{NONFREE}
%files plugin-clover
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/clover-plugin.jar
%endif
%files plugin-compiler
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/compiler-plugin.jar
%files plugin-dependency
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/dependency-plugin.jar
%files plugin-deploy
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/deploy-plugin.jar
%files plugin-ear
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ear-plugin.jar
%files plugin-eclipse
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/eclipse-plugin.jar
%files plugin-ejb
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/ejb-plugin.jar
%files plugin-help
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/help-plugin.jar
%files plugin-idea
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/idea-plugin.jar
%files plugin-install
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/install-plugin.jar
%files plugin-jar
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/jar-plugin.jar
%files plugin-javadoc
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/javadoc-plugin.jar
%files plugin-jxr
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/jxr-plugin.jar
%files plugin-one
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/one-plugin.jar
%files plugin-plugin
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/plugin-plugin.jar
%files plugin-pmd
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/pmd-plugin.jar
%files plugin-project-info-reports
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/project-info-reports-plugin.jar
%files plugin-rar
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/rar-plugin.jar
%files plugin-release
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/release-plugin.jar
%files plugin-repository
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/repository-plugin.jar
%files plugin-resources
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/resources-plugin.jar
%files plugin-site
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/site-plugin.jar
%files plugin-source
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/source-plugin.jar
%files plugin-surefire
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/surefire-plugin.jar
%files plugin-surefire-report
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/surefire-report-plugin.jar
%files plugin-verifier
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/verifier-plugin.jar
%files plugin-war
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/war-plugin.jar
%changelog
…
Full changelog you can see here