sagemath / sage

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

Create Mac Application that people love to use #9873

Closed gvol closed 14 years ago

gvol commented 14 years ago

Many people want a Mac application, but so far none has appeared that was worthy of the name Sage. This must change! We need something which can launch terminal sessions, install spkg files, run and provide quicklook support for sage files. Something that can be used as a MenuExtra, and optionally act as a primitive browser for the notebook.

Is such a thing even possible? Yes! In fact such an application is almost here!

CC: @kcrisman @jasongrout @sagetrac-GeorgSWeber @sagetrac-mhampton @qed777

Component: user interface

Keywords: mac

Author: Ivan Andrus

Reviewer: Karl-Dieter Crisman, Jason Grout, John Palmieri

Merged: sage-4.6.alpha2

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

jhpalmieri commented 14 years ago
comment:50

Replying to @gvol:

I haven't redone the menus because I'm not sure if jhpalmieri was disagreeing with the idea of a minimal set. I did add a Sage (advanced) which will prompt for any args you wish to give it.

I would be very happy with a smaller set of menu options.

gvol commented 14 years ago
comment:51

I have 10.4 support (I think), as well as paring down the menus. I also rearranged the Preferences window.

Looking back over the comments, I believe that I addressed all concerns raised so far except the following (which I do not have plans to fix for this ticket--unless you change my mind):

gvol commented 14 years ago

Attachment: README.2.txt

kcrisman commented 14 years ago
comment:52

Replying to @gvol:

I have 10.4 support (I think), as well as paring down the menus. I also rearranged the Preferences window.

Great, I'll try this out on PPC 10.4 as soon as I get a chance (should be within 2-3 hours).

  • the "loading" page still appears when using the system browser (I think this is best--perhaps there should be an option)

This seems reasonable to leave in place for now. All your other stuff would be better to improve on in another ticket, esp. if it isn't default build behavior yet, you are right.

kcrisman commented 14 years ago
comment:53

Replying to @kcrisman:

Replying to @gvol:

I have 10.4 support (I think), as well as paring down the menus. I also rearranged the Preferences window.

Great, I'll try this out on PPC 10.4 as soon as I get a chance (should be within 2-3 hours).

I'm still getting the same error message about not being able to use the application with this version of Mac OS X. Probably removing 10.5 specific things isn't enough, but one would have to do all the preference stuff for 10.4 I mentioned above in the project file. Or did you do those things too? In which case I'm stumped. Except...

One thing on the internet suggested "The only snag I've hit is that the new IB defaults to a format that's not compatible with the old IB, so it's easy to create a NIB that can't be edited with the 2.4 version of tools." If that's relevant? Also, "You can specifiy a "2.4 compatible" project in XCode 3.x, but the accompanying Interface Builder part is not set to that level: therefore, all your developed applescripts don't run any longer on 10.4 (be it intel or ppc)". And "However, it is not possible to create new objects on existing 1.2 version NIB objects as new Interface Builder objects are set to a higher incompatible version." This seems problematic. One person said that xib objects seemed to work fine, but that's all you have, as far as I can tell...

gvol commented 14 years ago
comment:54

Replying to @kcrisman:

Replying to @kcrisman:

Replying to @gvol:

I have 10.4 support (I think), as well as paring down the menus. I also rearranged the Preferences window.

Great, I'll try this out on PPC 10.4 as soon as I get a chance (should be within 2-3 hours).

I'm still getting the same error message about not being able to use the application with this version of Mac OS X. Probably removing 10.5 specific things isn't enough, but one would have to do all the preference stuff for 10.4 I mentioned above in the project file. Or did you do those things too? In which case I'm stumped. Except...

I changed the base SDK to 10.4 and made the project Xcode 2.4 compatible. In interface builder it warns me that image scaling on a few elements isn't supported before 10.5, but I don't think that should cause this problem--it's a warning not an error. Did you build this yourself, or use the prebuilt version?

One thing on the internet suggested "The only snag I've hit is that the new IB defaults to a format that's not compatible with the old IB, so it's easy to create a NIB that can't be edited with the 2.4 version of tools." If that's relevant? Also, "You can specifiy a "2.4 compatible" project in XCode 3.x, but the accompanying Interface Builder part is not set to that level: therefore, all your developed applescripts don't run any longer on 10.4 (be it intel or ppc)". And "However, it is not possible to create new objects on existing 1.2 version NIB objects as new Interface Builder objects are set to a higher incompatible version." This seems problematic. One person said that xib objects seemed to work fine, but that's all you have, as far as I can tell...

Can you open the xib files? If you double click them what happens? The xibs have a deployment target of 10.4 and a development target of 3.0 which is the oldest I can choose. Perhaps I have to recreate them for an older version?

Actually I think it may be due to the compiler I'm using. Can you try setting the compiler to 4.0 and building again? Go to Project > Edit Project Settings (near the bottom) > Build tab > Compiler Version (5th section) and then choose 4.0 (that's the oldest I have). Then try building.

jhpalmieri commented 14 years ago
comment:55

jhpalmieri, did you want a version that would exit only on success -- you could use "%@ && exit"

For me the only issue is when using the "Calculate" menu option, and I don't even know if that's still there. When using this option, if the Terminal automatically closes windows when their process is done, you don't see any output from the command, which makes it pretty pointless. So it would be nice to be able to keep the window open after running "sage -c ..." until manually closed.

With the new version, I can't run it successfully on my Intel iMac running 10.6: I see

Building the Mac Application
Build settings from command line:
    ARCHES = ppc ppc64 i386 x86_64

=== BUILD NATIVE TARGET Sage OF PROJECT Sage WITH CONFIGURATION Debug ===
Check dependencies
error: There is no SDK with the name or path '/Developer/SDKs/MacOSX10.4u.sdk'
[BEROR]error: There is no SDK with the name or path '/Developer/SDKs/MacOSX10.4u.sdk'
** BUILD FAILED **

Failed to build Sage.app.
kcrisman commented 14 years ago
comment:56

Hmm, that's weird. I'll have to check this out on my computer as well. Obviously jhpalmieri won't have the 10.4 SDK, but that shouldn't mean he can't compile it... This is going to take some work, aargh.

kcrisman commented 14 years ago
comment:57

I changed the base SDK to 10.4 and made the project Xcode 2.4 compatible. In interface builder it warns me that image scaling on a few elements isn't supported before 10.5, but I don't think that should cause this problem--it's a warning not an error. Did you build this yourself, or use the prebuilt version?

Right, a warning - that it might crash :) I used the prebuilt version, though; doing it myself would have taken many moons on the work computer. I'll try this in a bit at home, hopefully.

Can you open the xib files? If you double click them what happens? The xibs have a deployment target of 10.4 and a development target of 3.0 which is the oldest I can choose. Perhaps I have to recreate them for an older version?

I haven't tried this on an older computer yet. Sadly, that may be the case.

Actually I think it may be due to the compiler I'm using. Can you try setting the compiler to 4.0 and building again? Go to Project > Edit Project Settings (near the bottom) > Build tab > Compiler Version (5th section) and then choose 4.0 (that's the oldest I have). Then try building.

I can try this, though not immediately. Thanks for looking into this so much.

kcrisman commented 14 years ago
comment:58

Can you open the xib files? If you double click them what happens? The xibs have a deployment target of 10.4 and a development target of 3.0 which is the oldest I can choose. Perhaps I have to recreate them for an older version?

Well, they open on the older computer fine. The build fails, though (using the Xcode GUI).

Actually I think it may be due to the compiler I'm using. Can you try setting the compiler to 4.0 and building again? Go to Project > Edit Project Settings (near the bottom) > Build tab > Compiler Version (5th section) and then choose 4.0 (that's the oldest I have). Then try building.

This isn't an option in my version of Xcode (on the 10.4 system).

I wonder why jhpalmieri wasn't able to compile this, though. You'd think Mac would be smart enough to look for a newer SDK if that one wasn't available. Hmm.

gvol commented 14 years ago
comment:59

Replying to @jhpalmieri:

jhpalmieri, did you want a version that would exit only on success -- you could use "%@ && exit"

For me the only issue is when using the "Calculate" menu option, and I don't even know if that's still there. When using this option, if the Terminal automatically closes windows when their process is done, you don't see any output from the command, which makes it pretty pointless. So it would be nice to be able to keep the window open after running "sage -c ..." until manually closed.

Cool, I won't worry about it then.

With the new version, I can't run it successfully on my Intel iMac running 10.6: I see

error: There is no SDK with the name or path '/Developer/SDKs/MacOSX10.4u.sdk'
[BEROR]error: There is no SDK with the name or path '/Developer/SDKs/MacOSX10.4u.sdk'

Now that I think of it, I think I had to choose to install the 10.4 SDK. Clearly, not everyone who wants to build it will have it though, so I'll have to figure out a way to use 10.4 if they have it, but 10.5 (or 10.6) if they don't. In the mean time you can open up the Project Settings and change the Base SDK (at the bottom of the General tab) to build it that way.

gvol commented 14 years ago
comment:60

Replying to @kcrisman:

Can you open the xib files? If you double click them what happens? The xibs have a deployment target of 10.4 and a development target of 3.0 which is the oldest I can choose. Perhaps I have to recreate them for an older version?

Well, they open on the older computer fine. The build fails, though (using the Xcode GUI).

What error do you get?

kcrisman commented 14 years ago
comment:61

Can you open the xib files? If you double click them what happens? The xibs have a deployment target of 10.4 and a development target of 3.0 which is the oldest I can choose. Perhaps I have to recreate them for an older version?

Well, they open on the older computer fine. The build fails, though (using the Xcode GUI).

What error do you get?

Same thing (sadly) happens on the home computer. Looks like all .m files compiled (they have a check in the build column), and nearly everything with a checkbox in the target column is checked. Several Frameworks aren't, and of course Sage.app and Sage-info.plist aren't. Here's the full report - the build stopped while going through Sage_Prefix.pch, whatever that is.


Building target “Sage” of project “Sage” with configuration “Release”

Checking Dependencies
Processing /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Info.plist Sage-Info.plist
    mkdir /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents
    cd /Users/crisman/Desktop/SageSrc
    com.apple.tools.info-plist-utility Sage-Info.plist -genpkginfo /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/PkgInfo -expandbuildsettings -o /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Info.plist

CpResource build/Release/Sage.app/Contents/Resources/English.lproj/Credits.html English.lproj/Credits.html
    mkdir /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources/English.lproj
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/English.lproj/Credits.html /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources/English.lproj

CpResource build/Release/Sage.app/Contents/Resources/English.lproj/InfoPlist.strings English.lproj/InfoPlist.strings
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/English.lproj/InfoPlist.strings /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources/English.lproj

CpResource build/Release/Sage.app/Contents/Resources/English.lproj/MyDocument.xib English.lproj/MyDocument.xib
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/English.lproj/MyDocument.xib /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources/English.lproj

CpResource build/Release/Sage.app/Contents/Resources/English.lproj/MainMenu.xib English.lproj/MainMenu.xib
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/English.lproj/MainMenu.xib /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources/English.lproj

CpResource build/Release/Sage.app/Contents/Resources/appl.icns appl.icns
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/appl.icns /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/Defaults.plist Defaults.plist
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/Defaults.plist /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-document-py.icns sage-document-py.icns
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-document-py.icns /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-document-sage.icns sage-document-sage.icns
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-document-sage.icns /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-document-spkg.icns sage-document-spkg.icns
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-document-spkg.icns /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-document-sws.icns sage-document-sws.icns
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-document-sws.icns /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-small-blue.png sage-small-blue.png
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-small-blue.png /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-small-green.png sage-small-green.png
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-small-green.png /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-small-grey.png sage-small-grey.png
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-small-grey.png /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/sage-small-red.png sage-small-red.png
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/sage-small-red.png /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/start-sage.sh start-sage.sh
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/start-sage.sh /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/open-location.sh open-location.sh
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/open-location.sh /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

CpResource build/Release/Sage.app/Contents/Resources/loading-page.html loading-page.html
    cd /Users/crisman/Desktop/SageSrc
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /Users/crisman/Desktop/SageSrc/loading-page.html /Users/crisman/Desktop/SageSrc/build/Release/Sage.app/Contents/Resources

ProcessPCH /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/Sage_Prefix-eznqjueptjnfnofhfaeeuuyiiihc/Sage_Prefix.pch.gch Sage_Prefix.pch normal x86_64 objective-c com.apple.compilers.gcc.4_0
    cd /Users/crisman/Desktop/SageSrc
    /Developer/usr/bin/gcc-4.0 -x objective-c-header -arch x86_64 -pipe -std=gnu99 -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -mmacosx-version-min=10.4 -gdwarf-2 -iquote /Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-generated-files.hmap -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-own-target-headers.hmap -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-all-target-headers.hmap -iquote /Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-project-headers.hmap -mdynamic-no-pic -F/Users/crisman/Desktop/SageSrc/build/Release -I/Users/crisman/Desktop/SageSrc/build/Release/include -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/DerivedSources -isysroot /Developer/SDKs/MacOSX10.4u.sdk -c /Users/crisman/Desktop/SageSrc/Sage_Prefix.pch -o /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/Sage_Prefix-eznqjueptjnfnofhfaeeuuyiiihc/Sage_Prefix.pch.gch
In file included from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:20,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSAppleEventDescriptor.h:8,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:104,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12,
                 from /Users/crisman/Desktop/SageSrc/Sage_Prefix.pch:6:
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:286: error: parse error before '*' token
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:320: error: parse error before '*' token
In file included from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:161,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:20,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSAppleEventDescriptor.h:8,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:104,
                 from /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12,
                 from /Users/crisman/Desktop/SageSrc/Sage_Prefix.pch:6:
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/fp.h:1338: error: 'SIGDIGLEN' undeclared here (not in a function)
kcrisman commented 14 years ago
comment:62

Also, I get the big red X next to

    #import <Cocoa/Cocoa.h>

in that file, which apparently is where things stopped.

gvol commented 14 years ago
comment:63

I finally got the MACOSX_DEPLOYMENT_TARGET set in the Xcode interface by changing it 10.1, and then back. For some reason changing between 10.5 and 10.4 didn't actually cause it to be set in the project file correctly, even though it showed up in the interface. It finally builds an app with Minimum System Version set to 10.4 instead of 10.5. I also deleted the SDK so it should default to what the machine has for default. Hopefully this will allow it to be built on both 10.4 and on 10.6 without the 10.4 SDK.

jhpalmieri commented 14 years ago
comment:64

On 10.6, this builds successfully for me. (There are a few warnings, but no errors.) It looks good to me; I like the new menus. My comment about Terminal windows closing when the shell exits now applies to the option "Reveal in shell": if I'm lucky, I see a Terminal window flash open and then close, but sometimes I don't see anything at all. I'm not sure this option is worth keeping; other opinions?

One other minor suggestion: perhaps change the "Sagemath" menu item in the Help menu to "www.sagemath.org" or "Visit www.sagemath.org"?

kcrisman commented 14 years ago
comment:65

Replying to @gvol:

I finally got the MACOSX_DEPLOYMENT_TARGET set in the Xcode interface by changing it 10.1, and then back. For some reason changing between 10.5 and 10.4 didn't actually cause it to be set in the project file correctly, even though it showed up in the interface. It finally builds an app with Minimum System Version set to 10.4 instead of 10.5. I also deleted the SDK so it should default to what the machine has for default. Hopefully this will allow it to be built on both 10.4 and on 10.6 without the 10.4 SDK.

Thanks, Ivan. So close... now it attempts to open. Apparently the selector is causing trouble, though, and it doesn't actually open. Bug report coming up.

kcrisman commented 14 years ago
comment:66

As you can see, I tried several times :)

2010-09-13 13:56:01.391 Sage[251] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:56:01.414 Sage[251] An uncaught exception was raised
2010-09-13 13:56:01.420 Sage[251] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:56:01.421 Sage[251] *** Uncaught exception: <NSInvalidArgumentException> *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
Sep 13 13:56:09 Dasher-03 crashdump[252]: Sage crashed
Sep 13 13:56:11 Dasher-03 crashdump[252]: crash report written to: /Users/student/Library/Logs/CrashReporter/Sage.crash.log
2010-09-13 13:56:46.859 Sage[255] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:56:46.859 Sage[255] An uncaught exception was raised
2010-09-13 13:56:46.860 Sage[255] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:56:46.860 Sage[255] *** Uncaught exception: <NSInvalidArgumentException> *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
Sep 13 13:56:59 Dasher-03 crashdump[256]: Sage crashed
Sep 13 13:57:02 Dasher-03 crashdump[256]: crash report written to: /Users/student/Library/Logs/CrashReporter/Sage.crash.log
2010-09-13 13:58:00.238 Sage[258] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:58:00.238 Sage[258] An uncaught exception was raised
2010-09-13 13:58:00.239 Sage[258] *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
2010-09-13 13:58:00.239 Sage[258] *** Uncaught exception: <NSInvalidArgumentException> *** -[NSFileManager createDirectoryAtPath:withIntermediateDirectories:attributes:error:]: selector not recognized [self = 0x230af40]
Sep 13 13:58:11 Dasher-03 crashdump[259]: Sage crashed
Sep 13 13:58:18 Dasher-03 crashdump[259]: crash report written to: /Users/student/Library/Logs/CrashReporter/Sage.crash.log
kcrisman commented 14 years ago
comment:67

Another issue - if you start it without a binary inside, and then click to choose a starting binary, it turns out that if you choose the folder and not the "executable" (which I think means the script $SAGE_ROOT/sage), you never get a warning message, except in the Console. Here is some pertinent information:


9/13/10 4:28:17 PM  Sage[9812]  sageBinary:(null)
9/13/10 4:28:30 PM  Sage[9812]  Not showing in Dock
9/13/10 4:30:02 PM  Sage[9812]  starting sage
9/13/10 4:30:02 PM  Sage[9812]  Running command: /Users/.../sage

And when I try to get a terminal (in this case, the preference was already for only menu bar item - really confusing to me that it remembers prefs, but I think that's probably "correct" behavior):

Last login: Mon Sep 13 16:30:05 on ttys000
/Users/.../sage; exit
$ /Users/.../sage; exit
-bash: /Users/.../sage: is a directory
logout

[Process completed]

But there is no check that first time that the executable actually is one if you don't have the Sage server starting automatically. I realize this would be unusual - someone that started with some prefs - but anyway it seems like it should be checked for.

gvol commented 14 years ago
comment:68

Replying to @jhpalmieri:

On 10.6, this builds successfully for me. (There are a few warnings, but no errors.) It looks good to me; I like the new menus. My comment about Terminal windows closing when the shell exits now applies to the option "Reveal in shell": if I'm lucky, I see a Terminal window flash open and then close, but sometimes I don't see anything at all. I'm not sure this option is worth keeping; other opinions?

I changed it to run cd ... && $SHELL which makes more sense anyway. So that particular problem should be fixed. I guess you can tell that I tested with a version that doesn't exit :-)

One other minor suggestion: perhaps change the "Sagemath" menu item in the Help menu to "www.sagemath.org" or "Visit www.sagemath.org"?

Good idea.

Replying to @kcrisman:

Replying to @gvol:

I finally got the MACOSX_DEPLOYMENT_TARGET set in the Xcode interface by changing it 10.1, and then back. For some reason changing between 10.5 and 10.4 didn't actually cause it to be set in the project file correctly, even though it showed up in the interface. It finally builds an app with Minimum System Version set to 10.4 instead of 10.5. I also deleted the SDK so it should default to what the machine has for default. Hopefully this will allow it to be built on both 10.4 and on 10.6 without the 10.4 SDK.

Thanks, Ivan. So close... now it attempts to open. Apparently the selector is causing trouble, though, and it doesn't actually open. Bug report coming up.

I see that that is indeed 10.5+ only. Unfortunately, I can't find how to get Xcode to warn me of such things. I swear I had it doing that before... Anyway, if you could try compiling again and send me any warnings that are produced when building. I made sure to fix all the warnings on my machine. In particular what we are looking for is "may not respond to" warnings.

Thanks both of you for your patience.

jhpalmieri commented 14 years ago
comment:69

Thanks both of you for your patience.

No, thank you for your work here.

This might be more appropriate for a further ticket, but to what extent does the app depend on a Sage installation? It seems like it shouldn't have to depend on it at all, because of the option to select another executable. So it might be nice to a smaller app (the current one takes over 1 1/2 gigabytes on my machine) which is just the front end: it relies on having a separate Sage installation. On my machine, I always create a link /Applications/sage/ pointing to SAGE_ROOT for my most recent Sage installation, so if I had a small app, I would just point it at /Applications/sage/sage, and I would never have to rebuild the app.

Or maybe there is an easy way to modify the current app to make it smaller so it does what I want: can I just delete the directory Contents/Resources/sage, as long as I use an external executable? If something like this works, we might want to document it and separately distribute a smaller app, built this way, as a front end.

gvol commented 14 years ago
comment:70

Replying to @kcrisman:

Another issue - if you start it without a binary inside, and then click to choose a starting binary, it turns out that if you choose the folder and not the "executable" (which I think means the script $SAGE_ROOT/sage), you never get a warning message, except in the Console. Here is some pertinent information:

I have changed it so that you can choose SAGE_ROOT (since I think that makes sense), but also that it will keep prompting you for a sage executable (which is $SAGE_ROOT/sage) until you choose one

And when I try to get a terminal (in this case, the preference was already for only menu bar item - really confusing to me that it remembers prefs, but I think that's probably "correct" behavior):

It's certainly standard. It's just that you don't usually reinstall the same application so many times :-)

Replying to @jhpalmieri:

This might be more appropriate for a further ticket, but to what extent does the app depend on a Sage installation? It seems like it shouldn't have to depend on it at all, because of the option to select another executable. So it might be nice to a smaller app (the current one takes over 1 1/2 gigabytes on my machine) which is just the front end: it relies on having a separate Sage installation. On my machine, I always create a link /Applications/sage/ pointing to SAGE_ROOT for my most recent Sage installation, so if I had a small app, I would just point it at /Applications/sage/sage, and I would never have to rebuild the app.

You are right. It doesn't really depend on Sage at all (except of course to be useful).

Or maybe there is an easy way to modify the current app to make it smaller so it does what I want: can I just delete the directory Contents/Resources/sage, as long as I use an external executable? If something like this works, we might want to document it and separately distribute a smaller app, built this way, as a front end.

You can just delete that directory, or instead just build from the xcode project instead of through sage --bdist. Yes we probably ought to document this. Perhaps we could have a sage --app-bundle command or something that would build it? Or yet another option to sage --bdist.

kcrisman commented 14 years ago

Changed reviewer from Karl-Dieter Crisman, Jason Grout to Karl-Dieter Crisman, Jason Grout, John Palmieri

kcrisman commented 14 years ago
comment:71

It seems to work! But doesn't (?) ... although this may have to do with the fact that I'm installing a large spkg at the same time. I'll try again in a second. More relevantly...

If you think you have waited long enough, then try View Log under the Development menu which may give you some clues as to why it has not started.

There is no such option in the Development menu of the menu bar thing.

I also just want to echo jhpalmieri's comment. It's not our patience, but yours - it will be so awesome to have something that has actually been tested by more than two people, look at all the (inevitable) bugs/user improvements already found.

kcrisman commented 14 years ago
comment:72

There is no such option in the Development menu of the menu bar thing.

What I meant is of course that it is in the main menu.

Sadly, there seems to be yet ANOTHER problem. I will try building it in a second.

2010-09-13 22:12:40.728 Sage[6297] sageBinary:/Users/crisman/Desktop/sage-4.5.3/sage
2010-09-13 22:12:40.776 Sage[6297] Starting server
2010-09-13 22:12:40.786 Sage[6297] Sage Browsing: /Users/crisman/Desktop/Sage-ppc.app/Contents/Resources/loading-page.html
usage: /Users/crisman/Desktop/Sage-ppc.app/Contents/Resources/start-sage.sh SAGE_EXECUTABLE LOG
2010-09-13 22:13:53.681 Sage[6297] starting sage
2010-09-13 22:13:53.692 Sage[6297] Running command: /Users/crisman/Desktop/sage-4.5.3/sage
2010-09-13 22:13:53.693 Sage[6297] *** -[NSCFString stringByReplacingOccurrencesOfString:withString:]: selector not recognized [self = 0x230cd70]
2010-09-13 22:13:53.698 Sage[6297] *** -[NSCFString stringByReplacingOccurrencesOfString:withString:]: selector not recognized [self = 0x230cd70]

Anyway, so nothing works. Weirdly, the server shows up ending in the Console, but it never starts - localhost cannot be found, in fact.

I see that that is indeed 10.5+ only. Unfortunately, I can't find how to get Xcode to warn me of such things. I swear I had it doing that before... Anyway, if you could try compiling again and send me any warnings that are produced when building. I made sure to fix all the warnings on my machine. In particular what we are looking for is "may not respond to" warnings.

I don't get any warnings, just failures. Currently it makes it through the files, then (good!) finishes one of the two predefined headers or whatever (maybe both?), but fails at

Building target “Sage” of project “Sage” with configuration “Release”

Checking Dependencies
CompileC build/Sage.build/Release/Sage.build/Objects-normal/ppc/MyDocument.o /Users/crisman/Desktop/SageSrc/MyDocument.m normal ppc objective-c com.apple.compilers.gcc.4_0
    cd /Users/crisman/Desktop/SageSrc
    /Developer/usr/bin/gcc-4.0 -x objective-c -arch ppc -pipe -std=gnu99 -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -Wreturn-type -Wunused-variable -fmessage-length=0 -mtune=G5 -fvisibility=hidden -mmacosx-version-min=10.4 -gdwarf-2 -iquote /Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-generated-files.hmap -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-own-target-headers.hmap -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-all-target-headers.hmap -iquote /Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Sage-project-headers.hmap -mdynamic-no-pic -F/Users/crisman/Desktop/SageSrc/build/Release -I/Users/crisman/Desktop/SageSrc/build/Release/include -I/Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/DerivedSources -include /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/Sage_Prefix-fkbwhauskrjhrpepyujyksrnuqml/Sage_Prefix.pch -c /Users/crisman/Desktop/SageSrc/MyDocument.m -o /Users/crisman/Desktop/SageSrc/build/Sage.build/Release/Sage.build/Objects-normal/ppc/MyDocument.o
/Users/crisman/Desktop/SageSrc/MyDocument.m:162: error: parse error before 'NSInteger'

which is

- (void)openPanelDidEnd:(NSSavePanel *)openPanel returnCode:(NSInteger)code contextInfo:(id <WebOpenPanelResultListener>)listener {

I agree that it must be annoying that so many things were added. I truly hope the effort will be worth it!

kcrisman commented 14 years ago
comment:73

I agree that it must be annoying that so many things were added. I truly hope the effort will be worth it!

I mean in Xcode for 10.5, of course, not in the Mac app! There the extras are great :)

gvol commented 14 years ago

Attachment: trac_9873_scripts_sage_deluxe.patch.gz

Patch to plug into bdist

gvol commented 14 years ago
comment:74

I fixed some things relating to building on 10.4. This includes modifying sage -bdist, so if people could re-test that portion it would be great, particularly on 10.4 and 10.5.

kcrisman commented 14 years ago
comment:75

Replying to @gvol:

I fixed some things relating to building on 10.4. This includes modifying sage -bdist, so if people could re-test that portion it would be great, particularly on 10.4 and 10.5.

I'm going to try using this later, but right now I want to ask whether -a -e is portable enough to satisfy drkirkby. I know that one way of doing those is a "Gnuism" and the other one isn't. It probably doesn't matter here, since we only do it on OS X, but still...

kcrisman commented 14 years ago
comment:76

Replying to @gvol:

I fixed some things relating to building on 10.4. This includes modifying sage -bdist, so if people could re-test that portion it would be great, particularly on 10.4 and 10.5.

Okay, bdist works correctly on 10.4, both with and without SAGE_APP_BUNDLE set (that is, it works as it is supposed to).

Jason or John, can you comment on whether you want anything else done to give this positive review? Since this won't be the default bdist to start out, I think that it's okay to give this positive review so that people who aren't looking at this ticket can begin testing it for a while before it becomes default.

Also, one very minor thing - should there be an "about" section in the menu extra?

gvol commented 14 years ago
comment:77

I added a safeguard so that the MenuExtra always shows up on 10.4 since I can't figure out how to make it optionally be a regular application (in a clean way). It's definitely not perfect, but at least you should never be left without a UI now (as could happen before).

I also added support for determining when the server is running in the case of using the system browser and added an option to not respect SAGE_BROWSER since that can be quite slow as it requires running sage -c.

Replying to @kcrisman:

Also, one very minor thing - should there be an "about" section in the menu extra?

I don't think so because I don't think it would ever get used.

Replying to @kcrisman:

I'm going to try using this later, but right now I want to ask whether -a -e is portable enough to satisfy drkirkby. I know that one way of doing those is a "Gnuism" and the other one isn't. It probably doesn't matter here, since we only do it on OS X, but still...

From discussion on sage-devel, I think we're okay here since we're already using bash instead of sh.

kcrisman commented 14 years ago
comment:78

Did you add something in one place but not another, related to checking whether Sage is running? It didn't build the bundle on one of my 10.4 boxes this time. This is based off of 4.6.alpha1.

CpResource build/Debug/Sage.app/Contents/Resources/sage-is-running-on-port.sh sage-is-running-on-port.sh
    cd /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app/sage-is-running-on-port.sh /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app/build/Debug/Sage.app/Contents/Resources
pbxcp: sage-is-running-on-port.sh: No such file or directory

CpResource build/Debug/Sage.app/Contents/Resources/English.lproj/MyDocument.nib English.lproj/MyDocument.nib
    cd /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app/English.lproj/MyDocument.nib /Users/crisman/Desktop/sage-4.6.alpha1/data/extcode/sage/ext/mac-app/build/Debug/Sage.app/Contents/Resources/English.lproj
** BUILD FAILED **
Failed to build Sage.app.
If you don't wish to build Sage.app set SAGE_APP_BUNDLE=no
gvol commented 14 years ago

Patch for the extcode repository

gvol commented 14 years ago
comment:79

Attachment: trac_9873_extcode_sage_deluxe.patch.gz

Replying to @kcrisman:

Did you add something in one place but not another, related to checking whether Sage is running? It didn't build the bundle on one of my 10.4 boxes this time. This is based off of 4.6.alpha1.

Yep, I forgot to add the script to the repository. Fixed now. Sorry.

kcrisman commented 14 years ago
comment:80

Seems to be working now - I'll report back later on tests.

One thing I noticed is that the README.txt that appears (currently in /local/bin, I think) will have to be updated in this case. I think there is already a trac ticket open for this in general, but of course for now this won't be the default. I'm not sure how to handle it, other than adding a second (temporary) README and changing the bdist script to use that one instead of the usual one if one has SAGE_APP_BUNDLE=yes.

kcrisman commented 14 years ago
comment:81

Good, this seems to have fixed it on 10.4. I'll check it out on higher one later.

I noticed that if you bdist from a Sage that doesn't have its documentation built, the first half of help pages don't exist. (This could happen if, for instance, LaTeX wasn't in the path of the build.) I don't know if this means they should be the live ones after all, which build (just not as nicely) without TeX... not sure about this.

Also, it's not possible to use a browser other than the system browser on 10.4 now. What is the connection between this and the Dock - that is, why does it show up as a sub-preference?

But these are all relatively small issues, of course.

kcrisman commented 14 years ago
comment:82

This will supersede #5296 if it gets in first.

Just bumping this in anticipation of things working out. So perhaps for this ticket we add a non-default script, then if it's default #5296 can be closed.

kcrisman commented 14 years ago
comment:83

Ok, I've tested many version of this on OS X 10.4 PPC and 10.6 Intel, and I think that the following needs to be done for positive review:

Otherwise this is at the point where it's time to let people try it, not just sit in obscurity.

gvol commented 14 years ago
comment:84

Replying to @kcrisman:

Good, this seems to have fixed it on 10.4. I'll check it out on higher one later.

Excellent.

I noticed that if you bdist from a Sage that doesn't have its documentation built, the first half of help pages don't exist. (This could happen if, for instance, LaTeX wasn't in the path of the build.) I don't know if this means they should be the live ones after all, which build (just not as nicely) without TeX... not sure about this.

It would be good to always have the documentation. Perhaps someone who knows more about the documentation could give some insight into what would be preferred. The only thing that I want is that it be offline, i.e. doesn't need network access.

Also, it's not possible to use a browser other than the system browser on 10.4 now. What is the connection between this and the Dock - that is, why does it show up as a sub-preference?

If the application doesn't show up in the dock then the windows don't belong to any application (like the Preferences window now). I think this would be extremely confusing and nearly impossible to work with. It's okay for Preferences because it's a single window.

Replying to @kcrisman:

Ok, I've tested many version of this on OS X 10.4 PPC and 10.6 Intel, and I think that the following needs to be done for positive review:

  • Do something about the README issue. This is necessary.

Can we just change the OS X README to have a section about Sage.app and a section for the case that it's not created since it will still be possible to create a binary distribution without Sage.app?

  • Find someone with an OS X 10.5 machine to test whether the bdisting works there too. I think Marshall has one...
kcrisman commented 14 years ago
comment:85

I noticed that if you bdist from a Sage that doesn't have its documentation built, the first half of help pages don't exist. (This could happen if, for instance, LaTeX wasn't in the path of the build.) I don't know if this means they should be the live ones after all, which build (just not as nicely) without TeX... not sure about this.

It would be good to always have the documentation. Perhaps someone who knows more about the documentation could give some insight into what would be preferred. The only thing that I want is that it be offline, i.e. doesn't need network access.

I think that the 'live' documentation only needs the local browser and the ability to connect that way. No actual network connection is needed, just on the person's computer.

Also, it's not possible to use a browser other than the system browser on 10.4 now. What is the connection between this and the Dock - that is, why does it show up as a sub-preference?

If the application doesn't show up in the dock then the windows don't belong to any application (like the Preferences window now). I think this would be extremely confusing and nearly impossible to work with. It's okay for Preferences because it's a single window.

Thanks for clarifying that.

Can we just change the OS X README to have a section about Sage.app and a section for the case that it's not created since it will still be possible to create a binary distribution without Sage.app?

That sounds like a great solution. You can finally remove that part about OS X gurus - because you are one now :)

Great, really close now! I think the relevant file can be checked in using hg_scripts, so you'd probably want to just make it depend on the already existing hg_scripts change for bdist.

gvol commented 14 years ago
comment:86

Replying to @kcrisman:

Can we just change the OS X README to have a section about Sage.app and a section for the case that it's not created since it will still be possible to create a binary distribution without Sage.app?

That sounds like a great solution. You can finally remove that part about OS X gurus - because you are one now :)

Great, really close now! I think the relevant file can be checked in using hg_scripts, so you'd probably want to just make it depend on the already existing hg_scripts change for bdist.

It looks like sage-README-osx.txt is in .hgignore and is not checked into mercurial. It is in the sage_scripts spkg though, so I'm confused about that. I'm just going to put the file here i.e. not as a patch.

jhpalmieri commented 14 years ago
comment:87

Attachment: sage-README-osx.txt

To edit the file sage-README-osx.txt, you should edit the one in local/bin (the one in the sage-scripts repo); this should automatically be copied to the top level directory of the relevant dmg.

(As kcrisman will also tell you, the one in SAGE_ROOT shouldn't even be there in the first place. See #6938, the resolution of which was to delete SAGE_ROOT/sage-README-osx.txt.)

jhpalmieri commented 14 years ago
comment:88

A few comments on sage-README.osx.txt:

One is as a
"regular" OS X application named something like Sage-VERSION.app.  If
you see such an application skip to the section about Sage.app.

to

One is as a
"regular" OS X application named something like Sage-VERSION.  If
you see such an application, skip to the section about Sage.app.  
If you instead see a folder called "sage", proceed as follows.
Therefore please use something like

SAGE_BROWSER=${SAGE_BROWSER-YOUR_VALUE}

Maybe add an explicit example?

kcrisman commented 14 years ago
comment:89

I like John's comments. A few copy-editing remarks:

In line 52, sage should be Sage, as in line 80. There might be others, you should just check quickly.

Line 129 has 'dock', but everywhere else it seems to be 'Dock'.

I would also use "OS X 10.4 (Tiger)" instead of just "10.4 (Tiger)", as there might be one or two folks unsure what the 10.4 is referring to and scared it might be special instructions for them.

John is also right about how and where to edit the sage-README-osx.txt file.

5d2aaf09-c963-473a-bf79-1f742a72700f commented 14 years ago
comment:90

My laptop runs 10.5, so I will try to test this on that. -Marshall

5d2aaf09-c963-473a-bf79-1f742a72700f commented 14 years ago
comment:91

I'm confused about how to apply the patch. Can someone summarize what to do?

Thanks, Marshall

jhpalmieri commented 14 years ago
comment:92

Replying to @sagetrac-mhampton:

I'm confused about how to apply the patch. Can someone summarize what to do?

From within Sage, for example:

sage: hg_extcode.import_patch('trac_9873_extcode_sage_deluxe.patch')
sage: hg_scripts.import_patch('trac_9873_scripts_sage_deluxe.patch')

Then quit Sage and do

$ export SAGE_APP_BUNDLE=yes
$ sage -bdist 4.6.beta0

(I just made up "4.6.beta0"; I don't think it matters what version you type in.)

Then after a while, you'll end up with a folder called something like SAGE_ROOT/dist/sage-4.6.beta0-i386-Darwin/Sage-4.6.alpha2.app. Move this to /Applications or to ~/Desktop or someplace, then double-click on it.

5d2aaf09-c963-473a-bf79-1f742a72700f commented 14 years ago
comment:93

Thanks John.

It seems to work fine on OS X 10.5. I didn't read the new readme first, just started it up and used Server->Start Server. This seemed to work fine although it took a while to start up the first time. Looking at the log it seems this is just from the move to the Desktop; later starts were much quicker. The latest readme seems more complicated than that, so either I am doing something wrong or the instructions could be simplified.

This is really great progress though, great work.

gvol commented 14 years ago
comment:94

I created another patch trac_9873_scripts_sage_deluxe_plus_readme.patch which includes the changes to sage -bdist as well as adding the README to the repository. It supersedes the old scripts patch and all the READMEs. I'm not sure if it will apply cleanly since sage-README-osx.txt is already in the directory, but not tracked.

So the two patches needed are trac_9873_extcode_sage_deluxe.patch and trac_9873_scripts_sage_deluxe_plus_readme.patch.

kcrisman commented 14 years ago
comment:95

Assuming the new patch applies properly (I can't test this now) it should be fine, with the exception that John's comment for an example for SAGE_BROWSER leaves me even more confused now that there IS an example. What is

SAGE_BROWSER=${SAGE_BROWSER-/Applications/Sage-Fluid.app/Contents/Resources/open-location.sh

? Fluid? what does open-location.sh have to do with things? Is this an option to a command?