Blob Blame History Raw
Name:             avro
Version:          1.7.6
Release:          2%{?dist}
Summary:          Data serialization system
License:          ASL 2.0
URL:              http://avro.apache.org

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

BuildArch:        noarch

BuildRequires:    maven-local
BuildRequires:    mvn(com.thoughtworks.paranamer:paranamer)
BuildRequires:    mvn(io.netty:netty:3)
BuildRequires:    mvn(org.apache.hadoop:hadoop-client)
BuildRequires:    mvn(org.apache.maven:maven-project)
BuildRequires:    mvn(org.apache.maven.plugins:maven-checkstyle-plugin)
BuildRequires:    mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires:    mvn(org.apache.thrift:libthrift)
BuildRequires:    mvn(org.codehaus.jackson:jackson-core-asl)
BuildRequires:    mvn(org.codehaus.jackson:jackson-mapper-asl)
BuildRequires:    mvn(org.codehaus.mojo:javacc-maven-plugin)
BuildRequires:    mvn(org.eclipse.jetty:jetty-server)
BuildRequires:    mvn(org.eclipse.jetty:jetty-servlet)
BuildRequires:    mvn(org.eclipse.jetty:jetty-util)
BuildRequires:    mvn(org.slf4j:slf4j-api)
BuildRequires:    mvn(org.slf4j:slf4j-simple)
BuildRequires:    mvn(org.tukaani:xz)
BuildRequires:    mvn(org.xerial.snappy:snappy-java)

%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 compiler
Summary:          Apache Avro Compiler

%description  compiler
Avro Compilers for Avro IDL and Avro Specific Java API

%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 maven-plugin
Summary:          Apache Avro Maven Plugin

%description  maven-plugin
Avro Maven plugin for Avro IDL and Specific API Compilers

%package parent
Summary:          Apache Avro Java parent POM

%description  parent
Avro parent POM Java project

%package protobuf
Summary:          Apache Avro Protobuf Compatibility

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

%package thrift
Summary:          Apache Avro Thrift Compatibility

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

%package toplevel
Summary:          Apache Avro Toplevel POM

%description  toplevel
Apache Avro Toplevel POM

%package trevni
Summary:          Trevni Java
Requires:         avro-mapred

%description  trevni
Trevni: A Column File Format

%package javadoc
Summary:          Javadoc for %{name}

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

%prep
%setup -q
%patch0 -p1
%patch1 -p1

# Unsupported features
%pom_disable_module archetypes lang/java

%pom_disable_module tools lang/java

%pom_xpath_set pom:properties/pom:hadoop2.version 2.0.5-alpha lang/java
%pom_xpath_set pom:properties/pom:jetty.version 9.0.3.v20130506 lang/java
%pom_xpath_set pom:properties/pom:jetty-servlet-api.version 3.1.0 lang/java
%pom_change_dep -r :junit-dep :junit lang/java

# Use netty 3 compat package
%pom_xpath_set pom:properties/pom:netty.version 3 lang/java

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

# package org.tukaani.xz does not exist
%pom_add_dep org.tukaani:xz lang/java/avro

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

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

# Disable default-jar execution of maven-jar-plugin, which is causing
# problems with version 3.0.0 of the plugin.
%pom_xpath_remove "pom:plugin[pom:artifactId='maven-jar-plugin']/pom:executions/pom:execution[pom:id = 'main']" lang/java/mapred
for mod in mapred trevni/avro; do
    %pom_xpath_inject "pom:plugin[pom:artifactId='maven-jar-plugin']/pom:executions" "
        <execution>
          <id>default-jar</id>
          <phase>skip</phase>
        </execution>" lang/java/${mod}
done
 
%mvn_package ":trevni-doc"  __noinstall
%mvn_package ":trevni-avro" trevni
%mvn_package ":trevni-core" trevni
%mvn_package ":trevni-java" trevni
%mvn_package ":trevni-avro::hadoop2:" trevni
%mvn_package ":avro-mapred::hadoop2:" avro-mapred

%build

%mvn_build -sf -- -Dhadoop.version=2 -P hadoop2 -Dcheckstyle.skip=true

%install
%mvn_install

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

%files compiler -f .mfiles-avro-compiler
%license LICENSE.txt NOTICE.txt

%files ipc -f .mfiles-avro-ipc
%license LICENSE.txt NOTICE.txt

%files mapred -f .mfiles-avro-mapred
%license LICENSE.txt NOTICE.txt

%files maven-plugin -f .mfiles-avro-maven-plugin
%license LICENSE.txt NOTICE.txt

%files parent -f .mfiles-avro-parent
%license LICENSE.txt NOTICE.txt

%files protobuf -f .mfiles-avro-protobuf
%license LICENSE.txt NOTICE.txt

%files thrift -f .mfiles-avro-thrift
%license LICENSE.txt NOTICE.txt

%files toplevel -f .mfiles-avro-toplevel
%license LICENSE.txt NOTICE.txt

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

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

%changelog
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Aug 01 2016 gil cattaneo <puntogil@libero.it> - 1.7.6-1
- update to 1.7.6

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.5-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Sun Sep 20 2015 gil cattaneo <puntogil@libero.it> - 1.7.5-12
- fix FTBFS rhbz#1239381
- add sub package maven-plugin rhbz#1119277,1170178
- fix BR list and use BR mvn()-like
- introduce license macro
- fix some rpmlint problems

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.5-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Tue Apr 21 2015 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.5-10
- Hadoop is now on ARM

* Fri Sep 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> - 1.7.5-9
- No hadoop on ARM (yet)

* Sun Jun 29 2014 Ricardo Arguello <ricardo@fedoraproject.org> - 1.7.5-8
- Fix to compile with OpenJDK 8

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Sun Mar 30 2014 Ricardo Arguello <ricardo@fedoraproject.org> - 1.7.5-6
- Add a patch to build with OpenJDK 8

* Fri Mar 28 2014 Michael Simacek <msimacek@redhat.com> - 1.7.5-5
- Use Requires: java-headless rebuild (#1067528)

* Mon Jan 27 2014 Marek Goldmann <mgoldman@redhat.com> - 1.7.5-4
- Use netty 3 compat package, RHBZ#1053466

* Fri Nov 29 2013 Marek Goldmann <mgoldman@redhat.com> - 1.7.5-3
- Do not ship avro-mapred on ARM since hadoop is not available there (yet)

* Thu Nov 28 2013 Marek Goldmann <mgoldman@redhat.com> - 1.7.5-2
- Support for new hadoop

* 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