The package rpms/Singular.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/Singular.git/commit/?id=836d2cdd5....
Change:
+%ifarch %{power64}
Thanks.
Full change:
============
commit 836d2cdd504590eb34e781da03fa12530876156a
Author: Jerry James <loganjerry(a)gmail.com>
Date: Sun Mar 20 17:07:38 2022 -0600
Do not build the index on ppc64le due to lack of memory.
diff --git a/Singular.spec b/Singular.spec
index 0a9e05b..4e0daf5 100644
--- a/Singular.spec
+++ b/Singular.spec
@@ -3,6 +3,14 @@
%global downstreamver %(tr - . <<< %{upstreamver})
%global patchver p3
+# The ppc64le builds are no longer able to build the index without the OOM
+# killer killing kojid.
+%ifarch %{power64}
+%bcond_with index
+%else
+%bcond_without index
+%endif
+
%bcond_with python
%if %{with python}
@@ -260,9 +268,11 @@ module load lrcalc-%{_arch}
%make_build
%make_build -C dox html
+%if %{with index}
%make_build -C Singular libparse
make -C doc -j1 -f Makefile-docbuild singular.idx
make -C doc -j1 all-local
+%endif
pushd Singular/LIB/surfex
./make_surfex
popd
@@ -305,9 +315,11 @@ mkdir -p %{buildroot}%{_mandir}/man1
for cmd in ESingular Singular TSingular; do
cp -p Singular/$cmd.man %{buildroot}%{_mandir}/man1/$cmd.1
done
+%if %{with index}
cp -a doc/{html,singular.idx} %{buildroot}%{_datadir}/singular
mkdir -p %{buildroot}%{_infodir}
cp -p doc/singular.info %{buildroot}%{_infodir}
+%endif
# remove script that calls surf; we don't ship it
rm -f %{buildroot}%{singulardir}/singularsurf
@@ -369,16 +381,20 @@ make check
%doc README.md
%{_bindir}/Singular
%{_bindir}/TSingular
+%if %{with index}
%{_infodir}/singular.info*
+%endif
%{_mandir}/man1/Singular.1*
%{_mandir}/man1/TSingular.1*
%{_datadir}/applications/Singular.desktop
%{_datadir}/icons/Singular.png
%{_datadir}/ml_python/
%{_datadir}/ml_singular/
+%if %{with index}
%{_datadir}/singular/singular.idx
%docdir %{_datadir}/singular/html/
%{_datadir}/singular/html/
+%endif
%dir %{singulardir}
%{singulardir}/Singular
%{singulardir}/TSingular
@@ -468,6 +484,7 @@ make check
- Version 4.2.1p3
- Add patch for GCC 12
- Build documentation with -j1 to avoid OOM on the koji builders
+- Do not build the index on ppc64le due to lack of memory
* Sat Feb 05 2022 Jiri Vanek <jvanek(a)redhat.com> - 4.2.0p3-3
- Rebuilt for java-17-openjdk as system jdk
commit 2266126d7259dd86310449065391b564b1022415
Author: Jerry James <loganjerry(a)gmail.com>
Date: Fri Mar 18 13:24:49 2022 -0600
Build documentation with -j1 to avoid OOM on the koji builders.
diff --git a/Singular.spec b/Singular.spec
index 092c069..0a9e05b 100644
--- a/Singular.spec
+++ b/Singular.spec
@@ -260,9 +260,9 @@ module load lrcalc-%{_arch}
%make_build
%make_build -C dox html
-make -C Singular libparse
-make -C doc -f Makefile-docbuild singular.idx
-make -C doc all-local
+%make_build -C Singular libparse
+make -C doc -j1 -f Makefile-docbuild singular.idx
+make -C doc -j1 all-local
pushd Singular/LIB/surfex
./make_surfex
popd
@@ -467,6 +467,7 @@ make check
* Thu Mar 17 2022 Jerry James <loganjerry(a)gmail.com> - 4.2.1p3-1
- Version 4.2.1p3
- Add patch for GCC 12
+- Build documentation with -j1 to avoid OOM on the koji builders
* Sat Feb 05 2022 Jiri Vanek <jvanek(a)redhat.com> - 4.2.0p3-3
- Rebuilt for java-17-openjdk as system jdk
commit b43b7db433811505fb8b1e006e8cf6836db7e1e3
Author: Jerry James <loganjerry(a)gmail.com>
Date: Thu Mar 17 15:40:39 2022 -0600
Version 4.2.1p3. Add patch for GCC 12.
diff --git a/.gitignore b/.gitignore
index 799c172..dd72b85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/Singular-*.tar.gz
/singular-*.tar.gz
/surfex.tar.xz
+/Release-*.tar.gz
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e729a1d
--- /dev/null
+++ b/README.md
@@ -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.
diff --git a/Singular-arches.patch b/Singular-arches.patch
index 237777c..fa10e3f 100644
--- a/Singular-arches.patch
+++ b/Singular-arches.patch
@@ -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)],
[]
diff --git a/Singular-emacs.patch b/Singular-emacs.patch
index b0e14a0..4b573bd 100644
--- a/Singular-emacs.patch
+++ b/Singular-emacs.patch
@@ -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 *)""},
diff --git a/Singular-gcc12.patch b/Singular-gcc12.patch
new file mode 100644
index 0000000..dc7f9be
--- /dev/null
+++ b/Singular-gcc12.patch
@@ -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>
diff --git a/Singular.spec b/Singular.spec
index eed72a8..092c069 100644
--- a/Singular.spec
+++ b/Singular.spec
@@ -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/%{upstreamv...
-# 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}%{?pat...
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(a)gmail.com> - 4.2.1p3-1
+- Version 4.2.1p3
+- Add patch for GCC 12
+
* Sat Feb 05 2022 Jiri Vanek <jvanek(a)redhat.com> - 4.2.0p3-3
- Rebuilt for java-17-openjdk as system jdk
diff --git a/sources b/sources
index 32260fb..6156272 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-SHA512 (singular-4.2.0p3.tar.gz) =
b9833389b648ec4ba2bd09253f00254b9ae3dc61313fc81c9003b283fc413caab4274e55750de1c342ef24a8fc0ce817643cd31eabbb2999de7f5017dfa1411f
-SHA512 (surfex.tar.xz) =
a8c5db044bc948f5d783b8efebd51e79839c94c62924ae13db63e0ed3421e15e9812ee19a4caf242fc0d3b5cdcdb4ff8736869a22ba8e7283283732f41d23dcd
+SHA512 (Release-4-2-1p3.tar.gz) =
3fca71ead9d3fa190e69f17b342a3321039864b99edfe571d58f9568996c8a25eea2e3f324b78acc37eb14e393a32d856eaf98c366f73f78a586757a68a6be60