On Sun, 13 Nov 2011, Jochen Schröder wrote:
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.
according to the autoconf manual, about AC_CHECK_LIB:
the default action prepends -llibrary to LIBS and defines
'HAVE_LIBlibrary' (in all capitals)
Which means that one add to LIBS the flag -leeze. That's all. No -Lfoo.
That's a mistake. Hence there is a bug in the above Makefile.am.
Now, about the configure check, there is indeed something missing:
CPPFLAGS_save="$CPPFLAGS"
LIBS_save="$LIBS"
CPPFLAGS="$EEZE_CFLAGS $CPPFLAGS"
LIBS="$EEZE_LIBS $LIBS"
AC_CHECK_LIB([eeze], [eeze_disk_function], ***)
CPPFLAGS="$CPPFLAGS_save"
LIBS="$LIBS_save"
Vincent
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
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
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel