[Singular] Initial import (#819264).
pcpa
pcpa at fedoraproject.org
Tue Jul 10 23:05:34 UTC 2012
commit 2f1adeafc9abb36db34724a8f3b6ac0b870b1d92
Author: pcpa <paulo.cesar.pereira.de.andrade at gmail.com>
Date: Tue Jul 10 20:05:15 2012 -0400
Initial import (#819264).
.gitignore | 1 +
Singular-builddid.patch | 37 ++++
Singular-destdir.patch | 320 ++++++++++++++++++++++++++++++++
Singular-doc.patch | 134 +++++++++++++
Singular-headers.patch | 37 ++++
Singular-link.patch | 43 +++++
Singular-make-parallel.patch | 45 +++++
Singular-python.patch | 30 +++
Singular-shared.patch | 12 ++
Singular-undefined.patch | 47 +++++
Singular.spec | 421 ++++++++++++++++++++++++++++++++++++++++++
sources | 1 +
12 files changed, 1128 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..7ed82fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/Singular-3-1-3-3.tar.gz
diff --git a/Singular-builddid.patch b/Singular-builddid.patch
new file mode 100644
index 0000000..47046cd
--- /dev/null
+++ b/Singular-builddid.patch
@@ -0,0 +1,37 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 22:04:27.691046500 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 22:04:56.711047611 -0300
+@@ -488,10 +488,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
+ pyobject.${MODULE_SUFFIX}: pyobject.dl_o
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig 2012-05-05 22:31:33.914108772 -0300
++++ Singular-3-1-3/kernel/Makefile.in 2012-05-05 22:31:47.063109274 -0300
+@@ -267,7 +267,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
+@@ -377,7 +377,7 @@ DEFSG = -D at 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 --git a/Singular-destdir.patch b/Singular-destdir.patch
new file mode 100644
index 0000000..a98eb7d
--- /dev/null
+++ b/Singular-destdir.patch
@@ -0,0 +1,320 @@
+diff -up Singular-3-1-3/factory/GNUmakefile.in.orig Singular-3-1-3/factory/GNUmakefile.in
+--- Singular-3-1-3/factory/GNUmakefile.in.orig 2012-05-05 16:41:35.218304727 -0300
++++ Singular-3-1-3/factory/GNUmakefile.in 2012-05-05 16:41:40.043304855 -0300
+@@ -635,45 +635,45 @@ installtest: test_install
+ install install-libsingular: $(installtargets)
+
+ 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) $(templatedir)
+- $(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.h
+- $(INSTALL_DATA) cf_gmp.h $(includedir)/cf_gmp.h
+- $(INSTALL_DATA) factoryconf.h $(includedir)/factoryconf.h
+- $(INSTALL_DATA) $(srcdir)/ftmpl_inst.cc $(templatedir)/ftmpl_inst.cc
++ $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
++ $(MKINSTALLDIRS) $(DESTDIR)$(includedir)
++ $(MKINSTALLDIRS) $(DESTDIR)$(templatedir)
++ $(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.h
++ $(INSTALL_DATA) cf_gmp.h $(DESTDIR)$(includedir)/cf_gmp.h
++ $(INSTALL_DATA) factoryconf.h $(DESTDIR)$(includedir)/factoryconf.h
++ $(INSTALL_DATA) $(srcdir)/ftmpl_inst.cc $(DESTDIR)$(templatedir)/ftmpl_inst.cc
+ for file in $(templatesrc) $(templateincl); do \
+- $(INSTALL_DATA) $(srcdir)/templates/$$file $(templatedir)/$$file; \
++ $(INSTALL_DATA) $(srcdir)/templates/$$file $(DESTDIR)$(templatedir)/$$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-3/IntegerProgramming/Makefile.in.orig Singular-3-1-3/IntegerProgramming/Makefile.in
+--- Singular-3-1-3/IntegerProgramming/Makefile.in.orig 2012-05-05 16:41:35.220304700 -0300
++++ Singular-3-1-3/IntegerProgramming/Makefile.in 2012-05-05 16:41:40.043304855 -0300
+@@ -57,12 +57,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-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig 2012-05-05 16:41:35.223304674 -0300
++++ Singular-3-1-3/kernel/Makefile.in 2012-05-05 16:41:40.044304854 -0300
+@@ -275,9 +275,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
+
+@@ -293,12 +293,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
+@@ -307,10 +307,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-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+--- Singular-3-1-3/libfac/Makefile.in.orig 2012-05-05 16:41:35.225304662 -0300
++++ Singular-3-1-3/libfac/Makefile.in 2012-05-05 16:41:40.045304851 -0300
+@@ -147,17 +147,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-3/omalloc/Makefile.in.orig Singular-3-1-3/omalloc/Makefile.in
+--- Singular-3-1-3/omalloc/Makefile.in.orig 2012-05-05 16:41:35.227304656 -0300
++++ Singular-3-1-3/omalloc/Makefile.in 2012-05-05 16:41:40.045304851 -0300
+@@ -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-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 16:41:35.230304661 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 16:42:11.280306046 -0300
+@@ -560,51 +560,51 @@ install_all: install
+ install-nolns: all installbin-nolns installslib-nolns
+
+ installbin: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
+- ${MKINSTALLDIRS} ${bindir}
+- ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
++ ${MKINSTALLDIRS} $(DESTDIR)${bindir}
++ ${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
+ -for file in *.so; do \
+- ${INSTALL_PROGRAM} $$file ${bindir}; \
++ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
+ done
+- ${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} 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}
+- ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
++ ${MKINSTALLDIRS} $(DESTDIR)${bindir}
++ ${INSTALL_PROGRAM} ${SING_EXEC} $(DESTDIR)${SINGULAR}
+ -for file in *.so; do \
+- ${INSTALL_PROGRAM} $$file ${bindir}; \
++ ${INSTALL_PROGRAM} $$file $(DESTDIR)${bindir}; \
+ 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 $(DESTDIR)${slibdir} || ${LN_S} `pwd`/LIB $(DESTDIR)${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
+- ${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 subexpr.h tok.h grammar.h ipid.h lists.h ipshell.h attrib.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
+diff -up Singular-3-1-3/doc/Makefile.in.orig Singular-3-1-3/doc/Makefile.in
+--- Singular-3-1-3/doc/Makefile.in.orig 2012-05-05 17:30:31.843417102 -0300
++++ Singular-3-1-3/doc/Makefile.in 2012-05-05 17:30:41.009417470 -0300
+@@ -68,7 +68,7 @@ DOC_SUBDIR = ./d2t_singular
+ EX_SUBDIR = ./examples
+ CHKSUM_DB = ${DOC_SUBDIR}/chksum
+ 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@
+ PL2DOC = ${PERL} ./pl2doc.pl -db ${CHKSUM_DB}
+
diff --git a/Singular-doc.patch b/Singular-doc.patch
new file mode 100644
index 0000000..5db6d78
--- /dev/null
+++ b/Singular-doc.patch
@@ -0,0 +1,134 @@
+diff -up Singular-3-1-3/doc/Makefile.in.orig Singular-3-1-3/doc/Makefile.in
+--- Singular-3-1-3/doc/Makefile.in.orig 2012-05-05 19:44:47.214725583 -0300
++++ Singular-3-1-3/doc/Makefile.in 2012-05-05 19:44:55.751725909 -0300
+@@ -62,13 +62,13 @@ 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 = ${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@
+ PL2DOC = ${PERL} ./pl2doc.pl -db ${CHKSUM_DB}
+
+@@ -320,7 +320,6 @@ install-sharedist: singular.hlp html sin
+ ${MKINSTALLDIRS} ${install_htmldir}
+ cp ${HTML_SUBDIR}/*.htm ${install_htmldir}
+ cp ${HTML_SUBDIR}/*.gif ${install_htmldir}
+- -cp ${HTML_SUBDIR}/*.png ${install_htmldir}
+ cp ${HTML_SUBDIR}/*.jpg ${install_htmldir}
+ chmod -R +rX ${install_htmldir}
+ ${MKINSTALLDIRS} ${install_docdir}
+diff -up Singular-3-1-3/emacs/Makefile.in.orig Singular-3-1-3/emacs/Makefile.in
+--- Singular-3-1-3/emacs/Makefile.in.orig 2012-05-05 19:44:52.566725787 -0300
++++ Singular-3-1-3/emacs/Makefile.in 2012-05-05 19:45:07.460726353 -0300
+@@ -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
++ @echo "No make depend available!"
+--- Singular-3-1-3/emacs/.emacs-singular.orig 2012-05-05 20:00:42.103762148 -0300
++++ Singular-3-1-3/emacs/.emacs-singular 2012-05-05 20:01:17.852763517 -0300
+@@ -57,13 +57,12 @@
+ ;;; ;; add Singular toolbar for XEmacs
+ ;;; <... insert the code below if you are running XEmacs ...>
+ ;;;
+-;;; ;; add Singular Emacs home directory to `load-path'
+-;;; (setq load-path (cons "<your-singular-emacs-home-directory>" load-path))
+-;;; (autoload 'singular "singular"
+-;;; "Start Singular using default values." t)
+-;;; (autoload 'singular-other "singular"
+-;;; "Ask for arguments and start Singular." t)
+-;;;
++;; add Singular Emacs home directory to `load-path'
++(setq load-path (cons "<your-singular-emacs-home-directory>" load-path))
++(autoload 'singular "singular"
++ "Start Singular using default values." t)
++(autoload 'singular-other "singular"
++ "Ask for arguments and start Singular." t)
+
+ ;; extra key bindings
+ (add-hook 'singular-interactive-mode-hook
diff --git a/Singular-headers.patch b/Singular-headers.patch
new file mode 100644
index 0000000..5af8ed8
--- /dev/null
+++ b/Singular-headers.patch
@@ -0,0 +1,37 @@
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig 2012-05-05 15:03:36.064079528 -0300
++++ Singular-3-1-3/kernel/Makefile.in 2012-05-05 15:03:55.870080289 -0300
+@@ -48,7 +48,7 @@ PIPE = @PIPE@
+ CFLAGS = @CFLAGS@ ${PIPE}
+ CXXFLAGS = @CXXFLAGS@ ${PIPE}
+ CXXTEMPLFLAGS = @CXXTEMPLFLAGS@
+-CPPFLAGS = -I${srcdir} -I.. -I at prefix@ @CPPFLAGS@
++CPPFLAGS = -I${srcdir} -I.. -I../omalloc -I${srcdir}/../factory -I at prefix@ @CPPFLAGS@
+ DEFS = -DNDEBUG -DOM_NDEBUG -D at SING_UNAME@ @DEFS@
+ LDFLAGS = @LDFLAGS@
+ LD_DYN_FLAGS = @LD_DYN_FLAGS@
+diff -up Singular-3-1-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+diff -up Singular-3-1-3/libfac/Makefile.in.orig Singular-3-1-3/libfac/Makefile.in
+--- Singular-3-1-3/libfac/Makefile.in.orig 2012-05-05 15:16:31.642109243 -0300
++++ Singular-3-1-3/libfac/Makefile.in 2012-05-05 15:17:01.494110342 -0300
+@@ -37,7 +37,7 @@ MKINSTALLDIRS = ./mkinstalldirs
+ ##
+ CXXFLAGS = @CXXFLAGS@
+ CXXTEMPLFLAGS = @CXXTEMPLFLAGS@
+-CPPFLAGS = -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I.. -I${prefix} @CPPFLAGS@
++CPPFLAGS = -I${srcdir}/factor -I${srcdir}/charset -I${srcdir} -I${srcdir}/.. -I${srcdir}/../factory -I${prefix} @CPPFLAGS@
+ DEFS = @DEFS@
+ LDFLAGS = @LDFLAGS@
+ LIBS = -lfac -lcf -lcfmem -lgmp @LIBS@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 15:25:21.273129522 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 15:26:08.502131306 -0300
+@@ -76,7 +76,7 @@ CFLAGS = @CFLAGS@ ${PIPE}
+ CXXFLAGS = @CXXFLAGS@ -I.. -I at prefix@ ${PIPE}
+ CXXTEMPLFLAGS = @CXXTEMPLFLAGS@ -I.. -I at prefix@
+ ifneq ($(SINGUNAME),ix86-Win)
+-CPPFLAGS = -I${srcdir} -I.. -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
++CPPFLAGS = -I${srcdir} -I${srcdir}/.. -I${srcdir}/../omalloc -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
+ else
+ ## Dirs after @CPPFLAGS@ are for PySingular
+ CPPFLAGS = -I${srcdir} -I.. -I at prefix@ @CPPFLAGS@ @PYTHON_CPPFLAGS@
diff --git a/Singular-link.patch b/Singular-link.patch
new file mode 100644
index 0000000..bdca30c
--- /dev/null
+++ b/Singular-link.patch
@@ -0,0 +1,43 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 16:29:28.539276776 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 16:30:06.024278325 -0300
+@@ -380,13 +380,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}
+
+ libsingular.a: mod2.h Makefile version.h $(WIN_LIBS) scanner.cc ${OBJS} \
+ iparith.o libparse.cc claptmpl.o mpsr_Tok.o
+@@ -441,7 +441,7 @@ version.h: ${SOURCES} ${HEADERS} Makefil
+ echo "#define CXX \"" ${CXX} ${CXXFLAGS} ${DEFS} "\"" >>version.h
+
+ 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
+
+ libparse_main.o: libparse.cc
+ ${CXX} ${CPPFLAGS} -c -o libparse_main.o libparse.cc -DSTANDALONE_PARSER
+@@ -462,12 +462,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
+
+ 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
+
+ feOpt.o: feOpt.inc feOptES.inc feOptTS.inc
+ extra.o: feOpt.inc
diff --git a/Singular-make-parallel.patch b/Singular-make-parallel.patch
new file mode 100644
index 0000000..0acc1a6
--- /dev/null
+++ b/Singular-make-parallel.patch
@@ -0,0 +1,45 @@
+diff -up Singular-3-1-3/kernel/Makefile.in.orig Singular-3-1-3/kernel/Makefile.in
+--- Singular-3-1-3/kernel/Makefile.in.orig 2012-05-05 14:14:28.055966942 -0300
++++ Singular-3-1-3/kernel/Makefile.in 2012-05-05 14:14:40.293967976 -0300
+@@ -243,7 +243,7 @@ p_Procs_Lib.o: p_Procs_Lib.inc
+
+ # Hmm compiling with -fomit-frame-pointer resulted in access violation
+ # under cygwin
+-prCopy.o: prCopy.inc
++prCopy.o prCopy.og prCopy.op: prCopy.inc
+
+ prCopy.inc : prCopyMacros.h prCopyTemplate.cc prCopy.pl
+ $(PERL) prCopy.pl > prCopy.xx && mv prCopy.xx prCopy.inc
+diff -up Singular-3-1-3/Makefile.in.orig Singular-3-1-3/Makefile.in
+--- Singular-3-1-3/Makefile.in.orig 2012-05-05 14:13:29.999964494 -0300
++++ Singular-3-1-3/Makefile.in 2012-05-05 14:13:41.293963889 -0300
+@@ -146,14 +146,14 @@ local-maintainer-clean: local-distclean
+ rm -rf configure
+
+ clean mostlyclean: local-clean
+- $(recurse)
++ +$(recurse)
+
+ distclean: local-distclean
+- $(recurse)
++ +$(recurse)
+ rm -rf build
+
+ maintainer-clean: uninstall local-maintainer-clean
+- $(recurse)
++ +$(recurse)
+
+ ##############################################################
+ # some extra targets for the specific packages
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 14:13:57.799964872 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 14:14:14.685966006 -0300
+@@ -413,7 +413,7 @@ iparith.o mpsr_Tok.o : iparith.inc mpsr_
+
+ cntrlc.o cntrlc.og : feOptES.inc feOptTS.inc feOpt.inc version.h
+
+-misc_ip.o emacs.o tesths.o: version.h
++misc_ip.o emacs.o tesths.o: feOpt.inc version.h
+
+ claptmpl.o: claptmpl.cc mod2.h
+ ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${DEFS} -c $<
diff --git a/Singular-python.patch b/Singular-python.patch
new file mode 100644
index 0000000..8e6cd87
--- /dev/null
+++ b/Singular-python.patch
@@ -0,0 +1,30 @@
+diff -up Singular-3-1-3/Singular/configure.orig Singular-3-1-3/Singular/configure
+--- Singular-3-1-3/Singular/configure.orig 2012-05-05 14:09:57.443956412 -0300
++++ Singular-3-1-3/Singular/configure 2012-05-05 14:11:06.261959072 -0300
+@@ -1800,7 +1800,7 @@ python_exe_name="no"
+ PYTHON_PLUGIN="module"
+ PYTHON_LINKAGE="static"
+
+-if test "${with_python+set}" == set; then
++if test "${with_python+set}" = set; then
+ case "${with_python}" in
+ yes|static*|dynamic*|shared*|module*|embed*)
+ python_exe_name="python"
+@@ -1971,7 +1971,7 @@ echo "configure:1968: checking for Pytho
+ py_version=`$PYTHON -c "from distutils.sysconfig import *; \
+ from string import join; \
+ print join(get_config_vars('VERSION'))"`
+- if test "$py_version" == "None"; then
++ if test "$py_version" = "None"; then
+ if test -n "$PYTHON_VERSION"; then
+ py_version=$PYTHON_VERSION
+ else
+@@ -2134,7 +2134,7 @@ rm -f conftest*
+
+ echo "$ac_t""$pythonstaticexists" 1>&6
+
+- if test "$pythonstaticexists" == yes ; then
++ if test "$pythonstaticexists" = yes ; then
+ cat >> confdefs.h <<\EOF
+ #define HAVE_STATIC_PYTHON 1
+ EOF
diff --git a/Singular-shared.patch b/Singular-shared.patch
new file mode 100644
index 0000000..fa82e92
--- /dev/null
+++ b/Singular-shared.patch
@@ -0,0 +1,12 @@
+diff -up Singular-3-1-3/Singular/Makefile.in.orig Singular-3-1-3/Singular/Makefile.in
+--- Singular-3-1-3/Singular/Makefile.in.orig 2012-05-05 14:17:52.039974588 -0300
++++ Singular-3-1-3/Singular/Makefile.in 2012-05-05 14:18:01.501974441 -0300
+@@ -136,7 +136,7 @@ LIBSINGULAR_LIBS =-lsingfac -lsingcf -ln
+
+ SO_SUFFIX = so
+
+-#LIBSINGULAR_FLAGS = -export-dynamic
++LIBSINGULAR_FLAGS = -shared
+ LIBSINGULAR_LD = $(CXX)
+
+ # correct suffix for dynamic linking
diff --git a/Singular-undefined.patch b/Singular-undefined.patch
new file mode 100644
index 0000000..2c9d63d
--- /dev/null
+++ b/Singular-undefined.patch
@@ -0,0 +1,47 @@
+diff -up Singular-3-1-3/Singular/misc_ip.cc.orig Singular-3-1-3/Singular/misc_ip.cc
+--- Singular-3-1-3/Singular/misc_ip.cc.orig 2012-05-09 00:58:45.370543834 -0300
++++ Singular-3-1-3/Singular/misc_ip.cc 2012-05-09 01:00:18.559547404 -0300
+@@ -1147,7 +1147,6 @@ void siInit(char *name)
+ errorreported = 0;
+ }
+
+-#ifdef LIBSINGULAR
+ #ifdef HAVE_FACTORY
+ // the init routines of factory need mmInit
+ int mmInit( void )
+@@ -1155,4 +1154,3 @@ int mmInit( void )
+ return 1;
+ }
+ #endif
+-#endif
+diff -up Singular-3-1-3/Singular/tesths.cc.orig Singular-3-1-3/Singular/tesths.cc
+--- Singular-3-1-3/Singular/tesths.cc.orig 2012-05-09 00:58:34.713543427 -0300
++++ Singular-3-1-3/Singular/tesths.cc 2012-05-09 00:59:39.263545898 -0300
+@@ -48,27 +48,6 @@
+ extern int siInit(char *);
+
+ #if ! defined(LIBSINGULAR)
+-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 )
+-{
+-#ifndef SI_THREADS
+- return mmInit2();
+-#else
+- return 1;
+-#endif
+-}
+-
+ /*0 implementation*/
+ int main( /* main entry to Singular */
+ int argc, /* number of parameter */
diff --git a/Singular.spec b/Singular.spec
new file mode 100644
index 0000000..94e2cc2
--- /dev/null
+++ b/Singular.spec
@@ -0,0 +1,421 @@
+%global singulardir %{_libdir}/Singular
+
+Name: Singular
+Version: 3.1.3
+Release: 6%{?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/3-1-3/Singular-3-1-3-3.tar.gz
+URL: http://www.singular.uni-kl.de/
+BuildRequires: emacs
+BuildRequires: flex
+BuildRequires: gmp-devel
+BuildRequires: ncurses-devel
+BuildRequires: ntl-devel
+BuildRequires: readline-devel
+# Need uudecode for documentation images in tarball
+BuildRequires: sharutils
+BuildRequires: texinfo
+BuildRequires: tex(latex)
+# Requires: surf
+
+# Adapted from sagemath Singular.configure.patch
+Patch0: Singular-python.patch
+# Adapted from sagemath make_parallel.patch
+Patch1: Singular-make-parallel.patch
+# Adapted from sagemath Singular.Makefile.in.shared.patch
+Patch2: Singular-shared.patch
+# Use destdir in install targets
+Patch3: Singular-destdir.patch
+# Find headers in source tree
+Patch4: Singular-headers.patch
+# Find and link to generated libraries
+Patch5: Singular-link.patch
+# Do not attempt to load non existing modules, do not even run
+# the binary in DESTDIR when building the documentation
+Patch6: 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
+Patch7: Singular-builddid.patch
+# Correct undefined symbol 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.
+Patch8: Singular-undefined.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.
+
+%package devel
+Summary: Singular development files
+Group: Development/Libraries
+Requires: factory-devel
+Requires: libfac-devel
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+This package contains the Singular development files.
+
+%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 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.
+
+%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.
+
+%description doc
+This package contains the Singular documentation files.
+
+%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.
+
+%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}-3-1-3
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+
+sed -i -e "s|gftabledir=.*|gftabledir='%{singulardir}/LIB/gftables'|" \
+ -e "s|explicit_gftabledir=.*|explicit_gftabledir='%{singulardir}/LIB/gftables'|" \
+ factory/configure.in
+
+# Force use of system ntl
+rm -fr ntl
+
+%build
+export CFLAGS="%{optflags} -fPIC"
+export CXXFLAGS=$CFLAGS
+
+# build components in specific order to not need to build & install
+# in a single make command
+%configure \
+ --bindir=%{singulardir} \
+ --with-apint=gmp \
+ --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-doc \
+ --with-malloc=system
+make %{?_smp_mflags} Singular
+# factory needs omalloc built
+make %{?_smp_mflags} -C omalloc
+
+pushd factory
+%configure \
+ --bindir=%{singulardir} \
+ --includedir=%{_includedir}/factory \
+ --with-apint=gmp \
+ --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-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} \
+ install \
+ install-libsingular \
+ install-sharedist
+
+# does not need to be in top directory
+mv $RPM_BUILD_ROOT%{_includedir}/{my,om}limits.h \
+ $RPM_BUILD_ROOT%{_includedir}/singular
+
+# symlink to builddir
+rm $RPM_BUILD_ROOT%{_prefix}/LIB
+
+# also installed in libdir
+rm -f $RPM_BUILD_ROOT%{_bindir}/*.so
+rm -f $RPM_BUILD_ROOT%{singulardir}/libsingular.so
+
+# 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
+
+# create a script also setting SINGULARPATH
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+cat > $RPM_BUILD_ROOT%{_bindir}/Singular << EOF
+#!/bin/sh
+
+SINGULARPATH=%{singulardir} %{singulardir}/Singular-3-1-3 "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_bindir}/Singular
+
+# TSingular
+cat > $RPM_BUILD_ROOT%{_bindir}/TSingular << EOF
+#!/bin/sh
+
+%{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
+
+# surfex
+cat > $RPM_BUILD_ROOT%{_bindir}/surfex << EOF
+#!/bin/sh
+
+%{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
+
+# ESingular
+cat > $RPM_BUILD_ROOT%{_bindir}/ESingular << EOF
+#!/bin/sh
+
+export ESINGULAR_EMACS_LOAD=%{_emacs_sitestartdir}/singular-init.el
+export ESINGULAR_EMACS_DIR=%{_emacs_sitelispdir}/singular
+%{singulardir}/ESingular --singular %{_bindir}/Singular "\$@"
+EOF
+chmod +x $RPM_BUILD_ROOT%{_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
+%configure \
+ --bindir=%{singulardir} \
+ --includedir=%{_includedir}/factory \
+ --with-apint=gmp \
+ --with-gmp=%{_prefix} \
+ --with-ntl=%{_prefix} \
+ --with-NTL \
+ --without-Singular \
+ --enable-gmp=%{_prefix}
+ # avoid missing "print" symbols not used elsewhere
+ make CPPFLAGS="-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}
+ # automatically generated file at install time ignores includedir
+ sed -e 's|<factory|<factory/factory|' \
+ -e 's|<templates/|<factory/templates/|' \
+ -i $RPM_BUILD_ROOT%{_includedir}/factory/templates/ftmpl_inst.cc
+popd
+
+%files
+%{_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}/surfex
+%{singulardir}/toric_ideal
+%{singulardir}/TSingular
+%{singulardir}/*.so
+%{_libdir}/libsingular.so
+
+%files devel
+%{_includedir}/libsingular.h
+%{_includedir}/omalloc.h
+%{_includedir}/singular
+
+%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
+%doc %{singulardir}/html
+%doc %{singulardir}/*.html
+
+%files surfex
+%{_bindir}/surfex
+%{singulardir}/surfex
+%{singulardir}/LIB/surfex
+
+%files emacs
+%{_bindir}/ESingular
+%{singulardir}/ESingular
+%{_emacs_sitelispdir}/singular
+%{_emacs_sitestartdir}/singular-init.el
+
+%changelog
+* Sun Jul 8 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-6
+- Update license field to match valid values.
+- Provide newer libfac-devel matching Singular version (#819264).
+- Provide newer factory-devel matching Singular version (#819264).
+- Remove platform specific factoryconf.h file as only platform specific
+ contents it has is "#define INT64 long long int" what is not really correct,
+ neither completely wrong...
+
+* Sun Jul 1 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-5
+- Do not conflict Singular-devel with libfac-devel.
+
+* Sun Jul 1 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-4
+- Update license information to match COPYING information.
+
+* Wed May 9 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-3
+- Correct unresolved mmInit symbol in libsingular.so.
+
+* Sun May 6 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-2
+- Install singular factory headers in singular devel directory.
+- Tag singular-doc files as documentation.
+
+* Sat May 5 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 3.1.3-1
+- Initial Singular spec.
diff --git a/sources b/sources
index e69de29..a2e16d8 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+37e532fb6cece957e90a4be9ad1d375b Singular-3-1-3-3.tar.gz
More information about the scm-commits
mailing list