# Conditional for release and snapshot builds. Uncomment for release-builds.
#%%global rel_build 1
# Settings used for build from snapshots.
%{!?rel_build:%global commit 98900c2996ccc4509099a6a337a71d7ca9991bd6}
%{!?rel_build:%global commit_date 20140604}
%{!?rel_build:%global shortcommit %(c=%{commit};echo ${c:0:7})}
%{!?rel_build:%global gitver git%{commit_date}-%{shortcommit}}
%{!?rel_build:%global gitrel .git%{commit_date}.%{shortcommit}}
%{!?rel_build:%global gittar %{name}-%{version}-%{gitver}.tar.gz}
# This is needed, because src-url contains branched part of versioning-scheme.
%global branch 3.2
# Filter all provides from bindings and private libs.
%global __provides_exclude_from ^(%{_libdir}/.*/.*%{name}\\.so|%{_libdir}/libmod%{name}.so)
# There's no Python3 on older distributions.
%if (0%{?fedora} && 0%{?fedora} <= 12) || (0%{?rhel} && 0%{?rhel} <= 6)
%global without_python3 1
%endif
# Some bindings are globally disabled by default, because they either FTBFS
# or testsuite fails for them. We disable them here until they will build.
%global without_perl 1 # not fully implemented by upstream,yet.
%global without_r 1 # Testsuite chokes, build broken for R >= 3.0.0.
# Mono-bindings are currently segfaulting during testsuite on arm.
# See rhbz# 1043941: https://bugzilla.redhat.com/show_bug.cgi?id=1043941
#
# Temporarily disabling the build of mono-shogun for all arm-arches.
%ifarch %{arm}
%global without_mono 1
%endif
# Some switches to control build of SWIGed-bindings and testsuite. You still
# can pass overriding defines `-D 'with_XXX 1'` or `-D 'without_XXX 1'` to
# rpmbuild.
%{!?without_cli: %global with_cli 1}
%{!?without_java: %global with_java 1}
%{!?without_lua: %global with_lua 1}
%{!?without_mono: %global with_mono 1}
%{!?without_octave: %global with_octave 1}
%{!?without_perl: %global with_perl 1}
%{!?without_python: %global with_python 1}
%{!?without_python3: %global with_python3 1}
%{!?without_r: %global with_r 1}
%{!?without_ruby: %global with_ruby 1}
%{!?without_tests: %global with_tests 1}
# The description commonly used by all (sub-)packages.
%global common_description \
The SHOGUN machine learning toolbox's focus is on large scale kernel methods \
and especially on Support Vector Machines (SVM). It provides a generic SVM \
object interfacing to several different SVM implementations, among them the \
state of the art LibSVM. Each of the SVMs can be combined with a variety of \
kernels. The toolbox not only provides efficient implementations of the most \
common kernels, like the Linear, Polynomial, Gaussian and Sigmoid Kernel but \
also comes with a number of recent string kernels as e.g. the Locality \
Improved, Fischer, TOP, Spectrum, Weighted Degree Kernel (with shifts). For \
the latter the efficient LINADD optimizations are implemented. Also SHOGUN \
offers the freedom of working with custom pre-computed kernels. One of its \
key features is the "combined kernel" which can be constructed by a weighted \
linear combination of a number of sub-kernels, each of which not necessarily \
working on the same domain. An optimal sub-kernel weighting can be learned \
using Multiple Kernel Learning. Currently SVM 2-class classification and \
regression problems can be dealt with. However SHOGUN also implements a \
number of linear methods like Linear Discriminant Analysis (LDA), Linear \
Programming Machine (LPM), (Kernel) Perceptrons and features algorithms to \
train hidden Markov-models. The input feature-objects can be dense, sparse \
or strings and of type int/short/double/char and can be converted into \
different feature types. Chains of "pre-processors" (e.g. subtracting the \
mean) can be attached to each feature object allowing for on-the-fly \
pre-processing. \
\
This build comes WITHOUT support for Thorsten Joachim's `SVM^light`, because \
of it's 'no-redistribute', 'no-commercial-use' license.
###############################################################################
Name: shogun
Version: %{branch}.0.1
Release: 0.22%{?gitrel}%{?dist}
Summary: Large Scale Machine Learning Toolbox
# ===== License-breakdown =====
#
#
# GPLv3+
# ------
# * except the files explicitly named below
#
#
# BSD (2 clause)
# --------------
# src/shogun/lib/external/shogun_libsvm.cpp
# src/shogun/lib/external/shogun_libsvm.h
# src/shogun/optimization/liblinear/shogun_liblinear.cpp
# src/shogun/optimization/liblinear/shogun_liblinear.h
# src/shogun/optimization/liblinear/tron.cpp
# src/shogun/optimization/liblinear/tron.h
#
#
# BSD (3 clause)
# --------------
# src/shogun/lib/external/SFMT/* src/shogun/lib/external/dSFMT/*
#
#
# GPLv2+
# ------
# src/shogun/lib/external/ssl.cpp src/shogun/lib/external/ssl.h
# src/shogun/mathematics/munkres.cpp src/shogun/mathematics/munkres.h
# src/shogun/structure/DynProg.cpp
# src/shogun/transfer/multitask/MultitaskKernelMaskNormalizer.h
# src/shogun/transfer/multitask/MultitaskKernelMaskPairNormalizer.h
# src/shogun/transfer/multitask/MultitaskKernelPlifNormalizer.h
# src/shogun/transfer/multitask/MultitaskKernelTreeNormalizer.h
#
#
# GPLv2+ or LGPLv2+
# -----------------
# src/shogun/multiclass/LaRank.cpp src/shogun/multiclass/LaRank.h
#
#
# LGPLv2+
# -------
# src/shogun/classifier/svm/OnlineSVMSGD.cpp
# src/shogun/classifier/svm/OnlineSVMSGD.h
# src/shogun/classifier/svm/SGDQN.cpp src/shogun/classifier/svm/SGDQN.h
# src/shogun/classifier/svm/SVMSGD.cpp src/shogun/classifier/svm/SVMSGD.h
# src/shogun/lib/external/brent.cpp src/shogun/lib/external/brent.h
#
#
# MIT/X11 (BSD like)
# ------------------
# src/shogun/optimization/lbfgs/lbfgs.cpp
# src/shogun/optimization/lbfgs/lbfgs.h
#
#
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
# Sources for release-builds.
%{?rel_build:Source0: %{url}/archives/%{name}/releases/%{branch}/sources/%{name}-%{version}.tar.bz2}
# Sources for snapshot-builds.
%{!?rel_build:Source0: https://github.com/%{name}-toolbox/%{name}/archive/%{commit}.tar.gz#/%{gittar}}
Source98: light-scrubber.sh
Source99: http://googlemock.googlecode.com/files/gmock-1.7.0.zip
BuildRequires: arpack-devel
BuildRequires: arprec-devel
BuildRequires: atlas-devel
BuildRequires: blas-devel
BuildRequires: bzip2-devel
BuildRequires: chrpath
BuildRequires: ColPack-devel
BuildRequires: glpk-devel
BuildRequires: hdf5-devel
BuildRequires: iputils
BuildRequires: json-c-devel
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
BuildRequires: lapack-devel
%endif
BuildRequires: libcurl-devel
BuildRequires: libxml2-devel
BuildRequires: lpsolve-devel
BuildRequires: lzo-devel
BuildRequires: NLopt-devel
BuildRequires: opencv-devel
BuildRequires: protobuf-devel
BuildRequires: qd-devel
BuildRequires: %{name}-data
BuildRequires: snappy-devel
BuildRequires: tapkee-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
%if 0%{?fedora} || 0%{?rhel} >= 7
BuildRequires: cmake
BuildRequires: eigen3-devel
BuildRequires: swig
%else
BuildRequires: cmake28
BuildRequires: eigen32-devel
BuildRequires: swig2
%endif
# testsuite
BuildRequires: gdb
BuildRequires: valgrind
# copylib - Wildcard-exception granted by FPC.
# See: https://fedorahosted.org/fpc/ticket/174
Provides: bundled(dSFMT)
Provides: bundled(gnulib)
Provides: bundled(liblinear)
Provides: bundled(libsvm)
Provides: bundled(SFMT)
Provides: bundled(SVMlin)
%description
%{?common_description}
SHOGUN is implemented in C++ and offers interfaces for:
%{?with_cli: * CLI}
%{?with_java: * Java}
%{?with_lua: * Lua}
%{?with_mono: * Mono (C#)}
%{?with_octave: * Octave}
%{?with_perl: * Perl}
%{?with_python: * Python}
%{?with_python3: * Python3}
%{?with_r: * R}
%{?with_ruby: * Ruby}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%doc README.md doc/md/LICENSE*
%{_libdir}/lib%{name}.so.*
###############################################################################
%if 0%{?with_cli}
%package cli
Summary: CLI-interface for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description cli
%{?common_description}
This package contains the CLI-interface for %{name}.
%files cli
%{_bindir}/%{name}
%endif #0%{?with_cli}
###############################################################################
%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}
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
BuildRequires: lapack-devel%{?_isa}
%endif
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: tapkee-devel
Requires: xz-devel%{?_isa}
Requires: zlib-devel%{?_isa}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
%{?common_description}
This package contains files needed for development with %{name}.
%files devel
%doc doc/md/README_developer.md doc/md/README_soname.md
%{_includedir}/%{name}
%{_libdir}/lib%{name}.so
###############################################################################
%package doc
# Do not check any files in docdir for Requires.
%global __requires_exclude_from ^%{_docdir}/.*$
Summary: Documentation files for %{name}
%{!?el5:BuildArch: noarch}
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: graphviz
Requires: %{name}-data = %{_shogun_data_version}
%description doc
%{?common_description}
This package contains the ChangeLog, a very detailed documentation,
and some great examples for %{name}.
%files doc
%doc ChangeLog NEWS README* applications build/unittest*.log build/doc/html*
%doc doc/examples doc/images doc/ipython-notebooks doc/md
###############################################################################
%if 0%{?with_java}
%package -n java-%{name}
Summary: Java-plugin for %{name}
BuildRequires: java-devel
BuildRequires: jblas
%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
Requires: java-headless
%else
Requires: java
%endif #0%{?fedora} >= 20 || 0%{?rhel} >= 7
Requires: jblas%{?_isa}
Requires: jpackage-utils
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n java-%{name}
%{?common_description}
This package contains the Java-plugin for %{name}.
%files -n java-%{name}
%{_jnidir}/*
%{_libdir}/%{name}.java
%endif #0%{?with_java}
###############################################################################
%if 0%{?with_lua}
%package -n lua-%{name}
# http://fedoraproject.org/wiki/PackagingDrafts/Lua
%{!?lua_ver: %global lua_ver %(lua -e 'print(string.sub(_VERSION, 5))' || echo 0)}
%global lualibdir %{_libdir}/lua/%{lua_ver}
%global luanext 5.2
Summary: LUA-plugin for %{name}
BuildRequires: lua-devel
Requires: lua%{?_isa}
%if 0%{?fedora} || 0%{?rhel} >= 7
Requires: lua(abi) = %{lua_ver}
%else
Requires: lua >= %{lua_ver}
Requires: lua < %{luanext}
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n lua-%{name}
%{?common_description}
This package contains the LUA-plugin for %{name}.
%files -n lua-%{name}
%{lualibdir}/libmod%{name}.so
%endif #0%{?with_lua}
###############################################################################
%if 0%{?with_mono}
%ifarch %{mono_arches}
%package -n mono-%{name}
Summary: Mono(C#)-plugin for %{name}
BuildRequires: mono-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n mono-%{name}
%{?common_description}
This package contains the Mono(C#)-plugin for %{name}.
%files -n mono-%{name}
%{_libdir}/%{name}.mono
%endif #ifarch %%{mono_arches}
%endif #0%{?with_mono}
###############################################################################
%if 0%{?with_octave}
%package -n octave-%{name}
# https://fedoraproject.org/wiki/Packaging:Octave
%{!?octave_api: %global octave_api %(octave-config -p API_VERSION || echo 0)}
%global octave_octdir %(octave-config -p LOCALAPIOCTFILEDIR || echo '')
Summary: Octave-plugin for %{name}
BuildRequires: octave-devel
Requires: octave%{?_isa} >= 3.6
Requires: octave(api) = %{octave_api}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n octave-%{name}
%{?common_description}
This package contains the Octave-plugin for %{name}.
%files -n octave-%{name}
%{octave_octdir}/%{name}
%endif #0%{?with_octave}
###############################################################################
%if 0%{?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}
%{?common_description}
This package contains the Perl-plugin for %{name}.
%files -n perl-%{name}
%{perl_vendorarch}/*
%exclude %dir %{perl_vendorarch}/auto
%endif #0%{?with_perl}
###############################################################################
%if 0%{?with_python}
%package -n python-%{name}
%{!?__python2: %global __python2 %{__python27}}
%{!?python2_sitearch: %global python2_sitearch %{python27_sitearch}}
%{!?python2_ver: %global python2_ver %(%{__python2} -c 'import platform; print platform.python_version();' || echo 0)}
Summary: Python-plugin for %{name}
%if 0%{?fedora} || 0%{?rhel} >= 7
BuildRequires: numpy
BuildRequires: python-docutils
BuildRequires: python-jinja2
BuildRequires: python2-devel
BuildRequires: scipy
Requires: numpy%{?_isa}
Requires: python%{?_isa}
Requires: scipy%{?_isa}
%else
BuildRequires: python27-numpy
BuildRequires: python27-docutils
BuildRequires: python27-jinja2
BuildRequires: python27-devel
Requires: python27%{?_isa}
Requires: python27-numpy%{?_isa}
Requires: python27-scipy%{?_isa}
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python-%{name}
%{?common_description}
This package contains the Python-plugin for %{name}.
%files -n python-%{name}
%{python2_sitearch}/*
%endif #0%{?with_python}
###############################################################################
%if 0%{?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-scipy
Requires: python3%{?_isa}
Requires: python3-numpy%{?_isa}
Requires: python3-scipy%{?_isa}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
%{?common_description}
This package contains the Python3-plugin for %{name}.
%files -n python3-%{name}
%{python3_sitearch}/*
%endif #0%{?with_python3}
###############################################################################
%if 0%{?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}
%{?common_description}
This package contains the R-plugin for %{name}.
%files -n R-%{name}
%dir %{_libdir}/R/library/%{name}
%doc %{_libdir}/R/library/%{name}/DESCRIPTION
%doc %{_libdir}/R/library/%{name}/demo
%{_libdir}/R/library/%{name}/libs
%{_libdir}/R/library/%{name}/Meta
%{_libdir}/R/library/%{name}/NAMESPACE
%{_libdir}/R/library/%{name}/R
%endif #0%{?with_r}
###############################################################################
%if 0%{?with_ruby}
%package -n ruby-%{name}
# For compatibility with RHEL <= 6.
%{!?ruby_vendorlibdir: %global ruby_vendorlibdir %(ruby -rrbconfig -e "puts RbConfig::CONFIG['sitelibdir']")}
%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e "puts RbConfig::CONFIG['sitearchdir']")}
# We need to pass the path for rubygem(narray) to CMake, so it can find it.
%global narray_gem %(gem list narray | grep narray | sed -e's! .!-!' -e 's!.$!!')
%if 0%{?fedora} >= 21 || 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
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
Requires: ruby(release)
%else
Requires: ruby(abi) = %{?rhel:1.8}%{!?rhel:1.9.1}
%endif
Requires: rubygem(narray)%{?_isa}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n ruby-%{name}
%{?common_description}
This package contains the Ruby-plugin for %{name}.
%files -n ruby-%{name}
%{ruby_vendorarchdir}/mod%{name}.so
%endif #0%{?with_ruby}
###############################################################################
%prep
%setup -q%{!?rel_build:n %{name}-%{commit}}
# Scrub SVMlight.
install -pm0755 %{SOURCE98} ./scripts/
./scripts/light-scrubber.sh
# Remove cluttering stuff and create some needed dirs.
rm -rf %{py3dir} build data doc/tutorial third_party
mkdir -p build third_party/GoogleMock
# Unbundle Tapkee. This is pretty the same as we have in our repos.
rm -rf doc/md/LICENSE_tapkee.md
pushd src/shogun/lib/tapkee
for _needed_sources in tapkee_shogun.*
do
sed -e 's!<shogun/lib/!<!g' \
-e 's!tapkee/tapkee_shogun.hpp>$!shogun/lib/&!g' \
< ${_needed_sources} > ${_needed_sources}.mod && \
touch -r ${_needed_sources} ${_needed_sources}.mod
done
rm -rf */ *.{cpp,h,hpp}
for _needed_sources in tapkee_shogun.*
do
mv ${_needed_sources} `echo ${_needed_sources} | sed -e 's!\.mod$!!g'`
done
popd
# Disable unwanted / overriding compiler-flags in release-mode, which would
# set such stuff like "-march=native" or "-O3 -g0".
sed -i -e 's!^[ \t]*[sS][eE][tT].*.*_FLAGS_RELEASE!#&!g' \
-e 's!^[ \t]*[sS][eE][tT].*-march=native!#&!g' \
CMakeLists.txt
# Fix testsuite invocation for C#/Mono plugin.
sed -i -e 's!\${CSHARP_INTERPRETER}!%(which mono)!g' \
examples/undocumented/csharp_modular/CMakeLists.txt
# Fix finding PerlLibs and linking against HDF5.
sed -i -e 's!FindPerlLibs REQUIRED!PerlLibs REQUIRED!' \
-e '/SET.HDF5_LIBRARIES/d' \
CMakeLists.txt
# Fix install path for R-plugins.
sed -i -e "s~\${R_COMPONENT_LIB_PATH}/shogun/Meta~`pwd`/test_install/&~g" \
-e "s~\.r-install.sh ~&`pwd`/test_install/~g" \
src/interfaces/r_modular/CMakeLists.txt
# Fix testsuite environment for R.
sed -i -e "s~^ENDFOREACH~\tset_property\\(TEST r_modular-\${EXAMPLE_NAME} PROPERTY\n\t\t\t\tENVIRONMENT \\\"R_LIBS_USER=\\\\\\\"`pwd`/test_install%{_libdir}/R/library\\\\\\\"\\\"\\)\n&~" \
examples/undocumented/r_modular/CMakeLists.txt
# Ruby-plugins go to %%{ruby_vendorarchdir}, but on <= el6.
%if 0%{?fedora} || 0%{?rhel} >= 7
sed -i -e 's!\${RUBY_SITE_ARCH_DIR}!\${RUBY_VENDORARCH_DIR}!g' \
src/interfaces/ruby_modular/CMakeLists.txt
%endif
# Fix testsuite environment for Ruby.
sed -i -e "s!\${NARRAY_PATH}!%{narray_include}:&!" \
examples/undocumented/ruby_modular/CMakeLists.txt
# Patch the Ruby-files to `require 'rubygems'` asap.
for _file in `find . -depth -type f -name '*.rb'`
do
sed -i.orig -e "0,/^require/s//require \'rubygems\'\n&/" ${_file} && \
touch -r ${_file}.orig ${_file} && \
rm -rf ${_file}.orig
done
# Fix typemapping for Mono (C#) with SWIG >= 3.0.0.
sed -i -e 's!-w473;-w454;-w312;-w325;-fvirtual!-DSWIG2_CSHARP;&!g' \
CMakeLists.txt
# This is needed for testsuite not to fail on some tests.
echo "# noop" > examples/undocumented/python_modular/tools/__init__.py
# Copy the other sources into tree.
install -pm 0644 %{SOURCE99} third_party/GoogleMock
# Copy data into proper location.
cp -a %{_shogun_data_dir} data
# Copy all stuff into %%{py3dir} for the Python3-build.
cp -a . %{py3dir}
# Patch doxy2swig to open files with utf-8 encoding on Python3.
sed -i -e's!return open.source.!return open\(source, encoding="utf-8"\)!' \
%{py3dir}/src/.doxy2swig.py
###############################################################################
%build
# We need some UTF-8 encoding during build.
export LANG="us_US.UTF-8"
# 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.
export PYTHONPATH="`pwd`/test_install/%{python2_sitearch}/%{name}"
export PYTHONPATH="${PYTHONPATH}:`pwd`/test_install/%{python2_sitearch}"
export PYTHONPATH="${PYTHONPATH}:$(pwd)/examples/undocumented/python_modular"
export PYTHONPATH="${PYTHONPATH}:%{python2_sitearch}:%{python2_sitelib}"
# We need to export some custom LD_LIBRARY_PATH for the tests, too.
export LD_LIBRARY_PATH="`pwd`/test_install/%{_libdir}"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:%{_libdir}/atlas"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:%{_libdir}"
# Export additional C[XX]FLAGS on 32Bit-arches for SSE and SSE2.
%if 0%{?fedora} >= 21
%ifarch %{ix86}
export CFLAGS="%{?optflags} -msse -msse2"
export CXXFLAGS="%{?optflags} -msse -msse2"
%endif # arch %{ix86}
%endif # 0%{?fedora} >= 21
pushd build
%cmake \
-DCMAKE_BUILD_TYPE=Release \
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
-DATLAS_LIBRARIES=%{_libdir}/atlas/libtatlas.so \
%endif
%{?with_tests: -DBUILD_DASHBOARD_REPORTS=ON } \
-DBUNDLE_EIGEN=OFF \
-DBUNDLE_NLOPT=OFF \
-DBUNDLE_JSON=OFF \
-DENABLE_CCACHE=OFF \
%{?with_tests: -DENABLE_TESTING=ON } \
-DUSE_SVMLIGHT=OFF \
%{?with_cli: -DCmdLineStatic=ON } \
%{?with_mono: -DCSharpModular=ON } \
%{?with_java: -DJavaModular=ON } \
%{?with_lua: -DLuaModular=ON } \
%{?with_ruby: -DRUBY_NARRAY_INCLUDE_DIR="%{narray_include}" } \
%{?with_ruby: -DRUBY_NARRAY_LIBRARY="%{narray_lib}" } \
%{?with_octave: -DOctaveModular=ON } \
%{?with_perl: -DPerlModular=ON } \
%{?with_python: -DPythonModular=ON } \
%{?with_python: -DPYTHON_EXECUTABLE="%{__python2}" } \
%{?with_r: -DRModular=ON } \
%{?with_ruby: -DRubyModular=ON } \
..
# Build the library with full parallelization first.
make %{?_smp_mflags} shogun
# We need to prepare GoogleMock for building the unit-tests.
make %{?_smp_mflags} GoogleMock
# Now let's build the unit-tests.
make %{?_smp_mflags} unit-tests
# Build the rest (SWIG-generated bindings) with less parallelization, because
# of memory-limits (4 GBytes RAM / 4 GBytes swap) on Koji-workers. A single
# make-thread needs to have ~1.5 GBytes of RAM or swap avail. 5 * 1.5 = 7.5
# is hard on the limit, so we limit parallel-make to 3 threads = 4.5 GBytes.
# The actual thing consuming these amounts of memory is not the build itself,
# but SWIG, which eats RAM like chocolate, when creating cpp-src.
ping -c1 mldata.org && \
make %{?_smp_mflags} || make -j3
popd
# Build the Python3-version.
%if 0%{?with_python3}
export PYTHONPATH="`pwd`/test_install/%{python3_sitearch}/%{name}"
export PYTHONPATH="${PYTHONPATH}:`pwd`/test_install/%{python3_sitearch}"
export PYTHONPATH="${PYTHONPATH}:$(pwd)/examples/undocumented/python_modular"
export PYTHONPATH="${PYTHONPATH}:%{python3_sitearch}:%{python3_sitelib}"
pushd %{py3dir}/build
%cmake \
-DCMAKE_BUILD_TYPE=Release \
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
-DATLAS_LIBRARIES=%{_libdir}/atlas/libtatlas.so \
%endif
%{?with_tests: -DBUILD_DASHBOARD_REPORTS=ON } \
-DBUNDLE_EIGEN=OFF \
-DBUNDLE_NLOPT=OFF \
-DBUNDLE_JSON=OFF \
-DENABLE_CCACHE=OFF \
%{?with_tests: -DENABLE_TESTING=ON } \
-DUSE_SVMLIGHT=OFF \
-DPythonModular=ON \
-DPYTHON_EXECUTABLE=%{__python3} \
..
# Build the library with full parallelization first.
make %{?_smp_mflags} shogun
# We need to prepare GoogleMock for building the unit-tests.
make %{?_smp_mflags} GoogleMock
# Now let's build the unit-tests.
make %{?_smp_mflags} unit-tests
# Build the rest (SWIG-generated bindings) with less parallelization, because
# of memory-limits (4 GBytes RAM / 4 GBytes swap) on Koji-workers. A single
# make-thread needs to have ~1.5 GBytes of RAM or swap avail. 5 * 1.5 = 7.5
# is hard on the limit, so we limit parallel-make to 3 threads = 4.5 GBytes.
# The actual thing consuming these amounts of memory is not the build itself,
# but SWIG, which eats RAM like chocolate, when creating cpp-src.
ping -c1 mldata.org && \
make %{?_smp_mflags} || make -j3
popd
%endif #0%{?with_python3}
# Building the autodocs.
pushd build
make doc
%if 0%{?fedora} || 0%{?rhel} >= 7
pushd doc
%fdupes .
popd
%endif
popd
###############################################################################
%install
%{?el5:rm -rf %{buildroot}}
# We install to custom location first. This will be needed by testsuite, too.
export CUSTOM_INSTALL_DIR="`pwd`/test_install/"
# Install the Python3-version first.
%if 0%{?with_python3}
pushd %{py3dir}/build
make install DESTDIR=${CUSTOM_INSTALL_DIR}
popd
# Remove the installed headers and libshogun.so
rm -rf ${CUSTOM_INSTALL_DIR}%{_includedir} \
${CUSTOM_INSTALL_DIR}%{_libdir}/lib%{name}.so*
%endif #0%{?with_python3}
pushd build
make install DESTDIR=${CUSTOM_INSTALL_DIR}
popd
%if 0%{?with_java}
# Move Java-bindings to proper location.
mkdir -p ${CUSTOM_INSTALL_DIR}%{_libdir}/%{name}.java \
${CUSTOM_INSTALL_DIR}%{_jnidir}
mv ${CUSTOM_INSTALL_DIR}%{_prefix}/lib/jni/libmod%{name}.so \
${CUSTOM_INSTALL_DIR}%{_libdir}/%{name}.java
mv ${CUSTOM_INSTALL_DIR}%{_javadir}/*.jar ${CUSTOM_INSTALL_DIR}%{_jnidir}
%endif #0%{?with_java}
%if 0%{?with_mono}
# Move Mono(C#)-bindings to the proper location.
mkdir -p ${CUSTOM_INSTALL_DIR}%{_libdir}/%{name}.mono
mv ${CUSTOM_INSTALL_DIR}%{_prefix}/lib/cli/%{name}/*mod%{name}* \
${CUSTOM_INSTALL_DIR}%{_libdir}/%{name}.mono
%endif #0%{?with_mono}
# Fix-up the permissions for some plugins.
find ${CUSTOM_INSTALL_DIR} -depth -type f -name '*.so' -print0 | \
xargs -0 chmod -f 0755
# Copy the custom installation to %%{buildroot} for having an installed
# version with rpaths preserved for the testsuite.
cp -a ${CUSTOM_INSTALL_DIR}/. %{buildroot}
# Kill rpath from binaries.
find %{buildroot}%{_libdir} -depth -type f -perm 0755 -print0 | \
xargs -0 chrpath -d -k
find %{buildroot}%{_bindir} -depth -type f -perm 0755 -print0 | \
xargs -0 chrpath -d -k
# Copy examples to keep them prestine. Testsuite will clutter them.
cp -a examples doc
# Remove unneeded stuff, e.g. compiled examples in %%{buildroot}%%{_datadir},
# build-system files in examples and 0-size files in %%{buildroot}.
rm -rf %{buildroot}%{_datadir}/%{name}/examples
for _dir in '%{buildroot}' 'doc/examples'
do
find "${_dir}" -depth -type f -size 0 -print0 | xargs -0 rm -rf
for _del in 'CMake*' 'Makefile*' '*.log' '*.sh'
do
find "${_dir}" -depth -type f -name "${_del}" -print0 | xargs -0 rm -rf
done
done
for _del in '*.map' '*.md5'
do
find doc -depth -type f -name "${_del}" -print0 | xargs -0 rm -rf
done
# Add data to clean examples, because they need it to be run.
for _dir in 'documented' 'undocumented'
do
unlink doc/examples/${_dir}/data
ln -fs %{_datadir}/%{name}/data/toy doc/examples/${_dir}/data
done
# Make sure all files in examples have mode 0644.
find doc/examples -depth -type f -print0 | xargs -0 chmod 0644
###############################################################################
%check
%if 0%{?with_tests}
# Disabled tests:
#
# * everything based on SVMlight
EXCLUDE_FROM_TESTS=".*sv[mr]light.*|.*SV[MR]Light.*"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|.*-classifier_domainadaptationsvm_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|.*-mkl_binclass_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|python_modular-serialization_string_kernels_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-TDistributedStochasticNeighborEmbeddingTest"
%if 0%{?__isa_bits} == 32
# * tests failing on 32-Bit arches because of misallignments
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-classifier_averaged_perceptron_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-classifier_multiclasslibsvm_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-classifier_svmocas_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-distance_cosine_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-distance_geodesic_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-distance_jensen_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-distance_sparseeuclidean_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_combined_custom_poly_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_histogram_word_string_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_poly_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_salzberg_word_string_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_sparse_poly_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_spline_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_wavelet_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-kernel_wave_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-preprocessor_normone_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-preprocessor_prunevarsubmean_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-regression_gaussian_process_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-regression_libsvr_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-serialization_complex_example"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-structure_multiclass_bmrm"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|libshogun-converter_multidimensionalscaling"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|python_modular-structure_multiclass_bmrm"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-CGMShiftedFamilySolver"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-CMath"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-IsomapTest"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-LinearTimeMMD"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-MMDKernelSelectionCombOpt"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-MMDKernelSelectionCombMaxL2"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-MMDKernelSelectionOpt"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|unit-SparseMatrixOperator"
%endif #0%{?__isa_bits} == 32
%ifarch %{arm}
# * tests failing on %%{arm} arches because of misallignments or timeouts
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-library_time"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-transfer_multitask_leastsquares_regression"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-library_fisher2x3_modular"
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|java_modular-kernel_auc_modular"
%endif #ifarch %{arm}
# SWIGed Python-bindings are currently segfaulting with SWIG >= 3.0.0
# Currently trying to resolve that upstream.
%if 0%{?fedora} >= 21
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|*python_modular*"
%endif # 0%{?fedora} >= 21
# * tests needing internet-connectivity
ping -c1 mldata.org || \
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|.*mldata.*"
export EXCLUDE_FROM_TESTS
pushd build
# Unit && integration tests -- usual testsuite.
ctest \
--exclude-regex "${EXCLUDE_FROM_TESTS}" \
--output-log unittest.log \
--output-on-failure
popd
%if 0%{?with_python3}
%if 0%{?__isa_bits} == 32
# * tests failing on 32-Bit arches because of misallignments
EXCLUDE_FROM_TESTS="${EXCLUDE_FROM_TESTS}|integration-python_modular-tester-mathematics_linsolver_cg"
export EXCLUDE_FROM_TESTS
%endif #0%{?__isa_bits} == 32
pushd %{py3dir}/build
# Unit && integration tests -- usual testsuite.
ctest \
--exclude-regex "${EXCLUDE_FROM_TESTS}" \
--output-log unittest.py3.log \
--output-on-failure
popd
%endif #0%{?with_python3}
%endif #0%{?with_tests}
###############################################################################
%{?el5:%clean}
%{?el5:rm -rf %{buildroot}}
###############################################################################
%changelog
* 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)