LISTSERV mailing list manager LISTSERV 16.5

Help for QSERV-L Archives


QSERV-L Archives

QSERV-L Archives


QSERV-L@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

QSERV-L Home

QSERV-L Home

QSERV-L  January 2014

QSERV-L January 2014

Subject:

Re: Some questions about building Qserv in branch u/danielw/modules1

From:

"Daniel L. Wang" <[log in to unmask]>

Reply-To:

General discussion for qserv (LSST prototype baseline catalog)

Date:

Thu, 9 Jan 2014 18:22:16 -0800

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (235 lines)

Hi Fabrice,

Sorry again about the delay in responding.

common/ and master/ are obsolete, so they shouldn't build. Before I 
merge, I need to remove them and make sure nothing else is needed from them.

The custom.py is an attempt to reduce/eliminate the use of environment 
variables for building. So far, my custom.py looks like:
-----
MYSQL_LIB="/u1/local/lib/mysql"
GEOMETRY="/u1/lsst/qserv/master/geometry.py"
PYTHONPATH="/u1/local/lib/python2.5/site-packages"
SYS_PYTHONPATH="/usr/lib64/python2.6/site-packages"
----
But I would like to work with you to figure out exactly what needs to be 
specified. So far: mysql include/lib, xrootd include/lib, protobufs 
include/lib/protoc.  Ideally these should always point at *installed* 
paths, rather than source directories.  Boost normally gets detected in 
the system paths. Are you installing boost via eups? If so, maybe there 
should be separate lines for boost include/lib paths in custom.py.

Also, if EUPS sets up the linker paths and include paths in environment 
variables, we can pull those in from custom.py with something like:
import os
LD_LIBRARY_PATH=os.getenv("LD_LIBRARY_PATH")
...


But let's work together on figuring out the best way to apply the paths 
from eups. Can you think of any other packages with paths that need to 
be setup to build within core/?

Would it make your life easier to allow a configuration option like 
"--prefix=/usr/local" where the targets of core/ are "installed" into? 
Right now, core/ builds into core/bld/ , and it places the 
"installation" in core/bld/dist . You will find the python imports in 
core/bld/dist/lsst. Can you think of a better way? I would like to 
discuss this with you so we can determine the best solution that can 
integrate with eups and be as obvious as possible for someone to package 
a qserv rpm or install qserv without the help of eups.  I would love for 
someone to be able to install qserv with "yum install qserv" or 
"aptitude install qserv".


Let me know what you think,
-Daniel



On 01/09/2014 02:18 PM, Fabrice Jammes wrote:
> Hello Daniel,
>
> First of all i wish you a merry christmas and a happy new year ;-).
> I wish you all the best for 2014.
>
> Currently, i try to build your Qserv branch after having installed all 
> qserv deps (but not scisql), with eups (cf. 
> https://github.com/fjammes/misc, tag v0.5).
> First i forked latest version of  u/danielw/modules1 in 
> u/fjammes/modules1_witheups. You can have a look at the modifications 
> i've done in this branch.
> (git diff remotes/origin/u/danielw/modules1 u/fjammes/modules1_witheups)
> Please note that new scons.sh files only contains notes and comments 
> about building code in the same directory but are not intended to be 
> executed in their current state.
>
> As you know the build procedure isn't documented yet, so i try to do 
> some reverse engineering.
> Now i understand better how it works, but  i have certainly 
> misunderstood some pointsn that's why i would need your knowledge in 
> order to use it in the right way.
>
> *1. in core/ directory,* i can build successfully using next commands :
>
> # load eups config
>  cd ~/src/misc/eups/; source env.sh; cd -
> # set up environment for eups product below
> setup mysql
> setup xrootd
> setup protobuf
> # TODO each python package must deploy locally its eggs
> setup python
> # here MYSQL_DIR contains mysql install dir, same for XROOTD_DIR and 
> others.
>
> # next env variables are loaded by scons procedure (cf.detectProtobufs())
> export PROTOC=${PROTOBUF_DIR}/bin/protoc
> export PROTOC_INC=${PROTOBUF_DIR}/include
> export PROTOC_LIB=${PROTOBUF_DIR}/lib
>
> # a custom.py file as also been added in order to set LIBPATH for 
> mysql, xrootd and protobuf, and PYTHONPATH
>
> # i've hacked core/modules/SConscript in order to set CPPPATH for 
> scons arguments, so that scons can find include files for xrootd and mysql
> scons CPPPATH="${XROOTD_DIR}/include/xrootd:${MYSQL_DIR}/include"
> ...
> g++ -o bld/libxrdoss.so -shared bld/util/Substitution.os 
> bld/mysql/MySqlConnection.os bld/wconfig/Config.os 
> bld/util/SqlConnection.os bld/wbase/Base.os 
> bld/obsolete/QservPathStructure.os bld/util/MmapFile.os 
> bld/util/SqlResults.os bld/util/WorkQueue.os bld/log/Logger.os 
> bld/util/Thread.os bld/obsolete/QservPath.os bld/xrdoss/QservOss.os 
> bld/mysql/SqlConfig.os bld/util/xrootd.os bld/util/SqlErrorObject.os 
> bld/wpublish/MySqlExportMgr.os bld/util/SqlFragmenter.os 
> bld/util/Timer.os -L/opt/lsst/Linux64/mysql/5.1.61/lib/mysql 
> -L/opt/lsst/Linux64/mysql/5.1.61/lib/mysql 
> -L/opt/lsst/Linux64/protobuf/2.4.1/lib 
> -L/opt/lsst/Linux64/xrootd/qs5/lib64 -L/usr/lib -lboost_regex-mt 
> -lboost_signals-mt -lboost_thread-mt -lmysqlclient_r -lssl -lcrypto
> Install file: "bld/libxrdoss.so" as "bld/dist/lib/libxrdoss.so"
> Install file: "bld/_masterLib.so" as 
> "bld/dist/lsst/qserv/master/_masterLib.so"
> *scons: done building targets.*
>
>
> # i've hacked core/site_scons/detect.py in order to detect boost 
> include files
>
> Is it possible to build without above hacks ? Could we use the same 
> method for loading all kind of build parameters (i.e. PRODUCT_DIR, 
> LIBPATH, and CPPPATH ) ?
> Here, maybe K.T. will impose the use of sconsutils, i think this tool 
> may do the job.
>
> *
> **2. i also tried to build common/ :*
>
> export MYSQL_ROOT=${MYSQL_DIR}
> export PROTOC=${PROTOBUF_DIR}/bin/protoc
> export PROTOC_INC=${PROTOBUF_DIR}/include
> export PROTOC_LIB=${PROTOBUF_DIR}/lib
>
> eups@clrlsst-dbmaster-vm:~/src/qserv/common 
> (u/fjammes/modules1_witheups) $ rm -rf .scon*
> eups@clrlsst-dbmaster-vm:~/src/qserv/common 
> (u/fjammes/modules1_witheups) $ scons
> scons: Reading SConscript files ...
> Protocol buffers using 
> protoc=/opt/lsst/Linux64/protobuf/2.4.1/bin/protoc with 
> include=/opt/lsst/Linux64/protobuf/2.4.1/include and 
> lib=/opt/lsst/Linux64/protobuf/2.4.1/lib
> debug is 0
> Checking for C++ header file boost/format.hpp... yes
> Checking for C++ header file boost/thread.hpp... yes
> Checking for C++ library mysqlclient_r... yes
> Checking whether mysql_next_result is declared... yes
> scons: done reading SConscript files.
> scons: Building targets ...
> scons: *** [include/lsst/qserv/QservPath.hh] Source `src/QservPath.hh' 
> not found, needed by target `include/lsst/qserv/QservPath.hh'.
> scons: building terminated because of errors.
>
> Could we here also unify the method for loading build parameters, and 
> try to use the same that in 1., if it is possible ?
> I think that common should build qserv_common and qserv_proto which 
> are required by master and worker.
> Could you help me please ?
>
>
> *3. i also tried to build master/*
>
> Here's what i've done :
>
> setup protobuf
> setup xrootd
> setup mysql
> export SEARCH_ROOTS="${XROOTD_DIR}:${MYSQL_DIR}"
>
> And here's what i get, errors are in bold :
>
> eups@clrlsst-dbmaster-vm:~/src/qserv/master 
> (u/fjammes/modules1_witheups) $ scons
> scons: Reading SConscript files ...
> Using xrootd inc/lib:  /opt/lsst/Linux64/xrootd/qs5/include/xrootd 
> /opt/lsst/Linux64/xrootd/qs5/lib64
> *Checking for C++ library qserv_common... no*
> Could not find qserv_common lib
> *Checking for C++ library qserv_proto... no*
> Could not find qserv_proto lib
> Checking for C++ library boost_thread-gcc34-mt... no
> Checking for C++ library boost_thread-gcc41-mt... no
> Checking for C++ library boost_thread-mt... yes
> Checking for C++ library boost_regex-gcc34-mt... no
> Checking for C++ library boost_regex-gcc41-mt... no
> Checking for C++ library boost_regex-mt... yes
> Checking for C++ library antlr... yes
> DEBUG <SCons.SConf.SConfBase object at 0x1577f10>
> Checking for C library ssl... yes
> Checking for C library crypto... yes
> Checking for C++ library mysqlclient_r... yes
> Checking for C++ library XrdUtils... yes
> Checking for C++ library XrdClient... yes
> Checking for C++ library XrdPosix... yes
> Checking for C++ library XrdPosixPreload... yes
> Checking for C++ header file XrdPosix/XrdPosixLinkage.hh... yes
> *IOError: [Errno 2] No such file or directory: 'bin/myWrapper':*
>   File "/home/eups/src/qserv/master/SConstruct", line 318:
>     SConscript("SConscript.runner", exports='env') # Build a runner script
>   File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
>     return method(*args, **kw)
>   File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
>     return _SConscript(self.fs, *files, **subst_kw)
>   File "/usr/lib/scons/SCons/Script/SConscript.py", line 260:
>     exec _file_ in call_stack[-1].globals
>   File "/home/eups/src/qserv/master/SConscript.runner", line 56:
>     makeRunner("bin/myWrapper")
>   File "/home/eups/src/qserv/master/SConscript.runner", line 48:
>     open(target, "w").write(s)
>
> Could you help me please ?
>
>
> Thanks in advance for your help and have a nice day,
>
> Fabrice
>
>
>
>
> ------------------------------------------------------------------------
>
> 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

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

March 2018
February 2018
January 2018
December 2017
August 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use