On 13/11/11 20:14, Vincent Torri wrote:
>
>
> On Sun, 13 Nov 2011, Jochen Schröder wrote:
>
>> On 13/11/11 18:39, Vincent Torri wrote:
>>>
>>>
>>> On Sun, 13 Nov 2011, Jochen Schröder wrote:
>>>
>>>> On 12/11/11 22:43, Vincent Torri wrote:
>>>>>
>>>>> Hey,
>>>>>
>>>>> On Sat, 12 Nov 2011, Vincent Torri wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I was trying to dig deeper into a problem where I get a corruption in
>>>>>> e_fm when mounting and removing a usb disk (see
>>>>>> here:http://marc.info/?l=enlightenment-devel&m=132014458110340&w=2
>>>>>> for
>>>>>> details). I found a couple of problems when trying to build e with
>>>>>> different e_fm options.
>>>>>>
>>>>>> 1. when efl is installed in /opt/ for example eeze_mount is always
>>>>>> disabled because the configure test fails because of a missing
>>>>>> -L/opt/e17 in the compile.
>>>>>
>>>>> i don't have libmount, so I can't test it. Can you paste config.log of
>>>>> eeze, please ?
>>>>>
>>>>
>>>> Sorry I didn't make myself clear, this is compiling E, not eeze. Eeze
>>>> compiled fine with libmount support. However when I compile E and do
>>>> configure it fails the check, the relevant lines of E's config.log are
>>>> below
>>>>
>>>> configure:15678: checking for eeze_disk_function in -leeze
>>>> configure:15703: gcc -std=gnu99 -o conftest -g -O2 conftest.c -leeze
>>>> -lpam >&5
>>>> /usr/bin/ld: cannot find -leeze
>>>
>>> that is strange: the eeze.pc file should have -L/opt/e17/lib -leeze in
>>> the Libs entry.
>>>
>>> One possible reason to not have -L***: you have previously installed
>>> eeze in /usr, removed the files manually except
>>> /usr/lib/pkgconfig/eeze.pc. Then installed eeze in /opt/e17, without
>>> updating PKG_CONFIG_PATH. So it's the eeze.pc in /usr/lib/pkgconfig
>>> which is used.
>>>
>>> So verify first that there is not an eeze.pc file somewhere else
>>>
>>> Vincent
>>>
>>
>> eeze.pc is fine, and eeze gets detected by pkgconfig and the
>> -L{library_path} is present. The problem is to enable eeze mounting
>> there is a check in configure.ac to test the presence of
>> eeze_disk_function using AC_CHECK_LIB (see line 397-411 in
>> configure.ac). The way I understand from just reading up on autoconf.
>> AC_CHECK_LIB only uses the default library paths, and there is nothing
>> to include the additional paths in the test and unfortunately I don't
>> know how to put them there either.
>
> in e_fm/Makefile.am:
>
> if HAVE_EEZE_MOUNT
> AM_CFLAGS += @EET_CFLAGS@
> LIBS += @EET_LIBS@
>
> here, there is maybe a missing libs. Try
>
> AM_CFLAGS += @EEZE_CFLAGS@ @EET_CFLAGS@
> LIBS += @EEZE_LIBS@ @EET_LIBS@
>
> It's not my code. Honestly, i would have not done that that way. Mike
> should look at that patch first before I commit (if it works)
>
> Vincent

Thanks for taking time to debug this. I think you misunderstand me 
though. The problem is not building e_fm it is configuring E to build 
with eeze mount. Eeze is installed in /opt/e17/lib linked to to 
libmount. Now if I run autogen.sh in e's src directory e_mount support 
is never enabled. The reason is that the configure test fails with 
/usr/bin/ld: cannot find -leeze.

The offending code from e/configure.ac is (line 397-414):

eeze_mount=
EEZE_MOUNT_CONFIG=0
if test "x$e_cv_want_mount_eeze" != "xno" ; then
       AC_CHECK_LIB([eeze], [eeze_disk_function],
         [
            eeze_mount="eeze >= 1.0.999 ecore-con >= 1.0.999"
            EEZE_MOUNT_CONFIG=1
            AC_DEFINE_UNQUOTED([HAVE_EEZE_MOUNT], [1], [enable eeze 
mounting])
            AC_MSG_NOTICE([eeze mounting enabled])
         ],
         [
            AC_MSG_NOTICE([eeze mounting disabled])
            e_cv_want_mount_eeze=no
         ]
       )
else
   AC_MSG_NOTICE([eeze mounting disabled])
fi

(note that the presence of eeze + flags, has been determined earlier via 
pkgconfig tests).

As I understand this and the autoconf documentation, this is a bit of a 
hack to see if libeeze was compiled with mount support by checking if 
libeeze contains the eeze_disk_function. The problem seems to be that 
AC_CHECK_LIB only uses the standard library path, so if eeze is 
installed in /opt/ the test always fails.

Cheers
Jochen




>
>>
>>
>>>>
>>>> This is because I have eeze installed in /opt/e17 which is not in the
>>>> library path and therefore the linker fails. Adding -L/opt/e17/lib to
>>>> configure or export LIBRARY_PATH=/opt/e17/lib fixes this and eeze_mount
>>>> is enabled. I have not figured out a way of making AC_CHECK_LIB
>>>> actually
>>>> use a non-default library path (mind you as I said earlier I don't
>>>> really know anything about autofoo)
>>>>
>>>> Hope this makes it clearer.
>>>>
>>>> Cheers
>>>> Jochen
>>>>
>>>>
>>>>>>
>>>>>> 2. configure help says enable hal device backend is disabled by
>>>>>> default,
>>>>>> however I always have it enabled after configure
>>>>>
>>>>> there is indeed a problem with hal device *backend* (which is
>>>>> actually not
>>>>> disabled by default), but the variable e_cv_want_device_hal is anyway
>>>>> not
>>>>> used at all. So I'm wondering why that part of code is still in
>>>>> configure.ac
>>>>>
>>>>> hal *mount* is enabled by default, and that's what is displayed in the
>>>>> configure output:
>>>>>
>>>>> Preferred Backends:
>>>>> * device..........: eeze
>>>>> * hal_mount...........: enabled
>>>>> * udisks_mount........: enabled
>>>>> * eeze_mount..........:
>>>>>
>>>>> I think i've fixed that in svn. Tell me if there's something wrong.
>>>>>
>>>>>> 3. when I pass --disable-mount-hal to configure the build of
>>>>>> e_fm_main_udisks fails with the following error:
>>>>>>
>>>>>> /usr/bin/ld: e_fm_main_udisks.o: undefined reference to symbol
>>>>>> 'e_dbus_method_call_send'
>>>>>> /usr/bin/ld: note: 'e_dbus_method_call_send' is defined in DSO
>>>>>> /opt/e17/lib/libedbus.so.1 so try adding it to the linker command
>>>>>> line
>>>>>> /opt/e17/lib/libedbus.so.1: could not read symbols: Invalid operation
>>>>>
>>>>> no problem here. The symbol e_dbus_method_call_send is in my
>>>>> libedbus. I
>>>>> don't know what the problem could be. That symbol exists since e_dbus
>>>>> 1.0.
>>>>>
>>>>> Note that the EFL are not in /opt/ in my case.
>>>>>
>>>>>> collect2: ld returned 1 exit status
>>>>>> make[4]: *** [enlightenment_fm] Error 1
>>>>>> make[4]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src/bin/e_fm'
>>>>>> make[3]: *** [all-recursive] Error 1
>>>>>> make[3]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src/bin'
>>>>>> make[2]: *** [all-recursive] Error 1
>>>>>> make[2]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src'
>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>> make[1]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e'
>>>>>> make: *** [all] Error 2
>>>>>> /usr/bin/ld: e_fm_main_udisks.o: undefined reference to symbol
>>>>>> 'e_dbus_method_call_send'
>>>>>> /usr/bin/ld: note: 'e_dbus_method_call_send' is defined in DSO
>>>>>> /opt/e17/lib/libedbus.so.1 so try adding it to the linker command
>>>>>> line
>>>>>> /opt/e17/lib/libedbus.so.1: could not read symbols: Invalid operation
>>>>>> collect2: ld returned 1 exit status
>>>>>> make[4]: *** [enlightenment_fm] Error 1
>>>>>> make[4]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src/bin/e_fm'
>>>>>> make[3]: *** [all-recursive] Error 1
>>>>>> make[3]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src/bin'
>>>>>> make[2]: *** [all-recursive] Error 1
>>>>>> make[2]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e/src'
>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>> make[1]: Leaving directory
>>>>>> `/home/jschrod/Downloads/Enlightenment/e17_src/e'
>>>>>> make: *** [all] Error 2
>>>>>>
>>>>>> 4. building after configure with --disable-mount-hal and
>>>>>> --disable-mount-udisks works (after fixing 1 by exporting
>>>>>> LIBRARY_PATH).
>>>>>> However the icons for usb-disks never show up on the screen although
>>>>>> they are detected by eeze (messages about detected devices show up in
>>>>>> xsession-errors).
>>>>>
>>>>> as I do not have eeze_mount, I think that I can't test that. Maybe
>>>>> Mike
>>>>> could look at that
>>>>>
>>>>> Vincent
>>>>>
>>>>>> Unfortunately I don't know anything about autofoo, otherwise I would
>>>>>> have sent some patches for 1,2 and 3. If I can do anything else let
>>>>>> me know.
>>>>>>
>>>>>> Cheers
>>>>>> Jochen
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>> RSA(R) Conference 2012
>>>>>> Save $700 by Nov 18
>>>>>> Register now
>>>>>> http://p.sf.net/sfu/rsa-sfdev2dev1
>>>>>> _______________________________________________
>>>>>> enlightenment-devel mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Cedric BAIL
>>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> RSA(R) Conference 2012
>>>>> Save $700 by Nov 18
>>>>> Register now
>>>>> http://p.sf.net/sfu/rsa-sfdev2dev1
>>>>> _______________________________________________
>>>>> enlightenment-devel mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>>
>>>>
>>>> RSA(R) Conference 2012
>>>> Save $700 by Nov 18
>>>> Register now
>>>> http://p.sf.net/sfu/rsa-sfdev2dev1
>>>> _______________________________________________
>>>> enlightenment-devel mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>>>
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> RSA(R) Conference 2012
>>> Save $700 by Nov 18
>>> Register now
>>> http://p.sf.net/sfu/rsa-sfdev2dev1
>>>
>>>
>>>
>>> _______________________________________________
>>> enlightenment-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>>
>> ------------------------------------------------------------------------------
>>
>> RSA(R) Conference 2012
>> Save $700 by Nov 18
>> Register now
>> http://p.sf.net/sfu/rsa-sfdev2dev1
>> _______________________________________________
>> enlightenment-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>>
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
>
>
>
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to