4dc2f4cc66
This consists of two separate changes: - Run Singular in a separate session so it doesn't steal the TTY. - Don't send data to bash through the (supposedly) Singular pipe.
156 lines
5.2 KiB
RPMSpec
156 lines
5.2 KiB
RPMSpec
Name: qepcad-B
|
|
Version: 1.69
|
|
Release: 11%{?dist}
|
|
Summary: Quantifier elimination tool
|
|
|
|
License: MIT
|
|
URL: http://www.usna.edu/CS/qepcadweb/INSTALL/IQ.html
|
|
Source0: http://www.usna.edu/CS/qepcadweb/INSTALL/%{name}.%{version}.tar.gz
|
|
# Don't require users to set the "qe" or "SINGULARPATH" environment variables.
|
|
# Not for upstream.
|
|
Patch0: %{name}-env.patch
|
|
# Add gcc attributes for better efficiency and warnings. Upstream: 20 Nov 2013.
|
|
Patch1: %{name}-attr.patch
|
|
# Fix use of uninitialized variables. Upstream: 20 Nov 2013.
|
|
Patch2: %{name}-uninit.patch
|
|
# Fix a non-void function where control can fall off the end. Upstream:
|
|
# 20 Nov 2013.
|
|
Patch3: %{name}-return.patch
|
|
# Fix abstract base classes with non-virtual destructors. Upstream:
|
|
# 20 Nov 2013.
|
|
Patch4: %{name}-destructor.patch
|
|
# Add parentheses to disambiguate mixed boolean operators. Upstream:
|
|
# 20 Nov 2013.
|
|
Patch5: %{name}-parens.patch
|
|
# Fix some mixed signed/unsigned operations. Upstream: 20 Nov 2013.
|
|
Patch6: %{name}-signed.patch
|
|
# Fix syntactically incorrect expressions. Upstream: 20 Nov 2013.
|
|
Patch7: %{name}-syntax.patch
|
|
# Remove unused variables and static functions.
|
|
Patch8: %{name}-unused.patch
|
|
# Tell Singular not to steal the TTY (bz 1257471)
|
|
Patch9: %{name}-tty.patch
|
|
|
|
BuildRequires: freeglut-devel
|
|
BuildRequires: readline-devel
|
|
BuildRequires: saclib-devel
|
|
|
|
# Subprocesses are spawned to run executables from these packages
|
|
Requires: bash
|
|
Requires: coreutils
|
|
Requires: Singular
|
|
|
|
%description
|
|
QEPCAD is an implementation of quantifier elimination by partial
|
|
cylindrical algebraic decomposition due originally to Hoon Hong, and
|
|
subsequently added on to by many others. It is an interactive
|
|
command-line program written in C/C++, and based on the SACLIB library.
|
|
This is QEPCAD B version 1.x, the "B" designating a substantial
|
|
departure from the original QEPCAD and distinguishing it from any
|
|
development of the original that may proceed in a different direction.
|
|
|
|
%prep
|
|
%setup -q -n qesource
|
|
%patch0
|
|
%patch1
|
|
%patch2
|
|
%patch3
|
|
%patch4
|
|
%patch5
|
|
%patch6
|
|
%patch7
|
|
%patch8
|
|
%patch9
|
|
|
|
# Adapt to the Fedora saclib package
|
|
sed -i 's,\${saclib}/lib/saclib.\.a,-lsaclib,' source/Makefile cad2d/Makefile
|
|
|
|
# Embed the library path
|
|
sed -i 's,@LIBDIR@,%{_libdir},' source/main/BEGINQEPCAD.c
|
|
|
|
# Use the right build flags
|
|
sed -i "s|-O4|%{optflags} -Wno-unused-label $RPM_LD_FLAGS|" plot2d/Makefile
|
|
|
|
%build
|
|
# FIXME: %%{?_smp_mflags} doesn't work
|
|
export saclib=%{_prefix}
|
|
export qe=$PWD
|
|
export CC=g++
|
|
export CCo=g++
|
|
export FLAGS="%{optflags} -I%{_includedir}/saclib -Wno-unused-label"
|
|
export FLAGSo="$FLAGS"
|
|
export SPECIFLAGS="-I%{_includedir}/saclib"
|
|
export SPECLFLAGS="$RPM_LD_FLAGS"
|
|
make -C extensions/sfext
|
|
make -C extensions/adj2d
|
|
make -C extensions/rend
|
|
make -C extensions/newadj
|
|
make -C extensions/lift2D
|
|
make -C source opt FLAGSo="$FLAGS"
|
|
make -C plot2d
|
|
make -C cad2d opt FLAGSo="$FLAGS"
|
|
|
|
%install
|
|
#Install the binaries
|
|
mkdir -p %{buildroot}%{_bindir}
|
|
install -p -m 0755 source/qepcad %{buildroot}%{_bindir}
|
|
install -p -m 0755 plot2d/ADJ2D_plot %{buildroot}%{_bindir}
|
|
install -p -m 0755 cad2d/cad2d %{buildroot}%{_bindir}
|
|
|
|
# Install the default settings file
|
|
mkdir -p %{buildroot}%{_datadir}/qepcad
|
|
sed 's,^#S.*,SINGULAR %{_libdir}/Singular,' default.qepcadrc > \
|
|
%{buildroot}%{_datadir}/qepcad/default.qepcadrc
|
|
touch -r default.qepcadrc %{buildroot}%{_datadir}/qepcad/default.qepcadrc
|
|
|
|
# Install qepcad.help and the expected symbolic links
|
|
mkdir -p %{buildroot}%{_datadir}/qepcad/bin
|
|
cp -p source/qepcad.help %{buildroot}%{_datadir}/qepcad/bin
|
|
ln -s %{_bindir}/ADJ2D_plot %{buildroot}%{_datadir}/qepcad/bin
|
|
ln -s %{_bindir}/cad2d %{buildroot}%{_datadir}/qepcad/bin
|
|
ln -s %{_bindir}/qepcad %{buildroot}%{_datadir}/qepcad/bin
|
|
|
|
%files
|
|
%doc LOG
|
|
%license LICENSE
|
|
%{_bindir}/qepcad
|
|
%{_bindir}/ADJ2D_plot
|
|
%{_bindir}/cad2d
|
|
%{_datadir}/qepcad/
|
|
|
|
%changelog
|
|
* Thu Sep 3 2015 Jerry James <loganjerry@gmail.com> - 1.69-11
|
|
- Run Singular in a separate session so it doesn't steal the TTY (bz 1257471)
|
|
- Don't send data to bash through the (supposedly) Singular pipe
|
|
|
|
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.69-10
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
|
|
|
* Mon May 4 2015 Jerry James <loganjerry@gmail.com> - 1.69-9
|
|
- Rebuild for C++ ABI change
|
|
|
|
* Wed Jan 7 2015 Jerry James <loganjerry@gmail.com> - 1.69-8
|
|
- Update URLs
|
|
- Use license macro
|
|
|
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.69-7
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
|
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.69-6
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
|
|
* Mon Mar 31 2014 Jerry James <loganjerry@gmail.com> - 1.69-5
|
|
- Fix default.qepcadrc so that it requires Singular on all architectures
|
|
|
|
* Thu Mar 20 2014 Jerry James <loganjerry@gmail.com> - 1.69-4
|
|
- Singular is now available for all architectures
|
|
|
|
* Sat Feb 15 2014 Jerry James <loganjerry@gmail.com> - 1.69-3
|
|
- Singular is currently available for x86 architectures only
|
|
|
|
* Thu Feb 13 2014 Jerry James <loganjerry@gmail.com> - 1.69-2
|
|
- Install qepcad.help
|
|
|
|
* Thu Nov 21 2013 Jerry James <loganjerry@gmail.com> - 1.69-1
|
|
- Initial RPM
|