= Singular = == Description == Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory. == License == GPLv2 or GPLv3 == PKG Maintainers == Martin Albrecht Burcin Erocal == Upstream Contact == libsingular-devel@mathematik.uni-kl.de http://www.singular.uni-kl.de/ == Dependencies == GNU patch, GMP/MPIR, NTL, Termcap, Readline and MPFR == Special Update/Build Instructions == See spkg-src. == Patches == * assert.patch: logic seems to be broken on some platforms * install_table.patch: install singular/table.h header file, needed for the libsing GAP package. * Minor.h.patch: needs to have included on Cygwin * NTL_negate.patch: change negate() to NTL::negate() to fix a conflict with std::negate(). See http://www.singular.uni-kl.de:8002/trac/ticket/437 * singular_trac_439.patch: fix taken from upstream for http://www.singular.uni-kl.de:8002/trac/ticket/439 * singular_trac_440.patch: fix taken from upstream for http://www.singular.uni-kl.de:8002/trac/ticket/440 * singular_trac_441.patch: fix taken from upstream for http://www.singular.uni-kl.de:8002/trac/ticket/441 * singular_trac_443.patch: fix taken from upstream for http://www.singular.uni-kl.de:8002/trac/ticket/443 * sage_trac_12089.patch: fix (also reported upstream) from https://github.com/alexanderdreyer/SingularSources/commit/7902222 * slibdir.patch: set default slibdir to ${datarootdir}/singular instead of ${prefix}/LIB, see #13344. * singular_15435.patch: Backport of http://www.singular.uni-kl.de:8002/trac/changeset/15435 See also http://www.singular.uni-kl.de:8002/trac/ticket/463 and http://trac.sagemath.org/sage_trac/ticket/13731. * singular_part_of_changeset_baadc0f7.patch: Backport a small part of https://github.com/Singular/Sources/commit/9ece45a2420dc43ff03a48c40423a3009c235fdd that fixes one memory corruption (writing out of bound). * cygwin-makefile.patch: simple fix for Cygwin, see http://www.singular.uni-kl.de:8002/trac/ticket/476/ * sage_trac_14295.patch: Fix for GCC 4.7.x on Solaris; see http://trac.sagemath.org/sage_trac/ticket/14295 and the changelog entry for singular-3-1-5.p5 below. * osx_link.patch: #14415: Fixes linker problems on OS X PPC. * sanitize_gmp_header_hack.patch: Fix and simplify generation of `factory/cf_gmp.h` (cf. #14737). * pullrequest215.patch: Backport of first 3 patches from https://github.com/Singular/Sources/pull/215 Other notes * The option '--without-dynamic-kernel' is used on *all* systems with the exception of Linux. The online README at http://www.singular.uni-kl.de/svn/trunk/README says this should be used on Solaris, with no mention of it being necessary for OS X, or any other platform except Solaris. * The online readme says that CONFIG_SHELL should be set to /bin/bash on Solaris. This is not done currently. Since this does not build fully as a 64-bit application on Solaris, CONFIG_SHELL should be investigated as a possible cause later. * Be sure that Singular/Singular.rc.in is present, as occasionally this was missing, which caused problems on Cygwin (e.g., see #10235) * Due to http://www.singular.uni-kl.de:8002/trac/ticket/438, we currently always build Singular with its debug code. Change --with-debug to $WITH_DEBUG in the configure call if this is fixed. * We build Singular without FLINT support because Singular requires FLINT 2.x. If a sufficiently recent version of FLINT is ever added to Sage, we should make Singular use it (configure --with-flint="$SAGE_LOCAL"). * If the environment variable SAGE_DEBUG is set to "yes", then omalloc will be replaced by xalloc. The resulting Singular executable and libsingular library will be slower than with omalloc, but allow for easier debugging of memory corruptions. == ChangeLog == === singular-3-1-5.p9 (Paul Zimmermann, Jeroen Demeyer, 26 August 2013) === * #13770: Add upstream pull request 215 for multivariate factorisation. * spkg-install: split apply_patches step in 2 steps: choose_patches and apply_patches; add a few small fixes. * Remove install-sh which is no longer needed. === singular-3-1-5.p8 (Leif Leonhardy, Volker Braun, 10 July 2013) === * #14737: Fix and simplify generation of `factory/cf_gmp.h` (by adding `patches/sanitize_gmp_header_hack.patch`). * Add spkg-src and track all files === singular-3-1-5.p7 (Jeroen Demeyer, 9 April 2013) === * #14429: On sparc processors, build with --with-align=8. === singular-3-1-5.p6 (Jeroen Demeyer, 5 April 2013) === * #14415: Add osx_link.patch to fix linker problems on OS X 10.4 PPC with GCC 4.7.2. === singular-3-1-5.p5 (Leif Leonhardy, March 18th 2013) === * #14295: Singular fails to build with GCC 4.7.x on Solaris. On Solaris, with `__cplusplus >= 199711L`, `floor()` and `log10()` are overloaded functions which get pulled into the global namespace, such that calling them with an `int` gets ambiguous. Patch `kernel/bigintmat.cc` (`patches/sage_trac_14295.patch`) to cast parameters to `floor()` and `log10()` from `int` to `double`, making the calls unambiguous. === singular-3-1-5.p4 (Jean-Pierre Flori, 12 February 2013) === * Trac #14033: prevent Singular from always linking to ncurses on Cygwin. === singular-3-1-5.p3 (Volker Braun, 28 December 2012) === * Trac #13876: Rename SINGULAR_XALLOC to SAGE_DEBUG * Build fixes for the Sage library with SAGE_DEBUG=yes === singular-3-1-5.p2 (Simon King, 03 December 2012) === * Trac #13731 * Optionally replace omalloc with xalloc (a thin compatibility layer on top of malloc) so that debugging of memory corruptions becomes easier. * Include two upstream fixes for memory corruptions. === singular-3-1-5.p1 (Simon King, 29 August 2012) === * Trac #13237: add patch install_table.patch - singular_15435.patch - singular_part_of_changeset_baadc0f7.patch * If SINGULAR_XALLOC is "yes", then omalloc is replaced by xalloc (a thin compatibility layer on top of malloc), so that debugging of memory corruptions becomes easier. === singular-3-1-5.p0 (Jeroen Demeyer, Alexander Dreyer, 10 August 2012) === * Trac #13237: Upgrade to version 3-1-5. * Removed patches which are now upstreamed: - patches/Singular.Makefile.in.shared.patch - patches/Singular.configure.patch - patches/factory.GNUmakefile.in.patch - patches/factory_configure - patches/make_parallel.patch - patches/os_x_ppc.patch * In spkg-install, simplify apply_patches(), automatically apply all patches in patches/*.patch, move conditional patches to patches/conditional * Rename some patches such that they all have the extension '.patch' * Put the two patches for SAGE_DEBUG (Singular.Makefile.in.debug.patch and kernel.Makefile.in.debug.patch) into one file conditional/sage_debug.patch. * Add several patches (see above): - NTL_negate.patch - singular_trac_439.patch - singular_trac_440.patch - singular_trac_441.patch - singular_trac_443.patch - sage_trac_12089.patch - slibdir.patch * When building Singular, don't first make install and then make install-nolns. Instead, only do the latter. * Don't create the LIB->lib symlink, which is no longer needed. * In spkg-install, remove distclean() step; merge clean_headers() and part of the old distclean() into remove_old_version(). * Only unset LD on Darwin. * Remove the unsetting of TMPDIR (bug fixed upstream). * Do not override user-set CFLAGS and CXXFLAGS. * Echo all error messages to stderr instead of stdout. * Fix various ./configure options and remove some unsupported options. * Always configure --with-debug, as --without-debug doesn't work, see http://www.singular.uni-kl.de:8002/trac/ticket/438 * Don't create sage_singular symlink, which wasn't used anyway. * Replace the $SAGE_LOCAL/bin/Singular script by a symlink. * Remove workaround for GCC-4.0.x on Darwin (obsolete by the GCC spkg). * Fix formatting of spkg-install (consistent indentation, no TABs). === singular-3-1-3-3.p6 (Leif Leonhardy, March 17th 2012) === * #12680: Fix hardcoded 'g++' (and two typos) in factory/GNUmakefile.in. === singular-3-1-3-3.p5 (Jeroen Demeyer, 22 February 2012) === * Trac #12562: Disable -pipe on SunOS, as the Sun assembler chokes on large files passed through a pipe. * Trac #12311: Don't specify an explicit path for testcc.sh. === singular-3-1-3-3.p4 (Jeroen Demeyer, 19 January 2012) === * Trac #12304: Regenerate factory/configure using autoconf-2.68 to fix a build problem on OS X 10.4. * Change spkg-changes to compress omalloc/Misc/dlmalloc/malloc.ps using gzip -9. Redownloaded upstream sources and applied spkg-changes. === singular-3-1-3-3.p3 (Julien Puydt, 7 January 2012) === * Trac #12110: Add patch to use the -shared switch by default on unknown platforms -- ARM is unknown and doesn't compile without that switch ; upstream has better support for the arch so it's not interesting to make a better fix. === singular-3-1-3-3.p2 (Jeroen Demeyer, 9 December 2011) === * Trac #12137: Add patch make_parallel.patch to fix parallel building by patching various Makefile.in's * Use $MAKE instead of make === singular-3-1-3-3.p1 (Jeroen Demeyer, 10 October 2011) === * Trac #10903: Add a patch os_x_ppc.patch to fix building on OS X PPC. * Make all patches apply at -p1 level and apply some patches for Cygwin on all systems for consistency. * Remove unused files in patches/: Singular.configure, Singular.configure.in, Singular.configure.in.patch * Exit when `patch` fails. We do not print an error message, patch is verbose enough by itself. === singular-3-1-3-3.p0 (Volker Braun, 2 October 2011) === * Trac #10903: Solaris fixes === singular-3-1-3-3 (Martin Albrecht, Burcin Erocal, Volker Braun, 28 September 2011) === * Trac #10903: new upstream release * SAGE_DEBUG now builds Singular with lots of checks === singular-3-1-1-4.p13 (Karl-Dieter Crisman, 12 August 2011) === * Trac #11550: For Cygwin, we need to include time.h in Singular/Minor.h === singular-3-1-1-4.p12 (Leif Leonhardy, Jeroen Demeyer, 10 August 2011) === * Trac #11645: Fix installation of gftables on Solaris by applying a patch to Singular/Makefile.in === singular-3-1-1-4.p11 (Jeroen Demeyer, 9 August 2011) === * Trac #11663: Make all files world-readable * Use `cp -p` in spkg-install to preserve permissions * In spkg-install, remove chmod for the Singular library * Made the following files inside src/ non-executable: Singular/LIB/phindex.lib Singular/LIB/findifs.lib Singular/LIB/dmodvar.lib Singular/LIB/dmod.lib Singular/LIB/jacobson.lib Singular/LIB/bfun.lib Singular/wrapper.cc Singular/janet.cc Singular/janet.h doc/README_download.plural.texi doc/INSTALL_unix.plural.texi doc/singular.dic doc/plural.doc doc/letterplace.doc doc/sca.doc doc/NEWS.plural.texi doc/INSTALL_win.plural.texi doc/HOWTO.ispell doc/COPYING.plural.texi factory/cf_gcd_smallp.cc === singular-3-1-1-4.p9 (Jeroen Demeyer, 3 May 2011) === * #11278: When compiling with gcc version 4.0.x, build with -O3 optimization instead of -O2 to fix build errors on older Mac OS X systems. === singular-3-1-1-4.p8 (Jeroen Demeyer, Alexander Dreyer, David Kirkby, 19th April 2011) === * #11084. Drop optimisation level to -O2 since that is what upstream mostly uses. * Remove the special case for building on ia64 systems (the optimization level used to be set to -O0 on such systems). Testing on iras showed that it now works with -O2. * When building with SAGE64 set, *append* -m64 to the various flags instead of overriding. * Merged changes from Sage's Trac #11084 into the package from #9497 === singular-3-1-1-4.p6 (John Palmieri, 26th March 2011) === * change "$RM" to "rm" in spkg-install === singular-3-1-1-4.p5 (Martin Albrecht, 26th March 2011) === * enable parallel make === singular-3-1-1-4.p4 (Volker Braun, 4th February 2011) === * compile fix for OSX on 64-bit kernels. * removed dist/ directory. === singular-3-1-1-4.p3 (Francois Bissey, Alexander Dreyer, 21th September 2010) === * Patch by Francois Bissey: #9946: Added another dependency === singular-3-1-1-4.p2 (Alexander Dreyer, 17th September 2010) === * #9733, comment comment 41 ff: Added another dependency === singular-3-1-1-4.p1 (Alexander Dreyer, 10th September 2010) === * #9733: Restore parallel build, hopefully found all dependencies. === singular-3-1-1-4.p0 (Mitesh Patel, 10th August 2010) === * #8059: For now, restore building the package serially, to avoid parallel build problems. === singular-3-1-1-4 (Martin Albrecht, 15th July 2010) === * new upstream release * updated SPKG.txt === singular-3-1-1-3 (Martin Albrecht, 10th July 2010) === * new upstream release * updated SPKG.txt * reverting name to reflect actual Singular version format === singular-3.1.0.4.p8 (David Kirkby, 30th June 2010) === * #9397 "Resolve corrupted patches to permit Singular to build on Solaris x86/x64" A previous patch made to add a Singular target x86-SunOS has been overwritten by a later patch. I resolved these two issues, so the patch contained both changes A patch file, and a diff made from it were removed, so the patches directory has two less files than before. * #9397 Set CC="$CC -m64" and CXX="$CXX-m64" to force the -m64 flag to fully propogate thoughtout the Singular build process - otherwise it fails to do so. Setting CFALGS/CXXFLAGS is insufficient. === singular-3.1.0.4.p7 (Mitesh Patel, 8th June 2010) === * #9185: Set an empty MAKEFLAGS variable before "make". On OS X, at least, this fixes building multiple spkgs in parallel (cf. #8306). === singular-3.1.0.4.p6 (David Kirkby and Willem Jan Palenstijn, 6th June 2010) === * All changes relate to ticket #9160 * Added sections to SPKG.txt which the Sage Developers Guide should be present, but were not. These include Description, License, PKG Maintainers, Upstream Contact, Dependencies and Special Update/Build Instructions. * Added a couple of comments in the new "Special Update/Build Instructions" section about Solaris and the use of --without-dynamic-kernel option and CONFIG_SHELL. * Changed the name of package to singular-$version.$patchversion, as is common Sage practice, and not have a date of any update. Since this should be patch level 6, I've called it that. * Touched the file src/Singular/libparse.cc (Willem Jan Palenstijn) * Touched the file src/factory/configure * Removed the restriction that the OS needs to be OS X before a 64-bit build is attempted. (This still does not fully build 64-bit on OpenSolaris, though it is closer to doing so.) * Move code associated with SAGE64 outside of the code for debugging. * Ensured $SAGE_LOCAL/include is the first CPPFLAG, so the Sage include files are included before others. * Removed code which attempted to disable the dynamic kernel on OS X in 64-bit mode, since the dynamic kernel was already disabled on all platforms except Linux. It was pointless doing it twice. === singular-3-1-0-4-20100214 (William Stein, February 14, 2010) === * patch for Cygwin (trac 7338) === singular-3-1-0-4-20100120 (Martin Albrecht, January 20th, 2010) === * installing attrib.h from Singular === singular-3-1-0-4-20090818.p2 (Martin Albrecht, November 18th, 2009) === * installing lists.h from Singular (#7194) === singular-3-1-0-4-20090818.p1 () === * we forgot to update this :( === singular-3-1-0-4-20090818.p0 (Georg S. Weber, September 24th, 2009) === * added three missing /patches/*.diff files * change -O2 to -O0 on ia64 (see trac #6360 and #6240), original change: singular-3-1-0-2-20090618 (Craig Citro, June 18th, 2009) * Make a copy of install-sh and put in the same directory as spkg-install, SPKG.txt etc. For some reason, I believe one of the makefiles is looking in the wrong directory for install-sh. There are about 5 identical copies of this in the source. I'm not sure why there needs to be so many, and why even with 5 or so copile, one can't be found. Original change: singular-3-1-0-2-20090620.p0 (David Kirkby, July 19th, 2009) * (don't include singular-3-1-0-2-20090620 patch, since no longer necessary: Andrzej Giniewicz' fix GCC 4.4 compilation problem) === singular-3-1-0-4-20090818 (Martin Albrecht, August 18th, 2009) === * more includes, GCC 4.4 fixes === singular-3-1-0-4-20090726 (Martin Albrecht, July 26th, 2009) === * more includes in libsingular.h === singular-3-1-0-4-20090611 (Martin Albrecht, June 11th, 2009) === * new upstream release which makes some of our fixes redundant === singular-3-1-0-2-20090512 (Martin Albrecht, May 12th, 2009) === * new upstream release === singular-3-0-4-4-20090511 (Martin Albrecht, May 11th, 2009) === * fixed #5862 * update SPKG.txt === singular-3-0-4-4-20080711.p4 (Michael Abshoff, January 23rd, 2009) === * Integrate two patches by Georg Weber (#4181 and #5344) * update SPKG.txt * delete MacOSX junk added in singular-3-0-4-4-20080711.p3 === singular-3-0-4-4-20080711.p3 (Michael Abshoff, January 20th, 2009) === * use "--with-malloc=system" for 64 bit OSX === singular-3-0-4-4-20080711.p2 (Michael Abshoff, November 30th, 2008) === * Fix header permission problem (#4668) * delete old singular headers in $SAGE_LOCAL/include/singular === singular-3-0-4-4-20080711.p1 (Michael Abshoff, September 1st, 2008) === * Fix three Solaris issues: libsingular build options, tail POSIX issue and install missing on Solaris === singular-3-0-4-4-20080711.p0 (Michael Abshoff, August 19th, 2008) === * add 64 bit OSX support * Fix mv-factoprization bug reported by Tom Boothby === singular-3-0-4-4-20080711 (Martin Albrecht, July 11th, 2008) === * new upstream release === singular-3-0-4-2-20080405.p2 (Michael Abshoff, May 10th, 2008) === * Default to "-O2" on Linux/Itanium (fixes #2983) * Do not require flex to build Singular (fixes #3158) === singular-3-0-4-2-20080405.p1 (Michael Abshoff, April 19th, 2008) === * import Tim Abbott's Debian build fix (#2966) === singular-3-0-4-2-20080405.p0 (Martin Albrecht) === * Update Singular to the latest snapshot === singular-3-0-4-1-20071209.p3 (Michael Abshoff) === * fix memleak in kernel/longrat.cc * 20080105 William Stein -- Deleted LIB/surfex and modified LIB/all to not have surfex in it. We should *not* ship and install precompiled java without thinking it through carefully and understanding and testing it. * 20070823 Juan M. Bello Rivas + dropped dependencies on flex and bison * 20070802 Martin Albrecht + new upstream release (3-0-3) + adapted new spkg structure (all changes in patches subdirectory) * 20070506 Martin Albrecht + build script improvements + changes to libsingular.h * 20070326 Martin Albrecht + rewrote spkg-install + added first alpha of libsingular.so + removed stand-alone libfactory * 20070105 William Stein + included Singular/Singular.rc.in which was missing for some reason and is needed by the cygwin build. * 20060825 Martin Albrecht + removed hannes-sprueche.txt (not funny anyway) + removed ntl subdirectory (we ship NTL already) + removed modules subdirectory (not needed) + removed Tst subdirectory (not needed) + wrote (very simple) spkg-install from scratch * 20060831 William Stein and Justin Walker -- fine tuning for OS X. * 20060831 William Stein -- put a lot of the workarounds from the previous Singular spkg-install script in here, since they are in fact needed in order for Singular to work after you type, e.g., make clean, or if you move the install directory. * Martin Albrecht -- add fix to libcf: Yes, It's a (new?) bug in libcf I've fixed just yesterday but got no word from the Singular people yet. They free a char ptr they are not supposed to free if I understand the ostrstring docs correctly. I've attached the one-line-fixed int_poly.cc which belongs in the factory subdirectory of Singular. * Martin Albrecht -- 2006-09-17: This looks to me as if I didn't remove all references to boost: /usr/include/boost/dynamic_bitset/dynamic_bitset.hpp:1098: error: exception I've attached an updated configure.in and configure (created with autoconf 2.60) with Boost checks disabled which should fix the problem. These belong in the Singular subdirectory: singular-3-0-2-2006-09-09/Singular