[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