On Tue, Jan 8, 2013 at 2:18 AM, Gustavo Sverzut Barbieri <barbi...@profusion.mobi> wrote: > On Mon, Jan 7, 2013 at 9:14 AM, Arvind R <arvin...@gmail.com> wrote: > >> Hi all, >> >> After getting xine backend working in emotion, tried generic (vlc) >> backend. Nope - doesn't work -:( >> >> Problem 1: Using the example source, now need to add: >> emotion_object_module_option_set(em, "player", "vlc"); >> >> It does not fall-back to the default generic player. >> >> Problem 2: >> em_player_vlc cannot be found, because generic_module_init() fails to >> set the prefixes proper. >> >> So put printf() and recompiled. (Is there is a small howto on the eina >> logging system?) Output: >> >> evas engine: <auto> >> emotion backend: generic >> vis: 0 >> geometry: 0 0 960x540 >> generic_module_init: initing libdir to /usr/lib/x86_64-linux-gnu >> > > this seems wrong already, is it PACKAGE_LIB_DIR? why does it contain > x86_64-linux-gnu? in Makefile.am it's just $(libdir), did you specify > something with --libdir? > Yes. '$prefix/lib/$DEB_ARCH. The x86_64-linux-gnu is correct. > > >> generic_module_init: got libdir /usr/lib/lib >> > > yet another very weird result. double "lib" in the path? Where are you > installing these things? > > eina_prefix_new() will use the given symbol (emotion_object_add) and dladdr > to know which file it came from. Should be the libemotion.so. Then it gets > the directory where libemotion.so is contained, should be /usr/lib if it's > /usr/lib/libemotion.so. Then it will remove the "lib" part to get the > prefix, later adding this again (this is what it should do, did not test to > see if it's correct). > Ah-ah! The logic is IMHO, wrong! My installation is a multiarch debian install. The x86_64 libdir is '/usr/lib/x86_64-linux-gnu' and 32-bit version in 'usr/lib32' on a x86_64-linux-gnu system and '/usr/lib/' on a 'x86-linux-gnu' system. The modules get installed in sub-dirs of the library, e.g. libemotion.so gets installed in '/usr/lib/x86_64-linux-gnu/' and emotion modules in '/usr/lib/x86_64-linux-gnu/emotion/'. This makes the 'MODULE_ARCH' variable in autoconf files unnecessary; and, as I have on my system (untested -:(), a lib32 AND a x86_64 installation possible. This will conform to most packaging systems AFAIK, and definitely to Debian. If the logic is modified to scan from right to left the absence of '^lib' substring to get the prefix, and later add ALL the subsequent parts, all will be fine. Better still, have eina_prefix_new take the $PREFIX value too to enable a left-to-right scan. > > >> ERR<3392>:emotion-generic emotion_generic.c:105 _get_player() Trying >> generic player '/usr/lib/lib/emotion/utils/em_generic_vlc' >> > > likely the double "lib" is the problem? Of course. If a soft-link is setup for /usr/lib/lib to point to /usr/lib/x86_64-linux-gnu, everything works! > > Also, please see your eina/config.h if HAVE_DLADDR is defined, it will > impact eina_prefix work. > Yes, it is defined.
Regards, Arvind ------------------------------------------------------------------------------ Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and more. Get SQL Server skills now (including 2012) with LearnDevNow - 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only - learn more at: http://p.sf.net/sfu/learnmore_122512 _______________________________________________ enlightenment-users mailing list enlightenment-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-users