Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > d207155cb29a77323ff59f5597941c48 > files > 2

maven-native-1.0-0.3.alpha.7.fc18.src.rpm

%global namedreltag  -alpha-7
%global namedversion %{version}%{?namedreltag}
%global dotreltag    %(echo %{namedreltag} | tr - .)

Name:          maven-native
Version:       1.0
Release:       0.3%{dotreltag}%{?dist}
Summary:       Compile c and c++ source under Maven
Group:         Development/Libraries
License:       ASL 2.0 and MIT
Url:           http://mojo.codehaus.org/maven-native/
Source0:       http://repo2.maven.org/maven2/org/codehaus/mojo/natives/%{name}/%{namedversion}/%{name}-%{namedversion}-source-release.zip

BuildRequires: java-devel
BuildRequires: mojo-parent

BuildRequires: mvn(bcel:bcel)
BuildRequires: mvn(commons-lang:commons-lang)
BuildRequires: mvn(org.apache.maven:maven-artifact)
BuildRequires: mvn(org.apache.maven:maven-model)
BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: mvn(org.apache.maven:maven-compat)
BuildRequires: mvn(org.apache.maven:maven-core)
BuildRequires: mvn(org.codehaus.plexus:plexus-archiver)
BuildRequires: mvn(org.codehaus.plexus:plexus-component-api)
# replace plexus-container-default 1.0
BuildRequires: mvn(org.codehaus.plexus:plexus-container-default) >= 1.5.5
BuildRequires: mvn(org.codehaus.plexus:plexus-utils)

# test deps
BuildRequires: mvn(aopalliance:aopalliance)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(net.sf.cglib:cglib)
BuildRequires: mvn(org.apache.maven:maven-artifact)
BuildRequires: mvn(org.apache.maven.plugin-testing:maven-plugin-testing-harness)

BuildRequires: maven-local
BuildRequires: maven-enforcer-plugin
BuildRequires: maven-plugin-cobertura
BuildRequires: maven-plugin-plugin
BuildRequires: maven-surefire-provider-junit4

Requires:      mvn(org.codehaus.plexus:plexus-container-default) >= 1.5.5
Requires:      mvn(org.codehaus.plexus:plexus-utils)

Requires:      java
BuildArch:     noarch

%description
Maven Native - compile C and C++ source under Maven
with compilers such as GCC, MSVC, GCJ etc ...

%package components
Group:         Development/Libraries
Summary:       Maven Native Components
Requires:      %{name} = %{version}-%{release}
Requires:      mvn(commons-lang:commons-lang)
Requires:      mvn(org.codehaus.plexus:plexus-container-default) >= 1.5.5
Requires:      mvn(org.codehaus.plexus:plexus-utils)

%description components
%{summary}.

%package -n native-maven-plugin
Group:         Development/Libraries
Summary:       Native Maven Plugin
Requires:      %{name} = %{version}-%{release}
Requires:      %{name}-components = %{version}-%{release}
Requires:      mvn(bcel:bcel)
Requires:      mvn(org.apache.maven:maven-artifact)
Requires:      mvn(org.apache.maven:maven-model)
Requires:      mvn(org.apache.maven:maven-plugin-api)
Requires:      mvn(org.apache.maven:maven-compat)
Requires:      mvn(org.apache.maven:maven-core)
Requires:      mvn(org.codehaus.plexus:plexus-archiver)
Requires:      mvn(org.codehaus.plexus:plexus-utils)

%description -n native-maven-plugin
%{summary}.

%package javadoc
Group:         Documentation
Summary:       Javadoc for %{name}

%description javadoc
This package contains javadoc for %{name}.

%prep
%setup -q -n %{name}-%{namedversion}

for d in LICENSE ; do
  iconv -f iso8859-1 -t utf-8 $d.txt > $d.txt.conv && mv -f $d.txt.conv $d.txt
  sed -i 's/\r//' $d.txt
done

# use jvm apis
%pom_remove_dep backport-util-concurrent:backport-util-concurrent
%pom_remove_dep backport-util-concurrent:backport-util-concurrent maven-native-api
sed -i "s|edu.emory.mathcs.backport.java.util.concurrent|java.util.concurrent|" \
 maven-native-api/src/main/java/org/codehaus/mojo/natives/compiler/AbstractCompiler.java

sed -i 's|<artifactId>maven-project|<artifactId>maven-compat|' pom.xml
%pom_remove_dep :maven-project native-maven-plugin
%pom_add_dep org.apache.maven:maven-compat native-maven-plugin
%pom_add_dep org.apache.maven:maven-core native-maven-plugin

# missing test deps
%pom_add_dep aopalliance:aopalliance::test native-maven-plugin
%pom_add_dep net.sf.cglib:cglib::test native-maven-plugin

%build

#  junit.framework.AssertionFailedError: Failed to create plexus container.
# native-maven-plugin with maven3 test failures:
# Caused by: java.lang.ClassNotFoundException: org.apache.maven.artifact.repository.Authentication
#  java.lang.VerifyError: (class: org/apache/maven/project/MavenProject, 
# method: getSnapshotArtifactRepository signature: ()Lorg/apache/maven/artifact/repository/ArtifactRepository;)
# Incompatible argument to function
# force org.codehaus.plexus plexus-container-default 1.5.5 apis
mvn-rpmbuild -Dmojo.java.target=1.7 \
 -Dmaven.local.depmap.file="%{_mavendepmapfragdir}/plexus-containers-container-default" \
 -Dmaven.test.failure.ignore=true \
 package javadoc:aggregate

%install

mkdir -p %{buildroot}%{_mavenpomdir}
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%add_maven_depmap JPP.%{name}-%{name}.pom

mkdir -p %{buildroot}%{_javadir}/%{name}

install -m 644 %{name}-api/target/%{name}-api-%{namedversion}.jar %{buildroot}%{_javadir}/%{name}/%{name}-api.jar
install -pm 644 %{name}-api/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-api.pom
%add_maven_depmap JPP.%{name}-%{name}-api.pom %{name}/%{name}-api.jar

install -m 644 native-maven-plugin/target/native-maven-plugin-%{namedversion}.jar %{buildroot}%{_javadir}/%{name}/native-maven-plugin.jar
install -pm 644 native-maven-plugin/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-native-maven-plugin.pom
%add_maven_depmap JPP.%{name}-native-maven-plugin.pom %{name}/native-maven-plugin.jar -f plugin
mv -f %{buildroot}%{_mavendepmapfragdir}/%{name}-plugin %{buildroot}%{_mavendepmapfragdir}/native-maven-plugin

(
cd maven-native-components
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-components.pom
%add_maven_depmap JPP.%{name}-components.pom -f components
for m in bcc \
      generic-c \
      javah \
      manager \
      msvc; do
    install -m 644 %{name}-${m}/target/%{name}-${m}-%{namedversion}.jar %{buildroot}%{_javadir}/%{name}/%{name}-${m}.jar
    install -pm 644 %{name}-${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
%add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar -f components
done
)

mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}


%files
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-api.jar
%{_mavenpomdir}/JPP.%{name}-%{name}.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-api.pom
%{_mavendepmapfragdir}/%{name}
%doc LICENSE.txt

%files components
%{_javadir}/%{name}/%{name}-bcc.jar
%{_javadir}/%{name}/%{name}-generic-c.jar
%{_javadir}/%{name}/%{name}-javah.jar
%{_javadir}/%{name}/%{name}-manager.jar
%{_javadir}/%{name}/%{name}-msvc.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-bcc.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-generic-c.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-javah.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-manager.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-msvc.pom
%{_mavenpomdir}/JPP.%{name}-components.pom
%{_mavendepmapfragdir}/%{name}-components
%doc LICENSE.txt

%files -n native-maven-plugin
%{_javadir}/%{name}/native-maven-plugin.jar
%{_mavenpomdir}/JPP.%{name}-native-maven-plugin.pom
%{_mavendepmapfragdir}/native-maven-plugin
%doc LICENSE.txt

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

%changelog
* Tue Jun 11 2013 gil cattaneo <puntogil@libero.it> 1.0-0.3.alpha.7
- fix license tag

* Tue Oct 30 2012 gil cattaneo <puntogil@libero.it> 1.0-0.2.alpha.7
- fix javac target

* Mon Oct 08 2012 gil cattaneo <puntogil@libero.it> 1.0-0.1.alpha.7
- initial rpm