ryan 8ece700
Name:           mlpack
Ryan Curtin 71e30e9
Version:        1.0.11
14950b2
Release:        8%{?dist}
ryan 8ece700
Summary:        Scalable, fast C++ machine learning library
ryan 8ece700
ryan 8ece700
Group:          System Environment/Libraries
ryan 8ece700
License:        LGPLv3+
ryan 8ece700
URL:            http://www.mlpack.org
ryan 8ece700
Source0:        http://www.mlpack.org/files/%{name}-%{version}.tar.gz
ryan 8ece700
ryan 8ece700
# CMake by default doesn't provide support for specifying libdir on install
ryan 8ece700
# (argh!) and this has to be done by hand in the CMake configuration.  This'll
ryan 8ece700
# be fixed by mlpack 1.0.2.
ryan 8ece700
Patch0:         cmake_libdir.patch
ryan 8ece700
Ryan Curtin 6d573a3
# By default the mlpack Doxyfile excludes all files in the directory pattern
Ryan Curtin 6d573a3
# */build/*.  Well, on Koji, that's everything.  So we need to not exclude
Ryan Curtin 6d573a3
# that.
Ryan Curtin 6d573a3
Patch1:		no_exclude_build.patch
Ryan Curtin 6d573a3
ryan 8ece700
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ryan 8ece700
Ryan Curtin 9da317a
# Use cmake28 package on RHEL.
Ryan Curtin 9da317a
%if 0%{?rhel}
Ryan Curtin 06ddc7f
BuildRequires:  cmake28 >= 2.8.5
Ryan Curtin 9da317a
%else
Ryan Curtin 06ddc7f
BuildRequires:  cmake >= 2.8.5
Ryan Curtin 9da317a
%endif
Ryan Curtin 9da317a
Ryan Curtin f3c2c1c
BuildRequires:  armadillo-devel >= 3.6.0
ryan 8ece700
BuildRequires:  libxml2-devel
Ryan Curtin 0f82523
BuildRequires:  boost-devel, boost-program-options, boost-math >= 1.49
ryan 8ece700
BuildRequires:  lapack-devel
ryan 8ece700
# For generating man pages (CMake configuration takes care of this assuming
ryan 8ece700
# txt2man is installed).  It is possible that we could just add all the man
ryan 8ece700
# pages, generated offline, as a patch to this SRPM, but txt2man seems to exist
ryan 8ece700
# in repos.
ryan 8ece700
BuildRequires:  txt2man
ryan 8ece700
# For generation of Doxygen HTML documentation.
ryan 8ece700
BuildRequires:  doxygen
Ryan Curtin e9629c0
BuildRequires:  graphviz
ryan 8ece700
4f0e15b
# something doesn't like size_t being unsigned long on s390
4f0e15b
ExcludeArch:    s390
4f0e15b
ryan 8ece700
%description
ryan 8ece700
mlpack is a C++ machine learning library with emphasis on scalability, speed,
ryan 8ece700
and ease-of-use. Its aim is to make machine learning possible for novice users
ryan 8ece700
by means of a simple, consistent API, while simultaneously exploiting C++
ryan 8ece700
language features to provide maximum performance and maximum flexibility for
ryan 8ece700
expert users. mlpack outperforms competing machine learning libraries by large
ryan 8ece700
margins.
ryan 8ece700
ryan 8ece700
# Executables.
ryan 8ece700
%package bin
ryan 8ece700
Summary:        Command-line executables for mlpack (machine learning library)
ryan 8ece700
Group:          Applications/Engineering
ryan 8ece700
Requires:       %{name}%{_isa} = %{version}-%{release}
ryan 8ece700
ryan 8ece700
%description bin
ryan 8ece700
mlpack is a C++ machine learning library with emphasis on scalability, speed,
ryan 8ece700
and ease-of-use. Its aim is to make machine learning possible for novice users
ryan 8ece700
by means of a simple, consistent API, while simultaneously exploiting C++
ryan 8ece700
language features to provide maximum performance and maximum flexibility for
ryan 8ece700
expert users. mlpack outperforms competing machine learning libraries by large
ryan 8ece700
margins.  This package provides the command-line executables which run mlpack
ryan 8ece700
methods and related documentation.
ryan 8ece700
ryan 8ece700
# Development headers.
ryan 8ece700
%package devel
ryan 8ece700
Summary:        Development headers for mlpack (C++ machine learning library)
ryan 8ece700
Group:          System Environment/Libraries
ryan 8ece700
Requires:       %{name} = %{version}-%{release}
Ryan Curtin f3c2c1c
Requires:       armadillo-devel >= 3.6.0
ryan 8ece700
Requires:       boost-devel, boost-program-options, boost-math
ryan 8ece700
Requires:       libxml2-devel
ryan 8ece700
Requires:       lapack-devel
ryan 8ece700
ryan 8ece700
%description devel
ryan 8ece700
mlpack is a C++ machine learning library with emphasis on scalability, speed,
ryan 8ece700
and ease-of-use. Its aim is to make machine learning possible for novice users
ryan 8ece700
by means of a simple, consistent API, while simultaneously exploiting C++
ryan 8ece700
language features to provide maximum performance and maximum flexibility for
ryan 8ece700
expert users. mlpack outperforms competing machine learning libraries by large
ryan 8ece700
margins.  This package provides the headers to compile applications against
ryan 8ece700
mlpack.
ryan 8ece700
ryan 8ece700
ryan 8ece700
ryan 8ece700
%package doc
ryan 8ece700
Summary:        Doxygen documentation for mlpack (C++ machine learning library)
ryan 8ece700
Group:          Documentation
ryan 8ece700
ryan 8ece700
%description doc
ryan 8ece700
mlpack is a C++ machine learning library with emphasis on scalability, speed,
ryan 8ece700
and ease-of-use.  Its aim is to make machine learning possible for novice users
ryan 8ece700
by means of a simple, consistent API, while simultaneously exploiting C++
ryan 8ece700
language features to provide maximum performance and maximum flexibility for
ryan 8ece700
expert users.  mlpack outperforms competing machine learning libraries by large
ryan 8ece700
margins.  This package provides the Doxygen-generated documentation for mlpack.
ryan 8ece700
Ryan Curtin d81350b
# For the F20 unversioned documentation change.  This evaluates to
Ryan Curtin d81350b
# %{_pkgdocdir} if on F20 and %{_docdir}/%{name}-%{version} otherwise.
Ryan Curtin d81350b
%global our_docdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
ryan 8ece700
ryan 8ece700
%prep
ryan 8ece700
%setup -q
ryan 8ece700
%patch0 -p1
Ryan Curtin 6d573a3
%patch1 -p1
ryan 8ece700
ryan 8ece700
ryan 8ece700
%build
Ryan Curtin 9da317a
%if 0%{?rhel}
Ryan Curtin 364c68c
# On RHEL6, the Boost CMake scripts fail for some reason.  I don't have the
Ryan Curtin 364c68c
# time (or patience) to investigate, but if we force CMake to find Boost "the
Ryan Curtin 364c68c
# hard way" by specifying Boost_NO_BOOST_CMAKE=1, it works.
Ryan Curtin 364c68c
%{cmake28} -D Boost_NO_BOOST_CMAKE=1 -D LIBDIR=%{_libdir} -D DEBUG=OFF -D PROFILE=OFF .
Ryan Curtin 9da317a
%else
ryan 8ece700
%{cmake} -D LIBDIR=%{_libdir} -D DEBUG=OFF -D PROFILE=OFF .
Ryan Curtin 9da317a
%endif
Ryan Curtin 9da317a
ryan 8ece700
make %{?_smp_mflags}
ryan 8ece700
# Build documentation ('doc' is not in the list of default targets).
ryan 8ece700
make doc
ryan 8ece700
ryan 8ece700
ryan 8ece700
%install
ryan 8ece700
rm -rf $RPM_BUILD_ROOT
ryan 8ece700
make install DESTDIR=$RPM_BUILD_ROOT
ryan 8ece700
Ryan Curtin bb1af75
# Put the license file and documentation in place.
Ryan Curtin bb1af75
if [ "%{our_docdir}" != "%{_docdir}/mlpack" ]; then
Ryan Curtin bb1af75
  mv $RPM_BUILD_ROOT/%{_docdir}/mlpack $RPM_BUILD_ROOT/%{our_docdir}
Ryan Curtin bb1af75
fi
Ryan Curtin d81350b
mkdir -p $RPM_BUILD_ROOT/%{our_docdir}
Ryan Curtin d81350b
cp LICENSE.txt $RPM_BUILD_ROOT/%{our_docdir}
Ryan Curtin d81350b
ryan 8ece700
ryan 8ece700
# Rename executables to mlpack_* to avoid possible naming collisions.  Upstream
ryan 8ece700
# bug report http://trac.research.cc.gatech.edu/fastlab/ticket/236.
ryan 8ece700
for i in `ls $RPM_BUILD_ROOT/%{_bindir}`
ryan 8ece700
do
ryan 8ece700
  %{__mv} $RPM_BUILD_ROOT/%{_bindir}/$i $RPM_BUILD_ROOT/%{_bindir}/mlpack_$i;
ryan 8ece700
done
ryan 8ece700
for i in `ls $RPM_BUILD_ROOT/%{_mandir}/man1`
ryan 8ece700
do
ryan 8ece700
  %{__mv} $RPM_BUILD_ROOT/%{_mandir}/man1/$i $RPM_BUILD_ROOT/%{_mandir}/man1/mlpack_$i;
ryan 8ece700
done
ryan 8ece700
ryan 8ece700
%clean
ryan 8ece700
rm -rf $RPM_BUILD_ROOT
ryan 8ece700
ryan 8ece700
%post -p /sbin/ldconfig
ryan 8ece700
ryan 8ece700
%postun -p /sbin/ldconfig
ryan 8ece700
ryan 8ece700
ryan 8ece700
%files
ryan 8ece700
%defattr(-,root,root,-)
ryan 8ece700
%{_libdir}/libmlpack.so.1
Ryan Curtin 934dbba
%{_libdir}/libmlpack.so.1.0
Ryan Curtin d81350b
%{our_docdir}/LICENSE.txt
ryan 8ece700
ryan 8ece700
%files bin
ryan 8ece700
%defattr(-,root,root,-)
ryan 8ece700
%{_bindir}/mlpack_allknn
ryan 8ece700
%{_bindir}/mlpack_allkfn
Ryan Curtin d78a35f
%{_bindir}/mlpack_allkrann
Ryan Curtin f3c2c1c
%{_bindir}/mlpack_cf
Ryan Curtin 0f82523
%{_bindir}/mlpack_decision_stump
Ryan Curtin 934dbba
%{_bindir}/mlpack_det
ryan 8ece700
%{_bindir}/mlpack_emst
Ryan Curtin d78a35f
%{_bindir}/mlpack_fastmks
ryan 8ece700
%{_bindir}/mlpack_gmm
ryan 8ece700
%{_bindir}/mlpack_hmm_generate
ryan 8ece700
%{_bindir}/mlpack_hmm_loglik
ryan 8ece700
%{_bindir}/mlpack_hmm_train
ryan 8ece700
%{_bindir}/mlpack_hmm_viterbi
ryan 8ece700
%{_bindir}/mlpack_kernel_pca
ryan 8ece700
%{_bindir}/mlpack_kmeans
ryan 8ece700
%{_bindir}/mlpack_lars
ryan 8ece700
%{_bindir}/mlpack_linear_regression
ryan 8ece700
%{_bindir}/mlpack_local_coordinate_coding
Ryan Curtin db8ea05
%{_bindir}/mlpack_logistic_regression
Ryan Curtin d78a35f
%{_bindir}/mlpack_lsh
ryan 8ece700
%{_bindir}/mlpack_nbc
ryan 8ece700
%{_bindir}/mlpack_nca
Ryan Curtin 934dbba
%{_bindir}/mlpack_nmf
ryan 8ece700
%{_bindir}/mlpack_pca
Ryan Curtin 0f82523
%{_bindir}/mlpack_perceptron
ryan 8ece700
%{_bindir}/mlpack_radical
ryan 8ece700
%{_bindir}/mlpack_range_search
ryan 8ece700
%{_bindir}/mlpack_sparse_coding
ryan 8ece700
%{_mandir}/man1/mlpack_allknn.1*
ryan 8ece700
%{_mandir}/man1/mlpack_allkfn.1*
Ryan Curtin d78a35f
%{_mandir}/man1/mlpack_allkrann.1*
Ryan Curtin f3c2c1c
%{_mandir}/man1/mlpack_cf.1*
Ryan Curtin 0f82523
%{_mandir}/man1/mlpack_decision_stump.1*
Ryan Curtin 934dbba
%{_mandir}/man1/mlpack_det.1*
ryan 8ece700
%{_mandir}/man1/mlpack_emst.1*
Ryan Curtin d78a35f
%{_mandir}/man1/mlpack_fastmks.1*
ryan 8ece700
%{_mandir}/man1/mlpack_gmm.1*
ryan 8ece700
%{_mandir}/man1/mlpack_hmm_generate.1*
ryan 8ece700
%{_mandir}/man1/mlpack_hmm_loglik.1*
ryan 8ece700
%{_mandir}/man1/mlpack_hmm_train.1*
ryan 8ece700
%{_mandir}/man1/mlpack_hmm_viterbi.1*
ryan 8ece700
%{_mandir}/man1/mlpack_kernel_pca.1*
ryan 8ece700
%{_mandir}/man1/mlpack_kmeans.1*
ryan 8ece700
%{_mandir}/man1/mlpack_lars.1*
ryan 8ece700
%{_mandir}/man1/mlpack_linear_regression.1*
ryan 8ece700
%{_mandir}/man1/mlpack_local_coordinate_coding.1*
Ryan Curtin db8ea05
%{_mandir}/man1/mlpack_logistic_regression.1*
Ryan Curtin d78a35f
%{_mandir}/man1/mlpack_lsh.1*
ryan 8ece700
%{_mandir}/man1/mlpack_nbc.1*
ryan 8ece700
%{_mandir}/man1/mlpack_nca.1*
Ryan Curtin 934dbba
%{_mandir}/man1/mlpack_nmf.1*
ryan 8ece700
%{_mandir}/man1/mlpack_pca.1*
Ryan Curtin 0f82523
%{_mandir}/man1/mlpack_perceptron.1*
ryan 8ece700
%{_mandir}/man1/mlpack_radical.1*
ryan 8ece700
%{_mandir}/man1/mlpack_range_search.1*
ryan 8ece700
%{_mandir}/man1/mlpack_sparse_coding.1*
ryan 8ece700
ryan 8ece700
%files devel
ryan 8ece700
%defattr(-,root,root,-)
ryan 8ece700
%{_libdir}/libmlpack.so
ryan 8ece700
%{_includedir}/mlpack/
ryan 8ece700
ryan 8ece700
%files doc
ryan 8ece700
%defattr(-,root,root,-)
Ryan Curtin d81350b
%{our_docdir}
ryan 8ece700
ryan 8ece700
%changelog
14950b2
* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 1.0.11-8
14950b2
- Rebuilt for Boost 1.59
14950b2
6e17ce5
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.11-7
6e17ce5
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
6e17ce5
c3bf5df
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 1.0.11-6
c3bf5df
- rebuild for Boost 1.58
c3bf5df
390301c
* Fri Jul  3 2015 José Matos <jamatos@fedoraproject.org> - 1.0.11-5
390301c
- Rebuild for armadillo 5(.xxx.y)
390301c
e6d9523
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.11-4
e6d9523
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
e6d9523
4def781
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.0.11-3
4def781
- Rebuilt for GCC 5 C++11 ABI change
4def781
Petr Machata 27873a4
* Tue Jan 27 2015 Petr Machata <pmachata@redhat.com> - 1.0.11-2
Petr Machata 27873a4
- Rebuild for boost 1.57.0
Petr Machata 27873a4
Ryan Curtin 71e30e9
* Thu Dec 11 2014 Ryan Curtin <ryan@ratml.org> - 1.0.11-1
Ryan Curtin 71e30e9
- Update to latest stable release.
Ryan Curtin 71e30e9
Ryan Curtin 64f4e95
* Fri Aug 29 2014 Ryan Curtin <ryan@ratml.org> - 1.0.10-1
Ryan Curtin 64f4e95
- Update to latest stable release.
Ryan Curtin 64f4e95
05298d0
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.9-2
05298d0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
05298d0
Ryan Curtin 0f82523
* Mon Jul 28 2014 Ryan Curtin <ryan@ratml.org> - 1.0.9-1
Ryan Curtin 0f82523
- Update to latest stable release.
Ryan Curtin 0f82523
a4be289
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.8-4
a4be289
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
a4be289
Petr Machata 01b2b46
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 1.0.8-3
Petr Machata 01b2b46
- Rebuild for boost 1.55.0
Petr Machata 01b2b46
eb31da3
* Wed Mar 19 2014 José Matos <jamatos@fedoraproject.org> - 1.0.8-2
eb31da3
- Rebuild for Armadillo 4.1 on Fedora 19, 20 and rawhide.
eb31da3
Ryan Curtin db8ea05
* Fri Jan 10 2014 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.8-1
Ryan Curtin db8ea05
- Update to latest stable release.
Ryan Curtin db8ea05
- Rebuild for Armadillo 4.0 on rawhide.
Ryan Curtin db8ea05
Ryan Curtin f3c2c1c
* Sun Nov 03 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.7-1
Ryan Curtin f3c2c1c
- Update to latest stable release.
Ryan Curtin f3c2c1c
Ryan Curtin 6d573a3
* Tue Aug 06 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.6-6
Ryan Curtin 6d573a3
- Add no_exclude_build.patch so that Koji builds don't exclude all the code from Doxygen.
Ryan Curtin 6d573a3
Ryan Curtin bd082ad
* Tue Aug 06 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.6-5
Ryan Curtin bd082ad
- Require graphviz (dot) for generation of Doxygen graphs.
Ryan Curtin bd082ad
Ryan Curtin d81350b
* Tue Aug 06 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.6-4
Ryan Curtin d81350b
- Use %{our_docdir} for F20 change to unversioned documentation directory names.
Ryan Curtin d81350b
- Do not package HTML documentation in main package.
Ryan Curtin d81350b
4315b84
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.6-3
4315b84
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
4315b84
Petr Machata 6421cbd
* Sat Jul 27 2013 pmachata@redhat.com - 1.0.6-2
Petr Machata 6421cbd
- Rebuild for boost 1.54.0
Petr Machata 6421cbd
Ryan Curtin d78a35f
* Thu Jun 13 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.6-1
Ryan Curtin d78a35f
- Update to latest stable release.
Ryan Curtin d78a35f
Ryan Curtin d78a35f
* Sat May 25 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.5-1
Ryan Curtin d78a35f
- Update to latest stable release.
Ryan Curtin d78a35f
- Add new executables that version 1.0.5 provides.
Ryan Curtin d78a35f
20f0c7d
* Sun Feb 10 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.0.4-3
20f0c7d
- Rebuild for Boost-1.53.0
20f0c7d
6688235
* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.0.4-2
6688235
- Rebuild for Boost-1.53.0
6688235
Ryan Curtin 06ddc7f
* Fri Feb 08 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.4-1
Ryan Curtin 06ddc7f
- Update to latest stable release.
Ryan Curtin 06ddc7f
- Update dependencies to new minimum requirements.
Ryan Curtin 06ddc7f
Ryan Curtin 9da317a
* Wed Jan 02 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.3-4
Ryan Curtin 9da317a
- Use cmake28 in RHEL packages.
Ryan Curtin 9da317a
4f0e15b
* Wed Jan 02 2013 Dan Horák <dan[at]danny.cz> - 1.0.3-3
4f0e15b
- Exclude s390, something doesn't like size_t being unsigned long
4f0e15b
Ryan Curtin a32c7ba
* Tue Jan 01 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.3-2
Ryan Curtin a32c7ba
- Add u64_s64.patch.
Ryan Curtin a32c7ba
- Fix bogus dates in changelog.
Ryan Curtin 934dbba
- Add new executables and man pages to files list.
Ryan Curtin a32c7ba
ryan 2847c02
* Tue Jan 01 2013 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.3-1
ryan 2847c02
- Update to version 1.0.3.
ryan 2847c02
- Remove now-unnecessary packages.
ryan 2847c02
Ryan Curtin a32c7ba
* Wed Sep 26 2012 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.1-5
ryan 8ece700
- Simplify LICENSE.txt installation.
ryan 8ece700
- Install doxygen documentation.
ryan 8ece700
ryan 8ece700
* Sun Sep 16 2012 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.1-4
ryan 8ece700
- Distribute LICENSE.txt.
ryan 8ece700
ryan 8ece700
* Sun Jul 29 2012 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.1-3
ryan 8ece700
- Fix group names for packages.
ryan 8ece700
- Comment patches more verbosely.
ryan 8ece700
- Rename exectuables to mlpack_* to avoid possible naming conflicts.
ryan 8ece700
Ryan Curtin a32c7ba
* Sat Jul 21 2012 Sterling Lewis Peet <sterling.peet@gatech.edu> - 1.0.1-2
ryan 8ece700
- Include GetKernelMatrix patch so that mlpack builds using fedora flags.
ryan 8ece700
ryan 8ece700
* Thu Mar 08 2012 Ryan Curtin <gth671b@mail.gatech.edu> - 1.0.1-1
ryan 8ece700
- Initial packaging of mlpack.