Print

Print


Hello,

Serge explainations looks perfectly clear to me and i completely agree with it.
Serge, with your agreement, I will add it to the README-devel.txt as a detailed guideline,

1. Cleaning previous install :
Please also note that you may have to remove the ~/.eups directory before installing a new stack.
Indeed previous Qserv install where relying on a python system package which was referenced in this directory.

And I also think it is better to have only one stack for one unix account, even if having multiple stack could work
(provided that you ~/.eups directory is compliant with all of them).

2. Enabling a Qserv version installed from your git repos :
Indeed Jacek, I think Serge is right and that the final :
setup qserv $VERSION
was the only missing point in you install.
This allow you to use the Qserv version you've installed from your git repos.

3. Rebuilding the code of an updated git repos :
Once you've updated the code in your git repos, and want to run it, you can use this workaround to rebuild/reinstall it in the same stack directory :
scons install prefix=$QSERV_DIR
(Then, $VERSION may have became incorrect, but this is non-blocking.)

Of course you can also use the README-devel.txt procedure but it will install a new Qserv instance in the stack.

4. Deleting a previous Qserv version installed in stack
Please run :
# if the previous version is setup
unsetup qserv $OLD_VERSION
eups remove qserv $OLD_VERSION

Have a nice day,

Fabrice


On 05/24/2014 02:54 AM, Serge Monkewitz wrote:
[log in to unmask]" type="cite">
On May 23, 2014, at 5:03 PM, Jacek Becla <[log in to unmask]> wrote:

Because I don't want to work with off-the-shelf pre-cut version
of Qserv. I want to work with git-cloned Qserv.
That’s what Fabrice’s instructions tell you how to do. Since you’ve got a stack installed, let me try to walk you through what’s happening in README-devel.txt it in more detail.

From a clean shell:

1. cd /my/stack/dir
2. source loadLSST.sh

   Makes eups and basic things like python and scone available in your environment.

3. cd to the top-level directory of your clone
4. Run `setup -r .`

    The main thing this does is look for a .table file in a subdirectory of the current one named ups/. It finds qserv.table, from which it infers an eups product name of QSERV. It sets QSERV_DIR to the directory you are in. It also reads the table file and setups up all the qserv dependencies it finds, which is why you need to do this for the build to succeed.

5. eupspkg -er build

   This builds your clone. It uses build/ as a build directory, just as running scons would.

6. eupspkg -er install

   This installs from your git-clone to your stack. The install is to a directory named /my/stack/dir/Linux64/qserv/<branch name>-g<commit hash>(-dirty), where -dirty is only added to the version name if you have uncommitted/unstashed changes in your clone.

7. eupspkg -er declare

   This basically runs the following command:

        eups declare -r /my/stack/dir/Linux64/qserv/<branch name>-g<commit hash> qserv <branch name>-g<commit hash>

   which says: “Hey eups, directory /my/stack/dir/Linux64/qserv/<branch name>-g<commit hash> contains version <branch name>-g<commit hash> of a product called qserv. Please check that there’s a ups/qserv.table file in there, and remember all of that for me so I can come back to it later!”.

Now here is where I think you missed a step:

8. setup qserv <branch name>-g<commit hash>

(in your case, `setup qserv master-ga7082f1e02`). This says, OK eups, now I actually want to use version <branch name>-g<commit hash> of qserv (which was built and installed from your clone and is _not_ the pre-packaged version of qserv you get when installing the stack via new install.sh). This sets QSERV_DIR to /my/stack/dir/Linux64/qserv/<branch name>-g<commit hash>.

Now:

So
eups list qserv
  LOCAL:/usr/local/home/becla/qserv/1/src/qserv 	setup
  master-ga7082f1e02
  u.fjammes.DM-699-g4ec6034b0e 	current b69

is what I want. And that does not have bin…
At this stage you have not yet run `setup qserv master-ga7082f1e02`. If you had, the line for master-ga7082f1e02 would contain the word “setup” (instead of  LOCAL:/usr/local/home/becla/qserv/1/src/qserv).

ls $QSERV_DIR
admin  config.log  css                lib               README.txt site_scons  TODO
build  core        example.custom.py  README-devel.txt  SConstruct tests       ups
That means that here, you are doing an ls of the top-level directory of your git clone. Note the config.log, which is a by-product of building, and wouldn’t be present in an installation directory. 

So Fabrice’s eupspkg commands are basically hiding the details of running scons with the appropriate prefix argument, eups table file expansion, and so on.

Cheers,
Serge
########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1



Use REPLY-ALL to reply to list

To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1