I believe I've now succeeded in building a Mac OS X 10.6 .app version 
of Sage 6.3 (with help recorded in a separate thread).

I had to fix a mistake in the file src/bin/sage-bdist (a mistake
that affects the official OS X .app builds), and I also had to
make a few other changes to that file.  (Details at the end of
this posting.)

I'd be happy to upload
  sage-6.3-x86_64-Darwin-app.dmg
if somebody will tell me how to do it.

I'd also be happy to volunteer to produce future Mac OS X 10.6 
.app versions.

I'm a bit unsure that I've done enough to validate the build:
    (1) 'make' finishes with no error message at the end
    (2) './sage -bdist' finishes with "** BUILD SUCCEEDED **"
    (3) the 'file' commands
          $ file Sage-6.3.app/Contents/MacOS/Sage
          $ file Sage-6.3.app/Contents/Resources/sage/local/bin/*
          $ file Sage-6.3.app/Contents/Resources/sage/local/lib/*
        show all architectures are 64-bit.
    (4) Sage-6.3.app runs under OS X 10.6.8
    (5) a sample workbook executes properly

Is there more that one should do to validate the build?

Is there any way to tell from inside Sage that it is running in 
64-bit mode?

The output from '$ ./sage -bdist' showed some strange looking command line 
options:
      -mmacosx-version-min=10.4
and
       setenv MACOSX_DEPLOYMENT_TARGET 10.4
and gave a warning:        
    <built-in>:0: warning: Mac OS X version 10.5 or later is needed for use 
of the new objc abi

Why do these command line options refer to '10.4'?

==============================================
Procedure for building a Mac OS X 10.6 .app version of Sage 6.3

(1) The file src/bin/sage-bdist contains a mistake:
       'ARCHES' should be 'ARCHS'.
The effect of the mistake is that the OS X application is 
always built as 32-bit ('i386').  This can be seen by running 
$ file Sage-6.3.app/Contents/MacOS/Sage
in the OS X 10.9 .app version currently being distributed 
officially.

(2) sage-bdist uses `uname -m` to determine the target 
architecture.  Some of the older 64-bit Macintoshes can only boot into 
a 32-bit system.  These machines run 64-bit Sage perfectly well.  
They can make and build 64-bit Sage perfectly well.  The problem is that 
`uname -m` returns 'i386'.  I added an environment variable to 
override `uname -m` (SAGE_APP_TARGET_ARCH==x86_64).

I also added some code to sage-bdist to append '-app' to the name 
of the .dmg file produced.

I also added an environment variable (SAGE_APP_GZ=no) to prevent 
the final compression stage, to save time during debugging 
sage-bdist.

The procedure that worked for making and building the Mac OS X 10.6 .app 
version of Sage 6.3 was:

$ git clone git://github.com/sagemath/sage.git
$ cd sage
$ export MAKE="make -j2"
$ $MAKE
$ cp ../sage-bdist-TARGET_ARCH-app src/bin/sage-bdist
$ git remote add trac git://trac.sagemath.org/sage.git -t master
$ git fetch trac u/iandrus/trac-16796
$ git checkout FETCH_HEAD
$ export SAGE_APP_TARGET_ARCH=x86_64
$ export SAGE_APP_DMG=yes
$ export SAGE_APP_BUNDLE=yes
$ ./sage -bdist

It produced a somewhat smaller version of Sage 6.3 than the 
officially distributed OS X 10.6 version.  It looks like the size 
difference is due to git stuff.  Starting with a fresh clone 
seems worthwhile (cloning is a small fraction of the 'make' time.)

Daniel

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" 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-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to