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-5.tar.gz
/Singular-3-1-6.tar.gz /Singular-3-1-6.tar.gz
/Singular-3-1-7.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-4.1.0/m4/cpu-check.m4.orig 2016-10-14 14:00:05.000000000 -0600
--- Singular-3-1-7/kernel/mod2.h.cmake.in.orig 2014-08-06 09:59:15.000000000 -0600 +++ singular-4.1.0/m4/cpu-check.m4 2017-01-16 17:59:49.348670992 -0700
+++ Singular-3-1-7/kernel/mod2.h.cmake.in 2016-02-15 21:49:18.052275064 -0700 @@ -37,6 +37,18 @@ if test "$ac_cv_singcpuname" = ppc; then
@@ -157,6 +157,12 @@ AC_DEFINE(SI_CPU_PPC,1,"PPC")
#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
AC_SUBST(SI_CPU_PPC) AC_SUBST(SI_CPU_PPC)
AC_MSG_RESULT(SI_CPU_PPC)
fi fi
+if test "$ac_cv_singuname" = arm-Linux; then +if test "$ac_cv_singcpuname" = arm -o "$ac_cv_singcpuname" = armel; then
+ AC_DEFINE(SI_CPU_ARM) + AC_DEFINE(SI_CPU_ARM,1,"ARM")
+ AC_SUBST(SI_CPU_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 +fi
+if test "$ac_cv_singcpuname" = aarch64; then +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_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 +fi
+if test "$ac_cv_singcpuname" = s390; then +if test "$ac_cv_singcpuname" = s390; then
+ $as_echo "#define SI_CPU_S390 1" >>confdefs.h + AC_DEFINE(SI_CPU_S390,1,"S390")
+ + AC_SUBST(SI_CPU_S390)
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: SI_CPU_S390" >&5
+$as_echo "SI_CPU_S390" >&6; }
+fi +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 # UNAME and PATH
--- Singular-3-1-7/Singular/mod2.h.in.orig 2014-08-06 09:59:15.000000000 -0600 AC_MSG_CHECKING(uname for Singular)
+++ Singular-3-1-7/Singular/mod2.h.in 2016-02-15 21:49:18.057274661 -0700 @@ -61,6 +73,19 @@ dnl the following settings seems to be b
@@ -162,6 +162,12 @@ dnl the following settings seems to be better on ppc processors
#undef SI_CPU_IA64 dnl testet on: ppc_Linux, 740/750 PowerMac G3, 512k L2 cache
/* CPU type: x86_64: */ [powerpc*|ppc*], [AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)],
#undef SI_CPU_X86_64 +dnl FIXME: need to run some tests
+/* CPU type: arm: */ + [arm*], [
+#undef SI_CPU_ARM + AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)
+/* CPU type: s390 / s390x: */ + AC_DEFINE(HAVE_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms)
+#undef SI_CPU_S390 + ],
+/* CPU type: aarch64: */ +dnl FIXME: need to run some tests
+#undef SI_CPU_AARCH64 + [aarch64*], [
/* Autoload reference counted types like reference and shared */ + AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)
#undef SI_COUNTEDREF_AUTOLOAD + AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)
/* whether development version of python is available */ + AC_DEFINE(HAVE_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms)
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 +dnl FIXME: need to run some tests
+++ Singular-3-1-7/singuname.sh 2016-02-15 21:49:18.057274661 -0700 + [s390*], [AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)],
@@ -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

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-4.1.0/configure.ac.orig 2017-02-20 10:33:27.000000000 -0700
--- Singular-3-1-7/Singular/Makefile.in.orig 2016-02-15 21:07:59.903073250 -0700 +++ singular-4.1.0/configure.ac 2017-02-27 14:49:09.415812935 -0700
+++ Singular-3-1-7/Singular/Makefile.in 2016-02-15 21:16:53.916992781 -0700 @@ -253,4 +253,10 @@ AC_CONFIG_FILES([redhat/Makefile])
@@ -140,7 +140,7 @@ HAVE_MPSR = @HAVE_MPSR@ AC_CONFIG_FILES([redhat/singular.spec])
# AC_CONFIG_FILES([desktop/Makefile desktop/Singular.desktop desktop/Singular-manual.desktop])
# 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
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} \ AC_CONFIG_FILES([Makefile include/factory/Makefile factory.pc]) # ftest/GNUmakefile
iparith.o libparse.cc claptmpl.o mpsr_Tok.o $(DL_LIBS) +AC_CONFIG_COMMANDS([norpath], [
$(LIBSINGULAR_LD) ${SLDFLAGS} ${LIBSINGULAR_FLAGS} -o libsingular.${SO_SUFFIX} \ +sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
iparith.o mpsr_Tok.o claptmpl.o \ + -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
- ${OBJS} -lkernel -L../kernel -L../factory -L../libfac -L${libdir} ${LIBSINGULAR_LIBS} + -e 's|CC="\(g.*\)"|CC="\1 -Wl,--as-needed"|' \
+ ${OBJS} -L../kernel -L../factory -L../libfac -L../omalloc -lkernel -L${libdir} ${LIBSINGULAR_LIBS} + -i libtool
+])
AC_OUTPUT
libsingular.a: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc ${OBJS} \ --- singular-4.1.0/gfanlib/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
iparith.o libparse.cc claptmpl.o mpsr_Tok.o +++ singular-4.1.0/gfanlib/configure.ac 2017-02-27 14:49:09.416812931 -0700
@@ -445,7 +445,7 @@ version.h: ${SOURCES} ${HEADERS} Makefil @@ -57,4 +57,10 @@ AC_LANG_POP()
echo "#define CXX \"" ${CXX} ${CXXFLAGS} ${DEFS} "\"" >>version.h
libparse: libparse_main.o utils.o AC_CONFIG_FILES([Makefile])
- ${CXX} ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -lomalloc ## AC_CONFIG_HEADERS([config.h])
+ ${CXX} ${CPPFLAGS} -DSTANDALONE_PARSER -o libparse libparse_main.o utils.o ../kernel/fegetopt.o ${LDFLAGS2} -L../omalloc -lomalloc +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 if HAVE_GFANLIB
${CXX} ${CPPFLAGS} -c -o libparse_main.o libparse.cc -DSTANDALONE_PARSER libgfan_LTLIBRARIES=libgfan.la
@@ -466,12 +466,12 @@ libparse.cc: libparse.l + libgfan_la_LIBADD=-lcddgmp -lgmp
ESingular: mod2.h feOpt.cc version.h emacs.cc \ endif
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
TSingular: mod2.h feOpt.cc version.h emacs.cc \ libgfandir = $(libdir)
feOptTS.inc --- singular-4.1.0/libpolys/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
${CXX} -O2 ${CPPFLAGS} ${DEFS} -DTSINGULAR -DPROTO -o TSingular emacs.cc ../kernel/fegetopt.o \ +++ singular-4.1.0/libpolys/configure.ac 2017-02-27 14:49:09.416812931 -0700
- ${LDFLAGS} ${LIBS} ../kernel/mmalloc.o @@ -149,4 +149,10 @@ AC_CONFIG_FILES([coeffs/Makefile])
+ ${LDFLAGS} -L../kernel -L../factory -L../libfac -L../omalloc ${LIBS} ../kernel/mmalloc.o 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 --- singular-4.1.0/resources/configure.ac.orig 2017-02-20 10:34:57.000000000 -0700
extra.o: feOpt.inc +++ 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-4.1.0/factory/ftmpl_inst.cc.orig 2016-10-14 14:00:05.000000000 -0600
--- Singular-3-1-7/factory/NTLconvert.cc.orig 2014-08-06 09:59:15.000000000 -0600 +++ singular-4.1.0/factory/ftmpl_inst.cc 2017-01-16 20:23:04.488346521 -0700
+++ Singular-3-1-7/factory/NTLconvert.cc 2016-02-15 22:02:11.477940005 -0700 @@ -74,7 +74,7 @@ template List<Variable> Difference ( con
@@ -55,6 +55,63 @@ // NTL 6
NTL_CLIENT #ifdef HAVE_NTL
#endif #include<NTL/version.h>
-#if NTL_MAJOR_VERSION == 6
+#if NTL_MAJOR_VERSION >= 6
+// Needed explicit template instantiations for NTL 8.x.x #include<NTL/tools.h>
+template mat_zz_p::Mat(const mat_zz_p&); #include<NTL/lzz_pE.h>
+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)

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 singulardir %{_libdir}/Singular
%global upstreamver 3-1-7 %global upstreamver 4-1-0
%global downstreamver %(tr - . <<< %{upstreamver})
%global patchver p2
%if 0%{?fedora} %if 0%{?fedora}
%global ntl8 1 %global ntl8 1
%endif %endif
# If a library used by both polymake and Singular is updated, neither can be # Use this to build without polymake support if polymake is broken.
# rebuilt, because each BRs the other and both are linked against the old %bcond_without polymake
# version of the library. Use this to rebuild Singular without polymake
# support, rebuild polymake, then build Singular again with polymake support.
%bcond_with polymake
Name: Singular Name: Singular
Version: %(tr - . <<<%{upstreamver}) Version: %{downstreamver}%{?patchver}
Release: 12%{?dist} Release: 1%{?dist}
Summary: Computer Algebra System for polynomial computations Summary: Computer Algebra System for polynomial computations
Group: Applications/Engineering # License analysis:
License: BSD and LGPLv2+ and GPLv2+ # - factory/readcf.cc, Singular/grammar.cc, and Singular/grammar.h are
Source0: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/%{upstreamver}/%{name}-%{upstreamver}.tar.gz # nominally GPLv3+, but they are generated by bison, so the bison special
# TEMPORARY: Remove this once Singular ships an updated version # exception applies
Source1: normaliz.lib # - 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/ URL: http://www.singular.uni-kl.de/
BuildRequires: bison BuildRequires: bison
BuildRequires: cddlib-devel BuildRequires: cddlib-devel
BuildRequires: desktop-file-utils
BuildRequires: doxygen
BuildRequires: emacs BuildRequires: emacs
BuildRequires: flex BuildRequires: flex
BuildRequires: flint-devel BuildRequires: flint-devel
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: gmp-devel BuildRequires: gmp-devel
BuildRequires: libtool
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: mathicgb-devel
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
BuildRequires: ntl-devel%{?ntl8: >= 8.0} BuildRequires: ntl-devel%{?ntl8: >= 8.0}
%if %{with polymake} %if %{with polymake}
BuildRequires: polymake-devel BuildRequires: polymake
%endif %endif
BuildRequires: python2-devel
BuildRequires: readline-devel BuildRequires: readline-devel
# Need uudecode for documentation images in tarball # Need uudecode for documentation images in tarball
BuildRequires: sharutils BuildRequires: sharutils
BuildRequires: texinfo-tex BuildRequires: texinfo-tex
BuildRequires: tex(latex) BuildRequires: tex(latex)
BuildRequires: zlib-devel BuildRequires: zlib-devel
Requires: factory-gftables = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: environment-modules
Requires: less Requires: less
Requires: surf-geometry 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 # 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 # Adapt to new template code in NTL 8
Patch15: Singular-ntl8.patch Patch3: %{name}-ntl8.patch
# Fix code that can overflow a character buffer with sprintf
# Previous perl warning is now an error Patch4: %{name}-format.patch
Patch17: Singular-perl-5.22.patch # Add missing parentheses that can change code meaning in a macro
# Fix a broken boolean expression Patch5: %{name}-parens.patch
Patch18: Singular-boolean.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 %description
Singular is a computer algebra system for polynomial computations, with Singular is a computer algebra system for polynomial computations, with
special emphasis on commutative and non-commutative algebra, algebraic special emphasis on commutative and non-commutative algebra, algebraic
geometry, and singularity theory. It is free and open-source under the geometry, and singularity theory.
GNU General Public Licence.
%package libs
Summary: Singular library
Requires: %{name}-libpolys%{?_isa} = %{version}-%{release}
%description libs
This package contains the main Singular library.
%package devel %package devel
Summary: Singular development files Summary: Singular development files
Group: Development/Libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: factory-devel Requires: %{name}-libpolys-devel%{?_isa} = %{version}-%{release}
Requires: libfac-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel %description devel
This package contains the Singular development files. 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 %package doc
Summary: Singular documentation files Summary: Singular documentation files
Group: Applications/Engineering
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description doc %description doc
This package contains the Singular documentation files. 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 %package surfex
Summary: Singular java interface Summary: Singular java interface
Group: Applications/Engineering
Requires: java Requires: java
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description surfex %description surfex
This package contains the Singular java interface. 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 %prep
%setup -q -n %{name}-%{upstreamver} %setup -q -n singular-%{downstreamver}
%patch1 -p1 -b .destdir %patch0 -p1 -b .arches
%patch2 -p1 -b .headers %patch1 -p1 -b .link
%patch3 -p1 -b .link %patch2 -p1 -b .desktop
%patch4 -p1 %patch3 -p1 -b .ntl8
%patch5 -p1 -b .builddid %patch4 -p1 -b .format
%patch6 -p1 -b .undefined %patch5 -p1 -b .parens
%patch6 -p1 -b .seqpoint
%patch7 -p1 -b .alias
%patch8 -p1 -b .polymake
%patch11 -p1 # Regenerate configure due to patches 0 and 1
%patch13 -p1 autoreconf -fi
%if 0%{?ntl8:1}
%patch15 -p1
%endif
%patch17 -p1
%patch18 -p1
sed -i -e "s|gftabledir=.*|gftabledir='%{singulardir}/LIB/gftables'|" \ # Fix encoding
-e "s|explicit_gftabledir=.*|explicit_gftabledir='%{singulardir}/LIB/gftables'|" \ iconv -f iso8859-1 -t utf-8 COPYING > COPYING.utf8
factory/configure.in factory/configure 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 %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 CXXFLAGS=$CFLAGS
export LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed -L$PWD/gfanlib" # Cannot use RPM_LD_FLAGS, as -Wl,-z,now breaks lazy module loading
export LIBS="-lpthread -ldl" export LDFLAGS="-Wl,-z,relro"
# build components in specific order to not need to build & install
# in a single make command
%configure \ %configure \
--bindir=%{singulardir} \ --bindir=%{singulardir} \
--with-apint=gmp \ --disable-silent-rules \
--with-flint=$PWD/flint \ --disable-optimizationflags \
--with-gmp=%{_prefix} \ --disable-static \
--with-ntl=%{_prefix} \ --enable-p-procs-dynamic \
--with-NTL \
--without-MP \
--without-lex \
--without-bison \
--without-Boost \
--enable-gmp=%{_prefix} \
--enable-Singular \
--enable-factory \
--enable-libfac \
--enable-IntegerProgramming \
--enable-gfanlib \ --enable-gfanlib \
%if %{with polymake} %if %{with polymake}
--enable-polymake \ --enable-polymake \
%else
--disable-polymake \
%endif %endif
--with-gmp \
--with-ntl \
--with-flint \
--with-mathicgb \
--with-python \
--with-readline \
--disable-doc \ --disable-doc \
--with-malloc=system --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 make %{?_smp_mflags}
CFLAGS="%{optflags} -fPIC -fsigned-char -fno-delete-null-pointer-checks -I%{_includedir}/cddlib -I%{_includedir}/flint" make %{?_smp_mflags} -C dox html
CXXFLAGS=$CFLAGS
LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed -L$PWD/gfanlib"
LIBS="-lpthread -ldl"
%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 %install
make \ make DESTDIR=%{buildroot} install
DESTDIR=$RPM_BUILD_ROOT \
install_prefix=$RPM_BUILD_ROOT%{singulardir} \
slibdir=%{singulardir}/LIB \
install \
install-libsingular \
install-sharedist
# dup gftables data # Validate the desktop files
GF_DIR=%{_datadir}/factory/gftables desktop-file-validate %{buildroot}%{_datadir}/applications/Singular.desktop
mkdir -p $RPM_BUILD_ROOT${GF_DIR} desktop-file-validate \
pushd $RPM_BUILD_ROOT%{singulardir}/LIB/gftables %{buildroot}%{_datadir}/applications/Singular-manual.desktop
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
# does not need to be in top directory # We don't want the libtool files
mkdir $RPM_BUILD_ROOT%{_includedir}/gfanlib rm -f %{buildroot}%{_libdir}/*.la
mv $RPM_BUILD_ROOT%{_includedir}/gfanlib*.h \ rm -f %{buildroot}%{_libexecdir}/singular/MOD/*.la
$RPM_BUILD_ROOT%{_includedir}/gfanlib
mv $RPM_BUILD_ROOT%{_includedir}/{my,om}limits.h \
$RPM_BUILD_ROOT%{_includedir}/singular
# also installed in libdir # Remove files we don't want in the installed tree
rm -f $RPM_BUILD_ROOT%{_bindir}/*.so rm -f %{buildroot}%{_datadir}/singular/emacs/{ChangeLog,COPYING,NEWS}
rm -f $RPM_BUILD_ROOT%{singulardir}/libsingular.so
rm -f $RPM_BUILD_ROOT%{singulardir}/polymake.so
# already linked to libsingular.so; do not distribute static libraries # Move the config scripts
# or just compiled objects. mkdir -p %{buildroot}%{_bindir}
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a $RPM_BUILD_ROOT%{_libdir}/*.o mv %{buildroot}%{singulardir}/*-config %{buildroot}%{_bindir}
# avoid poluting libdir with dynamic modules
pushd $RPM_BUILD_ROOT%{_libdir}
mkdir -p Singular
mv dbmsr.so p_Procs*.so Singular
popd
# remove script that calls surf; we don't ship it # 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 # create a script also setting SINGULARPATH
mkdir -p $RPM_BUILD_ROOT%{_bindir} cat > %{buildroot}%{_bindir}/Singular << EOF
cat > $RPM_BUILD_ROOT%{_bindir}/Singular << EOF #!/bin/sh
#!/bin/bash -i
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch} module load surf-geometry-%{_arch}
SINGULARPATH=%{singulardir} %{singulardir}/Singular-%{upstreamver} "\$@" export SINGULARPATH=%{singulardir}
exec %{singulardir}/Singular-%{upstreamver} "\$@"
EOF EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/Singular chmod 0755 %{buildroot}%{_bindir}/Singular
# TSingular # TSingular
cat > $RPM_BUILD_ROOT%{_bindir}/TSingular << EOF cat > %{buildroot}%{_bindir}/TSingular << EOF
#!/bin/bash -i #!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch} module load surf-geometry-%{_arch}
%{singulardir}/TSingular --singular %{_bindir}/Singular "\$@" exec %{singulardir}/TSingular --singular %{_bindir}/Singular "\$@"
EOF EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/TSingular chmod 0755 %{buildroot}%{_bindir}/TSingular
# remove some wrong executable permissions
chmod 644 $RPM_BUILD_ROOT%{singulardir}/LIB/*.lib
# surfex # surfex
cat > $RPM_BUILD_ROOT%{_bindir}/surfex << EOF cat > %{buildroot}%{_bindir}/surfex << EOF
#!/bin/bash -i #!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch} module load surf-geometry-%{_arch}
%{singulardir}/surfex %{singulardir}/LIB/surfex "\$@" exec %{singulardir}/surfex %{singulardir}/LIB/surfex "\$@"
EOF EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/surfex chmod 0755 %{buildroot}%{_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
# ESingular # ESingular
cat > $RPM_BUILD_ROOT%{_bindir}/ESingular << EOF cat > %{buildroot}%{_bindir}/ESingular << EOF
#!/bin/bash -i #!/bin/sh
. /etc/profile.d/modules.sh
module load surf-geometry-%{_arch} module load surf-geometry-%{_arch}
export ESINGULAR_EMACS_LOAD=%{_emacs_sitestartdir}/singular-init.el exec %{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
export ESINGULAR_EMACS_DIR=%{_emacs_sitelispdir}/singular
%{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
EOF 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 %check
make DESTDIR=$RPM_BUILD_ROOT install export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
# make a version without singular defined make check
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"
%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 %post
sed -e 's|<\(cf_gmp.h>\)|<factory/\1|' \ /sbin/install-info %{_infodir}/singular.hlp %{_infodir}/dir 2>/dev/null || :
-i $RPM_BUILD_ROOT%{_includedir}/singular/si_gmp.h
%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 %files
%doc README.md
%{_bindir}/Singular %{_bindir}/Singular
%{_bindir}/TSingular %{_bindir}/TSingular
%doc %{singulardir}/COPYING %{_infodir}/singular.hlp*
%doc %{singulardir}/GPL2 %{_mandir}/man1/Singular.1*
%doc %{singulardir}/GPL3 %{_mandir}/man1/TSingular.1*
%doc %{singulardir}/NEWS %{_datadir}/applications/Singular.desktop
%doc %{singulardir}/README %{_datadir}/icons/Singular.png
%dir %{singulardir} %{_datadir}/singular/singular.idx
%dir %{singulardir}/LIB %docdir %{_datadir}/singular/html/
%doc %{singulardir}/LIB/COPYING %{_datadir}/singular/html/
%{singulardir}/LIB/*.lib %{singulardir}/Singular
%{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
%{singulardir}/TSingular %{singulardir}/TSingular
%{singulardir}/*.so
%{_libdir}/libsingular.so %files libs
%if %{with polymake} %doc libpolys/README
%{singulardir}/MOD/ %license COPYING
%endif %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 %files devel
%{_includedir}/gfanlib %doc kernel/ChangeLog
%{_includedir}/libsingular.h %{_bindir}/libsingular-config
%{_includedir}/omalloc.h %{_includedir}/gfanlib/
%{_includedir}/singular %{_includedir}/singular/kernel/
%{_includedir}/singular/Singular/
%files -n factory-gftables %{_includedir}/singular/singularconfig.h
%dir %{_datadir}/factory/ %{_libdir}/libgfan.so
%{_datadir}/factory/gftables/ %{_libdir}/libSingular.so
%{_libdir}/pkgconfig/Singular.pc
%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
%files doc %files doc
%doc %{singulardir}/html %doc dox/html/
%doc %{singulardir}/*.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 %files surfex
%{_bindir}/surfex %{_bindir}/surfex
%{singulardir}/surfex %{_datadir}/singular/LIB/surfex.lib
%{singulardir}/LIB/surfex
%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 %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 * Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.7-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

View File

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