73905c1
Name:           4ti2
14988d7
Version:        1.6.9
203e2bd
Release:        7%{?dist}
14988d7
Summary:        Algebraic, geometric and combinatorial problems on linear spaces
14988d7
14988d7
%global relver %(tr . _ <<< %{version})
73905c1
73905c1
License:        GPLv2+
14988d7
URL:            https://4ti2.github.io/
14988d7
Source0:        https://github.com/4ti2/4ti2/releases/download/Release_%{relver}/%{name}-%{version}.tar.gz
14988d7
Source1:        4ti2.module.in
14988d7
# Deal with a boolean variable that can somehow hold the value 2
14988d7
Patch0:         %{name}-maxnorm.patch
14988d7
d200b0c
BuildRequires:  environment(modules)
14988d7
BuildRequires:  gcc
14988d7
BuildRequires:  gcc-c++
73905c1
BuildRequires:  glpk-devel
14988d7
BuildRequires:  gmp-devel
48b8d1c
BuildRequires:  make
14988d7
BuildRequires:  tex(latex)
14988d7
BuildRequires:  tex(epic.sty)
14988d7
14988d7
# 4ti2 contains a copy of gnulib, which has been granted a bundling exception:
14988d7
# https://fedoraproject.org/wiki/Bundled_Libraries_Virtual_Provides
14988d7
Provides:       bundled(gnulib)
14988d7
14988d7
Requires:       4ti2-libs%{?_isa} = %{version}-%{release}
d200b0c
Requires:       environment(modules)
73905c1
73905c1
%description
14988d7
A software package for algebraic, geometric and combinatorial problems
14988d7
on linear spaces.
73905c1
14988d7
This package uses Environment Modules.  Prior to invoking the binaries,
d200b0c
you must run "module load 4ti2-%{_arch}" to modify your PATH.
73905c1
14988d7
%package devel
14988d7
Summary:        Headers needed to develop software that uses 4ti2
14988d7
Requires:       4ti2-libs%{?_isa} = %{version}-%{release}
14988d7
Requires:       gmp-devel%{?_isa}
73905c1
14988d7
%description devel
14988d7
Headers and library files needed to develop software that uses 4ti2.
73905c1
14988d7
%package libs
14988d7
Summary:        Library for problems on linear spaces
73905c1
14988d7
%description libs
14988d7
A library for algebraic, geometric and combinatorial problems on linear
14988d7
spaces.
73905c1
14988d7
%prep
14988d7
%autosetup -p0
73905c1
14988d7
# Add a missing executable bit
14988d7
chmod a+x ltmain.sh
73905c1
14988d7
# Fix encodings
14988d7
iconv -f ISO8859-1 -t UTF-8 NEWS > NEWS.utf8
14988d7
touch -r NEWS NEWS.utf8
14988d7
mv -f NEWS.utf8 NEWS
73905c1
14988d7
# Update the C++ standard
14988d7
sed -i 's/c++0x/c++11/g' configure
73905c1
14988d7
%build
d200b0c
%configure --enable-shared --disable-static
73905c1
14988d7
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
14988d7
# -Wl,--as-needed after all the libraries.
14988d7
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
14988d7
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
14988d7
    -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \
14988d7
    -i libtool
73905c1
a316cf3
%make_build
73905c1
14988d7
# Build the manual
14988d7
export LD_LIBRARY_PATH=$PWD/src/4ti2/.libs:$PWD/src/fiber/.libs:$PWD/src/groebner/.libs:$PWD/src/ppi/.libs:$PWD/src/util/.libs:$PWD/src/zsolve/.libs
14988d7
pushd doc
14988d7
make update-manual
14988d7
bibtex 4ti2_manual
14988d7
pdflatex 4ti2_manual
14988d7
pdflatex 4ti2_manual
14988d7
popd
73905c1
14988d7
%install
14988d7
%make_install
73905c1
14988d7
# Move the include files into a private directory
14988d7
mkdir -p %{buildroot}%{_includedir}/tmp
14988d7
mv %{buildroot}%{_includedir}/{4ti2,groebner,util,zsolve} \
14988d7
   %{buildroot}%{_includedir}/tmp
14988d7
mv %{buildroot}%{_includedir}/tmp %{buildroot}%{_includedir}/4ti2
73905c1
14988d7
# Move the 4ti2 binaries
14988d7
mkdir -p %{buildroot}%{_libdir}/4ti2
14988d7
mv %{buildroot}%{_bindir} %{buildroot}%{_libdir}/4ti2
73905c1
14988d7
# Make the environment-modules file
d200b0c
mkdir -p %{buildroot}%{_modulesdir}
14988d7
# Since we're doing our own substitution here, use our own definitions.
d200b0c
sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_modulesdir}/4ti2-%{_arch}
73905c1
14988d7
# We don't need or want libtool files
14988d7
rm -f %{buildroot}%{_libdir}/*.la
73905c1
14988d7
# We don't want documentation in _datadir
14988d7
rm -fr %{buildroot}%{_datadir}/4ti2/doc
73905c1
14988d7
%check
14988d7
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
14988d7
make check
73905c1
14988d7
%files
14988d7
%doc doc/4ti2_manual.pdf
14988d7
%{_libdir}/4ti2/
d200b0c
%{_modulesdir}/4ti2-%{_arch}
73905c1
14988d7
%files devel
14988d7
%{_includedir}/4ti2/
14988d7
%{_libdir}/lib4ti2*.so
14988d7
%{_libdir}/libzsolve*.so
14988d7
14988d7
%files libs
14988d7
%doc NEWS README THANKS TODO
14988d7
%license COPYING
14988d7
%{_libdir}/lib4ti2*.so.0*
14988d7
%{_libdir}/libzsolve*.so.0*
14988d7
14988d7
%changelog
203e2bd
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-7
203e2bd
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
203e2bd
a316cf3
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 1.6.9-6
a316cf3
- Use make macros
a316cf3
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
a316cf3
1fe6592
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-5
1fe6592
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
1fe6592
d200b0c
* Mon Dec  9 2019 Jerry James <loganjerry@gmail.com> - 1.6.9-4
d200b0c
- Fix the location of the module file (bz 1773348)
d200b0c
- Do not build the empty fiber library
d200b0c
4a16956
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-3
4a16956
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
4a16956
bbb0358
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.9-2
bbb0358
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
bbb0358
14988d7
* Sat Sep 29 2018 Jerry James <loganjerry@gmail.com> - 1.6.9-1
14988d7
- Split back out of latte-integrale