Name: flint Version: 1.6 Release: 1%{?dist} Summary: Fast Library for Number Theory Group: Applications/Engineering License: GPLv2+ URL: http://www.flintlib.org/ Source0: http://www.flintlib.org/flint-%{version}.tgz # Build a static lib (since upstream doesn't keep track of compatible # interfaces a soname really makes no sense Patch0: flint-1.2.0-add-static-lib.diff # Use the system zn_poly instead of building the sources Patch1: flint-1.6-use-system-zn_poly.patch # Fix some variable redefinitions; gcc 4.6 errors out otherwise Patch2: flint-1.6-redef.patch # Fix some compiler warnings that indicate possible runtime problems Patch3: flint-1.6-warning.patch BuildRequires: gmp-devel BuildRequires: mpfr-devel BuildRequires: zn_poly-devel BuildRequires: tex(latex) %global sover %(echo %{version} | cut -d. -f 1) %description FLINT is a C library for doing number theory, written by William Hart and David Harvey. %package devel Summary: Development files for FLINT Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: gmp-devel%{?_isa}, mpfr-devel%{?_isa}, zn_poly-devel%{?_isa} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package static Summary: Static libraries for FLINT Group: Development/Libraries Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static The %{name}-static package contains static libraries for developing applications that use %{name}. %prep %setup -q %patch0 %patch1 %patch2 %patch3 # Make sure we don't accidentally use the included zn_poly sources rm -fr zn_poly # Add an soname for the shared library and set other values sed -e 's|^LIBDIR=.*$|LIBDIR=%{_libdir}|' \ -e 's|^INCLUDEDIR=.*$|INCLUDEDIR=%{_includedir}|' \ -e 's|^DOCDIR=.*$|DOCDIR=%{_docdir}|' \ -e 's|^CFLAGS =.*$|CFLAGS = $(INCS) %{optflags}|' \ -e 's|^CFLAGS2 =.*$|CFLAGS2 = $(INCS) %{optflags} -fopenmp|' \ -e "s|-shared|-shared -Wl,-h,libflint.so.%{sover}|" \ -e 's|mp_lprels\.o \$(FLINTOBJ)$|mp_lprels.o libflint.so|' \ -e 's|mp_lprels\.o \$(FLINTOBJ)|mp_lprels.o -L. -lflint|' \ -i makefile # Fix end-of-line encodings sed 's/\r//' CHANGES.txt > CHANGES touch -r CHANGES.txt CHANGES mv -f CHANGES CHANGES.txt %build make %{?_smp_mflags} MAKECMDGOALS=library FLINT_GMP_LIB_DIR=%{_libdir} rm -f *.o make libflint.a FLINT_GMP_LIB_DIR=%{_libdir} # Build the documentation cd doc pdflatex %{name}-%{version}.tex pdflatex %{name}-%{version}.tex %install # generated in build: mpQS libflint.so libflint.a install -d -m 755 $RPM_BUILD_ROOT%{_libdir} install -p -m 644 libflint.a $RPM_BUILD_ROOT%{_libdir}/ install -d -m 755 $RPM_BUILD_ROOT%{_bindir} install -p -m 755 mpQS $RPM_BUILD_ROOT%{_bindir}/ # install the headers somehow... install -d -m 755 $RPM_BUILD_ROOT%{_includedir}/%{name} for header in *.h; do install -p -m 644 $header $RPM_BUILD_ROOT%{_includedir}/%{name}/ done install -p -m 755 libflint.so $RPM_BUILD_ROOT%{_libdir}/libflint.so.%{sover} pushd $RPM_BUILD_ROOT%{_libdir}/ ln -s libflint.so.%{sover} libflint.so popd # add symlink FLINT -> flint | sagemath wants it that way pushd $RPM_BUILD_ROOT%{_includedir} ln -s flint FLINT popd %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %clean rm -rf $RPM_BUILD_ROOT %files %doc CHANGES.txt gpl-2.0.txt doc/%{name}-%{version}.pdf %{_bindir}/mpQS %{_libdir}/libflint.so.%{sover} %files devel %{_includedir}/flint %{_includedir}/FLINT %{_libdir}/libflint.so %files static %{_libdir}/libflint.a %changelog * Mon Jul 18 2011 Jerry James <loganjerry@gmail.com> - 1.6-1 - New upstream release - Build against the system zn_poly instead of the included sources - Make sure there is no PIC code in the static archive - Link mpQS against the shared library instead of including the library - Fix build errors and scary warnings with gcc 4.6 - Remove unnecessary spec file elements (BuildRoot, etc.) * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sat Jun 26 2010 Thomas Spura <tomspur@fedoraproject.org> - 1.5.2-1 - update to new version - renew both patches * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Tue Mar 10 2009 Conrad Meyer <konrad@tylerc.org> - 1.2.0-1 - Bump to 1.2.0. * Fri Mar 6 2009 Conrad Meyer <konrad@tylerc.org> - 1.0.21-1 - Bump to 1.0.21. - Build static subpackage. * Sat Dec 6 2008 Conrad Meyer <konrad@tylerc.org> - 1.0.18-1 - Bump to 1.0.18. - Patches apply with --fuzz=0. * Sat Nov 29 2008 Conrad Meyer <konrad@tylerc.org> - 1.0.17-1 - Initial package.