# Conditionals to help breaking flume <-> kite dependency cycle %if 0%{?fedora} %bcond_with kite %bcond_with curator %bcond_with html # Not available test deps %bcond_with tests %endif Name: flume Version: 1.6.0 Release: 1%{?dist} Summary: A distributed log collection application for collecting data License: ASL 2.0 URL: http://flume.apache.org/ Source0: http://www.apache.org/dist/flume/stable/apache-%{name}-%{version}-src.tar.gz #Source1: flume-agent.default # Update to Jetty 9.2.1 and Guava 17.1 Patch0: flume-1.6.0-fedora-integration.patch # Update to MapDB 1.0.6 Patch1: flume-1.6.0-mapdb.patch BuildRequires: maven-local BuildRequires: mvn(com.google.guava:guava) BuildRequires: mvn(com.google.code.gson:gson) BuildRequires: mvn(com.google.protobuf:protobuf-java) #BuildRequires: mvn(com.sun.jersey:jersey-core:1) BuildRequires: mvn(com.thoughtworks.paranamer:paranamer-maven-plugin) BuildRequires: mvn(commons-cli:commons-cli) BuildRequires: mvn(commons-codec:commons-codec) BuildRequires: mvn(commons-collections:commons-collections) BuildRequires: mvn(commons-dbcp:commons-dbcp) BuildRequires: mvn(commons-io:commons-io) BuildRequires: mvn(commons-lang:commons-lang) BuildRequires: mvn(io.netty:netty:3) BuildRequires: mvn(javax.servlet:javax.servlet-api) BuildRequires: mvn(joda-time:joda-time) BuildRequires: mvn(log4j:apache-log4j-extras) BuildRequires: mvn(log4j:log4j:1.2.17) # :activemq-core:5.7.0 BuildRequires: mvn(org.apache.activemq:activemq-core) BuildRequires: mvn(org.apache.activemq:activemq-parent:pom:) BuildRequires: mvn(org.apache:apache:pom:) BuildRequires: mvn(org.apache.avro:avro) BuildRequires: mvn(org.apache.avro:avro-ipc) BuildRequires: mvn(org.apache.avro:avro-maven-plugin) %if %{with curator} # Currently broken, FTBFS rhbz#1239419 BuildRequires: mvn(org.apache.curator:curator-framework) BuildRequires: mvn(org.apache.curator:curator-recipes) BuildRequires: mvn(org.apache.curator:curator-test) %endif BuildRequires: mvn(org.apache.derby:derby) BuildRequires: mvn(org.apache.hadoop:hadoop-auth) BuildRequires: mvn(org.apache.hadoop:hadoop-common) BuildRequires: mvn(org.apache.hadoop:hadoop-hdfs) BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-remote-resources-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-site-plugin) BuildRequires: mvn(org.apache.mina:mina-core) 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:build-helper-maven-plugin) BuildRequires: mvn(org.eclipse.jetty:jetty-server) BuildRequires: mvn(org.eclipse.jetty:jetty-util) BuildRequires: mvn(org.mapdb:mapdb) BuildRequires: mvn(org.schwering:irclib) BuildRequires: mvn(org.slf4j:jcl-over-slf4j) BuildRequires: mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.slf4j:slf4j-log4j12) %if %{without html} BuildRequires: python-sphinx %endif BuildRequires: thrift %if %{with kite} # HBase was retired, because of incompatibility with protobuf 2.6+ BuildRequires: mvn(org.apache.hbase:hbase:pom:) BuildRequires: mvn(org.apache.hbase:hbase-client) BuildRequires: mvn(org.apache.hbase:hbase-common) # Currently broken, FTBFS rhbz#1106765,1239562 BuildRequires: mvn(org.apache.hive:hive-exec:1.0.0) BuildRequires: mvn(org.apache.hive:hive-metastore:1.0.0) # https://bugzilla.redhat.com/show_bug.cgi?id=1244657 BuildRequires: mvn(org.hbase:asynchbase) # https://bugzilla.redhat.com/show_bug.cgi?id=1179355 BuildRequires: mvn(org.kitesdk:kite-data-core) BuildRequires: mvn(org.kitesdk:kite-data-hbase) BuildRequires: mvn(org.kitesdk:kite-data-hive) BuildRequires: mvn(org.kitesdk:kite-morphlines-all) BuildRequires: mvn(org.kitesdk:kite-morphlines-solr-core) %endif %if %{with test} BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.apache.hadoop:hadoop-minicluster) BuildRequires: mvn(org.apache.hadoop:hadoop-minikdc) BuildRequires: mvn(org.apache.hbase:hbase-client::tests:) BuildRequires: mvn(org.apache.hbase:hbase-server) BuildRequires: mvn(org.apache.hbase:hbase-server::tests:) BuildRequires: mvn(org.apache.hbase:hbase-testing-util) BuildRequires: mvn(org.apache.hive:hive-cli:1.0.0) BuildRequires: mvn(org.apache.httpcomponents:httpclient) BuildRequires: mvn(org.apache.solr:solr-test-framework) BuildRequires: mvn(org.apache.zookeeper:zookeeper) BuildRequires: mvn(org.kitesdk:kite-morphlines-solr-core::tests:) BuildRequires: mvn(org.mockito:mockito-all) BuildRequires: mvn(org.easytesting:fest-reflect:1.4) %endif BuildArch: noarch %description Flume is a reliable, scalable, and manageable distributed data collection application for collecting data such as logs and delivering it to data stores such as Hadoop's HDFS. It can efficiently collect, aggregate, and move large amounts of log data. It has a simple, but flexible, architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many fail-over and recovery mechanisms. The system is centrally managed and allows for intelligent dynamic management. It uses a simple extensible data model that allows for online analytic applications. %package avro-source Summary: Flume legacy Avro source %description avro-source Flume legacy Avro source. %package file-channel Summary: Flume NG file-based channel %description file-channel Flume NG file-based channel. %package hdfs-sink Summary: Flume NG HDFS Sink %description hdfs-sink Flume NG HDFS Sink. %package irc-sink Summary: Flume NG IRC Sink %description irc-sink Flume NG IRC Sink. %package jdbc-channel Summary: Flume NG JDBC channel %description jdbc-channel Flume NG JDBC channel. %package jms-source Summary: Flume JMS Source %description jms-source Flume JMS Source. %package ng-auth Summary: Flume Auth %description ng-auth Flume Authentication. %package ng-channels Summary: Flume NG Channels Parent POM %description ng-channels Flume NG Channels Parent POM. %package ng-clients Summary: Flume NG Clients Parent POM %description ng-clients Flume NG Clients Parent POM. %package ng-configuration Summary: Flume NG Configuration %description ng-configuration Flume NG Configuration. %package ng-core Summary: Flume NG Core %description ng-core Flume NG Core. %if %{with curator} %package ng-embedded-agent Summary: Flume NG Embedded Agent %description ng-embedded-agent Flume Embedded Agent: Stable public API for Embedding a Flume 1.x Agent. %endif %package ng-legacy-sources Summary: Flume legacy Sources Parent POM %description ng-legacy-sources Flume legacy Sources Parent POM. %package ng-log4jappender Summary: Flume NG Log4j Appender %description ng-log4jappender Flume NG Log4j Appender. %if %{with curator} %package ng-node Summary: Flume NG Node %description ng-node Flume NG Node. %endif %package ng-sdk Summary: Flume NG SDK %description ng-sdk Flume Software Development Kit: Stable public API for integration with Flume 1.x. %package ng-sinks Summary: Flume NG Sinks Parent POM %description ng-sinks Flume NG Sinks Parent POM. %package ng-tests Summary: Flume NG Integration Tests %description ng-tests Flume NG Integration Tests. %package parent Summary: Flume Parent POM %description parent Flume Parent POM. %package scribe-source Summary: Flume Scribe Source %description scribe-source Flume Scribe Source. %package ng-sources Summary: Flume Sources Parent POM %description ng-sources Flume Sources Parent POM. %package spillable-memory-channel Summary: Flume NG Spillable Memory channel %description spillable-memory-channel Flume NG Spillable Memory channel. %package thrift-source Summary: Flume legacy Thrift Source %description thrift-source Flume legacy Thrift Source. %package tools Summary: Flume NG Tools %description tools Flume NG Tools. %package javadoc Summary: Javadoc for %{name} %description javadoc This package contains javadoc for %{name}. %package doc Summary: Documentation for %{name} Requires: %{name}-javadoc = %{version}-%{release} %description doc This package provides documentation for %{name}. %prep %setup -q -n apache-%{name}-%{version}-src %patch0 -p1 %patch1 -p1 %pom_remove_plugin -r :apache-rat-plugin %pom_disable_module flume-ng-dist # Use: elasticsearch:0.90.1, kafka_2.10:0.8.1.1 for m in elasticsearch kafka hbase; do %pom_disable_module flume-ng-${m}-sink flume-ng-sinks done # Use org.apache.kafka:kafka_2.10:0.8.1.1 %pom_disable_module flume-kafka-channel flume-ng-channels %pom_disable_module flume-kafka-source flume-ng-sources %if %{without kite} %pom_disable_module flume-dataset-sink flume-ng-sinks %pom_disable_module flume-ng-morphline-solr-sink flume-ng-sinks %endif %if %{without curator} %pom_disable_module flume-ng-node %pom_disable_module flume-ng-embedded-agent %endif # Use org.apache.hive.hcatalog:hive-hcatalog-streaming:1.0.0, org.apache.hive.hcatalog:hive-hcatalog-core:1.0.0 %pom_disable_module flume-hive-sink flume-ng-sinks # Use (NON free) org.twitter4j:twitter4j-core,twitter4j-media-support,twitter4j-stream:3.0.3 %pom_disable_module flume-twitter-source flume-ng-sources # No bundle dependencies in flume-ng-log4jappender jar %pom_remove_plugin :maven-assembly-plugin flume-ng-clients/flume-ng-log4jappender # Use latest servlet apis version %pom_change_dep -r :servlet-api javax.servlet:javax.servlet-api:3.1.0 %pom_change_dep -r com.sun.jersey: ::1 %pom_change_dep -r :log4j :log4j:1.2.17 %pom_change_dep -r :netty :netty:3 # Override profile setting %pom_change_dep -r :'${hadoop.common.artifact.id}' :hadoop-common:'${hadoop2.version}' # package javax.annotation.concurrent does not exist %pom_add_dep com.google.code.findbugs:jsr305 flume-ng-core %build # Regenerate Thrift source code see # https://issues.apache.org/jira/browse/FLUME-1796 # https://issues.apache.org/jira/browse/FLUME-2531 # Test suite disable for unavailable dep(s): org.easytesting:fest-reflect:1.4 %if %{without test} opts='-f' %endif %mvn_build $opts -s -- -PcompileThrift,hadoop-2 %if %{without html} sphinx-build %{?_smp_mflags} -a -b html -v -T %{name}-ng-doc/sphinx html rm html/.buildinfo find html -name "*.js" -print -delete sed -i "s|apidocs/index.html|%{_javadocdir}/%{name}/index.html|" html/index.html %endif %install %mvn_install %files avro-source -f .mfiles-flume-avro-source %license LICENSE NOTICE %files file-channel -f .mfiles-flume-file-channel %license LICENSE NOTICE %files hdfs-sink -f .mfiles-flume-hdfs-sink %license LICENSE NOTICE %files irc-sink -f .mfiles-flume-irc-sink %license LICENSE NOTICE %files jdbc-channel -f .mfiles-flume-jdbc-channel %license LICENSE NOTICE %files jms-source -f .mfiles-flume-jms-source %license LICENSE NOTICE %files ng-auth -f .mfiles-flume-ng-auth %license LICENSE NOTICE %files ng-channels -f .mfiles-flume-ng-channels %license LICENSE NOTICE %files ng-clients -f .mfiles-flume-ng-clients %license LICENSE NOTICE %files ng-configuration -f .mfiles-flume-ng-configuration %doc CHANGELOG DEVNOTES README RELEASE-NOTES %license LICENSE NOTICE %files ng-core -f .mfiles-flume-ng-core %license LICENSE NOTICE %if %{with curator} %files ng-embedded-agent -f .mfiles-flume-ng-embedded-agent %license LICENSE NOTICE %endif %files ng-legacy-sources -f .mfiles-flume-ng-legacy-sources %license LICENSE NOTICE %files ng-log4jappender -f .mfiles-flume-ng-log4jappender %license LICENSE NOTICE %if %{with curator} %files ng-node -f .mfiles-flume-ng-node %license LICENSE NOTICE %endif %files ng-sdk -f .mfiles-flume-ng-sdk %license LICENSE NOTICE %files ng-sinks -f .mfiles-flume-ng-sinks %license LICENSE NOTICE %files ng-sources -f .mfiles-flume-ng-sources %license LICENSE NOTICE %files ng-tests -f .mfiles-flume-ng-tests %license LICENSE NOTICE %files parent -f .mfiles-flume-parent %license LICENSE NOTICE %files scribe-source -f .mfiles-flume-scribe-source %license LICENSE NOTICE %files spillable-memory-channel -f .mfiles-flume-spillable-memory-channel %license LICENSE NOTICE %files thrift-source -f .mfiles-flume-thrift-source %license LICENSE NOTICE %files tools -f .mfiles-flume-tools %license LICENSE NOTICE %files javadoc -f .mfiles-javadoc %license LICENSE NOTICE %if %{without html} %files doc %doc html/* %license LICENSE NOTICE %endif %changelog * Tue Jul 14 2015 gil cattaneo 1.6.0-1 - update to 1.6.0 * Sat Jan 10 2015 Javi Roman 1.5.2-1 - Update to Netty 3.6.6-Final - Update to Jetty 9.2.1 and Guava 1.17 - Update to MapDB 1.0.6 * Sun Jan 04 2015 gil cattaneo 1.5.2-1 - update to 1.5.2 * Fri Jul 18 2014 gil cattaneo 1.5.0.1-1 - update to 1.5.0.1 * Tue Jul 09 2013 gil cattaneo 1.4.0-1 - initial rpm