36fd7e5
# TODO: Package mplrs, the MPI version.
36fd7e5
cedfb60
Name:           lrslib
d049de4
Version:        7.2
8ac9be1
Release:        6%{?dist}
cedfb60
Summary:        Reverse search for vertex enumeration/convex hull problems
cedfb60
Jerry James 09e7566
%global upver 0%(sed 's/\\.//' <<< %{version})
cedfb60
548cfd7
License:        GPL-2.0-or-later
cedfb60
URL:            http://cgm.cs.mcgill.ca/~avis/C/lrs.html
6ea6dfa
Source0:        http://cgm.cs.mcgill.ca/~avis/C/%{name}/archive/%{name}-%{upver}.tar.gz
cedfb60
# This patch was sent upstream on 31 May 2011.  It fixes some miscellaneous
e22d135
# bugs.
cedfb60
Patch0:         %{name}-fixes.patch
cedfb60
6c7e7ed
BuildRequires:  gcc
909b4a6
BuildRequires:  gcc-c++
cedfb60
BuildRequires:  gmp-devel
cedfb60
cedfb60
%description
cedfb60
%{name} is a self-contained ANSI C implementation as a callable library
cedfb60
of the reverse search algorithm for vertex enumeration/convex hull
cedfb60
problems and comes with a choice of three arithmetic packages.  Input
cedfb60
file formats are compatible with Komei Fukuda's cdd package (cddlib).
cedfb60
All computations are done exactly in either multiple precision or fixed
cedfb60
integer arithmetic.  Output is not stored in memory, so even problems
cedfb60
with very large output sizes can sometimes be solved.
cedfb60
cedfb60
%package devel
cedfb60
Summary:        Header files and libraries for developing with %{name}
cedfb60
Requires:       %{name}%{?_isa} = %{version}-%{release}
cedfb60
Requires:       gmp-devel%{?_isa}
cedfb60
cedfb60
%description devel
cedfb60
Header files and libraries for developing with %{name}.
cedfb60
cedfb60
%package utils
cedfb60
Summary:        Sample programs that use %{name}
cedfb60
Requires:       %{name}%{?_isa} = %{version}-%{release}
cedfb60
cedfb60
%description utils
cedfb60
Sample programs that use %{name}.
cedfb60
cedfb60
%prep
d049de4
%autosetup -n %{name}-%{upver}
6ea6dfa
6ea6dfa
# Remove extraneous executable bits
d049de4
chmod a-x *.{c,h} ine/test/cp4.ine
cedfb60
cedfb60
%build
cedfb60
# The Makefile is too primitive to use.  For one thing, it only builds
cedfb60
# binaries, not libraries.  We do our own thing here.
6c7e7ed
# Recent changes to the Makefile make it less primitive, but it still does not
6c7e7ed
# work well for building on a mixture of 32-bit and 64-bit architectures.
cedfb60
e22d135
# Upstream wants to use 1.0.0 as the soname version number for now.
e22d135
%global sover 1
e22d135
%global ver 1.0.0
cedfb60
e22d135
CFLAGS="%{build_cflags} -DMA -I. -I%{_includedir}/boost"
6c7e7ed
6c7e7ed
# Build the individual objects
6c7e7ed
gcc $CFLAGS -fPIC -DSAFE -DLRSLONG -c -o lrslong1.o lrslong.c
6c7e7ed
gcc $CFLAGS -fPIC -DSAFE -DLRSLONG -c -o lrslib1.o lrslib.c
6c7e7ed
gcc $CFLAGS -fPIC -DGMP -c -o lrslibgmp.o lrslib.c
6c7e7ed
gcc $CFLAGS -fPIC -DGMP -c -o lrsgmp.o lrsgmp.c
6c7e7ed
gcc $CFLAGS -fPIC -c -o lrsdriver.o lrsdriver.c
e22d135
%if 0%{?__isa_bits} == 64
e22d135
gcc $CFLAGS -fPIC -DSAFE -DLRSLONG -DB128 -c -o lrslong2.o lrslong.c
e22d135
gcc $CFLAGS -fPIC -DSAFE -DLRSLONG -DB128 -c -o lrslib2.o lrslib.c
e22d135
%endif
cedfb60
6c7e7ed
# Build the library
e22d135
%if 0%{?__isa_bits} == 64
e22d135
gcc $CFLAGS %{build_ldflags} -fPIC -shared -Wl,-soname,liblrs.so.%{sover} \
e22d135
  -o liblrs.so.%{ver} lrslong1.o lrslong2.o lrslib1.o lrslib2.o lrslibgmp.o \
e22d135
  lrsgmp.o lrsdriver.o -lgmp
e22d135
%else
e22d135
gcc $CFLAGS %{build_ldflags} -fPIC -shared -Wl,-soname,liblrs.so.%{sover} \
e22d135
  -o liblrs.so.%{ver} lrslong1.o lrslib1.o lrslibgmp.o lrsgmp.o lrsdriver.o \
e22d135
  -lgmp
e22d135
%endif
6c7e7ed
ln -s liblrs.so.%{ver} liblrs.so.%{sover}
6c7e7ed
ln -s liblrs.so.%{sover} liblrs.so
6c7e7ed
6c7e7ed
# Build the binaries
e22d135
%if 0%{?__isa_bits} == 64
e22d135
gcc $CFLAGS -DB128 -DSAFE lrs.c -o lrs %{build_ldflags} -L. -llrs
e22d135
gcc $CFLAGS -DB128 lrs.c -o lrsn %{build_ldflags} -L. -llrs
e22d135
%else
4eceec2
gcc $CFLAGS -DB32 -DSAFE lrs.c -o lrs %{build_ldflags} -L. -llrs
4eceec2
gcc $CFLAGS -DB32 lrs.c -o lrsn %{build_ldflags} -L. -llrs
e22d135
%endif
e22d135
gcc $CFLAGS -DGMP lrs.c -o lrsgmp %{build_ldflags} -L. -llrs -lgmp
e22d135
gcc $CFLAGS -DGMP lrsnash.c lrsnashlib.c -o lrsnash %{build_ldflags} -L. -llrs \
6c7e7ed
  -lgmp
e22d135
gcc $CFLAGS -DLRSLONG -DSAFE lrsnash.c lrsnashlib.c -o lrsnash1 %{build_ldflags} \
6c7e7ed
  -L. -llrs
e22d135
%if 0%{?__isa_bits} == 64
e22d135
gcc $CFLAGS -DLRSLONG -DSAFE -DB128 lrsnash.c lrsnashlib.c -o lrsnash2 \
e22d135
    %{build_ldflags} -L. -llrs
e22d135
%endif
e22d135
gcc $CFLAGS 2nash.c -o lrs-2nash %{build_ldflags}
e22d135
gcc $CFLAGS buffer.c -o lrs-buffer %{build_ldflags}
d049de4
gcc $CFLAGS hvref.c -o lrs-hvref %{build_ldflags}
d049de4
gcc $CFLAGS -DGMP checkpred.c -o lrs-checkpred %{build_ldflags} -L. -llrs -lgmp
d049de4
gcc $CFLAGS -DGMP inedel.c -o lrs-inedel %{build_ldflags} -L. -llrs -lgmp
e22d135
gcc $CFLAGS -DGMP setupnash.c -o lrs-setupnash %{build_ldflags} -L. -llrs
e22d135
gcc $CFLAGS -DGMP setupnash2.c -o lrs-setupnash2 %{build_ldflags} -L. -llrs
6c7e7ed
gcc $CFLAGS -DLRSMP -Dcopy=copy_dict_1 -Dlrs_mp_init=lrs_mp_init_1 -Dpmp=pmp_1 \
6c7e7ed
  -Drattodouble=rattodouble_1 -Dreadrat=readrat_1 rat2float.c -o lrs-rat2float \
e22d135
  %{build_ldflags} -L. -llrs
e22d135
gcc $CFLAGS float2rat.c -o lrs-float2rat %{build_ldflags}
cedfb60
cedfb60
%install
6c7e7ed
# Install the library
6c7e7ed
mkdir -p %{buildroot}%{_libdir}
6c7e7ed
cp -a liblrs.so* %{buildroot}%{_libdir}
6c7e7ed
chmod 0755 %{buildroot}%{_libdir}/lib*.so.%{ver}
cedfb60
cedfb60
# Install the binaries
6c7e7ed
mkdir -p %{buildroot}%{_bindir}
d049de4
install -p -m 0755 lrs lrsgmp lrsnash lrsnash1 lrs-* %{buildroot}%{_bindir}
e22d135
%if 0%{?__isa_bits} == 64
e22d135
install -p -m 0755 lrsnash2 %{buildroot}%{_bindir}
e22d135
%endif
d049de4
ln -s lrs %{buildroot}%{_bindir}/lrsn
d049de4
ln -s lrs %{buildroot}%{_bindir}/lrsredund
d049de4
ln -s lrsgmp %{buildroot}%{_bindir}/lrsredundgmp
6c7e7ed
6c7e7ed
# Install the header files, but fix up the include directives.
6c7e7ed
mkdir -p %{buildroot}%{_includedir}/%{name}
6c7e7ed
sed -r 's|"(lrs.*\.h)"|<lrslib/\1>|' lrslib.h > \
6c7e7ed
    %{buildroot}%{_includedir}/%{name}/lrslib.h
6c7e7ed
touch -r lrslib.h %{buildroot}%{_includedir}/%{name}/lrslib.h
cedfb60
cedfb60
sed -e 's|"gmp.h"|<gmp.h>|' lrsgmp.h > \
6c7e7ed
    %{buildroot}%{_includedir}/%{name}/lrsgmp.h
6c7e7ed
touch -r lrsgmp.h %{buildroot}%{_includedir}/%{name}/lrsgmp.h
cedfb60
e22d135
sed -e 's|"lrsrestart.h"|<lrslib/lrsrestart.h>|' lrsdriver.h > \
e22d135
    %{buildroot}%{_includedir}/%{name}/lrsdriver.h
e22d135
touch -r lrsdriver.h %{buildroot}%{_includedir}/%{name}/lrsdriver.h
e22d135
e22d135
cp -p lrslong.h lrsmp.h lrsnashlib.h lrsrestart.h \
6c7e7ed
  %{buildroot}%{_includedir}/%{name}
cedfb60
cedfb60
# Install the man pages
6c7e7ed
mkdir -p %{buildroot}%{_mandir}/man1
d049de4
mkdir -p %{buildroot}%{_mandir}/man5
d049de4
cd man/man1
548cfd7
cp -p checkpred.1 %{buildroot}%{_mandir}/man1/lrs-checkpred.1
548cfd7
cp -p {lrs,lrsnash}.1 %{buildroot}%{_mandir}/man1
548cfd7
echo '.so man1/lrs' > %{buildroot}%{_mandir}/man1/lrs-hvref.1
548cfd7
echo '.so man1/lrs' > %{buildroot}%{_mandir}/man1/lrsredund.1
d049de4
cd ../man5
d049de4
cp -p *.5 %{buildroot}%{_mandir}/man5
d049de4
cd ../..
cedfb60
cedfb60
%files
cdd8664
%doc README
Jerry James 09e7566
%license COPYING
e22d135
%{_libdir}/liblrs.so.1
e22d135
%{_libdir}/liblrs.so.1.*
cedfb60
cedfb60
%files devel
6c7e7ed
%doc chdemo.c lpdemo.c lpdemo1.c lpdemo2.c nashdemo.c vedemo.c
cedfb60
%{_includedir}/%{name}
6c7e7ed
%{_libdir}/liblrs.so
548cfd7
%{_mandir}/man5/lrs*
cedfb60
cedfb60
%files utils
cedfb60
%{_bindir}/lrs*
548cfd7
%{_mandir}/man1/lrs*
cedfb60
cedfb60
%changelog
8ac9be1
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-6
8ac9be1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
8ac9be1
4813db7
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-5
4813db7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
4813db7
5e07fbe
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-4
5e07fbe
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
5e07fbe
4414f94
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-3
4414f94
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
4414f94
548cfd7
* Mon Nov 28 2022 Jerry James <loganjerry@gmail.com> - 7.2-2
548cfd7
- Fix a few man page names
548cfd7
- Convert License tag to SPDX
548cfd7
623d8e1
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-2
623d8e1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
623d8e1
d049de4
* Mon Jul 18 2022 Jerry James <loganjerry@gmail.com> - 7.2-1
d049de4
- Version 072
d049de4
- Drop unmaintained downstream man pages
d049de4
fa02f29
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.1b-3
fa02f29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
fa02f29
78eb333
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.1b-2
78eb333
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
78eb333
4eceec2
* Fri Jun  4 2021 Jerry James <loganjerry@gmail.com> - 7.1b-1
4eceec2
- Version 071b
4eceec2
bcd4da5
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 7.1a-2
bcd4da5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
bcd4da5
6ea6dfa
* Mon Oct 19 2020 Jerry James <loganjerry@gmail.com> - 7.1a-1
6ea6dfa
- Version 071a
6ea6dfa
c79ae2a
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.1-3
c79ae2a
- Second attempt - Rebuilt for
c79ae2a
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
c79ae2a
d42905f
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.1-2
d42905f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
d42905f
e22d135
* Wed Jul  8 2020 Jerry James <loganjerry@gmail.com> - 7.1-1
e22d135
- Version 071
e22d135
- Drop upstreamed -common patch
e22d135
42cdd59
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-6
42cdd59
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
42cdd59
c6806e2
* Wed Jan 22 2020 Jerry James <loganjerry@gmail.com> - 7.0-5
c6806e2
- Add -common patch to fix build with -fcommon, for GCC 10
c6806e2
9feac74
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-4
9feac74
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
9feac74
8e190d8
* Wed Jul 17 2019 Jerry James <loganjerry@gmail.com> - 7.0-3
8e190d8
- Update to version 070a
8e190d8
490c889
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-2
490c889
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
490c889
6c7e7ed
* Tue Nov 20 2018 Jerry James <loganjerry@gmail.com> - 7.0-1
6c7e7ed
- New upstream release
6c7e7ed
- Major spec file overhaul due to upstream combining all 3 versions of the
6c7e7ed
  library into a single library
6c7e7ed
6b37aef
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-11
6b37aef
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
6b37aef
909b4a6
* Sat Mar  3 2018 Jerry James <loganjerry@gmail.com> - 6.2-10
909b4a6
- BR gcc-c++ instead of gcc
909b4a6
367689d
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-9
367689d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
367689d
ec2ee61
* Thu Feb  1 2018 Jerry James <loganjerry@gmail.com> - 6.2-8
ec2ee61
- Rebuild for Boost 1.66
ec2ee61
ae5f825
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-7
ae5f825
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
ae5f825
ffff449
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-6
ffff449
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
ffff449
7cd0989
* Wed Jul 19 2017 Jonathan Wakely <jwakely@redhat.com> - 6.2-5
7cd0989
- Rebuilt for s390x binutils bug
7cd0989
7199a81
* Mon Jul 03 2017 Jonathan Wakely <jwakely@redhat.com> - 6.2-4
7199a81
- Rebuilt for Boost 1.64
7199a81
90db5e5
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2-3
90db5e5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
90db5e5
c5f0217
* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 6.2-2
c5f0217
- Rebuilt for Boost 1.63
c5f0217
e328c2e
* Fri May 27 2016 Jerry James <loganjerry@gmail.com> - 6.2-1
e328c2e
- New upstream release
e328c2e
ddb6219
* Tue May 17 2016 Jonathan Wakely <jwakely@redhat.com> - 6.1-4
ddb6219
- Rebuilt for linker errors in boost (#1331983)
ddb6219
cd962f9
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-3
cd962f9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
cd962f9
5dee501
* Fri Jan 15 2016 Jonathan Wakely <jwakely@redhat.com> - 6.1-2
5dee501
- Rebuilt for Boost 1.60
5dee501
cdd8664
* Fri Dec  4 2015 Jerry James <jamesjer@diannao.jamezone.org> - 6.1-1
cdd8664
- New upstream release
cdd8664
36fd7e5
* Sat Sep 19 2015 Jerry James <loganjerry@gmail.com> - 6.0-1
36fd7e5
- New upstream release
36fd7e5
562d7e8
* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 5.1-7
562d7e8
- Rebuilt for Boost 1.59
562d7e8
2e52f11
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1-6
2e52f11
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
2e52f11
66b251a
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 5.1-5
66b251a
- rebuild for Boost 1.58
66b251a
97beaab
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1-4
97beaab
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
97beaab
47d43a6
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 5.1-3
47d43a6
- Rebuilt for GCC 5 C++11 ABI change
47d43a6
Petr Machata 73dc5cd
* Wed Feb 04 2015 Petr Machata <pmachata@redhat.com> - 5.1-2
Petr Machata 73dc5cd
- Bump for rebuild.
Petr Machata 73dc5cd
Jerry James a0e3c5a
* Mon Feb  2 2015 Jerry James <loganjerry@gmail.com> - 5.1-1
Jerry James a0e3c5a
- New upstream release
Jerry James a0e3c5a
Petr Machata ad25883
* Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 5.0a-2
Petr Machata ad25883
- Rebuild for boost 1.57.0
Petr Machata ad25883
Jerry James ef75dda
* Thu Jan 15 2015 Jerry James <loganjerry@gmail.com> - 5.0a-1
Jerry James ef75dda
- New upstream release
Jerry James ef75dda
Jerry James 09e7566
* Mon Nov 10 2014 Jerry James <loganjerry@gmail.com> - 5.0-1
Jerry James 09e7566
- New upstream release
Jerry James 09e7566
- Drop upstreamed -memleak patch
Jerry James 09e7566
- Link with RPM_LD_FLAGS
Jerry James 09e7566
- Fix license handling
Jerry James 09e7566
b188d2c
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-5
b188d2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
b188d2c
623697f
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-4
623697f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
623697f
9c917b9
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-3
9c917b9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
9c917b9
ff9576a
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-2
ff9576a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
ff9576a
20d5361
* Mon Aug 13 2012 Jerry James <loganjerry@gmail.com> - 4.3-1
20d5361
- New upstream release
20d5361
5b13935
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2c-5
5b13935
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
5b13935
80913ca
* Fri Mar 16 2012 Jerry James <loganjerry@gmail.com> - 4.2c-4
80913ca
- Apply patch from Thomas Rehn to fix a memory leak
80913ca
cedfb60
* Tue Feb 14 2012 Jerry James <loganjerry@gmail.com> - 4.2c-3
cedfb60
- Change subpackage structure based on review
cedfb60
cedfb60
* Wed Aug 24 2011 Jerry James <loganjerry@gmail.com> - 4.2c-2
cedfb60
- Use %%{name} more liberally.
cedfb60
- Use %%global instead of %%define.
cedfb60
- Add man pages.
cedfb60
cedfb60
* Wed Jul 20 2011 Jerry James <loganjerry@gmail.com> - 4.2c-1
cedfb60
- Initial RPM