[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] virtualenv, pip and htcondor (python)




On Dec 10, 2016, at 10:13 AM, L Kreczko <L.Kreczko@xxxxxxxxxxxxx> wrote:

Hi John, hi Brian,

Thanks for the answers. After a bit of fiddling I ended up with this set:
cmake -DPROPER:BOOL=FALSE -DCLIPPED:BOOL=TRUE -DWITH_BLAHP:BOOL=FALSE -DWITH_COREDUMPER:BOOL=FALSE \
      -DWITH_CREAM:BOOL=FALSE -DWITH_DRMAA:BOOL=FALSE -DWITH_GLOBUS:BOOL=FALSE -DWITH_GSOAP:BOOL=FALSE \
      -DWITH_HADOOP:BOOL=FALSE -DWITH_LIBVIRT:BOOL=FALSE -DWITH_LIBXML2:BOOL=FALSE -DWITH_UNICOREGAHP:BOOL=FALSE \
      -DWITH_VOMS:BOOL=FALSE -DWITH_BOINC:BOOL=FALSE -DWITH_KRB5:BOOL=FALSE -DWITH_LIBCGROUP:BOOL=OFF\
      -DWITH_GANGLIA:BOOL=OFF -DWITH_CAMPUSFACTORY:BOOL=OFF -DWITH_BOSCO:BOOL=OFF -DWANT_GLEXEC:BOOL=OFF \
      -DUW_BUILD:BOOL=TRUE -D_VERBOSE:BOOL=TRUE -DBUILDID:STRING=UW_development -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/release_dir "$@"

However, since I turn off KRB5 an error occurs:
/home/vagrant/workspace/htcondor/src/condor_io/condor_auth_ssl.cpp: In static member function âstatic bool Condor_Auth_SSL::Initialize()â:
/home/vagrant/workspace/htcondor/src/condor_io/condor_auth_ssl.cpp:107:7: error: âCondor_Auth_Kerberosâ has not been declared
  if ( Condor_Auth_Kerberos::Initialize() == false ||
       ^
src/condor_utils/CMakeFiles/condor_utils.dir/build.make:7152: recipe for target 'src/condor_utils/CMakeFiles/condor_utils.dir/__/condor_io/condor_auth_ssl.cpp.o' failed.


If I allow for KRB, the compilation fails at DAG:
[ 74%] Linking CXX executable condor_submit_dag
[ 74%] Built target condor_submit_dag
Scanning dependencies of target condor_dagman_metrics_reporter
[ 74%] Building CXX object src/condor_dagman/CMakeFiles/condor_dagman_metrics_reporter.dir/condor_dagman_metrics_reporter.cpp.o
[ 74%] Building CXX object src/condor_dagman/CMakeFiles/condor_dagman_metrics_reporter.dir/__/condor_utils/condor_version.cpp.o
[ 74%] Linking CXX executable condor_dagman_metrics_reporter
//lib/x86_64-linux-gnu/libssl.so.1.0.0: undefined reference to `SHA224_Init@xxxxxxxxxxxxx'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libcurl.so: undefined reference to `ENGINE_get_id@xxxxxxxxxxxxx'
+ many more 'undefined reference'.

Is there a way to disable DAG? Essentially, I just want the python-bindings :)

And just as I said that, I 
cd src/python-bindings/
make

and end up with htcondor.so and classad.so!
Well, that was easy ;)


I think you can just name the specific cmake targets:

make htcondor classad

and that should build the python modules plus dependencies.


Starting from fresh, the python-bindings also compile
 - src/classad
 - src/condor_utils


Sounds about right.


Next step is to make the compiled libraries work with the installed ones (e.g import the module):
python -c 'import htcondor'Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: /home/vagrant/workspace/htcondor/src/python-bindings/libcondor_utils_8_5_9.so: undefined symbol: _ZN7classad19ClassAdJsonUnParser7UnparseERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_7ClassAdERKSt3setIS6_NS_12CaseIgnLTStrESaIS6_EE


I think this is perhaps a dynamic loader issue -- you might need to explicitly set $LD_LIBRARY_PATH for python, whereas RPATH works

BTW: 'import classad' works out-of-the-box'

For the setup.py there are two approaches:
Not experienced with either, suggestions are welcome.



I don't think there's any way to get the C++ extension working: there's just too much condor code to replicate the build in condor.  I think (2) is the way too go.

Brian