Opened 11 years ago

Closed 11 years ago

#7484 closed defect (invalid)

update README.txt to require Fortran as a pre-requisite for compiling Sage on Linux

Reported by: jason Owned by: tbd
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: build Keywords:
Cc: schilly Merged in:
Authors: Jason Grout, Minh Van Nguyen Reviewers: David Kirkby
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by mvngu)

Here's a patch for README.txt to document this:

--- README.txt.orig     2009-11-17 20:02:26.833640422 -0600
+++ README.txt  2009-11-17 20:11:28.183327521 -0600
@@ -47,6 +47,14 @@
      >= 10.4.x and certain Linux distributions are 100% supported.
      See below for a complete list.
  
+     NOTE: If you're making or using Sage on a platform for which the included g95 
+     binaries do not work (e.g., Itanium or Ubuntu 9.10), you must use a system-wide 
+     gfortran.  You must set the SAGE_FORTRAN and SAGE_FORTRAN_LIB environment 
+     variables before making Sage.  Do this by typing
+
+          export SAGE_FORTRAN=/exact/path/to/gfortran
+          export SAGE_FORTRAN_LIB=/path/to/fortran/libs/libgfortran.so
+
    2. Extract the tarball:
           tar xvf sage-*.tar
 
@@ -75,13 +83,6 @@
     Use Sage on Microsoft Windows via VMware.
     We do not always test on OS X 10.4, but Sage should work there fine.
 
-NOTE: If you're using Fortran on a platform without g95 binaries included
-      with Sage, e.g., Itanium, you must use a system-wide gfortran.  You 
-      have to explicitly tell the build process about the fortran
-      compiler and library location.  Do this by typing
-
-          export SAGE_FORTRAN=/exact/path/to/gfortran
-          export SAGE_FORTRAN_LIB=/path/to/fortran/libs/libgfortran.so
 
 NOT OFFICIALLY SUPPORTED, BUT NEARLY WORKS:
        PROCESSOR       OPERATING SYSTEM

Ticket #8806 fixes many issues that are dealt with in the current ticket.

Attachments (2)

README.txt (12.6 KB) - added by mvngu 11 years ago.
based on Sage 4.3.3.alpha0
README.diff (4.4 KB) - added by mvngu 11 years ago.
based on Sage 4.3.3.alpha0

Download all attachments as: .zip

Change History (17)

comment:1 Changed 11 years ago by jason

  • Description modified (diff)
  • Status changed from new to needs_review

comment:2 Changed 11 years ago by jason

Regarding this ticket:

> Don't bother, since sage-4.3 should require the user has installed
> gfortran on *all* Linux platforms.


Okay, great.  If that doesn't happen, then I already made the ticket and patch:

http://trac.sagemath.org/sage_trac/ticket/7484

This can be closed (or modified) to indicate the need for gfortran on all platforms, whenever that patch is merged.

comment:3 Changed 11 years ago by was

See #7485

comment:4 Changed 11 years ago by mvngu

  • Authors changed from Jason Grout to Jason Grout, Minh Van Nguyen
  • Report Upstream set to N/A
  • Summary changed from Sage does not build on stock Ubuntu 9.10 without installing gfortran and setting SAGE_FORTRAN(_LIB) to update README.txt to require Fortran as a pre-requisite for compiling Sage on Linux

Due to #7485, Linux Fortran binaries are now removed from the Fortran spkg. This means that under Linux, Fortran is a pre-requisite for compiling Sage from source just as the GCC suite of compilers is a pre-requisite. The new README.txt states that Fortran is a pre-requisite for compiling Sage on Linux. This file is based on that in Sage 4.3.1.rc1. The diff file README.diff shows differences between the attached README.txt and the one in Sage 4.3.1.rc1. Don't apply this diff file. Just replace the current README.txt under SAGE_ROOT with the attached README.txt.

comment:5 follow-up: Changed 11 years ago by drkirkby

  • Reviewers set to David Kirkby
  • Status changed from needs_review to needs_work

I think it is important to add on platforms such as Solaris, AIX and HP-UX, where both 32 and 64-bit builds are supported, the library path must point to the 32-bit library if building 32-bit, and must point to a 64-bit library if building 64-bit.

(How about OS X? Perhaps the fortran.spkg takes care of that.)

On Solaris that will probably be the following, though this would need checking.

SAGE_FORTRAN=/path/to/gcc/install/directory/bin/gfortran (SPARC and x86)

SAGE_FORTRAN_LIB=/path/to/gcc/install/directory/lib/libgfortran.so (32-bit SPARC)
SAGE_FORTRAN_LIB=/path/to/gcc/install/directory/lib/sparcv9/libgfortran.so (64-bit SPARC)

SAGE_FORTRAN_LIB=/path/to/gcc/install/directory/lib/libgfortran.so (32-bit x86)
SAGE_FORTRAN_LIB=/path/to/gcc/install/directory/lib/amd64/libgfortran.so (64-bit x64)

Dave

comment:6 Changed 11 years ago by was

(How about OS X? Perhaps the fortran.spkg takes care of that.)

Do *NOT* require gfortran on OS X, since we still supply it with Sage.

comment:7 Changed 11 years ago by drkirkby

William, you said on sage-devel, on the subject of SAGE_FORTRAN and OS X.

Use the binary included in Sage if SAGE_FORTRAN is not specified. Otherwise, use the one pointed to by the that environment variable.

http://groups.google.com/group/sage-devel/browse_thread/thread/e2867ea2efe7e052

Therefore, SAGE_FORTRAN_LIB might be important if someone wanted to use their own version of gcc, rather than the one in Sage. In which case, the question arises as to what would be the path to the library. Would it be different for 32 and 64-bit builds, as it is on Solaris and HP-UX?

Dave

comment:8 Changed 11 years ago by mvngu

Ticket #8080 updates the Installation Guide to require gfortran as a pre-requisite for compiling Sage on Linux.

comment:9 in reply to: ↑ 5 Changed 11 years ago by mvngu

  • Status changed from needs_work to needs_review

Replying to drkirkby:

I think it is important to add on platforms such as Solaris, AIX and HP-UX, where both 32 and 64-bit builds are supported, the library path must point to the 32-bit library if building 32-bit, and must point to a 64-bit library if building 64-bit.

Done. Fixed in the updated README.txt.

(How about OS X? Perhaps the fortran.spkg takes care of that.)

Also fixed in the updated README.txt. For Mac OS X, I have removed the reference to ticket #7095, as the issue contained therein has been fixed.

comment:10 Changed 11 years ago by mvngu

README.txt also fixes #8106.

Changed 11 years ago by mvngu

based on Sage 4.3.3.alpha0

Changed 11 years ago by mvngu

based on Sage 4.3.3.alpha0

comment:11 follow-up: Changed 11 years ago by drkirkby

  • Status changed from needs_review to needs_work

A few comments: Those in bold are specifically about Fortran. The others are not, so you can ignore them for this ticket, tough you might chose to update them, as they are minor changes:

  • Line 22: says Sage is distributed under the GPL, but does say what version. I believe it should be GPL 2 (or at your option any later version).
  • Line 110 should make it clear Sage 4.3.0.1 does work on Solaris 10 SPARC and more recent versions nearly work.
  • Line 113 mentions gFortran. I believe the F should be changed to lower case
  • Line 127 should make it clear this port is for x64. OpenSolaris does exist on SPARC, though I do not believe it has many users.
  • Lines 144 + 145. Again refers to a gFortran. Also, there is no reason gfortran needs to be installed system wide. Someone can create their own private copy of gcc with Fortran support.
  • Line 168. I think changing 32- to 32-bit would be preferable.
  • Line 299. I would change to simply Sage needs GCC >= 4.0.1
  • Line 300 seems a bit pointless, as long as we say Sage needs gcc >=4.0.1
  • Line 301 can be removed, as it is totally impossible to build Sage with that. The 'prereq' script will exit immediately with an error.

Dave

comment:12 Changed 11 years ago by mvngu

  • Cc schilly added

From IRC:

04:31 < schilly> mvngu: the README.txt still says that arch linux is not 
                 supported. i guess we can drop that ^^

comment:13 Changed 11 years ago by mvngu

  • Description modified (diff)

comment:14 in reply to: ↑ 11 Changed 11 years ago by kcrisman

README.txt was recently updated, so this will need to be rebased again. Is the original problem still a problem, given the latest one?

With respect to drkirkby's comments, I think the following remain:

  • Line 22: says Sage is distributed under the GPL, but does say what version. I believe it should be GPL 2 (or at your option any later version).

This seems reasonable to change.

  • Lines 144 + 145. Again refers to a gFortran. Also, there is no reason gfortran needs to be installed system wide. Someone can create their own private copy of gcc with Fortran support.

I have no idea if this is true, but at any rate we still use the phrase "system-wide" in line 137.

  • Line 299. I would change to simply Sage needs GCC >= 4.0.1
  • Line 300 seems a bit pointless, as long as we say Sage needs gcc >=4.0.1
  • Line 301 can be removed, as it is totally impossible to build Sage with that. The 'prereq' script will exit immediately with an error.

These three seem to be a matter of taste. As long as we accurately document what Sage builds with, we might as well leave it alone. And warnings of things that fail are good if they prevent people from wasting time trying to make them fail :)

comment:15 Changed 11 years ago by mhansen

  • Milestone changed from sage-4.5.3 to sage-duplicate/invalid/wontfix
  • Resolution set to invalid
  • Status changed from needs_work to closed

This has already been taken care of at least as of Sage 4.5.2. I'm going to mark it as invalid now.

Note: See TracTickets for help on using tickets.