How do I build CASA packages for OS X?

SSH to build host.

At this time, OS X 10.5 and 10.6 CASA package builds currently only work as srankin@sneffels.

Other users on sneffels with sudo permission may take ownership of the source tree to run this process if necessary.

See CAS-2840

Set up

Add the following to the shell environment

OS X 10.5

export BUILD_NUMBER=[subversion revision number]

export BRANCH=[test|stable|release]
export BUILD_ARCH=darwin

export DYLD_FRAMEWORK_PATH=/opt/casa/core2-apple-darwin8/3rd-party/Frameworks
export DYLD_LIBRARY_PATH=/opt/casa/core2-apple-darwin8/3rd-party/lib/gcc42

export PACKAGE_FILE=CASA-intel-$BUILD_NUMBER.dmg
export PACKAGE_TYPE=core2-apple-darwin8
export PACKAGE_WORK_DIRECTORY=/opt/casa/$BRANCH

export PATH=/opt/casa/core2-apple-darwin8/3rd-party/bin/:$PATH

export TEMPLATE_DIRECTORY=/opt/casa/core2-apple-darwin8/template

export POST_BUILD_TEST_DIRECTORY=/Volumes/sneffels4/srankin/projects/testCasaBuilds/

OS X 10.6

export BUILD_NUMBER=[subversion revision number]

export BRANCH=[test|stable|release]
export BUILD_ARCH=darwin64

export DYLD_FALLBACK_LIBRARY_PATH=/opt/casa/darwin10-64b/lib
export DYLD_LIBRARY_PATH=/opt/casa/darwin10-64b/Library/Frameworks

export PACKAGE_FILE=CASA-intel64b-10.6-$BUILD_NUMBER.dmg
export PACKAGE_TYPE=darwin10-64b
export PACKAGE_WORK_DIRECTORY=/opt/casa/$BRANCH

export TEMPLATE_DIRECTORY=/opt/casa/template

export POST_BUILD_TEST_DIRECTORY=/Volumes/sneffels4/srankin/projects/testCasaBuilds/

OS X 10.7

To be filled out after the OS X 10.7 release. Expected in Summer 2011.

Process

After setting up the shell environment, copy and paste the instructions below. These will scripted when debugged.

Get code changes

cd $PACKAGE_WORK_DIRECTORY
svn update
export BUILD_NUMBER=[# reported by svn update]

Edit build number into the shell environment, then source again.

Note: the current package build procedure uses incremental builds.

Re-build each major module

(cd casacore/build && make -j 8 2>&1 | tee make.log && make -j 8 install 2>&1 | tee install.log)
(cd code/build && make -j 8 2>&1 | tee make.log && make -j 8 install 2>&1 | tee install.log)
(cd asap/build && make -j 8 2>&1 | tee make.log && make -j 8 install 2>&1 | tee install.log)

Note: If the install step completed, then the make step also completed without error.

Build the package

cp code/VERSION $BUILD_ARCH
cd $TEMPLATE_DIRECTORY
sudo ./make-casa-appv3.sh $PACKAGE_TYPE $BRANCH

Test the package

cp $TEMPLATE_DIRECTORY/$PACKAGE_FILE $POST_BUILD_TEST_DIRECTORY
launchctl remove org.freedesktop.dbus-session
launchctl remove org.freedesktop.dbus-system

Note: the preceding launchctl commands may report, "launchctl remove error: No such process". This is OK.

The following steps must be carried out on the console of the build computer.

  • Double click on the PACKAGE_FILE icon on the desktop.
  • After the package opens, read the readme.txt file. Follow all installation instructions.
  • After starting CASA, in a new Terminal, you will see CASA update the data repository.
  • A new "Log Messages" window will open.
  • In the Terminal opened above, you will see a CASA prompt. At the prompt type:

asap_init

You will see: "*** ... ASAP (trunk rev# unknown ) import complete ***". If this test passes, it's worth trying to run some end-to-end tests.

Make regression data available

In a shell terminal:

ln -s /opt/casa/data/regression $POST_BUILD_TEST_DIRECTORY/CASA.app/Contents/data/

Run one or more short end-to-end tests

In a CASA terminal:

execfile '......regressions/vla_uvfits_line_sf.py'

For this test, we expect all subtests to pass, but it will still report a failure.

To run a suite of end-to-end tests, run:

execfile '.......python/regression.py'

Publish the package

Open Questions

  • Where is make-casa-appv3.sh kept in change control?

  • How do we build a template directory?

  • How do we install library dependancies?

-- ScottRankin - 2011-02-22
Topic revision: r7 - 2011-04-08, ScottRankin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback