Menu

Compile error on Debian Testing (lenny) amd64

Help
2008-02-20
2013-04-23
  • Panagiotis Karagiannis

    Hi,
    My system is a Debian Testing amd64 distribution and is regularly updated. I use a very old gizmod (v2:3 2006) installed in /usr/local but lacks a lot of features I want. Now I am trying to install gizmod 3.4. I first tried to install the ubuntu amd64 binary packages
    libgizmod3_3.4-0ubuntu1_amd64.deb
    gizmod_3.4-0ubuntu1_amd64.deb
    I installed the dependencies and then the 2 .debs.They install OK but when I try to run the program says:
    ---------------------------------------------------------------------------
    GizmoDaemon v3.4 -=- (c) 2007, Tim Burrell <tim.burrell@gmail.com>
    =---------=

    /usr/bin/gizmod: symbol lookup error: /usr/lib/libboost_python-gcc41-1_34_1.so.1.34.1: undefined symbol: Py_InitModule4
    ----------------------------------------------------------------------------
    and dies. Next step is to compile the source
    gcc and g++ is 4.2.3

    tar xjf gizmod-3.4.tar.bz2
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/gizmod-3.4 ../gizmod-3.4
    make
    ..........
    [ 88%] Building CXX object gizmod/CMakeFiles/gizmod.dir/GizmoDaemon.o
    cc1plus: warnings being treated as errors
    /home/pkar/gizmod-3.4/gizmod/GizmoDaemon.cpp: In member function ‘void GizmoDaemon::initPython()’:
    /home/pkar/gizmod-3.4/gizmod/GizmoDaemon.cpp:1332: warning: deprecated conversion from string constant to ‘char*’
    make[2]: *** [gizmod/CMakeFiles/gizmod.dir/GizmoDaemon.o] Error 1
    make[1]: *** [gizmod/CMakeFiles/gizmod.dir/all] Error 2
    make: *** [all] Error 2

    ok a small change in GizmoDaemon.cpp:1332
    (Tim of cource is the right person to decide which is the right way to fix this particular problem)
    instead of
    PyImport_AppendInittab("GizmoDaemon", &initGizmoDaemon);
    to
    char a_var[]="GizmoDaemon";
    PyImport_AppendInittab(a_var, &initGizmoDaemon);
    Now the compiler is happy

    [ 94%] Building CXX object gizmod/CMakeFiles/gizmod.dir/Main.o
    Linking CXX executable gizmod
    /usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib/libboost_python.so: undefined reference to `Py_InitModule4'
    collect2: ld returned 1 exit status
    make[2]: *** [gizmod/gizmod] Error 1
    make[1]: *** [gizmod/CMakeFiles/gizmod.dir/all] Error 2
    make: *** [all] Error 2

    At this poind I am stuck
    Any Ideas ? Thank you in advance

    PS1. Sorry if this post is long
    PS2. I consider gizmod to be an exellent program and a very importand one, when you want to watch movies TV and listen to music from your PC. The idea of a configuration file written in python is very smart ! So I wonder if there is a plan  to create debian packages for gizmod. If I can help to this direction I will be happy !

    Panagiotis

     
    • Panagiotis Karagiannis

      Hi again
      after a lot of trial and error, I managed to solve my problems
      1.
      with gcc-4.1 and g++-4.1 compilers there is no need to touch the
      PyImport_AppendInittab("GizmoDaemon", &initGizmoDaemon);
      line
      2.
      I had python-2,5-dev and python-2.4-dev installed and cmake preffered python 2.5. There is an outstanding bug report in debian saying python-boost is not working with python-2.5. So i removed python-2.5-dev and now gizmod-3.4 compiles without a single warning ! (using python 2.4)

      I did'nt try to run the program because I wanted to send this post first.
      I believe is OK though,
      Probably tomorrow I will try to create a debian-amd64 package if you'd like to include it in your repository

      Thanks
      Panagiotis

       

Log in to post a comment.