Day 5; While the above is true, its actually good that Tim is spending enough time in the guts of the code that he's probably aware of the detailed deficiencies. So DM is not unawares. Good enough for me.

Anyways, we have Ess-cons working. Lets see if we can get it to go.

becker235:cd $LSST_DEVEL/
becker239:cd DC2/
becker241:cd scons/
becker244:scons
  scons: Reading SConscript files ...
  Checking if  CC is really gcc...yes
  Checking for C++ header file Python.h... yes
  Checking for C++ header file boost/version.hpp... yes
  Checking for C library boost_filesystem:C++... no
  Checking for C++ header file vw/Core.h... no
  Checking for C header file vw/Core.h... no
  Checking for C library vw:C++... no
  Checking for C++ header file fitsio.h... yes
  Checking for ffopen() in C library cfitsio... no
  Checking for C++ header file wcs.h... yes
  Checking for wcscat() in C library wcs... yes
  Checking for C++ header file xpa.h... no
  Checking for C header file xpa.h... no
  Checking for XPAPuts() in C library xpa... no
  Error: Failed to find boost -- do you need to setup boost or specify boost=DIR?
  Failed to find vw/Core.h in None
  Failed to find visionWorkbench -- do you need to setup visionWorkbench or specify visionWorkbench=DIR?
  Failed to find cfitsio -- do you need to setup cfitsio or specify cfitsio=DIR?
  Failed to find xpa.h in None
  Failed to find xpa -- do you need to setup xpa or specify xpa=DIR?

I clearly need to deal with src/SConscript. I see from a locate SConscript check the file DC2/scons/tests/SConscript with the line env.Program(["Mask_1.cc"], LIBS=env.libs["vw"]). So I probably need to do something like this for each file in src. I do a quick svn update to make sure I have the most recent files (Tim keeps trucking on MaskedImage.cc!).

Well, I went ahead and setup cfitsio (nothing else would setup; no versions had been declared 'current'). But the cfitsio stuff still failed with a slightly different error message

  Failed to find cfitsio in /lsst/lsst_root/Linux/external/cfitsio/3006/lib
  Failed to find cfitsio -- do you need to setup cfitsio or specify cfitsio=DIR?

I will try and download the missing packages

becker277:eups distrib -i -C boost
  Installing 1.33.1 of boost
  Product Termcap (version 1.3.1, flavor Linux) is already declared
  Product TclTk (version 8.5a4, flavor Linux) is already declared
  Product readline (version 5.2, flavor Linux) is already declared
  Product Python (version 2.4.2, flavor Linux) is already declared
  Package [boost-1.33.1] found in [LSST]...
  Package [/lsst/lsst_root/Linux:LSST:boost-1.33.1] not [installed]:
      /lsst/lsst_root/Linux/external/eups/v0_7_29/bin/setups.sh: line 17: /lsst/lsst_root/Linux/eups/bin/eups_setup: No such file or directory
  /lsst/lsst_root/Linux/external/eups/v0_7_29/bin/setups.sh: line 17: source: filename argument required
  source: usage: source filename [arguments]
  Pacman failed to install LSST:boost-1.33.1

Whoah, this should not happen, I presume... Ah, I think I see what happened. When RHL installed eups he by default put it in /lsst/lsst_root/Linux/eups, which by no small coincidence is where eups is looking for setups.sh. Then he moved it to /lsst/lsst_root/Linux/external/eups/ by hand. I am guessing that eups did not know that it was moved.

Ah, this is causing all sorts of problems now. I started a new shell, hoping to start over from scratch on all this.

becker1:setupLSST
   PYTHONPATH: Undefined variable.  # bad sign number 1
becker2:eups
   eups: Command not found.         # bad sign number 2
becker3:setup eups
   You are attempting to run "setup" which requires administrative
   privileges, but more information is needed in order to do so.
   Password for root:
becker4:which setup
   /usr/bin/setup
becker5:where setup
   /usr/bin/setup
   /usr/sbin/setup

So we are conflicting with the preinstalled setup program. If I go to my pre-existing shell

becker283:which setup
   setup:   aliased to    source `/lsst/lsst_root/Linux/external/eups/v0_7_29/bin/eups_setup setup !*`

I see that the path to eups is coming into play again. I bet that this is screwed up in the guts somehow. Well, the hack is to

becker284:cd /lsst/lsst_root/Linux/
becker286:ln -s external/eups                    # NO THIS DOES NOT WORK; NEED eups/bin
becker291:ln -s external/eups/v0_7_29 eups

So, a new shell still does not work when I setupLSST, which by the way is an alias to source $LSST_ROOT/Linux/loadLSST.csh. Can I install boost with this?

becker293:eups distrib -i -C boost
  Installing 1.33.1 of boost
  Product Termcap (version 1.3.1, flavor Linux) is already declared
  Product TclTk (version 8.5a4, flavor Linux) is already declared
  Product readline (version 5.2, flavor Linux) is already declared
  Product Python (version 2.4.2, flavor Linux) is already declared
  Using PYTHON_DIR=/lsst/lsst_root/Linux/external/Python/2.4.2
  Package [/lsst/lsst_root/Linux:LSST:boost-1.33.1] not [installed]:
      Failure attempting to [cd /lsst/lsst_root/Linux/$THIRDPARTY_BUILD] at [/lsst/lsst_root/Linux].
  Pacman failed to install LSST:boost-1.33.1

So we have 3 problems right now:

  1. source $LSST_ROOT/Linux/loadLSST.csh : is failing due to some PYTHONPATH issue; I can probably fix this one
  2. eups distrib -i -C boost : is looking for eups executables in the wrong place. I am going to undo my symlink and appeal to RHL for a fix
  3. if I symlink eups to what I think is correct, I am missing environment variable $THIRDPARTY_BUILD

A. Have traced this back to the new installation of eups. Script loadLSST.csh sources $LSST_HOME/external/eups/latest/bin/setups.csh. I see...

becker309:diff $LSST_HOME/external/eups/latest/bin/setups.csh $LSST_HOME/external/eups/v0_7_26-rlp/bin/setups.csh
3,5d2
<    if ("$?PYTHONPATH" == "1" ) then
<       setenv PYTHONPATH `echo $PYTHONPATH | perl -pe "s|:$EUPS_DIR/bin||g"`
<    endif
8c5
< setenv EUPS_DIR /lsst/lsst_root/Linux/eups
---
> setenv EUPS_DIR /lsst/lsst_root/Linux/external/eups/v0_7_26-rlp
17d13
< setenv PYTHONPATH ${PYTHONPATH}:$EUPS_DIR/bin

Ahhh. Changing EUPS_DIR might also solve problem B. Anyways, I suggest the following change to eups/latest/bin/setups.csh to solve A.

if ("$?PYTHONPATH" == "1" ) then
   setenv PYTHONPATH ${PYTHONPATH}:$EUPS_DIR/bin
else
   setenv PYTHONPATH $EUPS_DIR/bin
endif

B. Robert has trickily enacted the appropriate change for this while I was not looking. Luckily I have enough lines in my terminal buffer..!

WAS    : setenv EUPS_DIR /lsst/lsst_root/Linux/eups
IS NOW : setenv EUPS_DIR /lsst/lsst_root/Linux/external/eups/v0_7_29

So, RHL has made the changes A/B in the 'official' eups repository. Which, by the way, is a Princeton SDSS 'CVS' repository, not LSST 'SVN'. So I can't make any changes to it myself.

C. Not sure where this is supposed to be set, but I can do it manually. Where is this supposed to be set? RHL : This is Ray or pacman weirdness. On to RP! He suggests trying

becker329:   cd /lsst/lsst_root/Linux
becker330:   pacman -uninstall LSST:boost-1.33.1
becker331:   eups distrib -i -C boost
  Installing 1.33.1 of boost
  Product Termcap (version 1.3.1, flavor Linux) is already declared
  Product TclTk (version 8.5a4, flavor Linux) is already declared
  Product readline (version 5.2, flavor Linux) is already declared
  Product Python (version 2.4.2, flavor Linux) is already declared
  Using PYTHON_DIR=/lsst/lsst_root/Linux/external/Python/2.4.2
  Package [/lsst/lsst_root/Linux:LSST:boost-1.33.1] not [installed]:
      Failure attempting to [cd /lsst/lsst_root/Linux/lsst/lsst_root/Linux/external/build] at [/lsst/lsst_root/Linux].

A slightly different error now - /lsst/lsst_root/Linux ends up twice in the path..? Ray suggested going back to the previous version of eups, since he hasn't signed off on v0_7_29 yet. So...

becker332:setup eups v0_7_26-rlp
becker333:eups --version
  Version: v0_7_26
becker334:pacman -uninstall LSST:boost-1.33.1
becker335:eups distrib -i -C boost
  Installing 1.33.1 of boost
  Product Termcap (version 1.3.1, flavor Linux) is already declared
  Product TclTk (version 8.5a4, flavor Linux) is already declared
  Product readline (version 5.2, flavor Linux) is already declared
  Product Python (version 2.4.2, flavor Linux) is already declared
  Using PYTHON_DIR=/lsst/lsst_root/Linux/external/Python/2.4.2
  Package [/lsst/lsst_root/Linux:LSST:boost-1.33.1] not [installed]:
      Failure attempting to [cd /lsst/lsst_root/Linux/lsst/lsst_root/Linux/external/build] at [/lsst/lsst_root/Linux].
  Pacman failed to install LSST:boost-1.33.1

Not yet.

SConscript : A search of Trac shows no local web page on this - would be nice to have examples. But, there are tons available through a Google search. E.g.  this one.