Version 4.2.1p3. Add patch for GCC 12.

This commit is contained in:
Jerry James 2022-03-17 15:40:39 -06:00
parent 724dc78c8c
commit b43b7db433
7 changed files with 66 additions and 63 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/Singular-*.tar.gz
/singular-*.tar.gz
/surfex.tar.xz
/Release-*.tar.gz

6
README.md Normal file
View File

@ -0,0 +1,6 @@
# Singular
[Singular](https://www.singular.uni-kl.de/) is a computer algebra system for
polynomial computations, with special emphasis on commutative and
non-commutative algebra, algebraic geometry, and singularity theory. It is
free and open-source under the GNU General Public License.

View File

@ -1,34 +1,9 @@
--- singular-4.1.1/m4/cpu-check.m4.orig 2018-07-31 07:05:52.000000000 -0600
+++ singular-4.1.1/m4/cpu-check.m4 2018-10-24 08:32:44.713629407 -0600
@@ -37,6 +37,18 @@ if test "$ac_cv_singcpuname" = ppc; then
AC_DEFINE(SI_CPU_PPC,1,"PPC")
AC_SUBST(SI_CPU_PPC)
fi
+if test "$ac_cv_singcpuname" = arm -o "$ac_cv_singcpuname" = armel; then
+ AC_DEFINE(SI_CPU_ARM,1,"ARM")
+ AC_SUBST(SI_CPU_ARM)
+fi
+if test "$ac_cv_singcpuname" = aarch64; then
+ AC_DEFINE(SI_CPU_AARCH64,1,"AARCH64")
+ AC_SUBST(SI_CPU_AARCH64)
+fi
+if test "$ac_cv_singcpuname" = s390; then
+ AC_DEFINE(SI_CPU_S390,1,"S390")
+ AC_SUBST(SI_CPU_S390)
+fi
# UNAME and PATH
AC_MSG_CHECKING(uname for Singular)
@@ -65,6 +77,14 @@ dnl testet on: ppc_Linux, 740/750 PowerM
[powerpc*|ppc*], [AC_DEFINE(HAVE_GENERIC_MULT,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)],
dnl the following settings seems to be better on arm processors
[arm*], [],
+dnl FIXME: need to run some tests
+ [aarch64*], [
+ AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)
+ AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)
+ AC_DEFINE(HAVE_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms)
+ ],
--- Singular-Release-4-2-1p3/m4/cpu-check.m4.orig 2021-12-17 11:35:18.000000000 -0700
+++ Singular-Release-4-2-1p3/m4/cpu-check.m4 2022-03-03 15:28:43.256747747 -0700
@@ -69,6 +69,8 @@ dnl the following settings seems to be b
AC_DEFINE(HAVE_INVTABLE,1,division via a table of logarithms)
AC_DEFINE(HAVE_GENERIC_MULT,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)
],
+dnl FIXME: need to run some tests
+ [s390*], [AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)],
[]

View File

@ -1,5 +1,5 @@
--- singular-4.2.0/emacs/.emacs-singular.orig 2021-04-14 06:26:53.000000000 -0600
+++ singular-4.2.0/emacs/.emacs-singular 2021-05-25 19:58:16.350688397 -0600
--- Singular-Release-4-2-1p3/emacs/.emacs-singular.orig 2021-12-17 11:35:18.000000000 -0700
+++ Singular-Release-4-2-1p3/emacs/.emacs-singular 2022-03-03 15:36:50.506016980 -0700
@@ -185,7 +185,7 @@
"" "/")))
@ -18,14 +18,14 @@
(add-submenu nil
'("Singular"
["Start default" singular t]
--- singular-4.2.0/resources/feResource.cc.orig 2021-04-14 06:26:53.000000000 -0600
+++ singular-4.2.0/resources/feResource.cc 2021-05-25 19:58:16.351688394 -0600
@@ -83,7 +83,7 @@ VAR feResourceConfig_s feResourceConfigs
--- Singular-Release-4-2-1p3/resources/feResource.cc.orig 2022-03-03 15:36:50.506016980 -0700
+++ Singular-Release-4-2-1p3/resources/feResource.cc 2022-03-03 15:37:33.897043556 -0700
@@ -76,7 +76,7 @@ VAR feResourceConfig_s feResourceConfigs
{"RootDir", 'r', feResDir, "SINGULAR_ROOT_DIR", "%b/..", (char *)""},
{"DataDir", 'D', feResDir, "SINGULAR_DATA_DIR", "%b/../share/", (char *)""},
{"DefaultDir",'d', feResDir, "SINGULAR_DEFAULT_DIR", SINGULAR_DEFAULT_DIR, (char *)""},
- {"InfoFile", 'i', feResFile, "SINGULAR_INFO_FILE", "%D/info/singular.hlp", (char *)""},
+ {"InfoFile", 'i', feResFile, "SINGULAR_INFO_FILE", "%D/info/singular.hlp.gz", (char *)""},
- {"InfoFile", 'i', feResFile, "SINGULAR_INFO_FILE", "%D/info/singular.info", (char *)""},
+ {"InfoFile", 'i', feResFile, "SINGULAR_INFO_FILE", "%D/info/singular.info.gz", (char *)""},
{"IdxFile", 'x', feResFile, "SINGULAR_IDX_FILE", "%D/singular/singular.idx", (char *)""},
{"HtmlDir", 'h', feResDir, "SINGULAR_HTML_DIR", "%D/singular/html", (char *)""},
{"ManualUrl", 'u', feResUrl, "SINGULAR_URL", "https://www.singular.uni-kl.de/Manual/", (char *)""},

10
Singular-gcc12.patch Normal file
View File

@ -0,0 +1,10 @@
--- Singular-Release-4-2-1p3/kernel/oswrapper/vspace.cc.orig 2021-12-17 11:35:18.000000000 -0700
+++ Singular-Release-4-2-1p3/kernel/oswrapper/vspace.cc 2022-03-03 16:09:04.971209163 -0700
@@ -555,6 +555,7 @@ int EventSet::wait() {
} // namespace vspace
#else
+#include <cstddef>
#include <cstdlib>
#include <unistd.h>
#include <sys/mman.h>

View File

@ -1,5 +1,5 @@
%global singulardir %{_libdir}/Singular
%global upstreamver 4-2-0
%global upstreamver 4-2-1
%global downstreamver %(tr - . <<< %{upstreamver})
%global patchver p3
@ -12,7 +12,7 @@
Name: Singular
Version: %{downstreamver}%{?patchver}
Release: 3%{?dist}
Release: 1%{?dist}
Summary: Computer Algebra System for polynomial computations
# License analysis:
# - factory/readcf.cc, Singular/grammar.cc, and Singular/grammar.h are
@ -25,14 +25,7 @@ Summary: Computer Algebra System for polynomial computations
# - Everything else is marked either "GPLv2 or GPLv3" or "GPLv2 or later", with
# the former more strict than the latter
License: GPLv2 or GPLv3
Source0: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/%{upstreamver}/singular-%{version}.tar.gz
# Java sources omitted from the source tarball. To recreate this:
# - git clone https://github.com/Singular/Sources.git
# - cd Sources
# - git checkout spielwiese
# - git reset --hard 0dabbb616c7d95f0c9e81e9f51b857e3a0bb9e7c
# - tar cJf surfex.tar.xz Singular/LIB/surfex
Source1: surfex.tar.xz
Source0: https://github.com/Singular/Singular/archive/Release-%{upstreamver}%{?patchver}.tar.gz
URL: https://www.singular.uni-kl.de/
BuildRequires: 4ti2
BuildRequires: bison
@ -69,6 +62,7 @@ BuildRequires: pkgconfig(zlib)
%if %{with python}
BuildRequires: python2-devel
%endif
BuildRequires: qepcad-B
# Need uudecode for documentation images in tarball
BuildRequires: sharutils
BuildRequires: surf-geometry
@ -78,6 +72,7 @@ BuildRequires: TOPCOM
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: environment(modules)
Requires: less
Requires: qepcad-B
Requires: surf-geometry
Requires: TOPCOM%{_isa}
@ -101,10 +96,12 @@ Patch5: %{name}-parens.patch
Patch6: %{name}-gfanlib.patch
# Fix code that violates the strict aliasing rules
Patch7: %{name}-alias.patch
# Let ESingular read a compressed singular.hlp file
# Let ESingular read a compressed singular.info file
Patch8: %{name}-emacs.patch
# Adapt to Java 11
Patch9: %{name}-javac.patch
# Adapt to GCC 12
Patch10: %{name}-gcc12.patch
%description
Singular is a computer algebra system for polynomial computations, with
@ -197,7 +194,7 @@ This package contains the Singular java interface.
%prep
%autosetup -n singular-%{downstreamver} -a 1 -p1
%autosetup -n Singular-Release-%{upstreamver}%{?patchver} -p1
%if %{with python}
# Fix the name of the boost_python library
@ -221,10 +218,10 @@ export CPPFLAGS="-I%{_includedir}/flint -I%{_includedir}/gfanlib"
pyincdir=$(python2 -Esc "import sysconfig; print(sysconfig.get_paths()['include'])")
CPPFLAGS="$CPPFLAGS -I$pyincdir"
%endif
export CFLAGS="%{optflags} -fPIC -fno-delete-null-pointer-checks"
export CXXFLAGS="$CFLAGS"
export CFLAGS="%{build_cflags} -fPIC -fno-delete-null-pointer-checks"
export CXXFLAGS="%{build_cxxflags} -fPIC -fno-delete-null-pointer-checks"
# Cannot use RPM_LD_FLAGS, as -Wl,-z,now breaks lazy module loading
export LDFLAGS="-Wl,-z,relro"
export LDFLAGS="-Wl,--as-needed -Wl,-z,relro"
module load 4ti2-%{_arch}
module load lrcalc-%{_arch}
@ -258,16 +255,18 @@ module load lrcalc-%{_arch}
--without-python \
%endif
--with-readline \
--disable-doc \
--enable-doc \
--with-malloc=system
%make_build
%make_build -C dox html
make -C Singular libparse
make -C doc -f Makefile-docbuild singular.idx
make -C doc all-local
pushd Singular/LIB/surfex
./make_surfex
popd
%install
%make_install
@ -284,6 +283,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/Singular.desktop
desktop-file-validate \
%{buildroot}%{_datadir}/applications/Singular-manual.desktop
# Remove unnecessary dependencies from the pkgconfig files
sed -i 's/ -lflint.*//;s/Libs\.private.*/& -lflint -lmpfr -lntl -lgmp/' \
%{buildroot}%{_libdir}/pkgconfig/factory.pc
sed -i 's/ -lflint.*//;s/Libs\.private.*/& -lflint -lmpfr -lgmp/' \
%{buildroot}%{_libdir}/pkgconfig/libpolys.pc
# We don't want the libtool files
rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_libexecdir}/singular/MOD/*.la
@ -300,7 +305,9 @@ mkdir -p %{buildroot}%{_mandir}/man1
for cmd in ESingular Singular TSingular; do
cp -p Singular/$cmd.man %{buildroot}%{_mandir}/man1/$cmd.1
done
cp -p doc/singular.idx %{buildroot}%{_datadir}/singular
cp -a doc/{html,singular.idx} %{buildroot}%{_datadir}/singular
mkdir -p %{buildroot}%{_infodir}
cp -p doc/singular.info %{buildroot}%{_infodir}
# remove script that calls surf; we don't ship it
rm -f %{buildroot}%{singulardir}/singularsurf
@ -362,7 +369,7 @@ make check
%doc README.md
%{_bindir}/Singular
%{_bindir}/TSingular
%{_infodir}/singular.hlp*
%{_infodir}/singular.info*
%{_mandir}/man1/Singular.1*
%{_mandir}/man1/TSingular.1*
%{_datadir}/applications/Singular.desktop
@ -372,6 +379,7 @@ make check
%{_datadir}/singular/singular.idx
%docdir %{_datadir}/singular/html/
%{_datadir}/singular/html/
%dir %{singulardir}
%{singulardir}/Singular
%{singulardir}/TSingular
@ -380,7 +388,7 @@ make check
%license COPYING
%license GPL2
%license GPL3
%{_libdir}/libSingular-4.2.0.so
%{_libdir}/libSingular-%{downstreamver}.so
%{_libexecdir}/singular/
%dir %{_datadir}/singular/
%{_datadir}/singular/LIB/
@ -419,9 +427,9 @@ make check
%files -n factory
%license factory/COPYING
%doc factory/README
%{_libdir}/libfactory-4.2.0.so
%{_libdir}/libfactory-%{downstreamver}.so
%{_libdir}/libomalloc-0.9.6.so
%{_libdir}/libsingular_resources-4.2.0.so
%{_libdir}/libsingular_resources-%{downstreamver}.so
%files -n factory-devel
%doc factory/examples
@ -441,7 +449,7 @@ make check
%files libpolys
%license libpolys/COPYING
%doc libpolys/README
%{_libdir}/libpolys-4.2.0.so
%{_libdir}/libpolys-%{downstreamver}.so
%files libpolys-devel
%{_bindir}/libpolys-config
@ -456,6 +464,10 @@ make check
%changelog
* Thu Mar 17 2022 Jerry James <loganjerry@gmail.com> - 4.2.1p3-1
- Version 4.2.1p3
- Add patch for GCC 12
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.2.0p3-3
- Rebuilt for java-17-openjdk as system jdk

View File

@ -1,2 +1 @@
SHA512 (singular-4.2.0p3.tar.gz) = b9833389b648ec4ba2bd09253f00254b9ae3dc61313fc81c9003b283fc413caab4274e55750de1c342ef24a8fc0ce817643cd31eabbb2999de7f5017dfa1411f
SHA512 (surfex.tar.xz) = a8c5db044bc948f5d783b8efebd51e79839c94c62924ae13db63e0ed3421e15e9812ee19a4caf242fc0d3b5cdcdb4ff8736869a22ba8e7283283732f41d23dcd
SHA512 (Release-4-2-1p3.tar.gz) = 3fca71ead9d3fa190e69f17b342a3321039864b99edfe571d58f9568996c8a25eea2e3f324b78acc37eb14e393a32d856eaf98c366f73f78a586757a68a6be60