Blob Blame History Raw
# Conditional for release and snapshot builds. Uncomment for release-builds.
%global rel_build 1
%global branch 6.0
%global gtest_ver 1.8.0

# Settings used for build from snapshots.
%if 0%{?rel_build}
%global commit 03b8c1cc3b8f4426a2fe80055fdfdc9e156953b6
%global commit_date 20160201
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global gitver git%{commit_date}-%{shortcommit}
%global gitrel .git%{commit_date}.%{shortcommit}
%global gittar %{name}-%{version}-%{gitver}.tar.gz
%endif # 0%%{?rel_build}


### Build configuration.

# Interfaces
%bcond_without java
%bcond_without lua

%ifarch %{mono_arches}
%bcond_without mono
%else  # arch %%{mono_arches}
%bcond_with mono
%endif # arch %%{mono_arches}

# Octave-bindings are failing on %%{arm} with "virtual memory exhausted:
# Operation not permitted", even when building single-threaded.  Retiring
# for now, until Koji-builders are on arm64-hardware. See rhbz# 1215737:
# https://bugzilla.redhat.com/show_bug.cgi?id=1215737
%ifnarch %{arm}
%bcond_without octave
%else  # narch %%{arm}
%bcond_with octave
%endif # narch %%{arm}

# Perl is not fully implemented by upstream, yet.  Disabling.
%bcond_with perl
%bcond_without python

# There's no Python3 on older distributions.
%if 0%{?fedora} || 0%{?rhel} >= 8
%bcond_without python3
%global python %{__python3}
%else  # 0%%{?fedora} || 0%%{?rhel} >= 8
%bcond_with python3
%global python %{__python2}
%endif # 0%%{?fedora} || 0%%{?rhel} >= 8

%bcond_without r
%bcond_without ruby

# Configuration related to swig.
%bcond_with reduce_swig_debug
%bcond_without swig_single_threaded

# Memtest is much too slow to run on Koji.
%bcond_with memtest
%bcond_without testsuite

# The doc-pkg should be build noarch, but for some reason
# it differs between the various arches.
%bcond_with noarch_doc


# These are disabled by default.

# OpenCV-integration is crappy.
%bcond_with opencv

# We cannot ship with build-in SVMlight, because of it's crappy license.
%bcond_with svmlight

# This url is common for patches and snapshot builds.
%global giturl https://github.com/%{name}-toolbox/%{name}

# Filter all provides from bindings and private libs.
%global __provides_exclude_from ^(%{_libdir}/.*/.*%{name}\\.so|%{_libdir}/libmod%{name}.so)

# Do not check any files in docdir for Requires.
%global __requires_exclude_from ^%{_docdir}/.*$

# Setup _pkgdocdir if not defined already.
%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}}

# CMake-builds go out-of-tree.  Tests are not run in %%{buildroot}.
%global _cmake_build_subdir %{_target_platform}
%global _cmake_testinstall_dir %{name}-%{version}-%{_target_platform}

# Compiling the swig-generated bindings needs too much memory to build the
# the linker-objects in virtual memory for piping through different gcc
# instances, thus we use temporary files instead of pipes to pass the result.
# Also disabling '-Wmisleading-indentation' and '-fvar-tracking-assignments'
# saves a lot of RAM.
%global optflags_shogun %(echo '%{optflags} -Wno-misleading-indentation -fno-var-tracking-assignments' | %{__sed} -e 's![ \t]*-pipe[ \t]*! !g')

# The description commonly used by all (sub-)packages.
%global common_description							\
The Shogun Machine learning toolbox provides a wide range of unified and	\
efficient Machine Learning (ML) methods.  The toolbox seamlessly allows to	\
easily combine multiple data representations, algorithm classes, and general	\
purpose tools.  This enables both rapid prototyping of data pipelines and	\
extensibility in terms of new algorithms.  We combine modern software		\
architecture in C++ with both efficient low-level computing back-ends and	\
cutting edge algorithm implementations to solve large-scale Machine Learning	\
problems (yet) on single machines.						\
										\
One of Shogun's most exciting features is that you can use the toolbox through	\
a unified interface from C++, Python(3), Octave, R, Java, Lua, etc.  This not	\
just means that we are independent of trends in computing languages, but it	\
also lets you use Shogun as a vehicle to expose your algorithm to multiple	\
communities.  We use SWIG to enable bidirectional communication between C++	\
and target languages.  Shogun runs under Linux/Unix, MacOS, Windows.		\
										\
Originally focusing on large-scale kernel methods and bioinformatics (for a	\
list of scientific papers mentioning Shogun, see here), the toolbox saw		\
massive extensions to other fields in recent years.  It now offers features	\
that span the whole space of Machine Learning methods, including many		\
classical methods in classification, regression, dimensionality reduction,	\
clustering, but also more advanced algorithm classes such as metric,		\
multi-task, structured output, and online learning, as well as feature		\
hashing, ensemble methods, and optimization, just to name a few.  Shogun in	\
addition contains a number of exclusive state-of-the art algorithms such as	\
a wealth of efficient SVM implementations, Multiple Kernel Learning, kernel	\
hypothesis testing, Krylov methods, etc.  All algorithms are supported by a	\
collection of general purpose methods for evaluation, parameter tuning,		\
preprocessing, serialization & I/O, etc;  the resulting combinatorial		\
possibilities are huge.								\
										\
The wealth of ML open-source software allows us to offer bindings to other	\
sophisticated libraries including:  LibSVM, LibLinear, LibOCAS, libqp,		\
VowpalWabbit, Tapkee, SLEP, GPML and more.					\
										\
Shogun got initiated in 1999 by Soeren Sonnenburg and Gunnar Raetsch (that's	\
where the name ShoGun originates from).  It is now developed by a larger team	\
of authors, and would not have been possible without the patches and bug	\
reports by various people.  See contributions for a detailed list.  Statistics	\
on Shogun's development activity can be found on ohloh.

###############################################################################

Name:		shogun
Version:	%{branch}.0
Release:	4%{?dist}
Summary:	Unified and efficient Machine Learning since 1999

License:	GPLv3+ and BSD and GPLv2+ and (GPLv2+ or LGPLv2+) and GPLv3 and LGPLv2+ and MIT and (Public Domain or GPLv3+)
URL:		http://%{name}-toolbox.org
%if 0%{?rel_build}
Source0:	ftp://ftp.%{name}-toolbox.org/%{name}/releases/%{branch}/sources/%{name}-%{version}.tar.bz2
%else  # 0%%{?rel_build}
Source0:	%{?giturl}/archive/%{commit}.tar.gz#/%{gittar}
%endif # 0%%{?rel_build}
Source1:	%{name}.pc.in
Source99:	https://github.com/google/googletest/archive/release-%{gtest_ver}.tar.gz#/gtest-%{gtest_ver}.tar.gz

Patch0:		%{?giturl}/commit/ffb80ca135ff5686e102d285df47ce0fc92f53b6.patch#/shogun-6.0.0-fix_inline_asm.patch
Patch1:		%{?giturl}/commit/6d960649921e65dea4d988448579564175a4ca59.patch#/shogun-6.0.0-fix_python_modular_tests.patch
Patch2:		%{?giturl}/commit/3e9e98e508285d989b21629e7c8f872a00e34e4a.patch#/shogun-6.0.0-fix_python_modular_examples.patch
Patch3:		%{?giturl}/commit/308f9245ad81999a8e046b9ad8c3167ffa904f2e.patch#/shogun-6.0.0-fix_find_Scala.patch
Patch4:		%{?giturl}/commit/370dec03c446169c4f6cdf62bb4860f1f15200fc.patch#/shogun-6.0.0-do_not_fail_if_dir_exists.patch

BuildRequires:	arpack-devel
BuildRequires:	arprec-devel
BuildRequires:	atlas-devel
BuildRequires:	blas-devel
BuildRequires:	bzip2-devel
BuildRequires:	chrpath
BuildRequires:	ColPack-devel
BuildRequires:	ctags
BuildRequires:	glpk-devel
BuildRequires:	hdf5-devel
BuildRequires:	iputils
BuildRequires:	json-c-devel
BuildRequires:	lapack-devel
BuildRequires:	libcurl-devel
BuildRequires:	libxml2-devel
BuildRequires:	lpsolve-devel
BuildRequires:	lzo-devel
BuildRequires:	NLopt-devel
BuildRequires:	ocl-icd-devel
BuildRequires:	opencl-headers
BuildRequires:	opencv-devel
BuildRequires:	protobuf-devel
BuildRequires:	python2-ply
BuildRequires:	qd-devel
BuildRequires:	%{name}-data
BuildRequires:	snappy-devel
BuildRequires:	xz-devel
BuildRequires:	zlib-devel

%if 0%{?fedora} || 0%{?rhel} >= 7
BuildRequires:	cmake
BuildRequires:	eigen3-devel
BuildRequires:	swig
%else  # 0%%{?fedora} || 0%%{?rhel} >= 7
BuildRequires:	cmake3
BuildRequires:	eigen32-devel
BuildRequires:	swig4
%endif # 0%%{?fedora} || 0%%{?rhel} >= 7

# Needed for testsuite.
BuildRequires:	gdb
BuildRequires:	valgrind

# Commandline-Interface is gone since 5.0.0.
Obsoletes:	%{name}-cli			<= 6.0.0

%if !%{with mono}
Obsoletes:	mono-%{name}			<= %{version}-%{release}
Obsoletes:	mono-%{name}%{?_isa}		<= %{version}-%{release}
%endif # !%%{with mono}

# Retiring octave-shogun on %%{arm}.  See above.
%if (0%{?fedora} && 0%{?fedora} <= 26) && !%{with octave}
Obsoletes:	octave-%{name}			<= %{version}-%{release}
Obsoletes:	octave-%{name}%{?_isa}		<= %{version}-%{release}
%endif # (0%%{?fedora} && 0%%{?fedora} <= 26) && !%%{with octave}

# Copylib - Wildcard-exception granted by FPC.
# See: https://fedorahosted.org/fpc/ticket/174
Provides:	bundled(dSFMT)			== %{version}-%{release}
Provides:	bundled(gnulib)			== %{version}-%{release}
Provides:	bundled(liblinear)		== %{version}-%{release}
Provides:	bundled(libsvm)			== %{version}-%{release}
Provides:	bundled(SFMT)			== %{version}-%{release}
Provides:	bundled(SVMlin)			== %{version}-%{release}

%description
%{?common_description}

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%files
%doc %dir %{_pkgdocdir}
%license COPYING
%doc %{_pkgdocdir}/README.md
%{_libdir}/lib%{name}.so.*

###############################################################################

%package devel

Summary:	Development files for %{name}

Requires:	arpack-devel%{?_isa}
Requires:	arprec-devel%{?_isa}
Requires:	atlas-devel%{?_isa}
Requires:	blas-devel%{?_isa}
Requires:	bzip2-devel%{?_isa}
Requires:	ColPack-devel%{?_isa}
Requires:	eigen3-devel
Requires:	glpk-devel%{?_isa}
Requires:	hdf5-devel%{?_isa}
Requires:	json-c-devel%{?_isa}
Requires:	lapack-devel%{?_isa}
Requires:	libcurl-devel%{?_isa}
Requires:	libxml2-devel%{?_isa}
Requires:	lpsolve-devel%{?_isa}
Requires:	lzo-devel%{?_isa}
Requires:	NLopt-devel%{?_isa}
Requires:	opencv-devel%{?_isa}
Requires:	qd-devel%{?_isa}
Requires:	snappy-devel%{?_isa}
Requires:	xz-devel%{?_isa}
Requires:	zlib-devel%{?_isa}
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description devel
This package contains files needed for development with %{name}.

%{?common_description}

%files devel
%doc %{_pkgdocdir}/examples/cpp
%doc %{_pkgdocdir}/examples/lib%{name}
%doc %{_pkgdocdir}/NEWS
%if %{with memtest}
%doc %{_pkgdocdir}/mem.%{?__isa}%{?dist}.log
%endif # %%{with memtest}
%if %{with testsuite}
%doc %{_pkgdocdir}/unit.%{?__isa}%{?dist}.log
%if %{with python3}
%doc %{_pkgdocdir}/unit.py3.%{?__isa}%{?dist}.log
%endif # %%{with python3}
%endif # %%{with testsuite}
%{_includedir}/%{name}
%{_libdir}/cmake
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc

###############################################################################

%package doc
Summary:	Documentation files for %{name}

%if %{with noarch_doc}
BuildArch:	noarch
%endif # %%{with noarch_doc}

BuildRequires:	doxygen
BuildRequires:	graphviz
BuildRequires:	hardlink
BuildRequires:	pandoc
BuildRequires:	python2-sphinx
BuildRequires:	python2-sphinx-bootstrap-theme
BuildRequires:	python2-sphinxcontrib-bibtex

# doc-cn-pkg is gone with 5.0.0.
Obsoletes:	%{name}-doc-cn			<= 6.0.0

%description doc
This package contains very detailed documentation,
and some great examples for %{name}.

%{?common_description}

%files doc
%doc %dir %{_pkgdocdir}
%doc %exclude %{_pkgdocdir}/*.%{?__isa}%{?dist}.log
%doc %{_pkgdocdir}/*
%if 0%{?fedora} || 0%{?rhel} >= 7
%license %{_datadir}/licenses/%{name}*
%endif # 0%%{?fedora} || 0%%{?rhel} >= 7

###############################################################################

%if %{with java}
%package -n java-%{name}
Summary:	Java-plugin for %{name}

BuildRequires:	java-devel
BuildRequires:	jblas
BuildRequires:	scala

Requires:	%{_sysconfdir}/profile.d

%if 0%{?fedora} || 0%{?rhel} >= 7
Requires:	java-headless
%else  # 0%%{?fedora} || 0%%{?rhel} >= 7
Requires:	java
%endif # 0%%{?fedora} || 0%%{?rhel} >= 7

Requires:	jblas%{?_isa}
Requires:	jpackage-utils
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n java-%{name}
This package contains the Java-plugin for %{name}.

%{?common_description}

%files -n java-%{name}
%doc %{_pkgdocdir}/examples/java
%doc %{_pkgdocdir}/examples/scala
%{_jnidir}/*
%{_libdir}/%{name}.java
%{_sysconfdir}/profile.d/%{name}-java.*sh
%endif # %%{with java}

###############################################################################

%if %{with lua}
%package -n lua-%{name}
%{!?lua_ver: %global lua_ver %(%{_bindir}/lua -e 'print(string.sub(_VERSION, 5))' || echo 0)}
%{!?luanext: %global luanext %(%{python} -c'print(%{lua_ver} + 0.1)' || echo 0)}
%global lualibdir %{_libdir}/lua/%{lua_ver}

Summary:	LUA-plugin for %{name}

BuildRequires:	lua-devel

Requires:	lua%{?_isa}
%if 0%{?fedora} || 0%{?rhel} >= 7
Requires:	lua(abi)			>= %{lua_ver}
Requires:	lua(abi)			<  %{luanext}
%else  # 0%%{?fedora} || 0%%{?rhel} >= 7
Requires:	lua				>= %{lua_ver}
Requires:	lua				<  %{luanext}
%endif # 0%%{?fedora} || 0%%{?rhel} >= 7
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n lua-%{name}
This package contains the LUA-plugin for %{name}.

%{?common_description}

%files -n lua-%{name}
%doc %{_pkgdocdir}/examples/lua
%{lualibdir}/libmod%{name}.so
%endif # %%{with lua}

###############################################################################

%if %{with mono}
%package -n mono-%{name}
Summary:	Mono(C#)-plugin for %{name}

BuildRequires:	mono-devel

Requires:	%{_sysconfdir}/profile.d
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n mono-%{name}
This package contains the Mono(C#)-plugin for %{name}.

%{?common_description}

%files -n mono-%{name}
%doc %{_pkgdocdir}/examples/csharp
%{_libdir}/%{name}.mono
%{_sysconfdir}/profile.d/%{name}-mono.*sh
%endif # %%{with mono}

###############################################################################

%if %{with octave}
%package -n octave-%{name}
# https://fedoraproject.org/wiki/Packaging:Octave
%{!?octave_api: %global octave_api %(%{_bindir}/octave-config -p API_VERSION || echo 0)}
%global octave_octdir %(%{_bindir}/octave-config -p LOCALAPIOCTFILEDIR || echo '')

Summary:	Octave-plugin for %{name}

BuildRequires:	octave-devel

Requires:	octave%{?_isa}
Requires:	octave(api)			== %{octave_api}
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n octave-%{name}
This package contains the Octave-plugin for %{name}.

%{?common_description}

%files -n octave-%{name}
%doc %{_pkgdocdir}/examples/octave
%{octave_octdir}/%{name}
%endif # %%{with octave}

###############################################################################

%if %{with perl}
%package -n perl-%{name}
Summary:	Perl-plugin for %{name}

BuildRequires:	perl-devel

Requires:	perl%{?_isa}
Requires:	perl(:MODULE_COMPAT_%(eval "$(%{__perl} -V:version)"; echo $version))
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n perl-%{name}
This package contains the Perl-plugin for %{name}.

%{?common_description}

%files -n perl-%{name}
%doc %{_pkgdocdir}/examples/perl
%exclude %dir %{perl_vendorarch}/auto
%{perl_vendorarch}/*
%endif # %%{with perl}

###############################################################################

%if %{with python}
%package -n python2-%{name}
Summary:	Python-plugin for %{name}

BuildRequires:	numpy
BuildRequires:	python-docutils
BuildRequires:	python-jinja2
BuildRequires:	python2-devel
BuildRequires:	scipy

Requires:	numpy%{?_isa}
Requires:	python%{?_isa}
Requires:	scipy%{?_isa}

Requires:	%{name}%{?_isa}			== %{version}-%{release}

%{?python_provide:%python_provide python2-%{name}}

%description -n python2-%{name}
This package contains the Python-plugin for %{name}.

%{?common_description}

%files -n python2-%{name}
%doc %{_pkgdocdir}/examples/python*
%doc %{_pkgdocdir}/ipython-notebooks
%{python2_sitearch}/*
%endif # %%{with python}

###############################################################################

%if %{with python3}
%package -n python3-%{name}
Summary:	Python-plugin for %{name}

BuildRequires:	python3-devel
BuildRequires:	python3-docutils
BuildRequires:	python3-jinja2
BuildRequires:	python3-numpy
BuildRequires:	python3-ply
BuildRequires:	python3-scipy

Requires:	python3%{?_isa}
Requires:	python3-numpy%{?_isa}
Requires:	python3-scipy%{?_isa}
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%{?python_provide:%python_provide python3-%{name}}

%description -n python3-%{name}
This package contains the Python3-plugin for %{name}.

%{?common_description}

%files -n python3-%{name}
%doc %{_pkgdocdir}/examples/python*
%doc %{_pkgdocdir}/ipython-notebooks
%{python3_sitearch}/*
%endif # %%{with python3}

###############################################################################

%if %{with r}
%package -n R-%{name}
Summary:	R-plugin for %{name}

BuildRequires:	R-core-devel

Requires:	R-core%{?_isa}
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n R-%{name}
This package contains the R-plugin for %{name}.

%{?common_description}

%files -n R-%{name}
%dir %{_libdir}/R/library/%{name}
%doc %{_libdir}/R/library/%{name}/DESCRIPTION
%doc %{_pkgdocdir}/examples/r
%{_libdir}/R/library/%{name}/libs
%{_libdir}/R/library/%{name}/Meta
%{_libdir}/R/library/%{name}/NAMESPACE
%{_libdir}/R/library/%{name}/R
%endif # %%{with r}

###############################################################################

%if %{with ruby}
%package -n ruby-%{name}
# We need to pass the path for rubygem(narray) to CMake, so it can find it.
%global narray_gem %(%{_bindir}/gem list narray | %{__grep} narray | %{__sed} -e's! .!-!' -e 's!.$!!')

%if 0%{?fedora} || 0%{?rhel} >= 8
%global narray_include %{_libdir}/gems/ruby/%{narray_gem}
%else  # 0%{?fedora} >= 21 || 0%{?rhel} >= 8
%global narray_include %{_datadir}/gems/gems/%{narray_gem}
%endif # 0%{?fedora} >= 21 || 0%{?rhel} >= 8

%if 0%{?fedora} || 0%{?rhel} >= 7
%global narray_lib %{_libdir}/gems/ruby/%{narray_gem}/narray.so
%else  # 0%{?fedora} || 0%{?rhel} >= 7
%global narray_lib %{ruby_vendorarchdir}/narray.so
%endif # 0%{?fedora} || 0%{?rhel} >= 7

Summary:	Ruby-plugin for %{name}

BuildRequires:	ruby-devel
BuildRequires:	rubygem-narray-devel

Requires:	ruby(release)
Requires:	rubygem(narray)%{?_isa}
Requires:	%{name}%{?_isa}			== %{version}-%{release}

%description -n ruby-%{name}
This package contains the Ruby-plugin for %{name}.

%{?common_description}

%files -n ruby-%{name}
%doc %{_pkgdocdir}/examples/ruby
%{ruby_vendorarchdir}/mod%{name}.rb
%{ruby_vendorarchdir}/mod%{name}.so
%endif # %%{with ruby}

###############################################################################

%prep
# Get amount of avail RAM.
%{__cat} /proc/meminfo

# Unpack sources.
%if 0%{?rel_build}
%autosetup -p 1
%else  # 0#{?rel_build}
%autosetup -n %{name}-%{commit} -p 1
%endif # 0#{?rel_build}

# Remove cluttering stuff.
%{__rm} -fr %{_cmake_build_subdir} build data third_party

# Copy gtest into sources.
%{__install} -Dpm 0644 %{SOURCE99}						\
	third_party/GoogleMock/release-%{gtest_ver}.tar.gz

# Scrub SVMlight.
%if !%{with svmlight}
./scripts/light-scrubber.sh
%endif # !%%{with svmlight}

# Fix finding PerlLibs and linking against HDF5.
%{__sed} -i -e 's!FindPerlLibs REQUIRED!PerlLibs REQUIRED!'			\
	-e '/SET.HDF5_LIBRARIES/d' CMakeLists.txt

# Ruby-plugins go to %%{ruby_vendorarchdir}, but on <= el6.
%if 0%{?fedora} >= 13 || 0%{?rhel} >= 7
%{__sed} -i -e 's!\${RUBY_SITE_ARCH_DIR}!\${RUBY_VENDORARCH_DIR}!g'		\
	src/interfaces/ruby_modular/CMakeLists.txt
%endif # 0%%{?fedora} >= 13 || 0%%{?rhel} >= 7

# Copy data into proper location.
%{__cp} -pr %{_shogun_data_dir} .

###############################################################################

%build
# Use our customized optflags.
export CFLAGS="%{optflags_shogun}"
export CXXFLAGS="%{optflags_shogun}"

# These will be used for creation of CTest-files, only.  There's no impact on
# the built binaries caused by them.  They are needed to be defined on %%build,
# because CMake hardcodes them when creating the Makefiles and it's cache.

# We need to export a customized PYTHONPATH for testsuite.
PYTHONPATH="$(/bin/pwd)/%{_cmake_testinstall_dir}/%{python2_sitearch}/%{name}"
PYTHONPATH="${PYTHONPATH}:$(/bin/pwd)/%{_cmake_testinstall_dir}/%{python2_sitearch}"
PYTHONPATH="${PYTHONPATH}:$(/bin/pwd)/examples/undocumented/python_modular"
export PYTHONPATH="${PYTHONPATH}:%{python2_sitearch}:%{python2_sitelib}"

# We need to export a customized R_LIBS_USER for testsuite.
export R_LIBS_USER="$(/bin/pwd)/%{_cmake_testinstall_dir}%{_libdir}/R/library"

# We need to export some custom LD_LIBRARY_PATH for the tests, too.
LD_LIBRARY_PATH="$(/bin/pwd)/%{_cmake_testinstall_dir}/%{_libdir}"
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:%{_libdir}/atlas"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:%{_libdir}"

%{__mkdir} -p %{_cmake_build_subdir}/tmp
pushd %{_cmake_build_subdir}
export TMPDIR="$(%{_bindir}/pwd)/%{_cmake_build_subdir}/tmp"
%cmake										\
	-DBUILD_COOKBOOK=ON							\
	-DCMAKE_BUILD_TYPE=DISTRIBUTION						\
%ifarch %{ix86}
	-DDISABLE_SSE=ON							\
%endif # arch %%{ix86}
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
	-DATLAS_LAPACK="%{_libdir}/atlas/libtatlas.so"				\
	-DATLAS_LIBRARIES="%{_libdir}/atlas/libtatlas.so"			\
%else  # 0%%{?fedora} >= 21 || 0%%{?rhel} >= 8
	-DUSE_ORIGINAL_LAPACK=ON						\
%endif # 0%%{?fedora} >= 21 || 0%%{?rhel} >= 8
%if %{with java}
	-DJavaModular=ON							\
	-DScalaModular=ON							\
	-DJAVA_INSTALL_DIR=%{_jnidir}						\
	-DJNI_INSTALL_DIR=%{_libdir}/%{name}.java				\
%endif # %%{with java}
%if %{with lua}
	-DLuaModular=ON								\
%endif # %%{with lua}
%if %{with mono}
	-DCSharpModular=ON							\
	-DCSHARP_INSTALL_DIR=%{_libdir}/%{name}.mono				\
%endif # %%{with mono}
%if %{with octave}
	-DOctaveModular=ON							\
%endif # %%{with octave}
%if %{with opencv}
	-DOpenCV=ON								\
%endif # %%{with opencv}
%if %{with perl}
	-DPerlModular=ON							\
%endif # %%{with perl}
%if %{with python}
	-DPythonModular=ON							\
%endif # %%{with python}
%if %{with r}
	-DRModular=ON								\
%endif # %%{with r}
%if %{with reduce_swig_debug}
	-DREDUCE_SWIG_DEBUG=ON							\
%endif # %%{with reduce_swig_debug}
%if %{with ruby}
	-DRUBY_NARRAY_INCLUDE_DIR="%{narray_include}"				\
	-DRUBY_NARRAY_LIBRARY="%{narray_lib}"					\
	-DRubyModular=ON							\
%endif # %%{with ruby}
%if %{with swig_single_threaded}
	-DSWIG_SINGLE_THREADED=ON						\
%endif # %%{with swig_single_threaded}
%if !%{with svmlight}
	-DUSE_SVMLIGHT=OFF							\
%endif # !%%{with svmlight}
%if %{with testsuite}
	-DBUILD_DASHBOARD_REPORTS=ON						\
	-DENABLE_PYTHON_DEBUG=ON						\
	-DENABLE_TESTING=ON							\
%endif # %%{with testsuite}
	-DENABLE_CCACHE=ON							\
	-DPYTHON_EXECUTABLE="%{__python2}"					\
	..
%{__make} examples
popd

# Build the Python3-version.
%if %{with python3}
PYTHONPATH="$(/bin/pwd)/%{_cmake_testinstall_dir}/%{python3_sitearch}/%{name}"
PYTHONPATH="${PYTHONPATH}:$(/bin/pwd)/%{_cmake_testinstall_dir}/%{python3_sitearch}"
PYTHONPATH="${PYTHONPATH}:$(/bin/pwd)/examples/undocumented/python_modular"
export PYTHONPATH="${PYTHONPATH}:%{python3_sitearch}:%{python3_sitelib}"

%{__mkdir} -p %{_cmake_build_subdir}-py3/tmp
pushd %{_cmake_build_subdir}-py3
export TMPDIR="$(%{_bindir}/pwd)/%{_cmake_build_subdir}-py3/tmp"
%cmake										\
	-DCMAKE_BUILD_TYPE=DISTRIBUTION						\
%ifarch %{ix86}
	-DDISABLE_SSE=ON							\
%endif # arch %%{ix86}
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
	-DATLAS_LAPACK=%{_libdir}/atlas/libtatlas.so				\
	-DATLAS_LIBRARIES=%{_libdir}/atlas/libtatlas.so				\
%else  # 0%%{?fedora} >= 21 || 0%%{?rhel} >= 8
	-DUSE_ORIGINAL_LAPACK=ON						\
%endif # 0%%{?fedora} >= 21 || 0%%{?rhel} >= 8
%if %{with opencv}
	-DOpenCV=ON								\
%endif # %%{with opencv}
%if %{with reduce_swig_debug}
	-DREDUCE_SWIG_DEBUG=ON							\
%endif # %%{with reduce_swig_debug}
%if !%{with svmlight}
	-DUSE_SVMLIGHT=OFF							\
%endif # !%%{with svmlight}
%if %{with testsuite}
	-DBUILD_DASHBOARD_REPORTS=ON						\
	-DENABLE_PYTHON_DEBUG=ON						\
	-DENABLE_TESTING=ON							\
%endif # %%{with testsuite}
	-DBUNDLE_EIGEN=OFF							\
	-DBUNDLE_NLOPT=OFF							\
	-DBUNDLE_JSON=OFF							\
	-DENABLE_CCACHE=ON							\
	-DPythonModular=ON							\
	-DPYTHON_EXECUTABLE=%{__python3}					\
	..
%{__make} examples
popd
%endif # %%{with python3}

unset LD_LIBRARY_PATH
unset PYTHONPATH
unset R_LIBS_USER

export TMPDIR="$(%{_bindir}/pwd)/%{_cmake_build_subdir}/tmp"
%make_build -C %{_cmake_build_subdir}
%if %{with python3}
export TMPDIR="$(%{_bindir}/pwd)/%{_cmake_build_subdir}-py3/tmp"
%make_build -C %{_cmake_build_subdir}-py3
%endif # %%{with python3}
unset TMPDIR
%make_build -C %{_cmake_build_subdir} doc

###############################################################################

%install
# We install to custom location first.  This will be needed by testsuite, too.
CUSTOM_INSTALL_DIR="$(/bin/pwd)/%{_cmake_testinstall_dir}"

# Install the Python3-version first.
%if %{with python3}
%make_install -C %{_cmake_build_subdir}-py3 DESTDIR=${CUSTOM_INSTALL_DIR}

# Remove the installed headers and libshogun.so
%{__rm} -fr ${CUSTOM_INSTALL_DIR}%{_includedir}					\
	${CUSTOM_INSTALL_DIR}%{_libdir}/cmake					\
	${CUSTOM_INSTALL_DIR}%{_libdir}/lib%{name}.so*
%endif # %%{with python3}

%make_install -C %{_cmake_build_subdir} DESTDIR=${CUSTOM_INSTALL_DIR}

# Add pkg-config file.
%{__mkdir} -p ${CUSTOM_INSTALL_DIR}%{_libdir}/pkgconfig
%{__sed} -e 's!@_datadir@!%{_datadir}!g'					\
	-e 's!@_includedir@!%{_includedir}!g'					\
	-e 's!@_libdir@!%{_libdir}!g'						\
	-e 's!@_prefix@!%{_prefix}!g'						\
	-e 's!@name@!%{name}!g'							\
	-e 's!@url@!%{url}!g'							\
	-e 's!@version@!%{version}!g'						\
	< %{SOURCE1} > ${CUSTOM_INSTALL_DIR}%{_libdir}/pkgconfig/%{name}.pc

%if %{with java}
# Setup CLASSPATH-environment.
%{__mkdir} -p ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d

%{__cat} << EOF >> ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d/%{name}-java.sh
CLASSPATH="${CLASSPATH}:%{_jnidir}/%{name}.jar"
CLASSPATH="${CLASSPATH}:%{_libdir}/%{name}.java/libmod%{name}.so"
export CLASSPATH
EOF

%{__cat} << EOF >> ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d/%{name}-java.csh
set JCP_TEMP = getenv('CLASSPATH')
set JCP_TEMP = "$JCP_TEMP:%{_jnidir}/%{name}.jar"
set JCP_TEMP = "$JCP_TEMP:%{_libdir}/%{name}.java/libmod%{name}.so"
setenv CLASSPATH "$JCP_TEMP"
EOF
%endif # %%{with java}

%if %{with mono}
# Setup MONO_PATH-environment.
%{__mkdir} -p ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d

%{__cat} << EOF >> ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d/%{name}-mono.sh
MONO_PATH="${MONO_PATH}:%{_libdir}/%{name}.mono"
export MONO_PATH
EOF

%{__cat} << EOF >> ${CUSTOM_INSTALL_DIR}%{_sysconfdir}/profile.d/%{name}-mono.csh
set MP_TEMP = getenv('MONO_PATH')
set MP_TEMP = "$MP_TEMP:%{_libdir}/%{name}.mono"
setenv MONO_PATH "$MP_TEMP"
EOF
%endif # %%{with mono}

# Fix-up the permissions for some plugins.
%{_bindir}/find ${CUSTOM_INSTALL_DIR} -type f -name '*.so' -print0 |		\
	%{_bindir}/xargs -0 %{__chmod} -cf 0755

# Copy the custom installation to %%{buildroot} for having an installed
# version with rpaths preserved for the testsuite.
%{__cp} -pr ${CUSTOM_INSTALL_DIR}/* %{buildroot}

# Install documentation-files to %%{_pkgdocdir}
%{__mkdir} -p %{buildroot}%{_pkgdocdir}/{cookbook,examples,html}
%{__rm} -f %{_cmake_build_subdir}/doc/cookbook/html/{.build*,*.inv}
%{__cp} -pr NEWS README* doc/ipython-notebooks %{buildroot}%{_pkgdocdir}
%{__cp} -pr %{_cmake_build_subdir}/doc/cookbook/html/*				\
	%{buildroot}%{_pkgdocdir}/cookbook
%{__cp} -pr %{_cmake_build_subdir}/doc/doxygen/html/*				\
	%{buildroot}%{_pkgdocdir}/html
%{__cp} -pr %{_cmake_build_subdir}/examples/meta/*				\
	%{buildroot}%{_pkgdocdir}/examples
%{__cp} -pr examples/undocumented/* %{buildroot}%{_pkgdocdir}/examples

# Kill rpath from binaries.
%{_bindir}/find %{buildroot}%{_libdir} -type f -perm 0755 -print0 |		\
	%{_bindir}/xargs -0 chrpath -dk

# Remove unneeded stuff, e.g. compiled examples in %%{buildroot}%%{_datadir},
# build-system files in examples and 0-size files in %%{buildroot}.
%{__rm} -fr %{buildroot}%{_datadir}/%{name}/examples
%{_bindir}/find %{buildroot} -type f -size 0 -print -delete
%{_bindir}/find %{buildroot}%{_pkgdocdir} -type f -executable -print -delete
%{_bindir}/find %{buildroot}%{_pkgdocdir} -xtype l -print -delete
%{_bindir}/find %{buildroot}%{_pkgdocdir} -name '*cmake*' -print0 |		\
	%{_bindir}/xargs -0 %{__rm} -fr
for _del in '__py*' 'CMake*' 'CTest*' 'Makefile*' 'parser_files' '*.class'	\
	'*.dat' '*.exe' '*.log' '*.map' '*.md5' '*.py?' '*.sh'
do
	%{_bindir}/find %{buildroot} -name "${_del}" -print0 |			\
		%{_bindir}/xargs -0 %{__rm} -fr
done

# Make sure all files in %%{_pkgdocdir} have mode 0644.
%{_bindir}/find %{buildroot}%{_pkgdocdir} -type f -print0 |			\
	%{_bindir}/xargs -0 %{__chmod} -cf 0644

# Remove shebang from files in %%{_pkgdocdir}.
%{_bindir}/find %{buildroot}%{_pkgdocdir} -type f -print0 |			\
	%{_bindir}/xargs -0 %{__sed} -i -e '/^#!\//, 1d'

# Hardlink docs.
/sbin/hardlink -cfv %{buildroot}%{_pkgdocdir}

# Create log-files for testsuite
/bin/touch %{buildroot}%{_pkgdocdir}/unit.%{?__isa}%{?dist}.log			\
%if %{with python3}
	%{buildroot}%{_pkgdocdir}/unit.py3.%{?__isa}%{?dist}.log		\
%endif # %%{with python3}
;

###############################################################################

%check
%if %{with testsuite}
pushd %{_cmake_build_subdir}
%if %{with memtest}
# Memory tests -- to find reasons for possible segfaults.
# These are allowed to fail and done in parallel.
%{_bindir}/ctest								\
	-DExperimentalMemCheck							\
	--timeout 5400								\
	--tests-regex "^lib%{name}-.*|^unit-.*"					\
	--output-log %{buildroot}%{_pkgdocdir}/mem.%{?__isa}%{?dist}.log	\
	--output-on-failure || :
%endif # %%{with memtest}

# Disabled tests:
#
# These tests need SVM^light, which we cannot ship in Fedora.
%if !%{with svmlight}
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|csharp-mkl_binclass_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|java_modular-mkl_binclass_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|libshogun-regression_libsvr"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|python_modular-mkl_regression_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|python_modular-mkl_binclass_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|python_modular-serialization_string_kernels_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-LibSVR"
%endif # !%%{with svmlight}

# Export the list.
EXCLUDE_FROM_TESTS="$(echo ${EXCLUDE_FROM_TESTS} | %{__sed} -e's!^|!!' -e's!|$!!')"

# Unit && integration tests -- usual testsuite.
%{_bindir}/ctest								\
	--exclude-regex "${EXCLUDE_FROM_TESTS}"					\
	--timeout 5400								\
	--output-log %{buildroot}%{_pkgdocdir}/unit.%{?__isa}%{?dist}.log	\
	--output-on-failure || :
popd

%if %{with python3}
# We don't need duplicated tests already run in other build.
EXCLUDE_FROM_TESTS="^lib%{name}-.*|^unit-.*|.*cpp.*|${EXCLUDE_FROM_TESTS}"

# Export the list.
EXCLUDE_FROM_TESTS="$(echo ${EXCLUDE_FROM_TESTS} | %{__sed} -e's!^|!!' -e's!|$!!')"

pushd %{_cmake_build_subdir}-py3
# Unit && integration tests -- usual testsuite.
%{_bindir}/ctest								\
	--exclude-regex "${EXCLUDE_FROM_TESTS}"					\
	--timeout 5400								\
	--output-log %{buildroot}%{_pkgdocdir}/unit.py3.%{?__isa}%{?dist}.log	\
	--output-on-failure || :
popd
%endif # %%{with python3}
%endif # %%{with testsuite}

###############################################################################

%changelog
* Mon May 01 2017 Björn Esser <besser82@fedoraproject.org> - 6.0.0-4
- Doc-pkg still must be archful

* Mon May 01 2017 Björn Esser <besser82@fedoraproject.org> - 6.0.0-3
- Build the doc-pkg noarch'ed again

* Mon May 01 2017 Björn Esser <besser82@fedoraproject.org> - 6.0.0-2
- Remove shebang from files in %%{_pkgdocdir}
- Build the examples with sequential make first

* Sun Apr 30 2017 Björn Esser <besser82@fedoraproject.org> - 6.0.0-1
- New upstream release (rhbz#1400748)
- Fix FTBFS (rhbz#1439838, rhbz#1396762)
- General spec-file clean-up
- Use include-dir same as upstream

* Wed Apr  5 2017 Jerry James <loganjerry@gmail.com> - 5.0.0-0.6
- Rebuild for glpk 4.61

* Thu Feb 16 2017 Björn Esser <besser82@fedoraproject.org> - 5.0.0-0.5
- Rebuild for brp-python-bytecompile

* Sun Feb 12 2017 Björn Esser <besser82@fedoraproject.org> - 5.0.0-0.4
- Update Patch1 to work properly
- Use parallel make

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-0.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Jan 26 2017 Orion Poplawski <orion@cora.nwra.com> - 5.0.0-0.2
- Rebuild for protobuf 3.2.0

* Tue Jan 17 2017 Björn Esser <besser82@fedoraproject.org> - 5.0.0-0.1
- New upstream release
- Add %%python_provide
- Drop patches, merged upstream
- Disabling '-Wmisleading-indentation' and '-fvar-tracking-assignments'
  saves a lot of RAM during compilation
- Add needed BuildRequires
- Optimize subdir-handling
- Do not build sphinx-docs for now, because of failures in upstream
- Spec-file clean-up
- Cli and doc-cn packages are faded
- Generate regular debuginfo for bindings again
- Add Patch1 to fix build
- Use sequential make

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 4.1.0-9
- Rebuild for Python 3.6

* Wed Dec 07 2016 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-8
- Rebuild for octave 4.2

* Thu Nov 24 2016 Björn Esser <fedora@besser82.io> - 4.1.0-7
- Ignore failing unittests for now

* Sat Nov 19 2016 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-6
- Rebuild for protobuf 3.1.0

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1.0-5
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Wed Jun 29 2016 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-4
- Rebuild for hdf5 1.8.17

* Sat Mar 12 2016 Björn Esser <fedora@besser82.io> - 4.1.0-3
- rebuilt for libglpk.so.40

* Wed Feb 24 2016 Björn Esser <fedora@besser82.io> - 4.1.0-2
- fix serialization with JSON-C >= 0.12

* Wed Feb 10 2016 Björn Esser <fedora@besser82.io> - 4.1.0-1
- new upstream release (#1306079)
- fix build/testsuite with gcc 6.0.0 (#1308270)

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-0.11.git20160201.03b8c1c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Feb 01 2016 Björn Esser <fedora@besser82.io> - 4.0.1-0.10.git20160201.03b8c1c
- udpated to new snapshot git20160201.03b8c1cc3b8f4426a2fe80055fdfdc9e156953b6

* Tue Jan 26 2016 Björn Esser <fedora@besser82.io> - 4.0.1-0.9.git20160125.0382808
- updated to new snapshot git20160125.038280845fd7fb886f4459996f1405f8ca8c1612
- re-enable mono, issues with mono >= 4 are fixed upstream (#1223446)

* Thu Jan 21 2016 Orion Poplawski <orion@cora.nwra.com> - 4.0.1-0.8.git20151219.af8c1df
- Rebuild for hdf5 1.8.16

* Sat Jan 16 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> -4.0.1-0.7.git20151219.af8c1df
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.3

* Mon Dec 21 2015 Björn Esser <fedora@besser82.io> - 4.0.1-0.6.git20151219.af8c1df
- updated to new snapshot git20151219.af8c1df859ed3d5780bbea5615a5c523e5651db9
- remove Patch0001, fixed in upstream-tarball

* Thu Dec 17 2015 Björn Esser <fedora@besser82.io> - 4.0.0-0.5.git20151217.7e4ac13
- updated to new snapshot git20151217.7e4ac1327cc3ee4b09f498c1b778d13f37ff0956
- updated %%description
- add modshogun.rb to ruby-shogun
- add Patch0001: revert removal of migration-framework

* Tue Dec 08 2015 Björn Esser <fedora@besser82.io> - 4.0.1-0.4.git20150913.d8eb73d
- changing name of python2-subpkg

* Sat Nov 21 2015 Björn Esser <fedora@besser82.io> - 4.0.1-0.3.git20150913.d8eb73d
- updated to new snapshot git20150913.d8eb73dd89f47e0da28f07163c4f635b96d0ec00
- removed ChangeLog from package, deleted in upstream tarball

* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.1-0.2.git20150808.779c3ad
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5

* Sat Aug 08 2015 Björn Esser <bjoern.esser@gmail.com> - 4.0.1-0.1.git20150808.779c3ad
- updated to new snapshot git20150808.779c3ada68ae535062346ef71e6c1c39e482a8ca
- drop all patches, applied in upstream tarball
- add more testsuite-excludes for ix86
- disable memtests on %%arm

* Fri Aug 07 2015 Björn Esser <bjoern.esser@gmail.com> - 4.0.0-7
- rebuilt with full hardening
- add Patch11-13:	enable CMake-policy CMP0056
- add Patch14:		fix handling of C[XX]FLAGS

* Fri Aug 07 2015 Björn Esser <bjoern.esser@gmail.com> - 4.0.0-6
- temporarily disabling Mono-bindings on Fedora 23+

* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 23 2015 Björn Esser <bjoern.esser@gmail.com> - 4.0.0-4
- fix: Build fails on fc23+ because of hardening
- fix: BR: mono >= 4.0.0
- exclude tests, which are failing on aarch64 (#1222401)

* Tue May 19 2015 Peter Robinson <pbrobinson@fedoraproject.org> 4.0.0-3
- Rebuild (mono4)

* Sun May 17 2015 Orion Poplawski <orion@cora.nwra.com> - 4.0.0-2
- Rebuild for hdf5 1.8.15

* Wed Apr 29 2015 Björn Esser <bjoern.esser@gmail.com> - 4.0.0-1
- new release v4.0.0 (#1105909, #1183622)
- add Patch0:	fixes double delete[] and tests with swig 3.x
- add Patch1:	fixes to CMake-buildsys
- add Patch2,3:	enable python-debugging in testsuite
- add Patch4:	optionally disabling sse and sse2 features
- add Patch5:	requiring 'rubygems' in testsuite
- add Patch6:	testing Py structure hierarchical multilabel classification
- add Patch7:	replace deprecated json-c functions
- add Patch8:	obey $ENV{R_LIBS_USER} when running tests
- add Patch9:	reduce debuginfo of swig-generated bindings
- add Patch10:	make sure all modular interfaces are build single-threaded
- add automatic CLASSPATH-export for java-shogun
- add automatic MONO_PATH-export for mono-shogun
- add pkg-config file for easier use with gcc
- move headers to versioned include-subdir to avoid collisions
- retiring octave-shogun on %%{arm}
- R-shogun is stable now (#1043885)
- use atlas' clapack on <= fc20 and <= el7
- narrowed the list of failing tests and don't ignore fails anymore
- remove obsolete sed-kludges
- use temporary files instead of pipes to pass data between different gcc instances
- builds are running multi-threaded again
- use %%__isa instead of %%_arch for file / dir naming
- add memory-tests to find reasons for possible segfaults
- run memory- and unit-test multi-threaded
- use %%license when available
- use %%bconds instead of %%global madness
- spec-file cosmetics

* Wed Apr 29 2015 Kalev Lember <kalevlember@gmail.com> - 3.2.0.1-0.35.git20141224.d71e19a
- Rebuilt for protobuf soname bump

* Thu Apr 23 2015 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.34.git20141224.d71e19a
- rebuild for so-name bump in protobuf-2.6.1 (libprotobuf.so.9)

* Sun Jan 18 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.2.0.1-0.33.git20141224.d71e19a
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2
- Once reduce debuginfo verbosity on arm to reduce memory comsumption
- And once mark -doc, -doc-cn arch dependent perhaps due to above

* Wed Jan 07 2015 Orion Poplawski <orion@cora.nwra.com> - 3.2.0.1-0.32.git20141224.d71e19a
- Rebuild for hdf5 1.8.14

* Wed Dec 24 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.31.git20141224.d71e19a
- updated to new snapshot git20141224.d71e19aa5a575b2b4e52c908a694eb1db7afc973
- reduced number of make-jobs on %%{arm}
- conditionalized and disabled OpenCV-integration

* Tue Dec 23 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.30.git20141223.c329375
- updated to new snapshot git20141223.c32937574df1c560ce7c10f1b8860679ce011a8b
- added BR: ocl-icd-devel, opencl-headers
- enabled OpenCV-features and R-shogun
- purged light-scrubber.sh from repo, now shipped with tarball
- updated documentation-files
- build mono-shogun on %%{mono_arches}, only
- install documentation-files to %%{_pkgdocdir}

* Mon Sep 01 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.29.git20140901.705b7de
- updated to new snapshot git20140901.705b7dea7093cb094fe90fcebac20b7e7d1debcd

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.0.1-0.28.git20140804.96f3cf3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Mon Aug 04 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.27.git20140804.96f3cf3
- updated to new snapshot git20140804.96f3cf3ce58514299f98e688b7c43e057ad4fa41

* Mon Jul 21 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.26.git20140721.81c0008
- updated to new snapshot git20140721.81c00087da6f05d36aec410fef0fcef5be490f42
- enable SSE2 for %%{ix86}, because dSFMT-build will fail otherwise
- switch back to a monolithic build with limeted parallelization
- temporarily discard errors from testsuite

* Thu Jul 17 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.25.git20140717.1ba2924
- updated to new snapshot git20140717.1ba29247b850adef1b866a6c2112a6483c88428e

* Wed Jun 18 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.24.git20140618.2f7681e
- updated to new snapshot git20140618.2f7681ed0c1849088ee5bcc48b91a1c970ff3a9b
- excluded segfaulting tests

* Tue Jun 17 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.23.git20140616.31f5609
- updated to new snapshot git20140616.31f5609f7a7345ca05b5c1f8c7425236da2270df

* Thu Jun 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.22.git20140604.98900c2
- export additional C[XX]FLAGS on 32Bit-arches for SSE and SSE2
- fix typemapping for Mono (C#) with swig >= 3.0.0
- exclude testing python_modular on Fedora >= 21, segfaults related to swig3
- build libshogun with full parallelization, but the swig-bindings

* Thu Jun 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.21.git20140604.98900c2
- updated to new snapshot git20140604.98900c2996ccc4509099a6a337a71d7ca9991bd6

* Mon May 26 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.20.git20140526.7587570
- updated to new snapshot git20140526.758757094c30ae249f5ddc84f3cdc11b4b4203c4
- dropped obsolete BR LaTeX from -doc-pkg

* Mon May 26 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.19.git20140523.681b5ec
- updated to new snapshot git20140523.681b5ec17c0ca9c98cb54047dcd679bec9171989

* Sat May 17 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.18.git20140516.96b815f
- adapted the logic for finding rubygem-narray on Fedora >= 21

* Sat May 17 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.17.git20140516.96b815f
- updated to new snapshot git20140516.96b815fd1fa9769a24122f9016ff5a685a8a6944

* Thu Apr 24 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.16.git20140423.68a5124
- updated to new snapshot git20140423.68a5124bec8df5a013b2406e8c00d93ab83bf88d

* Fri Apr 18 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.15.git20140418.34f9672
- updated to new snapshot git20140418.34f96727f343b7f7f5e0426dbbf579f5dbc0f51e

* Mon Apr 14 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.14.git20140414.b0146f8
- updated to new snapshot git20140414.b0146f8b7314a4de25273dab2d6da4a37044bbec

* Tue Mar 18 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.13.git20140318.6134bc2
- updated to new snapshot git20140318.6134bc2e1e721726102624b372c1f8e7a31816df

* Mon Mar 17 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.12.git20140317.6ee3991
- updated to new snapshot git20140317.6ee39918dc99e72c23a30419a608f11217146e26

* Sat Mar 15 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.11.git20140315.55912da
- updated to new snapshot git20140315.55912da6dd499632ab2371cbbde9fdafaa913cac

* Fri Mar 14 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.10.git20140313.9b6dcd2
- updated to new snapshot git20140313.9b6dcd2a077868259029ce2f28b306e56b30bf2f

* Thu Mar 13 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.9.git20140313.e380071
- updated to new snapshot git20140313.e380071f5a8a5d35c0b33ea0ab55810ef9845354

* Thu Mar 13 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.8.git20140312.d9c535e
- updated to new snapshot git20140312.d9c535e85ed8dc61d537052a9abce200782b87b2

* Fri Mar 07 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.7.git20140307.c281eaa
- updated to new snapshot git20140307.c281eaaf51f44c16c9a7ded0678cbbac265714f6

* Wed Mar 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.6.git20140305.9c67564
- updated to new snapshot git20140305.9c67564278abd5a13efe9ae016f8b3e01bf209f9

* Wed Mar 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.5.git20140305.9b37dc1
- use new macros provided by shogun-data-pkg

* Wed Mar 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.4.git20140305.9b37dc1
- use `CMAKE_BUILD_TYPE=Release` for the Python3-version, too

* Wed Mar 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.3.git20140305.9b37dc1
- fixed year in git-snapshot-date

* Wed Mar 05 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.2.git20130305.9b37dc1
- updated to new snapshot git20130305.9b37dc1e630d54a9c16f2d19b6a10c34d8aef73a

* Tue Mar 04 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0.1-0.1.git20130303.df06a0e
- updated to new snapshot git20130303.df06a0e1a7e3551b0bee218246cfc4bf1a4696d8

* Tue Mar 04 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0-2
- require java-headless on Fedora >= 20 or RHEL >= 7
- exclude some tests on %%{arm} arches only

* Sun Feb 23 2014 Björn Esser <bjoern.esser@gmail.com> - 3.2.0-1
- new upstream release: v3.2.0 (#1066944)
- enabled build of Java-bindings (#1043882)
- enabled build of Python3-bindings (#1043884)
- dropped Patch0 for Octave 3.8.0 (#1047053)
- bumped required data-version to 0.8 (#1068941)
- split-off scrubber-script to seperate script
- exclude some tests on 32-Bit arches only

* Wed Jan 08 2014 Orion Poplawski <orion@cora.nwra.com> - 3.1.1-2
- Add patch for octave 3.8.0 support

* Mon Jan 06 2014 Björn Esser <bjoern.esser@gmail.com> - 3.1.1-1
- new upstream release: v3.1.1
- data-files are now moved into a separate package
- added example-applications to doc-pkg

* Sat Dec 28 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.13.git20131226.1c7fbaa
- rebuild for octave-3.8.0-rc2

* Thu Dec 26 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.12.git20131226.1c7fbaa
- updated to new snapshot git20131226.1c7fbaa732c8476b2df26bca2ae93de666959092
- updated to new testsuite-data git20131222.0bbb04f354a29ed3ab43ce002388b79bb274e886

* Fri Dec 20 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.11.git20131219.207a709
- rebuild for NLopt-2.4.1

* Fri Dec 20 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.10.git20131219.207a709
- rebuild for arprec-2.2.17
- added a line about `no-SVM^light-support` in %%description
- minor indention improvements for the list of bindings in %%description
- fixed `macro-in-comment %%{mono_arches}`
- added %%ifarch %%{mono_arches} for mono-shogun-pkg for building it on those
  arches, only

* Thu Dec 19 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.9.git20131219.207a709
- updated to new snapshot git20131219.207a70972e794df28f0fc67309f217f7fbf3b4e7

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.8.git20131217.70f2657
- copying and packaging the prestine examples to another location is better
  and less error-prone then removing the clutter left by testsuite afterwards

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.7.git20131217.70f2657
- remove more possible clutter from testsuite
- re-enable mldata-based tests when there is internet connectivity

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.6.git20131217.70f2657
- updated to new snapshot git20131217.70f26573a501791e11097615296127c1c36904d7

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.5.git20131216.7230f07
- temporarily disabled mono-shogun on all arm-arches

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.4.git20131216.7230f07
- enable build of mono-shogun, since it should be fixed in current
  checkout (#1043859)

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.3.git20131216.7230f07
- updated to new snapshot git20131216.7230f074751a97842170b8a5f9c69fbd9b8287ca

* Tue Dec 17 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.2.git20131212.70e774d
- remove cluttering *.map *.md5 in autodocs (#1043856)
- remove possible clutter from testsuite

* Mon Dec 16 2013 Björn Esser <bjoern.esser@gmail.com> - 3.1.0-0.1.git20131212.70e774d
- updated to latest git-snapshot (#1043283)
- disabled shogun-mono, because it segfaults currently and has some severe
  problems on ARMv7hl

* Sun Dec 15 2013 Björn Esser <bjoern.esser@gmail.com> - 3.0.0-1
- Initial rpm release (#1043283)