Blame spark.spec

William Benton 5f9051f
%global spark_version 0.9.1
William Benton d14ca0e
%global spark_version_suffix -rc3
William Benton d14ca0e
%global spark_release_suffix .rc3
William Benton 42acb0c
%global scala_version 2.10
William Benton 42acb0c
William Benton 42acb0c
%global want_hadoop 1
William Benton 42acb0c
William Benton 42acb0c
%global remap_version_to_installed() sed -i -e 's/"%{1}"[\t ]*%%[\t ]*"%{2}"[\t ]*%%[\t ]*"[^"]*"/"%{1}" %% "%{2}" %% "'$(rpm -q --qf "%%%%{version}" $(rpm -q --whatprovides "mvn(%{1}:%{2})" ))'"/g' %{3}
William Benton 42acb0c
William Benton 42acb0c
%global climbing_nemesis() ./climbing-nemesis.py %{1} %{2} ivy-local --log debug --version $(rpm -q --qf "%%%%{version}" $(rpm -q --whatprovides "mvn(%{1}:%{2})" ))
William Benton 42acb0c
William Benton 42acb0c
Name:		spark
William Benton 42acb0c
Version:	%{spark_version}
edf553e
Release:	0.6%{spark_release_suffix}%{?dist}
William Benton 42acb0c
Summary:	Lightning-fast cluster computing
William Benton 42acb0c
William Benton 42acb0c
License:	ASL 2.0
William Benton 42acb0c
URL:		http://spark.apache.org
William Benton 42acb0c
Source0:	https://github.com/apache/spark/archive/v%{spark_version}%{spark_version_suffix}.tar.gz
William Benton 5f9051f
Source1:	https://raw.github.com/willb/rpm-packaging/v0.9.0/spark-packaging/xmvn-sbt
William Benton 5f9051f
Source2:	https://raw.github.com/willb/rpm-packaging/v0.9.0/spark-packaging/xmvn-sbt.properties
William Benton 42acb0c
William Benton d14ca0e
Patch0:		spark-v0.9.1-rc3-0001-Replace-lift-json-with-json4s-jackson.patch
William Benton d14ca0e
Patch1:		spark-v0.9.1-rc3-0002-use-sbt-0.13.1.patch
William Benton d14ca0e
Patch2:		spark-v0.9.1-rc3-0003-Removed-sbt-plugins.patch
William Benton d14ca0e
Patch3:		spark-v0.9.1-rc3-0004-removed-examples.patch
William Benton d14ca0e
Patch4:		spark-v0.9.1-rc3-0005-Removed-code-depending-on-Kryo.patch
William Benton d14ca0e
Patch5:		spark-v0.9.1-rc3-0006-remove-unavailable-and-unnecessary-deps.patch
William Benton d14ca0e
Patch6:		spark-v0.9.1-rc3-0007-use-Jetty-8.patch
William Benton d14ca0e
Patch7:		spark-v0.9.1-rc3-0008-use-Akka-2.3.0-RC2.patch
William Benton d14ca0e
Patch8:		spark-v0.9.1-rc3-0009-xmvn.patch
William Benton 42acb0c
William Benton 5668e35
# BuildArch:	noarch
William Benton 42acb0c
BuildRequires:	sbt >= 0.13.1-5
William Benton 42acb0c
BuildRequires:	scala
William Benton 42acb0c
BuildRequires:	python
William Benton 42acb0c
BuildRequires:	maven-local
William Benton 42acb0c
BuildRequires:	javapackages-tools
William Benton 42acb0c
Requires:	javapackages-tools
William Benton 42acb0c
Requires:	scala
William Benton 42acb0c
William Benton 42acb0c
BuildRequires:	jetty8
William Benton 42acb0c
Requires:	jetty8
William Benton 42acb0c
William Benton 42acb0c
BuildRequires:	plexus-containers-component-annotations
William Benton 42acb0c
William Benton 42acb0c
BuildRequires:	mvn(org.json4s:json4s-jackson_%{scala_version})
William Benton 42acb0c
Requires:	mvn(org.json4s:json4s-jackson_%{scala_version})
William Benton 42acb0c
William Benton 42acb0c
BuildRequires:	mvn(com.thoughtworks.paranamer:paranamer)
William Benton 42acb0c
Requires:	mvn(com.thoughtworks.paranamer:paranamer)
William Benton 42acb0c
William Benton 0e651cb
BuildRequires:	mvn(com.clearspring.analytics:stream)
William Benton 0e651cb
BuildRequires:	mesos-java
William Benton 0e651cb
William Benton 42acb0c
BuildRequires:	mvn(com.codahale.metrics:metrics-core)
William Benton 42acb0c
BuildRequires:	mvn(com.codahale.metrics:metrics-ganglia)
William Benton 42acb0c
BuildRequires:	mvn(com.codahale.metrics:metrics-graphite)
William Benton 42acb0c
BuildRequires:	mvn(com.codahale.metrics:metrics-json)
William Benton 42acb0c
BuildRequires:	mvn(com.codahale.metrics:metrics-jvm)
William Benton 42acb0c
BuildRequires:	mvn(com.google.code.findbugs:jsr305)
William Benton 42acb0c
BuildRequires:	mvn(com.google.guava:guava)
William Benton 42acb0c
BuildRequires:	mvn(commons-daemon:commons-daemon)
William Benton 42acb0c
BuildRequires:	mvn(com.ning:compress-lzf)
William Benton 42acb0c
BuildRequires:	mvn(io.netty:netty-all)
William Benton 42acb0c
BuildRequires:	mvn(it.unimi.dsi:fastutil)
William Benton 42acb0c
BuildRequires:	mvn(log4j:log4j)
William Benton 42acb0c
BuildRequires:	mvn(net.java.dev.jets3t:jets3t)
William Benton 42acb0c
%if %{want_hadoop}
William Benton 42acb0c
BuildRequires:	mvn(org.apache.hadoop:hadoop-client)
William Benton 42acb0c
%endif
William Benton 42acb0c
BuildRequires:	mvn(org.easymock:easymock)
William Benton 42acb0c
BuildRequires:	mvn(org.eclipse.jetty:jetty-server)
William Benton 42acb0c
BuildRequires:	mvn(org.eclipse.jetty.orbit:javax.servlet)
William Benton 42acb0c
BuildRequires:	mvn(org.jblas:jblas)
William Benton 42acb0c
BuildRequires:	mvn(org.ow2.asm:asm)
William Benton 42acb0c
BuildRequires:	mvn(org.slf4j:slf4j-api)
William Benton 42acb0c
BuildRequires:	mvn(org.slf4j:slf4j-log4j12)
William Benton 42acb0c
BuildRequires:	mvn(com.typesafe.akka:akka-actor_%{scala_version})
William Benton 42acb0c
BuildRequires:	mvn(com.typesafe.akka:akka-remote_%{scala_version})
William Benton 42acb0c
BuildRequires:	mvn(org.xerial.snappy:snappy-java)
William Benton 42acb0c
BuildRequires:	mvn(com.freevariable.lancer:lancer)
William Benton 42acb0c
William Benton 42acb0c
Requires:	mvn(com.codahale.metrics:metrics-core)
William Benton 42acb0c
Requires:	mvn(com.codahale.metrics:metrics-ganglia)
William Benton 42acb0c
Requires:	mvn(com.codahale.metrics:metrics-graphite)
William Benton 42acb0c
Requires:	mvn(com.codahale.metrics:metrics-json)
William Benton 42acb0c
Requires:	mvn(com.codahale.metrics:metrics-jvm)
William Benton 42acb0c
Requires:	mvn(com.google.code.findbugs:jsr305)
William Benton 42acb0c
Requires:	mvn(com.google.guava:guava)
William Benton 42acb0c
Requires:	mvn(commons-daemon:commons-daemon)
William Benton 42acb0c
Requires:	mvn(com.ning:compress-lzf)
William Benton 42acb0c
Requires:	mvn(io.netty:netty-all)
William Benton 42acb0c
Requires:	mvn(it.unimi.dsi:fastutil)
William Benton 42acb0c
Requires:	mvn(log4j:log4j)
William Benton 42acb0c
Requires:	mvn(net.java.dev.jets3t:jets3t)
William Benton 42acb0c
%if %{want_hadoop}
William Benton 42acb0c
Requires:	mvn(org.apache.hadoop:hadoop-client)
William Benton 42acb0c
%endif
William Benton 42acb0c
Requires:	mvn(org.apache.zookeeper:zookeeper)
William Benton 42acb0c
Requires:	mvn(org.easymock:easymock)
William Benton 42acb0c
Requires:	mvn(org.eclipse.jetty:jetty-server)
William Benton 42acb0c
Requires:	mvn(org.eclipse.jetty.orbit:javax.servlet)
William Benton 42acb0c
Requires:	mvn(org.jblas:jblas)
William Benton 42acb0c
Requires:	mvn(org.ow2.asm:asm)
William Benton 42acb0c
Requires:	mvn(org.slf4j:slf4j-api)
William Benton 42acb0c
Requires:	mvn(org.slf4j:slf4j-log4j12)
William Benton 42acb0c
Requires:	mvn(com.typesafe.akka:akka-actor_%{scala_version})
William Benton 42acb0c
Requires:	mvn(com.typesafe.akka:akka-remote_%{scala_version})
William Benton 42acb0c
Requires:	mvn(org.xerial.snappy:snappy-java)
William Benton 42acb0c
Requires:	mvn(com.freevariable.lancer:lancer)
William Benton 42acb0c
William Benton 42acb0c
%description
William Benton 42acb0c
William Benton 42acb0c
Apache Spark is a fast and general engine for large-scale data processing.
William Benton 42acb0c
William Benton 42acb0c
%package javadoc
William Benton 42acb0c
Summary:	Javadoc for %{name}
William Benton 42acb0c
William Benton 42acb0c
%description javadoc
William Benton 42acb0c
Javadoc for %{name}.
William Benton 42acb0c
William Benton 42acb0c
%prep
William Benton 42acb0c
%setup -q -n %{name}-%{spark_version}%{spark_version_suffix}
William Benton 42acb0c
%patch0 -p1
William Benton 42acb0c
%patch1 -p1
William Benton 42acb0c
%patch2 -p1
William Benton 42acb0c
%patch3 -p1
William Benton 42acb0c
%patch4 -p1
William Benton 312407f
%patch5 -p1
William Benton 312407f
%patch6 -p1
William Benton 42acb0c
%patch7 -p1
William Benton 42acb0c
%patch8 -p1
William Benton 42acb0c
William Benton 609e58b
# don't use shaded ASM
William Benton 49cc4af
William Benton 49cc4af
for asm_file in $(find . -name *.scala | xargs grep -l esotericsoftware) ; do
William Benton 49cc4af
    sed -i -e 's|com[.]esotericsoftware[.]reflectasm[.]shaded[.]||' $asm_file
William Benton 49cc4af
done
William Benton 609e58b
William Benton 42acb0c
sed -i -e 's/\(val [A-Z]\+_JVM_VERSION =[^1]\+\)1.6"/\11.7"/' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
# replace Colt with Lancer
William Benton 42acb0c
sed -i -e 's/"colt.*1[.]2[.]0"/"com.freevariable.lancer" % "lancer" % "0.0.1"/' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
for jetfile in $(find . -name \*.scala | xargs grep -l cern\\.jet) ; do
William Benton 42acb0c
    sed -i -e 's|cern[.]jet[.]random[.]engine|com.freevariable.lancer.random|' $jetfile
William Benton 42acb0c
    sed -i -e 's|cern[.]jet[.]random|com.freevariable.lancer.random|' $jetfile
William Benton 42acb0c
    sed -i -e 's|cern[.]jet[.]stat|com.freevariable.lancer.stat|' $jetfile
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 0ea77a3
# remove things we don't use or don't build
William Benton 0ea77a3
find . -name \*.zip -print -delete
William Benton 0ea77a3
rm -rf python
William Benton 0ea77a3
rm -rf repl
William Benton 0ea77a3
William Benton 42acb0c
# remove examples dependent upon Colt functionality not yet available in Lancer
William Benton 42acb0c
rm ./examples/src/main/scala/org/apache/spark/examples/LocalALS.scala
William Benton 42acb0c
rm ./examples/src/main/scala/org/apache/spark/examples/SparkALS.scala
William Benton 42acb0c
William Benton 42acb0c
# remove chill dependency (not available yet)
William Benton 42acb0c
sed -i -e '/com.twitter.*chill/d' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
# remove avro because it's only used for flume (which we don't build)
William Benton 42acb0c
sed -i -e '/org.apache.*avro/d' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
# remove all test deps for now
William Benton 42acb0c
sed -i -e '/%[[:space:]]*"test"/d' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
# fix up json4s-jackson version
William Benton 42acb0c
sed -i -e 's|\(json4s-jackson"[^"]*"\)3[.]2[.]6|\13.2.7|' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
# don't use scala bundled jline
William Benton 42acb0c
sed -i -e 's|"org.scala-lang".*"jline"|"jline" % "jline"|g' project/SparkBuild.scala
William Benton 42acb0c
William Benton 42acb0c
mkdir boot
William Benton 42acb0c
William Benton 42acb0c
# remove bundled sbt script
William Benton 42acb0c
rm -rf sbt
William Benton 42acb0c
William Benton 42acb0c
cp %{SOURCE1} sbt-xmvn
William Benton 42acb0c
chmod 755 sbt-xmvn
William Benton 42acb0c
William Benton 42acb0c
cp %{SOURCE2} xmvn-sbt.properties
William Benton 42acb0c
William Benton 42acb0c
%build
William Benton 42acb0c
William Benton 42acb0c
export XMVN_CLASSPATH=$(build-classpath aether/api guava ivy maven/maven-model plexus-classworlds plexus-containers/plexus-container-default plexus/utils xbean/xbean-reflect xmvn/xmvn-connector xmvn/xmvn-core atinject google-guice-no_aop)
William Benton 42acb0c
William Benton 42acb0c
export SPARK_HADOOP_VERSION=2.2.0
William Benton 42acb0c
export DEFAULT_IS_NEW_HADOOP=true
William Benton 42acb0c
William Benton 42acb0c
mkdir ivy-local
William Benton 42acb0c
cp -r /usr/share/sbt/ivy-local/* ivy-local
William Benton 42acb0c
William Benton 42acb0c
export SBT_BOOT_DIR=boot
William Benton 42acb0c
export SBT_IVY_DIR=ivy-local
William Benton 42acb0c
William Benton 42acb0c
mkdir lib
William Benton 42acb0c
William Benton 42acb0c
for f in $(echo ${XMVN_CLASSPATH} | tr : \  ); do 
William Benton 42acb0c
    cp $f lib
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 42acb0c
cp /usr/share/java/plexus/containers-component-annotations.jar lib
William Benton 42acb0c
William Benton 0ea77a3
for sub in project tools bagel mllib streaming core graphx ; do
William Benton 42acb0c
 ln -s $(pwd)/lib $sub/lib
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 42acb0c
# HACK HACK HACK
William Benton 42acb0c
(echo q | SBT_BOOT_PROPERTIES=/etc/sbt/rpmbuild-sbt.boot.properties sbt quit) || true
William Benton 42acb0c
cp lib/* boot/scala-2.10.3/lib/
William Benton 42acb0c
William Benton 42acb0c
alltargets() { for f in "$@" ; do echo $f/package $f/makePom $f/doc $f/publishLocal; done }
William Benton 42acb0c
William Benton 42acb0c
export SBT_BOOT_PROPERTIES=xmvn-sbt.properties
William Benton 42acb0c
William Benton 42acb0c
# ./sbt-xmvn core/package core/makePom core/doc core/publishLocal
William Benton 42acb0c
# NB:  repl doesn't build atm due to jline
William Benton 42acb0c
./sbt-xmvn $(alltargets core mllib graphx bagel streaming)
William Benton 42acb0c
William Benton 42acb0c
%install
William Benton 42acb0c
mkdir -p %{buildroot}/%{_javadir}/%{name}
William Benton 42acb0c
mkdir -p %{buildroot}/%{_mavenpomdir}
William Benton 42acb0c
William Benton 42acb0c
mkdir -p %{buildroot}/%{_javadocdir}/%{name}
William Benton 42acb0c
for apidir in $(find . -name api -type d) ; do
William Benton 42acb0c
  pushd $apidir
William Benton 42acb0c
  mod=$(echo $apidir | cut -f2 -d/)
William Benton 42acb0c
  mkdir -p %{buildroot}/%{_javadocdir}/%{name}/$mod
William Benton 42acb0c
  cp -rp . %{buildroot}/%{_javadocdir}/%{name}/$mod
William Benton 42acb0c
  popd
William Benton 42acb0c
done
William Benton 42acb0c
William Benton f5f0c83
for jar in $(find . -name \*.jar | grep target | grep _%{scala_version}-%{spark_version}.jar) ; do
William Benton 42acb0c
  install -m 644 $jar %{buildroot}/%{_javadir}/%{name}/$(echo $jar | cut -f5 -d/ | cut -f1 -d_).jar
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 42acb0c
declare -a shortnames
William Benton 42acb0c
William Benton f5f0c83
for pom in $(find . -name \*.pom | grep target | grep _%{scala_version}-%{spark_version}.pom ) ; do 
William Benton 42acb0c
  shortname=$(echo $pom | cut -f5 -d/ | cut -f1 -d_)
William Benton 42acb0c
  echo installing POM $pom to %{_mavenpomdir}/JPP.%{name}-${shortname}.pom
William Benton 42acb0c
  install -pm 644 $pom %{buildroot}/%{_mavenpomdir}/JPP.%{name}-${shortname}.pom
William Benton 42acb0c
  echo %{_mavenpomdir}/JPP.%{name}-${shortname}.pom >> .rpm_pomfiles
William Benton 42acb0c
  shortnames=( "${shortnames[@]}" $shortname )
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 42acb0c
for sub in ${shortnames[@]} ; do
William Benton 42acb0c
  echo running add_maven_depmap JPP.%{name}-${sub}.pom %{name}/${sub}.jar
William Benton 42acb0c
  %add_maven_depmap JPP.%{name}-${sub}.pom %{name}/${sub}.jar
William Benton 42acb0c
done
William Benton 42acb0c
William Benton 42acb0c
%files -f .mfiles
William Benton 42acb0c
%dir %{_javadir}/%{name}
William Benton 42acb0c
William Benton 42acb0c
%doc LICENSE README.md
William Benton 42acb0c
William Benton 42acb0c
%files javadoc
William Benton 42acb0c
%{_javadocdir}/%{name}
William Benton 42acb0c
%doc LICENSE
William Benton 42acb0c
William Benton 42acb0c
William Benton 42acb0c
%changelog
edf553e
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-0.6.rc3
edf553e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
edf553e
c2d6e33
* Wed Apr 22 2015 Peter Robinson <pbrobinson@fedoraproject.org> 0.9.1-0.6.rc3
c2d6e33
- ARMv7 now has hadoop and mesos (and all the secondary arches always have)
c2d6e33
6185f99
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-0.5.rc3
6185f99
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
6185f99
79b363c
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.1-0.4.rc3
79b363c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
79b363c
William Benton d14ca0e
* Thu Mar 27 2014 William Benton <willb@redhat.com> - 0.9.1-0.3.rc3
William Benton d14ca0e
- upstream version 0.9.1-rc3
William Benton d14ca0e
William Benton d14ca0e
* Wed Mar 26 2014 William Benton <willb@redhat.com> - 0.9.1-0.2.rc2
William Benton 8740047
- upstream version 0.9.1-rc2
William Benton 8740047
William Benton 5f9051f
* Tue Mar 25 2014 William Benton <willb@redhat.com> - 0.9.1-0.1.rc1
William Benton 5f9051f
- upstream version 0.9.1-rc1
William Benton 5f9051f
William Benton 406bc75
* Tue Mar 25 2014 William Benton <willb@redhat.com> - 0.9.0-0.4
William Benton 406bc75
- compiled-in mesos support
William Benton 406bc75
- includes stream-lib support
William Benton 406bc75
William Benton 42acb0c
* Tue Mar 11 2014 William Benton <willb@redhat.com> - 0.9.0-0.3
William Benton 42acb0c
- fixes to work with newer Fedora sbt package
William Benton 42acb0c
William Benton 42acb0c
* Sat Mar 1 2014 William Benton <willb@redhat.com> - 0.9.0-0.2
William Benton 42acb0c
- include mllib, bagel, streaming, and graphx
William Benton 42acb0c
William Benton 42acb0c
* Mon Feb 10 2014 William Benton <willb@redhat.com> - 0.9.0-0.1
William Benton 42acb0c
- initial package