Blob Blame History Raw
# SuperLU compat package
%global archname superlu
%global pkgname SuperLU
%global shlibname libsuperlu43

Name:			%{pkgname}43
Version:		4.3
Release:		7%{?dist}
Summary:		Subroutines to solve sparse linear systems

License:		BSD and GPLv2+
URL:			http://crd-legacy.lbl.gov/~xiaoye/%{pkgname}/
Source0:		http://crd-legacy.lbl.gov/~xiaoye/%{pkgname}/%{archname}_%{version}.tar.gz
# Build with -fPIC
Patch0:			%{pkgname}-add-fpic.patch
# Build shared library
Patch1:			%{pkgname}-build-shared-lib3.patch
# Fixes FTBFS if "-Werror=format-security" flag is used (#1037343)
Patch2:			%{pkgname}-fix-format-security.patch
# Fixes testsuite
Patch3:			%{pkgname}-fix-testsuite.patch
# remove non-free mc64 functionality
# patch obtained from the debian package
Patch4:			%{pkgname}-removemc64.patch

BuildRequires:		atlas-devel
BuildRequires:		csh

%description
SuperLU contains a set of subroutines to solve a sparse linear system 
A*X=B. It uses Gaussian elimination with partial pivoting (GEPP). 
The columns of A may be preordered before factorization; the 
preordering for sparsity is completely separate from the factorization.

This is compat package (upstream release version 4.3) for dependencies.

%package devel
Summary:		Header files and libraries for SuperLU development
Requires:		%{name}%{?_isa}		=  %{version}-%{release}

%description devel 
The %{name}-devel package contains the header files
and libraries for use with %{name} package.

This is compat package (upstream release version 4.3) for dependencies.

%package doc
Summary:		Documentation and Examples for SuperLU
Requires:		%{name}%{?_isa} = %{version}-%{release}

%description doc
The %{name}-doc package contains all the help documentation along with C
and FORTRAN examples .

This is compat package (upstream release version 4.3) for dependencies.

%prep
%setup -q -n %{pkgname}_%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4

rm -fr SRC/mc64ad.f.bak
rm FORTRAN/*.old FORTRAN/*.bak
find . -type f | sed -e "/TESTING/d" | xargs chmod a-x
# Remove the shippped executables from EXAMPLE
find EXAMPLE -type f | while read file
do
   [ "$(file $file | awk '{print $2}')" = ELF ] && rm $file || :
done
cp -p MAKE_INC/make.linux make.inc
sed -i	-e "s|-O3|$RPM_OPT_FLAGS|"							\
	-e "s|\$(SUPERLULIB) ||"							\
	-e "s|\$(HOME)/Codes/%{pkgname}_%{version}|%{_builddir}/%{pkgname}_%{version}|"	\
	-e 's!lib/libsuperlu_4.3.a$!SRC/libsuperlu.so!'					\
	-e 's!-shared!& %{__global_ldflags}!'						\
%if 0%{?fedora} >= 21
	-e "s|-L/usr/lib -lblas|-L%{_libdir}/atlas -lsatlas|"				\
%else
	-e "s|-L/usr/lib -lblas|-L%{_libdir}/atlas -lf77blas|"				\
%endif
	make.inc

%build
make %{?_smp_mflags} superlulib
make -C TESTING

%install
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}/%{name}

install -p SRC/libsuperlu.so.%{version} %{buildroot}%{_libdir}
install -p SRC/*.h %{buildroot}%{_includedir}/%{name}
chmod -x %{buildroot}%{_includedir}/%{name}/*.h

cp -Pp SRC/libsuperlu.so %{buildroot}%{_libdir}/%{shlibname}.so

%check
pushd TESTING
for _test in c d s z
do
  chmod +x ${_test}test.csh
  ./${_test}test.csh
done
popd

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%doc README
%{_libdir}/libsuperlu.so.%{version}

%files devel
%{_includedir}/%{name}/
%{_libdir}/%{shlibname}.so

%files doc
%doc DOC EXAMPLE FORTRAN

%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Sun Mar 27 2016 Mukundan Ragavan <nonamedotc@fedoraproject.org> - 4.3-3
- Add -doc subpackage
- Add GPLv2 to the license field

* Sun Mar 27 2016 Mukundan Ragavan <nonamedotc@fedoraproject.org> - 4.3-2
- Renamed the package to SuperLU43
- Renamed devel shared lib to libsuperlu43
- Removed conflicts since the latest version and this can co-exist

* Sat Mar 26 2016 Mukundan Ragavan <nonamedotc@fedoraproject.org> - 4.3-1
- Initial build of compat package