Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37890688
en ru br
ALT Linux repos
S:2.2.1-alt6_66jpp11
5.0: 2.0.7-alt2_8jpp5
4.1: 2.0.4-alt1_10jpp1.7
4.0: 2.0.4-alt1_10jpp1.7.M40

Group :: Development/Java
RPM: maven2

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Packager: Igor Vlasenko <viy at altlinux.ru>
BuildRequires: /proc
BuildRequires: jpackage-compat
%define version 2.0.7
%define name maven2
# Copyright (c) 2000-2009, 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_maven %{?_with_maven:1}%{!?_with_maven:0}
%define without_maven %{!?_with_maven:1}%{?_with_maven:0}

%define RHEL4 0
%define NONFREE 0

%define base_name maven

%define repo_dir m2_home_local/repository
%define maven_settings_file %{_builddir}/%{name}/settings.xml

Name:           maven2
Version:        2.0.7
Release:        alt2_8jpp5
Epoch:          0
Summary:        Java project management and project comprehension tool

Group:          Development/Java
#Vendor: %{?vendor:%{vendor}}%{!?vendor:%{_vendor}}
#Distribution: %{?distribution:%{distribution}}%{!?distribution:%{_vendor}}
License:        Apache Software License 2
URL:            http://maven.apache.org/

# svn export http://svn.apache.org/repos/asf/maven/components/tags/maven-2.0.7 maven2

Source0:        %{name}-%{version}-src.tar.gz

# svn export http://svn.apache.org/repos/asf/maven/plugins/tags/maven-assembly-plugin-2.2-beta-1/

Source1:        maven2-assembly-plugin-2.2-beta-1.tar.gz

# svn export http://svn.apache.org/repos/asf/maven/plugins/tags/maven-plugins-10/ maven2-plugins

Source2:        %{name}-plugins-10.tar.gz

Source3:        m2b_pom_repo.tar.gz
Source4:        maven-enforcer-plugin-1.0-alpha-3.tar.gz

Source5:        %{name}-script

Source6:        maven2-JPackageRepositoryLayout.java
Source7:        maven2-settings.xml
Source8:        maven-dependency-plugin-2.0-alpha-4.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
#svn export http://svn.apache.org/repos/asf/maven/plugins/tags/maven-javadoc-plugin-2.2
Source17:       maven-javadoc-plugin-2.2.tar.gz
Source18:       maven2-jpp-depmap.xml

#Source17:       %{name}-plugin-plugin-build.xml

#Source18:       %{name}-plugin-plugin.xml
Source19:       %{name}-resources-plugin-build.xml
Source20:       %{name}-resources-plugin.xml
Source21:       %{name}-compiler-plugin-build.xml
Source22:       %{name}-compiler-plugin.xml
#Source23:      
#Source24:      
Source25:       %{name}-jar-plugin-build.xml
Source26:       %{name}-jar-plugin.xml
Source27:       %{name}-install-plugin-build.xml
Source28:       %{name}-install-plugin.xml
Source29:       %{name}-clean-plugin-build.xml
Source30:       %{name}-clean-plugin.xml
Source31:       %{name}-shared-file-management-build.xml
Source32:       %{name}-shared-plugin-testing-harness-build.xml
Source33:       %{name}-assembly-plugin-build.xml
Source34:       %{name}-assembly-plugin.xml
Source35:       %{name}-assembly-plugin-components.xml
Source36:       %{name}-plugin-plugin-build.xml
Source37:       %{name}-plugin-plugin.xml


Patch1:         maven2-addjdomtobootstrappath.patch
Patch2:         maven2-plugins-break-cycle.patch
Patch3:         maven2-jpprepolayout.patch
Patch4:         maven2-antrun-plugin-pom.patch
Patch5:         maven2-ant-plugin-pom.patch
Patch11:        maven2-bootstrap-no-modello-plugin.patch
Patch14:        maven2-repository-metadata-no-modello-plugin-pom.patch
Patch15:        maven2-model-no-modello-plugin-pom.patch
Patch16:        maven2-settings-no-modello-plugin-pom.patch
Patch17:        maven2-plugin-parameter-documenter-no-modello-plugin-pom.patch
Patch18:        maven2-profile-no-modello-plugin-pom.patch
Patch19:        maven2-plugin-registry-no-modello-plugin-pom.patch
Patch20:        maven2-plugin-descriptor-no-modello-plugin-pom.patch
Patch21:        maven2-core-no-shade-plugin-pom.patch
Patch22:        maven2-plugins-omit-add.patch
Patch23:        maven2-verifier-plugin-pom.patch
Patch24:        maven2-javadoc-plugin-pom.patch
Patch25:        maven2-assembly-plugin-pom.patch
Patch26:        maven2-remote-resources-plugin-pom.patch
Patch27:        maven2-enforcer-plugin-pom.patch
Patch28:        maven2-dependency-plugin-pom.patch
Patch29:        maven2-site-plugin-pom.patch
Patch30:        maven2-war-plugin-AbstractWarPackagingTask.patch
Patch31:        maven2-eclipse-plugin-InstallPluginsMojo.patch
#Patch32:        maven2-assembly-plugin-PrefixingProxyArchiver.patch
Patch33:        maven2-dependency-plugin-AbstractDependencyMojo.patch
Patch34:        maven2-MavenReport.patch
Patch35:        maven2-remote-resources-plugin-components.patch
Patch36:        maven2-docck-plugin-pom.patch
Patch37:        maven2-pmd-plugin-pom.patch
#
Patch38:        maven2-plugin-site-AbstractSiteRenderingMojo.patch


BuildRequires: jpackage-utils >= 0:1.7.5
BuildRequires: /bin/ls /usr/bin/head /usr/bin/find /usr/bin/awk /bin/grep /bin/sed

BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-antlr
BuildRequires: ant-junit
BuildRequires: ant-nodeps
BuildRequires: antlr >= 0:2.7.4
BuildRequires: aqute-bndlib
BuildRequires: asm >= 0:1.5.3
BuildRequires: backport-util-concurrent
BuildRequires: bsh2 >= 0:2.0-0b4
BuildRequires: cglib >= 2.1.0
BuildRequires: checkstyle = 0:4.3
BuildRequires: checkstyle-optional = 0:4.3
BuildRequires: classworlds >= 0:1.1
BuildRequires: dom4j >= 0:1.6.1
BuildRequires: easymock-java5 >= 0:1.2
BuildRequires: ganymed-ssh2
BuildRequires: geronimo-servlet-2.4-api
BuildRequires: httpunit >= 0:1.6
BuildRequires: jakarta-commons-cli10
BuildRequires: jakarta-commons-codec >= 0:1.3
BuildRequires: jakarta-commons-collections >= 0:3.1
BuildRequires: jakarta-commons-httpclient >= 0:3.0.1
BuildRequires: jakarta-commons-io >= 0:1.3
BuildRequires: jakarta-commons-lang >= 0:2.1
BuildRequires: jakarta-commons-logging >= 0:1.1
BuildRequires: jakarta-commons-validator >= 0:1.2
BuildRequires: javacvs-lib >= 0:5.0
BuildRequires: jaxen >= 0:1.1
BuildRequires: jdom >= 0:1.0
BuildRequires: jmock >= 0:1.2
BuildRequires: jline >= 0:0.9.9
BuildRequires: jsch >= 0:0.1.28
BuildRequires: junit >= 0:3.8.2
#BuildRequires:  maven2-common-poms >= 0:1.0-3
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven-embedder >= 0:2.0.4
BuildRequires: maven-doxia >= 0:1.0-0.a10
BuildRequires: maven-scm >= 0:1.0-1jpp
BuildRequires: maven-shared-archiver
BuildRequires: maven-shared-common-artifact-filters >= 0:1.0
BuildRequires: maven-shared-dependency-analyzer >= 0:1.0
BuildRequires: maven-shared-dependency-tree >= 0:1.1
BuildRequires: maven-shared-downloader >= 0:1.2
BuildRequires: maven-shared-enforcer-rule-api >= 0:1.0
BuildRequires: maven-shared-file-management >= 0:1.2
BuildRequires: maven-shared-io >= 0:1.1
BuildRequires: maven-shared-invoker >= 0:2.0.7
BuildRequires: maven-shared-jar >= 0:1.1
BuildRequires: maven-shared-plugin-testing-harness >= 0:1.0
BuildRequires: maven-shared-plugin-testing-tools >= 0:1.0
BuildRequires: maven-shared-plugin-tools-api >= 0:2.2
BuildRequires: maven-shared-plugin-tools-beanshell >= 0:2.2
BuildRequires: maven-shared-plugin-tools-java >= 0:2.2
BuildRequires: maven-shared-plugin-tools-model >= 0:2.2
BuildRequires: maven-shared-model-converter >= 0:2.3
BuildRequires: maven-shared-monitor >= 0:1.0
BuildRequires: maven-shared-repository-builder >= 0:1.0
BuildRequires: maven-shared-reporting-impl >= 0:2.1
BuildRequires: maven-shared-test-tools >= 0:1.0
BuildRequires: maven-shared-verifier >= 0:1.2
BuildRequires: maven-surefire >= 0:2.3
BuildRequires: maven-surefire-booter >= 0:2.3
BuildRequires: maven-surefire-junit >= 0:2.3
BuildRequires: maven-surefire-plugin >= 0:2.3
BuildRequires: maven-wagon >= 0:1.0
BuildRequires: modello >= 0:1.0-0.a17
BuildRequires: objectweb-asm >= 0:3.0
BuildRequires: ognl >= 0:2.6.9
BuildRequires: plexus-ant-factory >= 0:1.0-0.a1.2
BuildRequires: plexus-bsh-factory >= 0:1.0-0.a7s.2
BuildRequires: plexus-archiver >= 0:1.0-0.a8
BuildRequires: plexus-classworlds
BuildRequires: plexus-compiler >= 0:1.5.3
BuildRequires: plexus-containers-component-api
BuildRequires: plexus-containers-container-default
BuildRequires: plexus-container-default >= 0:1.0-0.a9s1
BuildRequires: plexus-digest
BuildRequires: plexus-i18n >= 0:1.0
BuildRequires: plexus-interactivity >= 0:1.0
BuildRequires: plexus-mail-sender >= 0:1.0-0.a2
BuildRequires: plexus-resources >= 0:1.0-0.a4
BuildRequires: plexus-utils >= 0:1.4.8
BuildRequires: plexus-velocity >= 0:1.1.7
BuildRequires: pmd >= 0:3.9
BuildRequires: qdox >= 0:1.6.1
BuildRequires: saxpath
BuildRequires: sun-mail >= 0:1.4
BuildRequires: velocity >= 0:1.5
BuildRequires: xalan-j2 >= 0:2.7.0
BuildRequires: xerces-j2 >= 0:2.7.1
BuildRequires: xml-commons-jaxp-1.3-apis
BuildRequires: xmlunit >= 0:1.0
BuildRequires: xom >= 0:1.1
BuildRequires: xpp3-minimal
BuildRequires: xstream >= 0:1.2.2

%if %{with_itests}
BuildRequires: log4j >= 1.2.13
%endif

BuildRequires: saxon-scripts >= 6.5.3

%if %{with_maven}
BuildRequires: %{name} = %{epoch}:%{version}
BuildRequires: %{name}-plugin-assembly = %{epoch}:%{version}
BuildRequires: %{name}-plugin-clean = %{epoch}:%{version}
BuildRequires: %{name}-plugin-compiler = %{epoch}:%{version}
BuildRequires: %{name}-plugin-install = %{epoch}:%{version}
BuildRequires: %{name}-plugin-jar = %{epoch}:%{version}
BuildRequires: %{name}-plugin-javadoc = %{epoch}:%{version}
BuildRequires: %{name}-plugin-plugin = %{epoch}:%{version}
BuildRequires: %{name}-plugin-resources = %{epoch}:%{version}
BuildRequires: maven-surefire-plugin >= 0:2.3
BuildRequires: maven-scm-test >= 0:1.0-1jpp
BuildRequires: maven-plugin-modello >= 1.0-0.a15.2
%endif
#BuildRequires:  mojo-maven2-plugin-shade
BuildRequires: plexus-maven-plugin >= 0:1.3.5

Requires: classworlds >= 0:1.1
Requires: jakarta-commons-cli10
Requires: jdom >= 0:1.0
Requires: jsch >= 0:0.1.28
Requires: junit >= 0:3.8.2
Requires: maven2-common-poms >= 1.0-4
Requires: maven-doxia >= 1.0-0.a10.2
Requires: maven-shared-monitor >= 0:1.0
Requires: maven-surefire >= 0:2.3
Requires: maven-surefire-booter >= 0:2.3
Requires: maven-wagon >= 0:1.0
Requires: ognl >= 0:2.6.9
Requires: plexus-ant-factory >= 0:1.0-0.a1.2
Requires: plexus-bsh-factory >= 0:1.0-0.a7s.2
Requires: plexus-compiler >= 0:1.5.3
Requires: plexus-container-default >= 0:1.0-0.a9s1
Requires: plexus-i18n >= 0:1.0
Requires: plexus-interactivity >= 0:1.0
Requires: plexus-utils >= 0:1.4.8
Requires: qdox >= 0:1.6.1

#%if %{with_maven}

#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.2
#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.3
Requires(postun): jpackage-utils >= 0:1.7.3 /bin/rmdir

Provides:  %{name}-bootstrap = %{epoch}:%{version}-%{release}
Obsoletes: %{name}-bootstrap


BuildArch:      noarch
BuildRequires: avalon-framework

%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 maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-wagon
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-utils >= 0:1.4.1
Requires: ant >= 0:1.6.5
Requires: xalan-j2 >= 0:2.7.0

%description    plugin-ant
%{summary}.

%package        plugin-antrun
Summary:        AntRun plugin for maven2
Group:          Development/Java
Requires: ant >= 0:1.6.5
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}

%description    plugin-antrun
Runs ant scripts embedded in the POM.


%package        plugin-assembly
Summary:        Assembly plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.2
Requires: maven-shared-file-management >= 0:1.2
Requires: maven-shared-repository-builder >= 0:1.0
Requires: maven-shared-common-artifact-filters >= 0:1.0
Requires: plexus-archiver >= 0:1.0-0.a8
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-utils >= 0:1.4.1

%description    plugin-assembly
%{summary}.


%package        plugin-changelog
Summary:        Changelog plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: maven-doxia >= 0:1.0-0.a10
Requires: maven-scm >= 0:1.0-1jpp

%description    plugin-changelog
Produce SCM changelog reports.


%package        plugin-changes
Summary:        Changes plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jakarta-commons-collections >= 0:3.0
Requires: jakarta-commons-httpclient >= 0:3.0.1
Requires: jakarta-commons-lang >= 0:2.1
Requires: jakarta-commons-logging >= 0:1.1
Requires: maven-doxia >= 0:1.0-0.a10
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-mail-sender >= 0:1.0-0.a2
Requires: plexus-utils >= 0:1.4.5
Requires: plexus-velocity >= 0:1.1.7
Requires: javamail_api
Requires: velocity >= 0:1.5

%description    plugin-changes
%{summary}.


%package        plugin-checkstyle
Summary:        Checkstyle plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: checkstyle = 0:4.3
Requires: checkstyle-optional = 0:4.3
Requires: plexus-resources >= 0:1.0-0.a4
Requires: plexus-utils >= 0:1.4.1
Requires: plexus-velocity >= 0:1.1.2

%description    plugin-checkstyle
%{summary}.


%package        plugin-clean
Summary:        Clean plugin for maven
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-file-management >= 0:1.2
Requires: plexus-utils >= 0:1.4.1

%description    plugin-clean
%{summary}.


%package        plugin-compiler
Summary:        Compiler plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-compiler >= 0:1.5.3
Requires: plexus-utils >= 0:1.4.1

%description    plugin-compiler
%{summary}.


%package        plugin-dependency
Summary:        Dependency plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-dependency-analyzer >= 0:1.0
Requires: maven-shared-file-management >= 0:1.2
Requires: plexus-archiver >= 0:1.0-0.a7
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-utils >= 0:1.4.1

%description    plugin-dependency
%{summary}.


%package        plugin-deploy
Summary:        Deploy plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}

%description    plugin-deploy
%{summary}.


%package        plugin-doap
Summary:        Doap plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 0:1.4.1

%description    plugin-doap
%{summary}.


%package        plugin-docck
Summary:        Docck plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jakarta-commons-codec
Requires: jakarta-commons-httpclient >= 0:3.0.1
Requires: jakarta-commons-logging >= 0:1.1
Requires: maven-shared-file-management >= 0:1.2
Requires: maven-shared-plugin-tools-api >= 0:2.2
Requires: maven-shared-plugin-tools-beanshell >= 0:2.2
Requires: maven-shared-plugin-tools-java >= 0:2.2
Requires: maven-shared-reporting-impl >= 0:2.1

%description    plugin-docck
Maven Documentation Checker Plugin.


%package        plugin-ear
Summary:        Ear plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3
Requires: plexus-utils >= 0:1.4.1

%description    plugin-ear
%{summary}.


%package        plugin-eclipse
Summary:        Eclipse plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: aqute-bndlib
Requires: maven-shared-archiver >= 0:2.3
Requires: plexus-archiver >= 0:1.0-0.a7
Requires: plexus-interactivity >= 0:1.0-0.a5
Requires: plexus-utils >= 0:1.4.2

%description    plugin-eclipse
%{summary}.


%package        plugin-ejb
Summary:        Ejb plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3

%description    plugin-ejb
%{summary}.


%package        plugin-enforcer
Summary:        Enforcer plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: bsh2
Requires: jakarta-commons-lang >= 0:2.3
Requires: maven-shared-enforcer-rule-api >= 0:1.0
Requires: plexus-utils >= 0:1.4.2

%description    plugin-enforcer
%{summary}.


%package        plugin-gpg
Summary:        Gpg plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jakarta-commons-lang >= 0:2.3
Requires: maven2-plugin-deploy
Requires: plexus-utils >= 0:1.4.1

%description    plugin-gpg
%{summary}.


%package        plugin-help
Summary:        Help plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-plugin-tools-api >= 0:2.2

%description    plugin-help
The Maven Help plugin provides goals aimed at helping to
make sense out of the build environment. It includes the
ability to view the effective POM and settings files,
after inheritance and active profiles have been applied,
as well as a describe a particular plugin goal to give us
age information.


%package        plugin-idea
Summary:        Idea plugin for maven2
Group:          Development/Java
Requires: dom4j >= 0:1.6.1
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: dom4j >= 0:1.6.1
Requires: maven-wagon >= 0:1.0
Requires: plexus-utils >= 0:1.4.1

%description    plugin-idea
%{summary}.


%package        plugin-install
Summary:        Install plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-digest >= 0:1.0

%description    plugin-install
%{summary}.


%package        plugin-invoker
Summary:        Invoker plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: bsh2
Requires: maven-shared-file-management >= 0:1.2
Requires: maven-shared-invoker >= 0:2.0.7
Requires: maven-shared-io >= 0:1.1

%description    plugin-invoker
%{summary}.


%package        plugin-jar
Summary:        Jar plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3
Requires: jakarta-commons-lang >= 0:2.1

%description    plugin-jar
%{summary}.


%package        plugin-javadoc
Summary:        Javadoc plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jakarta-commons-lang >= 0:2.1
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: plexus-archiver >= 0:1.0-0.a8
Requires: plexus-utils >= 0:1.4.6

%description    plugin-javadoc
%{summary}.


%package        plugin-one
Summary:        One plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3
Requires: maven-shared-model-converter >= 0:2.3
Requires: plexus-archiver >= 0:1.0-0.a8
Requires: plexus-utils >= 0:1.4.1

%description    plugin-one
%{summary}.


%package        plugin-patch
Summary:        Patch plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 0:1.4.2

%description    plugin-patch
%{summary}.


%package        plugin-plugin
Summary:        Plugin plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-doxia >= 0:1.0-0.a10
Requires: maven-shared-plugin-tools-api >= 0:2.2
Requires: maven-shared-plugin-tools-beanshell >= 0:2.2
Requires: maven-shared-plugin-tools-java >= 0:2.2
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-utils >= 0:1.4.5

%description    plugin-plugin
The Plugin Plugin is used to create a Maven plugin
descriptor for any Mojo's found in the source tree,
to include in the JAR. It is also used to generate Xdoc
files for the Mojos as well as for updating the plugin
registry and the artifact metadata.



%package        plugin-pmd
Summary:        Pmd plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jaxen >= 0:1.1
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: plexus-resources >= 0:1.0-0.a4
Requires: plexus-utils >= 0:1.4.2
Requires: pmd >= 0:3.9
Requires: xom >= 0:1.1

%description    plugin-pmd
%{summary}.


%package        plugin-project-info-reports
Summary:        Project-info-reports plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: jakarta-commons-validator >= 0:1.2.0
Requires: maven-doxia >= 0:1.0-0.a10
Requires: maven-shared-reporting-impl >= 0:2.1
Requires: maven-shared-jar >= 0:1.1
Requires: maven-shared-dependency-tree >= 0:1.1
Requires: maven-scm >= 0:1.0-1jpp
Requires: maven-wagon >= 0:1.0
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-i18n >= 0:1.0
Requires: plexus-utils >= 0:1.4.5

%description    plugin-project-info-reports
%{summary}.


%package        plugin-rar
Summary:        Rar plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3

%description    plugin-rar
%{summary}.


%package        plugin-remote-resources
Summary:        Remote Resources plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-monitor >= 0:1.0
Requires: maven-shared-downloader >= 0:1.2
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-resources >= 0:1.0-0.a4
Requires: plexus-utils >= 0:1.4.1
Requires: plexus-velocity >= 0:1.1.3
Requires: velocity >= 0:1.4

%description    plugin-remote-resources
Process resources packaged in JARs that have been deployed
to a remote repository. The primary use case being
satisfied is the consistent inclusion of common resources
in a large set of projects. Maven projects at Apache use
this plug-in to satisfy licensing requirements at Apache
where each project much include license and notice files
for each release.


%package        plugin-repository
Summary:        Repository plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 0:1.0-0.a8

%description    plugin-repository
%{summary}.


%package        plugin-resources
Summary:        Resources plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 0:1.4.1

%description    plugin-resources
The Resources Plugin handles the copying or transfering of
project resources to the output directory. Resources are
categorized into two: main resources and test resources.
The difference is that the main resources are the resources
associated to the main code while teh test resources are
that of the test code.
This, thus, allows the separation of resources of the main
code (what your plugin actually does) and its unit tests.


%package        plugin-site
Summary:        Site plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-doxia >= 0:1.0-0.a10
Requires: plexus-utils >= 0:1.4.5
Requires: servlet_2_5_api

%description    plugin-site
%{summary}.


%package        plugin-source
Summary:        Source plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-archiver >= 0:1.0-0.a8
Requires: plexus-container-default >= 0:1.0-0.a9
Requires: plexus-utils >= 0:1.4.1

%description    plugin-source
%{summary}.


%package        plugin-stage
Summary:        Stage plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-wagon
Requires: plexus-utils >= 0:1.4.1

%description    plugin-stage
%{summary}.

%package        plugin-verifier
Summary:        Verifier plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: plexus-utils >= 0:1.4.1

%description    plugin-verifier
%{summary}.


%package        plugin-war
Summary:        War plugin for maven2
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(postun): %{name} = %{epoch}:%{version}-%{release}
Requires: maven-shared-archiver >= 0:2.3
Requires: plexus-utils >= 0:1.4.7
Requires: xstream >= 0:1.2.2

%description    plugin-war
%{summary}.

%prep
%setup -q -c -n %{name}

# Extract the assembly-plugin to replace

tar xzf %{SOURCE1}

# Extract the plugins

tar xzf %{SOURCE2}

# Extract the plugin-plugin to replace

tar xzf %{SOURCE4}

# Extract the dependency-plugin to replace

tar xzf %{SOURCE8}

# Extract the javadoc-plugin to replace

tar xzf %{SOURCE17}

rm -rf maven2-plugins/maven-assembly-plugin
mv maven-assembly-plugin-2.2-beta-1 maven2-plugins/maven-assembly-plugin

rm -rf maven2-plugins/maven-dependency-plugin
mv maven-dependency-plugin-2.0-alpha-4 maven2-plugins/maven-dependency-plugin

mv maven-enforcer-plugin-1.0-alpha-3 maven2-plugins/maven-enforcer-plugin

rm -rf maven2-plugins/maven-javadoc-plugin
mv maven-javadoc-plugin-2.2 maven2-plugins/maven-javadoc-plugin

# 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 $(find . -name "*.java" -exec grep -l "org\.codehaus\.doxia\." {} \;); 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 '{}' \;

%patch1 -b .sav1
%patch3 -b .sav3
%patch4 -b .sav4
%patch5 -b .sav5
%if %{with_maven}
%patch2 -b .sav2
%else
# omit calling modello-maven-plugin
# which isn't yet available on bootstrap
# generate models using modelloCli instead
# modified module poms are:
#       maven-model
#       maven-plugin-parameter-documenter
#       maven-profile
#       maven-repository-metadata
#       maven-repository-metadata
#       maven-settings
#       maven-plugin-registry
#       maven-plugin-descriptor
#       maven-plugin-tools/maven-plugin-tools-model/
#%patch8 -b .sav8
# no maven plugins available at all
#%patch9 -b .sav9
#%patch10 -b .sav10
%patch11 -b .sav11
#%patch12 -b .sav12
%patch14 -b .sav14
%patch15 -b .sav15
%patch16 -b .sav16
%patch17 -b .sav17
%patch18 -b .sav18
%patch19 -b .sav19
%patch20 -b .sav20
%patch21 -b .sav21
%patch22 -b .sav22
%patch23 -b .sav23
%patch24 -b .sav24
%patch25 -b .sav25
%patch26 -b .sav26
%patch27 -b .sav27
%patch28 -b .sav28
#%patch32 -b .sav32
%endif
%patch29 -b .sav29
%patch30 -b .sav30
%patch31 -b .sav31
%patch33 -b .sav33
%patch34 -b .sav34
%patch35 -b .sav35
%patch36 -b .sav36
%patch37 -b .sav37
%patch38 -b .sav38


# 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 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 %{without_maven}
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 %{without_maven}
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

mkdir -p m2_repo/repository/org.apache.maven.plugins/
ln -sf $(pwd)/m2_home_local/repository/org/apache/maven/plugins/maven-invoker-plugin/1.1-SNAPSHOT/maven-invoker-plugin-1.1-SNAPSHOT.jar \
     m2_repo/repository/org.apache.maven.plugins/maven-invoker-plugin.jar
ln -sf $(pwd)/m2_home_local/repository/org/apache/maven/plugins/maven-invoker-plugin/1.1-SNAPSHOT/maven-invoker-plugin-1.1-SNAPSHOT.pom \
     m2_repo/repository/org.apache.maven.plugins/maven-invoker-plugin.pom

mkdir -p m2_repo/repository/ant/
ln -sf $(build-classpath ant/ant-junit) m2_repo/repository/ant/ant-junit.jar
ln -sf $(build-classpath ant/ant-nodeps) m2_repo/repository/ant/ant-nodeps.jar

%build
[ -z "$JAVA_HOME" ] && JAVA_HOME=%{_jvmdir}/java
export JAVA_HOME

mkdir -p maven2-plugins/maven-assembly-plugin/target/generated-resources/plexus/META-INF/plexus/
cp maven2-plugins/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml \
  maven2-plugins/maven-assembly-plugin/target/generated-resources/plexus/META-INF/plexus/components.xml

# 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}

export MAVEN_REPO_LOCAL=`pwd`/%{repo_dir}

%if %{without_maven}
# now generate plugin models from command line modello
export CLASSPATH=$(build-classpath \
classworlds \
modello/core \
modello/plugin-xdoc \
modello/plugin-xml \
modello/plugin-xpp3 \
modello/plugin-xsd \
plexus/classworlds \
plexus/containers-component-api \
plexus/containers-container-default \
plexus/utils \
)
# modello for maven-model
pushd maven2/maven-model
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven.mdo xpp3-writer src/main/java 4.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven.mdo java src/main/java 4.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven.mdo xpp3-reader src/main/java 4.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven.mdo xsd src/main/java 4.0.0 false
popd
# modello for maven-settings
pushd maven2/maven-settings
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/settings.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/settings.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/settings.mdo xpp3-reader src/main/java 1.0.0 false
popd
# modello for maven-repository-metadata
pushd maven2/maven-repository-metadata
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/metadata.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/metadata.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/metadata.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/metadata.mdo xsd src/main/java 1.0.0 false
popd
# modello for maven-profile
pushd maven2/maven-profile
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli profiles.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli profiles.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli profiles.mdo xpp3-reader src/main/java 1.0.0 false
popd
# modello for maven-plugin-parameter-documenter
pushd maven2/maven-plugin-parameter-documenter
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/paramdoc.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/paramdoc.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/paramdoc.mdo xpp3-reader src/main/java 1.0.0 false
popd
# modello for maven-plugin-registry
pushd maven2/maven-plugin-registry
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli plugin-registry.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli plugin-registry.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli plugin-registry.mdo xpp3-reader src/main/java 1.0.0 false
popd
# modello for maven-plugin-descriptor
pushd maven2/maven-plugin-descriptor
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/lifecycle.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/lifecycle.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/lifecycle.mdo xpp3-reader src/main/java 1.0.0 false
popd
# modello for maven-javadoc-plugin
pushd maven2-plugins/maven-javadoc-plugin
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/javadocOptions.mdo java src/main/java 1.0.0 false
popd
# modello for maven-assembly-plugin
pushd maven2-plugins/maven-assembly-plugin
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/descriptor.mdo xpp3-reader src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/descriptor.mdo xpp3-writer src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/descriptor.mdo java src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/descriptor.mdo xsd src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/descriptor.mdo xdoc src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/component.mdo xpp3-reader src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/component.mdo xpp3-writer src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/component.mdo java src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/component.mdo xsd src/main/java 1.1.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/component.mdo xdoc src/main/java 1.1.0 false
popd
# modello for maven-verifier-plugin
pushd maven2-plugins/maven-verifier-plugin
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/verifications.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/verifications.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/verifications.mdo java src/main/java 1.0.0 false
popd
# modello for maven-remote-resources-plugin
pushd maven2-plugins/maven-remote-resources-plugin
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/supplemental-model.mdo xdoc src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/supplemental-model.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/remote-resources.mdo xdoc src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/remote-resources.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/remote-resources.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/remote-resources.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/remote-resources.mdo java src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/supplemental-model.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/supplemental-model.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/supplemental-model.mdo java src/main/java 1.0.0 false
popd

unset CLASSPATH

# Build maven2

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.skip=true -Dmaven.test.failure.ignore=true"
#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}

mkdir -p m2_home_local/repository/org/apache/maven/bootstrap/bootstrap-mini/2.0.8-SNAPSHOT
cp m2_repo/repository/JPP/maven2/default_poms/JPP.maven2-bootstrap-mini.pom \
m2_home_local/repository/org/apache/maven/bootstrap/bootstrap-mini/2.0.8-SNAPSHOT/bootstrap-mini-2.0.8-SNAPSHOT.pom

mkdir -p m2_repo/repository/easymock
ln -sf $(build-classpath easymock-java5) m2_repo/repository/easymock/easymock.jar

mkdir -p m2_repo/repository/JPP/maven2/plugins/

# will need plugins clean, install, resources, compiler, jar, assembly


# maven-clean-plugin

pushd maven2-plugins/maven-clean-plugin >& /dev/null
cp %{SOURCE29} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-clean-plugin/
cp %{SOURCE30} target/classes/META-INF/maven/plugin.xml
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-clean-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-clean-plugin/pom.properties <<EOT
version=2.2-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-clean-plugin
EOT
export CLASSPATH=$(build-classpath \
maven2/plugin-api \
maven-shared/file-management \
plexus/container-default \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
unset CLASSPATH
popd
cp maven2-plugins/maven-clean-plugin/target/maven-clean-plugin-2.2-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/clean-plugin.jar
cp maven2-plugins/maven-clean-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-clean-plugin.pom

# maven-install-plugin

pushd maven2-plugins/maven-install-plugin >& /dev/null
cp %{SOURCE27} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-install-plugin/
cp %{SOURCE28} target/classes/META-INF/maven/plugin.xml
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-install-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-install-plugin/pom.properties <<EOT
version=2.3-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-install-plugin
EOT
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/artifact-manager \
maven2/model \
maven2/plugin-api \
maven2/project \
maven-wagon/provider-api \
plexus/container-default \
plexus/digest \
plexus/utils \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
unset CLASSPATH
popd
cp maven2-plugins/maven-install-plugin/target/maven-install-plugin-2.3-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/install-plugin.jar
cp maven2-plugins/maven-install-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-install-plugin.pom

# maven-resources-plugin

pushd maven2-plugins/maven-resources-plugin
cp %{SOURCE19} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-resources-plugin/
cp %{SOURCE20} target/classes/META-INF/maven/plugin.xml
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-resources-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-resources-plugin/pom.properties <<EOT
version=2.3-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-resources-plugin
EOT
export CLASSPATH=$(build-classpath \
maven2/model \
maven2/plugin-api \
maven2/project \
plexus/utils \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
unset CLASSPATH
popd
cp maven2-plugins/maven-resources-plugin/target/maven-resources-plugin-2.3-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/resources-plugin.jar
cp maven2-plugins/maven-resources-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-resources-plugin.pom

# maven-compiler-plugin

pushd maven2-plugins/maven-compiler-plugin
cp %{SOURCE21} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-compiler-plugin/
cp %{SOURCE22} target/classes/META-INF/maven/plugin.xml
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-compiler-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-compiler-plugin/pom.properties <<EOT
version=2.1-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-compiler-plugin
EOT
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/plugin-api \
plexus/compiler-api \
plexus/compiler-manager \
plexus/utils \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
unset CLASSPATH
popd
cp maven2-plugins/maven-compiler-plugin/target/maven-compiler-plugin-2.1-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/compiler-plugin.jar
cp maven2-plugins/maven-compiler-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-compiler-plugin.pom

# maven-jar-plugin

pushd maven2-plugins/maven-jar-plugin
cp %{SOURCE25} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-jar-plugin/
cp %{SOURCE26} target/classes/META-INF/maven/plugin.xml
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-jar-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-jar-plugin/pom.properties <<EOT
version=2.2-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-jar-plugin
EOT
export CLASSPATH=$(build-classpath \
commons-lang \
maven2/artifact \
maven2/plugin-api \
maven2/project \
maven-shared/archiver \
plexus/archiver \
plexus/container-default \
plexus/utils \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
popd
cp maven2-plugins/maven-jar-plugin/target/maven-jar-plugin-2.2-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/jar-plugin.jar
cp maven2-plugins/maven-jar-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-jar-plugin.pom

# maven-assembly-plugin

pushd maven2-plugins/maven-assembly-plugin
cp %{SOURCE33} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-assembly-plugin/
cp %{SOURCE34} target/classes/META-INF/maven/plugin.xml
mkdir -p target/classes/META-INF/plexus
cp %{SOURCE35} target/classes/META-INF/plexus/components.xml

cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-assembly-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-assembly-plugin/pom.properties <<EOT
version=2.2-beta-1-SNAPSHOT
groupId=org.apache.maven.plugins
artifactId=maven-assembly-plugin
EOT
#cp -pr src/main/resources/* target/classes/
export CLASSPATH=$(build-classpath \
aspectjrt \
easymock-java5 \
jdom \
jaxen \
junit \
plexus/archiver \
plexus/active-collections \
classworlds \
plexus/container-default \
plexus/io \
plexus/utils \
maven2/artifact \
maven2/model \
maven2/plugin-api \
maven2/project \
maven-shared/archiver \
maven-shared/common-artifact-filters \
maven-shared/file-management \
maven-shared/repository-builder \
maven-shared/io \
maven-shared/plugin-testing-tools \
maven-shared/test-tools \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
popd
cp maven2-plugins/maven-assembly-plugin/target/maven-assembly-plugin-2.2-beta-1-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/assembly-plugin.jar
cp maven2-plugins/maven-assembly-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-assembly-plugin.pom

# maven-plugin-plugin

pushd maven2-plugins/maven-plugin-plugin
cp %{SOURCE36} build.xml
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-plugin-plugin/
cp %{SOURCE37} target/classes/META-INF/maven/plugin.xml

cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-plugin-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-plugin-plugin/pom.properties <<EOT
version=2.3
groupId=org.apache.maven.plugins
artifactId=maven-plugin-plugin
EOT
cp -pr src/main/resources/* target/classes/
export CLASSPATH=$(build-classpath \
maven2/artifact \
maven2/artifact-manager \
maven2/plugin-api \
maven2/plugin-descriptor \
maven2/plugin-registry \
maven2/project \
maven2/reporting-api \
maven2/repository-metadata \
maven-doxia/sink-api \
maven-doxia/site-renderer \
maven-shared/plugin-tools-api \
maven-shared/reporting-impl \
plexus/container-default \
plexus/utils \
)
ant -Dant.build.javac.source=1.4 -Dant.build.javac.target=1.4 -Dbuild.sysclasspath=only jar
popd
cp maven2-plugins/maven-plugin-plugin/target/maven-plugin-plugin-2.4-SNAPSHOT.jar \
  m2_repo/repository/JPP/maven2/plugins/plugin-plugin.jar
cp maven2-plugins/maven-plugin-plugin/pom.xml \
  m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-plugin-plugin.pom


PLUGINS_DIR=$(pwd)/maven2-plugins
pushd maven2 >& /dev/null

mkdir bootstrap/lib
ln -s $(build-classpath jdom) bootstrap/lib/jdom.jar
export CLASSPATH=`pwd`/bootstrap/lib/jdom.jar
export JDOMCLASS=`pwd`/bootstrap/lib/jdom.jar
./bootstrap.sh --prefix=`pwd`/home  --settings=%{maven_settings_file}
#./bootstrap.sh --prefix=`pwd`/home  --settings=%{maven_settings_file} --build-plugins --plugins-directory=$PLUGINS_DIR
unset CLASSPATH

popd >& /dev/null

%if %{without_maven}
mkdir -p maven2/home/maven-%{version}
cp -pr maven2/bootstrap/target/installation/* maven2/home/maven-%{version}
%endif

# Update the classworlds jar name in the mvn script

sed -i -e s:"/boot/classworlds-\*.jar":/boot/classworlds\*.jar:g $M2_HOME/bin/mvn


mkdir -p m2_repo/repository/javax.jms/
ln -sf $(build-classpath jms_1_1_api) m2_repo/repository/javax.jms/jms.jar
mkdir -p m2_repo/repository/xpp3/
ln -sf $(build-classpath xpp3-minimal) m2_repo/repository/xpp3/xpp3_min.jar

# Build plugins

pushd maven2-plugins >& /dev/null

mkdir -p maven-assembly-plugin/target/generated-resources/plexus/META-INF/plexus/
echo '<component-set/>' > maven-assembly-plugin/target/generated-resources/plexus/META-INF/plexus/components.xml


# avalon hack

$M2_HOME/bin/mvn -s %{maven_settings_file} $MAVEN_OPTS \
     install:install-file -DgroupId=avalon-framework -DartifactId=avalon-framework \
     -Dversion=4.1.3 -Dpackaging=jar -Dfile=$(build-classpath avalon-framework)

# Build everything

$M2_HOME/bin/mvn -e --batch-mode -s %{maven_settings_file} $MAVEN_OPTS -npu --no-plugin-registry --fail-at-end install

popd >& /dev/null

%else
pushd maven2
mvn-jpp -Dmaven.compile.target=1.4 -Dmaven.javadoc.source=1.4  -e \
       -s %{maven_settings_file} \
       -Dmaven2.jpp.depmap.file=%{SOURCE18} \
       -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
       -Dmaven.test.failure.ignore=true \
       install
popd
pushd maven2-plugins
pushd maven-plugin-plugin
mvn-jpp -Dmaven.compile.target=1.4 -Dmaven.javadoc.source=1.4  -e \
       -npu --no-plugin-registry \
       -fn \
       -s %{maven_settings_file} \
       -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
       install
popd
mvn-jpp -Dmaven.compile.target=1.4 -Dmaven.javadoc.source=1.4  -e \
       -s %{maven_settings_file} \
       -Dmaven2.jpp.depmap.file=%{SOURCE18} \
       -Dmaven.test.failure.ignore=true \
       -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
       install
popd
#       -npu --no-plugin-registry \

%endif
# 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

cp maven2-plugins/maven-javadoc-plugin/pom.xml \
m2_repo/repository/JPP/maven2/default_poms/JPP.maven2.plugins-javadoc-plugin.pom

%if %{with_maven}
MVN_CMD=mvn
%else
MVN_CMD=$M2_HOME/bin/mvn
%endif
# Build docs
(cd maven2
$MVN_CMD -e -s %{maven_settings_file} -Daggregate=true $MAVEN_OPTS javadoc:javadoc
)
(cd maven2-plugins
$MVN_CMD -e -s %{maven_settings_file} -Daggregate=true $MAVEN_OPTS javadoc:javadoc
)

%install

# Repository

install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository

# /usr/bin/mvn

install -dm 755 $RPM_BUILD_ROOT%{_bindir}
install -m 755 %{SOURCE5} $RPM_BUILD_ROOT%{_bindir}/mvn
install -m 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
cp -p %{name}/%{base_name}-core/src/bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}/bin

# Update the classworlds jar name in the mvn script

sed -i -e s:"/boot/classworlds-\*.jar":/boot/classworlds\*.jar:g $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/mvn

install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib

#install -m 655 %{name}/maven-core/target/maven-core-%{version}.jar \

#        $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/maven-core-uber-%{version}.jar

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/maven-reporting-api \
   maven-repository-metadata \
   maven-settings; do

   blib=$(basename $library)
%if %{with_maven}
       install -m 644 %{name}/$library/target/$blib-%{version}.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$blib-%{version}.jar
%else
       install -m 644 %{name}/home/%{base_name}-%{version}/lib/$blib.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$blib-%{version}.jar
%endif
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

for project in maven-artifact-test; do
       installname=`echo $project | sed -e s:^maven-::g`
       install -m 644 %{name}/$project/target/$project-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$installname-%{version}.jar
done

install -m 644 %{name}/maven-script/maven-script-ant/target/maven-script-ant-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-ant-%{version}.jar
install -m 644 %{name}/maven-script/maven-script-beanshell/target/maven-script-beanshell-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/script-beanshell-%{version}.jar


# model-v3

install -m 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}/boot

install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
%if ! %{with_maven}
install -m 644 %{name}/home/%{base_name}-%{version}/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
%else
install -m 644 %{name}/maven-core/src/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
%endif

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-surefire-plugin" -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

for m in $(find BUILD/maven2/maven2 -type d -name "maven-*" | grep -v /target/ | grep -v /test/ | grep -v /home/); do mname=$(basename $m); echo $mname; find BUILD/maven2/m2_home_local/ -name "$mname-2.0*.pom"; done

for project in \
       maven-artifact \
       maven-artifact-manager \
       maven-artifact-test \
       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-repository-metadata \
       maven-script \
       maven-script-ant \
       maven-script-beanshell \
       maven-settings \
       ; do

       pom=$(find m2_home_local/repository/org/apache/maven -name "$project-2.0*.pom" | sort | tail -1)
       artifactname=`echo $project | sed -e s:^maven-::g`
       cp $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
pom=$(find m2_home_local/repository/org/apache/maven -name "maven-2.0*.pom" | sort | tail -1)
cp $pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-maven.pom
%add_to_maven_depmap org.apache.maven maven %{version} JPP/%{name} maven

pom=$(find m2_home_local/repository/org/apache/maven/reporting -name "maven-reporting-2.0*.pom" | sort | tail -1)
cp $pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-reporting.pom
%add_to_maven_depmap org.apache.maven.reporting maven-reporting %{version} JPP/%{name} reporting

pom=$(find m2_home_local/repository/org/apache/maven/reporting -name "maven-reporting-api-2.0*.pom" | sort | tail -1)
cp $pom $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-reporting-api.pom
%add_to_maven_depmap org.apache.maven.reporting maven-reporting-api %{version} JPP/%{name} reporting-api

pushd %{repo_dir}/org/apache/maven/plugins
   for plugin in `find -maxdepth 1 -type d -not -name "maven-surefire-plugin" -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`
       latest_pom=`ls -tdF $plugin/*/*.pom | grep pom$ | head -n 1`

       artifactname=`echo $plugin | sed -e s:^maven-::g`
       latest_ver_num=`basename $latest_pom | sed -e s:^$plugin-::g`
       cp $latest_ver/*$latest_ver_num $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


# 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
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/maven
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/maven
)

(cd maven2-plugins
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/maven-plugins
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/maven-plugins
)

# 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}
%if ! %{with_maven}
cp -p %{name}/home/%{base_name}-%{version}/*.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%else
cp -p maven2/maven-core/*.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%endif
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}/boot classworlds

find %{_datadir}/%{name}/lib -type l -exec rm -f {} \;
build-jar-repository -s -p %{_datadir}/%{name}/lib \
               commons-cli10 \
               commons-lang \
               commons-logging \
               jdom \
               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 \
               plexus/container-default \
               plexus/utils \
               xalan-j2 \
               xalan-j2-serializer \

:

%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/*
rm -rf %{_datadir}/%{name}/boot/*

%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
:

%files -n %{name}
%{_bindir}/mvn
%{_bindir}/mvn-jpp
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/bin
%{_datadir}/%{name}/boot
%{_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-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-changelog
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/changelog-plugin.jar


%files plugin-changes
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/changes-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-doap
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/doap-plugin.jar


%files plugin-docck
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/docck-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-enforcer
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/enforcer-plugin.jar


%files plugin-gpg
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/gpg-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-invoker
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/invoker-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-one
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/one-plugin.jar


%files plugin-patch
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/patch-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-remote-resources
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/remote-resources-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-stage
%dir %{_datadir}/%{name}/plugins
%{_datadir}/%{name}/plugins/stage-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

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin