Репозитории ALT
S: | 1.10.0-alt1_9jpp11 |
5.1: | 1.0-alt2_2jpp5 |
4.1: | 1.0-alt1_0.b3.2jpp1.7 |
4.0: | 1.0-alt1_0.b3.2jpp1.7 |
Группа :: Разработка/Java
Пакет: maven-scm
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Packager: Igor Vlasenko <viy at altlinux.ru>
BuildRequires: /proc
BuildRequires: jpackage-compat
%define version 1.0
%define name maven-scm
# Copyright (c) 2000-2008, 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 gcj_support 0
# If you don't want to build with maven, and use straight ant instead,
# give rpmbuild option '--without maven'
%define with_maven %{!?_without_maven:1}%{?_without_maven:0}
%define without_maven %{?_without_maven:1}%{!?_without_maven:0}
%define maven_settings_file %{_builddir}/%{name}/settings.xml
%define namedversion 1.0
Name: maven-scm
Version: 1.0
Release: alt2_2jpp5
Epoch: 0
Summary: Maven SCM
License: Apache Software License
Group: Development/Java
URL: http://maven.apache.org/scm
Source0: %{name}-%{version}.tar.gz
# svn export http://svn.apache.org/repos/asf/maven/scm/tags/maven-scm-1.0/
Source1: %{name}-jpp-depmap.xml
Source2: %{name}-settings.xml
Source3: maven-scm-1.0-autogenerated-files.tar.gz
Patch0: %{name}-api-pom.patch
Patch1: %{name}-SynergyCCMTest.patch
%if ! %{gcj_support}
BuildArch: noarch
%endif
BuildRequires: jpackage-utils >= 0:1.7.4
BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-junit
BuildRequires: junit >= 0:3.8.2
BuildRequires: jmock >= 0:1.2.0
%if %{with_maven}
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven2-plugin-ant
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-plugin
BuildRequires: maven2-plugin-project-info-reports
BuildRequires: maven2-plugin-resources
BuildRequires: maven-surefire-plugin
BuildRequires: maven-surefire-junit
BuildRequires: maven2-common-poms >= 0:1.0-3
BuildRequires: maven-release
BuildRequires: maven-wagon
BuildRequires: maven-plugin-modello >= 0:1.0-0.a15
BuildRequires: plexus-maven-plugin >= 0:1.3.5
%endif
BuildRequires: ganymed-ssh2
BuildRequires: geronimo-jaf-1.0.2-api
BuildRequires: geronimo-jta-1.0.1B-api
BuildRequires: javacvs-lib >= 0:5.0
BuildRequires: modello >= 0:1.0-0.a15
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven-shared-plugin-testing-harness
BuildRequires: plexus-container-default
BuildRequires: plexus-utils >= 0:1.4.8
BuildRequires: regexp
Requires: ganymed-ssh2
Requires: javacvs-lib >= 0:5.0
Requires: maven2 >= 0:2.0.7
Requires: plexus-container-default
Requires: plexus-utils >= 0:1.4.8
Requires: regexp
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
Requires(post): java-gcj-compat
Requires(postun): java-gcj-compat
%endif
Requires(post): jpackage-utils >= 0:1.7.4
Requires(postun): jpackage-utils >= 0:1.7.4
BuildRequires: modello-maven-plugin saxpath
%description
Maven SCM supports Maven 2.x plugins (e.g. maven-release-plugin)
and other tools (e.g. Continuum) by providing them with a common
API for doing SCM operations. You can look at the list of SCM's
for more information on using Maven SCM with your favorite SCM
tool.
%package test
Summary: Tests for %{name}
Group: Development/Java
Requires: maven-scm = %{epoch}:%{version}-%{release}
Requires: junit >= 3.8.2
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
Requires(post): java-gcj-compat
Requires(postun): java-gcj-compat
%endif
%description test
Tests for %{name}.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation
Requires(pre): /bin/ls
%description javadoc
Javadoc for %{name}.
%prep
%setup -q
cp %{SOURCE2} settings.xml
%if %{without_maven}
gzip -dc %{SOURCE3} | tar xf -
%endif
%patch0 -b .sav0
%patch1 -b .sav1
%build
export JAVA_HOME=%{_jvmdir}/java-1.5.0
%if %{with_maven}
sed -i -e "s|<url>__INTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" settings.xml
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
#sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
#sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
#sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
#sed -i -e "s|<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/maven2/plugins</url>|g" settings.xml
#sed -i -e "s|<url>__ECLIPSEDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/eclipse/plugins</url>|g" settings.xml
export MAVEN_REPO_LOCAL=$(pwd)/m2_repo/repository
mkdir -p $MAVEN_REPO_LOCAL/JPP/maven-scm
# in oder to build it with maven, whithout having it installed already
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/test.jar
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/provider-svntest.jar
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/provider-cvstest.jar
mkdir external_repo
ln -s %{_javadir} external_repo/JPP
mvn-jpp \
-e \
-s $(pwd)/settings.xml \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven.test.failure.ignore=true \
-Dmaven2.jpp.depmap.file=%{SOURCE1} \
ant:ant install javadoc:javadoc
%else
export CLASSPATH=$(build-classpath \
modello/core \
modello/plugin-xml \
modello/plugin-xpp3 \
modello/plugin-xsd \
plexus/classworlds \
plexus/containers-component-api \
plexus/containers-container-default \
plexus/utils \
)
pushd maven-scm-providers/maven-scm-provider-vss
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-clearcase
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-starteam
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-local
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo java src/main/java 1.0.0 false
popd
# Maven SCM
# Maven SCM API
export CLASSPATH=$(build-classpath \
ant/ant-junit \
classworlds \
ganymed-ssh2 \
javacvs/cvslib \
junit \
plexus/container-default \
plexus/utils \
regexp \
)
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-scm-api
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-api/target/maven-scm-api-%{version}.jar
# Maven SCM Managers
# Maven SCM Manager for Plexus
pushd maven-scm-managers/maven-scm-manager-plexus
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-managers/maven-scm-manager-plexus/target/maven-scm-manager-plexus-%{version}.jar
# Maven SCM Test
pushd maven-scm-test
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-test/target/maven-scm-test-%{version}.jar
# Maven SCM Providers
# Maven SCM Visual Source Safe Provider
pushd maven-scm-providers/maven-scm-provider-vss
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-vss/target/maven-scm-provider-vss-%{version}.jar
# Maven SCM Perforce Provider
pushd maven-scm-providers/maven-scm-provider-perforce
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-perforce/target/maven-scm-provider-perforce-%{version}.jar
# Maven SCM Subversion Provider - Parent
# Maven SCM Subversion Provider - Common library
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/target/maven-scm-provider-svn-commons-%{version}.jar
# Maven SCM Subversion Provider TCK Tests
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/target/maven-scm-provider-svntest-%{version}.jar
# Maven SCM Subversion Provider - SVN Executable Impl.
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/target/maven-scm-provider-svnexe-%{version}.jar
# Maven SCM Clearcase Provider
pushd maven-scm-providers/maven-scm-provider-clearcase
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-clearcase/target/maven-scm-provider-clearcase-%{version}.jar
# Maven SCM Starteam Provider
pushd maven-scm-providers/maven-scm-provider-starteam
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-starteam/target/maven-scm-provider-starteam-%{version}.jar
# Maven SCM CVS Provider - Parent
# Maven SCM CVS Provider TCK tests
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/target/maven-scm-provider-cvstest-%{version}.jar
# Maven SCM CVS Provider - Common library
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/target/maven-scm-provider-cvs-commons-%{version}.jar
# Maven SCM CVS Provider - CVS Java Impl.
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/target/maven-scm-provider-cvsjava-%{version}.jar
# Maven SCM Synergy Provider
pushd maven-scm-providers/maven-scm-provider-synergy
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-synergy/target/maven-scm-provider-synergy-%{version}.jar
# Maven SCM Bazaar Provider
pushd maven-scm-providers/maven-scm-provider-bazaar
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-bazaar/target/maven-scm-provider-bazaar-%{version}.jar
# Maven SCM Local Provider
pushd maven-scm-providers/maven-scm-provider-local
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-local/target/maven-scm-provider-local-%{version}.jar
# Maven SCM CVS Provider - CVS Executable Impl.
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsexe
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsexe/target/maven-scm-provider-cvsexe-%{version}.jar
# Maven SCM Mercurial (Hg) Provider
pushd maven-scm-providers/maven-scm-provider-hg
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-hg/target/maven-scm-provider-hg-%{version}.jar
# Maven SCM Client
pushd maven-scm-client
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-client/target/maven-scm-client-%{version}.jar
# Maven SCM Plugin
CLASSPATH=$CLASSPATH:$(build-classpath \
commons-cli \
jdom \
jsch \
jtidy \
maven2/artifact \
maven2/artifact-manager \
maven2/core \
maven2/error-diagnostics \
maven2/model \
maven2/monitor \
maven2/plugin-api \
maven2/plugin-descriptor \
maven2/plugin-parameter-documenter \
maven2/plugin-registry \
maven2/profile \
maven2/project \
maven2/reporting-api \
maven2/repository-metadata \
maven2/settings \
maven-shared/plugin-testing-harness \
)
pushd maven-scm-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/pom.properties <<EOT
version=%{version}
groupId=org.apache.maven.plugins
artifactId=maven-scm-plugin
EOT
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
%endif
%install
# jars/poms
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/plugins
# remove test files, they are used for build time testing
#find -type f -name "*cvstest*" -exec rm -f '{}' \; -o -type f -name "*svntest*" -exec rm -f '{}' \;
for jar in `find . -type f -name "*.jar" | grep -v plugin | grep -E "target/.*.jar$"`; do
newname=`basename $jar | sed -e s:^maven-scm-::g`
install -pm 644 $jar \
$RPM_BUILD_ROOT%{_javadir}/%{name}/$newname
done
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{namedversion}*; do ln -sf ${jar} `echo $jar| sed "s|-%{namedversion}||g"`; done)
install -m 644 maven-scm-plugin/target/maven-scm-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/scm-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-scm-plugin %{version} JPP/maven2/plugins scm-plugin
install -m 644 maven-scm-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-scm-plugin.pom
#poms (exclude the svn/cvstest poms. They are unnecessary)
# ignore
# 1) poms in target/ (they are either copies, or temps)
# 2) poms in src/test/ (they are poms needed for tests only)
for i in `find . -name pom.xml | grep -v \\\./pom.xml | grep -v plugin | grep -v target | grep -v src/test`; do
artifactname=`basename \`dirname $i\``
jarname=`echo $artifactname | sed -e s:^maven-scm-::g`
cp $i $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.$artifactname.pom
%add_to_maven_depmap org.apache.maven.scm $artifactname %{namedversion} JPP/%{name} $jarname
done
cp pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-scm-scm.pom
%add_to_maven_depmap org.apache.maven.scm maven-scm %{namedversion} JPP/maven-scm scm
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
for docsdir in `find -name apidocs`; do
subdir=`echo $docsdir | awk -F / '{print $(NF-3)}' | sed -e s:^maven-scm-::g`
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/$subdir
cp -pr $docsdir/* \
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/$subdir
done
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif
%post javadoc
rm -f %{_javadocdir}/%{name}
ln -s %{name}-%{version} %{_javadocdir}/%{name}
%postun javadoc
if [ "$1" = "0" ]; then
rm -f %{_javadocdir}/%{name}
fi
%files
%dir %{_javadir}
%dir %{_javadir}/%{name}
%{_datadir}/maven2
%{_javadir}/%{name}/api*
%{_javadir}/%{name}/client*
%{_javadir}/%{name}/manager-plexus*
%{_javadir}/%{name}/provider-bazaar*
%{_javadir}/%{name}/provider-clearcase*
%{_javadir}/%{name}/provider-local*
%{_javadir}/%{name}/provider-perforce*
%{_javadir}/%{name}/provider-cvs-commons*
%{_javadir}/%{name}/provider-cvsexe*
%{_javadir}/%{name}/provider-svn-commons*
%{_javadir}/%{name}/provider-svnexe*
%{_javadir}/%{name}/provider-starteam*
%{_javadir}/%{name}/provider-vss*
%{_javadir}/%{name}/provider-cvsjava*
%{_javadir}/%{name}/provider-hg*
%{_javadir}/%{name}/provider-synergy*
%{_mavendepmapfragdir}
%if %{gcj_support}
%dir %attr(-,root,root) %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/api-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/client-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/manager-plexus-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/plugin-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-bazaar-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-clearcase-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvs-commons-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvsexe-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-local-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-perforce-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-starteam-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-svn-commons-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-svnexe-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-vss-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvsjava-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-hg-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-synergy-%{namedversion}.jar.*
%endif
%files test
%{_javadir}/%{name}/provider-cvstest*
%{_javadir}/%{name}/provider-svntest*
%{_javadir}/%{name}/test*
%if %{gcj_support}
%dir %attr(-,root,root) %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/provider-cvstest-1.0-beta-3.jar.*
%{_libdir}/gcj/%{name}/test-1.0-beta-3.jar.*
%{_libdir}/gcj/%{name}/provider-svntest-1.0-beta-3.jar.*
%endif
%files javadoc
%{_javadocdir}/%{name}-%{version}
%ghost %doc %{_javadocdir}/%{name}
%changelog
…
Полный changelog можно просмотреть здесь
BuildRequires: /proc
BuildRequires: jpackage-compat
%define version 1.0
%define name maven-scm
# Copyright (c) 2000-2008, 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 gcj_support 0
# If you don't want to build with maven, and use straight ant instead,
# give rpmbuild option '--without maven'
%define with_maven %{!?_without_maven:1}%{?_without_maven:0}
%define without_maven %{?_without_maven:1}%{!?_without_maven:0}
%define maven_settings_file %{_builddir}/%{name}/settings.xml
%define namedversion 1.0
Name: maven-scm
Version: 1.0
Release: alt2_2jpp5
Epoch: 0
Summary: Maven SCM
License: Apache Software License
Group: Development/Java
URL: http://maven.apache.org/scm
Source0: %{name}-%{version}.tar.gz
# svn export http://svn.apache.org/repos/asf/maven/scm/tags/maven-scm-1.0/
Source1: %{name}-jpp-depmap.xml
Source2: %{name}-settings.xml
Source3: maven-scm-1.0-autogenerated-files.tar.gz
Patch0: %{name}-api-pom.patch
Patch1: %{name}-SynergyCCMTest.patch
%if ! %{gcj_support}
BuildArch: noarch
%endif
BuildRequires: jpackage-utils >= 0:1.7.4
BuildRequires: ant >= 0:1.6.5
BuildRequires: ant-junit
BuildRequires: junit >= 0:3.8.2
BuildRequires: jmock >= 0:1.2.0
%if %{with_maven}
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven2-plugin-ant
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-plugin
BuildRequires: maven2-plugin-project-info-reports
BuildRequires: maven2-plugin-resources
BuildRequires: maven-surefire-plugin
BuildRequires: maven-surefire-junit
BuildRequires: maven2-common-poms >= 0:1.0-3
BuildRequires: maven-release
BuildRequires: maven-wagon
BuildRequires: maven-plugin-modello >= 0:1.0-0.a15
BuildRequires: plexus-maven-plugin >= 0:1.3.5
%endif
BuildRequires: ganymed-ssh2
BuildRequires: geronimo-jaf-1.0.2-api
BuildRequires: geronimo-jta-1.0.1B-api
BuildRequires: javacvs-lib >= 0:5.0
BuildRequires: modello >= 0:1.0-0.a15
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven-shared-plugin-testing-harness
BuildRequires: plexus-container-default
BuildRequires: plexus-utils >= 0:1.4.8
BuildRequires: regexp
Requires: ganymed-ssh2
Requires: javacvs-lib >= 0:5.0
Requires: maven2 >= 0:2.0.7
Requires: plexus-container-default
Requires: plexus-utils >= 0:1.4.8
Requires: regexp
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
Requires(post): java-gcj-compat
Requires(postun): java-gcj-compat
%endif
Requires(post): jpackage-utils >= 0:1.7.4
Requires(postun): jpackage-utils >= 0:1.7.4
BuildRequires: modello-maven-plugin saxpath
%description
Maven SCM supports Maven 2.x plugins (e.g. maven-release-plugin)
and other tools (e.g. Continuum) by providing them with a common
API for doing SCM operations. You can look at the list of SCM's
for more information on using Maven SCM with your favorite SCM
tool.
%package test
Summary: Tests for %{name}
Group: Development/Java
Requires: maven-scm = %{epoch}:%{version}-%{release}
Requires: junit >= 3.8.2
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
Requires(post): java-gcj-compat
Requires(postun): java-gcj-compat
%endif
%description test
Tests for %{name}.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation
Requires(pre): /bin/ls
%description javadoc
Javadoc for %{name}.
%prep
%setup -q
cp %{SOURCE2} settings.xml
%if %{without_maven}
gzip -dc %{SOURCE3} | tar xf -
%endif
%patch0 -b .sav0
%patch1 -b .sav1
%build
export JAVA_HOME=%{_jvmdir}/java-1.5.0
%if %{with_maven}
sed -i -e "s|<url>__INTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" settings.xml
sed -i -e "s|<url>__EXTERNAL_REPO_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
#sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
#sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
#sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
#sed -i -e "s|<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/maven2/plugins</url>|g" settings.xml
#sed -i -e "s|<url>__ECLIPSEDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/eclipse/plugins</url>|g" settings.xml
export MAVEN_REPO_LOCAL=$(pwd)/m2_repo/repository
mkdir -p $MAVEN_REPO_LOCAL/JPP/maven-scm
# in oder to build it with maven, whithout having it installed already
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/test.jar
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/provider-svntest.jar
cp $(build-classpath maven2/empty-dep) $MAVEN_REPO_LOCAL/JPP/maven-scm/provider-cvstest.jar
mkdir external_repo
ln -s %{_javadir} external_repo/JPP
mvn-jpp \
-e \
-s $(pwd)/settings.xml \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven.test.failure.ignore=true \
-Dmaven2.jpp.depmap.file=%{SOURCE1} \
ant:ant install javadoc:javadoc
%else
export CLASSPATH=$(build-classpath \
modello/core \
modello/plugin-xml \
modello/plugin-xpp3 \
modello/plugin-xsd \
plexus/classworlds \
plexus/containers-component-api \
plexus/containers-container-default \
plexus/utils \
)
pushd maven-scm-providers/maven-scm-provider-vss
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/vss-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/svn-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-clearcase
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/clearcase-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-starteam
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/starteam-settings.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-provider-local
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xpp3-writer src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/maven-scm-local-metadata.mdo java src/main/java 1.0.0 false
popd
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo xpp3-reader src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo xsd src/main/java 1.0.0 false
$JAVA_HOME/bin/java org.codehaus.modello.ModelloCli src/main/mdo/cvs-settings.mdo java src/main/java 1.0.0 false
popd
# Maven SCM
# Maven SCM API
export CLASSPATH=$(build-classpath \
ant/ant-junit \
classworlds \
ganymed-ssh2 \
javacvs/cvslib \
junit \
plexus/container-default \
plexus/utils \
regexp \
)
CLASSPATH=$CLASSPATH:target/classes:target/test-classes
pushd maven-scm-api
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-api/target/maven-scm-api-%{version}.jar
# Maven SCM Managers
# Maven SCM Manager for Plexus
pushd maven-scm-managers/maven-scm-manager-plexus
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-managers/maven-scm-manager-plexus/target/maven-scm-manager-plexus-%{version}.jar
# Maven SCM Test
pushd maven-scm-test
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-test/target/maven-scm-test-%{version}.jar
# Maven SCM Providers
# Maven SCM Visual Source Safe Provider
pushd maven-scm-providers/maven-scm-provider-vss
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-vss/target/maven-scm-provider-vss-%{version}.jar
# Maven SCM Perforce Provider
pushd maven-scm-providers/maven-scm-provider-perforce
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-perforce/target/maven-scm-provider-perforce-%{version}.jar
# Maven SCM Subversion Provider - Parent
# Maven SCM Subversion Provider - Common library
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/target/maven-scm-provider-svn-commons-%{version}.jar
# Maven SCM Subversion Provider TCK Tests
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svntest/target/maven-scm-provider-svntest-%{version}.jar
# Maven SCM Subversion Provider - SVN Executable Impl.
pushd maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/target/maven-scm-provider-svnexe-%{version}.jar
# Maven SCM Clearcase Provider
pushd maven-scm-providers/maven-scm-provider-clearcase
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-clearcase/target/maven-scm-provider-clearcase-%{version}.jar
# Maven SCM Starteam Provider
pushd maven-scm-providers/maven-scm-provider-starteam
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-starteam/target/maven-scm-provider-starteam-%{version}.jar
# Maven SCM CVS Provider - Parent
# Maven SCM CVS Provider TCK tests
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/target/maven-scm-provider-cvstest-%{version}.jar
# Maven SCM CVS Provider - Common library
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/target/maven-scm-provider-cvs-commons-%{version}.jar
# Maven SCM CVS Provider - CVS Java Impl.
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/target/maven-scm-provider-cvsjava-%{version}.jar
# Maven SCM Synergy Provider
pushd maven-scm-providers/maven-scm-provider-synergy
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-synergy/target/maven-scm-provider-synergy-%{version}.jar
# Maven SCM Bazaar Provider
pushd maven-scm-providers/maven-scm-provider-bazaar
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-bazaar/target/maven-scm-provider-bazaar-%{version}.jar
# Maven SCM Local Provider
pushd maven-scm-providers/maven-scm-provider-local
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-local/target/maven-scm-provider-local-%{version}.jar
# Maven SCM CVS Provider - CVS Executable Impl.
pushd maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsexe
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsexe/target/maven-scm-provider-cvsexe-%{version}.jar
# Maven SCM Mercurial (Hg) Provider
pushd maven-scm-providers/maven-scm-provider-hg
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-providers/maven-scm-provider-hg/target/maven-scm-provider-hg-%{version}.jar
# Maven SCM Client
pushd maven-scm-client
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
CLASSPATH=$CLASSPATH:$(pwd)/maven-scm-client/target/maven-scm-client-%{version}.jar
# Maven SCM Plugin
CLASSPATH=$CLASSPATH:$(build-classpath \
commons-cli \
jdom \
jsch \
jtidy \
maven2/artifact \
maven2/artifact-manager \
maven2/core \
maven2/error-diagnostics \
maven2/model \
maven2/monitor \
maven2/plugin-api \
maven2/plugin-descriptor \
maven2/plugin-parameter-documenter \
maven2/plugin-registry \
maven2/profile \
maven2/project \
maven2/reporting-api \
maven2/repository-metadata \
maven2/settings \
maven-shared/plugin-testing-harness \
)
pushd maven-scm-plugin
mkdir -p target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/
cp pom.xml target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/
cat > target/classes/META-INF/maven/org.apache.maven.plugins/maven-scm-plugin/pom.properties <<EOT
version=%{version}
groupId=org.apache.maven.plugins
artifactId=maven-scm-plugin
EOT
ant -Dmaven.settings.offline=true -Dbuild.sysclasspath=only jar javadoc
popd
%endif
%install
# jars/poms
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/plugins
# remove test files, they are used for build time testing
#find -type f -name "*cvstest*" -exec rm -f '{}' \; -o -type f -name "*svntest*" -exec rm -f '{}' \;
for jar in `find . -type f -name "*.jar" | grep -v plugin | grep -E "target/.*.jar$"`; do
newname=`basename $jar | sed -e s:^maven-scm-::g`
install -pm 644 $jar \
$RPM_BUILD_ROOT%{_javadir}/%{name}/$newname
done
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{namedversion}*; do ln -sf ${jar} `echo $jar| sed "s|-%{namedversion}||g"`; done)
install -m 644 maven-scm-plugin/target/maven-scm-plugin-%{version}.jar \
$RPM_BUILD_ROOT%{_datadir}/maven2/plugins/scm-plugin-%{version}.jar
%add_to_maven_depmap org.apache.maven.plugins maven-scm-plugin %{version} JPP/maven2/plugins scm-plugin
install -m 644 maven-scm-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven2.plugins-scm-plugin.pom
#poms (exclude the svn/cvstest poms. They are unnecessary)
# ignore
# 1) poms in target/ (they are either copies, or temps)
# 2) poms in src/test/ (they are poms needed for tests only)
for i in `find . -name pom.xml | grep -v \\\./pom.xml | grep -v plugin | grep -v target | grep -v src/test`; do
artifactname=`basename \`dirname $i\``
jarname=`echo $artifactname | sed -e s:^maven-scm-::g`
cp $i $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.$artifactname.pom
%add_to_maven_depmap org.apache.maven.scm $artifactname %{namedversion} JPP/%{name} $jarname
done
cp pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.maven-scm-scm.pom
%add_to_maven_depmap org.apache.maven.scm maven-scm %{namedversion} JPP/maven-scm scm
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
for docsdir in `find -name apidocs`; do
subdir=`echo $docsdir | awk -F / '{print $(NF-3)}' | sed -e s:^maven-scm-::g`
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/$subdir
cp -pr $docsdir/* \
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}/$subdir
done
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif
%post javadoc
rm -f %{_javadocdir}/%{name}
ln -s %{name}-%{version} %{_javadocdir}/%{name}
%postun javadoc
if [ "$1" = "0" ]; then
rm -f %{_javadocdir}/%{name}
fi
%files
%dir %{_javadir}
%dir %{_javadir}/%{name}
%{_datadir}/maven2
%{_javadir}/%{name}/api*
%{_javadir}/%{name}/client*
%{_javadir}/%{name}/manager-plexus*
%{_javadir}/%{name}/provider-bazaar*
%{_javadir}/%{name}/provider-clearcase*
%{_javadir}/%{name}/provider-local*
%{_javadir}/%{name}/provider-perforce*
%{_javadir}/%{name}/provider-cvs-commons*
%{_javadir}/%{name}/provider-cvsexe*
%{_javadir}/%{name}/provider-svn-commons*
%{_javadir}/%{name}/provider-svnexe*
%{_javadir}/%{name}/provider-starteam*
%{_javadir}/%{name}/provider-vss*
%{_javadir}/%{name}/provider-cvsjava*
%{_javadir}/%{name}/provider-hg*
%{_javadir}/%{name}/provider-synergy*
%{_mavendepmapfragdir}
%if %{gcj_support}
%dir %attr(-,root,root) %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/api-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/client-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/manager-plexus-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/plugin-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-bazaar-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-clearcase-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvs-commons-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvsexe-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-local-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-perforce-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-starteam-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-svn-commons-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-svnexe-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-vss-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-cvsjava-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-hg-%{namedversion}.jar.*
%{_libdir}/gcj/%{name}/provider-synergy-%{namedversion}.jar.*
%endif
%files test
%{_javadir}/%{name}/provider-cvstest*
%{_javadir}/%{name}/provider-svntest*
%{_javadir}/%{name}/test*
%if %{gcj_support}
%dir %attr(-,root,root) %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/provider-cvstest-1.0-beta-3.jar.*
%{_libdir}/gcj/%{name}/test-1.0-beta-3.jar.*
%{_libdir}/gcj/%{name}/provider-svntest-1.0-beta-3.jar.*
%endif
%files javadoc
%{_javadocdir}/%{name}-%{version}
%ghost %doc %{_javadocdir}/%{name}
%changelog
…
Полный changelog можно просмотреть здесь