126 lines
4 KiB
RPMSpec
126 lines
4 KiB
RPMSpec
Name: DSDP
|
|
Version: 5.8
|
|
Release: 3%{?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
|
|
* Sat Jan 7 2012 Jerry James <loganjerry@gmail.com> - 5.8-3
|
|
- Rebuild for GCC 4.7
|
|
|
|
* Tue Jun 7 2011 Jerry James <loganjerry@gmail.com> - 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 <loganjerry@gmail.com> - 5.8-1
|
|
- Initial RPM
|