Blob Blame History Raw
Name:             avro
Version:          1.7.5
Release:          1%{?dist}
Summary:          Data serialization system
Group:            Development/Libraries
License:          ASL 2.0
URL:              http://avro.apache.org

# svn export http://svn.apache.org/repos/asf/avro/tags/release-1.7.5/ avro-1.7.5
# find avro-1.7.5/ -name '*.jar' -or -name '*.dll' -delete
# tar cafJ avro-1.7.5-CLEAN.tar.xz avro-1.7.5
Source0:          avro-%{version}-CLEAN.tar.xz
Patch0:           avro-ipc-changes-for-jetty-upgrade.patch

BuildArch:        noarch

BuildRequires:    jpackage-utils
BuildRequires:    java-devel
BuildRequires:    maven-local
BuildRequires:    maven-compiler-plugin
BuildRequires:    maven-jar-plugin
BuildRequires:    maven-javadoc-plugin
BuildRequires:    maven-archetype-plugin
BuildRequires:    maven-archetype-common
BuildRequires:    maven-checkstyle-plugin
BuildRequires:    maven-resources-plugin
BuildRequires:    javacc-maven-plugin
BuildRequires:    jackson
BuildRequires:    snappy-java
BuildRequires:    paranamer
BuildRequires:    slf4j
BuildRequires:    hadoop-client
BuildRequires:    hadoop-mapreduce
BuildRequires:    libthrift-java

Requires:         jpackage-utils
Requires:         java
Requires:         jackson
Requires:         snappy-java
Requires:         paranamer
Requires:         slf4j

%description
Apache Avro is a data serialization system.

Avro provides:

* Rich data structures.
* A compact, fast, binary data format.
* A container file, to store persistent data.
* Remote procedure call (RPC).
* Simple integration with dynamic languages. Code generation is not required
  to read or write data files nor to use or implement RPC protocols. Code
  generation as an optional optimization, only worth implementing for
  statically typed languages.
  
%package trevni
Summary:          Trevni Java
Requires:         avro-mapred

%description  trevni
Trevni: A Column File Format

%package ipc
Summary:          Apache Avro IPC

%description  ipc
Avro inter-process communication components

%package mapred
Summary:          Apache Avro Mapred API
Requires:         hadoop-client
Requires:         hadoop-mapreduce

%description  mapred
An org.apache.hadoop.mapred compatible API for using Avro Serialization in Hadoop

%package protobuf
Summary:          Apache Avro Protobuf Compatibility
Requires:         protobuf-java

%description  protobuf
Permit serialization of Protobuf-generated classes as Avro data.

%package thrift
Summary:          Apache Avro Thrift Compatibility
Requires:         libthrift-java

%description  thrift
Permit serialization of Thrift-generated classes as Avro data.

%package javadoc
Summary:          Javadocs for %{name}
Group:            Documentation
Requires:         jpackage-utils

%description javadoc
This package contains the API documentation for %{name}.

%prep
%setup -q
%patch0 -p1

# junit, versions, and no tools or archetypes module
sed -i "s|<hadoop2.version>2.0.1-alpha</hadoop2.version>|<hadoop2.version>2.0.5-alpha</hadoop2.version>|" lang/java/pom.xml
sed -i "s|<jetty.version>6.1.26</jetty.version>|<jetty.version>9.0.3.v20130506</jetty.version>|" lang/java/pom.xml
sed -i "s|<jetty-servlet-api.version>2.5-20081211</jetty-servlet-api.version>|<jetty-servlet-api.version>3.1.0</jetty-servlet-api.version>|" lang/java/pom.xml
sed -i "s|junit-dep|junit|" lang/java/pom.xml
sed -i "s|<module>tools</module>||" lang/java/pom.xml
# something wrong here with xmvn 0.5 for archetypes, mvn-rpmbuild doesn't fail
sed -i "s|<module>archetypes</module>||" lang/java/pom.xml

# Remove panamer plugin for test jar generation
%pom_remove_plugin com.thoughtworks.paranamer:paranamer-maven-plugin lang/java/avro/pom.xml

# Need explicit maven-artifact declaration
%pom_add_dep org.apache.maven:maven-artifact lang/java/maven-plugin/pom.xml

# Remove ipc tests from mapred
%pom_remove_dep :avro-ipc lang/java/mapred/pom.xml
%pom_add_dep org.apache.avro:avro-ipc:%{version} lang/java/mapred/pom.xml

%mvn_package ":trevni-java" trevni
%mvn_package ":trevni-core" trevni
%mvn_package ":trevni-avro" trevni
%mvn_package ":trevni-doc"  __noinstall
%mvn_package ":%{name}-ipc" ipc
%mvn_package ":%{name}-mapred" mapred
%mvn_package ":%{name}-protobuf" protobuf
%mvn_package ":%{name}-thrift" thrift

%build

%mvn_build -f -- -Dhadoop.version=2 -P hadoop2

%install
%mvn_install

%files -f .mfiles
%doc LICENSE.txt NOTICE.txt README.txt

%files trevni -f .mfiles-trevni
%doc LICENSE.txt NOTICE.txt

%files ipc -f .mfiles-ipc
%doc LICENSE.txt NOTICE.txt

%files mapred -f .mfiles-mapred
%doc LICENSE.txt NOTICE.txt

%files protobuf -f .mfiles-protobuf
%doc LICENSE.txt NOTICE.txt

%files thrift -f .mfiles-thrift
%doc LICENSE.txt NOTICE.txt

%files javadoc -f .mfiles-javadoc
%doc LICENSE.txt NOTICE.txt

%changelog
* Mon Oct 14 2013 Peter MacKinnon <pmackinn@redhat.com> - 1.7.5-1
- Updated to 1.7.5
- Add mapred (hadoop2), ipc, trevni, thrift, protobuf artifacts

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Feb 06 2013 Java SIG <java-devel@lists.fedoraproject.org> - 1.6.2-5
- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild
- Replace maven BuildRequires with maven-local

* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Mar 13 2012 Ricardo Arguello <ricardo@fedoraproject.org> 1.6.2-3
- Remove *.dll files from source tarball
- Include license file

* Tue Mar 6 2012 Ricardo Arguello <ricardo@fedoraproject.org> 1.6.2-2
- Cleanup of the spec file

* Tue Feb 21 2012 Marek Goldmann <mgoldman@redhat.com> 1.6.2-1
- Initial packaging