Blob Blame Raw
Name:           cddlib
Version:        094f
Release:        15%{?dist}
Summary:        A library for generating all vertices in convex polyhedrons
Group:          Applications/Engineering
License:        GPLv2+
URL:            http://www.ifor.math.ethz.ch/~fukuda/cdd_home/
#Source0:       ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/%%{name}-094f.tar.gz
#tar -xzf cddlib-094f.tar.gz
#rm cddlib-094f/examples-ml/Combinatorica5.m
#tar -czf cddlib-094-free.tar.gz cddlib-094f/
Source0:        %{name}-094f-free.tar.bz2
# This patch was last sent upstream on 7 Apr 2011.  It adds the ability to
# create a shared library, rather than a static library only.
Patch0:         cddlib-configure.patch
# This patch was sent upstream on 24 Feb 2012.  It adds const qualifiers to
# some parameters of public methods.  Their absence caused some compilation
# problems in C++ clients.
Patch1:         cddlib-const.patch
# Patch from upstream to fix some memory leaks.
Patch2:         cddlib-memleak.patch

BuildRequires:  gmp-devel
BuildRequires:  tex(latex)


%description
The C-library cddlib is a C implementation of the Double Description 
Method of Motzkin et al. for generating all vertices (i.e. extreme points)
and extreme rays of a general convex polyhedron in R^d given by a system 
of linear inequalities:

   P = { x=(x1, ..., xd)^T :  b - A  x  >= 0 }

where A is a given m x d real matrix, b is a given m-vector 
and 0 is the m-vector of all zeros.

The program can be used for the reverse operation (i.e. convex hull
computation). This means that one can move back and forth between 
an inequality representation and a generator (i.e. vertex and ray) 
representation of a polyhedron with cdd. Also, cdd can solve a linear
programming problem, i.e. a problem of maximizing and minimizing 
a linear function over P.


%package devel
Summary:        Headers for cddlib
Group:          Development/Libraries
Requires:       gmp-devel%{?_isa}
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description devel
Include files for cddlib.


%package static
Summary:        Static libraries for cddlib
Group:          Development/Libraries

%description static
Static libraries for cddlib.


%package tools
Summary:        Sample binaries that use cddlib
Group:          Applications/Engineering
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description tools
Sample binaries that use cddlib.


%prep
%setup -q
%patch0 -p1
%patch1
%patch2

# Clean up the examples
rm -rf src/~
rm -rf src*/.DS_Store* src*/.gdb_history examples*/.DS_Store*
rm -rf src-gmp/~
chmod -x -R examples*/* src*/*
rm doc/cddlibman.pdf

# Fix the FSF's address
for f in `find . -type f | xargs grep -Fl '675 Mass'`; do
  sed -i.orig \
    's/675 Mass Ave, Cambridge, MA 02139/51 Franklin Street, Suite 500, Boston, MA  02110-1335/' \
    $f
  touch -r $f.orig $f
  rm -f $f.orig
done


%build
%configure

# Configure finds libgmp and tries to link it with everything.
sed -i 's/ -lgmp//' lib-src/Makefile

make %{?_smp_mflags}
cd doc
  pdflatex cddlibman.tex


%install
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
mkdir $RPM_BUILD_ROOT%{_includedir}/cddlib
mv $RPM_BUILD_ROOT%{_includedir}/{cdd,cdd_f,cddmp,cddmp_f,cddtypes,cddtypes_f,setoper}.h \
  $RPM_BUILD_ROOT%{_includedir}/cddlib/
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la


%post -p /sbin/ldconfig


%postun -p /sbin/ldconfig


%files
%doc AUTHORS ChangeLog COPYING README
%{_libdir}/*.so.*


%files devel
%doc doc/cddlibman.pdf
%doc examples* src-mathlink*
%{_includedir}/cddlib
%{_libdir}/*.so


%files static
%{_libdir}/libcdd.a
%{_libdir}/libcddgmp.a


%files tools
%{_bindir}/*


%changelog
* Fri Apr 20 2012 Jerry James <loganjerry@gmail.com> - 094f-15
- Package the sample binaries in -tools for the use of projects such as LattE
- Add memleak patch from upstream

* Fri Feb 24 2012 Jerry James <loganjerry@gmail.com> - 094f-14
- Actually apply the const patch

* Fri Feb 24 2012 Jerry James <loganjerry@gmail.com> - 094f-13
- Add const qualifier to public function parameters
- Fix the FSF's address

* Sat Jan  7 2012 Jerry James <loganjerry@gmail.com> - 094f-12
- Rebuild for GCC 4.7
- Minor spec file cleanups

* Thu Oct 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 094f-11.2
- rebuild with new gmp without compat lib

* Mon Oct 10 2011 Peter Schiffer <pschiffe@redhat.com> - 094f-11.1
- rebuild with new gmp

* Thu Apr  7 2011 Jerry James <loganjerry@gmail.com> - 094f-11
- Build shared libraries as well as static
- Drop BuildRoot and the clean section

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

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 094f-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 094f-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Fri Nov 28 2008 Conrad Meyer <konrad@tylerc.org> - 094f-7
- Install headers with install -p to save timestamps.
- Install headers to namespaced directory.
- Generate pdf from latex source.

* Fri Oct 31 2008 Conrad Meyer <konrad@tylerc.org> - 094f-6
- Describe vividly the process whereby the non-free file is
  stripped from the source tarball.

* Thu Oct 30 2008 Conrad Meyer <konrad@tylerc.org> - 094f-5
- Tarball scrubbed of content we are unable to ship.

* Tue Oct 28 2008 Conrad Meyer <konrad@tylerc.org> - 094f-4
- Remove modules that do not meet licensing guidelines.
- Don't generate debuginfo.

* Tue Oct 28 2008 Conrad Meyer <konrad@tylerc.org> - 094f-3
- Fix permissions on documentation.

* Mon Oct 27 2008 Conrad Meyer <konrad@tylerc.org> - 094f-2
- Incorporate several suggestions from review.

* Thu Sep 25 2008 Conrad Meyer <konrad@tylerc.org> - 094f-1
- Initial package.