sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.45k stars 480 forks source link

cygwin metaticket: port Sage to Microsoft Windows (via Cygwin): stage 1 -- make building Sage automatic #6743

Closed williamstein closed 11 years ago

williamstein commented 15 years ago

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.9.beta0

Cygwin prereqs

Here is what to install from Cygwin - use the usual stable binaries.

Other instructions:

Spkgs

Install the following spkgs ahead of time, e.g. in SAGE_ROOT/spkg/standard/ before compiling

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:

This should then work 'out of the box', modulo rebasing issues (see CygwinPort). See 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

Depends on #14031 Depends on #14465

CC: @dimpase @mwhansen @jpflori @kcrisman @simon-king-jena

Component: porting: Cygwin

Keywords: sd31 sd32

Reviewer: Jean-Pierre Flori, Dmitrii Pasechnik, Karl-Dieter Crisman, Mike Hansen, William Stein, Luis Felipe Tabera Alonso

Issue created by migration from https://trac.sagemath.org/ticket/6743

williamstein commented 13 years ago

Changed keywords from none to sd32

kcrisman commented 13 years ago

Description changed:

--- 
+++ 
@@ -10,7 +10,7 @@

 ## Current instructions (work on Windows XP with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)

-* As below with 4.7.2.alpha1
+* As below with 4.7.2.alpha2

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -26,14 +26,16 @@
 * [ecl-11.1.1.p3.spkg](http://sage.math.washington.edu/home/kcrisman/ecl-11.1.1.p3.spkg), #11119
 * [tachyon-0.98.8.p4.spkg](http://sage.math.washington.edu/home/kcrisman/tachyon-0.98.9.p4.spkg), #11504
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
-* [flint-1.5.0.p8.spkg](http://spkg-upload.googlecode.com/files/flint-1.5.0.p9.spkg), #11727
+* [flint-1.5.0.p9.spkg](http://sage.math.washington.edu/home/kcrisman/flint-1.5.0.p9.spkg), #11727
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg), #11245
-* When building the Sage library, you will need to apply [the patch at Trac 11499](https://github.com/sagemath/sage-prod/files/10653154/trac_11499.patch.gz), #11499

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).

 Apparently the change in the following is no longer necessary, since 4.7.1.alpha3 - but see #11635 where this is being tracked now.
 * [ntl-5.4.2.p13.spkg](http://sage.math.washington.edu/home/kcrisman/ntl-5.4.2.p13.spkg)
+
+In previous alphas or releases, see [the wiki](../wiki/CygwinPort) for more details.  For instance, when building the Sage library, you would have needed to apply
+* [the patch at Trac 11499](https://github.com/sagemath/sage-prod/files/10653154/trac_11499.patch.gz), #11499

 ---
kcrisman commented 13 years ago

Changed keywords from sd32 to sd31 sd32

kcrisman commented 13 years ago

Description changed:

--- 
+++ 
@@ -28,6 +28,9 @@
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
 * [flint-1.5.0.p9.spkg](http://sage.math.washington.edu/home/kcrisman/flint-1.5.0.p9.spkg), #11727
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg), #11245
+* When building the Sage library, you will also need to apply the following
+[patch at Trac 11744](https://github.com/sagemath/sage/files/ticket11499/trac_11744.patch.gz), #11744
+

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
kcrisman commented 13 years ago

Description changed:

--- 
+++ 
@@ -28,8 +28,7 @@
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
 * [flint-1.5.0.p9.spkg](http://sage.math.washington.edu/home/kcrisman/flint-1.5.0.p9.spkg), #11727
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg), #11245
-* When building the Sage library, you will also need to apply the following
-[patch at Trac 11744](https://github.com/sagemath/sage/files/ticket11499/trac_11744.patch.gz), #11744
+* When building the Sage library, you will also need to apply the following [patch at Trac 11744](https://github.com/sagemath/sage/files/ticket11499/trac_11744.patch.gz), #11744

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
kcrisman commented 13 years ago

Description changed:

--- 
+++ 
@@ -10,7 +10,7 @@

 ## Current instructions (work on Windows XP with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)

-* As below with 4.7.2.alpha2
+* As below with 4.7.2.alpha3

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -24,11 +24,8 @@

 ### Spkgs
 * [ecl-11.1.1.p3.spkg](http://sage.math.washington.edu/home/kcrisman/ecl-11.1.1.p3.spkg), #11119
-* [tachyon-0.98.8.p4.spkg](http://sage.math.washington.edu/home/kcrisman/tachyon-0.98.9.p4.spkg), #11504
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
-* [flint-1.5.0.p9.spkg](http://sage.math.washington.edu/home/kcrisman/flint-1.5.0.p9.spkg), #11727
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg), #11245
-* When building the Sage library, you will also need to apply the following [patch at Trac 11744](https://github.com/sagemath/sage/files/ticket11499/trac_11744.patch.gz), #11744

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
@@ -36,8 +33,7 @@
 Apparently the change in the following is no longer necessary, since 4.7.1.alpha3 - but see #11635 where this is being tracked now.
 * [ntl-5.4.2.p13.spkg](http://sage.math.washington.edu/home/kcrisman/ntl-5.4.2.p13.spkg)

-In previous alphas or releases, see [the wiki](../wiki/CygwinPort) for more details.  For instance, when building the Sage library, you would have needed to apply
-* [the patch at Trac 11499](https://github.com/sagemath/sage-prod/files/10653154/trac_11499.patch.gz), #11499
+See [the wiki](../wiki/CygwinPort) for other details.

 ---
dimpase commented 12 years ago

Description changed:

--- 
+++ 
@@ -25,8 +25,7 @@
 ### Spkgs
 * [ecl-11.1.1.p3.spkg](http://sage.math.washington.edu/home/kcrisman/ecl-11.1.1.p3.spkg), #11119
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
-* [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg), #11245
-
+* [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
dimpase commented 12 years ago

Description changed:

--- 
+++ 
@@ -10,7 +10,7 @@

 ## Current instructions (work on Windows XP with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)

-* As below with 4.7.2.alpha3
+* As below with 4.7.2

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -20,11 +20,12 @@
 * On Windows 7 (or both) install `libncurses-devel`.
 * Don't forget `fortran`.
 * Make sure you download all `gcc` and `g++` so the versions match (in this case, gcc4 is the type we want).
+* 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). Probably also 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.
 * Also, **don't forget to** `export SAGE_PORT=yes`!

 ### Spkgs
-* [ecl-11.1.1.p3.spkg](http://sage.math.washington.edu/home/kcrisman/ecl-11.1.1.p3.spkg), #11119
-* [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497
+* [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
+* [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -4,13 +4,14 @@

 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.
+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.

 ---

 ## Current instructions (work on Windows XP with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)

 * As below with 4.7.2
+* Check which are already included if you are using an alpha of 4.8

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -25,21 +26,17 @@

 ### Spkgs
 * [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
+* [maxima-5.23.2.p2.spkg](http://sage.math.washington.edu/home/leif/Sage/spkgs/maxima-5.23.2.p2.spkg), #11966
+* [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)
-* [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245

-This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)) and the continuing saga of building Maxima effectively (see #11502, #11260, but also some recent probable changes in ECL).
-
-Apparently the change in the following is no longer necessary, since 4.7.1.alpha3 - but see #11635 where this is being tracked now.
-* [ntl-5.4.2.p13.spkg](http://sage.math.washington.edu/home/kcrisman/ntl-5.4.2.p13.spkg)
+This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).

 See [the wiki](../wiki/CygwinPort) for other details.

 ---

-Older instructions:
-
-
+Much older info, archived:

 I have put a binary of my Cygwin build here:

@@ -47,32 +44,6 @@

 Things like "`sage -ipython`" and many non-Sage imports work.  Just starting Sage doesn't, maybe because of the Sage<-->pynac binding not building.

-Related tickets:
-
-* #6919, #6975 -- FLINT
-* #6974 -- make dummy packages for all the GNU crypto stuff
-* #6976 -- numpy
-* #6978 -- matplotlib [[invalid -- latest version works]]
-* #6982 -- atlas and linbox
-* #6984 -- lapack dummy package
-* #7005 -- singular -- port to Cygwin  (needs_work)
-* #7015 -- Cygwin port -- ratpoints -- don't build 
-* #7282 -- port jinja to install on Cygwin
-* #7308 -- cliquer's `spkg-install` does not work on Cygwin
-* #7319 -- gdmodule requires libiconv on Cygwin
-* #7321 -- numpy fails to build on Cygwin
-* #7335 -- tachyon fails to build on Cygwin
-* #7336 -- boehm_gc fails to build on Cygwin
-* #7337 -- PolyBoRi fails to build on Cygwin
-* #7338 -- Singular fails to build on Cygwin
-* #8257 -- gd-2.0.35.p4 fails to build
-* #8261 -- Cygwin: MPFR fails 1 test in its test suite on Windows
-* #8267 -- ratpoints is broken again
-* #8269 -- Maxima does not build on Cygwin, possibly due to ECL bug.
-* #8278 -- cvxopt doesn't build on Cygwin/Windows due to missing `complex.h`
-* #8279 -- Cygwin: cliquer names the library incorrectly for Cygwin
-* #8280 -- zn_poly shared library named incorrectly on Cygwin
-   
 Required Cygwin packages beyond the usual:

 * GCC 4.3.2
kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -21,6 +21,8 @@
 * On Windows 7 (or both) install `libncurses-devel`.
 * Don't forget `fortran`.
 * Make sure you download all `gcc` and `g++` so the versions match (in this case, gcc4 is the type we want).
+* We also need make and perl
+* m4 is currently needed because of the prereq script, but once #12112 is closed, it won't be.
 * 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). Probably also 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.
 * Also, **don't forget to** `export SAGE_PORT=yes`!
kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -12,6 +12,7 @@

 * As below with 4.7.2
 * Check which are already included if you are using an alpha of 4.8
+* Warning! The new MPIR spkg in 4.8.alpha0 does not seem to work.

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -33,6 +34,9 @@
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).
+
+If you are using 4.8.alpha0 or later, you will probably run into 
+* #12115 - MPIR isn't building.  No functional spkg yet.

 See [the wiki](../wiki/CygwinPort) for other details.
kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -31,12 +31,13 @@
 * [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
 * [maxima-5.23.2.p2.spkg](http://sage.math.washington.edu/home/leif/Sage/spkgs/maxima-5.23.2.p2.spkg), #11966
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245
+* [singular-3-1-3-3.p2.spkg](http://boxen.math.washington.edu/home/dima/packages/singular-3-1-3-3.p2.spkg), #12089
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).

 If you are using 4.8.alpha0 or later, you will probably run into 
-* #12115 - MPIR isn't building.  No functional spkg yet.
+* #12115 - MPIR isn't building.  There is a functioning spkg at that ticket, but we are waiting on whether there is a better change available.

 See [the wiki](../wiki/CygwinPort) for other details.
dimpase commented 12 years ago

Description changed:

--- 
+++ 
@@ -31,7 +31,7 @@
 * [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
 * [maxima-5.23.2.p2.spkg](http://sage.math.washington.edu/home/leif/Sage/spkgs/maxima-5.23.2.p2.spkg), #11966
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245
-* [singular-3-1-3-3.p2.spkg](http://boxen.math.washington.edu/home/dima/packages/singular-3-1-3-3.p2.spkg), #12089
+* [singular-3-1-3-3.p1-cygwindraft.spkg](http://boxen.math.washington.edu/home/dima/packages/singular-3-1-3-3.p2.spkg), #12089
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).
kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -31,7 +31,7 @@
 * [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
 * [maxima-5.23.2.p2.spkg](http://sage.math.washington.edu/home/leif/Sage/spkgs/maxima-5.23.2.p2.spkg), #11966
 * [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245
-* [singular-3-1-3-3.p1-cygwindraft.spkg](http://boxen.math.washington.edu/home/dima/packages/singular-3-1-3-3.p2.spkg), #12089
+* [singular-3-1-3-3.p2.spkg](http://sage.math.washington.edu/home/kcrisman/singular-3-1-3-3.p2.spkg), #12089
 * [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).
jpflori commented 12 years ago
comment:58

For info, to build the python spkg 2.7.3-p0 from sage 5.1.rc1, at least the patches from python issue tracker issues 9665, 14437, 14438 are needed.

kcrisman commented 12 years ago
comment:59

If you can also update CygwinPort, that would be wonderful! (This is just for building - that is for everything.)

jpflori commented 12 years ago
comment:60

I'll do when I'm finished (if that ever happens). I've just beaten MPIR, don't know what's coming next. The main issue is that everything is so slow....

kcrisman commented 12 years ago
comment:61

I'll do when I'm finished (if that ever happens).

Yeah, just be sure to keep every issue if you only know it works on one kind of Windows.

I've just beaten MPIR, don't know what's coming next.

Hopefully just #12089 and then the Pari segfault? We'll see.

The main issue is that everything is so slow....

True. And rebasing.

kcrisman commented 12 years ago

Description changed:

--- 
+++ 
@@ -7,6 +7,8 @@
 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 instructions at http://trac.sagemath.org/sage_trac/wiki/CygwinPort and [this sage-devel thread](https://groups.google.com/forum/?fromgroups=#!topic/sage-devel/Gpx6aC7CEKo)

 ## Current instructions (work on Windows XP with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -8,13 +8,11 @@

 ---

-# Most recent instructions at http://trac.sagemath.org/sage_trac/wiki/CygwinPort and [this sage-devel thread](https://groups.google.com/forum/?fromgroups=#!topic/sage-devel/Gpx6aC7CEKo)
+## 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 with Cygwin 1.7.3 and Windows 7 with Cygwin 1.7.9)
+## Current instructions (work on Windows XP and Windows 7 with latest Cygwin)

-* As below with 4.7.2
-* Check which are already included if you are using an alpha of 4.8
-* Warning! The new MPIR spkg in 4.8.alpha0 does not seem to work.
+* As below with 5.5.rc0

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
@@ -27,21 +25,20 @@
 * We also need make and perl
 * m4 is currently needed because of the prereq script, but once #12112 is closed, it won't be.
 * 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). Probably also 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.
+* Similarly, do not *test* without making sure that `SAGE_TESTDIR` does not contain spaces.
 * Also, **don't forget to** `export SAGE_PORT=yes`!

 ### Spkgs
-* [ecl-11.1.2.cvs20111120.p0.spkg](http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-11.1.2.cvs20111120.p0.spkg), #11884
-* [maxima-5.23.2.p2.spkg](http://sage.math.washington.edu/home/leif/Sage/spkgs/maxima-5.23.2.p2.spkg), #11966
-* [cddlib-094f.p9.spkg](http://sage.math.washington.edu/home/kcrisman/cddlib-094f.p9.spkg),  [networkx-1.2.p2.spkg](http://sage.math.washington.edu/home/dima/packages/networkx-1.2.p2.spkg) #11245
-* [singular-3-1-3-3.p2.spkg](http://sage.math.washington.edu/home/kcrisman/singular-3-1-3-3.p2.spkg), #12089
-* [twisted-9.0.p3.spkg](http://sage.math.washington.edu/home/kcrisman/twisted-9.0.p3.spkg), #11497 (appears to be not necessary any more---but YMMV)

-This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).
+* #11635 (NTL)
+* #13324 (ECL, but *not* including #9167 yet)
+* #13137 (MPIR)
+* #13755 (linbox, on Win 7)
+* #13325 (eclib)
+* #13319 (Python, based on #13631)
+* #13799 (cvxopt, on XP - no spkg available yet, may have to `touch spkg/installed/cvxopt-1.1.5` manually if it fails)

-If you are using 4.8.alpha0 or later, you will probably run into 
-* #12115 - MPIR isn't building.  There is a functioning spkg at that ticket, but we are waiting on whether there is a better change available.
-
-See [the wiki](../wiki/CygwinPort) for other details.
+This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).  See [the wiki](../wiki/CygwinPort) for other details as well.

 ---
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -13,6 +13,7 @@
 ## Current instructions (work on Windows XP and Windows 7 with latest Cygwin)

 * As below with 5.5.rc0
+* You will have to add patches for #13325 (which is there) and #13802 (no patch yet)

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -13,7 +13,19 @@
 ## Current instructions (work on Windows XP and Windows 7 with latest Cygwin)

 * As below with 5.5.rc0
-* You will have to add patches for #13325 (which is there) and #13802 (no patch yet)
+* You will have to add patches for #13325 and #13802 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.5.rc0 # or whatever the version number is
+exit
+```
+  which will bring you back to your normal shell.

 ### Cygwin prereqs
 * Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -11,9 +11,38 @@
 ## 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.5.rc0

-* As below with 5.5.rc0
-* You will have to add patches for #13325 and #13802 during the build of the Sage library.  Once it fails, do (assuming you are in `SAGE_ROOT`)
+### Cygwin prereqs
+Here is what to install from Cygwin - use the usual stable binaries.
+* `file`, `patch`
+* `liblapack`, `liblapack0`, `liblapack-devel`
+* `libiconv`, `openssl`, `openssl-devel`
+* `libgc-devel` - although it's not needed to build, it is to start
+* `libncurses-devel`
+* `make`, `perl`, `m4`
+* Use all `gcc` and `g++` and `fortran`; the versions **must** match, and `gcc4` is the type we want
+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.
+* Similarly, do not *test* without making sure that `SAGE_TESTDIR` does not contain spaces.
+* Also, **don't forget to** `export SAGE_PORT=yes`!
+
+We need to add a test for **all** of the above packages to the prereq script for Cygwin before making the Cygwin port official.
+
+
+### Spkgs
+Install the following spkgs ahead of time, e.g. in `SAGE_ROOT/spkg/standard/` before compiling
+* #11635 (NTL)
+* #13324 (ECL, but *not* including #9167 yet)
+* #13137 (MPIR)
+* #13755 (linbox, on Win 7)
+* #13325 (eclib)
+* #13319 (Python, based on #13631)
+* #13799 (cvxopt, on XP - no spkg available yet, may have to `touch spkg/installed/cvxopt-1.1.5` manually if it fails)
+
+### Patches
+You will have to add patches during the build of the Sage library.  Once it fails, do (assuming you are in `SAGE_ROOT`)

./sage -sh @@ -27,50 +56,14 @@

   which will bring you back to your normal shell.

-### Cygwin prereqs
-* Be sure to install `file`, `liblapack`, `liblapack0`, `liblapack-devel`.
-* Also need `libiconv` and `openssl` and `openssl-devel`.
-* Might as well install `libgc-devel` - although it's not needed to build, it probably is to start.
-* Since we will go with #11232, install `patch`.
-* On Windows 7 (or both) install `libncurses-devel`.
-* Don't forget `fortran`.
-* Make sure you download all `gcc` and `g++` so the versions match (in this case, gcc4 is the type we want).
-* We also need make and perl
-* m4 is currently needed because of the prereq script, but once #12112 is closed, it won't be.
-* 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). Probably also 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.
-* Similarly, do not *test* without making sure that `SAGE_TESTDIR` does not contain spaces.
-* Also, **don't forget to** `export SAGE_PORT=yes`!
-
-### Spkgs
-
-* #11635 (NTL)
-* #13324 (ECL, but *not* including #9167 yet)
-* #13137 (MPIR)
-* #13755 (linbox, on Win 7)
-* #13325 (eclib)
-* #13319 (Python, based on #13631)
-* #13799 (cvxopt, on XP - no spkg available yet, may have to `touch spkg/installed/cvxopt-1.1.5` manually if it fails)
+Patches currently needed for:
+* #13325
+* #13802

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).  See [the wiki](../wiki/CygwinPort) for other details as well.

 ---

-Much older info, archived:
-
-I have put a binary of my Cygwin build here:
+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
-
-Things like "`sage -ipython`" and many non-Sage imports work.  Just starting Sage doesn't, maybe because of the Sage<-->pynac binding not building.
-
-Required Cygwin packages beyond the usual:
-
-* GCC 4.3.2
-* `gfortran`
-* `libncurses-devel`
-* `lapack`
-* `openssl-devel`
-* `libiconv` -- needed when building R (and it has to be `libiconv`)
-
-We need to add a test for **all** of the above to the prereq script before making the Cygwin port official.
-
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -39,7 +39,7 @@
 * #13755 (linbox, on Win 7)
 * #13325 (eclib)
 * #13319 (Python, based on #13631)
-* #13799 (cvxopt, on XP - no spkg available yet, may have to `touch spkg/installed/cvxopt-1.1.5` manually if it fails)
+* #13799 (cvxopt)

 ### Patches
 You will have to add patches during the build of the Sage library.  Once it fails, do (assuming you are in `SAGE_ROOT`)
jpflori commented 11 years ago
comment:68

I had to install zlib-devel as well or had horrible linking problems with freetype and gd.

kcrisman commented 11 years ago
comment:69

I had to install zlib-devel as well or had horrible linking problems with freetype and gd.

Huh, maybe that's only on Win 7. Well, add it to the list here and on the CygwinPort page.

kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -59,6 +59,7 @@
 Patches currently needed for:
 * #13325
 * #13802
+* #13806 (on Win 7, at least)

 This should then work 'out of the box', modulo rebasing issues (see [CygwinPort](../wiki/CygwinPort)).  See [the wiki](../wiki/CygwinPort) for other details as well.
kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -19,6 +19,7 @@
 * `liblapack`, `liblapack0`, `liblapack-devel`
 * `libiconv`, `openssl`, `openssl-devel`
 * `libgc-devel` - although it's not needed to build, it is to start
+* `zlib-devel` - apparently needed on Win 7
 * `libncurses-devel`
 * `make`, `perl`, `m4`
 * Use all `gcc` and `g++` and `fortran`; the versions **must** match, and `gcc4` is the type we want
@@ -65,6 +66,11 @@

 ---

+#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
kcrisman commented 11 years ago
comment:72

What we now need is mainly an update to the prereq spkg. We need to somehow check for:

jdemeyer commented 11 years ago
comment:73

Replying to @kcrisman:

What we now need is mainly an update to the prereq spkg. We need to somehow check for:

  • file

Why is this needed? I don't think Sage should ever use file.

  • patch

Why do we need this? patch comes with Sage.

  • liblapack, liblapack0, liblapack-devel

Why do we need this? lapack comes with Sage.

  • libiconv

Why do we need this? iconv comes with Sage.

  • openssl, openssl-devel

I don't think these are required anymore.

  • libgc-devel

Is this boehm_gc? This comes with Sage.

  • zlib-devel

Why do we need this? zlib comes with Sage.

  • libncurses-devel

Are you sure this is needed? Does #12725 help with not requiring ncurses?

  • make, perl, m4

This is already checked I believe.

  • gcc4-x.y.z and g++-x.y.z, fortran; the versions must match

So, the GCC spkg doesn't build on Cygwin? Then also spkg/install should be changed not to install GCC on Cygwin. The version checking already exists.

I assume that it should happen in prereq-1.x-install and not the configure.

Please don't! Ideally, prereq-1.x-install should be essentially empty and all checks are done in configure. That's how things are supposed to be done autotools-style.

jpflori commented 11 years ago
comment:74

The resulting install is not that bad, see http://boxen.math.washington.edu/home/jpflori/ptest-sage-5.5.rc0-cygwin.log

I got a lot of OverflowError, surely due to the fact that I'm running a 64 bits Windows 7. And my install also lacks some tickets posted here and there on Trac.

Not sure about the prereq, but I seem to remember that without zlib-devel a lot of things including zlib-devel got messed up in freetype and spkg depending on it (I'd say gd), I'll try to dig out the logs.

About patch, not sure what https://github.com/sagemath/sage-prod/issues/11232 does.

jpflori commented 11 years ago
comment:75

I've reinstalled a minimal Cygwin (a few weeks old though, no internet access on the used computer right now) and will add required Cygwin packages incrementally to be sure of what matters.

vbraun commented 11 years ago
comment:76

First of all, please put the cygwin package checking into its own script. Its opposite to any sane prerequisite checking, but then thats because the underlying platform lacks sanity.

Each Cygwin package installs a gzipped listing of files under /etc/setup/<package>.lst.gz, so I would use that to check that the prerequisite packages are installed. As usual, setting SAGE_PORT=yes should let you skip the prerequisite check if you think you know better.

dimpase commented 11 years ago
comment:77

Replying to @jdemeyer:

  • liblapack, liblapack0, liblapack-devel

Why do we need this? lapack comes with Sage.

atlas 3.8 does not build on cygwin.

kcrisman commented 11 years ago
comment:78

What we now need is mainly an update to the prereq spkg. We need to somehow check for:

  • file

Why is this needed? I don't think Sage should ever use file.

I appreciate all the questions here trying to narrow it down. However, I think the point is to FIRST get Sage to build reliably on Cygwin, and if we need all these things, then so be it. We can remove them later, precisely because we're not targeting people just randomly building Sage on Cygwin.

Also, these were definitely all needed at some point in the process, but it's been 3+ years, so of course some might not be. But Cygwin is remarkably picky about these things. With respect to patch, for instance, why not just require it on such an unusual platform?

Similarly, I have no idea if the gcc package builds on Cygwin, but we still need some compiler to build that! It would be worth testing it without that, but I at least have no time to try all the various permutations and combinations of prereqs. Let's get this done first, then remove things we don't need, otherwise we'll never catch up to Sage (if only because of updates to spkgs).

jdemeyer commented 11 years ago
comment:79

Replying to @kcrisman:

I appreciate all the questions here trying to narrow it down. However, I think the point is to FIRST get Sage to build reliably on Cygwin, and if we need all these things, then so be it. We can remove them later, precisely because we're not targeting people just randomly building Sage on Cygwin.

If you're still at this early stage like you're suggesting, maybe updating the prereq should be postponed until it's clearer what the real requirements are. What's the point of putting effort in checking some dependency if the dependency might be removed in a next release? (honest question, no offense meant)

jdemeyer commented 11 years ago
comment:80

Replying to @kcrisman:

I have no idea if the gcc package builds on Cygwin, but we still need some compiler to build that!

Sure, but this is already checked in prereq. Also, the fact that the gcc/g++/gfortran versions match (if GCC isn't built) is checked already. Both these are relevant for all platforms, not only Cygwin.

kcrisman commented 11 years ago
comment:81

I have no idea if the gcc package builds on Cygwin, but we still need some compiler to build that!

Sure, but this is already checked in prereq. Also, the fact that the gcc/g++/gfortran versions match (if GCC isn't built) is checked already. Both these are relevant for all platforms, not only Cygwin.

Oh, that's very helpful.

What's the point of putting effort in checking some dependency if the dependency might be removed in a next release? (honest question, no offense meant)

None taken. The amount of effort put into this port thus far by JP, Mike Hansen, William, Dima, myself, ... I think that I probably speak for them in saying that the marginal effort of checking for the dependency is nil compared to the value of not having to worry about it. That said, naturally if JP wants to check them, I'm not opposed.

I should also point out that I will not have access to my XP machine starting Friday afternoon US for several weeks, so anything XP-specific would be nice to have resolved by then.

jpflori commented 11 years ago
comment:82

For what it is worth, I've begun looking at prereqs for cygwin by starting with a minimal cygwin install and only adding packages when needed and am posting results on the CygwinPort page.

In particular, something should be done for libiconv.

As far as the gcc spkg is concerned I got a segfault earlier after a few hours. Maybe that was just because of memory leaks and memory exhaustion, so Ive relaunched a build now, but it takes hours...

jpflori commented 11 years ago
comment:83

So the gcc spkg failed again because of exhaustion memory, but restarting from the build dir finishes fine and everything seems ok then.

jpflori commented 11 years ago
comment:84

In fact it seems to fail to compile ECL from #13324.

jpflori commented 11 years ago
comment:85

The ECL problem was already encountered here: http://sourceforge.net/mailarchive/message.php?msg_id=28466506

(This did not happen with the Cywgin gcc 4.5.something.)

jpflori commented 11 years ago
comment:86

Replying to @dimpase:

Replying to @jdemeyer:

  • liblapack, liblapack0, liblapack-devel

Why do we need this? lapack comes with Sage.

atlas 3.8 does not build on cygwin.

Any hint why?

Will atlas 3.10 from #10508 fix this issue?

vbraun commented 11 years ago
comment:87

Its possible to build ATLAS on Windows but as with both ATLAS and Windows my best guess is that it won't work right out of the box. I certainly haven't even tried.

dimpase commented 11 years ago
comment:88

Replying to @jpflori:

Replying to @dimpase:

Replying to @jdemeyer:

  • liblapack, liblapack0, liblapack-devel

Why do we need this? lapack comes with Sage.

atlas 3.8 does not build on cygwin.

Any hint why?

E.g. MANIFEST crap I imagine it's only part of the story.

Will atlas 3.10 from #10508 fix this issue?

perhaps. Or maybe not... But, again, the more stuff we build, the more stuff we will need to rebase, etc...

Actually, we should make a Windows batch file to automate the build/rebase loop.

jpflori commented 11 years ago
comment:89

Not sure if cygwin got better, but with my 5.5.rc0 I only had to rebase when I actually wanted to launch sage, so this might not be a real issue anymore.

The most worrying things for me are:

jpflori commented 11 years ago
comment:90

About ATLAS, I'm mostly asking that because the policy of Sage seems to be: require the fewest system packages as possible.

So if ATLAS can be built without much hassle let's build it by default, just as we only require gcc and build g++ and gfortran by default and try to build patch.

The user can always decide to install the g++ and gfortran and to set SAGE_ATLAS_LIB.

Personally I never install the ATLAS spkg, but use the system one, because it always took ages to build when it did not fail, and could never correctly detect my cpus to choose a sensible default. I would be very happy to use my system patch as well (but I guess that some creepy system do not even provide a working patch so the spkg is needed).

jpflori commented 11 years ago
comment:91

Replying to @dimpase:

Replying to @jpflori:

Replying to @dimpase:

Replying to @jdemeyer:

  • liblapack, liblapack0, liblapack-devel

Why do we need this? lapack comes with Sage.

atlas 3.8 does not build on cygwin.

Any hint why?

E.g. MANIFEST crap I imagine it's only part of the story.

No it looks like its all of it and is not needed anymore from 3.9.

The final crap is because they want a .lib file we do not care about.

Will atlas 3.10 from #10508 fix this issue?

perhaps. Or maybe not... But, again, the more stuff we build, the more stuff we will need to rebase, etc...

Actually, we should make a Windows batch file to automate the build/rebase loop.

kcrisman commented 11 years ago

Description changed:

--- 
+++ 
@@ -11,7 +11,7 @@
 ## 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.5.rc0
+As below with Sage 5.6.beta2

 ### Cygwin prereqs
 Here is what to install from Cygwin - use the usual stable binaries.
@@ -23,27 +23,29 @@
 * `libncurses-devel`
 * `make`, `perl`, `m4`
 * Use all `gcc` and `g++` and `fortran`; the versions **must** match, and `gcc4` is the type we want
+
+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.
 * Similarly, do not *test* without making sure that `SAGE_TESTDIR` does not contain spaces.
 * Also, **don't forget to** `export SAGE_PORT=yes`!

-We need to add a test for **all** of the above packages to the prereq script for Cygwin before making the Cygwin port official.
-
-
 ### Spkgs
 Install the following spkgs ahead of time, e.g. in `SAGE_ROOT/spkg/standard/` before compiling
 * #11635 (NTL)
-* #13324 (ECL, but *not* including #9167 yet)
+* #13324 (ECL)
 * #13137 (MPIR)
-* #13755 (linbox, on Win 7)
-* #13325 (eclib)
-* #13319 (Python, based on #13631)
-* #13799 (cvxopt)
+* #13804 (fplll, needed only on Win 7)
+
+Optionally:
+* #9167 (ECL - optional, as only needed for starting Sage)
+* #9543 (cephes - optional, as it removes cephes)
+* #13364 (Maxima - purely optional but might as well)

 ### Patches
-You will have to add patches during the build of the Sage library.  Once it fails, do (assuming you are in `SAGE_ROOT`)
+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 @@ -58,9 +60,8 @@ which will bring you back to your normal shell.

Patches currently needed for: - #13325 - #13802

kcrisman commented 11 years ago
comment:93

By the way, JP, did you end up needing libiconv or not?