#6743: cygwin metaticket: port Sage to Microsoft Windows (via Cygwin): stage 1
--
make building Sage automatic
-------------------------------+--------------------------------------------
Reporter: was | Owner: was
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.8
Component: cygwin | Resolution:
Keywords: sd31 sd32 | Work issues:
Report Upstream: N/A | Reviewers: Jean-Pierre Flori, Dmitrii
Pasechnik, Karl-Dieter Crisman, Mike Hansen, William Stein, Luis Tabera
Authors: | Merged in:
Dependencies: | Stopgaps:
-------------------------------+--------------------------------------------
Old description:
> The goal of this ticket is that a person can:
>
> 1. Install Cygwin and certain standard Cygwin packages (listed below).
>
> 2. Extract the Sage tarball and type "`make`"
>
> and have everything build automatically with no errors. The goal is
> '''not''' that the resulting build works or Sage starts up. That will be
> for a later ticket. Adding checks for all these prereqs will also be
> part of a future ticket.
>
> ----
>
> == Most recent trials and a lot more status detail is at
> http://trac.sagemath.org/sage_trac/wiki/CygwinPort ==
>
> == Current instructions (work on Windows XP and Windows 7 with latest
> Cygwin) ==
> As below with Sage 5.6.beta2
>
> === Cygwin prereqs ===
> Here is what to install from Cygwin - use the usual stable binaries.
> * `make`, `perl`, `m4`
> * either `gcc4-core` alone and then use the optional gcc-4.7.2 spkg
> (the standard gcc-4.6.3 spkg won't be able to compile ecl) or `gcc4-core`
> and `gcc4-g++` and `gcc4-fortran` whose versions '''must''' match
> * `libiconv` - or a tweaked iconv spkg from #13912
> * `liblapack`, `liblapack0`, `liblapack-devel` - though we should be
> able to build ATLAS
> * `libncurses-devel` - needed by singular to build, not investigated
> yet.
>
> We need to add a test for '''all''' of the above packages on Cygwin which
> the prereq script does not already check, or confirm that they are not
> needed, before making the Cygwin port official.
>
> Other instructions:
> * Just to make sure, avoid building in home directories of Windows
> domain users, as they are treated in a special way by Windows (and
> Cygwin).
> * It's a good idea that all the pathnames do not contain capital letters
> (Windows is case-insensitive in this way, unlike Unices), spaces, etc.,
> see #13343
> * Similarly, do not ''test'' without making sure that `SAGE_TESTDIR`
> does not contain spaces.
> * Also, '''don't forget to''' {{{export SAGE_PORT=yes}}} (only needed
> the first time you issue make though, not after failures (memleak,
> rebase...) and relaunching the build)!
>
> === Spkgs ===
> Install the following spkgs ahead of time, e.g. in
> `SAGE_ROOT/spkg/standard/` before compiling
> * #11635 (NTL)
> * #13324 (ECL)
> * #13137 (MPIR)
> * #13804 (fplll)
> * #13954 (GAP)
> * #13914 (zlib)
> * This has not been tested on XP, but should work; otherwise install
> zlib-devel on Cygwin
> * #13844 (patch)
> * This has not been tested on XP, but should work; otherwise install
> patch on Cygwin
>
> Optionally:
> * #9167 (ECL - optional, as only needed for starting Sage)
> * #9543 (cephes - optional, as it removes cephes which fails to build
> undetected anyway currently)
>
> === Patches ===
> You may have to add patches during the build of the Sage library. Once
> it fails, do (assuming you are in `SAGE_ROOT`)
> {{{
> ./sage -sh
> cd devel/sage
> <import the patches - you may need to make ~/.hgrc>
> cd ../..
> ./sage -b
> <assuming all goes well here>
> touch spkg/installed/sage-5.6.rc0 # or whatever the version number is
> exit
> }}}
> which will bring you back to your normal shell.
>
> Patches currently needed for:
> * #13806
>
> After the build is completed, for doctests it would be helpful to apply
> patches from (following the developer guide)
> * #13324 (ECL)
>
> This should then work 'out of the box', modulo rebasing issues (see
> [wiki:CygwinPort]). See [wiki:CygwinPort the wiki] for other details as
> well.
>
> ----
>
> #13841 is a followup ticket for Sage to ''start'' as well automatically.
> Hopefully it won't be necessary, but the past teaches us that often Sage
> would build, but not start, so that's a little insurance.
>
> ----
>
> There is (or was) a very old binary of Cygwin available here:
>
> http://sage.math.washington.edu/home/wstein/tmp/sage-4.1-cygwin-i686-CYGWIN_NT-5.1.tar.gz
New description:
The goal of this ticket is that a person can:
1. Install Cygwin and certain standard Cygwin packages (listed below).
2. Extract the Sage tarball and type "`make`"
and have everything build automatically with no errors.
The goal is '''not''' that the resulting build works or Sage starts up
(this is #13841), but if that happens as well, this will be great. Adding
checks for all these prereqs, if necessary, will also be part of a future
ticket.
----
== More info ==
Most recent trials and a lot more archived status detail is at
http://trac.sagemath.org/sage_trac/wiki/CygwinPort
== Current instructions (work on Windows XP and Windows 7 with latest
Cygwin) ==
As below with Sage 5.8.beta3
=== Cygwin prereqs ===
Here is what to install from Cygwin - use the usual stable binaries.
* `make`, `perl`, `m4`, `binutils`
* either `gcc4-core` alone and then use the optional gcc-4.7.2 spkg (the
standard gcc-4.6.3 spkg won't be able to compile ecl) or `gcc4-core` and
`gcc4-g++` and `gcc4-fortran` whose versions '''must''' match
* `liblapack`, `liblapack0`, `liblapack-devel` - though we should be able
to build ATLAS
Other instructions:
* Just to make sure, avoid building in home directories of Windows domain
users, as they are treated in a special way by Windows (and Cygwin).
* It's a good idea that all the pathnames do not contain capital letters
(Windows is case-insensitive in this way, unlike Unices), spaces, etc.,
see #13343
* Similarly, do not ''test'' without making sure that `SAGE_TESTDIR` does
not contain spaces.
* Also, '''don't forget to''' {{{export SAGE_PORT=yes}}} (only needed the
first time you issue make though, not after failures (memleak, rebase...)
and relaunching the build)!
=== Spkgs ===
Install the following spkgs ahead of time, e.g. in
`SAGE_ROOT/spkg/standard/` before compiling
* #13351 (lcalc)
=== Patches ===
You may have to add patches during the build of the Sage library. Once it
fails, do (assuming you are in `SAGE_ROOT`)
{{{
./sage -sh
cd devel/sage
<import the patches - you may need to make ~/.hgrc>
cd ../..
./sage -b
<assuming all goes well here>
touch spkg/installed/sage-5.6.rc0 # or whatever the version number is
exit
}}}
which will bring you back to your normal shell.
Patches currently needed for:
* #13351
This should then work 'out of the box', modulo rebasing issues (see
[wiki:CygwinPort]). See [wiki:CygwinPort the wiki] for other details as
well.
----
There is (or was) a very old binary of Cygwin available here:
http://sage.math.washington.edu/home/wstein/tmp/sage-4.1-cygwin-i686-CYGWIN_NT-5.1.tar.gz
--
Comment (by kcrisman):
I only had trouble with #13351 and fork problems during matplotlib (which
even rebasing didn't solve). I do ''not'' have libncurses-devel (checked
`cygcheck -c`), only libncurses 8 through w10, so I'm removing that as a
dependency based on the experiences JP reports above.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6743#comment:182>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.