# svn revision
%global svn_rev 659858
# maven-release-manager version
%global mversion 1.0
# maven-release parent pom version
%global pversion 5-SNAPSHOT
# maven-release-manager jar version
%global mjarver 1.0-alpha-%{pversion}
# maven-release-plugin jar version
%global pjarver 2.0-beta-8-SNAPSHOT
Name: maven-release
Version: 2.0
Release: 0.%{svn_rev}svn.3%{?dist}
Summary: Release a project updating the POM and tagging in the SCM
Group: Development/Libraries
License: ASL 2.0
URL: http://maven.apache.org/plugins/maven-release-plugin/
# tar creation instructions
# svn export -r659858 http://svn.apache.org/repos/asf/maven/release/trunk maven-release
# tar cf maven-release-2.0.tar maven-release
# xz maven-release-2.0.tar
Source0: maven-release-2.0.tar.xz
# Remove deps needed for tests, till jmock gets packaged
Patch0: 001-mavenreleasemanager-skiptests.patch
Patch1: 002-mavenreleaseplugin-skiptests.patch
# Remove helpmojo goal, till maven-plugin-plugin gets updated
Patch2: 003-mavenreleaseplugin-skiphelpmojo.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: java-devel
BuildRequires: jpackage-utils
BuildRequires: maven-scm >= 1.2-6
BuildRequires: maven2
BuildRequires: maven2-common-poms >= 0:1.0-13
BuildRequires: maven2-plugin-antrun
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-source
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-plugin
BuildRequires: maven2-plugin-resources
BuildRequires: maven2-plugin-site
BuildRequires: maven-shared-plugin-testing-harness
BuildRequires: plexus-maven-plugin
BuildRequires: plexus-utils
BuildRequires: maven-surefire-maven-plugin
### FIXME tomcat5-servlet-api should require tomcat5 (parent POM)
BuildRequires: tomcat5-servlet-2.4-api
BuildRequires: tomcat5
Requires: java
Requires: jpackage-utils
Requires(post): jpackage-utils
Requires(postun): jpackage-utils
%description
This plugin is used to release a project with Maven, saving a lot of
repetitive, manual work. Releasing a project is made in two steps:
prepare and perform.
%package manager
Summary: Release a project updating the POM and tagging in the SCM
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: jpackage-utils
BuildArch: noarch
%description manager
This package contains %{name}-manager needed by %{name}-plugin.
%package plugin
Summary: Release a project updating the POM and tagging in the SCM
Group: Development/Libraries
Requires: %{name}-manager = %{version}-%{release}
Requires: jpackage-utils
BuildArch: noarch
%description plugin
This plugin is used to release a project with Maven, saving a lot of
repetitive, manual work. Releasing a project is made in two steps:
prepare and perform.
%package manager-javadoc
Summary: Javadocs for %{name}-manager
Group: Documentation
Requires: %{name}-manager = %{version}-%{release}
Requires: jpackage-utils
BuildArch: noarch
%description manager-javadoc
This package contains the API documentation for %{name}-manager.
%package plugin-javadoc
Summary: Javadocs for %{name}-plugin
Group: Documentation
Requires: %{name}-plugin = %{version}-%{release}
Requires: jpackage-utils
BuildArch: noarch
%description plugin-javadoc
This package contains the API documentation for %{name}-plugin.
%prep
%setup -q -n %{name}
%patch0 -p1
%patch1 -p1
%patch2 -p1
cat > README << EOT
%{name}-%{version}
This plugin is used to release a project with Maven, saving a lot of
repetitive, manual work. Releasing a project is made in two steps:
prepare and perform.
EOT
%build
export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository
mkdir -p $MAVEN_REPO_LOCAL
mvn-jpp \
-e \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven.test.skip=true \
install javadoc:javadoc
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_javadir}
# jars
install -Dp -m 644 %{name}-manager/target/%{name}-manager-%{mjarver}.jar \
$RPM_BUILD_ROOT%{_javadir}/
(cd $RPM_BUILD_ROOT%{_javadir} \
&& ln -sf %{name}-manager-%{mjarver}.jar %{name}-manager-%{mversion}.jar \
&& ln -sf %{name}-manager-%{mjarver}.jar %{name}-manager.jar)
install -Dp -m 644 %{name}-plugin/target/%{name}-plugin-%{pjarver}.jar \
$RPM_BUILD_ROOT%{_javadir}/
(cd $RPM_BUILD_ROOT%{_javadir} \
&& ln -sf %{name}-plugin-%{pjarver}.jar %{name}-plugin-%{version}.jar \
&& ln -sf %{name}-plugin-%{pjarver}.jar %{name}-plugin.jar)
# javadocs
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-manager-%{mversion}
cp -rp %{name}-manager/target/site/apidocs/ \
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-manager-%{mversion}
(cd $RPM_BUILD_ROOT%{_javadocdir} && ln -sf %{name}-manager-%{mversion} %{name}-manager)
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-plugin-%{version}
cp -rp %{name}-plugin/target/site/apidocs/ \
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-plugin-%{version}
(cd $RPM_BUILD_ROOT%{_javadocdir} && ln -sf %{name}-plugin-%{version} %{name}-plugin)
# poms
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -pm 644 pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}.pom
install -pm 644 %{name}-manager/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-manager.pom
install -pm 644 %{name}-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-plugin.pom
%add_to_maven_depmap org.apache.maven.release %{name} %{pversion} JPP %{name}
%add_to_maven_depmap org.apache.maven.release %{name}-manager %{mjarver} JPP %{name}-manager
%add_to_maven_depmap org.apache.maven.plugins %{name}-plugin %{pjarver} JPP %{name}-plugin
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc README
%{_mavenpomdir}/JPP-%{name}.pom
%{_mavendepmapfragdir}/*
%files manager
%defattr(-,root,root,-)
%{_javadir}/*manager*
%{_mavenpomdir}/JPP-%{name}-manager.pom
%files plugin
%defattr(-,root,root,-)
%{_javadir}/*plugin*
%{_mavenpomdir}/JPP-%{name}-plugin.pom
%files manager-javadoc
%defattr(-,root,root,-)
%{_javadocdir}/%{name}-manager
%{_javadocdir}/%{name}-manager-%{mversion}
%files plugin-javadoc
%defattr(-,root,root,-)
%{_javadocdir}/%{name}-plugin
%{_javadocdir}/%{name}-plugin-%{version}
%post
%update_maven_depmap
%postun
%update_maven_depmap
%changelog
* Tue May 25 2010 Guido Grazioli <guido.grazioli@gmail.com> - 2.0-0.659858svn.3
- Fix build requires
* Mon May 10 2010 Guido Grazioli <guido.grazioli@gmail.com> - 2.0-0.659858svn.2
- Fix release tag
- Better macro usage
* Mon Apr 26 2010 Guido Grazioli <guido.grazioli@gmail.com> - 2.0-0.659858svn.1
- Install maven-release-parent pom in dedicated package
- Patch maven-release-plugin to skip helpmojo goal
- Patch to skip tests depending on (unpackaged) jmock
* Fri Apr 16 2010 Guido Grazioli <guido.grazioli@gmail.com> - 2.0-0.659858svn
- Initial packaging