SourceForge has been redesigned. Learn more.
Close

#17 libmirage does not work...

open
nobody
None
unassigned
default
2013-08-15
2013-08-13
No

I compiled and installed everything (no other problems than the dependencies, but I soved them) now on Ubuntu 12.04.2 because the PPA does not offer support for this version... but when I open cdemu-daemon; it just pops out this message:

cdemu-daemon: symbol lookup error: /usr/lib/libmirage-2.1/filter-isz.so: undefined symbol: BZ2_bzDecompressEnd

What it means?.

Bz2 libraries are broken in Ubuntu 12.04.2?

Discussion

  • Henrik Stokseth

    Henrik Stokseth - 2013-08-14

    Creating your own .DEB packages is quite simple actually, a how-to can be found here:

    http://cdemu.org/debian/

     
  • Jose Luis Triana

    But it won't be the same?... I repeat I had no problem compiling, after I have installed all the dependencies I had NO problem at compile time.

    or the built package does something that I don't know and you don't specify at the documentation?

    In Debian Wheezy, that provides almost the same number version of the packages of Ubuntu 12.04.2 I had no problem and I didn't created .deb packages, I compiled directly from source and cdemu worked out of the box, just for some configuration that I did by hand and I got a full working cdemu.

     
    Last edit: Jose Luis Triana 2013-08-14
    • Henrik Stokseth

      Henrik Stokseth - 2013-08-14

      or the built package does something that I don't know and you don't specify at the documentation?

      The .DEB packages are multi-arch enabled. All libraries end up in /usr/lib/<arch>/. Compiling from tarballs the libraries end up in /usr/lib/.

      cdemu-daemon: symbol lookup error: /usr/lib/libmirage-2.1/filter-isz.so: undefined symbol: BZ2_bzDecompressEnd

      This is a dynamic linker error. Common reasons for this are:

      1) You compiled libmirage against a different version of the BZip2 library than what is currently installed on your system.

      2) You have libraries installed that conflicts, possibly due to multi-arch. This has happened to me before, where the package manager installed to /usr/lib/<arch>/ and I installed from tarballs to /usr/lib/. The dynamic linker prefers the multi-arch version which may be ABI incompatible and you end up with an error message like above.

      3) Something I didn't think of.

      The "ldd" command can list the dynamic dependencies of an executable or a library. But trying to resolve this kind of error can be a pain in the ass, hence why I recommended creating and installing from .DEB packages which is much less painful.

       
      Last edit: Henrik Stokseth 2013-08-14
      • Mike Frysinger

        Mike Frysinger - 2013-08-30

        that error is a problem with /usr/lib/libmirage-2.1/filter-isz.so. you can work around it by putting libbz2.so.1 into LD_PRELOAD or linking the main cdemu program against -lbz2, but in the end, it's a bug in that library and most likely not cdemu's problem. thus there's nothing to be done on cdemu's side.

         
  • Jose Luis Triana

    Good!, I was trying to build the .deb package but the retarded CMake can't find again the motherfucker 'gobject-introspection' , and yes! I have installed it, here's the gobject-intropection that I installed:

    Paquete: gobject-introspection
    Estado: instalado
    Instalado automáticamente: no
    Versión: 1.32.0-1
    Prioridad: opcional
    Sección: devel
    Desarrollador: Ubuntu Developers ubuntu-devel-discuss@lists.ubuntu.com
    Arquitectura: amd64
    Tamaño sin comprimir: 1.080 k

    Rok said to me that some libraries are missing from that package and the problems are solved by installing libgirepository1.0-dev, OK! I installed it as well:

    Paquete: libgirepository1.0-dev
    Estado: instalado
    Instalado automáticamente: no
    Versión: 1.32.0-1
    Prioridad: opcional
    Sección: libdevel
    Desarrollador: Ubuntu Developers ubuntu-devel-discuss@lists.ubuntu.com
    Arquitectura: amd64
    Tamaño sin comprimir: 6.108 k

    But here's what I got when building the package: http://pastebin.ca/2431834

    So I found a way to getting rid the fuck off of gobject-introsCRAPtion, by trial and error I found that changing these lines on the CMakeLists.txt:

    #Options
    option (GTKDOC_ENABLED "Use gtk-doc to build documentation" on)
    option (INTROSPECTION_ENABLED "Generate gobject introspection files" on)
    option (POST_INSTALL_HOOKS "Run post-install hooks" on)
    

    to:

    #Options
    option (GTKDOC_ENABLED "Use gtk-doc to build documentation" off)
    option (INTROSPECTION_ENABLED "Generate gobject introspection files" off)
    option (POST_INSTALL_HOOKS "Run post-install hooks" on)
    

    Finally it begins to compile without complaining that it can't find the gobject-introscraption anymore, and also disabled gtk-docs, TOTALLY useless for me.

    but at the end it pops out this: http://pastebin.ca/2431890

    So, it's really simpler and easier to make a .deb package?... what else do I need?. It is a bug in Ubuntu's fakeroot? why it can't find gobject-introspection in the first place? why the "instalation" in the package creation couldn't found the libmirage8 files as in the last pastebin?

     
    Last edit: Jose Luis Triana 2013-08-14
    • Rok Mandeljc

      Rok Mandeljc - 2013-08-15

      I can reproduce the .deb package building failure on fresh Ubuntu 12.04.02 amd64 VM. It fails with:

      make[1]: Leaving directory `/home/rok/libmirage-2.1.0/obj-x86_64-linux-gnu'
      dh_install
      dh_install: libmirage8 missing files (usr/lib//lib.so.), aborting
      make:
      ** [binary] Error 20
      dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

      It would seem that the build rules expect the library files to be installed to $SOURCEDIR/debian/tmp/usr/lib/<arch>, whereas they are actually installed to $SOURCEDIR/debian/tmp/usr/lib. Henrik, can you look into this?

      Regarding CMake & gobject-introspection, I cannot reproduce the issue; installing 'libgirepository1.0-dev' was sufficient in my VM. Can you check if 'gobject-introspection-1.0' is visible to pkg-config? (i.e., what is the output of 'pkg-config --modversion gobject-introspection-1.0'?) If not, check if 'gobject-introspection-1.0.pc' exists; it should come with afore-mentioned package, and in my case, was installed to /usr/lib/pkgconfig.

       
      • Henrik Stokseth

        Henrik Stokseth - 2013-08-15

        It would seem that the build rules expect the library files to be installed to $SOURCEDIR/debian/tmp/usr/lib/, whereas they are actually installed to $SOURCEDIR/debian/tmp/usr/lib. Henrik, can you look into this?

        Debian derived distributions recently added the multi-arch support, and this is handled in debhelper since version 9. It would be possible to make a hack to support multiple versions of Ubuntu, but I'd rather keep the packaging scripts simple and just drop support for old versions. For distributions that don't have the new version of debhelper there will still be the option of compiling from tarballs which is IMO sufficient.

        Regarding CMake & gobject-introspection, I cannot reproduce the issue;

        I think I'll change the default to not compile this since it's not really being used for anything at the moment.

         
  • Jose Luis Triana

    I have tried again... Now It finds gobject-introspection... the problem was that I was using the source code that I downloaded in another distribution (Debian, in debian could not find gobject-introspection out of the box), I downloaded the source code again, built the package and every went OK just for the error that Rok reproduced and I reported.

    My mistake, but that does not change my opinion about gobject-introspection, I don't find a use for it... if you say that is an optional package and I use KDE.

     

Log in to post a comment.