# Use generic version %global antlr4_version 4 Name: tajo Version: 0.10.0 Release: 1%{?dist} Summary: A big data warehouse system on Hadoop License: ASL 2.0 URL: http://tajo.apache.org/ Source0: http://www.apache.org/dist/tajo/%{name}-%{version}/%{name}-%{version}-src.tar.gz Patch0: tajo-0.9.0-jetty8.patch BuildRequires: maven-local BuildRequires: mvn(com.codahale.metrics:metrics-core) BuildRequires: mvn(com.codahale.metrics:metrics-jvm) BuildRequires: mvn(com.google.code.findbugs:jsr305) BuildRequires: mvn(com.google.code.gson:gson) BuildRequires: mvn(com.google.guava:guava) BuildRequires: mvn(com.google.protobuf:protobuf-java) BuildRequires: mvn(com.maxmind.geoip:geoip-api) BuildRequires: mvn(com.twitter:parquet-column) BuildRequires: mvn(com.twitter:parquet-format) BuildRequires: mvn(com.twitter:parquet-hadoop) BuildRequires: mvn(commons-cli:commons-cli) BuildRequires: mvn(commons-io:commons-io) BuildRequires: mvn(commons-lang:commons-lang) BuildRequires: mvn(commons-logging:commons-logging) BuildRequires: mvn(commons-logging:commons-logging-api) BuildRequires: mvn(info.ganglia.gmetric4j:gmetric4j) %if %{?fedora} > 20 BuildRequires: mvn(io.netty:netty:3) BuildRequires: mvn(io.netty:netty-buffer) %else BuildRequires: mvn(io.netty:netty) BuildRequires: mvn(io.netty:netty-buffer:4) %endif BuildRequires: mvn(jline:jline) >= 1.0 BuildRequires: mvn(joda-time:joda-time) BuildRequires: mvn(junit:junit) #BuildRequires: mvn(net.minidev:json-smart:2.0) BuildRequires: mvn(org.antlr:antlr4:%{antlr4_version}) BuildRequires: mvn(org.antlr:antlr4-maven-plugin:%{antlr4_version}) BuildRequires: mvn(org.apache.avro:trevni-avro) BuildRequires: mvn(org.apache.avro:trevni-core) BuildRequires: mvn(org.apache.commons:commons-configuration) BuildRequires: mvn(org.apache.derby:derby) BuildRequires: mvn(org.apache.hadoop:hadoop-common) BuildRequires: mvn(org.apache.hadoop:hadoop-client) BuildRequires: mvn(org.apache.hadoop:hadoop-hdfs) BuildRequires: mvn(org.apache.hadoop:hadoop-mapreduce-client-core) BuildRequires: mvn(org.apache.hadoop:hadoop-mapreduce-client-shuffle) BuildRequires: mvn(org.apache.hadoop:hadoop-minicluster) BuildRequires: mvn(org.apache.hadoop:hadoop-yarn-api) BuildRequires: mvn(org.apache.hadoop:hadoop-yarn-common) BuildRequires: mvn(org.apache.hadoop:hadoop-yarn-server-common) BuildRequires: mvn(org.apache.hadoop:hadoop-yarn-server-nodemanager) BuildRequires: mvn(org.apache.hbase:hbase-server) BuildRequires: mvn(org.apache.hbase:hbase-client) BuildRequires: mvn(org.apache.maven:maven-core) BuildRequires: mvn(org.apache.maven:maven-plugin-api) BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-surefire-report-plugin) BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations) BuildRequires: mvn(org.apache.rat:apache-rat-plugin) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) BuildRequires: mvn(org.codehaus.mojo:exec-maven-plugin) BuildRequires: mvn(org.eclipse.jdt:core) BuildRequires: mvn(org.eclipse.jetty:jetty-server:8.1.14.v20131031) BuildRequires: mvn(org.eclipse.jetty:jetty-servlet:8.1.14.v20131031) BuildRequires: mvn(org.eclipse.jetty:jetty-util:8.1.14.v20131031) BuildRequires: mvn(org.eclipse.jetty:jetty-webapp:8.1.14.v20131031) BuildRequires: mvn(org.mockito:mockito-core) BuildRequires: mvn(org.ow2.asm:asm-all) BuildRequires: mvn(org.powermock:powermock-module-junit4) BuildRequires: mvn(org.powermock:powermock-api-mockito) %if 0 # TODO tajo-catalog-drivers BuildRequires: mvn(com.twitter:parquet-hive-bundle) BuildRequires: mvn(org.apache.thrift:libfb303) BuildRequires: mvn(org.apache.thrift:libthrift) BuildRequires: mvn(org.apache.hive:hive-cli) BuildRequires: mvn(org.apache.hive:hive-exec) BuildRequires: mvn(org.apache.hive:hive-metastore) BuildRequires: mvn(org.apache.hive.hcatalog:hcatalog-core) %endif BuildRequires: protobuf-compiler BuildRequires: %{_bindir}/sphinx-build BuildArch: noarch %description Apache Tajo is a robust big data relational and distributed data warehouse system for Apache Hadoop. Tajo is designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL (extract-transform-load process) on large data sets stored on HDFS and other data sources. By supporting SQL standards and leveraging advanced database techniques, Tajo allows direct control of distributed execution and data flow across a variety of query evaluation strategies and optimization opportunities. %package algebra Summary: Tajo Algebra %description algebra This package contains Tajo Algebra. %package catalog Summary: Tajo Catalog Parent POM %description catalog This package contains Tajo Catalog Parent POM. %package catalog-client Summary: Tajo Catalog Client %description catalog-client This package contains Tajo Catalog Client. %package catalog-common Summary: Tajo Catalog Common %description catalog-common This package contains Tajo Catalog Common. %package catalog-drivers Summary: Tajo Catalog Drivers Parent POM %description catalog-drivers This package contains Tajo Catalog Drivers Parent POM. %package catalog-server Summary: Tajo Catalog Server %description catalog-server This package contains Tajo Catalog Server. %package cli Summary: Tajo CLI tools %description cli This package contains Tajo CLI tools. %package client Summary: Tajo Client %description client This package contains Tajo Client. %package common Summary: Tajo Common %description common This package contains Tajo Common Package. %package core Summary: Tajo Core %description core This package contains Tajo Core. %package hcatalog Summary: Tajo Catalog Drivers HCatalog %description hcatalog This package contains Tajo Catalog Drivers HCatalog. %package jdbc Summary: Tajo JDBC Driver %description jdbc This package contains Tajo JDBC Driver. %package maven-plugins Summary: Tajo Maven Plugins %description maven-plugins This package contains Tajo Maven Plugins. %package plan Summary: Tajo Plan %description plan This module contains logical plan and query optimization parts. %package project Summary: Tajo Project POM %description project This package contains Tajo Project POM. %package pullserver Summary: Tajo PullServer %description pullserver This package contains Tajo PullServer. %package rpc Summary: Tajo Rpc %description rpc RPC Server/Client Implementation based on Netty and Protocol Buffer. %package storage Summary: Tajo Storage Parent POM %description storage This package contains Tajo Storage Parent POM. %package storage-common Summary: Tajo Storage Common %description storage-common This package contains Tajo Storage Common. %package storage-hbase Summary: Tajo HBase Storage %description storage-hbase This package contains Tajo HBase Storage. %package storage-hdfs Summary: Tajo HDFS Storage %description storage-hdfs This package contains Tajo HDFS Storage. %package javadoc Summary: Javadoc for %{name} %description javadoc This package contains javadoc for %{name}. %package doc Summary: Apache Tajo Documentation %description doc Apache Tajo Documentation. %prep %setup -q -n %{name}-%{version}-src find . -name "*.jar" -print -delete find . -name "*.class" -print -delete %patch0 -p1 sed -i "s|org.apache.tajo.org.objectweb.asm|org.objectweb.asm|" \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/CaseWhenEmitter.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/CaseWhenSwitchGenerator.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/CodeGenUtils.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/EvalCodeGenContext.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/EvalCodeGenerator.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/LegacyFunctionBindingEmitter.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/ScalarFunctionBindingEmitter.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java \ tajo-core/src/main/java/org/apache/tajo/engine/codegen/VariablesPreBuilder.java %pom_remove_dep org.apache.tajo:tajo-thirdparty-asm tajo-project %pom_remove_dep org.apache.tajo:tajo-thirdparty-asm tajo-core %pom_add_dep org.ow2.asm:asm-all:4.2 tajo-core # Temporary build fix sed -i.commons-configuration "s|List reporterNames =|List reporterNames =|" \ tajo-core/src/main/java/org/apache/tajo/util/metrics/TajoSystemMetrics.java sed -i.commons-configuration "s|for(String eachReporterName: reporterNames)|for(Object eachReporterName: reporterNames)|" \ tajo-core/src/main/java/org/apache/tajo/util/metrics/TajoSystemMetrics.java %pom_disable_module tajo-dist %pom_disable_module tajo-thirdparty/asm %pom_disable_module tajo-catalog-drivers tajo-catalog #%% pom_disable_module tajo-storage-hbase tajo-storage %pom_remove_plugin :maven-dependency-plugin tajo-algebra %pom_remove_plugin :maven-dependency-plugin tajo-cli %pom_remove_plugin :maven-dependency-plugin tajo-client %pom_remove_plugin :maven-dependency-plugin tajo-core %pom_remove_plugin :maven-assembly-plugin tajo-jdbc %pom_remove_plugin :maven-dependency-plugin tajo-catalog/tajo-catalog-server %pom_remove_plugin :maven-dependency-plugin tajo-catalog/tajo-catalog-common %pom_remove_plugin :maven-dependency-plugin tajo-plan %pom_remove_plugin :maven-pmd-plugin tajo-cli %pom_remove_plugin :maven-pmd-plugin tajo-client %pom_remove_plugin :maven-pmd-plugin tajo-storage/tajo-storage-common %pom_remove_plugin :maven-surefire-report-plugin %pom_remove_plugin :maven-surefire-report-plugin tajo-catalog %pom_remove_plugin :maven-surefire-report-plugin tajo-client %pom_remove_plugin :maven-surefire-report-plugin tajo-common %pom_remove_plugin :maven-surefire-report-plugin tajo-core %pom_remove_plugin :maven-surefire-report-plugin tajo-jdbc %pom_remove_plugin :maven-surefire-report-plugin tajo-project %pom_remove_plugin :maven-surefire-report-plugin tajo-rpc %pom_xpath_set "pom:dependency[pom:artifactId='antlr4']/pom:version" %{antlr4_version} tajo-project %pom_xpath_set "pom:dependency[pom:artifactId='antlr4-runtime']/pom:version" %{antlr4_version} tajo-project %pom_xpath_set "pom:plugin[pom:artifactId='antlr4-maven-plugin']/pom:version" %{antlr4_version} tajo-project %pom_remove_plugin :maven-clover2-plugin tajo-maven-plugins %pom_xpath_inject "pom:dependency[pom:artifactId = 'jline']" "2.10" tajo-cli %pom_xpath_set "pom:dependency[pom:artifactId = 'netty-buffer']/pom:version" 4 tajo-project %pom_xpath_inject "pom:dependency[pom:artifactId = 'netty-buffer']" "4" tajo-common %pom_xpath_inject "pom:dependency[pom:artifactId = 'netty-buffer']" "4" tajo-storage/tajo-storage-hdfs # cannot find symbol javax.annotation.Nullable %pom_add_dep com.google.code.findbugs:jsr305 tajo-client # i dont want upgrade to 2.0 @ the moment %pom_remove_dep net.minidev:json-smart tajo-storage/tajo-storage-hdfs rm -r tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/json # see https://github.com/DSpace/dspace-geoip/blob/dspace-geoip-1.2.3/pom.xml %pom_remove_dep org.dspace.dependencies:dspace-geoip tajo-core # https://gil.fedorapeople.org/geoip-api-java-1.2.14-1.fc20.src.rpm %pom_add_dep com.maxmind.geoip:geoip-api:1.2.14 tajo-core sed -i "s|com.sun.org.apache.commons.logging|org.apache.commons.logging|" \ tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java %pom_remove_dep org.apache.hbase: tajo-core %mvn_package org.apache.tajo:%{name}-main %{name} # Skip for now # NoClassDefFoundError: Could not initialize class org.apache.tajo.TpchTestBase # NoClassDefFoundError: Could not initialize class org.apache.tajo.QueryTestCaseBase rm -rf tajo-core/src/test %build # some test require hadoop >= 2.5.1 # use -- -Phcatalog-0.12.0 %mvn_build -s -f cd tajo-docs sed -i "s|0.8|0.10|" src/main/sphinx/conf.py %{__make} %{?_smp_mflags} html rm -r target/html/.buildinfo rm -r target/html/_static/jquery.js rm -r target/html/_static/underscore.js %install %mvn_install %files -f .mfiles-%{name} %dir %{_javadir}/%{name} %doc CHANGES README %license LICENSE NOTICE %files algebra -f .mfiles-%{name}-algebra %license LICENSE NOTICE %files catalog -f .mfiles-%{name}-catalog %license LICENSE NOTICE %files catalog-client -f .mfiles-%{name}-catalog-client %license LICENSE NOTICE %files catalog-common -f .mfiles-%{name}-catalog-common %license LICENSE NOTICE # TODO catalog-drivers %files catalog-server -f .mfiles-%{name}-catalog-server %license LICENSE NOTICE %files cli -f .mfiles-%{name}-cli %license LICENSE NOTICE %files client -f .mfiles-%{name}-client %license LICENSE NOTICE %files common -f .mfiles-%{name}-common %license LICENSE NOTICE %files core -f .mfiles-%{name}-core %license LICENSE NOTICE # TODO hcatalog %files jdbc -f .mfiles-%{name}-jdbc %license LICENSE NOTICE %files maven-plugins -f .mfiles-%{name}-maven-plugins %license LICENSE NOTICE %files plan -f .mfiles-%{name}-plan %license LICENSE NOTICE %files project -f .mfiles-%{name}-project %license LICENSE NOTICE %files pullserver -f .mfiles-%{name}-pullserver %license LICENSE NOTICE %files rpc -f .mfiles-%{name}-rpc %license LICENSE NOTICE %files storage -f .mfiles-%{name}-storage %license LICENSE NOTICE %files storage-common -f .mfiles-%{name}-storage-common %license LICENSE NOTICE %files storage-hbase -f .mfiles-%{name}-storage-hbase %license LICENSE NOTICE %files storage-hdfs -f .mfiles-%{name}-storage-hdfs %license LICENSE NOTICE %files javadoc -f .mfiles-javadoc %license LICENSE NOTICE %files doc %doc tajo-docs/target/html %license LICENSE NOTICE %changelog * Tue Mar 10 2015 gil cattaneo 0.10.0-1 - update to 0.10.0 * Sat Jan 24 2015 gil cattaneo 0.9.0-1 - initial rpm