= 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 <martinralbrecht@googlemail.com>
Burcin Erocal <burcin@erocal.org>
== 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 ==
* NTL6_compatibility.patch taken from commit
ddb348e97a991972e5dfee690a66663ba0418f40
and further updated.
* factory_template_instantiation.patch taken from commit
561842a06ad4b44f3b85b28ac35e7946eaba9a30
* assert.patch: logic seems to be broken on some platforms
* configure_comma.patch: remove a superfluous "," from configure.
* Minor.h.patch: needs to have <time.h> included on Cygwin
* slibdir.patch: set default slibdir to ${datarootdir}/singular
instead of ${prefix}/LIB, see #13344.
* 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).
* exeext.patch: Add $(EXEEXT) to some executable names.
* cygwin64.path: Support for Cywgin64.
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-6.p1 (Jean-Pierre Flori, 31 December 2013) ===
* #14876: update patch for NTL compatibility.
=== singular-3-1-6.p0 (Jeroen Demeyer, 26 August 2013) ===
* Remove the following patches, which were fixed upstream:
- NTL_negate.patch
- install_table.patch
- pullrequest215.patch
- sage_trac_12089.patch
- singular_15435.patch
- singular_part_of_changeset_baadc0f7.patch
- singular_trac_439.patch
- singular_trac_440.patch
- singular_trac_441.patch
- singular_trac_443.patch
* Removed cygwin-makefile.patch, which is hopefully not needed anymore.
* Rebased some other patches.
* Add configure_comma.patch.
=== 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 <jmbr@superadditive.com>
+ dropped dependencies on flex and bison
* 20070802 Martin Albrecht <malb@informatik.uni-bremen.de>
+ new upstream release (3-0-3)
+ adapted new spkg structure (all changes in patches subdirectory)
* 20070506 Martin Albrecht <malb@informatik.uni-bremen.de>
+ build script improvements
+ changes to libsingular.h
* 20070326 Martin Albrecht <malb@informatik.uni-bremen.de>
+ 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 <malb@informatik.uni-bremen.de>
+ 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