Blob Blame History Raw
Name:           4ti2
Version:        1.6.9
Release:        2%{?dist}
Summary:        Algebraic, geometric and combinatorial problems on linear spaces

%global relver %(tr . _ <<< %{version})

License:        GPLv2+
# Deal with a boolean variable that can somehow hold the value 2
Patch0:         %{name}-maxnorm.patch

BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  glpk-devel
BuildRequires:  gmp-devel
BuildRequires:  tex(latex)
BuildRequires:  tex(epic.sty)

# 4ti2 contains a copy of gnulib, which has been granted a bundling exception:
Provides:       bundled(gnulib)

Requires:       4ti2-libs%{?_isa} = %{version}-%{release}
Requires:       environment-modules

A software package for algebraic, geometric and combinatorial problems
on linear spaces.

This package uses Environment Modules.  Prior to invoking the binaries,
you must run "module load 4ti2-%{arch}" to modify your PATH.

%package devel
Summary:        Headers needed to develop software that uses 4ti2
Requires:       4ti2-libs%{?_isa} = %{version}-%{release}
Requires:       gmp-devel%{?_isa}

%description devel
Headers and library files needed to develop software that uses 4ti2.

%package libs
Summary:        Library for problems on linear spaces

%description libs
A library for algebraic, geometric and combinatorial problems on linear

%autosetup -p0

# Add a missing executable bit
chmod a+x

# Fix encodings
iconv -f ISO8859-1 -t UTF-8 NEWS > NEWS.utf8
touch -r NEWS NEWS.utf8
mv -f NEWS.utf8 NEWS

# Update the C++ standard
sed -i 's/c++0x/c++11/g' configure

%configure --enable-shared --disable-static --enable-fiber

# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
    -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \
    -i libtool

make %{?_smp_mflags}

# Build the manual
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
pushd doc
make update-manual
bibtex 4ti2_manual
pdflatex 4ti2_manual
pdflatex 4ti2_manual


# Move the include files into a private directory
mkdir -p %{buildroot}%{_includedir}/tmp
mv %{buildroot}%{_includedir}/{4ti2,groebner,util,zsolve} \
mv %{buildroot}%{_includedir}/tmp %{buildroot}%{_includedir}/4ti2

# Move the 4ti2 binaries
mkdir -p %{buildroot}%{_libdir}/4ti2
mv %{buildroot}%{_bindir} %{buildroot}%{_libdir}/4ti2

# Make the environment-modules file
mkdir -p %{buildroot}%{_datadir}/Modules/modulefiles/
# Since we're doing our own substitution here, use our own definitions.
sed 's#@LIBDIR@#'%{_libdir}/4ti2'#g;' < %SOURCE1 >%{buildroot}%{_datadir}/Modules/modulefiles/4ti2-%{_arch}

# We don't need or want libtool files
rm -f %{buildroot}%{_libdir}/*.la

# We don't want documentation in _datadir
rm -fr %{buildroot}%{_datadir}/4ti2/doc

%ldconfig_scriptlets libs

export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
make check

%doc doc/4ti2_manual.pdf

%files devel

%files libs
%license COPYING

* Thu Jan 31 2019 Fedora Release Engineering <> - 1.6.9-2
- Rebuilt for

* Sat Sep 29 2018 Jerry James <> - 1.6.9-1
- Split back out of latte-integrale