Mac Attack 2012
Goals
To create a 64-bit freesurfer build on Mountain Lion (machine 'hima') for release v5.2 by December 2012.
Problem Statement
The non-gui tools (mri_* and mris_* and other 'recon-all' stream tools) build properly under 64b Mac (on 'aspasia'). It is the gui tools, eg. the Tcl/Tk-based tools (tkmedit/tksurfer/tkregister) and the VTK-based tools (freeview and qdec) where problems arise. The problems are three-fold: 1. getting the libraries themselves to build properly with 64b compilation enabled (namely, the tcl/tk/tix/blt source has problems); 2. getting the gui tools to build against these libs (assuming hurdle 1. is jumped, and here freeview has problems building against vtk); and 3. getting the gui tools to run properly once they build. Overcoming these problems involves iterating through steps 1, 2 and 3.
Approach
Summary
Upgrade hima to mountain lion using a new disk (retain Leopard install on exising disk), build and test 64b freesurfer build of non-gui tools. Build freeview and qdec tools by building vtk libs using native Tcl/Tk libs. Attempt to build tcl/tk/tix/blt libs using the 'standard' source package, but failing that, attempt build blt and tix libs against native Tcl/Tk libs, and failing that, just distribute the existing 32b tktools and dont build those tools in the 64b build enviro (essentially freezing the state of the tools.. no updates).
The soon-to-be old disk, containing the Leopard OS, will remain in the box, and when a Leopard build is needed, then the 'Option' key is held at reboot, and the old boot disk selected, and freesurfer can be built in the old manner. This will be a one-off event, as the Leopard build will eventually be retired.
Steps
FSIssues - the Redmine FSIssues tracker (http://hima:3000/reports/issue_report/freesurfer) is setup on hima, but hima will get new hard disks for its mountain lion install, and since FSIssues is the only thing that needs to be retained, then a backup of FSIssues and Redmine needs to be created so that it can be recreated afresh on the mountain lion install.(Redmine is installed on Hima-ML and can be found at http://localhost:8080/redmine/. Right now the Redmine install is empty because populating it requires getting a dump of the database on Hima-Leopard and importing it into Redmine on Hima-ML. This could take some time to figure out so for now I am going to leave it empty and pursue MacAttack. Installing Redmine is a non-trivial task but the process was facilitated using the Bitnami installer.)
Buy Mountain Lion - purchase a copy of Mountain Lion. (Done.)
New disks - the disk in hima is getting old, and we want to keep its Leopard around for a 'Leopard' build of freesurfer, and because the current install seems slightly hosed (doesnt seem to run nightly build scripts properly and email is spotty) there is no use in installing mountain lion overtop it, so install one new disk in hima. (Done.)
Install Mountain Lion - after copying the current 32b build tree over to a network location (/space/freesurfer/build/hima-32b), and after the FSIssues Redmine install is properly backed-up and ready for replication under a new OS, then install mountain lion, with help from nmrhelp to get the NFS connection and network login working. (Copying 32bit build tree is done. Backup and importing of Redmine content will be done later. NFS connections and networked logins are hacked.)
pubsw/packages link - create a symlink of pubsw to /autofs/space/lyon_009/pubsw/MacOS10.6-i686, which is where the 64b builds of the 3rd-party libraries belong. some libs might be grossly out of date. vtk is one of them. (Done.)
Create 64b build tree - create a new build enviro like that that exists currently with hima 32b, but afresh with new checkout. also make sure configure.in is setup to do a 64b build (ie, the -m64 switch). build w/o gui support, run recon-all and test results.(Done, recon-all results need to be verified against reference.)
Freeview - next is getting freeview working, which involves getting VTK built, which involves getting it to build with the newest vtk version (5.10?), built against Cocoa (not tcl). Freeview also builds against Qt, so hopefully the native Qt libs work ok. (Doing.)
- Qdec - ditto for Qdec, which also uses vtk, but also kwwidgets (but not Qt).
- tktools - attempt to build tcl/tk/tix/blt sources, or build btl/tix against native tcl/tk, or dont build at all and just commit the binaries for tkmedit/tksurfer/tkregister to cvs and mod the Makefile.am to install those instead of build (actually, do this first thing).
- replicate build on another machine - to flush-out any 'hima' specific build idiosynchrocies, build on other mountain lion machines: 'zeke', 'aspasia', nicks laptop, dougs laptop.
- celebrate