From pjotr.public14 at thebird.nl Fri Apr 10 15:52:05 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Fri, 10 Apr 2009 21:52:05 +0200 Subject: [BioLib-dev] GNU Science Library Message-ID: <20090410195205.GA17108@thebird.nl> Most of the GNU Science library (GSL) has been mapped against Perl with ASciLib - some 1800 functions(!) http://biolib.open-bio.org/wiki/ASciLib For a list of included modules check: http://github.com/pjotrp/ascilib/blob/master/src/mappings/swig/gsl_common.i Modules currently not working are: %include CBLAS.i %include Deriv.i %include Chebyshev.i %include Errno.i %include Heapsort.i %include Integration.i %include Min.i %include Monte.i %include Multiroots.i %include NTuple.i %include Permutation.i %include Randist.i %include Roots.i %include Sort.i Note that this initial mapping directly uses Jonathan Leto's Perl Math::GSL module. An interesting feature is that ASciLib comes with the GSL bleeding edge source repository (as a git submodule). The latest and the greatest should build with Perl5. Enjoy. Pj. From pjotr.public14 at thebird.nl Sat Apr 11 11:06:57 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sat, 11 Apr 2009 17:06:57 +0200 Subject: [BioLib-dev] Ruby mapping of the GNU Science Library In-Reply-To: <20090410195205.GA17108@thebird.nl> References: <20090410195205.GA17108@thebird.nl> Message-ID: <20090411150657.GA23591@thebird.nl> Just completed the Ruby mapping of the GSL. Almost as good as Perl's. This is where the CMake/SWIG infrastructure pays :-) Pj. On Fri, Apr 10, 2009 at 09:52:05PM +0200, Pjotr Prins wrote: > Most of the GNU Science library (GSL) has been mapped against Perl > with ASciLib - some 1800 functions(!) From j_martin at lbl.gov Sat Apr 25 01:58:54 2009 From: j_martin at lbl.gov (Joel Martin) Date: Fri, 24 Apr 2009 22:58:54 -0700 Subject: [BioLib-dev] installation Message-ID: <20090425055854.GB25132@eniac.jgi-psf.org> Hello, I had to futz about with cmake quite a bit and as I don't know anything about cmake I've probably done something horrible. Here is what 'make install' ended up doing, I did want it to go into /scratch so that part all looks good but the perl locations seem odd as they aren't using 'auto' -- Install configuration: "Release" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/example.pm -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/affyio.pm -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/staden_io_lib.pm when I try perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) so my questions are, do those install paths look like what it was supposed to do? Is that how you have them? is there there any interaction problem with changing the module names to conform with the guidlines in 'perldoc perlmodlib' ? and relatedly would changing staden_io_lib to just Stadenio cause trouble? ---- this part is just fyi, what I changed to get it to compile for me. --- I had trouble getting it to recognize my configuration, though it was getting all the correct info from perl -MConfig -e 'what-ever'. As you can see above my perl is in a nonstandard location. In the file ./cmake_modules/FindPerlLibs.cmake after I changed SET(PERL_POSSIBLE_INCLUDE_PATHS ${PARCHLIB} to SET(PERL_POSSIBLE_INCLUDE_PATHS ${PARCHLIB}/CORE FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h ${PERL_POSSIBLE_INCLUDE_PATHS} should have worked but would return perl.h in the /usr/lib/perl/5.8.8/CORE spot that debians default perl is at. according to cmake man page this should have stopped it looking in it's builtin paths FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h PATHS ${PERL_POSSIBLE_INCLUDE_PATHS} NO_DEFAULT_PATH ) but it didn't seem to. I'd think that's a bug in cmake except I've barely used it before so it might be a bug in me. I ended up with this hack IF (EXISTS ${PARCHLIB}/CORE/perl.h) SET(PERL_INCLUDE_PATH ${PARCHLIB}/CORE) ELSE (EXISTS ${PARCHLIB}/CORE/perl.h) FIND_PATH(PERL_INCLUDE_PATH perl.h ${PERL_POSSIBLE_INCLUDE_PATHS}) ENDIF (EXISTS ${PARCHLIB}/CORE/perl.h) Joel From pjotr.public14 at thebird.nl Sat Apr 25 21:03:49 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:03:49 +0200 Subject: [BioLib-dev] installation In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426010349.GA28465@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > I had to futz about with cmake quite a bit and as I don't know > anything about cmake I've probably done something horrible. Here is > what 'make install' ended up doing, I did want it to go into > /scratch so that part all looks good but the perl locations seem odd > as they aren't using 'auto' The current FindPerl cmake files haven't been fully tested on all platforms, so your help is very welcome. I'll try and help with the installation paths. One at at time. > -- Install configuration: "Release" > -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so > -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" Strange. CMAKE_INSTALL_PREFIX should be filled in - normally /usr. What cmake version are you running and what version of OS/X? I have committed a small patch forcing the PREFIX to /usr. Can you send me the output of './configure --with-staden'? > when I try > perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) Probably related to above. The shared library is not in the RPATH now. Let's fix that first. Pj. From pjotr.public14 at thebird.nl Sat Apr 25 21:08:44 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:08:44 +0200 Subject: [BioLib-dev] installation - on module names In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426010844.GB28465@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > is there there any interaction problem with changing the module > names to conform with the guidlines in 'perldoc perlmodlib' ? and > relatedly would changing staden_io_lib to just Stadenio cause > trouble? At this point: yes. The module names are 'logical' to BioLib and the build system - as it is also the name of the path to the clib sources. We may reconsider that later, but it ties in with automated documentation and naming of modules for other languages. Let's aim for functionality first (a Perl wrapper is easily written later - the biolib interfaces tend to be low level anyway). Currently the naming conventions are not carved in stone. Pj. From pjotr.public14 at thebird.nl Sat Apr 25 21:24:18 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:24:18 +0200 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426012418.GA29593@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h ${PERL_POSSIBLE_INCLUDE_PATHS} > should have worked but would return perl.h in the /usr/lib/perl/5.8.8/CORE spot that debians > default perl is at. I think it uses the default Perl binary, rather than yours. Do you mind sending me a dump of cmake's full output? You can override Perl's executable on the CMake command line. Something like: cmake -DSTADEN_LIB:BOOLEAN=TRUE -DPERL_EXECUTABLE:STRING='/mypath/bin/perl' . Try that too, and send me output. Pj. From j_martin at lbl.gov Sat Apr 25 21:52:25 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sat, 25 Apr 2009 18:52:25 -0700 Subject: [BioLib-dev] installation In-Reply-To: <20090426010349.GA28465@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> Message-ID: <20090426015225.GC25132@eniac.jgi-psf.org> Hello, On Sun, Apr 26, 2009 at 03:03:49AM +0200, Pjotr Prins wrote: > On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > > I had to futz about with cmake quite a bit and as I don't know > > anything about cmake I've probably done something horrible. Here is > > what 'make install' ended up doing, I did want it to go into > > /scratch so that part all looks good but the perl locations seem odd > > as they aren't using 'auto' > > The current FindPerl cmake files haven't been fully tested on all > platforms, so your help is very welcome. I'll try and help with the > installation paths. One at at time. > > > -- Install configuration: "Release" > > -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so > > -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" > > Strange. CMAKE_INSTALL_PREFIX should be filled in - normally /usr. > What cmake version are you running and what version of OS/X? > > I have committed a small patch forcing the PREFIX to /usr. Can you > send me the output of './configure --with-staden'? I wouldn't be installing into /usr though, for now I'm putting it into /scratch and if deploying it I'd put it into an nfs mounted directory that's shared across lots of machines and not in /usr the rpath for the libbiolib_*.so where I installed all seem correct like, ldd /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so libz.so.1 => /usr/lib/libz.so.1 (0x00002b1f89a60000) libc.so.6 => /lib/libc.so.6 (0x00002b1f89b76000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) the ones that are in the perl tree are missing rpaths, ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so libbiolib_staden_io_lib-0.0.4.so => not found libperl.so => not found libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) ** note, out of over 100 .so files in my perl install, these are the only one linked against libperl.so the output for ./configure --with-staden is at the very bottom, it's after I added those previous 2 changes. > > when I try > > perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) > > Probably related to above. The shared library is not in the RPATH > now. Let's fix that first. Should have pasted the whole message... but yes it's probably the unfound lib. perl -Mbiolib::staden_io_lib Can't load '/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so' for module staden_io_lib: libbiolib_staden_io_lib-0.0.4.so: cannot open shared object file: No such file or directory at /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230. at /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/staden_io_lib.pm line 11 Compilation failed in require. BEGIN failed--compilation aborted. ------- output of ./configure --with-staden (i've commented out somr RQTL lines in the make files ------- and added some prints ) BioLib defaulting to Perl build --with-staden: -DBUILD_PERL:BOOLEAN=TRUE --with-staden: -DSTADEN_LIB:BOOLEAN=TRUE removed `cmake_install.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/cmake_install.cmake' removed `./src/clibs/cmake_install.cmake' removed `./src/mappings/swig/perl/staden_io_lib/cmake_install.cmake' removed `./src/mappings/swig/perl/cmake_install.cmake' removed `./src/cmake_install.cmake' removed `CTestTestfile.cmake' removed `./src/clibs/CTestTestfile.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CTestTestfile.cmake' removed `./src/mappings/swig/perl/CTestTestfile.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CTestTestfile.cmake' removed `./src/CTestTestfile.cmake' removed `CMakeCache.txt' removed `Makefile' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/Makefile' removed `./src/clibs/Makefile' removed `./src/mappings/swig/perl/staden_io_lib/Makefile' removed `./src/mappings/swig/perl/Makefile' removed `./src/Makefile' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/progress.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/build.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/DependInfo.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/link.txt' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/flags.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/cmake_clean.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/progress.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/depend.make' removed directory: `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles' find: ./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles: No such file or directory removed `./src/clibs/CMakeFiles/progress.make' removed `./src/clibs/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/clibs/CMakeFiles' find: ./src/clibs/CMakeFiles: No such file or directory removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/build.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/DependInfo.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/link.txt' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/flags.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/cmake_clean.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/progress.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/depend.make' removed directory: `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/progress.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/mappings/swig/perl/staden_io_lib/CMakeFiles' find: ./src/mappings/swig/perl/staden_io_lib/CMakeFiles: No such file or directory removed `./src/mappings/swig/perl/CMakeFiles/progress.make' removed `./src/mappings/swig/perl/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/mappings/swig/perl/CMakeFiles' find: ./src/mappings/swig/perl/CMakeFiles: No such file or directory removed `./src/CMakeFiles/progress.make' removed `./src/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/CMakeFiles' find: ./src/CMakeFiles: No such file or directory removed `./CMakeFiles/Makefile.cmake' removed `./CMakeFiles/CheckTypeSize.bin' removed directory: `./CMakeFiles/CMakeTmp/CMakeFiles/cmTryCompileExec.dir' removed directory: `./CMakeFiles/CMakeTmp/CMakeFiles' removed directory: `./CMakeFiles/CMakeTmp' removed `./CMakeFiles/CompilerIdC/CMakeCCompilerId.c' removed `./CMakeFiles/CompilerIdC/a.out' removed directory: `./CMakeFiles/CompilerIdC' removed `./CMakeFiles/CMakeSystem.cmake' removed `./CMakeFiles/CMakeError.log' removed `./CMakeFiles/CMakeCXXCompiler.cmake' removed `./CMakeFiles/cmake.check_cache' removed `./CMakeFiles/CMakeDetermineCompilerABI_CXX.bin' removed `./CMakeFiles/CMakeOutput.log' removed `./CMakeFiles/CMakeDetermineCompilerABI_C.bin' removed `./CMakeFiles/CMakeRuleHashes.txt' removed `./CMakeFiles/progress.make' removed `./CMakeFiles/TestEndianess.bin' removed `./CMakeFiles/Makefile2' removed `./CMakeFiles/CMakeDirectoryInformation.cmake' removed `./CMakeFiles/CompilerIdCXX/a.out' removed `./CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp' removed directory: `./CMakeFiles/CompilerIdCXX' removed `./CMakeFiles/CMakeCCompiler.cmake' removed directory: `./CMakeFiles' find: ./CMakeFiles: No such file or directory rm: cannot remove `biolib-*.tar.gz': No such file or directory rm: cannot remove `biolib-*.tgz': No such file or directory rm: cannot remove `biolib-*.tar.bz2': No such file or directory rm: cannot remove `biolib-*.zip': No such file or directory cmake -DBUILD_PERL:BOOLEAN=TRUE -DSTADEN_LIB:BOOLEAN=TRUE . -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done CMake modules: /scratch/j_martin/biolib/cmake_modules/ Building biolib: Perl interface Biolib libraries -- Install Affyio FALSE -- Install Staden TRUE -- Install RQTL FALSE -- Install Example FALSE PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 -- Found xRLibs: 0.0.4 PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 /jgi/tools/lib:/jgi/tools/oracle_client/DEFAULT/lib:/usr/local/lib NIX_INCLUDE_PATH=/home/j_martin/.nix-profile/include NIX_LIB_PATH=/home/j_martin/.nix-profile/lib ZLIB_INCLUDE_DIR=/usr/include ZLIB_LIBRARY=/usr/lib/libz.so ZLIB_NAME=libz.so -- Found ZLIB: /usr/lib/libz.so -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of int -- Check size of int - done -- Check size of long -- Check size of long - done -- Check size of void* -- Check size of void* - done -- Check size of char -- Check size of char - done -- Check size of short -- Check size of short - done -- Check size of float -- Check size of float - done -- Check size of double -- Check size of double - done -- Looking for limits.h -- Looking for limits.h - found -- Looking for unistd.h -- Looking for unistd.h - found -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for include files CMAKE_HAVE_SYS_PRCTL_H -- Looking for include files CMAKE_HAVE_SYS_PRCTL_H - found -- Check if the system is big endian -- Searching 16 bit integer -- Check size of unsigned short -- Check size of unsigned short - done -- Using unsigned short -- Check if the system is big endian - little endian -- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so -- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib/libX11.so -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE Creating Perl module staden_io_lib (1.11.6) PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 Found Perl on PATH -- PERL_EXECUTABLE=/jgi/tools/bin/perl -- PLIBPERL=libperl.so -- PSITEARCH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PARCHLIB=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi -- PERL_INCLUDE_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE -- PERL_LIB_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi PERLLIB_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- PERL_INCLUDE_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE -- PERL_LIB_PATH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PERL_SLIB_PATH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PERL_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- Found PERL: /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE MODULE_SOURCE_PATH=/scratch/j_martin/biolib/src/clibs/staden_io_lib-1.11.6 Looking for libbiolib_staden_io_lib-0.0.4.so MODULE_LIBRARY=biolib_staden_io_lib-0.0.4 /jgi/tools/lib:/jgi/tools/oracle_client/DEFAULT/lib:/usr/local/lib NIX_INCLUDE_PATH=/home/j_martin/.nix-profile/include NIX_LIB_PATH=/home/j_martin/.nix-profile/lib ZLIB_INCLUDE_DIR=/usr/include ZLIB_LIBRARY=/usr/lib/libz.so ZLIB_NAME=libz.so -- USE_LANGUAGE=perl -- USE_LANGUAGE_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- USE_SWIG_FLAGS= -- SWIG M_MODULE=staden_io_lib -- CMAKE_INCLUDE_PATH=/usr/include -- CMAKE_LIBRARY_PATH= -- Found all SWIG prerequisites for perl: perl CMake: .- SWIG: /jgi/tools/bin/swig 1.3.39 System: x86_64 Linux 2.6.22.18-1jgi-amd64-k8-smp Build type: Release for x86_64 Sat Apr 25 18:44:38 PDT 2009 -- Configuring done -- Generating done -- Build files have been written to: /scratch/j_martin/biolib From maj at fortinbras.us Sat Apr 25 21:47:37 2009 From: maj at fortinbras.us (Mark A. Jensen) Date: Sat, 25 Apr 2009 21:47:37 -0400 Subject: [BioLib-dev] thanks for the invite Message-ID: <64D037C2423B496D88AD2A4EA21ECD70@NewLife> Hi All - Thanks Pj. for the invite. Will listen and learn- cheers MAJ From pjotr.public14 at thebird.nl Sun Apr 26 03:34:08 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 09:34:08 +0200 Subject: [BioLib-dev] installation In-Reply-To: <20090426015225.GC25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> <20090426015225.GC25132@eniac.jgi-psf.org> Message-ID: <20090426073408.GA32530@thebird.nl> On Sat, Apr 25, 2009 at 06:52:25PM -0700, Joel Martin wrote: > I wouldn't be installing into /usr though, for now I'm putting it into > /scratch and if deploying it I'd put it into an nfs mounted directory > that's shared across lots of machines and not in /usr > > the rpath for the libbiolib_*.so where I installed all seem correct like, > > ldd /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so > libz.so.1 => /usr/lib/libz.so.1 (0x00002b1f89a60000) > libc.so.6 => /lib/libc.so.6 (0x00002b1f89b76000) > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) Good. > the ones that are in the perl tree are missing rpaths, > > ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so > libbiolib_staden_io_lib-0.0.4.so => not found > libperl.so => not found > libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) > libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) > libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) What I see is that you need to tell the dynamic loader where to find the shared libraries in a non-standard location to find /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so These libraries are 'system wide' libraries simply containing the StadenIO binaries. These also link against Ruby etc. Perl does not know about their non-standard location (Perl on OSX being the exception). Try setting LD_LIBRARY_PATH. > ** note, out of over 100 .so files in my perl install, these are the > only one linked against > libperl.so SWIG generated code makes Perl XS calls - I think they are in libperl. Pj. From j_martin at lbl.gov Sun Apr 26 06:15:56 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sun, 26 Apr 2009 03:15:56 -0700 Subject: [BioLib-dev] installation In-Reply-To: <20090426073408.GA32530@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> <20090426015225.GC25132@eniac.jgi-psf.org> <20090426073408.GA32530@thebird.nl> Message-ID: <20090426101556.GE25132@eniac.jgi-psf.org> Hello, e > the ones that are in the perl tree are missing rpaths, > > > > ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so > > libbiolib_staden_io_lib-0.0.4.so => not found > > libperl.so => not found > > libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) > > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) > > libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) > > libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) > > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) > > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) > > What I see is that you need to tell the dynamic loader where to find > the shared libraries in a non-standard location to find > > /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so > > These libraries are 'system wide' libraries simply containing the > StadenIO binaries. These also link against Ruby etc. Perl does not > know about their non-standard location (Perl on OSX being the > exception). Try setting LD_LIBRARY_PATH. boo, no LD_LIBRARY_PATH :) I don't know how to check this on linux but solaris with ldd -s will tell you where it's looking and where it got the idea to look there from. /auto/Tk/Tk.so builds in a libpath for /usr/openwin/lib. Where might I add an option like -Wl,-rpath,/scratch/j_martin/biotrash/lib or -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE cpan added modules pick the second one up from ccdlflags='-Wl,-E -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE' and if I need a library in an especially odd spot I edit a Makefile, not being familiar with cmake it's unclear where to add that. It doesn't pick it up from LDFLAGS in my environment. > > ** note, out of over 100 .so files in my perl install, these are the > > only one linked against > > libperl.so > > SWIG generated code makes Perl XS calls - I think they are in > libperl. I have many XS modules, they don't link against the libperl.so, well it's not in the ldd output and I did check them all with foreach i ( `find . -name "*.so"` ) foreach? ldd $i >> /tmp/libperl.list foreach? end but my install is a bit mangled, probably best to ignore this for now, I'll try and track down why cpan installed modules don't link against it. Here is my perl -V fwiw Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.17.8-2jgi-amd64-k8-smp, archname=x86_64-linux-thread-multi uname='linux node64t-99 2.6.17.8-2jgi-amd64-k8-smp #1 smp tue aug 8 15:08:01 pdt 2006 x86_64 gnulinux ' config_args='-Dmksymlinks -Dusethreads -Duselargefiles -Duse64bitint -Dprefix=/jgi/tools -Dbin=/jgi/tools/perl5/5.8.8/bin -Dsitebin=/jgi/tools/perl5/5.8.8/bin -Dperlpath=/jgi/tools/bin/perl -Dstartperl=#!/jgi/tools/bin/perl -Doptimize=-O2 -Dpager=/usr/bin/less -Duseshrplib -des -Dlibpth=/lib /usr/lib' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include' ccversion='', gccversion='4.0.3 20060212 (prerelease) (Debian 4.0.2-9)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags ='' libpth=/lib /usr/lib libs=-lnsl -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.6.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.3.6' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE' cccdlflags='-fpic', lddlflags='-shared' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Sep 22 2006 11:05:25 @INC: /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi /jgi/tools/lib/perl5/5.8.8 /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /jgi/tools/lib/perl5/site_perl/5.8.8 /jgi/tools/lib/perl5/site_perl . From pjotr.public14 at thebird.nl Sun Apr 26 07:09:38 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 13:09:38 +0200 Subject: [BioLib-dev] BioLib Message-ID: <20090426110938.GA2985@thebird.nl> There was a problem with the rqtl submodule. I had used a private git URL for that. Sorry. I updated the git submodule URL for rqtl to a public repository. You may also need to synchronize your .git/config with .gitmodules to the public version: - url = git at github.com:pjotrp/rqtl.git + url = git://github.com/pjotrp/rqtl.git Or checkout the full repository again. Next run: git submodule init git submodule update git submodule And two submodules should be visible: 6e518d0d3132561403f7bcd7356175651c28e316 src/clibs/rqtl (heads/master) 145f414cd7400a300771b1722f3bda24fc96d50f tools/rubydoctest (REL-1.0-9-g145f414) Pj. On Sun, Apr 26, 2009 at 04:12:31PM +0530, Anup Bishnoi wrote: > i ran ./configure --with-ruby again. here's the output: > _____________________ > > $ ./configure --with-ruby > BioLib building all libraries > --with-ruby: -DBUILD_RUBY:BOOLEAN=TRUE > : > removed `CMakeCache.txt' > removed `./CMakeFiles/CompilerIdC/a.out' > removed `./CMakeFiles/CompilerIdC/CMakeCCompilerId.c' > removed directory: `./CMakeFiles/CompilerIdC' > ZLIB_INCLUDE_DIR=/usr/include > ZLIB_LIBRARY=/usr/lib/libz.so > ZLIB_NAME=libz.so > CMake Error at src/clibs/CMakeLists.txt:21 (add_subdirectory): > add_subdirectory given source "rqtl/contrib/biolib" which is not an > existing directory. > From pjotr.public14 at thebird.nl Sun Apr 26 10:47:52 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 16:47:52 +0200 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090426012418.GA29593@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426012418.GA29593@thebird.nl> Message-ID: <20090426144752.GA5380@thebird.nl> Alright. I have narrowed it down - and it is kinda weird. When you use a different Perl by overriding PERL_EXECUTABLE the dynamic library fails to load (it gets found, as can be seen with export PERL_DL_DEBUG=1 before running a test). It appears to be a mixup of perl binaries not matching libraries causing the problem. Don't you love dynamically linked libraries? I'll resolve that soon. Most people won't encounter this as standard Perl installations just work. BTW could it be that perllib is statically linked against other XS modules? That would not show with ldd. The XS stack methods have to live somewhere and I would bet it is in perllib. But maybe I am wrong, I haven't checked. Pj. From j_martin at lbl.gov Sun Apr 26 16:22:29 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sun, 26 Apr 2009 13:22:29 -0700 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090426144752.GA5380@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426012418.GA29593@thebird.nl> <20090426144752.GA5380@thebird.nl> Message-ID: <20090426202228.GG25132@eniac.jgi-psf.org> On Sun, Apr 26, 2009 at 04:47:52PM +0200, Pjotr Prins wrote: > Alright. I have narrowed it down - and it is kinda weird. When you > use a different Perl by overriding PERL_EXECUTABLE the dynamic > library fails to load (it gets found, as can be seen with export > PERL_DL_DEBUG=1 before running a test). It appears to be a mixup of > perl binaries not matching libraries causing the problem. which dynamic library? cmake has always picked up /jgi/tools/bin/perl for me. > Don't you love dynamically linked libraries? > > I'll resolve that soon. Most people won't encounter this as standard > Perl installations just work. > > BTW could it be that perllib is statically linked against other XS > modules? That would not show with ldd. The XS stack methods have to > live somewhere and I would bet it is in perllib. But maybe I am > wrong, I haven't checked. Yeah, it has to come from somewhere, /usr/bin/perl ( debian default ) and /jgi/tools/bin/perl both load it at startup... both have basically the same strace output. except location of libraries they're loading of course. I re-maked a few of the XS modules and the linking line is always some version of cc -shared XS.o -o blib/arch/auto/JSON/XS/XS.so maybe they use DynaLoader to load libperl.so ?, some version of require DynaLoader; @ISA = qw(DynaLoader); is in most of them, though not in JSON::XS ( well, grepping didn't find Dyna ), Starting clean after cmake -DCMAKE_INSTALL_PREFIX=/scratch/j_martin/biotrash -DSTADEN_LIB:BOOLEAN=TRUE -DBUILD_PERL:BOOLEAN=TRUE . make make test ( passes ) make install perl -Mbiolib::staden_io_lib -e '' (no errors) but I removed linking to libperl.so ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so libbiolib_staden_io_lib-0.0.4.so => /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so (0x00002ae0641c6000) libz.so.1 => /usr/lib/libz.so.1 (0x00002ae064349000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ae06445f000) libm.so.6 => /lib/libm.so.6 (0x00002ae06465e000) libc.so.6 => /lib/libc.so.6 (0x00002ae0647e0000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ae064a1d000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) Joel > Pj. > > _______________________________________________ > BioLib-dev mailing list > BioLib-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/biolib-dev From pjotr.public14 at thebird.nl Fri Apr 10 19:52:05 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Fri, 10 Apr 2009 21:52:05 +0200 Subject: [BioLib-dev] GNU Science Library Message-ID: <20090410195205.GA17108@thebird.nl> Most of the GNU Science library (GSL) has been mapped against Perl with ASciLib - some 1800 functions(!) http://biolib.open-bio.org/wiki/ASciLib For a list of included modules check: http://github.com/pjotrp/ascilib/blob/master/src/mappings/swig/gsl_common.i Modules currently not working are: %include CBLAS.i %include Deriv.i %include Chebyshev.i %include Errno.i %include Heapsort.i %include Integration.i %include Min.i %include Monte.i %include Multiroots.i %include NTuple.i %include Permutation.i %include Randist.i %include Roots.i %include Sort.i Note that this initial mapping directly uses Jonathan Leto's Perl Math::GSL module. An interesting feature is that ASciLib comes with the GSL bleeding edge source repository (as a git submodule). The latest and the greatest should build with Perl5. Enjoy. Pj. From pjotr.public14 at thebird.nl Sat Apr 11 15:06:57 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sat, 11 Apr 2009 17:06:57 +0200 Subject: [BioLib-dev] Ruby mapping of the GNU Science Library In-Reply-To: <20090410195205.GA17108@thebird.nl> References: <20090410195205.GA17108@thebird.nl> Message-ID: <20090411150657.GA23591@thebird.nl> Just completed the Ruby mapping of the GSL. Almost as good as Perl's. This is where the CMake/SWIG infrastructure pays :-) Pj. On Fri, Apr 10, 2009 at 09:52:05PM +0200, Pjotr Prins wrote: > Most of the GNU Science library (GSL) has been mapped against Perl > with ASciLib - some 1800 functions(!) From j_martin at lbl.gov Sat Apr 25 05:58:54 2009 From: j_martin at lbl.gov (Joel Martin) Date: Fri, 24 Apr 2009 22:58:54 -0700 Subject: [BioLib-dev] installation Message-ID: <20090425055854.GB25132@eniac.jgi-psf.org> Hello, I had to futz about with cmake quite a bit and as I don't know anything about cmake I've probably done something horrible. Here is what 'make install' ended up doing, I did want it to go into /scratch so that part all looks good but the perl locations seem odd as they aren't using 'auto' -- Install configuration: "Release" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_example-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_affyio-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_microarray-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/example.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/example.pm -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/affyio.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/affyio.pm -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so -- Set runtime path of "/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so" to "#{CMAKE_INSTALL_PREFIX}/lib" -- Installing: /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/staden_io_lib.pm when I try perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) so my questions are, do those install paths look like what it was supposed to do? Is that how you have them? is there there any interaction problem with changing the module names to conform with the guidlines in 'perldoc perlmodlib' ? and relatedly would changing staden_io_lib to just Stadenio cause trouble? ---- this part is just fyi, what I changed to get it to compile for me. --- I had trouble getting it to recognize my configuration, though it was getting all the correct info from perl -MConfig -e 'what-ever'. As you can see above my perl is in a nonstandard location. In the file ./cmake_modules/FindPerlLibs.cmake after I changed SET(PERL_POSSIBLE_INCLUDE_PATHS ${PARCHLIB} to SET(PERL_POSSIBLE_INCLUDE_PATHS ${PARCHLIB}/CORE FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h ${PERL_POSSIBLE_INCLUDE_PATHS} should have worked but would return perl.h in the /usr/lib/perl/5.8.8/CORE spot that debians default perl is at. according to cmake man page this should have stopped it looking in it's builtin paths FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h PATHS ${PERL_POSSIBLE_INCLUDE_PATHS} NO_DEFAULT_PATH ) but it didn't seem to. I'd think that's a bug in cmake except I've barely used it before so it might be a bug in me. I ended up with this hack IF (EXISTS ${PARCHLIB}/CORE/perl.h) SET(PERL_INCLUDE_PATH ${PARCHLIB}/CORE) ELSE (EXISTS ${PARCHLIB}/CORE/perl.h) FIND_PATH(PERL_INCLUDE_PATH perl.h ${PERL_POSSIBLE_INCLUDE_PATHS}) ENDIF (EXISTS ${PARCHLIB}/CORE/perl.h) Joel From pjotr.public14 at thebird.nl Sun Apr 26 01:03:49 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:03:49 +0200 Subject: [BioLib-dev] installation In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426010349.GA28465@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > I had to futz about with cmake quite a bit and as I don't know > anything about cmake I've probably done something horrible. Here is > what 'make install' ended up doing, I did want it to go into > /scratch so that part all looks good but the perl locations seem odd > as they aren't using 'auto' The current FindPerl cmake files haven't been fully tested on all platforms, so your help is very welcome. I'll try and help with the installation paths. One at at time. > -- Install configuration: "Release" > -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so > -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" Strange. CMAKE_INSTALL_PREFIX should be filled in - normally /usr. What cmake version are you running and what version of OS/X? I have committed a small patch forcing the PREFIX to /usr. Can you send me the output of './configure --with-staden'? > when I try > perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) Probably related to above. The shared library is not in the RPATH now. Let's fix that first. Pj. From pjotr.public14 at thebird.nl Sun Apr 26 01:08:44 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:08:44 +0200 Subject: [BioLib-dev] installation - on module names In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426010844.GB28465@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > is there there any interaction problem with changing the module > names to conform with the guidlines in 'perldoc perlmodlib' ? and > relatedly would changing staden_io_lib to just Stadenio cause > trouble? At this point: yes. The module names are 'logical' to BioLib and the build system - as it is also the name of the path to the clib sources. We may reconsider that later, but it ties in with automated documentation and naming of modules for other languages. Let's aim for functionality first (a Perl wrapper is easily written later - the biolib interfaces tend to be low level anyway). Currently the naming conventions are not carved in stone. Pj. From pjotr.public14 at thebird.nl Sun Apr 26 01:24:18 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 03:24:18 +0200 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090425055854.GB25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> Message-ID: <20090426012418.GA29593@thebird.nl> On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > FIND_PATH(PERL_INCLUDE_PATH NAMES perl.h ${PERL_POSSIBLE_INCLUDE_PATHS} > should have worked but would return perl.h in the /usr/lib/perl/5.8.8/CORE spot that debians > default perl is at. I think it uses the default Perl binary, rather than yours. Do you mind sending me a dump of cmake's full output? You can override Perl's executable on the CMake command line. Something like: cmake -DSTADEN_LIB:BOOLEAN=TRUE -DPERL_EXECUTABLE:STRING='/mypath/bin/perl' . Try that too, and send me output. Pj. From j_martin at lbl.gov Sun Apr 26 01:52:25 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sat, 25 Apr 2009 18:52:25 -0700 Subject: [BioLib-dev] installation In-Reply-To: <20090426010349.GA28465@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> Message-ID: <20090426015225.GC25132@eniac.jgi-psf.org> Hello, On Sun, Apr 26, 2009 at 03:03:49AM +0200, Pjotr Prins wrote: > On Fri, Apr 24, 2009 at 10:58:54PM -0700, Joel Martin wrote: > > I had to futz about with cmake quite a bit and as I don't know > > anything about cmake I've probably done something horrible. Here is > > what 'make install' ended up doing, I did want it to go into > > /scratch so that part all looks good but the perl locations seem odd > > as they aren't using 'auto' > > The current FindPerl cmake files haven't been fully tested on all > platforms, so your help is very welcome. I'll try and help with the > installation paths. One at at time. > > > -- Install configuration: "Release" > > -- Installing: /scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so > > -- Set runtime path of "/scratch/j_martin/biotrash/lib/libbiolib_core-0.0.4.so" to "#{CMAKE_INSTALL_PREFIX}/lib" > > Strange. CMAKE_INSTALL_PREFIX should be filled in - normally /usr. > What cmake version are you running and what version of OS/X? > > I have committed a small patch forcing the PREFIX to /usr. Can you > send me the output of './configure --with-staden'? I wouldn't be installing into /usr though, for now I'm putting it into /scratch and if deploying it I'd put it into an nfs mounted directory that's shared across lots of machines and not in /usr the rpath for the libbiolib_*.so where I installed all seem correct like, ldd /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so libz.so.1 => /usr/lib/libz.so.1 (0x00002b1f89a60000) libc.so.6 => /lib/libc.so.6 (0x00002b1f89b76000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) the ones that are in the perl tree are missing rpaths, ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so libbiolib_staden_io_lib-0.0.4.so => not found libperl.so => not found libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) ** note, out of over 100 .so files in my perl install, these are the only one linked against libperl.so the output for ./configure --with-staden is at the very bottom, it's after I added those previous 2 changes. > > when I try > > perl -Mbiolib::staden_io_lib it complains as Dynaloader can't find it ( not using auto ) > > Probably related to above. The shared library is not in the RPATH > now. Let's fix that first. Should have pasted the whole message... but yes it's probably the unfound lib. perl -Mbiolib::staden_io_lib Can't load '/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so' for module staden_io_lib: libbiolib_staden_io_lib-0.0.4.so: cannot open shared object file: No such file or directory at /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230. at /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/biolib/staden_io_lib.pm line 11 Compilation failed in require. BEGIN failed--compilation aborted. ------- output of ./configure --with-staden (i've commented out somr RQTL lines in the make files ------- and added some prints ) BioLib defaulting to Perl build --with-staden: -DBUILD_PERL:BOOLEAN=TRUE --with-staden: -DSTADEN_LIB:BOOLEAN=TRUE removed `cmake_install.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/cmake_install.cmake' removed `./src/clibs/cmake_install.cmake' removed `./src/mappings/swig/perl/staden_io_lib/cmake_install.cmake' removed `./src/mappings/swig/perl/cmake_install.cmake' removed `./src/cmake_install.cmake' removed `CTestTestfile.cmake' removed `./src/clibs/CTestTestfile.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CTestTestfile.cmake' removed `./src/mappings/swig/perl/CTestTestfile.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CTestTestfile.cmake' removed `./src/CTestTestfile.cmake' removed `CMakeCache.txt' removed `Makefile' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/Makefile' removed `./src/clibs/Makefile' removed `./src/mappings/swig/perl/staden_io_lib/Makefile' removed `./src/mappings/swig/perl/Makefile' removed `./src/Makefile' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/progress.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/build.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/DependInfo.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/link.txt' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/flags.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/cmake_clean.cmake' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/progress.make' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir/depend.make' removed directory: `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/biolib_staden_io_lib-0.0.4.dir' removed `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles' find: ./src/clibs/staden_io_lib-1.11.6/io_lib/CMakeFiles: No such file or directory removed `./src/clibs/CMakeFiles/progress.make' removed `./src/clibs/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/clibs/CMakeFiles' find: ./src/clibs/CMakeFiles: No such file or directory removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/build.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/DependInfo.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/link.txt' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/flags.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/cmake_clean.cmake' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/progress.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir/depend.make' removed directory: `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/staden_io_lib.dir' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/progress.make' removed `./src/mappings/swig/perl/staden_io_lib/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/mappings/swig/perl/staden_io_lib/CMakeFiles' find: ./src/mappings/swig/perl/staden_io_lib/CMakeFiles: No such file or directory removed `./src/mappings/swig/perl/CMakeFiles/progress.make' removed `./src/mappings/swig/perl/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/mappings/swig/perl/CMakeFiles' find: ./src/mappings/swig/perl/CMakeFiles: No such file or directory removed `./src/CMakeFiles/progress.make' removed `./src/CMakeFiles/CMakeDirectoryInformation.cmake' removed directory: `./src/CMakeFiles' find: ./src/CMakeFiles: No such file or directory removed `./CMakeFiles/Makefile.cmake' removed `./CMakeFiles/CheckTypeSize.bin' removed directory: `./CMakeFiles/CMakeTmp/CMakeFiles/cmTryCompileExec.dir' removed directory: `./CMakeFiles/CMakeTmp/CMakeFiles' removed directory: `./CMakeFiles/CMakeTmp' removed `./CMakeFiles/CompilerIdC/CMakeCCompilerId.c' removed `./CMakeFiles/CompilerIdC/a.out' removed directory: `./CMakeFiles/CompilerIdC' removed `./CMakeFiles/CMakeSystem.cmake' removed `./CMakeFiles/CMakeError.log' removed `./CMakeFiles/CMakeCXXCompiler.cmake' removed `./CMakeFiles/cmake.check_cache' removed `./CMakeFiles/CMakeDetermineCompilerABI_CXX.bin' removed `./CMakeFiles/CMakeOutput.log' removed `./CMakeFiles/CMakeDetermineCompilerABI_C.bin' removed `./CMakeFiles/CMakeRuleHashes.txt' removed `./CMakeFiles/progress.make' removed `./CMakeFiles/TestEndianess.bin' removed `./CMakeFiles/Makefile2' removed `./CMakeFiles/CMakeDirectoryInformation.cmake' removed `./CMakeFiles/CompilerIdCXX/a.out' removed `./CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp' removed directory: `./CMakeFiles/CompilerIdCXX' removed `./CMakeFiles/CMakeCCompiler.cmake' removed directory: `./CMakeFiles' find: ./CMakeFiles: No such file or directory rm: cannot remove `biolib-*.tar.gz': No such file or directory rm: cannot remove `biolib-*.tgz': No such file or directory rm: cannot remove `biolib-*.tar.bz2': No such file or directory rm: cannot remove `biolib-*.zip': No such file or directory cmake -DBUILD_PERL:BOOLEAN=TRUE -DSTADEN_LIB:BOOLEAN=TRUE . -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done CMake modules: /scratch/j_martin/biolib/cmake_modules/ Building biolib: Perl interface Biolib libraries -- Install Affyio FALSE -- Install Staden TRUE -- Install RQTL FALSE -- Install Example FALSE PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 -- Found xRLibs: 0.0.4 PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 /jgi/tools/lib:/jgi/tools/oracle_client/DEFAULT/lib:/usr/local/lib NIX_INCLUDE_PATH=/home/j_martin/.nix-profile/include NIX_LIB_PATH=/home/j_martin/.nix-profile/lib ZLIB_INCLUDE_DIR=/usr/include ZLIB_LIBRARY=/usr/lib/libz.so ZLIB_NAME=libz.so -- Found ZLIB: /usr/lib/libz.so -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of int -- Check size of int - done -- Check size of long -- Check size of long - done -- Check size of void* -- Check size of void* - done -- Check size of char -- Check size of char - done -- Check size of short -- Check size of short - done -- Check size of float -- Check size of float - done -- Check size of double -- Check size of double - done -- Looking for limits.h -- Looking for limits.h - found -- Looking for unistd.h -- Looking for unistd.h - found -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for include files CMAKE_HAVE_SYS_PRCTL_H -- Looking for include files CMAKE_HAVE_SYS_PRCTL_H - found -- Check if the system is big endian -- Searching 16 bit integer -- Check size of unsigned short -- Check size of unsigned short - done -- Using unsigned short -- Check if the system is big endian - little endian -- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so -- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib/libX11.so -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE Creating Perl module staden_io_lib (1.11.6) PREFIX: /usr CMAKE_INSTALL_PREFIX=/usr BIOLIB_ROOT=/scratch/j_martin/biolib BIOLIB_CLIBS_PATH=/scratch/j_martin/biolib/src/clibs BIOLIB_VERSION=0.0.4 Found Perl on PATH -- PERL_EXECUTABLE=/jgi/tools/bin/perl -- PLIBPERL=libperl.so -- PSITEARCH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PARCHLIB=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi -- PERL_INCLUDE_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE -- PERL_LIB_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi PERLLIB_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- PERL_INCLUDE_PATH=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE -- PERL_LIB_PATH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PERL_SLIB_PATH=/jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -- PERL_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- Found PERL: /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE MODULE_SOURCE_PATH=/scratch/j_martin/biolib/src/clibs/staden_io_lib-1.11.6 Looking for libbiolib_staden_io_lib-0.0.4.so MODULE_LIBRARY=biolib_staden_io_lib-0.0.4 /jgi/tools/lib:/jgi/tools/oracle_client/DEFAULT/lib:/usr/local/lib NIX_INCLUDE_PATH=/home/j_martin/.nix-profile/include NIX_LIB_PATH=/home/j_martin/.nix-profile/lib ZLIB_INCLUDE_DIR=/usr/include ZLIB_LIBRARY=/usr/lib/libz.so ZLIB_NAME=libz.so -- USE_LANGUAGE=perl -- USE_LANGUAGE_LIBRARY=/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so -- USE_SWIG_FLAGS= -- SWIG M_MODULE=staden_io_lib -- CMAKE_INCLUDE_PATH=/usr/include -- CMAKE_LIBRARY_PATH= -- Found all SWIG prerequisites for perl: perl CMake: .- SWIG: /jgi/tools/bin/swig 1.3.39 System: x86_64 Linux 2.6.22.18-1jgi-amd64-k8-smp Build type: Release for x86_64 Sat Apr 25 18:44:38 PDT 2009 -- Configuring done -- Generating done -- Build files have been written to: /scratch/j_martin/biolib From maj at fortinbras.us Sun Apr 26 01:47:37 2009 From: maj at fortinbras.us (Mark A. Jensen) Date: Sat, 25 Apr 2009 21:47:37 -0400 Subject: [BioLib-dev] thanks for the invite Message-ID: <64D037C2423B496D88AD2A4EA21ECD70@NewLife> Hi All - Thanks Pj. for the invite. Will listen and learn- cheers MAJ From pjotr.public14 at thebird.nl Sun Apr 26 07:34:08 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 09:34:08 +0200 Subject: [BioLib-dev] installation In-Reply-To: <20090426015225.GC25132@eniac.jgi-psf.org> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> <20090426015225.GC25132@eniac.jgi-psf.org> Message-ID: <20090426073408.GA32530@thebird.nl> On Sat, Apr 25, 2009 at 06:52:25PM -0700, Joel Martin wrote: > I wouldn't be installing into /usr though, for now I'm putting it into > /scratch and if deploying it I'd put it into an nfs mounted directory > that's shared across lots of machines and not in /usr > > the rpath for the libbiolib_*.so where I installed all seem correct like, > > ldd /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so > libz.so.1 => /usr/lib/libz.so.1 (0x00002b1f89a60000) > libc.so.6 => /lib/libc.so.6 (0x00002b1f89b76000) > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) Good. > the ones that are in the perl tree are missing rpaths, > > ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so > libbiolib_staden_io_lib-0.0.4.so => not found > libperl.so => not found > libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) > libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) > libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) What I see is that you need to tell the dynamic loader where to find the shared libraries in a non-standard location to find /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so These libraries are 'system wide' libraries simply containing the StadenIO binaries. These also link against Ruby etc. Perl does not know about their non-standard location (Perl on OSX being the exception). Try setting LD_LIBRARY_PATH. > ** note, out of over 100 .so files in my perl install, these are the > only one linked against > libperl.so SWIG generated code makes Perl XS calls - I think they are in libperl. Pj. From j_martin at lbl.gov Sun Apr 26 10:15:56 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sun, 26 Apr 2009 03:15:56 -0700 Subject: [BioLib-dev] installation In-Reply-To: <20090426073408.GA32530@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426010349.GA28465@thebird.nl> <20090426015225.GC25132@eniac.jgi-psf.org> <20090426073408.GA32530@thebird.nl> Message-ID: <20090426101556.GE25132@eniac.jgi-psf.org> Hello, e > the ones that are in the perl tree are missing rpaths, > > > > ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so > > libbiolib_staden_io_lib-0.0.4.so => not found > > libperl.so => not found > > libz.so.1 => /usr/lib/libz.so.1 (0x00002ac2b898e000) > > libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ac2b8aa5000) > > libm.so.6 => /lib/libm.so.6 (0x00002ac2b8ca3000) > > libc.so.6 => /lib/libc.so.6 (0x00002ac2b8e25000) > > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ac2b9063000) > > /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) > > What I see is that you need to tell the dynamic loader where to find > the shared libraries in a non-standard location to find > > /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so > > These libraries are 'system wide' libraries simply containing the > StadenIO binaries. These also link against Ruby etc. Perl does not > know about their non-standard location (Perl on OSX being the > exception). Try setting LD_LIBRARY_PATH. boo, no LD_LIBRARY_PATH :) I don't know how to check this on linux but solaris with ldd -s will tell you where it's looking and where it got the idea to look there from. /auto/Tk/Tk.so builds in a libpath for /usr/openwin/lib. Where might I add an option like -Wl,-rpath,/scratch/j_martin/biotrash/lib or -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE cpan added modules pick the second one up from ccdlflags='-Wl,-E -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE' and if I need a library in an especially odd spot I edit a Makefile, not being familiar with cmake it's unclear where to add that. It doesn't pick it up from LDFLAGS in my environment. > > ** note, out of over 100 .so files in my perl install, these are the > > only one linked against > > libperl.so > > SWIG generated code makes Perl XS calls - I think they are in > libperl. I have many XS modules, they don't link against the libperl.so, well it's not in the ldd output and I did check them all with foreach i ( `find . -name "*.so"` ) foreach? ldd $i >> /tmp/libperl.list foreach? end but my install is a bit mangled, probably best to ignore this for now, I'll try and track down why cpan installed modules don't link against it. Here is my perl -V fwiw Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.17.8-2jgi-amd64-k8-smp, archname=x86_64-linux-thread-multi uname='linux node64t-99 2.6.17.8-2jgi-amd64-k8-smp #1 smp tue aug 8 15:08:01 pdt 2006 x86_64 gnulinux ' config_args='-Dmksymlinks -Dusethreads -Duselargefiles -Duse64bitint -Dprefix=/jgi/tools -Dbin=/jgi/tools/perl5/5.8.8/bin -Dsitebin=/jgi/tools/perl5/5.8.8/bin -Dperlpath=/jgi/tools/bin/perl -Dstartperl=#!/jgi/tools/bin/perl -Doptimize=-O2 -Dpager=/usr/bin/less -Duseshrplib -des -Dlibpth=/lib /usr/lib' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/opt/local/include' ccversion='', gccversion='4.0.3 20060212 (prerelease) (Debian 4.0.2-9)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags ='' libpth=/lib /usr/lib libs=-lnsl -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.6.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.3.6' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE' cccdlflags='-fpic', lddlflags='-shared' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Sep 22 2006 11:05:25 @INC: /jgi/tools/lib/perl5/5.8.8/x86_64-linux-thread-multi /jgi/tools/lib/perl5/5.8.8 /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /jgi/tools/lib/perl5/site_perl/5.8.8 /jgi/tools/lib/perl5/site_perl . From pjotr.public14 at thebird.nl Sun Apr 26 11:09:38 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 13:09:38 +0200 Subject: [BioLib-dev] BioLib Message-ID: <20090426110938.GA2985@thebird.nl> There was a problem with the rqtl submodule. I had used a private git URL for that. Sorry. I updated the git submodule URL for rqtl to a public repository. You may also need to synchronize your .git/config with .gitmodules to the public version: - url = git at github.com:pjotrp/rqtl.git + url = git://github.com/pjotrp/rqtl.git Or checkout the full repository again. Next run: git submodule init git submodule update git submodule And two submodules should be visible: 6e518d0d3132561403f7bcd7356175651c28e316 src/clibs/rqtl (heads/master) 145f414cd7400a300771b1722f3bda24fc96d50f tools/rubydoctest (REL-1.0-9-g145f414) Pj. On Sun, Apr 26, 2009 at 04:12:31PM +0530, Anup Bishnoi wrote: > i ran ./configure --with-ruby again. here's the output: > _____________________ > > $ ./configure --with-ruby > BioLib building all libraries > --with-ruby: -DBUILD_RUBY:BOOLEAN=TRUE > : > removed `CMakeCache.txt' > removed `./CMakeFiles/CompilerIdC/a.out' > removed `./CMakeFiles/CompilerIdC/CMakeCCompilerId.c' > removed directory: `./CMakeFiles/CompilerIdC' > ZLIB_INCLUDE_DIR=/usr/include > ZLIB_LIBRARY=/usr/lib/libz.so > ZLIB_NAME=libz.so > CMake Error at src/clibs/CMakeLists.txt:21 (add_subdirectory): > add_subdirectory given source "rqtl/contrib/biolib" which is not an > existing directory. > From pjotr.public14 at thebird.nl Sun Apr 26 14:47:52 2009 From: pjotr.public14 at thebird.nl (Pjotr Prins) Date: Sun, 26 Apr 2009 16:47:52 +0200 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090426012418.GA29593@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426012418.GA29593@thebird.nl> Message-ID: <20090426144752.GA5380@thebird.nl> Alright. I have narrowed it down - and it is kinda weird. When you use a different Perl by overriding PERL_EXECUTABLE the dynamic library fails to load (it gets found, as can be seen with export PERL_DL_DEBUG=1 before running a test). It appears to be a mixup of perl binaries not matching libraries causing the problem. Don't you love dynamically linked libraries? I'll resolve that soon. Most people won't encounter this as standard Perl installations just work. BTW could it be that perllib is statically linked against other XS modules? That would not show with ldd. The XS stack methods have to live somewhere and I would bet it is in perllib. But maybe I am wrong, I haven't checked. Pj. From j_martin at lbl.gov Sun Apr 26 20:22:29 2009 From: j_martin at lbl.gov (Joel Martin) Date: Sun, 26 Apr 2009 13:22:29 -0700 Subject: [BioLib-dev] installation - perl.h In-Reply-To: <20090426144752.GA5380@thebird.nl> References: <20090425055854.GB25132@eniac.jgi-psf.org> <20090426012418.GA29593@thebird.nl> <20090426144752.GA5380@thebird.nl> Message-ID: <20090426202228.GG25132@eniac.jgi-psf.org> On Sun, Apr 26, 2009 at 04:47:52PM +0200, Pjotr Prins wrote: > Alright. I have narrowed it down - and it is kinda weird. When you > use a different Perl by overriding PERL_EXECUTABLE the dynamic > library fails to load (it gets found, as can be seen with export > PERL_DL_DEBUG=1 before running a test). It appears to be a mixup of > perl binaries not matching libraries causing the problem. which dynamic library? cmake has always picked up /jgi/tools/bin/perl for me. > Don't you love dynamically linked libraries? > > I'll resolve that soon. Most people won't encounter this as standard > Perl installations just work. > > BTW could it be that perllib is statically linked against other XS > modules? That would not show with ldd. The XS stack methods have to > live somewhere and I would bet it is in perllib. But maybe I am > wrong, I haven't checked. Yeah, it has to come from somewhere, /usr/bin/perl ( debian default ) and /jgi/tools/bin/perl both load it at startup... both have basically the same strace output. except location of libraries they're loading of course. I re-maked a few of the XS modules and the linking line is always some version of cc -shared XS.o -o blib/arch/auto/JSON/XS/XS.so maybe they use DynaLoader to load libperl.so ?, some version of require DynaLoader; @ISA = qw(DynaLoader); is in most of them, though not in JSON::XS ( well, grepping didn't find Dyna ), Starting clean after cmake -DCMAKE_INSTALL_PREFIX=/scratch/j_martin/biotrash -DSTADEN_LIB:BOOLEAN=TRUE -DBUILD_PERL:BOOLEAN=TRUE . make make test ( passes ) make install perl -Mbiolib::staden_io_lib -e '' (no errors) but I removed linking to libperl.so ldd /jgi/tools/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/staden_io_lib.so libbiolib_staden_io_lib-0.0.4.so => /scratch/j_martin/biotrash/lib/libbiolib_staden_io_lib-0.0.4.so (0x00002ae0641c6000) libz.so.1 => /usr/lib/libz.so.1 (0x00002ae064349000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002ae06445f000) libm.so.6 => /lib/libm.so.6 (0x00002ae06465e000) libc.so.6 => /lib/libc.so.6 (0x00002ae0647e0000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002ae064a1d000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000) Joel > Pj. > > _______________________________________________ > BioLib-dev mailing list > BioLib-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/biolib-dev