New upstream version (bz 1181772, 1321077)

Also:
- Drop upstreamed patches: -destdir, -headers, -doc, -builddid,
  -undefined, and -semaphore
- Add patches: -desktop, -format, -parens, -sequence-point, -alias,
  and -polymake
- libpolys subpackage replaces libfac
- Rework the Emacs support
This commit is contained in:
Jerry James 2017-04-06 07:32:50 -06:00
parent 3169285618
commit 7addda85c2
20 changed files with 549 additions and 1448 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
/Singular-3-1-5.tar.gz
/Singular-3-1-6.tar.gz
/Singular-3-1-7.tar.gz
/singular-4.1.0p2.tar.gz

11
Singular-alias.patch Normal file
View File

@ -0,0 +1,11 @@
--- singular-4.1.0/Singular/links/ndbm.cc.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/Singular/links/ndbm.cc 2017-02-28 09:03:36.396520458 -0700
@@ -293,7 +293,7 @@ datum dbm_nextkey(register DBM *db)
db->dbm_flags |= _DBM_IOERR;
#endif
}
- if (((short *)db->dbm_pagbuf)[0] != 0)
+ if (db->dbm_pagbuf[0] != 0 || db->dbm_pagbuf[1] != 0)
{
item = makdatum(db->dbm_pagbuf, db->dbm_keyptr);
if (item.dptr != NULL)

View File

@ -1,267 +1,41 @@
diff -up Singular-3-1-7/kernel/mod2.h.cmake.in.orig Singular-3-1-7/kernel/mod2.h.cmake.in
--- Singular-3-1-7/kernel/mod2.h.cmake.in.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/kernel/mod2.h.cmake.in 2016-02-15 21:49:18.052275064 -0700
@@ -157,6 +157,12 @@
#cmakedefine SI_CPU_IA64 1
/* CPU type: x86_64: */
#cmakedefine SI_CPU_X86_64 1
+/* CPU type: arm: */
+#cmakedefine SI_CPU_ARM 1
+/* CPU type: s390 / s390x: */
+#cmakedefine SI_CPU_S390 1
+/* CPU type: aarch64: */
+#cmakedefine SI_CPU_AARCH64 1
/*******************************************************************
* Defines which are not set by configure
diff -up Singular-3-1-7/kernel/mod_raw.cc.orig Singular-3-1-7/kernel/mod_raw.cc
--- Singular-3-1-7/kernel/mod_raw.cc.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/kernel/mod_raw.cc 2016-02-15 21:53:02.950149126 -0700
@@ -38,8 +38,8 @@ char* si_bultin_libs[]={ SI_FOREACH_BUIL
lib_types type_of_LIB(char *newlib, char *libnamebuf)
{
- const char mach_o[]={0xfe,0xed,0xfa,0xce,0};
- const char mach_o_module[]={0xce,0xfa,0xed,0xfe,0};
+ const unsigned char mach_o[]={0xfe,0xed,0xfa,0xce,0};
+ const unsigned char mach_o_module[]={0xce,0xfa,0xed,0xfe,0};
int i=0;
while(si_bultin_libs[i]!=NULL)
{
@@ -90,7 +90,7 @@ lib_types type_of_LIB(char *newlib, char
goto lib_type_end;
}
- if( (strncmp(buf, &mach_o[0], 4)==0)) /* generic Mach-O module */
+ if( (strncmp(buf, (const char *)&mach_o[0], 4)==0)) /* generic Mach-O module */
{
LT = LT_MACH_O;
//omFree(newlib);
@@ -98,7 +98,7 @@ lib_types type_of_LIB(char *newlib, char
goto lib_type_end;
}
- if( (strncmp(buf, &mach_o_module[0], 4)==0)) /* Mach-O bundle */
+ if( (strncmp(buf, (const char *)&mach_o_module[0], 4)==0)) /* Mach-O bundle */
{
LT = LT_MACH_O;
//omFree(newlib);
diff -up Singular-3-1-7/kernel/structs.h.orig Singular-3-1-7/kernel/structs.h
--- Singular-3-1-7/kernel/structs.h.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/kernel/structs.h 2016-02-15 21:49:18.053274984 -0700
@@ -69,6 +69,27 @@ typedef void * ADDRESS;
#ifdef HAVE_MULT_MOD
#define HAVE_DIV_MOD
#endif
+#elif defined(SI_CPU_ARM)
+ // FIXME: need to run some tests
+ #define HAVE_MULT_MOD
+ // #define HAVE_GENERIC_ADD
+ #ifdef HAVE_MULT_MOD
+ #define HAVE_DIV_MOD
+ #endif
+#elif defined(SI_CPU_S390)
+ // FIXME: need to run some tests
+ // #define HAVE_MULT_MOD
+ #define HAVE_GENERIC_ADD
+ // #ifdef HAVE_MULT_MOD
+ // #define HAVE_DIV_MOD
+ // #endif
+#elif defined(SI_CPU_AARCH64)
+ // FIXME: need to run some tests
+ #define HAVE_MULT_MOD
+ #define HAVE_GENERIC_ADD
+ #ifdef HAVE_MULT_MOD
+ #define HAVE_DIV_MOD
+ #endif
#endif
#if SIZEOF_LONG == 4
diff -up Singular-3-1-7/Singular/configure.in.orig Singular-3-1-7/Singular/configure.in
--- Singular-3-1-7/Singular/configure.in.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/configure.in 2016-02-15 21:49:18.054274903 -0700
@@ -461,6 +461,21 @@ if test "$ac_cv_singuname" = ppcMac-darw
--- singular-4.1.0/m4/cpu-check.m4.orig 2016-10-14 14:00:05.000000000 -0600
+++ singular-4.1.0/m4/cpu-check.m4 2017-01-16 17:59:49.348670992 -0700
@@ -37,6 +37,18 @@ if test "$ac_cv_singcpuname" = ppc; then
AC_DEFINE(SI_CPU_PPC,1,"PPC")
AC_SUBST(SI_CPU_PPC)
AC_MSG_RESULT(SI_CPU_PPC)
fi
+if test "$ac_cv_singuname" = arm-Linux; then
+ AC_DEFINE(SI_CPU_ARM)
+if test "$ac_cv_singcpuname" = arm -o "$ac_cv_singcpuname" = armel; then
+ AC_DEFINE(SI_CPU_ARM,1,"ARM")
+ AC_SUBST(SI_CPU_ARM)
+ AC_MSG_RESULT(SI_CPU_ARM)
+fi
+if test "$ac_cv_singuname" = s390-Linux; then
+ AC_DEFINE(SI_CPU_S390)
+ AC_SUBST(SI_CPU_S390)
+ AC_MSG_RESULT(SI_CPU_S390)
+fi
+if test "$ac_cv_singuname" = aarch64-Linux; then
+ AC_DEFINE(SI_CPU_AARCH64)
+ AC_SUBST(SI_CPU_AARCH64)
+ AC_MSG_RESULT(SI_CPU_AARCH64)
+fi
# test again with CPU names
if test "$ac_cv_singcpuname" = i386; then
AC_DEFINE(SI_CPU_I386)
@@ -497,6 +512,21 @@ if test "$ac_cv_singcpuname" = armv6l; t
AC_SUBST(SI_CPU_ARM6L)
AC_MSG_RESULT(SI_CPU_ARM6L)
fi
+if test "$ac_cv_singcpuname" = arm; then
+ AC_DEFINE(SI_CPU_ARM)
+ AC_SUBST(SI_CPU_ARM)
+ AC_MSG_RESULT(SI_CPU_ARM)
+fi
+if test "$ac_cv_singcpuname" = s390; then
+ AC_DEFINE(SI_CPU_S390)
+ AC_SUBST(SI_CPU_S390)
+ AC_MSG_RESULT(SI_CPU_S390)
+fi
+if test "$ac_cv_singcpuname" = aarch64; then
+ AC_DEFINE(SI_CPU_AARCH64)
+ AC_DEFINE(SI_CPU_AARCH64,1,"AARCH64")
+ AC_SUBST(SI_CPU_AARCH64)
+ AC_MSG_RESULT(SI_CPU_AARCH64)
+fi
SING_UNAME=`echo $SINGUNAME | tr '-' '_' `
AC_SUBST(SING_UNAME)
diff -up Singular-3-1-7/Singular/configure.orig Singular-3-1-7/Singular/configure
--- Singular-3-1-7/Singular/configure.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/configure 2016-02-15 21:51:43.817526924 -0700
@@ -676,6 +676,9 @@ SINGULAR_MAJOR_VERSION
VERSION_DATE
SINGULAR_VERSION
SING_UNAME
+SI_CPU_ARM
+SI_CPU_S390
+SI_CPU_AARCH64
SI_CPU_ARM6L
SI_CPU_SPARC
SI_CPU_PPC
@@ -3965,6 +3968,27 @@ if test "$ac_cv_singuname" = ppcMac-darw
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_PPC" >&5
$as_echo "SI_CPU_PPC" >&6; }
fi
+if test "$ac_cv_singuname" = arm-Linux; then
+ $as_echo "#define SI_CPU_ARM 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_ARM" >&5
+$as_echo "SI_CPU_ARM" >&6; }
+fi
+if test "$ac_cv_singuname" = s390-Linux; then
+ $as_echo "#define SI_CPU_S390 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_S390" >&5
+$as_echo "SI_CPU_S390" >&6; }
+fi
+if test "$ac_cv_singuname" = aarch64-Linux; then
+ $as_echo "#define SI_CPU_AARCH64 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_AARCH64" >&5
+$as_echo "SI_CPU_AARCH64" >&6; }
+fi
# test again with CPU names
if test "$ac_cv_singcpuname" = i386; then
$as_echo "#define SI_CPU_I386 1" >>confdefs.h
@@ -4008,6 +4032,27 @@ if test "$ac_cv_singcpuname" = ppc; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_PPC" >&5
$as_echo "SI_CPU_PPC" >&6; }
fi
+if test "$ac_cv_singcpuname" = arm; then
+ $as_echo "#define SI_CPU_ARM 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_ARM" >&5
+$as_echo "SI_CPU_ARM" >&6; }
+fi
+if test "$ac_cv_singcpuname" = s390; then
+ $as_echo "#define SI_CPU_S390 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_S390" >&5
+$as_echo "SI_CPU_S390" >&6; }
+ AC_DEFINE(SI_CPU_S390,1,"S390")
+ AC_SUBST(SI_CPU_S390)
+fi
+if test "$ac_cv_singcpuname" = aarch64; then
+ $as_echo "#define SI_CPU_AARCH64 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_AARCH64" >&5
+$as_echo "SI_CPU_AARCH64" >&6; }
+fi
if test "$ac_cv_singcpuname" = armv6l; then
$as_echo "#define SI_CPU_ARM6L 1" >>confdefs.h
diff -up Singular-3-1-7/Singular/mod2.h.in.orig Singular-3-1-7/Singular/mod2.h.in
--- Singular-3-1-7/Singular/mod2.h.in.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/mod2.h.in 2016-02-15 21:49:18.057274661 -0700
@@ -162,6 +162,12 @@
#undef SI_CPU_IA64
/* CPU type: x86_64: */
#undef SI_CPU_X86_64
+/* CPU type: arm: */
+#undef SI_CPU_ARM
+/* CPU type: s390 / s390x: */
+#undef SI_CPU_S390
+/* CPU type: aarch64: */
+#undef SI_CPU_AARCH64
/* Autoload reference counted types like reference and shared */
#undef SI_COUNTEDREF_AUTOLOAD
/* whether development version of python is available */
diff -up Singular-3-1-7/singuname.sh.orig Singular-3-1-7/singuname.sh
--- Singular-3-1-7/singuname.sh.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/singuname.sh 2016-02-15 21:49:18.057274661 -0700
@@ -202,7 +202,7 @@ then
elif (echo $uname_m | $egrep "Power Macintosh" > $devnull)
then
prefix="ppcMac"
- if( uname -s | $egrep "Darwin" > $devnull)
+ if (uname -s | $egrep "Darwin" > $devnull)
then
echo ${prefix}-darwin
exit 0
@@ -247,7 +247,42 @@ then
echo ${prefix}-Unknown
exit 1
fi
-
+# arm-Linux ##########################################################
+elif (echo $uname_m | $egrep "arm" > $devnull)
+then
+ prefix=arm
+ if (echo $uname_a | $egrep "Linux" > $devnull)
+ then
+ echo ${prefix}-Linux
+ exit 0
+ else
+ echo ${prefix}-Unknown
+ exit 1
+ fi
+# s390(x)-Linux ######################################################
+elif (echo $uname_m | $egrep "s390" > $devnull)
+then
+ prefix=s390
+ if (echo $uname_a | $egrep "Linux" > $devnull)
+ then
+ echo ${prefix}-Linux
+ exit 0
+ else
+ echo ${prefix}-Unknown
+ exit 1
+ fi
+# aarch64-Linux ##########################################################
+elif (echo $uname_m | $egrep "aarch64" > $devnull)
+then
+ prefix=aarch64
+ if (echo $uname_a | $egrep "Linux" > $devnull)
+ then
+ echo ${prefix}-Linux
+ exit 0
+ else
+ echo ${prefix}-Unknown
+ exit 1
+ fi
else # Unknown ########################################################
echo Unknown
exit 2
# UNAME and PATH
AC_MSG_CHECKING(uname for Singular)
@@ -61,6 +73,19 @@ dnl the following settings seems to be b
dnl the following settings seems to be better on ppc processors
dnl testet on: ppc_Linux, 740/750 PowerMac G3, 512k L2 cache
[powerpc*|ppc*], [AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)],
+dnl FIXME: need to run some tests
+ [arm*], [
+ 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_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms)
+ ],
+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)
+ ],
+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,12 +0,0 @@
diff -up Singular-3-1-7/gfanlib/gfanlib_matrix.h.orig Singular-3-1-7/gfanlib/gfanlib_matrix.h
--- Singular-3-1-7/gfanlib/gfanlib_matrix.h.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/gfanlib/gfanlib_matrix.h 2016-02-18 20:02:45.235928428 -0700
@@ -327,7 +327,7 @@ public:
}
if(makePivotsOne)
{//THE PIVOT SHOULD BE SET TO ONE IF INTEGRAL IS FALSE
- if(!rows[currentRow][i].sign()<0)retSwaps++;
+ if(rows[currentRow][i].sign()>=0)retSwaps++;
typ inverse=typ(1)/rows[currentRow][i];
// if(!rows[currentRow][i].isOne())
{

View File

@ -1,37 +0,0 @@
diff -up Singular-3-1-7/kernel/Makefile.in.builddid Singular-3-1-7/kernel/Makefile.in
--- Singular-3-1-7/kernel/Makefile.in.builddid 2016-02-15 21:06:08.429066185 -0700
+++ Singular-3-1-7/kernel/Makefile.in 2016-02-15 21:28:04.753898841 -0700
@@ -264,7 +264,7 @@ p_Procs_Dynamic.inc: p_Procs_Generate.cc
-rm -f p_Procs_Dynamic p_Procs_Dynamic.exe
p_Procs_%.so: p_Procs_Lib_%.dl_o
- $(LD) ${SLDFLAGS} -o $@ $^
+ $(CXX) ${SLDFLAGS} -o $@ $^
##
## install targets
@@ -374,7 +374,7 @@ DEFSG = -D@SING_UNAME@ @DEFS@ -DDL_TAIL
##
p_Procs_%.sog: p_Procs_Lib_%.dl_og
- $(LD) ${SLDFLAGS} -o $@ $^
+ $(CXX) ${SLDFLAGS} -o $@ $^
p_Procs_Lib_%.dl_og : p_Procs_Lib.cc p_Procs_Dynamic.og
${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
diff -up Singular-3-1-7/Singular/Makefile.in.builddid Singular-3-1-7/Singular/Makefile.in
--- Singular-3-1-7/Singular/Makefile.in.builddid 2016-02-15 21:16:53.916992781 -0700
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 21:28:04.755898679 -0700
@@ -492,10 +492,10 @@ feOptTS.inc: feOpt.cc mod2.h
rm -f feOptTS feOptTS.exe
mpsr.so: $(MPSR_SOURCES:.cc=.dl_o)
- $(LD) ${SLDFLAGS} -o $@ $^ -L${libdir} ${MP_LIBS} ${GLIBC_DYN_FIX}
+ $(LIBSINGULAR_LD) ${SLDFLAGS} -o $@ $^ -L${libdir} ${MP_LIBS} ${GLIBC_DYN_FIX}
dbmsr.so: $(DBMSR_SOURCES:.cc=.dl_o)
- $(LD) ${SLDFLAGS} -o $@ $^ ${GLIBC_DYN_FIX}
+ $(LIBSINGULAR_LD) ${SLDFLAGS} -o $@ $^ ${GLIBC_DYN_FIX}
# dynamic module for python bject support
${dir_mod}/pyobject.${MODULE_SUFFIX}: pyobject.dl_o

31
Singular-desktop.patch Normal file
View File

@ -0,0 +1,31 @@
--- singular-4.1.0/desktop/Singular.desktop.in.orig 2016-10-14 06:26:25.000000000 -0600
+++ singular-4.1.0/desktop/Singular.desktop.in 2017-01-16 19:18:21.313516480 -0700
@@ -3,12 +3,10 @@ Version=1.0
Name=Singular
Comment=run Singular @PACKAGE_VERSION@ in a terminal
Comment[de]=Singular @PACKAGE_VERSION@ in einem Terminal starten
-Comment[es]=
Comment[fr]=démarrer Singular @PACKAGE_VERSION@ dans un terminal
-Comment[ru]=
Type=Application
Exec=Singular
Terminal=true
Categories=Math;Science;Education;
-Icon=@DATA_DIR@/icons/Singular.png
+Icon=Singular
--- singular-4.1.0/desktop/Singular-manual.desktop.in.orig 2016-10-14 06:26:25.000000000 -0600
+++ singular-4.1.0/desktop/Singular-manual.desktop.in 2017-01-16 19:19:18.281326517 -0700
@@ -4,10 +4,8 @@ Name=Singular Manual
Name[de]=Singular-Handbuch
Comment=read the user manual for Singular @PACKAGE_VERSION@
Comment[de]=im Benutzerhandbuch zu Singular @PACKAGE_VERSION@ lesen
-Comment[es]=
Comment[fr]=lire le manuel d'utilisation de Singular @PACKAGE_VERSION@
-Comment[ru]=
Type=Link
-URL=file://@DOC_DIR@/html/index.htm
-Icon=@DATA_DIR@/icons/Singular.png
+URL=file:///usr/share/doc/Singular-doc/html/index.htm
+Icon=Singular

View File

@ -1,328 +0,0 @@
diff -up Singular-3-1-7/doc/Makefile.in.destdir Singular-3-1-7/doc/Makefile.in
--- Singular-3-1-7/doc/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/doc/Makefile.in 2016-02-15 20:50:21.520456080 -0700
@@ -68,7 +68,7 @@ EX_SUBDIR = ./examples
CHKSUM_DB = ${DOC_SUBDIR}/chksum
DOC2TEX_EXAMPLE_EXCLUSIONS = @DOC2TEX_EXAMPLE_EXCLUSIONS@
DOC2TEX = ${PERL} ./doc2tex.pl -docdir ${DOC_SUBDIR} \
- -Singular ${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
+ -Singular $(DESTDIR)${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
-exdir ${EX_SUBDIR} ${DOC2TEX_EXAMPLE_EXCLUSIONS}
TAG =
PL2DOC = ${PERL} ./pl2doc.pl ${TAG} -db ${CHKSUM_DB}
diff -up Singular-3-1-7/factory/GNUmakefile.in.destdir Singular-3-1-7/factory/GNUmakefile.in
--- Singular-3-1-7/factory/GNUmakefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/factory/GNUmakefile.in 2016-02-15 20:53:44.653068777 -0700
@@ -535,44 +535,44 @@ installtest: test_install
install install-libsingular: $(installtargets) cf_gmp.h
install_all: install libsingcf_p.a
- -$(INSTALL_DATA) libsingcf_p.a $(libdir)/libsingcf_p.a
+ -$(INSTALL_DATA) libsingcf_p.a $(DESTDIR)$(libdir)/libsingcf_p.a
install-nolns: install
installcf: cf
- $(MKINSTALLDIRS) $(libdir)
- $(MKINSTALLDIRS) $(includedir)
- $(MKINSTALLDIRS) $(includedir)/factory
- $(INSTALL_DATA) $(libfactory) $(libdir)/$(libfactory)
- -$(INSTALL_DATA) libsingcf_g.a $(libdir)/libsingcf_g.a
- -$(INSTALL_DATA) libsingcf_p.a $(libdir)/libsingcf_p.a
- $(INSTALL_DATA) factory.h $(includedir)/factory/factory.h
- $(INSTALL_DATA) cf_gmp.h $(includedir)/factory/cf_gmp.h
- $(INSTALL_DATA) factoryconf.h $(includedir)/factory/factoryconf.h
+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)/factory
+ $(INSTALL_DATA) $(libfactory) $(DESTDIR)$(libdir)/$(libfactory)
+ -$(INSTALL_DATA) libsingcf_g.a $(DESTDIR)$(libdir)/libsingcf_g.a
+ -$(INSTALL_DATA) libsingcf_p.a $(DESTDIR)$(libdir)/libsingcf_p.a
+ $(INSTALL_DATA) factory.h $(DESTDIR)$(includedir)/factory/factory.h
+ $(INSTALL_DATA) cf_gmp.h $(DESTDIR)$(includedir)/factory/cf_gmp.h
+ $(INSTALL_DATA) factoryconf.h $(DESTDIR)$(includedir)/factory/factoryconf.h
for file in $(templateincl) ${templatesrc}; do \
- $(INSTALL_DATA) $(srcdir)/templates/$$file $(includedir)/factory/templates/$$file; \
+ $(INSTALL_DATA) $(srcdir)/templates/$$file $(DESTDIR)$(includedir)/factory/templates/$$file; \
done
# we run `ranlib' another time for SUN machines
- $(RANLIB) $(libdir)/$(libfactory)
+ $(RANLIB) $(DESTDIR)$(libdir)/$(libfactory)
installmem: mem
- $(MKINSTALLDIRS) $(libdir)
- $(INSTALL_DATA) libcfmem.a $(libdir)/libcfmem.a
+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) libcfmem.a $(DESTDIR)$(libdir)/libcfmem.a
# once again: another run for SUN
- $(RANLIB) $(libdir)/libcfmem.a
+ $(RANLIB) $(DESTDIR)$(libdir)/libcfmem.a
# to a pity, this cannot be done automatically ...
installgftables:
@echo "Copying GF(q) tables ..."
@if test -d gftables; then \
- $(MKINSTALLDIRS) $(gftabledir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(gftabledir); \
for file in gftables/gftable.*.*; do \
- $(INSTALL_DATA) $$file $(gftabledir); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(gftabledir); \
done \
elif test -d "$(srcdir)"/gftables; then \
- $(MKINSTALLDIRS) $(gftabledir); \
+ $(MKINSTALLDIRS) $(DESTDIR)$(gftabledir); \
for file in "$(srcdir)"/gftables/gftable.*.*; do \
- $(INSTALL_DATA) $$file $(gftabledir); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(gftabledir); \
done \
else \
echo "Run 'make gftables' before installing them"; \
diff -up Singular-3-1-7/IntegerProgramming/Makefile.in.destdir Singular-3-1-7/IntegerProgramming/Makefile.in
--- Singular-3-1-7/IntegerProgramming/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/IntegerProgramming/Makefile.in 2016-02-15 20:50:21.527455516 -0700
@@ -63,12 +63,12 @@ install-nolns: install
install_all: install
install install-libsingular: $(MAIN1) $(MAIN2) $(MAIN3) $(MAIN4) $(LLL)
- ${MKINSTALLDIRS} ${bindir}
- ${INSTALL_PROGRAM} $(MAIN1) ${bindir}
- ${INSTALL_PROGRAM} $(MAIN2) ${bindir}
- ${INSTALL_PROGRAM} $(MAIN3) ${bindir}
- ${INSTALL_PROGRAM} $(MAIN4) ${bindir}
- ${INSTALL_PROGRAM} $(LLL) ${bindir}
+ ${MKINSTALLDIRS} $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} $(MAIN1) $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} $(MAIN2) $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} $(MAIN3) $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} $(MAIN4) $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} $(LLL) $(DESTDIR)${bindir}
install-bindist: $(MAIN1) $(MAIN2) $(MAIN3) $(MAIN4)
${MKINSTALLDIRS} ${install_bindir}
diff -up Singular-3-1-7/kernel/Makefile.in.destdir Singular-3-1-7/kernel/Makefile.in
--- Singular-3-1-7/kernel/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/kernel/Makefile.in 2016-02-15 20:50:21.528455435 -0700
@@ -272,9 +272,9 @@ p_Procs_%.so: p_Procs_Lib_%.dl_o
install-nolns: install
install-libsingular: install
- -${MKINSTALLDIRS} ${includedir}
- -${MKINSTALLDIRS} ${includedir}/singular
- -for file in *.h kInline.cc; do sed -e "s:<kernel/:<singular/:"< $$file | sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" > ${includedir}/singular/$$file; done
+ -${MKINSTALLDIRS} $(DESTDIR)${includedir}
+ -${MKINSTALLDIRS} $(DESTDIR)${includedir}/singular
+ -for file in *.h kInline.cc; do sed -e "s:<kernel/:<singular/:"< $$file | sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" > $(DESTDIR)${includedir}/singular/$$file; done
install: all installbin
@@ -290,12 +290,12 @@ endif
installbin: ${DL_LIBS} ${DL_LIBSG} libkernel.a libkernel_g.a
- ${MKINSTALLDIRS} ${bindir}
+ ${MKINSTALLDIRS} $(DESTDIR)${bindir}
- ranlib libkernel.a
- ranlib libkernel_g.a
ifeq (,${DL_LIBS})
else
- -${INSTALL_PROGRAM} ${DL_LIBS} ${bindir}
+ -${INSTALL_PROGRAM} ${DL_LIBS} $(DESTDIR)${bindir}
ifeq (,${DL_LIBSG})
else
-for file in ${DL_LIBS} ${DL_LIBSG}; do ${INSTALL_PROGRAM} $$file ../Singular; done
@@ -304,10 +304,10 @@ endif
install-bindist: ${DL_LIBS} libkernel.a
- ${MKINSTALLDIRS} ${bindir}
+ ${MKINSTALLDIRS} $(DESTDIR)${bindir}
ifeq (,${DL_LIBS})
else
- -${INSTALL_PROGRAM} ${DL_LIBS} ${bindir}
+ -${INSTALL_PROGRAM} ${DL_LIBS} $(DESTDIR)${bindir}
endif
##
diff -up Singular-3-1-7/libfac/Makefile.in.destdir Singular-3-1-7/libfac/Makefile.in
--- Singular-3-1-7/libfac/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/libfac/Makefile.in 2016-02-15 20:50:21.528455435 -0700
@@ -146,17 +146,17 @@ libsingfac_p.a: $(PROFOBJ)
install-nolns: install
install install-libsingular: all
- ${MKINSTALLDIRS} ${includedir}
- ${MKINSTALLDIRS} ${libdir}
- ${INSTALL_DATA} ${LIBFACINCLUDE} ${includedir}
- ${INSTALL_DATA} ${TARGETNAME}.a ${libdir}
- -${INSTALL_DATA} libsingfac_g.a ${libdir}
- $(RANLIB) ${libdir}/${TARGETNAME}.a
- -$(RANLIB) ${libdir}/libsingfac_g.a
+ ${MKINSTALLDIRS} $(DESTDIR)${includedir}
+ ${MKINSTALLDIRS} $(DESTDIR)${libdir}
+ ${INSTALL_DATA} ${LIBFACINCLUDE} $(DESTDIR)${includedir}
+ ${INSTALL_DATA} ${TARGETNAME}.a $(DESTDIR)${libdir}
+ -${INSTALL_DATA} libsingfac_g.a $(DESTDIR)${libdir}
+ $(RANLIB) $(DESTDIR)${libdir}/${TARGETNAME}.a
+ -$(RANLIB) $(DESTDIR)${libdir}/libsingfac_g.a
install_all: install libsingfac_p.a
- -${INSTALL_DATA} libsingfac_p.a ${libdir}
- -$(RANLIB) ${libdir}/libsingfac_p.a
+ -${INSTALL_DATA} libsingfac_p.a $(DESTDIR)${libdir}
+ -$(RANLIB) $(DESTDIR)${libdir}/libsingfac_p.a
uninstall:
$(RM) ${includedir}/${LIBFACINCLUDE}
diff -up Singular-3-1-7/omalloc/Makefile.in.destdir Singular-3-1-7/omalloc/Makefile.in
--- Singular-3-1-7/omalloc/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/omalloc/Makefile.in 2016-02-15 20:50:21.529455354 -0700
@@ -181,35 +181,35 @@ configure: configure.in
install-nolns: install
install-libsingular:
- $(MKINSTALLDIRS) $(includedir)/singular
- $(INSTALL) omalloc.h $(includedir)/singular
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)/singular
+ $(INSTALL) omalloc.h $(DESTDIR)$(includedir)/singular
install install-libsingular: all
- $(MKINSTALLDIRS) $(libdir)
- $(MKINSTALLDIRS) $(includedir)
- $(INSTALL_DATA) libomalloc.a $(libdir)
- $(RANLIB) $(libdir)/libomalloc.a
- $(INSTALL_DATA) libomalloc_ndebug.a $(libdir)
- $(RANLIB) $(libdir)/libomalloc_ndebug.a
- $(INSTALL_DATA) omalloc.o $(libdir)
- $(INSTALL_DATA) omalloc_debug.o $(libdir)
- $(INSTALL_DATA) omalloc.h $(includedir)
- $(INSTALL_DATA) omlimits.h $(includedir)
- $(INSTALL_DATA) mylimits.h $(includedir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) libomalloc.a $(DESTDIR)$(libdir)
+ $(RANLIB) $(DESTDIR)$(libdir)/libomalloc.a
+ $(INSTALL_DATA) libomalloc_ndebug.a $(DESTDIR)$(libdir)
+ $(RANLIB) $(DESTDIR)$(libdir)/libomalloc_ndebug.a
+ $(INSTALL_DATA) omalloc.o $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) omalloc_debug.o $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) omalloc.h $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) omlimits.h $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) mylimits.h $(DESTDIR)$(includedir)
install_all: install libomalloc_p.a
- $(INSTALL_DATA) libomalloc_p.a $(libdir)
- $(RANLIB) $(libdir)/libomalloc_p.a
+ $(INSTALL_DATA) libomalloc_p.a $(DESTDIR)$(libdir)
+ $(RANLIB) $(DESTDIR)$(libdir)/libomalloc_p.a
install_min: libomalloc_ndebug.a omalloc.o
- $(MKINSTALLDIRS) $(libdir)
- $(MKINSTALLDIRS) $(includedir)
- $(INSTALL_DATA) libomalloc_ndebug.a $(libdir)
- $(RANLIB) $(libdir)/libomalloc_ndebug.a
- $(INSTALL_DATA) omalloc.o $(libdir)
- $(INSTALL_DATA) omalloc.h $(includedir)
- $(INSTALL_DATA) omlimits.h $(includedir)
- $(INSTALL_DATA) mylimits.h $(includedir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) libomalloc_ndebug.a $(DESTDIR)$(libdir)
+ $(RANLIB) $(DESTDIR)$(libdir)/libomalloc_ndebug.a
+ $(INSTALL_DATA) omalloc.o $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) omalloc.h $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) omlimits.h $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) mylimits.h $(DESTDIR)$(includedir)
uninstall:
rm -f $(includedir)/omalloc.h
diff -up Singular-3-1-7/Singular/Makefile.in.destdir Singular-3-1-7/Singular/Makefile.in
--- Singular-3-1-7/Singular/Makefile.in.destdir 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 20:58:01.359359527 -0700
@@ -565,58 +565,58 @@ install_all: install
install-nolns: all installbin-nolns installslib-nolns
installbin: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
- ${MKINSTALLDIRS} ${bindir} ${bindir_mod}
- ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
+ ${MKINSTALLDIRS} $(DESTDIR)${bindir} $(DESTDIR)${bindir_mod}
+ ${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
-for file in *.so; do \
- ${INSTALL_PROGRAM} $$file ${bindir}; \
+ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
done
-for file in ${pattern_mod}; do \
- ${INSTALL_PROGRAM} $$file ${bindir_mod}; \
+ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir_mod}; \
done
- ${INSTALL_PROGRAM} singularsurf ${RUN_SINGULARS} ${bindir}
- ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
- ${INSTALL_PROGRAM} ESingular TSingular ${bindir}
- ${INSTALL_PROGRAM} surfex ${bindir}
- chmod a+x ${SINGULAR}
- rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
- cd ${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};
+ ${INSTALL_PROGRAM} singularsurf ${RUN_SINGULARS} $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} ESingular TSingular $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} surfex $(DESTDIR)${bindir}
+ chmod a+x $(DESTDIR)${SINGULAR}
+ rm -f $(DESTDIR)${bindir}/${SING_EXEC}${EXEC_EXT}
+ cd $(DESTDIR)${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};
installbin-nolns: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
- ${MKINSTALLDIRS} ${bindir} ${bindir_mod}
- ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
+ ${MKINSTALLDIRS} $(DESTDIR)${bindir} $(DESTDIR)${bindir_mod}
+ ${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
-for file in *.so; do \
- ${INSTALL_PROGRAM} $$file ${bindir}; \
+ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
done
-for file in ${pattern_mod}; do \
- ${INSTALL_PROGRAM} $$file ${bindir_mod}; \
+ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir_mod}; \
done
- ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
- ${INSTALL_PROGRAM} ESingular TSingular ${DL_LIBS} ${bindir}
- chmod a+x ${SINGULAR}
- rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
- ${INSTALL_PROGRAM} ${SINGULAR} ${bindir}/Singular${EXEC_EXT};
+ ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} $(DESTDIR)${bindir}
+ ${INSTALL_PROGRAM} ESingular TSingular ${DL_LIBS} $(DESTDIR)${bindir}
+ chmod a+x $(DESTDIR)${SINGULAR}
+ rm -f $(DESTDIR)${bindir}/${SING_EXEC}${EXEC_EXT}
+ ${INSTALL_PROGRAM} ${SINGULAR} $(DESTDIR)${bindir}/Singular${EXEC_EXT};
installslib: LIB
- test -r ${slibdir} || ${LN_S} `pwd`/LIB ${slibdir}
+ #test -r ${slibdir} || ${LN_S} `pwd`/LIB ${slibdir}
installslib-nolns: LIB
- ${MKINSTALLDIRS} ${slibdir}
+ ${MKINSTALLDIRS} $(DESTDIR)${slibdir}
for file in `pwd`/LIB/*.lib; do \
- ${INSTALL_DATA} $$file ${slibdir}; \
+ ${INSTALL_DATA} $$file $(DESTDIR)${slibdir}; \
done
- ${MKINSTALLDIRS} ${slibdir}/gftables
+ ${MKINSTALLDIRS} $(DESTDIR)${slibdir}/gftables
for file in `pwd`/LIB/gftables/*; do \
- ${INSTALL_DATA} $$file ${slibdir}/gftables/; \
+ ${INSTALL_DATA} $$file $(DESTDIR)${slibdir}/gftables/; \
done
install-libsingular: libsingular installslib-nolns
- ${MKINSTALLDIRS} ${includedir}/singular
+ ${MKINSTALLDIRS} $(DESTDIR)${includedir}/singular
for file in *.$(SO_SUFFIX); do \
- ${INSTALL_PROGRAM} $$file ${libdir}; \
+ ${INSTALL_PROGRAM} $$file $(DESTDIR)${libdir}; \
done
- ${INSTALL_PROGRAM} libsingular.h ${includedir}
+ ${INSTALL_PROGRAM} libsingular.h $(DESTDIR)${includedir}
for file in sing_dbm.h subexpr.h tok.h grammar.h ipid.h lists.h ipshell.h attrib.h silink.h table.h; do \
- sed -e "s:<kernel/:<singular/:" < $$file |sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" >${includedir}/singular/$$file ;\
+ sed -e "s:<kernel/:<singular/:" < $$file |sed -e "s:<Singular/:<singular/:"|sed -e "s:<omalloc/:<:"|sed -e "s:<factory/:<:" >$(DESTDIR)${includedir}/singular/$$file ;\
done
uninstall: uninstallbin

View File

@ -1,104 +0,0 @@
diff -up Singular-3-1-7/doc/Makefile.in.orig Singular-3-1-7/doc/Makefile.in
--- Singular-3-1-7/doc/Makefile.in.orig 2016-02-15 20:50:21.520456080 -0700
+++ Singular-3-1-7/doc/Makefile.in 2016-02-15 21:20:09.517213137 -0700
@@ -61,14 +61,14 @@ SINGULAR_LIB_DIR= ../Singular/LIB
ifeq ($(SINGUNAME),"ix86-Win")
LIBPARSE = ${bindir}/libparse.exe
else
-LIBPARSE = ${bindir}/libparse
+LIBPARSE = $(DESTDIR)${bindir}/libparse
endif
DOC_SUBDIR = ./d2t_singular
EX_SUBDIR = ./examples
CHKSUM_DB = ${DOC_SUBDIR}/chksum
DOC2TEX_EXAMPLE_EXCLUSIONS = @DOC2TEX_EXAMPLE_EXCLUSIONS@
DOC2TEX = ${PERL} ./doc2tex.pl -docdir ${DOC_SUBDIR} \
- -Singular $(DESTDIR)${SINGULAR} -verbose ${VERBOSE} -make ${MAKE} \
+ -Singular /bin/true -verbose ${VERBOSE} -make ${MAKE} \
-exdir ${EX_SUBDIR} ${DOC2TEX_EXAMPLE_EXCLUSIONS}
TAG =
PL2DOC = ${PERL} ./pl2doc.pl ${TAG} -db ${CHKSUM_DB}
diff -up Singular-3-1-7/emacs/Makefile.in.orig Singular-3-1-7/emacs/Makefile.in
--- Singular-3-1-7/emacs/Makefile.in.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/emacs/Makefile.in 2016-02-15 21:25:02.126618087 -0700
@@ -6,11 +6,12 @@
SHELL=/bin/sh
prefix = @prefix@
-docdir = ${prefix}/doc
-examplesdir = ${prefix}/examples
+libdir = @libdir@
+datadir = @datadir@
SINGULAR = @SINGULAR@
-singulardir = ${prefix}/Singular
-emacsdir = ${install_prefix}/emacs
+singulardir = ${libdir}/Singular
+examplesdir = ${singulardir}/examples
+emacsdir = ${datadir}/emacs/site-lisp/singular
PERL = @PERL@
@@ -18,42 +19,42 @@ INSTALL = ../install-sh -c
INSTALL_DATA = ${INSTALL} -m 644
MKINSTALLDIRS = ../mkinstalldirs
-SINGULAR_HLP = ${docdir}/singular.hlp
+SINGULAR_HLP = ${singulardir}/info/singular.hlp
all install: cmd-cmpl.el hlp-cmpl.el lib-cmpl.el ex-cmpl.el
install_all: install
-cmd-cmpl.el: ${SINGULAR} cmpl.pl
- ${PERL} cmpl.pl -Singular ${SINGULAR} -cmpl cmd > cmd-cmpl.el
+cmd-cmpl.el: cmpl.pl
+ ${PERL} cmpl.pl -Singular $(DESTDIR)${SINGULAR} -cmpl cmd > cmd-cmpl.el
-hlp-cmpl.el: ${SINGULAR_HLP} cmpl.pl
- ${PERL} cmpl.pl -hlp ${SINGULAR_HLP} -cmpl hlp > hlp-cmpl.el
+hlp-cmpl.el: cmpl.pl
+ ${PERL} cmpl.pl -hlp $(DESTDIR)${SINGULAR_HLP} -cmpl hlp > hlp-cmpl.el
-ex-cmpl.el: cmpl.pl ${examplesdir}
- ${PERL} cmpl.pl -cmpl ex -ex_dir ${examplesdir} > ex-cmpl.el
+ex-cmpl.el: cmpl.pl
+ ${PERL} cmpl.pl -cmpl ex -ex_dir $(DESTDIR)${examplesdir} > ex-cmpl.el
-lib-cmpl-old.el: ${prefix}/Singular/Makefile cmpl.pl
- ${MAKE} --no-print-directory -s -f ${prefix}/Singular/Makefile echoLIBS > lib-temp
+lib-cmpl-old.el: cmpl.pl
+ ${MAKE} --no-print-directory -s -f ../Singular/Makefile echoLIBS > lib-temp
cat lib-temp | ${PERL} cmpl.pl -cmpl lib > lib-cmpl-old.el
rm lib-temp
-lib-cmpl.el: ${prefix}/Singular/Makefile lib.pl
- (cd ${prefix}/Singular;${MAKE} --no-print-directory -s -f Makefile echoLIBS) > lib-temp
- ${PERL} lib.pl -s ${singulardir} `cat lib-temp` > lib-cmpl.el
+lib-cmpl.el: lib.pl
+ (cd ../Singular;${MAKE} --no-print-directory -s -f Makefile echoLIBS) > lib-temp
+ ${PERL} lib.pl -s $(DESTDIR)${singulardir} `cat lib-temp` > lib-cmpl.el
clean mostlyclean distclean:
rm -f cmd-cmpl.el hlp-cmpl.el lib-cmpl.el ex-cmpl.el
install-sharedist: all
- ${MKINSTALLDIRS} ${emacsdir}
- ${INSTALL_DATA} cmd-cmpl.el ${emacsdir}
- ${INSTALL_DATA} lib-cmpl.el ${emacsdir}
- ${INSTALL_DATA} hlp-cmpl.el ${emacsdir}
- ${INSTALL_DATA} ex-cmpl.el ${emacsdir}
- ${INSTALL_DATA} singular.el ${emacsdir}
- ${INSTALL_DATA} .emacs-singular ${emacsdir}
- ${INSTALL_DATA} .emacs-general ${emacsdir}
+ ${MKINSTALLDIRS} $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} cmd-cmpl.el $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} lib-cmpl.el $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} hlp-cmpl.el $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} ex-cmpl.el $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} singular.el $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} .emacs-singular $(DESTDIR)${emacsdir}
+ ${INSTALL_DATA} .emacs-general $(DESTDIR)${emacsdir}
depend:
@echo "No make depend available!"
\ No newline at end of file

22
Singular-format.patch Normal file
View File

@ -0,0 +1,22 @@
--- singular-4.1.0/kernel/linear_algebra/CacheImplementation.h.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/kernel/linear_algebra/CacheImplementation.h 2017-02-28 08:35:19.070578172 -0700
@@ -354,7 +354,7 @@ bool Cache<KeyClass, ValueClass>::put (c
template<class KeyClass, class ValueClass>
std::string Cache<KeyClass, ValueClass>::toString() const
{
- char h[10];
+ char h[12];
std::string s = "Cache:";
s += "\n entries: ";
sprintf(h, "%d", getNumberOfEntries()); s += h;
--- singular-4.1.0/Singular/extra.cc.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/Singular/extra.cc 2017-02-28 08:36:17.566405458 -0700
@@ -2499,7 +2499,7 @@ static BOOLEAN jjEXTENDED_SYSTEM(leftv r
if(strcmp(sys_cmd,"changeRing")==0)
{
int varN = currRing->N;
- char h[10];
+ char h[12];
for (int i = 1; i <= varN; i++)
{
omFree(currRing->names[i - 1]);

View File

@ -1,36 +0,0 @@
diff -up Singular-3-1-7/kernel/Makefile.in.orig Singular-3-1-7/kernel/Makefile.in
--- Singular-3-1-7/kernel/Makefile.in.orig 2016-02-15 20:50:21.528455435 -0700
+++ Singular-3-1-7/kernel/Makefile.in 2016-02-15 21:06:08.429066185 -0700
@@ -48,7 +48,7 @@ PIPE = @PIPE@
CFLAGS = @CFLAGS@ ${PIPE}
CXXFLAGS = @CXXFLAGS@ ${PIPE}
CXXTEMPLFLAGS = @CXXTEMPLFLAGS@
-CPPFLAGS = -I${srcdir} -I.. -I@prefix@ @CPPFLAGS@
+CPPFLAGS = -I${srcdir} -I.. -I../omalloc -I${srcdir}/../factory -I@prefix@ @CPPFLAGS@
DEFS = -DNDEBUG -DOM_NDEBUG -D@SING_UNAME@ @DEFS@
LDFLAGS = @LDFLAGS@
LD_DYN_FLAGS = @LD_DYN_FLAGS@
diff -up Singular-3-1-7/libfac/Makefile.in.orig Singular-3-1-7/libfac/Makefile.in
--- Singular-3-1-7/libfac/Makefile.in.orig 2016-02-15 20:50:21.528455435 -0700
+++ Singular-3-1-7/libfac/Makefile.in 2016-02-15 21:07:06.131411169 -0700
@@ -36,7 +36,7 @@ MKINSTALLDIRS = ./mkinstalldirs
##
CXXFLAGS = @CXXFLAGS@
CXXTEMPLFLAGS = @CXXTEMPLFLAGS@
-CPPFLAGS = -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I.. -I${prefix} -I${prefix}/include @CPPFLAGS@
+CPPFLAGS = -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I${srcdir}/.. -I${srcdir}/../factory -I${prefix} -I${prefix}/include @CPPFLAGS@
DEFS = @DEFS@
LDFLAGS = @LDFLAGS@
LIBS = -lfac -lcf -lcfmem -lgmp @LIBS@
diff -up Singular-3-1-7/Singular/Makefile.in.orig Singular-3-1-7/Singular/Makefile.in
--- Singular-3-1-7/Singular/Makefile.in.orig 2016-02-15 20:58:01.359359527 -0700
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 21:07:59.903073250 -0700
@@ -87,7 +87,7 @@ CFLAGS = @CFLAGS@ ${PIPE}
CXXFLAGS = @CXXFLAGS@ -I.. -I@prefix@ ${PIPE}
CXXTEMPLFLAGS = @CXXTEMPLFLAGS@ -I.. -I@prefix@
ifneq ($(SINGUNAME),ix86-Win)
-CPPFLAGS = -I${srcdir} -I.. -I@prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@ @FLINT_CFLAGS@
+CPPFLAGS = -I${srcdir} -I${srcdir}/.. -I${srcdir}/../omalloc -I@prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@ @FLINT_CFLAGS@
else
## Dirs after @CPPFLAGS@ are for PySingular
CPPFLAGS = -I${srcdir} -I.. -I@prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@ @FLINT_CFLAGS@

View File

@ -1,52 +1,90 @@
diff -up Singular-3-1-7/Singular/Makefile.in.orig Singular-3-1-7/Singular/Makefile.in
--- Singular-3-1-7/Singular/Makefile.in.orig 2016-02-15 21:07:59.903073250 -0700
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 21:16:53.916992781 -0700
@@ -140,7 +140,7 @@ HAVE_MPSR = @HAVE_MPSR@
#
# Handle libSINGULAR stuff
#
-LIBSINGULAR_LIBS =-lsingfac -lsingcf -lntl -lreadline @FLINT_LIBS@ -lgmp -lomalloc
+LIBSINGULAR_LIBS =-lsingfac -lsingcf -lntl -lreadline @FLINT_LIBS@ -lgmp -lomalloc -lpthread -ldl
--- singular-4.1.0/configure.ac.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/configure.ac 2017-02-27 14:49:09.415812935 -0700
@@ -253,4 +253,10 @@ AC_CONFIG_FILES([redhat/Makefile])
AC_CONFIG_FILES([redhat/singular.spec])
AC_CONFIG_FILES([desktop/Makefile desktop/Singular.desktop desktop/Singular-manual.desktop])
SO_SUFFIX = so
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT
--- singular-4.1.0/factory/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/factory/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -407,5 +407,11 @@ AC_DEFINE_UNQUOTED([FACTORYCONFIGURATION
@@ -388,13 +388,13 @@ Singular${S_EXT}: mod2.h Makefile versio
${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} \
-o Singular${S_EXT} \
tesths.cc iparith.o mpsr_Tok.o claptmpl.o\
- ${OBJS} ${LDFLAGS} ${LIBS} ../kernel/mmalloc.o
+ ${OBJS} ${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc -lkernel ${LIBS} ../kernel/mmalloc.o
libsingular: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc ${OBJS} \
iparith.o libparse.cc claptmpl.o mpsr_Tok.o $(DL_LIBS)
$(LIBSINGULAR_LD) ${SLDFLAGS} ${LIBSINGULAR_FLAGS} -o libsingular.${SO_SUFFIX} \
iparith.o mpsr_Tok.o claptmpl.o \
- ${OBJS} -lkernel -L../kernel -L../factory -L../libfac -L${libdir} ${LIBSINGULAR_LIBS}
+ ${OBJS} -L../kernel -L../factory -L../libfac -L../omalloc -lkernel -L${libdir} ${LIBSINGULAR_LIBS}
AC_CONFIG_FILES([Makefile include/factory/Makefile factory.pc]) # ftest/GNUmakefile
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT
libsingular.a: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc ${OBJS} \
iparith.o libparse.cc claptmpl.o mpsr_Tok.o
@@ -445,7 +445,7 @@ version.h: ${SOURCES} ${HEADERS} Makefil
echo "#define CXX \"" ${CXX} ${CXXFLAGS} ${DEFS} "\"" >>version.h
--- singular-4.1.0/gfanlib/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/gfanlib/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -57,4 +57,10 @@ AC_LANG_POP()
libparse: libparse_main.o utils.o
- ${CXX} ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -lomalloc
+ ${CXX} ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -L../omalloc -lomalloc
AC_CONFIG_FILES([Makefile])
## AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT
--- singular-4.1.0/gfanlib/Makefile.am.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/gfanlib/Makefile.am 2017-02-27 14:49:09.416812931 -0700
@@ -2,6 +2,7 @@ ACLOCAL_AMFLAGS = -I ../m4
libparse_main.o: libparse.cc
${CXX} ${CPPFLAGS} -c -o libparse_main.o libparse.cc -DSTANDALONE_PARSER
@@ -466,12 +466,12 @@ libparse.cc: libparse.l
ESingular: mod2.h feOpt.cc version.h emacs.cc \
feOptES.inc
${CXX} -O2 ${CPPFLAGS} ${DEFS} -DESINGULAR -DPROTO -o ESingular emacs.cc ../kernel/fegetopt.o \
- ${LDFLAGS} ${LIBS} ../kernel/mmalloc.o
+ ${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc ${LIBS} ../kernel/mmalloc.o
if HAVE_GFANLIB
libgfan_LTLIBRARIES=libgfan.la
+ libgfan_la_LIBADD=-lcddgmp -lgmp
endif
TSingular: mod2.h feOpt.cc version.h emacs.cc \
feOptTS.inc
${CXX} -O2 ${CPPFLAGS} ${DEFS} -DTSINGULAR -DPROTO -o TSingular emacs.cc ../kernel/fegetopt.o \
- ${LDFLAGS} ${LIBS} ../kernel/mmalloc.o
+ ${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc ${LIBS} ../kernel/mmalloc.o
libgfandir = $(libdir)
--- singular-4.1.0/libpolys/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/libpolys/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -149,4 +149,10 @@ AC_CONFIG_FILES([coeffs/Makefile])
AC_CONFIG_FILES([polys/Makefile])
AC_CONFIG_FILES([tests/Makefile])
AC_CONFIG_FILES([libpolys-config libpolys.pc])
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT
--- singular-4.1.0/omalloc/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/omalloc/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -636,5 +636,11 @@ dnl llllllllllllllllllllllllllllllllllll
dnl wrap it up
dnl
AC_CONFIG_FILES([Makefile omalloc.pc])
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT
feOpt.o: feOpt.inc feOptES.inc feOptTS.inc
extra.o: feOpt.inc
--- singular-4.1.0/resources/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
+++ singular-4.1.0/resources/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -73,4 +73,10 @@ AX_NORMALIZE_PATH([config_datadir],['/']
AC_DEFINE_UNQUOTED([DATA_DIR],"$config_datadir",[datadir])
AC_CONFIG_FILES([singular_resources.pc Makefile])
+AC_CONFIG_COMMANDS([norpath], [
+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
+])
AC_OUTPUT

View File

@ -1,85 +1,11 @@
diff -up Singular-3-1-7/factory/NTLconvert.cc.orig Singular-3-1-7/factory/NTLconvert.cc
--- Singular-3-1-7/factory/NTLconvert.cc.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/factory/NTLconvert.cc 2016-02-15 22:02:11.477940005 -0700
@@ -55,6 +55,63 @@
NTL_CLIENT
#endif
--- singular-4.1.0/factory/ftmpl_inst.cc.orig 2016-10-14 14:00:05.000000000 -0600
+++ singular-4.1.0/factory/ftmpl_inst.cc 2017-01-16 20:23:04.488346521 -0700
@@ -74,7 +74,7 @@ template List<Variable> Difference ( con
// NTL 6
#ifdef HAVE_NTL
#include<NTL/version.h>
-#if NTL_MAJOR_VERSION == 6
+#if NTL_MAJOR_VERSION >= 6
+// Needed explicit template instantiations for NTL 8.x.x
+template mat_zz_p::Mat(const mat_zz_p&);
+template mat_zz_pE::Mat(const mat_zz_pE&);
+
+template class Vec<Pair<GF2X, long> >;
+template class Vec<Pair<GF2EX, long> >;
+template class Vec<Pair<zz_pX, long> >;
+template class Vec<Pair<zz_pEX, long> >;
+template class Vec<Pair<ZZ_pX, long> >;
+template class Vec<Pair<ZZ_pEX, long> >;
+template class Vec<Pair<ZZX, long> >;
+template class Vec<Vec<zz_p> >;
+template class Vec<Vec<zz_pE> >;
+template class Vec<zz_p>;
+template class Vec<zz_pEX>;
+
+template long operator==<zz_p>(const vec_zz_p&, const vec_zz_p&);
+
+template void BlockConstruct<Pair<GF2X, long> >(Pair<GF2X, long>* p, long n);
+template void BlockConstruct<Pair<GF2EX, long> >(Pair<GF2EX, long>* p, long n);
+template void BlockConstruct<Pair<zz_pX, long> >(Pair<zz_pX, long>* p, long n);
+template void BlockConstruct<Pair<zz_pEX, long> >(Pair<zz_pEX, long>* p, long n);
+template void BlockConstruct<Pair<ZZ_pX, long> >(Pair<ZZ_pX, long>* p, long n);
+template void BlockConstruct<Pair<ZZ_pEX, long> >(Pair<ZZ_pEX, long>* p, long n);
+template void BlockConstruct<Pair<ZZX, long> >(Pair<ZZX, long>* p, long n);
+template void BlockConstruct<Vec<zz_p> >(Vec<zz_p>* p, long n);
+template void BlockConstruct<Vec<zz_pE> >(Vec<zz_pE>* p, long n);
+template void BlockConstruct<zz_pEX>(zz_pEX* p, long n);
+
+template void BlockConstructFromVec<Pair<GF2X, long> >(Pair<GF2X, long>* p, long n, const Pair<GF2X, long>* q);
+template void BlockConstructFromVec<Pair<GF2EX, long> >(Pair<GF2EX, long>* p, long n, const Pair<GF2EX, long>* q);
+template void BlockConstructFromVec<Pair<zz_pX, long> >(Pair<zz_pX, long>* p, long n, const Pair<zz_pX, long>* q);
+template void BlockConstructFromVec<Pair<zz_pEX, long> >(Pair<zz_pEX, long>* p, long n, const Pair<zz_pEX, long>* q);
+template void BlockConstructFromVec<Pair<ZZ_pX, long> >(Pair<ZZ_pX, long>* p, long n, const Pair<ZZ_pX, long>* q);
+template void BlockConstructFromVec<Pair<ZZ_pEX, long> >(Pair<ZZ_pEX, long>* p, long n, const Pair<ZZ_pEX, long>* q);
+template void BlockConstructFromVec<Pair<ZZX, long> >(Pair<ZZX, long>* p, long n, const Pair<ZZX, long>* q);
+template void BlockConstructFromVec<Vec<zz_p> >(Vec<zz_p>* p, long n, const Vec<zz_p>* q);
+template void BlockConstructFromVec<Vec<zz_pE> >(Vec<zz_pE>* p, long n, const Vec<zz_pE>* q);
+template void BlockConstructFromVec<zz_p>(zz_p* p, long n, const zz_p* q);
+template void BlockConstructFromVec<zz_pE>(zz_pE* p, long n, const zz_pE* q);
+template void BlockConstructFromVec<zz_pEX>(zz_pEX* p, long n, const zz_pEX* q);
+
+template void BlockConstructFromObj<Pair<GF2X, long> >(Pair<GF2X, long>* p, long n, const Pair<GF2X, long>& q);
+template void BlockConstructFromObj<Pair<GF2EX, long> >(Pair<GF2EX, long>* p, long n, const Pair<GF2EX, long>& q);
+template void BlockConstructFromObj<Pair<zz_pX, long> >(Pair<zz_pX, long>* p, long n, const Pair<zz_pX, long>& q);
+template void BlockConstructFromObj<Pair<zz_pEX, long> >(Pair<zz_pEX, long>* p, long n, const Pair<zz_pEX, long>& q);
+template void BlockConstructFromObj<Pair<ZZ_pX, long> >(Pair<ZZ_pX, long>* p, long n, const Pair<ZZ_pX, long>& q);
+template void BlockConstructFromObj<Pair<ZZ_pEX, long> >(Pair<ZZ_pEX, long>* p, long n, const Pair<ZZ_pEX, long>& q);
+template void BlockConstructFromObj<Pair<ZZX, long> >(Pair<ZZX, long>* p, long n, const Pair<ZZX, long>& q);
+template void BlockConstructFromObj<Vec<zz_p> >(Vec<zz_p>* p, long n, const Vec<zz_p>& q);
+template void BlockConstructFromObj<Vec<zz_pE> >(Vec<zz_pE>* p, long n, const Vec<zz_pE>& q);
+template void BlockConstructFromObj<zz_pEX>(zz_pEX* p, long n, const zz_pEX& q);
+
+template SmartPtr<GF2EInfoT> MakeSmart<GF2EInfoT, GF2X>(const GF2X &ptr);
+template SmartPtr<zz_pEInfoT> MakeSmart<zz_pEInfoT, zz_pX>(const zz_pX &ptr);
+template SmartPtr<ZZ_pInfoT> MakeSmart<ZZ_pInfoT, ZZ>(const ZZ &ptr);
+
////////////////////////////////////////////////////////////////////////////////
// NAME: convertFacCF2NTLZZpX //
// //
@@ -511,7 +568,7 @@
}
else
{
- long sizeofrep= ((long *) a.rep) [1];
+ long sizeofrep= ((long *) &a) [1];
bool lessZero= false;
if (sizeofrep < 0)
{
@@ -529,7 +586,7 @@
cf_stringtemp_l= sizeofrep*sizeof(mp_limb_t)*2;
cf_stringtemp= (unsigned char*) Alloc (cf_stringtemp_l);
}
- int cc= mpn_get_str (cf_stringtemp, 16, (mp_limb_t *) (((long *) (a.rep)) + 2), sizeofrep);
+ int cc= mpn_get_str (cf_stringtemp, 16, (mp_limb_t *) (((long *) &a) + 2), sizeofrep);
char* cf_stringtemp2;
if (lessZero)
#include<NTL/tools.h>
#include<NTL/lzz_pE.h>

11
Singular-parens.patch Normal file
View File

@ -0,0 +1,11 @@
--- singular-4.1.0/omalloc/omAllocDecl.h.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/omalloc/omAllocDecl.h 2017-02-28 08:43:20.475150099 -0700
@@ -233,7 +233,7 @@
#define omrealloc(addr,size) _omrealloc(addr, size)
#define omrealloc0(addr,size) _omrealloc0(addr, size)
-#define omfreeSize(addr,size) do {if (addr && size) omFreeSize(addr, size);} while (0)
+#define omfreeSize(addr,size) do {if ((addr) != NULL && (size) != 0) omFreeSize(addr, size);} while (0)
#define omfree(addr) do {if (addr) omFree(addr);} while (0)
#ifdef OM_ALIGNMENT_NEEDS_WORK

View File

@ -1,65 +0,0 @@
diff -up Singular-3-1-7/doc/doc2tex.pl.orig Singular-3-1-7/doc/doc2tex.pl
--- Singular-3-1-7/doc/doc2tex.pl.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/doc/doc2tex.pl 2016-02-18 21:23:21.197141422 -0700
@@ -479,7 +479,7 @@ sub HandleRef
$line++;
last if (/^\@c\s*ref\s*$/);
- while (/\@ref{(.*?)}[;\.]/)
+ while (/\@ref\{(.*?)\}[;\.]/)
{
$refs{$1} = 1;
$_ = $';
diff -up Singular-3-1-7/doc/texi2html.orig Singular-3-1-7/doc/texi2html
--- Singular-3-1-7/doc/texi2html.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/doc/texi2html 2016-02-18 21:26:21.432652047 -0700
@@ -3063,7 +3063,7 @@ INPUT_LINE: while ($_ = &next_line) {
#############################################################
# value substitution before macro expansion, so that
# it works in macro arguments
- s/\@value{($VARRE)}/$value{$1}/eg;
+ s/\@value\{($VARRE)\}/$value{$1}/eg;
#############################################################
# macro substitution
@@ -3089,8 +3089,8 @@ INPUT_LINE: while ($_ = &next_line) {
$after = '';
}
$args =~ s|\\\\|\\|g;
- $args =~ s|\\{|{|g;
- $args =~ s|\\}|}|g;
+ $args =~ s|\\\{|{|g;
+ $args =~ s|\\\}|}|g;
if (@{$macros->{$name}->{Args}} > 1)
{
$args =~ s/(^|[^\\]),/$1$;/g ;
@@ -4243,7 +4243,7 @@ while (@lines) {
#
# xref
#
- while (/\@(x|px|info|)ref{([^{}]+)(}?)/) {
+ while (/\@(x|px|info|)ref\{([^{}]+)(\}?)/) {
# note: Texinfo may accept other characters
($type, $nodes, $full) = ($1, $2, $3);
($before, $after) = ($`, $');
@@ -4898,9 +4898,9 @@ sub update_sec_num {
my $ret;
$level--; # here we start at 0
- if ($name =~ /^appendix/ || defined(@appendix_sec_num)) {
+ if ($name =~ /^appendix/ || @appendix_sec_num) {
# appendix style
- if (defined(@appendix_sec_num)) {
+ if (@appendix_sec_num) {
&incr_sec_num($level, @appendix_sec_num);
} else {
@appendix_sec_num = ('A', 0, 0, 0);
@@ -4908,7 +4908,7 @@ sub update_sec_num {
$ret = join('.', @appendix_sec_num[0..$level]);
} else {
# normal style
- if (defined(@normal_sec_num))
+ if (@normal_sec_num)
{
&incr_sec_num($level, @normal_sec_num);
}

29
Singular-polymake.patch Normal file
View File

@ -0,0 +1,29 @@
--- singular-4.1.0/Singular/dyn_modules/polymake/polymake_conversion.cc.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/Singular/dyn_modules/polymake/polymake_conversion.cc 2017-03-31 14:50:50.480769619 -0600
@@ -120,7 +120,7 @@ int PmInteger2Int(const polymake::Intege
int i=0;
try
{
- i = pi.to_int();
+ i = (int)pi;
}
catch (const std::exception& ex)
{
@@ -158,7 +158,7 @@ intvec* PmMatrixInteger2Intvec (polymake
int rows = mi->rows();
int cols = mi->cols();
intvec* iv = new intvec(rows,cols,0);
- const polymake::Integer* pi = concat_rows(*mi).begin();
+ pm::array_traits<pm::Integer>::iterator pi = concat_rows(*mi).begin();
for (int r = 1; r <= rows; r++)
for (int c = 1; c <= cols; c++)
{
@@ -173,7 +173,7 @@ bigintmat* PmMatrixInteger2Bigintmat (po
int rows = mi->rows();
int cols = mi->cols();
bigintmat* bim= new bigintmat(rows,cols,coeffs_BIGINT);
- const polymake::Integer* pi = concat_rows(*mi).begin();
+ pm::array_traits<pm::Integer>::iterator pi = concat_rows(*mi).begin();
for (int r = 1; r <= rows; r++)
for (int c = 1; c <= cols; c++)
{

View File

@ -1,12 +0,0 @@
diff -up Singular-3-1-7/Singular/semaphore.c.orig Singular-3-1-7/Singular/semaphore.c
--- Singular-3-1-7/Singular/semaphore.c.orig 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/semaphore.c 2016-02-15 21:36:08.138939362 -0700
@@ -4,6 +4,8 @@
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
#include <Singular/mod2.h>
#include <Singular/cntrlc.h>
#include <Singular/si_signals.h>

View File

@ -0,0 +1,11 @@
--- singular-4.1.0/gfanlib/gfanlib_tropicalhomotopy.h.orig 2017-02-20 10:33:27.000000000 -0700
+++ singular-4.1.0/gfanlib/gfanlib_tropicalhomotopy.h 2017-02-28 08:51:27.144697675 -0700
@@ -454,7 +454,7 @@ template<class mvtyp, class mvtypDouble,
//chioices are "relative" so no update is needed.
choices=parent.choices;
- int numberToDrop=(subconfigurationIndex!=0) ? numberToDrop=k+1 : 0;
+ int numberToDrop=(subconfigurationIndex!=0) ? k+1 : 0;
choices[subconfigurationIndex-1].first-=numberToDrop;
choices[subconfigurationIndex-1].second-=numberToDrop;

View File

@ -1,55 +0,0 @@
diff -up Singular-3-1-7/Singular/Makefile.in.undefined Singular-3-1-7/Singular/Makefile.in
--- Singular-3-1-7/Singular/Makefile.in.undefined 2016-02-15 21:28:04.755898679 -0700
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 21:31:11.347859890 -0700
@@ -144,7 +144,7 @@ LIBSINGULAR_LIBS =-lsingfac -lsingcf -ln
SO_SUFFIX = so
-LIBSINGULAR_FLAGS = -shared
+LIBSINGULAR_FLAGS = -shared -Wl,--no-undefined
LIBSINGULAR_LD = $(CXX)
# correct suffix for dynamic linking
diff -up Singular-3-1-7/Singular/misc_ip.cc.undefined Singular-3-1-7/Singular/misc_ip.cc
--- Singular-3-1-7/Singular/misc_ip.cc.undefined 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/misc_ip.cc 2016-02-15 21:31:11.349859729 -0700
@@ -1269,7 +1269,6 @@ void siInit(char *name)
errorreported = 0;
}
-#ifdef LIBSINGULAR
#ifdef HAVE_FACTORY
// the init routines of factory need mmInit
int mmInit( void )
@@ -1277,4 +1276,3 @@ int mmInit( void )
return 1;
}
#endif
-#endif
diff -up Singular-3-1-7/Singular/tesths.cc.undefined Singular-3-1-7/Singular/tesths.cc
--- Singular-3-1-7/Singular/tesths.cc.undefined 2014-08-06 09:59:15.000000000 -0600
+++ Singular-3-1-7/Singular/tesths.cc 2016-02-15 21:32:47.063145511 -0700
@@ -51,23 +51,6 @@
extern int siInit(char *);
#if ! defined(LIBSINGULAR)
-static int mmInit2( void )
-{
-#if defined(OMALLOC_USES_MALLOC) || defined(X_OMALLOC)
- /* in mmstd.c, for some architectures freeSize() unconditionally uses the *system* free() */
- /* sage ticket 5344: http://trac.sagemath.org/sage_trac/ticket/5344 */
- /* do not rely on the default in Singular as libsingular may be different */
- mp_set_memory_functions(omMallocFunc,omReallocSizeFunc,omFreeSizeFunc);
-#else
- mp_set_memory_functions(malloc,reallocSize,freeSize);
-#endif
- return 1;
-}
-int mmInit( void )
-{
- return mmInit2();
-}
-
/*0 implementation*/
int main( /* main entry to Singular */
int argc, /* number of parameter */

View File

@ -1,540 +1,437 @@
#%#undefine _hardened_build
%global singulardir %{_libdir}/Singular
%global upstreamver 3-1-7
%global upstreamver 4-1-0
%global downstreamver %(tr - . <<< %{upstreamver})
%global patchver p2
%if 0%{?fedora}
%global ntl8 1
%endif
# If a library used by both polymake and Singular is updated, neither can be
# rebuilt, because each BRs the other and both are linked against the old
# version of the library. Use this to rebuild Singular without polymake
# support, rebuild polymake, then build Singular again with polymake support.
%bcond_with polymake
# Use this to build without polymake support if polymake is broken.
%bcond_without polymake
Name: Singular
Version: %(tr - . <<<%{upstreamver})
Release: 12%{?dist}
Version: %{downstreamver}%{?patchver}
Release: 1%{?dist}
Summary: Computer Algebra System for polynomial computations
Group: Applications/Engineering
License: BSD and LGPLv2+ and GPLv2+
Source0: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/%{upstreamver}/%{name}-%{upstreamver}.tar.gz
# TEMPORARY: Remove this once Singular ships an updated version
Source1: normaliz.lib
# License analysis:
# - factory/readcf.cc, Singular/grammar.cc, and Singular/grammar.h are
# nominally GPLv3+, but they are generated by bison, so the bison special
# exception applies
# - Singular/links/ndbm.cc and Singular/links/ndbm.h are BSD, which is subsumed
# by both GPLv2 and GPLv3
# - 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
URL: http://www.singular.uni-kl.de/
BuildRequires: bison
BuildRequires: cddlib-devel
BuildRequires: desktop-file-utils
BuildRequires: doxygen
BuildRequires: emacs
BuildRequires: flex
BuildRequires: flint-devel
BuildRequires: gcc-c++
BuildRequires: gmp-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: mathicgb-devel
BuildRequires: ncurses-devel
BuildRequires: ntl-devel%{?ntl8: >= 8.0}
%if %{with polymake}
BuildRequires: polymake-devel
BuildRequires: polymake
%endif
BuildRequires: python2-devel
BuildRequires: readline-devel
# Need uudecode for documentation images in tarball
BuildRequires: sharutils
BuildRequires: texinfo-tex
BuildRequires: tex(latex)
BuildRequires: zlib-devel
Requires: factory-gftables = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: environment-modules
Requires: less
Requires: surf-geometry
# Use destdir in install targets
Patch1: Singular-destdir.patch
# Find headers in source tree
Patch2: Singular-headers.patch
# Find and link to generated libraries
Patch3: Singular-link.patch
# Do not attempt to load non existing modules, do not even run
# the binary in DESTDIR when building the documentation
Patch4: Singular-doc.patch
# Correct koji error:
# ** ERROR: No build ID note found in /builddir/build/BUILDROOT/Singular-3.1.3-1.fc16.x86_64/usr/lib64/Singular/dbmsr.so
Patch5: Singular-builddid.patch
# Correct undefined symbols in libsingular
# This patch removes a hack to avoid duplicated symbols in tesths.cc
# when calling mp_set_memory_functions, what is a really a bad idea on
# a shared library.
Patch6: Singular-undefined.patch
# Add missing #include directives in the semaphore code
Patch11: Singular-semaphore.patch
# Support ARM and S390(x) architectures
Patch13: Singular-arches.patch
Patch0: %{name}-arches.patch
# Fix both underlinking and overlinking
Patch1: %{name}-link.patch
# Fix the desktop files
Patch2: %{name}-desktop.patch
# Adapt to new template code in NTL 8
Patch15: Singular-ntl8.patch
# Previous perl warning is now an error
Patch17: Singular-perl-5.22.patch
# Fix a broken boolean expression
Patch18: Singular-boolean.patch
Patch3: %{name}-ntl8.patch
# Fix code that can overflow a character buffer with sprintf
Patch4: %{name}-format.patch
# Add missing parentheses that can change code meaning in a macro
Patch5: %{name}-parens.patch
# Fix a sequence point error
Patch6: %{name}-sequence-point.patch
# Fix code that violates the strict aliasing rules
Patch7: %{name}-alias.patch
# Adapt to polymake 3.1
Patch8: %{name}-polymake.patch
%description
Singular 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 Licence.
geometry, and singularity theory.
%package libs
Summary: Singular library
Requires: %{name}-libpolys%{?_isa} = %{version}-%{release}
%description libs
This package contains the main Singular library.
%package devel
Summary: Singular development files
Group: Development/Libraries
Requires: factory-devel
Requires: libfac-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-libpolys-devel%{?_isa} = %{version}-%{release}
%description devel
This package contains the Singular development files.
%package -n factory-devel
Summary: C++ class library for multivariate polynomial data
Group: Development/Libraries
Requires: gmp-devel
Obsoletes: factory-static < %{version}-%{release}
Provides: factory-static = %{version}-%{release}
%description -n factory-devel
Factory is a C++ class library that implements a recursive representation
of multivariate polynomial data.
%package -n factory-gftables
Summary: Factory addition tables
Group: Applications/Engineering
BuildArch: noarch
%description -n factory-gftables
Factory uses addition tables to calculate in GF(p^n) in an efficient way.
%package -n libfac-devel
Summary: An extension to Singular-factory
Group: Development/Libraries
Obsoletes: libfac-static < %{version}-%{release}
Provides: libfac-static = %{version}-%{release}
%description -n libfac-devel
Singular-libfac is an extension to Singular-factory which implements
factorization of polynomials over finite fields and algorithms for
manipulation of polynomial ideals via the characteristic set methods
(e.g., calculating the characteristic set and the irreducible
characteristic series).
%package examples
Summary: Singular example files
Group: Applications/Engineering
Requires: %{name}%{?_isa} = %{version}-%{release}
%description examples
This package contains the Singular example files.
%package doc
Summary: Singular documentation files
Group: Applications/Engineering
Requires: %{name}%{?_isa} = %{version}-%{release}
%description doc
This package contains the Singular documentation files.
%package emacs
Summary: (X)Emacs interface to Singular
Requires: emacs-common
Requires: %{name}%{?_isa} = %{version}-%{release}
%description emacs
Emacs and XEmacs interface to Singular.
%package -n factory
Summary: C++ class library for multivariate polynomial data
Requires: factory-gftables = %{version}-%{release}
%description -n factory
Factory is a C++ class library that implements a recursive
representation of multivariate polynomial data. It handles sparse
multivariate polynomials over different coefficient domains, such as Z,
Q and GF(q), as well as algebraic extensions over Q and GF(q) in an
efficient way. Factory includes algorithms for computing univariate and
multivariate gcds, resultants, chinese remainders, and algorithms to
factorize multivariate polynomials and to compute the absolute
factorization of multivariate polynomials with integer coefficients.
%package -n factory-devel
Summary: Development files for the Singular factory
Requires: factory%{?_isa} = %{version}-%{release}
Requires: gmp-devel%{?_isa}
# These can be removed once Fedora 25 reached EOL
Obsoletes: %{name}-examples < 4.0.0-1
Provides: %{name}-examples = %{version}-%{release}
%description -n factory-devel
Development files for the Singular factory.
%package -n factory-gftables
Summary: Singular factory addition tables
BuildArch: noarch
%description -n factory-gftables
Factory uses addition tables to calculate in GF(p^n) in an efficient way.
%package libpolys
Summary: C++ class library for polynomials in Singular
Requires: factory%{?_isa} = %{version}-%{release}
%description libpolys
Libpolys contains the data structures and basic algorithms for
polynomials in Singular.
%package libpolys-devel
Summary: Development files for libpolys
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: factory-devel%{?_isa} = %{version}-%{release}
Requires: flint-devel%{?_isa}
# These can be removed once Fedora 25 reached EOL
Obsoletes: libfac-devel < 4.0.0-1
Provides: libfac-devel = %{version}-%{release}
%description libpolys-devel
Development files for libpolys.
%package polymake
Summary: Singular interface to polymake
Requires: polymake%{_isa}
Requires: TOPCOM%{_isa}
%description polymake
Singular interface to polymake.
%package surfex
Summary: Singular java interface
Group: Applications/Engineering
Requires: java
Requires: %{name}%{?_isa} = %{version}-%{release}
%description surfex
This package contains the Singular java interface.
%package emacs
Summary: Emacs mode for Singular
Group: Applications/Engineering
Requires: emacs-common
Requires: %{name}%{?_isa} = %{version}-%{release}
%description emacs
Emacs mode for Singular.
%prep
%setup -q -n %{name}-%{upstreamver}
%patch1 -p1 -b .destdir
%patch2 -p1 -b .headers
%patch3 -p1 -b .link
%patch4 -p1
%patch5 -p1 -b .builddid
%patch6 -p1 -b .undefined
%setup -q -n singular-%{downstreamver}
%patch0 -p1 -b .arches
%patch1 -p1 -b .link
%patch2 -p1 -b .desktop
%patch3 -p1 -b .ntl8
%patch4 -p1 -b .format
%patch5 -p1 -b .parens
%patch6 -p1 -b .seqpoint
%patch7 -p1 -b .alias
%patch8 -p1 -b .polymake
%patch11 -p1
%patch13 -p1
%if 0%{?ntl8:1}
%patch15 -p1
%endif
%patch17 -p1
%patch18 -p1
# Regenerate configure due to patches 0 and 1
autoreconf -fi
sed -i -e "s|gftabledir=.*|gftabledir='%{singulardir}/LIB/gftables'|" \
-e "s|explicit_gftabledir=.*|explicit_gftabledir='%{singulardir}/LIB/gftables'|" \
factory/configure.in factory/configure
# Fix encoding
iconv -f iso8859-1 -t utf-8 COPYING > COPYING.utf8
touch -r COPYING COPYING.utf8
mv -f COPYING.utf8 COPYING
# Build the debug libfactory with the right CFLAGS
sed -i '/FLINT/s/\($(CPPFLAGS)\)$/\1 $(CFLAGS)/' factory/GNUmakefile.in
# Build the debug kernel with the right CFLAGS
sed -ri 's/(C(XX)?FLAGS)(.*= )-g/\1\3$(\1)/' kernel/Makefile.in
# Build libparse with the right CFLAGS
sed -r 's/(\$\{CXX\})[[:blank:]]+(-O2[[:blank:]]+)?(\$\{CPPFLAGS\})/\1 $\{CXXFLAGS\} \3/' \
-i Singular/Makefile.in
# Fix permissions and preserve timestamps
sed -e 's,${INSTALL_PROGRAM} libsingular.h,${INSTALL_DATA} libsingular.h,' \
-e 's/cp /&-p /' \
-i Singular/Makefile.in
# Force use of system ntl
rm -fr ntl
# Adapt to the Fedora flint package
mkdir -p flint/include
ln -s %{_includedir}/flint flint/include/flint
ln -s %{_libdir} flint/lib
sed -i 's/lmpir/lgmp/' factory/configure Singular/configure
# Unbreak the (call)gfanlib/callpolymake installs
sed -i '/^install:/iinstall-libsingular:\n' \
gfanlib/Makefile.in callgfanlib/Makefile.in
sed -e '/^install /iinstall-libsingular:\n' \
-e 's/mkdir/mkdir -p/' \
-i callpolymake/Makefile.in
sed -ri 's/@(prefix|exec_prefix|libdir|includedir)@/$(DESTDIR)&/g' \
gfanlib/Makefile.in
# Fix the default paths
sed -e 's/"S_UNAME"/Singular/' \
-e 's/"S_UNAME/Singular"/' \
-e 's/S_VERSION1/ &/' \
-e 's,%b/\.\.,%b,' \
-e 's,S_ROOT_DIR,"%{_libdir}",' \
-i.orig kernel/feResource.cc
touch -r kernel/feResource.cc.orig kernel/feResource.cc
# Build with polymake 3.x
sed -i '/SUPPORTEDPOLYMAKEVERSION/s/212/30/' callpolymake/configure
%if 0%{?fedora}
# TEMPORARY: Remove this once Singular ships an updated version
cp -p %{SOURCE1} Singular/LIB
%endif
%build
export CFLAGS="%{optflags} -fPIC -fsigned-char -fno-delete-null-pointer-checks -I%{_includedir}/cddlib -I%{_includedir}/flint"
export CPPFLAGS="-I%{_includedir}/flint"
export CFLAGS="%{optflags} -fPIC -fno-delete-null-pointer-checks"
export CXXFLAGS=$CFLAGS
export LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed -L$PWD/gfanlib"
export LIBS="-lpthread -ldl"
# Cannot use RPM_LD_FLAGS, as -Wl,-z,now breaks lazy module loading
export LDFLAGS="-Wl,-z,relro"
# build components in specific order to not need to build & install
# in a single make command
%configure \
--bindir=%{singulardir} \
--with-apint=gmp \
--with-flint=$PWD/flint \
--with-gmp=%{_prefix} \
--with-ntl=%{_prefix} \
--with-NTL \
--without-MP \
--without-lex \
--without-bison \
--without-Boost \
--enable-gmp=%{_prefix} \
--enable-Singular \
--enable-factory \
--enable-libfac \
--enable-IntegerProgramming \
--disable-silent-rules \
--disable-optimizationflags \
--disable-static \
--enable-p-procs-dynamic \
--enable-gfanlib \
%if %{with polymake}
--enable-polymake \
%else
--disable-polymake \
%endif
--with-gmp \
--with-ntl \
--with-flint \
--with-mathicgb \
--with-python \
--with-readline \
--disable-doc \
--with-malloc=system
# remove bogus -L/usr/kernel from linker command line and
# do not put standard library in linker command line to avoid
# linking with a system wide libsingcf or libfacf
sed -i 's|-L%{_prefix}/kernel||g;s|-L%{_libdir}||g' Singular/Makefile
make %{?_smp_mflags} Singular
# factory needs omalloc built
make %{?_smp_mflags} -C omalloc
%if %{with polymake}
# polymake interface needs gfanlib built
make %{?_smp_mflags} -C gfanlib
%endif
pushd factory
CFLAGS="%{optflags} -fPIC -fsigned-char -fno-delete-null-pointer-checks -I%{_includedir}/cddlib -I%{_includedir}/flint"
CXXFLAGS=$CFLAGS
LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed -L$PWD/gfanlib"
LIBS="-lpthread -ldl"
make %{?_smp_mflags}
make %{?_smp_mflags} -C dox html
%configure \
--bindir=%{singulardir} \
--includedir=%{_includedir}/factory \
--with-apint=gmp \
--with-flint=$PWD/../flint \
--with-gmp=%{_prefix} \
--with-ntl=%{_prefix} \
--with-NTL \
--with-Singular \
--enable-gmp=%{_prefix}
make %{?_smp_mflags}
popd
# kernel needs factory built
make %{?_smp_mflags} -C kernel
# libfac needs factory built
pushd libfac
%configure \
--bindir=%{singulardir} \
--with-apint=gmp \
--with-flint=$PWD/../flint \
--with-gmp=%{_prefix} \
--with-ntl=%{_prefix} \
--with-NTL \
--enable-factory \
--enable-libfac \
--enable-omalloc \
--enable-gmp=%{_prefix}
make %{?_smp_mflags}
# not built by default
make libfac.a
popd
# target required to rebuild documentation
make %{?_smp_mflags} -C Singular libparse
%install
make \
DESTDIR=$RPM_BUILD_ROOT \
install_prefix=$RPM_BUILD_ROOT%{singulardir} \
slibdir=%{singulardir}/LIB \
install \
install-libsingular \
install-sharedist
make DESTDIR=%{buildroot} install
# dup gftables data
GF_DIR=%{_datadir}/factory/gftables
mkdir -p $RPM_BUILD_ROOT${GF_DIR}
pushd $RPM_BUILD_ROOT%{singulardir}/LIB/gftables
for file in * ; do
new_file="gftable.$(head -2 ${file} | tail -1 | cut -d' ' -f1,2 | sed -e 's| |.|')"
## absolute
#mv ${file} $RPM_BUILD_ROOT${GF_DIR}/${new_file}
#ln -s ${GF_DIR}/${new_file} ${file}
## relative
mv ${file} ../../../../share/factory/gftables/${new_file}
ln -s ../../../../share/factory/gftables/${new_file} ${file}
done
popd
# Validate the desktop files
desktop-file-validate %{buildroot}%{_datadir}/applications/Singular.desktop
desktop-file-validate \
%{buildroot}%{_datadir}/applications/Singular-manual.desktop
# does not need to be in top directory
mkdir $RPM_BUILD_ROOT%{_includedir}/gfanlib
mv $RPM_BUILD_ROOT%{_includedir}/gfanlib*.h \
$RPM_BUILD_ROOT%{_includedir}/gfanlib
mv $RPM_BUILD_ROOT%{_includedir}/{my,om}limits.h \
$RPM_BUILD_ROOT%{_includedir}/singular
# We don't want the libtool files
rm -f %{buildroot}%{_libdir}/*.la
rm -f %{buildroot}%{_libexecdir}/singular/MOD/*.la
# also installed in libdir
rm -f $RPM_BUILD_ROOT%{_bindir}/*.so
rm -f $RPM_BUILD_ROOT%{singulardir}/libsingular.so
rm -f $RPM_BUILD_ROOT%{singulardir}/polymake.so
# Remove files we don't want in the installed tree
rm -f %{buildroot}%{_datadir}/singular/emacs/{ChangeLog,COPYING,NEWS}
# already linked to libsingular.so; do not distribute static libraries
# or just compiled objects.
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/*.o
# avoid poluting libdir with dynamic modules
pushd $RPM_BUILD_ROOT%{_libdir}
mkdir -p Singular
mv dbmsr.so p_Procs*.so Singular
popd
# Move the config scripts
mkdir -p %{buildroot}%{_bindir}
mv %{buildroot}%{singulardir}/*-config %{buildroot}%{_bindir}
# remove script that calls surf; we don't ship it
rm -f $RPM_BUILD_ROOT%{singulardir}/singularsurf
rm -f %{buildroot}%{singulardir}/singularsurf
# create a script also setting SINGULARPATH
mkdir -p $RPM_BUILD_ROOT%{_bindir}
cat > $RPM_BUILD_ROOT%{_bindir}/Singular << EOF
#!/bin/bash -i
cat > %{buildroot}%{_bindir}/Singular << EOF
#!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch}
SINGULARPATH=%{singulardir} %{singulardir}/Singular-%{upstreamver} "\$@"
export SINGULARPATH=%{singulardir}
exec %{singulardir}/Singular-%{upstreamver} "\$@"
EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/Singular
chmod 0755 %{buildroot}%{_bindir}/Singular
# TSingular
cat > $RPM_BUILD_ROOT%{_bindir}/TSingular << EOF
#!/bin/bash -i
cat > %{buildroot}%{_bindir}/TSingular << EOF
#!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch}
%{singulardir}/TSingular --singular %{_bindir}/Singular "\$@"
exec %{singulardir}/TSingular --singular %{_bindir}/Singular "\$@"
EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/TSingular
# remove some wrong executable permissions
chmod 644 $RPM_BUILD_ROOT%{singulardir}/LIB/*.lib
chmod 0755 %{buildroot}%{_bindir}/TSingular
# surfex
cat > $RPM_BUILD_ROOT%{_bindir}/surfex << EOF
#!/bin/bash -i
cat > %{buildroot}%{_bindir}/surfex << EOF
#!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch}
%{singulardir}/surfex %{singulardir}/LIB/surfex "\$@"
exec %{singulardir}/surfex %{singulardir}/LIB/surfex "\$@"
EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/surfex
mkdir -p $RPM_BUILD_ROOT%{singulardir}/LIB/surfex/doc
install -m644 Singular/LIB/surfex/doc/surfex_doc_linux.pdf \
$RPM_BUILD_ROOT%{singulardir}/LIB/surfex/doc/surfex_doc_linux.pdf
# referenced in xemacs setup
install -m644 emacs/singular.xpm $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular
# remove suggested preferences
rm -f $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-general
# emacs autostart
sed -i "s|<your-singular-emacs-home-directory>|%{_emacs_sitelispdir}/singular|" \
$RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-singular
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
mv $RPM_BUILD_ROOT%{_emacs_sitelispdir}/singular/.emacs-singular \
$RPM_BUILD_ROOT%{_emacs_sitestartdir}/singular-init.el
chmod 0755 %{buildroot}%{_bindir}/surfex
# ESingular
cat > $RPM_BUILD_ROOT%{_bindir}/ESingular << EOF
#!/bin/bash -i
cat > %{buildroot}%{_bindir}/ESingular << EOF
#!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch}
export ESINGULAR_EMACS_LOAD=%{_emacs_sitestartdir}/singular-init.el
export ESINGULAR_EMACS_DIR=%{_emacs_sitelispdir}/singular
%{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
exec %{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/ESingular
chmod 0755 %{buildroot}%{_bindir}/ESingular
pushd libfac
make DESTDIR=$RPM_BUILD_ROOT install
# not installed by default
install -m 644 libfac.a $RPM_BUILD_ROOT%{_libdir}/libfac.a
popd
pushd factory
make DESTDIR=$RPM_BUILD_ROOT install
# make a version without singular defined
make clean
CFLAGS="%{optflags} -fPIC -fsigned-char -fno-delete-null-pointer-checks -I%{_includedir}/cddlib -I%{_includedir}/flint"
CXXFLAGS=$CFLAGS
LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed -L$PWD/gfanlib"
LIBS="-lpthread -ldl"
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
make check
%configure \
--bindir=%{singulardir} \
--includedir=%{_includedir}/factory \
--with-apint=gmp \
--with-flint=$PWD/../flint \
--with-gmp=%{_prefix} \
--with-ntl=%{_prefix} \
--with-NTL \
--without-Singular \
--enable-gmp=%{_prefix}
# avoid missing "print" symbols not used elsewhere
make CPPFLAGS="-I%{_includedir}/flint -DNOSTREAMIO=1" %{?_smp_mflags}
# not built by default
make libcfmem.a
# do not run make install again, just install non singular factory files
install -m 644 libcf.a $RPM_BUILD_ROOT%{_libdir}
install -m 644 libcfmem.a $RPM_BUILD_ROOT%{_libdir}
popd
# incorrect factory includedir
sed -e 's|<\(cf_gmp.h>\)|<factory/\1|' \
-i $RPM_BUILD_ROOT%{_includedir}/singular/si_gmp.h
%post
/sbin/install-info %{_infodir}/singular.hlp %{_infodir}/dir 2>/dev/null || :
%postun
if [ $1 = 0 ]; then
/sbin/install-info --delete %{_infodir}/singular.hlp %{_infodir}/dir 2>/dev/null || :
fi
%post -n factory -p /sbin/ldconfig
%postun -n factory -p /sbin/ldconfig
%post libpolys -p /sbin/ldconfig
%postun libpolys -p /sbin/ldconfig
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%doc README.md
%{_bindir}/Singular
%{_bindir}/TSingular
%doc %{singulardir}/COPYING
%doc %{singulardir}/GPL2
%doc %{singulardir}/GPL3
%doc %{singulardir}/NEWS
%doc %{singulardir}/README
%dir %{singulardir}
%dir %{singulardir}/LIB
%doc %{singulardir}/LIB/COPYING
%{singulardir}/LIB/*.lib
%{singulardir}/LIB/help.cnf
%{singulardir}/LIB/gftables
%{singulardir}/doc
%{singulardir}/info
%{singulardir}/change_cost
%{singulardir}/gen_test
%{singulardir}/libparse
%{singulardir}/LLL
%{singulardir}/Singular*
%{singulardir}/solve_IP
%{singulardir}/toric_ideal
%{_infodir}/singular.hlp*
%{_mandir}/man1/Singular.1*
%{_mandir}/man1/TSingular.1*
%{_datadir}/applications/Singular.desktop
%{_datadir}/icons/Singular.png
%{_datadir}/singular/singular.idx
%docdir %{_datadir}/singular/html/
%{_datadir}/singular/html/
%{singulardir}/Singular
%{singulardir}/TSingular
%{singulardir}/*.so
%{_libdir}/libsingular.so
%if %{with polymake}
%{singulardir}/MOD/
%endif
%files libs
%doc libpolys/README
%license COPYING
%license GPL2
%license GPL3
%{_libdir}/libgfan.so.*
%{_libdir}/libSingular-*.so
%{_libexecdir}/singular/
%exclude %{_libexecdir}/singular/MOD/polymake.so
%dir %{_datadir}/singular/
%{_datadir}/singular/LIB/
%exclude %{_datadir}/singular/LIB/polymake.lib
%exclude %{_datadir}/singular/LIB/surfex.lib
%files devel
%{_includedir}/gfanlib
%{_includedir}/libsingular.h
%{_includedir}/omalloc.h
%{_includedir}/singular
%files -n factory-gftables
%dir %{_datadir}/factory/
%{_datadir}/factory/gftables/
%files -n factory-devel
%doc factory/ChangeLog
%doc factory/NEWS
%doc factory/README
%{_includedir}/factory
%{_libdir}/libcf.a
%{_libdir}/libcfmem.a
%{_libdir}/libsingcf*.a
%files -n libfac-devel
%doc libfac/00README
%doc libfac/ChangeLog
%doc libfac/COPYING
%{_includedir}/factor.h
%{_libdir}/libfac.a
%{_libdir}/libsingfac*.a
%files examples
%{singulardir}/examples
%doc kernel/ChangeLog
%{_bindir}/libsingular-config
%{_includedir}/gfanlib/
%{_includedir}/singular/kernel/
%{_includedir}/singular/Singular/
%{_includedir}/singular/singularconfig.h
%{_libdir}/libgfan.so
%{_libdir}/libSingular.so
%{_libdir}/pkgconfig/Singular.pc
%files doc
%doc %{singulardir}/html
%doc %{singulardir}/*.html
%doc dox/html/
%doc dox/*.html
%doc dox/*.png
%doc dox/*.css
%doc dox/tags
%{_datadir}/applications/Singular-manual.desktop
%files emacs
%license emacs/COPYING
%doc emacs/ChangeLog
%doc emacs/NEWS
%{_bindir}/ESingular
%{_mandir}/man1/ESingular.1*
%{_datadir}/singular/emacs/
%{singulardir}/ESingular
%files surfex
%{_bindir}/surfex
%{singulardir}/surfex
%{singulardir}/LIB/surfex
%{_datadir}/singular/LIB/surfex.lib
%files -n factory
%license factory/COPYING
%doc factory/README
%doc factory/NEWS
%{_libdir}/libfactory-*.so
%{_libdir}/libomalloc-*.so
%{_libdir}/libsingular_resources-*.so
%files -n factory-devel
%doc factory/ChangeLog
%doc factory/examples
%{_includedir}/factory/
%{_includedir}/omalloc/
%{_includedir}/resources/
%{_libdir}/libfactory.so
%{_libdir}/libomalloc.so
%{_libdir}/libsingular_resources.so
%{_libdir}/pkgconfig/factory.pc
%{_libdir}/pkgconfig/omalloc.pc
%{_libdir}/pkgconfig/singular_resources.pc
%files -n factory-gftables
%{_datadir}/factory/
%files libpolys
%license libpolys/COPYING
%doc libpolys/README
%{_libdir}/libpolys-*.so
%files libpolys-devel
%{_bindir}/libpolys-config
%dir %{_includedir}/singular/
%{_includedir}/singular/coeffs/
%{_includedir}/singular/libpolysconfig.h
%{_includedir}/singular/misc/
%{_includedir}/singular/polys/
%{_includedir}/singular/reporter/
%{_libdir}/libpolys.so
%{_libdir}/pkgconfig/libpolys.pc
%files polymake
%{_libexecdir}/singular/MOD/polymake.so
%{_datadir}/singular/LIB/polymake.lib
%files emacs
%{_bindir}/ESingular
%{singulardir}/ESingular
%{_emacs_sitelispdir}/singular
%{_emacs_sitestartdir}/singular-init.el
%changelog
* Wed Apr 5 2017 Jerry James <loganjerry@gmail.com> - 4.1.0p2-1
- New upstream version (bz 1181772, 1321077)
- Drop upstreamed patches: -destdir, -headers, -doc, -builddid, -undefined,
and -semaphore
- Add patches: -desktop, -format, -parens, -sequence-point, -alias, -polymake
- libpolys subpackage replaces libfac
- Rework the Emacs support
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.7-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

View File

@ -1,2 +1 @@
b28c1b406a4203369ea484d87ffe113c Singular-3-1-7.tar.gz
316ccb1d77ef60c3862a5f6aa6d4747b normaliz.lib
SHA512 (singular-4.1.0p2.tar.gz) = 8daa00ebb620b1c9dce328079abf219489091959ee3eae6ce9771030e7232649122e3b847bd4b1231170a18e76551b5e5cde11b23bc38419407df3d6da3fbfaa