I propose that we make GNU patch a standard package, so that patches
to Sage can be made in a more sensible manner than using 'cp' as now.
(There's no point in 'patch' being optional at all, as it would be
needed when building Sage).

For
 * It is small - the source code is about 240 KB, so a Sage package
could be a similar size.
 * It would be easy to maintain - we will rarely if ever need to update it.
 * It will allow small patches to be made to Sage, without the extra
bulk that copying files makes
 * It should reduce the chance of one patch screwing up another (see
my post about Singular)
 * The amount of code that needs to be added to trac would be
significantly reduced. Currently making one small patch to a large
file in Sage means the Mercurial patch is huge, making it more
difficult to review.
 * It would avoid the need to maintain both patched files and diff
files, and keep them in sync. I showed an example yesterday where one
of the patches to Python has a diff file that is older than the
changed source file.
 * My removing the need to have large files copied, we could actually
reduce the size of Sage, though this is not going to happen overnight
- nobody is likely to want to elect to remove all patches that use
'cp' and replace them by ones that use 'patch'.
 * Since everyone will have the same version of patch, there should be
no issues like different patch commands behaving differently.
 * I don't mind creating the package - it would be a simple task.
 * I don't mind taking on the role of maintainer for 2 years

Against.
 * It adds more to Sage.
 * It could not be optional/experimental. One would have to make a
decision for it to be 'standard' from the start. Otherwise it would
form no useful function at al.
 * Mercurial can arguably be used, but this is difficult if not
impossible in my opinion. The version of Python shipped with Solaris
is too old to work with Mercurial, so we need a recent python to build
Mercurial. But Python needs patches to be built. We could patch Python
by using 'cp' then switch to Mercurial after it is built, but that
needs two different methods of patching Sage. (I've already shown
there is a bad patch in Python).

So do you vote

[Yes] Include GNU patch as a standard package in Sage
[No] Do not include it.

Dave

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to