There are a couple of tricks to upgrading to the new image api, so installing the new build system from scratch.

Notes on upgrading to the new image API here and  here.

Problems I came across :

  • Boost had problems installing.
    Error: Failed to find/use boost_mpi library in /lsst/lsst_root_dms_012809/Linux64/external/boost/1.36.0+1/lib 
    
    Solution : reinstall boost
    eups remove boost 1.36.0+1 --force
    lsstpkg install -C boost
    
  • Doxygen did not build
    Failed to build and install external/doxygen/1.5.8/doxygen.bld 
    
    Solution : Need to install bison as root (either need to list this [wiki:InstallingOnLinux here] (done) or put in build system)
    yum install bison
    
  • Having problems "essconsing" because of pex_exceptions
    error: lsst/pex/exceptions.h: No such file or directory (even tho $PEX_EXCEPTIONS_DIR/include/lsst/pex/exceptions.h exists)
    
    Solution : Need to re-arrange the order of dependencies in both ups.table and SConstruct.  Here is one from afw:
    setupRequired(daf_data >= 3.2.1)
    setupRequired(utils >= 3.4)
    setupRequired(boost >= 1.36.0+1)
    setupRequired(cfitsio >= 3006.2)
    setupRequired(wcslib >= 4.2+3)
    setupRequired(xpa >= 2.1.7b2)
    setupRequired(numpy >= 1.0.1)
    setupRequired(minuit >= 1.7.9)
    setupOptional(afwdata)
    envPrepend(LD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
    envPrepend(DYLD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
    envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
    

Good reference : afw trunk's SConstruct and table

  • Doxygen hangs
    It just keeps going at 100% CPU on "doxygen doxygen.conf"
    
    Solution: TBD
    

And other random coding/API changes:

old:
    } catch (lsst::pex::exceptions::ExceptionStack &e) {

new:
    } catch (std::exception &e) {
old:
    kImage = kernelPtr->computeNewImage(kSum, false);

new:
    kSum = kernelPtr->computeImage(kImage, false);
old: (cols -> width; rows -> height)
    miToConvolveParentPtr->getCols()

new:
    miToConvolveParentPtr->getWidth()
old:
    unsigned int startCol = (*kiter)->getCtrCol();

new:
    unsigned int startCol = (*kiter)->getCtrX();

Col = Width = X

Row = Height = Y

old:
                throw pexExcept::DomainError("Unable to determine kernel uncertainty (nan)");
new:
                throw LSST_EXCEPT(pexExcept::Exception, "Unable to determine kernel uncertainty (nan)");

old:
   i explicitly instantiate things like
       lsst::afw::image::MaskedImage<double, lsst::afw::image::MaskPixel> const &imageToNotConvolve,

new:
   masked images are now also templated on variance, but there are default values for this and the mask, so i think i want to
       lsst::afw::image::MaskedImage<double> const &imageToNotConvolve,
If you get the problem during SWIG:
   /lsst/lsst_root_dms_012809/Linux64/daf_base/3.2/python/lsst/daf/base/baseLib.i:21: Error: Unable to find 'lsst/pex/exceptions/exceptionsLib.i'

You need to edit $IP_DIFFIM_DIR/python/lsst/ip/diffim/SConscript and add in stuff like:
   env.CheckSwig("python", ilang="c++", includedProducts="pex_exceptions")
old:
    templateMaskedImage = afwImage.MaskedImageF()
    templateMaskedImage.readFits(templatePath)

new:
    templateMaskedImage = afwImage.MaskedImageF(templatePath)