[maven] Drop support for local mode
Mikolaj Izdebski
mizdebsk at fedoraproject.org
Tue Feb 5 15:57:14 UTC 2013
commit 2cf4fd6a25ca10bdd9a579d499e9148612d18d1d
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Fri Jan 25 01:50:17 2013 +0100
Drop support for local mode
0001-Add-plugin-api-deps.patch | 28 --
0001-Customize-compiler-plugin.patch | 104 ------
0002-Use-custom-resolver.patch | 224 -------------
0003-Use-utf-8-source-encoding.patch | 24 --
...-text-scope-skipping-with-maven.test.skip.patch | 160 ---------
...ake-compiler-plugin-default-to-source-1.5.patch | 33 --
JavadirWorkspaceReader.java | 198 -----------
MavenJPackageDepmap.java | 313 -----------------
maven-bash-completion | 2 -
maven-empty-dep.jar | Bin 341 -> 0 bytes
maven-empty-dep.pom | 9 -
maven-script-local | 47 ---
maven-script-rpmbuild | 93 -----
maven.spec | 353 +++++---------------
repo-metadata.tar.xz | Bin 3028 -> 0 bytes
15 files changed, 79 insertions(+), 1509 deletions(-)
---
diff --git a/maven-bash-completion b/maven-bash-completion
index d137cd4..0ca36fa 100644
--- a/maven-bash-completion
+++ b/maven-bash-completion
@@ -88,5 +88,3 @@ _m2_complete()
}
complete -F _m2_complete -o filenames mvn
-complete -F _m2_complete -o filenames mvn-local
-complete -F _m2_complete -o filenames mvn-rpmbuild
diff --git a/maven.spec b/maven.spec
index e98eb7d..1260934 100644
--- a/maven.spec
+++ b/maven.spec
@@ -2,7 +2,7 @@
Name: maven
Version: 3.0.4
-Release: 28%{?dist}
+Release: 29%{?dist}
Summary: Java project management and project comprehension tool
Group: Development/Tools
@@ -10,39 +10,15 @@ License: ASL 2.0
URL: http://maven.apache.org/
# Source URL is for testing only, final version will be in different place:
# http://www.apache.org/dyn/closer.cgi/maven/source/apache-%{name}-%{version}-src.tar.gz
-Source0: http://www.apache.org/dist//maven/source/apache-%{name}-%{version}-src.tar.gz
+Source0: http://archive.apache.org/dist/maven/source/apache-%{name}-%{version}-src.tar.gz
Source1: maven-bash-completion
Source2: mvn.1
-# custom resolver java files
-# source: git clone git://fedorapeople.org/~sochotni/maven-javadir-resolver/
-Source100: JavadirWorkspaceReader.java
-Source101: MavenJPackageDepmap.java
-
-# empty files for resolving to nothing
-Source104: %{name}-empty-dep.pom
-Source105: %{name}-empty-dep.jar
-
# 2xx for created non-buildable sources
-Source200: %{name}-script
-Source201: %{name}-script-local
-Source202: %{name}-script-rpmbuild
-
-# Other included files
-Source250: repo-metadata.tar.xz
+Source200: %{name}-script
# Patch1XX could be upstreamed probably
Patch100: 0005-Use-generics-in-modello-generated-code.patch
-Patch101: 0006-Make-compiler-plugin-default-to-source-1.5.patch
-
-# Patch15X are already upstream
-Patch150: 0001-Add-plugin-api-deps.patch
-Patch151: 0003-Use-utf-8-source-encoding.patch
-
-# Patch2XX for non-upstreamable patches
-Patch200: 0002-Use-custom-resolver.patch
-Patch201: 0004-Fix-text-scope-skipping-with-maven.test.skip.patch
-Patch202: 0001-Customize-compiler-plugin.patch
BuildArch: noarch
@@ -76,33 +52,6 @@ BuildRequires: xmlunit
BuildRequires: animal-sniffer >= 1.6-5
%endif
-Requires: aether >= 1.13.1
-Requires: apache-commons-cli
-Requires: apache-resource-bundles
-Requires: async-http-client
-Requires: atinject
-Requires: google-guice >= 3.0
-Requires: guava
-Requires: hamcrest
-Requires: hamcrest
-Requires: java >= 1:1.6.0
-Requires: maven-wagon
-Requires: nekohtml
-Requires: plexus-cipher
-Requires: plexus-classworlds >= 2.4
-Requires: plexus-containers-component-annotations
-Requires: plexus-containers-container-default
-Requires: plexus-interpolation
-Requires: plexus-sec-dispatcher
-Requires: plexus-utils
-Requires: sisu >= 2.1.1-2
-Requires: xbean
-Requires: xerces-j2
-Requires: yum-utils
-%if 0%{?fedora}
-Requires: animal-sniffer >= 1.6-5
-%endif
-
# Require maven-local for now to allow a smooth transition from maven
# to maven-local. Once packages start requiring maven-local directly
# the Requires below should be removed.
@@ -111,8 +60,7 @@ Requires: maven-local
# for noarch->arch change
Obsoletes: %{name} < 0:%{version}-%{release}
-# maven2 bin package no longer exists. Replace it
-# these should be around until F20
+# maven2 bin package no longer exists.
Obsoletes: maven2 < 2.2.1-99
Provides: maven2 = %{version}-%{release}
@@ -124,31 +72,13 @@ reporting and documentation from a central piece of information.
%package javadoc
Summary: API documentation for %{name}
Group: Documentation
-Requires: jpackage-utils
-BuildArch: noarch
%description javadoc
%{summary}.
%prep
%setup -q -n apache-%{name}-%{version}%{?ver_add}
-%patch150 -p1
-%patch151 -p1
-%patch200 -p1
-%patch201 -p1
-%patch202 -p1
%patch100 -p1
-%patch101 -p1
-
-# get custom resolver in place
-mkdir -p maven-aether-provider/src/main/java/org/apache/maven/artifact/resolver \
- maven-aether-provider/src/main/java/org/apache/maven/artifact/repository
-
-cp %{SOURCE100} maven-aether-provider/src/main/java/org/apache/maven/artifact/resolver
-cp %{SOURCE101} maven-aether-provider/src/main/java/org/apache/maven/artifact/repository
-
-# by adding our things this has become compile dep
-sed -i 's:<scope>runtime</scope>::' maven-core/pom.xml
# not really used during build, but a precaution
rm maven-ant-tasks-*.jar
@@ -159,14 +89,12 @@ sed -i 's:\r::' *.txt
# fix for animal-sniffer (we don't generate 1.5 signatures)
sed -i 's:check-java-1.5-compat:check-java-1.6-compat:' pom.xml
-pushd apache-maven
-rm src/bin/*bat
-sed -i 's:\r::' src/conf/settings.xml
+rm -f apache-maven/src/bin/*.bat
+sed -i 's:\r::' apache-maven/src/conf/settings.xml
# Update shell scripts to use unversioned classworlds
sed -i -e s:'-classpath "${M2_HOME}"/boot/plexus-classworlds-\*.jar':'-classpath "${M2_HOME}"/boot/plexus-classworlds.jar':g \
- src/bin/mvn*
-popd
+ apache-maven/src/bin/mvn*
# Disable animal-sniffer on RHEL
# Temporarily disabled for fedora to solve asm & asm4 clashing on classpath
@@ -174,226 +102,103 @@ popd
%pom_remove_plugin :animal-sniffer-maven-plugin
#fi
+%pom_add_dep org.codehaus.plexus:plexus-container-default maven-plugin-api
+# Test dependencies
%pom_add_dep aopalliance:aopalliance:any:test maven-model-builder
%pom_add_dep cglib:cglib:any:test maven-model-builder
%build
-mvn-rpmbuild -e install javadoc:aggregate
+# Put all JARs in standard location, but create symlinks in Maven lib
+# directory so that Plexus Classworlds can find them.
+%mvn_file ":{*}" %{name}/@1 %{_datadir}/%{name}/lib/@1
+
+%mvn_build -- -Dproject.build.sourceEncoding=UTF-8
mkdir m2home
(cd m2home
-tar --delay-directory-restore -xvf ../apache-maven/target/*tar.gz
-chmod -R +rwX apache-%{name}-%{version}%{?ver_add}
-chmod -x apache-%{name}-%{version}%{?ver_add}/conf/settings.xml
+ tar --delay-directory-restore -xvf ../apache-maven/target/*tar.gz
+ chmod -R +rwX apache-%{name}-%{version}%{?ver_add}
+ chmod -x apache-%{name}-%{version}%{?ver_add}/conf/settings.xml
)
%install
-export M2_HOME=$(pwd)/m2home/apache-maven-%{version}%{?ver_add}
+%mvn_install
-# maven2 directory in /usr/share/java
-install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
-
-# put global m2 config into /etc and symlink it later
-install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}
-mv $M2_HOME/bin/m2.conf $RPM_BUILD_ROOT%{_sysconfdir}/
-
-###########
-# M2_HOME #
-###########
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
-
-#################
-# Repo metadata #
-#################
-install -m 755 %{SOURCE250} $RPM_BUILD_ROOT%{_datadir}/%{name}/
-
-
-###############
-# M2_HOME/bin #
-###############
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
-cp -a $M2_HOME/bin/* $RPM_BUILD_ROOT%{_datadir}/%{name}/bin
-
-ln -sf %{_sysconfdir}/m2.conf $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/m2.conf
-
-# Fallback scripts
-cp -af %{SOURCE201} $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/mvn-local
-cp -af %{SOURCE202} $RPM_BUILD_ROOT%{_datadir}/%{name}/bin/mvn-rpmbuild
-
-
-################
-# M2_HOME/boot #
-################
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/boot
+export M2_HOME=$(pwd)/m2home/apache-maven-%{version}%{?ver_add}
-# this dangling symlink will be filled in by Requires
-(cd $RPM_BUILD_ROOT%{_datadir}/%{name}/boot
- ln -sf `build-classpath plexus/classworlds` plexus-classworlds.jar
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/bin
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/conf
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/boot
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/lib
+install -d -m 755 %{buildroot}%{_datadir}/%{name}/ext
+install -d -m 755 %{buildroot}%{_bindir}
+install -d -m 755 %{buildroot}%{_sysconfdir}/bash_completion.d
+install -d -m 755 %{buildroot}%{_mandir}/man1
+
+install -p -m 755 %{SOURCE200} %{buildroot}%{_bindir}/mvn
+install -p -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1
+install -p -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/bash_completion.d/%{name}
+mv $M2_HOME/bin/m2.conf %{buildroot}%{_sysconfdir}
+ln -sf %{_sysconfdir}/m2.conf %{buildroot}%{_datadir}/%{name}/bin/m2.conf
+
+cp -a $M2_HOME/bin/* %{buildroot}%{_datadir}/%{name}/bin
+cp -a $M2_HOME/conf/* %{buildroot}%{_datadir}/%{name}/conf
+
+ln -sf $(build-classpath plexus/classworlds) \
+ %{buildroot}%{_datadir}/%{name}/boot/plexus-classworlds.jar
+
+(cd %{buildroot}%{_datadir}/%{name}/lib
+ build-jar-repository -s -p . \
+ aether/api \
+ aether/connector-wagon \
+ aether/impl \
+ aether/spi \
+ aether/util \
+ aopalliance \
+ atinject \
+ cglib \
+ commons-cli \
+ google-guice \
+ guava \
+ maven-wagon/file \
+ maven-wagon/http-lightweight \
+ maven-wagon/http-shared \
+ maven-wagon/provider-api \
+ nekohtml \
+ objectweb-asm \
+ plexus/containers-component-annotations \
+ plexus/interpolation \
+ plexus/plexus-cipher \
+ plexus/plexus-sec-dispatcher \
+ plexus/utils \
+ sisu/sisu-inject-bean \
+ sisu/sisu-inject-plexus \
+ slf4j/api \
+ slf4j/nop \
+ xbean/xbean-reflect \
+ xerces-j2 \
)
-################
-# M2_HOME/conf #
-################
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/conf
-cp -a $M2_HOME/conf/* $RPM_BUILD_ROOT%{_datadir}/%{name}/conf/
-
-###############
-# M2_HOME/lib #
-###############
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
-
-# jdom is needed for our custom resolving code only
-(cd $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
-
- build-jar-repository -s -p . aether/api aether/connector-wagon aether/impl aether/spi aether/util \
- commons-cli guava google-guice nekohtml plexus/plexus-cipher \
- plexus/containers-component-annotations \
- plexus/interpolation plexus/plexus-sec-dispatcher plexus/utils \
- sisu/sisu-inject-bean sisu/sisu-inject-plexus maven-wagon/file \
- maven-wagon/http-lightweight maven-wagon/http-shared maven-wagon/provider-api \
- xbean/xbean-reflect xerces-j2 atinject aopalliance cglib \
- slf4j/api slf4j/nop objectweb-asm
- # dependency of our resolver
- mkdir ext/
- build-jar-repository -s -p ext/ xml-commons-apis
-)
-
-################
-# M2_HOME/poms #
-#*##############
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/poms
-
-########################
-# /etc/maven/fragments #
-########################
-install -dm 755 $RPM_BUILD_ROOT/%{_sysconfdir}/maven/fragments
-
-##############################
-# /usr/share/java repository #
-##############################
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository
-ln -s %{_javadir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository/JPP
-
-##############################
-# /usr/share/java-jni repository #
-##############################
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-java-jni
-ln -s %{_javajnidir} $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-java-jni/JPP
-
-##############################
-# _libdir/java repository #
-##############################
-install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/repository-jni
-# create symlink in post, remove in preun so we can stay noarch
-
-##################
-# javadir/maven #
-#*################
-install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
-
-#######################
-# javadir/maven/poms #
-#*#####################
-ln -s %{_datadir}/%{name}/poms $RPM_BUILD_ROOT%{_javadir}/%{name}/poms
-
-# for our custom resolver to remove dependencies we need empty jar and
-# pom file
-install -m 644 %{SOURCE104} $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.maven-empty-dep.pom
-install -m 644 %{SOURCE105} $RPM_BUILD_ROOT%{_javadir}/%{name}/empty-dep.jar
-
-# Dependencies that should be ignored.
-%add_to_maven_depmap javax.activation activation any JPP/%{name} empty-dep
-%add_to_maven_depmap org.eclipse.jetty.orbit javax.activation any JPP/%{name} empty-dep
-%add_to_maven_depmap org.apache.maven.wagon wagon-webdav any JPP/%{name} empty-dep
-%add_to_maven_depmap org.apache.maven.wagon wagon-webdav-jackrabbit any JPP/%{name} empty-dep
-
-############
-# /usr/bin #
-############
-install -dm 755 $RPM_BUILD_ROOT%{_bindir}
-
-# Wrapper
-cp -af %{SOURCE200} $RPM_BUILD_ROOT%{_bindir}/mvn
-
-###################
-# Individual jars #
-###################
-
-for module in maven-aether-provider maven-artifact maven-compat \
- maven-core maven-embedder maven-model \
- maven-model-builder maven-plugin-api \
- maven-repository-metadata maven-settings \
- maven-settings-builder;do
-
- pushd $module
- install -m 644 target/$module-%{version}%{?ver_add}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$module.jar
- ln -s %{_javadir}/%{name}/$module.jar $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$module.jar
- install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$module.pom
- %add_to_maven_depmap org.apache.maven $module %{version} JPP/%{name} $module
- popd
-done
-
-# maven pom
-install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-maven.pom
-%add_to_maven_depmap org.apache.maven maven %{version} JPP/%{name} maven
-
-# javadocs
-install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-
-# Install bash-completion
-install -Dm 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/bash_completion.d/%{name}
-
-# Manual page
-install -dm 755 $RPM_BUILD_ROOT%{_mandir}/man1
-install -pm 644 %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1
-gzip -9 $RPM_BUILD_ROOT%{_mandir}/man1/*
-
-
-%preun
-if [ $1 -eq 0 ] ; then
- if [ -h %{_datadir}/%{name}/repository-jni/JPP ];then
- rm %{_datadir}/%{name}/repository-jni/JPP
- fi
-fi
-
-%posttrans
-# ugly as hell
-ln -sf `rpm --eval '%%{_jnidir}'` %{_datadir}/%{name}/repository-jni/JPP
-
-%files
+%files -f .mfiles
%doc LICENSE.txt NOTICE.txt README.txt
-%attr(0755,root,root) %{_bindir}/mvn
-%dir %{_datadir}/%{name}
-%dir %{_datadir}/%{name}/bin
-%attr(0755,root,root) %{_datadir}/%{name}/bin/mvn
-%attr(0755,root,root) %{_datadir}/%{name}/bin/mvnyjp
-%attr(0755,root,root) %{_datadir}/%{name}/bin/mvnDebug
-%attr(0755,root,root) %{_datadir}/%{name}/bin/mvn-local
-%attr(0755,root,root) %{_datadir}/%{name}/bin/mvn-rpmbuild
-%{_datadir}/%{name}/bin/*.conf
+%{_datadir}/%{name}
+%{_bindir}/mvn
+%dir %{_javadir}/%{name}
%config(noreplace) %{_sysconfdir}/m2.conf
-%{_datadir}/%{name}/boot
-%{_datadir}/%{name}/conf
-%{_datadir}/%{name}/lib
-%{_datadir}/%{name}/poms
-%{_datadir}/%{name}/repository
-%{_datadir}/%{name}/repository-jni
-%{_datadir}/%{name}/repository-java-jni
-%{_mavendepmapfragdir}/%{name}
-%{_javadir}/%{name}
-%{_datadir}/%{name}/repo-metadata.tar.xz
%config(noreplace) %{_sysconfdir}/bash_completion.d/%{name}
%{_mandir}/man1/mvn.1.gz
-%files javadoc
+%files javadoc -f .mfiles-javadoc
%doc LICENSE.txt NOTICE.txt
-%{_javadocdir}/%{name}
%changelog
+* Fri Jan 25 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 3.0.4-29
+- Drop support for local mode
+- Build with xmvn, rely on auto-requires
+
* Wed Jan 23 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 3.0.4-28
- Move mvn-local and mvn-rpmbuild out of %_bindir
More information about the scm-commits
mailing list