Blob Blame History Raw
%global pkgname cvxopt

Name:           python-%{pkgname}
Version:        1.1.7
Release:        2%{?dist}
Summary:        A Python Package for Convex Optimization
Group:          Development/Languages
License:        GPLv3+
URL:            http://cvxopt.org/
Source0:        https://github.com/%{pkgname}/%{pkgname}/archive/%{version}/%{pkgname}-%{version}.tar.gz
# Use the system suitesparse instead of building one, and ensure the ATLAS BLAS
# library is used instead of the system BLAS.
Patch0:         %{name}-setup.patch

BuildRequires:  atlas-devel
BuildRequires:  DSDP-devel
BuildRequires:  fftw-devel
BuildRequires:  glpk-devel
BuildRequires:  gsl-devel
BuildRequires:  python2-devel python3-devel
BuildRequires:  python-setuptools python3-setuptools
BuildRequires:  python3-sphinx
BuildRequires:  suitesparse-devel
BuildRequires:  tex(latex)
BuildRequires:  tex(tex4ht.sty)
BuildRequires:  tex(utf8x.def)
BuildRequires:  texlive-dvipng


%description
CVXOPT is a free software package for convex optimization based on
the Python programming language. Its main purpose is to make the
development of software for convex optimization applications
straightforward by building on Python's extensive standard library and
on the strengths of Python as a high-level programming language.


%package        examples
Summary:        Examples of using %{name}
Group:          Development/Languages
Requires:       %{name} = %{version}-%{release}
Requires:       python-matplotlib, pygobject2
BuildArch:      noarch


%description    examples
Example use of %{name}.


%package -n     python3-%{pkgname}
Summary:        A Python3 Package for Convex Optimization
Group:          Development/Languages


%description -n python3-%{pkgname}
CVXOPT is a free software package for convex optimization based on
the Python programming language. Its main purpose is to make the
development of software for convex optimization applications
straightforward by building on Python's extensive standard library and
on the strengths of Python as a high-level programming language.


%prep
%setup -q -n %{pkgname}-%{version}
%patch0

# Fix library path
%if %{__isa_bits} == 64
sed -i "s|/usr/lib|%{_libdir}|" setup.py
%endif

# Remove internal copy of system library
rm -rf src/C/SuiteSparse*

# Remove useless executable bits
find examples -name \*.py -perm /0111 | xargs chmod a-x

# Make a copy so we can build for python3 as well
cp -a src src3

%build
export CC="gcc"
export LDSHARED="gcc -shared -Wl,--as-needed $RPM_LD_FLAGS"

# Build for python 2
%{__python2} setup.py build

# Build for python 3
mv src src2
mv src3 src
%{__python3} setup.py build

# Rebuild the documentation
make -C doc clean
make -C doc -B html SPHINXBUILD=%{_bindir}/sphinx-build-3
rm -f doc/build/html/.buildinfo


%install
# Install for python 3
%{__python3} setup.py install --skip-build --root %{buildroot}

# Install for python 2
mv src src3
mv src2 src
%{__python2} setup.py install --skip-build --root %{buildroot}

# Install the examples
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -a examples %{buildroot}%{_datadir}/%{name}/


%files
%doc LICENSE doc/build/html/
%{python2_sitearch}/%{pkgname}*

%files examples
%{_datadir}/%{name}

%files -n python3-%{pkgname}
%doc LICENSE doc/build/html/
%{python3_sitearch}/%{pkgname}*


%changelog
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Tue Jun 17 2014 Jerry James <loganjerry@gmail.com> - 1.1.7-1
- New upstream release
- Drop upstreamed -fixglpkinclude and -glpk patches
- Use better URL for Source0
- Build documentation with python3
- Minor spec file cleanups

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed May 14 2014 Bohuslav Kabrda <bkabrda@redhat.com> - 1.1.6-5
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4

* Fri Dec 06 2013 Nils Philippsen <nils@redhat.com> - 1.1.6-4
- rebuild (suitesparse)

* Mon Sep 23 2013 Jerry James <loganjerry@gmail.com> - 1.1.6-3
- Rebuild for atlas 3.10.1

* Tue Jul 30 2013 Jerry James <loganjerry@gmail.com> - 1.1.6-2
- New glpk drops obsolete API; add -glpk patch to move to new API
- Fix Source0 URL

* Tue May 28 2013 Jerry James <loganjerry@gmail.com> - 1.1.6-1
- New upstream release
- New project URL

* Sat Feb  2 2013 Jerry James <loganjerry@gmail.com> - 1.1.5-7
- Rebuild for new glpk

* Sat Nov 17 2012 Jerry James <loganjerry@gmail.com> - 1.1.5-6
- Rebuild for new suitesparse
- Update BRs for texlive 2012

* Wed Oct 10 2012 Jerry James <loganjerry@gmail.com> - 1.1.5-5
- Add linkage to fix undefined symbols (bz 832475)

* Sat Aug 04 2012 David Malcolm <dmalcolm@redhat.com> - 1.1.5-4
- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Apr  3 2012 Jerry James <loganjerry@gmail.com> - 1.1.5-2
- Fix filtering of provides

* Mon Apr  2 2012 Jerry James <loganjerry@gmail.com> - 1.1.5-1
- New upstream release
- Build python3 subpackage

* Tue Jan 10 2012 Jerry James <loganjerry@gmail.com> - 1.1.4-2
- Mass rebuild for Fedora 17
- Fix insufficiently escaped filter expression

* Mon Jan  2 2012 Jerry James <loganjerry@gmail.com> - 1.1.4-1
- New upstream release
- Use the RPM 4.9 way of filtering provides

* Wed Jun 22 2011 Jerry James <loganjerry@gmail.com> - 1.1.3-2
- Rebuild due to bz 712251
- Enable the DSDP extension

* Thu May 19 2011 Jerry James <loganjerry@gmail.com> - 1.1.3-1
- New upstream release (bz 700288)
- Ensure linking against ATLAS BLAS instead of system BLAS
- Eliminate unnecessary linkage
- BR python-sphinx and tex4ht for the documentation
- Filter provides from python .so files
- Examples also need pygobject2
- Build documentation in %%build instead of %%prep
- Remove unnecessary elements of the spec file (%%clean, BuildRoot, etc.)

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Jul 30 2010 Orcan Ogetbil <oget[dot]fedora[at[gmail[dot]com> - 1.1-10
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild

* Fri Jul 23 2010 Conrad Meyer <konrad@tylerc.org> - 1.1-9
- Fix glpk include.

* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 1.1-8
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild

* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Thu Feb 26 2009 Conrad Meyer <konrad@tylerc.org> - 1.1-6
- Make examples subpackage noarch.

* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Mon Dec 8 2008 Conrad Meyer <konrad@tylerc.org> - 1.1-4
- Add BR on suitesparse-devel.
- Migrate examples to subpackage.

* Mon Dec 8 2008 Conrad Meyer <konrad@tylerc.org> - 1.1-3
- Remove SuiteSparse (copy of system library).

* Mon Dec 8 2008 Conrad Meyer <konrad@tylerc.org> - 1.1-2
- Move examples to datadir/name.
- Include html documentation.
- Package as a proper python egg.

* Mon Dec 8 2008 Conrad Meyer <konrad@tylerc.org> - 1.1-1
- Bump to 1.1.

* Mon Oct 13 2008 Conrad Meyer <konrad@tylerc.org> - 1.0-1
- Initial package.