Name: DSDP Version: 5.8 Release: 4%{?dist} Summary: Software for semidefinite programming Group: Applications/Engineering License: DSDP URL: http://www.mcs.anl.gov/hs/software/DSDP/ Source0: http://www.mcs.anl.gov/hs/software/DSDP/DSDP%{version}.tar.gz # Man pages written by Jerry James using text from the sources. # Therefore, the man pages have the same copyright and license as the source. Source1: DSDP-man.tar.xz # A substitute makefile to fix the brokenness of the distributed Makefiles Source2: DSDP.Makefile # This patch fixes a buffer overflow in one of the examples. It has not yet # been sent upstream. Patch0: DSDP-overflow.patch BuildRequires: atlas-devel BuildRequires: doxygen BuildRequires: tex(latex) %description DSDP is a free open source implementation of an interior-point method for semidefinite programming. It provides primal and dual solutions, exploits low-rank structure and sparsity in the data, and has relatively low memory requirements for an interior-point method. It allows feasible and infeasible starting points and provides approximate certificates of infeasibility when no feasible solution exists. The dual-scaling algorithm implemented in this package has a convergence proof and worst-case polynomial complexity under mild assumptions on the data. The software can be used as a set of subroutines, through Matlab, or by reading and writing to data files. Furthermore, the solver offers scalable parallel performance for large problems and a well documented interface. Some of the most popular applications of semidefinite programming and linear matrix inequalities (LMI) are model control, truss topology design, and semidefinite relaxations of combinatorial and global optimization problems. %package devel Summary: Headers and libraries for developing with DSDP Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Headers and libraries for developing with DSDP. %package examples Summary: Example programs that use DSDP Group: Applications/Engineering Requires: %{name}%{?_isa} = %{version}-%{release} %description examples Examples programs that use the DSDP library. %prep %setup -q -n %{name}%{version} %setup -q -n %{name}%{version} -T -D -a 1 %patch0 sed -e "s|@RPM_OPT_FLAGS@|${RPM_OPT_FLAGS}|" \ -e "s|@libdir@|%{_libdir}|" \ -e "s|@version@|%{version}|" \ %{SOURCE2} > Makefile %build make %{?_smp_mflags} cd docs unzip DSDP5-api-html.zip cd dox rm -fr html images doxygen %install # Install the library mkdir -p $RPM_BUILD_ROOT%{_libdir} install -p -m 0755 src/libdsdp.so.%{version} $RPM_BUILD_ROOT%{_libdir} ln -s libdsdp.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libdsdp.so.5 ln -s libdsdp.so.5 $RPM_BUILD_ROOT%{_libdir}/libdsdp.so # Install the header files mkdir -p $RPM_BUILD_ROOT%{_includedir} cp -a include $RPM_BUILD_ROOT%{_includedir}/DSDP # Install the example programs with a dsdp- prefix, except for dsdp5 mkdir -p $RPM_BUILD_ROOT%{_bindir} for f in maxcut theta stable color; do install -p -m 0755 examples/$f $RPM_BUILD_ROOT%{_bindir}/dsdp-$f done install -p -m 0755 examples/dsdp5 $RPM_BUILD_ROOT%{_bindir} # Install the man pages mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 cd man for f in *.1; do sed "s/@VERSION@/%{version}/" $f > $RPM_BUILD_ROOT%{_mandir}/man1/$f done %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %doc dsdp-license docs/DSDP5-Exe-UserGuide.pdf docs/DSDP5-P1289-0905.pdf %{_libdir}/libdsdp.so.* %files devel %doc docs/DSDP5-API-UserGuide.pdf docs/dox %{_libdir}/libdsdp.so %{_includedir}/DSDP %files examples %doc examples/Contents %{_bindir}/* %{_mandir}/man1/* %changelog * Thu Jan 12 2012 Fedora Release Engineering - 5.8-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Sat Jan 7 2012 Jerry James - 5.8-3 - Rebuild for GCC 4.7 * Tue Jun 7 2011 Jerry James - 5.8-2 - Ensure the libraries are installed with the execute bit on - Name the license according to the response from Fedora-Legal * Wed May 25 2011 Jerry James - 5.8-1 - Initial RPM