Code Monkey home page Code Monkey logo

Comments (6)

jirihnidek avatar jirihnidek commented on June 9, 2024

It is strange. The function vrs_get() was added to verse in this commit: bdfec96 and it is not encapsulated with any #ifdef.
I see one strange thing in your bug report. It seems that you use 64bit system, but verse.so for Python 3.4 is installed in directory /usr/lib/python3.4/site-packages/ and not to /usr/lib64/python3.4/site-packages/.
I want to ask at several things: Do you have verse installed at more places (is there 32 bit variant)? Did you modify configuration of CMake using ccmake? What is output of ldd /usr/lib/python3.4/site-packages/verse.so?

from verse.

traverseda avatar traverseda commented on June 9, 2024

I followed the instructions as posted, without any modification. I very likely do have an old version of verse on this machine, and that could be an issue. Not really sure how to test for that.

[alex@localhost build]$ ldd /usr/lib/python3.4/site-packages/verse.so 
        linux-vdso.so.1 (0x00007fffab3fe000)
        libverse.so.0.1.0 => /usr/lib/libverse.so.0.1.0 (0x00007f837636a000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f837614e000)
        libpython3.4m.so.1.0 => /usr/lib/libpython3.4m.so.1.0 (0x00007f8375cb7000)
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f8375a47000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f8375635000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f8375292000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007f83767f1000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f837508d000)
        libutil.so.1 => /usr/lib/libutil.so.1 (0x00007f8374e8a000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f8374b85000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f837496e000)

Figured I'd remove "/usr/lib/python3.4/site-packages/verse.so" in case it was left over from a previous install. Doing that, and trying to import verse from python resulted in

ImportError: No module named 'verse'

As one would expect. Then I pulled

git pull
remote: Counting objects: 16, done.
[...]
From https://github.com/verse/verse
   a8f2460..40f6a1d  master     -> origin/master
Updating a8f2460..40f6a1d
[...]
 python/verse_module.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 130 insertions(+), 32 deletions(-)

and reran the build script.

rm build/ -r
mkdir ./build
cd ./build
cmake ../
[...]
make
[...]
sudo make install
[ 77%] Built target verse_shared_lib
[ 78%] Built target py2_verse
[ 79%] Built target py3_verse
[ 98%] Built target verse_server
[100%] Built target verse_client
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/include/verse.h
-- Skipping  : /etc/verse/users.csv
-- Skipping  : /etc/verse/server.ini
-- Installing: /usr/lib64/python2.7/site-packages/verse.so
-- Removed runtime path from "/usr/lib64/python2.7/site-packages/verse.so"
-- Installing: /usr/lib/python3.4/site-packages/verse.so
-- Removed runtime path from "/usr/lib/python3.4/site-packages/verse.so"
-- Installing: /usr/local/lib64/libverse.so.0.1
-- Up-to-date: /usr/local/lib64/libverse.so.0.1.0
-- Up-to-date: /usr/local/lib64/libverse.so
-- Installing: /usr/local/bin/verse_server
-- Removed runtime path from "/usr/local/bin/verse_server"

And it's still throwing that error.

Python 3.4.2 (default, Oct  8 2014, 13:44:52) 
[GCC 4.9.1 20140903 (prerelease)] on linux
>>> import verse
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/lib/python3.4/site-packages/verse.so: undefined symbol: vrs_get

from verse.

jirihnidek avatar jirihnidek commented on June 9, 2024

I see problem in ldd /usr/lib/python3.4/site-packages/verse.so. It uses:
libverse.so.0.1.0 => /usr/lib/libverse.so.0.1.0 (0x00007f837636a000)
and it is different library than library installed using make install. You can try to get list of all functions in this library using following command:
nm -D /usr/lib/libverse.so.0.1
and compare it with:
nm -D /usr/local/lib64/libverse.so.0.1 (there should be vrs_get() function)
I recomend to move /usr/lib/libverse* to some backup directory and try to reinstall verse.

from verse.

traverseda avatar traverseda commented on June 9, 2024

Right. The problem is that I haven't had a really good understanding of how shared libraries work until now.

Arch linux doesn't use /usr/local/ for libraries, so I'll have to change that in the arch package.

I think I understand enough to deal with this now. nm is a damn useful tool. Thanks for your help.

from verse.

traverseda avatar traverseda commented on June 9, 2024

For posterities sake.

cmake ../ -DPROJECT_BINARY_DIR:PATH=/

Thanks again for the help. I'm going to be adding that to the arch package, which shouldn't cause any problems.

Actually, that should probably be

 cmake ../ -DPROJECT_BINARY_DIR:PATH=/usr/

from verse.

jirihnidek avatar jirihnidek commented on June 9, 2024

You are welcome. Every Linux distribution has IMHO different rules for installing libraries and there is no portable pure CMake solution.

from verse.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.