Menu

Problem runing version from git

Help
Anonymous
2012-07-06
2013-06-03
1 2 > >> (Page 1 of 2)
  • Anonymous

    Anonymous - 2012-07-06

    I'm trying to run the version of idjc in git (the 0.8.7 version crashes on me regularly and I wanted to see if the git version which has some really cool features I want would help).

    Once I solved the issue of needing the latest mpg123 development libraries, it successfully built, but when I try to run it, I get a message "something bad happened" and a popup at the bottom of my screen that says "idjc failed to load /usr/local/lib/idjc.so.0".  I don't know why (I build from source, but I'm not a hard core developer) but the only way to get the program to run was to use LD_PRELOAD to load /usr/local/lib/idjc.so.0 manually.  ldconfig is ignoring the idjc.so files in /usr/local/lib.  Should they perhaps be called /usr/local/lib/libidjc.so.* instead?

    Any help would be appreciated because 0.8.7 is becoming unusable for me.

    Thanks.

     
  • Stephen Fairchild

    It would help if you told me which distribution you are using including version number since I cannot reproduce this using Ubuntu 12.04 on Virtual Box.

     
  • Anonymous

    Anonymous - 2012-07-06

    Fedora 16 and 17 both exhibit this problem.  If there is any other information you need, I will be glad to provide it.

     
  • Anonymous

    Anonymous - 2012-07-06

    A couple of more notes.

    I created a local.conf in /etc/ld.so.conf.d that contains /usr/local/lib in it.  This helps it find the libshout-idjc shared libs, but not idjs.so.0.

    In order to get IDJC to compile, I had to install mpg123 version 1.14.3 (problem with missing define MPG123_AUTO_RESAMPLE).

    In order for configure to find the avcodec.h header file and the libshout-idjc headers and libraries, I issued the following commands prior to running configure.

      export CPPFLAGS=-I/usr/include/ffmpeg
      export SHOUTIDJC_CFLAGS=-I/usr/local/include
      export SHOUTIDJC_LIBS=/usr/local/lib

    ldconfig -v -v | grep idjc    returns the following:

    # ldconfig -v -v | grep idjc
    ldconfig: Path `/usr/lib' given more than once
    libshout-idjc.so.3 -> libshout-idjc.so.3.2.0

    ls -l /usr/lib/idjc* returns the following:

    # ls -l /usr/lib/idjc*
    -rwxr-xr-x 1 root root   1041 Jul  6 16:28 /usr/lib/idjc.la
    lrwxrwxrwx 1 root root     13 Jul  6 16:28 /usr/lib/idjc.so -> idjc.so.0.0.0
    lrwxrwxrwx 1 root root     13 Jul  6 16:28 /usr/lib/idjc.so.0 -> idjc.so.0.0.0
    -rwxr-xr-x 1 root root 740271 Jul  6 16:28 /usr/lib/idjc.so.0.0.0

    so as you can see, the files are present, but ldconfig doesn't recognize them as libraries.  I think (based on my reading of information at the tldp.org website) that this is due to the shared libraries not starting with "lib".  I didn't take the time to figure out how to change the name of the generated shared library yet, but I suspect that if I could, my problem would be solved.

    Thanks for the great software.  I really do like it a lot and it just keeps improving.  If you need more information, I will be glad to provide it.

     
  • Stephen Fairchild

    I have the idjc.so module loading in Virtual Box with Fedora 16 with no special encouragement

    idjc.so is not meant to be a shared library hence the lack of lib prefix and ldconfig ignoring it. The module pathname is hard coded at configure time and moving the module to another directory will prevent it from being found. idjc.so is not for use by any other software, the library version number will be 0.0.0 regardless of what version of IDJC. This puts it on the same basis as all the other components.

     
  • Anonymous

    Anonymous - 2012-07-08

    OK… I just realized that the output of the various commands above were a mixture of my first attempt where I ran configure with no arguments (which would have put it into /usr/local/ as a prefix) and my second attempt, where I ran configure -prefix=/usr.  I have since removed all the parts of idjc, pulled a fresh copy with git, and tried again with the same results, the idjc.so module is not being loaded.  This is reproducable now on three different machines I have tried it on and while I could believe that one machine was hosed, all three?  The only way I can get it to work is to use LD_PRELOAD.

     
  • Stephen Fairchild

    Please try it again. A number of bugs have been fixed.

     
  • Anonymous

    Anonymous - 2012-07-09

    Ok.  Here is what I have found.

    On Fedora 16, without many upgrades to various libraries (ffmpeg, mpg123, etc), the git version won't build at all.  There were so many upgrades required to my system and interdependencies that I gave up trying.

    On Fedora 17, the only thing that really needed upgrading was mpg123 to version 1.14.1 or higher.

    The source of the "something bad happened" was that for some reason, the idjc.so module was complaining about an unresolved symbol, shout_shutdown.  Here are the steps I used to discover this and the workaround I found.

    Completely removed idjc from my system along with libshout-idjc.
    Pulled a new copy from git repository and ran bootstrap.sh.
    Changed directory to libshout-idjc and ran ./configure ; make ; make install which put it in /usr/local.
    Added a local.conf file to /etc/ld.so.conf.d with /usr/local/lib in it and ran ldconfig -v -v (libshout-idjc shows up in the list).
    Changed directory to the top level idjc directory and set the environment variables as follows:
        export CPPFLAGS=-I/usr/include/ffmpeg
        export SHOUTIDJC_LIBS=/usr/local/lib
        export SHOUTIDJC_CFLAGS=-I/usr/local/include
    Then ran ./configure ; make ; make install
    Tried to run /usr/local/bin/idjc       FAILED with message "something bad happened" in the terminal and "Could not load /usr/local/lib/idjc.so.0" via a notification popup.
    Tried again to run with command LD_PRELOAD="/usr/local/lib/idjc.so.0 /usr/local/lib/libshout-idjc.so.3" /usr/local/bin/idjc     WORKED
    Tried again to run with command LD_PRELOAD="/usr/local/lib/idjc.so.0" /usr/local/bin/idjc      FAILED with error message "unresolved symbol shout_shutdown in idjc.so.0"

    Did a ldd /usr/local/lib/idjc.so.0 and noticed that there was no line for libshout-idjc.  Shouldn't there be?

    So now had an idea to try something different.
    Uninstalled libshout-idjc from /usr/local and reconfigured with ./configure -prefix=/usr ; make ; make install
    Unset variables SHOUTIDJC_LIBS and SHOUTIDJC_CFLAGS and did a make clean; ./configure ; make ; make install
    Tried running /usr/local/bin/idjc (built against libshout-idjc installed in /usr instead of /usr/local)     WORKED

    So my conclusion is that for some reason, when libshout-idjc is installed in /usr/lib instead of /usr/local/lib, it works fine, but for some reason, even though ldconfig knows about libshout-idjc in /usr/local, idjc.so module doesn't look there for it, perhaps because the module doesn't think that it has a dependency on libshout-idjc.

    I'm not an expert, so I may be completely off base, but there are my observations.

    Thanks again for this great package.  If you need further information, just let me know.

     
  •  IFo

    IFo - 2012-11-20

    I downloaded IDJC 0.8.8 from https://sourceforge.net/projects/idjc/
    and
    libshout-idjc 2.3.0 from http://sourceforge.net/projects/idjc/files/libshout-idjc/libshout-idjc-2.3.0.tar.gz/download/
    unpacked them and went into libshout-idjc's directory and in short I had few unsuccessfull tries to install it so I ended up removing both from everywhere and this is what I did:

    $ cd libshout-idjc-2.3.0/
    $ ./configure CFLAGS="-O2" --prefix=/usr
    $ make
    $ sudo make install
    $ sudo ldconfig
    

    after that I did

    $ cd idjc-[version]/
    $ ./configure CFLAGS="-O2" --prefix=/usr
    

    but IDJC couldn't find/see libshout-idjc so in IDJC's directory I did:

    export SHOUTIDJC_LIBS=/usr/local/lib
    export SHOUTIDJC_CFLAGS=-I/usr/local/include
    

    after that I continued with:

    $ make
    $ sudo make install
    

    After it all finished I went and ran IDJC.
    The window in which you need to choose a profile opened so I went and opened the default one
    and I got:

    IDJC Failed to open /usr/lib/idjc.so.0
    Cannot continue.

    I am using Fedora 17 x86_64 with KDE current version 4.9.2
    I don't know what other information I need to provide.

     
  • Stephen Fairchild

    If you installed libshout-idjc with -prefix=/usr then it should be in /usr not /usr/local as implied by  those environment variables. Simply putting libshout-idjc in /usr/local will allow compile but at run time it might not link if you ran ldconfig without first having /usr/local/lib in your /etc/ld.so.conf file.

    Could you post the output of the following commands?
    $ ldd -r /usr/lib/idjc.so
    $ cat /etc/ld.so.conf
    $ find /usr -name \*idjc*

     
  •  IFo

    IFo - 2012-11-20

    I did install libshout-idjc with -prefix=/usr and it is in /usr

    Here's the output:

    $ ldd -r /usr/lib/idjc.so
            linux-vdso.so.1 =(0x00007fff905c4000)
            libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fb65ce73000)
            libavcodec.so.53 => /lib64/libavcodec.so.53 (0x00007fb65bf95000)
            libavformat.so.53 => /lib64/libavformat.so.53 (0x00007fb65bc76000)
            libavutil.so.51 => /lib64/libavutil.so.51 (0x00007fb65ba53000)
            libFLAC.so.8 => /lib64/libFLAC.so.8 (0x00007fb65b819000)
            libjack.so.0 => /lib64/libjack.so.0 (0x00007fb65b5d4000)
            libmpg123.so.0 => /lib64/libmpg123.so.0 (0x00007fb65b378000)
            libmp3lame.so.0 => /lib64/libmp3lame.so.0 (0x00007fb65b102000)
            libsamplerate.so.0 => /lib64/libsamplerate.so.0 (0x00007fb65ad95000)
            libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007fb65ab39000)
            libspeex.so.1 => /lib64/libspeex.so.1 (0x00007fb65a920000)
            libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007fb65a450000)
            libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007fb65a223000)
            libm.so.6 => /lib64/libm.so.6 (0x00007fb659f28000)
            libogg.so.0 => /lib64/libogg.so.0 (0x00007fb659d20000)
            libtwolame.so.0 => /lib64/libtwolame.so.0 (0x00007fb659afc000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb6598e0000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fb659528000)
            librt.so.1 => /lib64/librt.so.1 (0x00007fb659320000)
            libva.so.1 => /lib64/libva.so.1 (0x00007fb659109000)
            libxvidcore.so.4 => /lib64/libxvidcore.so.4 (0x00007fb658df1000)
            libx264.so.120 => /lib64/libx264.so.120 (0x00007fb658aa5000)
            libvpx.so.1 => /lib64/libvpx.so.1 (0x00007fb658826000)
            libtheoraenc.so.1 => /lib64/libtheoraenc.so.1 (0x00007fb6585f8000)
            libtheoradec.so.1 => /lib64/libtheoradec.so.1 (0x00007fb6583e8000)
            libschroedinger-1.0.so.0 => /lib64/libschroedinger-1.0.so.0 (0x00007fb658117000)
            libz.so.1 => /lib64/libz.so.1 (0x00007fb657eff000)
            libopenjpeg.so.3 => /lib64/libopenjpeg.so.3 (0x00007fb657cdf000)
            libgsm.so.1 => /lib64/libgsm.so.1 (0x00007fb657ad4000)
            libcelt0.so.2 => /lib64/libcelt0.so.2 (0x00007fb6578bb000)
            librtmp.so.0 => /lib64/librtmp.so.0 (0x00007fb6576a1000)
            libgnutls.so.26 => /lib64/libgnutls.so.26 (0x00007fb6573e9000)
            libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fb6571d8000)
            libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fb656ed5000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fb656cd1000)
            libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fb656abb000)
            libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fb6568b2000)
            /lib64/ld-linux-x86-64.so.2 (0x0000003030200000)
            liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007fb656636000)
            libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007fb6563be000)
            libtasn1.so.3 => /lib64/libtasn1.so.3 (0x00007fb6561ad000)
            libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fb655fa8000)
            libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007fb655d96000)
    undefined symbol: shout_shutdown        (/usr/lib/idjc.so)
    undefined symbol: shout_set_genre       (/usr/lib/idjc.so)
    undefined symbol: shout_set_metadata    (/usr/lib/idjc.so)
    undefined symbol: shout_metadata_free   (/usr/lib/idjc.so)
    undefined symbol: shout_get_error       (/usr/lib/idjc.so)
    undefined symbol: shout_set_protocol    (/usr/lib/idjc.so)
    undefined symbol: shout_set_icq (/usr/lib/idjc.so)
    undefined symbol: shout_set_port        (/usr/lib/idjc.so)
    undefined symbol: shout_set_url (/usr/lib/idjc.so)
    undefined symbol: shout_set_agent       (/usr/lib/idjc.so)
    undefined symbol: shout_set_name        (/usr/lib/idjc.so)
    undefined symbol: shout_set_aim (/usr/lib/idjc.so)
    undefined symbol: shout_set_password    (/usr/lib/idjc.so)
    undefined symbol: shout_metadata_new    (/usr/lib/idjc.so)
    undefined symbol: shout_set_format      (/usr/lib/idjc.so)
    undefined symbol: shout_set_user        (/usr/lib/idjc.so)
    undefined symbol: shout_set_public      (/usr/lib/idjc.so)
    undefined symbol: shout_set_audio_info  (/usr/lib/idjc.so)
    undefined symbol: shout_open    (/usr/lib/idjc.so)
    undefined symbol: shout_close   (/usr/lib/idjc.so)
    undefined symbol: shout_set_irc (/usr/lib/idjc.so)
    undefined symbol: shout_set_nonblocking (/usr/lib/idjc.so)
    undefined symbol: shout_init    (/usr/lib/idjc.so)
    undefined symbol: shout_set_mount       (/usr/lib/idjc.so)
    undefined symbol: shout_set_host        (/usr/lib/idjc.so)
    undefined symbol: shout_new     (/usr/lib/idjc.so)
    undefined symbol: shout_metadata_add    (/usr/lib/idjc.so)
    undefined symbol: shout_get_connected   (/usr/lib/idjc.so)
    undefined symbol: shout_queuelen        (/usr/lib/idjc.so)
    undefined symbol: shout_set_description (/usr/lib/idjc.so)
    undefined symbol: shout_send    (/usr/lib/idjc.so)
    undefined symbol: shout_free    (/usr/lib/idjc.so)
    
    $ cat /etc/ld.so.conf
    include ld.so.conf.d/*.conf
    
    $ find /usr -name \*idjc*
    /usr/local/share/doc/libshout-idjc
    /usr/lib/pkgconfig/shout-idjc.pc
    /usr/lib/libshout-idjc.a
    /usr/lib/libshout-idjc.so.3.2.0
    /usr/lib/libshout-idjc.la
    /usr/lib/python2.7/site-packages/idjc
    /usr/lib/idjc.so.0.0.0
    /usr/lib/idjc.so
    /usr/lib/libshout-idjc.so
    /usr/lib/libshout-idjc.so.3
    /usr/lib/idjc.la
    /usr/lib/idjc.so.0
    find: `/usr/lib64/audit': Permission denied
    /usr/bin/idjc
    /usr/include/shoutidjc
    /usr/share/doc/idjc-0.8.8
    /usr/share/doc/libshout-idjc
    /usr/share/idjc
    /usr/share/locale/it/LC_MESSAGES/idjc.mo
    /usr/share/pixmaps/idjc.png
    /usr/share/applications/idjc.desktop
    /usr/share/man/man1/idjc-ls.1
    /usr/share/man/man1/idjc-rm.1
    /usr/share/man/man1/idjc-noauto.1
    /usr/share/man/man1/idjc-new.1
    /usr/share/man/man1/idjc-auto.1
    /usr/share/man/man1/idjc.1
    /usr/share/man/man1/idjc-run.1
    
     
  •  IFo

    IFo - 2012-11-20

    P.S. I am sorry, I meant in the directory of IDJC I did:

    export SHOUTIDJC_LIBS=/usr/lib
    export SHOUTIDJC_CFLAGS=-I/usr/include
    

    not:

    export SHOUTIDJC_LIBS=/usr/local/lib
    export SHOUTIDJC_CFLAGS=-I/usr/local/include
    
     
  • Stephen Fairchild

    It looks like you didn't run $ sudo ldconfig
    Try it. Maybe it works now.

    It's a longshot but here is one last command to copy and paste if the above didn't work. There must be /usr/lib in there on its own line for the ldconfig to work as desired. It would be really odd for it to be missing.
    $ find /etc/ld.so.conf.d -type f -exec cat {''} \;

     
  •  IFo

    IFo - 2012-11-20

    I did run $ sudo ldconfig actually.

    And here's the output:

    $ find /etc/ld.so.conf.d -type f -exec cat {''} \;
    /usr/lib64/tracker-0.14
    /usr/lib64/xulrunner
    /usr/lib64/wine/
    /usr/lib64/atlas
    # Placeholder file, no vDSO hwcap entries used in this kernel.
    /usr/lib64/mysql
    # Placeholder file, no vDSO hwcap entries used in this kernel.
    /usr/lib64/llvm
    # Placeholder file, no vDSO hwcap entries used in this kernel.
    /usr/lib/wine/
    /usr/lib64/qt-3.3/lib
    
     
  • Stephen Fairchild

    $ echo "/usr/lib" > /etc/ld.so.conf.d/01usrlib
    $ sudo ldconfig

    Hopefully that does it. The missing /usr/lib looks highly irregular assuming you posted the entire output.

     
  •  IFo

    IFo - 2012-11-20

    $ echo "/usr/lib" > /etc/ld.so.conf.d/01usrlib
    bash: /etc/ld.so.conf.d/01usrlib: Permission denied

    and $ sudo ldconfig as the other times gives no output

    P.S. Yes, I posted the entire output

     
  •  IFo

    IFo - 2012-11-20

    Once again sorry for the double post but since I can't see the edit option.
    Actually I just checked and there is no 01usrlib in /etc/ld.so.conf.d/

     
  • Stephen Fairchild

    $ sudo echo "/usr/lib" > /etc/ld.so.conf.d/01usrlib
    $ sudo ldconfig

     
  •  IFo

    IFo - 2012-11-20

    For some reason with sudo it still gives me Permission denied so I did it as root (performing 'su' first) and it worked (without any output) then sudo ldconfig again with no output

     
  •  IFo

    IFo - 2012-11-21

    But still IDJC when started gives me: IDJC Failed to open /usr/lib/idjc.so.0 Cannout continue

     
  •  IFo

    IFo - 2012-11-22

    I tried running: $ LD_PRELOAD=/usr/lib/idjc.so.0 /usr/lib/libshout-idjc.so.3 /usr/bin/idjc and I get: Segmentation fault (core dumped)
    and when running: $ LD_PRELOAD=/usr/lib/idjc.so.0 /usr/bin/idjc I get: /usr/bin/python2.7: symbol lookup error: /usr/lib/idjc.so.0: undefined symbol: shout_shutdown
    When doing: ldd /usr/lib/idjc.so.0 there is indeed no link/point to libshout
    I guess I have the same problem as the other guy but unfortunately his solution doesn't help me.

     
  •  IFo

    IFo - 2012-12-04

    Any news on it?

     
  • Stephen Fairchild

    There is some news. The Fedora maintainer is in the process of making an IDJC package. His Sourceforge user id is comzeradd. Perhaps he will help you.

     
  •  IFo

    IFo - 2012-12-04

    Thank you very much.
    Unfortunately Fedora doesn't provide mp3 support unless you add it yourself by adding repositories such as rpmfusion and installing the required packages.
    There is an old version of IDJC in the Fedora repo already but I have problem using it with mp3 files (I guess it has been built without mp3 support in first place and it can't be added at this point)
    I submitted ticket to bugzilla.redhat.com regarding that issue but as I see the ticket was removed (I guess because I was asking about something involving mp3 support)
    That is why I am trying to build IDJC on my own from source.
    I don't remember if I mentioned it in any of the above posts but some time ago I built IDJC successfully but that was before the time it started requiring libshout-IDJC

     
  • Stephen Fairchild

    The latest version supports runtime linking to libmpg123. I hope that code stays in because then you will be able to use it.

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.