%global hadoop_version 2.2.0 %global hadoop_generation 23 %global pig_version 0.12.0 %global jetty_version 8.1.14.v20131031 %global jline_version 1 Name: hive Version: 0.12.0 Release: 4%{?dist} Summary: The Apache Hadoop data warehouse License: ASL 2.0 URL: http://hive.apache.org/ Source0: https://github.com/apache/%{name}/archive/release-%{version}.tar.gz Patch0: %{name}-general-build-mods.patch # following patches are organized per module Patch1: %{name}-shims-mods.patch Patch2: %{name}-metastore-mods.patch Patch3: %{name}-ql-mods.patch Patch4: %{name}-service-mods.patch Patch5: %{name}-hcatalog-mods.patch Patch6: %{name}-model-enhancer-asm.patch Patch7: %{name}-hwi-mods.patch BuildRequires: activemq-core BuildRequires: activemq-kahadb BuildRequires: ant-contrib BuildRequires: apache-commons-exec BuildRequires: apache-ivy >= 2.3.0 BuildRequires: avro-mapred BuildRequires: datanucleus-api-jdo BuildRequires: datanucleus-rdbms BuildRequires: fb303-devel BuildRequires: fb303-java BuildRequires: glassfish-servlet-api BuildRequires: hadoop-tests BuildRequires: ivy-local >= 3.5.0-2 BuildRequires: jackson BuildRequires: java-devel BuildRequires: javaewah BuildRequires: javolution BuildRequires: jdo-api BuildRequires: jetty8 BuildRequires: json-lib BuildRequires: json_simple BuildRequires: libthrift-java BuildRequires: maven-clean-plugin BuildRequires: maven-install-plugin BuildRequires: maven-local >= 3.5.0-2 BuildRequires: pig BuildRequires: rsync BuildRequires: jul-to-slf4j BuildRequires: snappy-java BuildRequires: thrift-devel BuildRequires: xmvn >= 1.5.0 BuildRequires: zookeeper-java BuildArch: noarch # exclude arm due to hadoop dependencies ExcludeArch: %{arm} # problems with auto-requires being generated # Bug 1075626 Requires: java >= 1:1.7.0 Requires: antlr3-tool Requires: apache-commons-cli Requires: apache-commons-codec Requires: apache-commons-collections Requires: apache-commons-compress Requires: apache-commons-configuration Requires: apache-commons-lang Requires: apache-commons-logging Requires: apache-commons-pool Requires: avro-ipc Requires: avro-mapred Requires: datanucleus-api-jdo Requires: datanucleus-rdbms Requires: derby Requires: fb303-java Requires: glassfish-el-api Requires: guava Requires: hadoop-common Requires: hadoop-mapreduce Requires: hbase Requires: jackson Requires: javaewah Requires: javolution Requires: jboss-transaction-1.2-api Requires: jdo-api Requires: jetty8 Requires: jline1 Requires: json-lib Requires: libthrift-java Requires: log4j Requires: mockito Requires: netty3 Requires: protobuf-java Requires: slf4j Requires: snappy-java Requires: zookeeper-java %description The Apache Hive data warehouse software facilitates querying and managing large datasets residing in distributed storage. Apache Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL. %package hcatalog Summary: hcatalog module for Hive Requires: %{name} %description hcatalog This package contains module for the hcatalog sub-project in %{name}. %package javadoc Summary: Javadoc for %{name} %description javadoc This package contains javadoc for %{name}. %prep %mvn_package :hcatalog hcatalog %setup -q -n %{name}-release-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 find -name "*.jar" -delete sed -i 's/\r//' LICENSE NOTICE README.txt # make sure build doesn't d/l ivy sed -i "/ hive-exec %mvn_artifact build/ql/pom.xml build/ql/%{name}-exec-%{version}.jar xmvn install:install-file -Dfile=build/ql/%{name}-exec-%{version}.jar -DpomFile=build/ql/pom.xml # hcatalog mkdir -p build/hcatalog/classes pushd . cd hcatalog %mvn_build -f -s -j -- \ -Dmvn.hadoop.profile=hadoop%{hadoop_generation} -Dhadoop.version=%{hadoop_version} \ -Djetty.webhcat.version=%{jetty_version} \ -Dpig.version=%{pig_version} # javadoc setup for module in core hcatalog-pig-adapter server-extensions webhcat/java-client webhcat/svr; do cp -r ${module}/target/classes/* ../build/hcatalog/classes cp -r ${module}/src/main/java/* src/java/ done popd # combo javadoc this time ant $ARG_BLOCK javadoc %install %mvn_install -J build/dist/docs # hcatalog install pushd . cd hcatalog # add the parent pom install -pm 0644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-hcatalog.pom %add_maven_depmap JPP.%{name}-hcatalog.pom -f "hcatalog" # inconsistent module naming means we do these individually install -pm 0644 core/target/hcatalog-core-%{version}.jar %{buildroot}%{_javadir}/%{name}/hcatalog-core.jar install -pm 0644 core/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-hcatalog-core.pom %add_maven_depmap JPP.%{name}-hcatalog-core.pom %{name}/hcatalog-core.jar -f "hcatalog" install -pm 0644 hcatalog-pig-adapter/target/hcatalog-pig-adapter-%{version}.jar %{buildroot}%{_javadir}/%{name}/hcatalog-pig-adapter.jar install -pm 0644 hcatalog-pig-adapter/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-hcatalog-pig-adapter.pom %add_maven_depmap JPP.%{name}-hcatalog-pig-adapter.pom %{name}/hcatalog-pig-adapter.jar -f "hcatalog" install -pm 0644 server-extensions/target/hcatalog-server-extensions-%{version}.jar %{buildroot}%{_javadir}/%{name}/hcatalog-server-extensions.jar install -pm 0644 server-extensions/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-hcatalog-server-extensions.pom %add_maven_depmap JPP.%{name}-hcatalog-server-extensions.pom %{name}/hcatalog-server-extensions.jar -f "hcatalog" install -pm 0644 webhcat/java-client/target/webhcat-java-client-%{version}.jar %{buildroot}%{_javadir}/%{name}/webhcat-java-client.jar install -pm 0644 webhcat/java-client/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-webhcat-java-client.pom %add_maven_depmap JPP.%{name}-webhcat-java-client.pom %{name}/webhcat-java-client.jar -f "hcatalog" install -pm 0644 webhcat/svr/target/webhcat-%{version}.jar %{buildroot}%{_javadir}/%{name}/webhcat.jar install -pm 0644 webhcat/svr/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-webhcat.pom %add_maven_depmap JPP.%{name}-webhcat.pom %{name}/webhcat.jar -f "hcatalog" popd # create the root from here install -d -m 0755 %{buildroot}%{_datadir}/%{name} install -d -m 0755 %{buildroot}%{_datadir}/%{name}/bin install -d -m 0755 %{buildroot}%{_datadir}/%{name}/bin/ext install -d -m 0755 %{buildroot}%{_datadir}/%{name}/bin/ext/util install -d -m 0755 %{buildroot}%{_datadir}/%{name}/lib install -d -m 0755 %{buildroot}%{_datadir}/%{name}/conf install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} # bin install -dm 0755 %{buildroot}%{_bindir} for f in %{name} hive-config.sh init-hive-dfs.sh metatool schematool; do install -p bin/${f} %{buildroot}%{_datadir}/%{name}/bin ln -s %{_datadir}/%{name}/bin/${f} %{buildroot}%{_bindir}/${f} done # bin/ext/util cp -pr bin/ext/* %{buildroot}%{_datadir}/%{name}/bin/ext # don't have these just yet... for f in beeline.sh hiveserver2.sh hwi.sh; do rm %{buildroot}%{_datadir}/%{name}/bin/ext/${f} done # conf for f in hive-default.xml hive-env.sh hive-exec-log4j.properties hive-log4j.properties; do cp -p build/dist/conf/${f}.template %{buildroot}%{_datadir}/%{name}/conf/${f} ln -s %{_datadir}/%{name}/conf/${f} %{buildroot}%{_sysconfdir}/%{name}/${f} done # lib rsync -aP build/dist/lib/*.jar build/ivy/lib/hadoop0.%{hadoop_generation}.shim/*.jar \ %{buildroot}%{_datadir}/%{name}/lib # xmvn-subst won't link JDK tools.jar rm %{buildroot}%{_datadir}/%{name}/lib/tools-*.jar %{_bindir}/xmvn-subst %{buildroot}%{_datadir}/%{name}/lib # manually replace the hive jars with their links rm %{buildroot}%{_datadir}/%{name}/lib/hive-*.jar for m in beeline cli common contrib exec hwi jdbc metastore serde service shims; do ln -s %{_javadir}/%{name}/%{name}-${m}.jar %{buildroot}%{_datadir}/%{name}/lib/%{name}-${m}-%{version}.jar done # MR needs the shims and thrift jars in it's classpath mkdir -p -m0755 %{buildroot}/%{_datadir}/hadoop/mapreduce/lib ln -s %{_javadir}/%{name}/%{name}-shims.jar %{buildroot}%{_datadir}/hadoop/mapreduce/lib/%{name}-shims.jar ln -s `xmvn-resolve org.apache.thrift:libthrift` %{buildroot}%{_datadir}/hadoop/mapreduce/lib/%{name}-libthrift.jar %check # tests are not run due to dependency on hive hbase support # which is currently unavailable %files -f .mfiles %doc LICENSE NOTICE README.txt %{_bindir}/* %{_datadir}/%{name} %{_sysconfdir}/%{name} %dir %{_javadir}/%{name} %{_datadir}/hadoop/mapreduce/lib/%{name}-shims.jar %{_datadir}/hadoop/mapreduce/lib/%{name}-libthrift.jar %files hcatalog -f hcatalog/.mfiles-hcatalog %files javadoc -f .mfiles-javadoc %doc LICENSE NOTICE %changelog * Sat Jun 07 2014 Fedora Release Engineering - 0.12.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu Mar 20 2014 Peter MacKinnon 0.12.0-3 - enable full build profile (almost) * Tue Mar 18 2014 Peter MacKinnon 0.12.0-2 - reinstate exclude arch arm because of hadoop dep * Thu Feb 27 2014 Peter MacKinnon 0.12.0-1 - Initial rpm - Add bin and env scripts - Remove ivy download - Add missing maven plugins - Review improvements