Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > cd883e64b535778d2df89e66561b3966 > files > 17

maven-3.0.4-29.mga3.src.rpm

%global debug_package %{nil}

Name:           maven
Version:        3.0.4
Release:        %mkrel 29
Summary:        Java project management and project comprehension tool

Group:          Development/Java
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
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

# 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

BuildRequires:  aether >= 1.13.1
BuildRequires:  aopalliance
BuildRequires:  apache-resource-bundles
BuildRequires:  async-http-client
BuildRequires:  atinject
BuildRequires:  buildnumber-maven-plugin
BuildRequires:  cglib
BuildRequires:  google-guice >= 3.0
BuildRequires:  hamcrest
BuildRequires:  maven-local
BuildRequires:  maven-assembly-plugin
BuildRequires:  maven-compiler-plugin
BuildRequires:  maven-install-plugin
BuildRequires:  maven-jar-plugin
BuildRequires:  maven-javadoc-plugin
BuildRequires:	maven-plugin-annotations
BuildRequires:  maven-remote-resources-plugin
BuildRequires:  maven-resources-plugin
BuildRequires:  maven-site-plugin
BuildRequires:  maven-surefire-plugin
BuildRequires:  maven-surefire-provider-junit4
BuildRequires:  objectweb-asm
BuildRequires:  plexus-containers-component-metadata >= 1.5.5
BuildRequires:  plexus-containers-container-default
BuildRequires:  sisu >= 2.1.1-2
BuildRequires:  slf4j
BuildRequires:  xmlunit
BuildRequires:  animal-sniffer >= 1.6-5
BuildRequires:  codehaus-parent

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
Requires:       animal-sniffer >= 1.6-5
Requires:       codehaus-parent

# 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.
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
Obsoletes:      maven2 < 2.2.1-99
Provides:       maven2 = %{version}-%{release}

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

# fix line endings
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

# 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

# Temporarily disabled to solve asm & asm4 clashing on classpath
%pom_remove_plugin :animal-sniffer-maven-plugin

%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

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
)


%install
export M2_HOME=$(pwd)/m2home/apache-maven-%{version}%{?ver_add}

# 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


################
# M2_HOME/boot #
################
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/boot

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


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

# Wrappers
cp -af %{SOURCE200} $RPM_BUILD_ROOT%{_bindir}/mvn
cp -af %{SOURCE201} $RPM_BUILD_ROOT%{_bindir}/mvn-local
cp -af %{SOURCE202} $RPM_BUILD_ROOT%{_bindir}/mvn-rpmbuild

###################
# 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
%doc LICENSE.txt NOTICE.txt README.txt
%attr(0755,root,root) %{_bindir}/mvn
%attr(0755,root,root) %{_bindir}/mvn-local
%attr(0755,root,root) %{_bindir}/mvn-rpmbuild
%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
%{_datadir}/%{name}/bin/*.conf
%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.*

%files javadoc
%doc LICENSE.txt NOTICE.txt
%{_javadocdir}/%{name}



%changelog

* Sat Jan 12 2013 umeabot <umeabot> 3.0.4-29.mga3
+ Revision: 359569
- Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild

* Sun Jan 06 2013 dmorgan <dmorgan> 3.0.4-28.mga3
+ Revision: 340011
- Add codehaus-parent as requires

  + pterjan <pterjan>
    - Add missing BuildRequires

* Sat Dec 01 2012 dmorgan <dmorgan> 3.0.4-27.mga3
+ Revision: 324056
- Requires maven-local and remove files

* Wed Sep 12 2012 dmorgan <dmorgan> 3.0.4-4.mga3
+ Revision: 292648
- Sync with fedora maven

* Mon Sep 10 2012 dmorgan <dmorgan> 3.0.4-3.mga3
+ Revision: 291582
- Obsolete and provide maven2

* Mon Jul 16 2012 dmorgan <dmorgan> 3.0.4-2.mga3
+ Revision: 271275
- Make package noarch again to simplify bootstrapping

* Mon Jul 09 2012 dmorgan <dmorgan> 3.0.4-1.mga3
+ Revision: 268995
- Make javadoc noarch
- Make compilation source level 1.5
- Fix borked tarball unpacking (reason unknown)
- New version 3.0.4

* Mon Dec 26 2011 dmorgan <dmorgan> 3.0.3-15.mga2
+ Revision: 187695
- R/BR maven2-common-poms

* Fri Dec 23 2011 dmorgan <dmorgan> 3.0.3-14.mga2
+ Revision: 186275
- Fix test scope skipping ( From Fedora)

* Sat Dec 10 2011 dmorgan <dmorgan> 3.0.3-9.mga2
+ Revision: 180007
- Try to readd some deps

* Sat Dec 10 2011 dmorgan <dmorgan> 3.0.3-7.mga2
+ Revision: 179907
- Remove unnecessary deps causing problems from lib/
- Add utf-8 source encoding patch
- Disable debug package creation
- Change to arch specific since we are using _libdir for _jnidir
- Add bash completion (RHBZ #706856)

* Tue Jul 19 2011 dmorgan <dmorgan> 3.0.3-5.mga2
+ Revision: 126422
- Re enable maven-paret R/BR

* Tue Jul 19 2011 dmorgan <dmorgan> 3.0.3-4.mga2
+ Revision: 126392
- Disable R/BR for now
- Keep macros for now
- Backport fixes from fedora
- Fix handling of fallback default_poms
- Add empty-dep into maven package to not require maven2 version
- Process fragments in alphabetical order
- Add maven-parent to BR/R
- Add resolving from jnidir and java-jni
- Expect fragments in /usr/share/maven-fragments
- Resolve poms also from /usr/share/maven-poms
- Process fragments directly instead of maven2-depmap.xml(fedora)
- Add help to mvn-rpmbuild and mvn-local (rhbz#710448)
- Improve and clean up depmap handling for m2/m3 repos (fedora)

* Thu Apr 28 2011 dmorgan <dmorgan> 3.0.3-3.mga1
+ Revision: 93275
- Enable MAVEN_OPTS override in scripts ( From fedora )

* Thu Apr 28 2011 dmorgan <dmorgan> 3.0.3-2.mga1
+ Revision: 92622
- Rebuild after bootstrapping
- imported package maven