[E-devel] [PATCH] ecore pipe add close functions
Hi This patch adds two new functions, ecore_pipe_close_read and ecore_pipe_close_write, to ecore_pipe. The purpose it to enable ecore_pipe to be used together with fork (see example below). The patch also handles if the read or write end of the pipe closes. /* Test example gcc -Wall `pkg-config --libs --cflags ecore` tstpipe.c -o tstpipe */ void handler(void *data, void *buffer, unsigned int nbyte) { char *s; fprintf(stderr, length %d\n, nbyte); if(nbyte 0 || buffer != NULL) { s = strndup((char*) buffer, nbyte); fprintf(stderr, %s\n, s); free(s); } else ecore_main_loop_quit(); } int main(int argc, char *argv[]) { Ecore_Pipe *p; pid_t cpid; ecore_init(); p = ecore_pipe_add(handler, NULL); cpid = fork(); if (cpid == -1) { perror(fork); exit(EXIT_FAILURE); } if (cpid == 0) { int i; /* Child */ ecore_pipe_close_read(p); for(i=0; i4; i++) { if(!ecore_pipe_write(p, 0123456789, 10)) exit(EXIT_SUCCESS); sleep(1); } exit(EXIT_SUCCESS); } else { /* Parent */ ecore_pipe_close_write(p); ecore_main_loop_begin(); exit(EXIT_SUCCESS); } ecore_shutdown(); } Signed-off-by: Lars Munch l...@segv.dk --- src/lib/ecore/Ecore.h |4 +- src/lib/ecore/ecore_pipe.c | 101 +++- 2 files changed, 93 insertions(+), 12 deletions(-) diff --git a/src/lib/ecore/Ecore.h b/src/lib/ecore/Ecore.h index 0a1969d..0277852 100644 --- a/src/lib/ecore/Ecore.h +++ b/src/lib/ecore/Ecore.h @@ -290,10 +290,12 @@ extern C { EAPI Ecore_Pipe *ecore_pipe_add(void (*handler) (void *data, void *buffer, unsigned int nbyte), const void *data); EAPI void*ecore_pipe_del(Ecore_Pipe *p); EAPI int ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes); + EAPI void ecore_pipe_close_write(Ecore_Pipe *p); + EAPI void ecore_pipe_close_read(Ecore_Pipe *p); EAPI double ecore_time_get(void); EAPI double ecore_loop_time_get(void); - + EAPI Ecore_Timer *ecore_timer_add(double in, int (*func) (void *data), const void *data); EAPI Ecore_Timer *ecore_timer_loop_add(double in, int (*func) (void *data), const void *data); EAPI void*ecore_timer_del(Ecore_Timer *timer); diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c index f6e4778..5608eda 100644 --- a/src/lib/ecore/ecore_pipe.c +++ b/src/lib/ecore/ecore_pipe.c @@ -332,20 +332,68 @@ ecore_pipe_del(Ecore_Pipe *p) ecore_pipe_del); return NULL; } - ecore_main_fd_handler_del(p-fd_handler); - close(p-fd_read); - close(p-fd_write); + if(p-fd_handler != NULL) + ecore_main_fd_handler_del(p-fd_handler); + if(p-fd_read != -1) + close(p-fd_read); + if(p-fd_write != -1) + close(p-fd_write); data = (void *)p-data; free (p); return data; } /** + * Close the read end of an Ecore_Pipe object created with ecore_pipe_add(). + * + * @param p The Ecore_Pipe object. + * @ingroup Ecore_Pipe_Group + */ +EAPI void +ecore_pipe_close_read(Ecore_Pipe *p) +{ + void *data; + + if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE)) + { + ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, + ecore_pipe_close_read); + return; + } + ecore_main_fd_handler_del(p-fd_handler); + p-fd_handler = NULL; + close(p-fd_read); + p-fd_read = -1; +} + +/** + * Close the write end of an Ecore_Pipe object created with ecore_pipe_add(). + * + * @param p The Ecore_Pipe object. + * @ingroup Ecore_Pipe_Group + */ +EAPI void +ecore_pipe_close_write(Ecore_Pipe *p) +{ + void *data; + + if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE)) + { + ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, + ecore_pipe_close_write); + return; + } + close(p-fd_write); + p-fd_write = -1; +} + +/** * Write on the file descriptor the data passed as parameter. * * @param p The Ecore_Pipe object. * @param buffer The data to write into the pipe. * @param nbytes The size of the @p buffer in bytes + * @return Returns TRUE on a successful write, FALSE on an error * @ingroup Ecore_Pipe_Group */ EAPI int @@ -359,9 +407,13 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes) { ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, ecore_pipe_write); - return 0; + return FALSE; } - /* first write the len into the pipe */ + + if(p-fd_write == -1) + return FALSE; + + /* First write the len into the pipe */ do { ret = pipe_write(p-fd_write, nbytes, sizeof(nbytes)); @@ -375,7 +427,13 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes) /* XXX What should we do here? */ fprintf(stderr, The length of the data was not written complete
Re: [E-devel] [PATCH] ecore pipe add close functions
On Wed, Mar 25, 2009 at 09:08:53AM +0100, Peter Wehrfritz wrote: Lars Munch schrieb: Hi This patch adds two new functions, ecore_pipe_close_read and ecore_pipe_close_write, to ecore_pipe. The purpose it to enable ecore_pipe to be used together with fork (see example below). The patch also handles if the read or write end of the pipe closes. I think the names don't fit in to the efl-naming schema, very well. That means that the verb is at the end of the function name, here this would be close. So ecore_pipe_write_close, or ecore_pipe_write_end_close would be better. Yes, you are right. Updated patch below. This patch adds two new functions, ecore_pipe_read_close and ecore_pipe_write_close, to ecore_pipe. The purpose it to enable ecore_pipe to be used together with fork. The patch also handles if the read or write end of the pipe closes. Signed-off-by: Lars Munch l...@segv.dk --- src/lib/ecore/Ecore.h |4 +- src/lib/ecore/ecore_pipe.c | 101 +++- 2 files changed, 93 insertions(+), 12 deletions(-) diff --git a/src/lib/ecore/Ecore.h b/src/lib/ecore/Ecore.h index 0a1969d..b001ded 100644 --- a/src/lib/ecore/Ecore.h +++ b/src/lib/ecore/Ecore.h @@ -290,10 +290,12 @@ extern C { EAPI Ecore_Pipe *ecore_pipe_add(void (*handler) (void *data, void *buffer, unsigned int nbyte), const void *data); EAPI void*ecore_pipe_del(Ecore_Pipe *p); EAPI int ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes); + EAPI void ecore_pipe_write_close(Ecore_Pipe *p); + EAPI void ecore_pipe_read_close(Ecore_Pipe *p); EAPI double ecore_time_get(void); EAPI double ecore_loop_time_get(void); - + EAPI Ecore_Timer *ecore_timer_add(double in, int (*func) (void *data), const void *data); EAPI Ecore_Timer *ecore_timer_loop_add(double in, int (*func) (void *data), const void *data); EAPI void*ecore_timer_del(Ecore_Timer *timer); diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c index f6e4778..84fded0 100644 --- a/src/lib/ecore/ecore_pipe.c +++ b/src/lib/ecore/ecore_pipe.c @@ -332,20 +332,68 @@ ecore_pipe_del(Ecore_Pipe *p) ecore_pipe_del); return NULL; } - ecore_main_fd_handler_del(p-fd_handler); - close(p-fd_read); - close(p-fd_write); + if(p-fd_handler != NULL) + ecore_main_fd_handler_del(p-fd_handler); + if(p-fd_read != -1) + close(p-fd_read); + if(p-fd_write != -1) + close(p-fd_write); data = (void *)p-data; free (p); return data; } /** + * Close the read end of an Ecore_Pipe object created with ecore_pipe_add(). + * + * @param p The Ecore_Pipe object. + * @ingroup Ecore_Pipe_Group + */ +EAPI void +ecore_pipe_read_close(Ecore_Pipe *p) +{ + void *data; + + if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE)) + { + ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, + ecore_pipe_close_read); + return; + } + ecore_main_fd_handler_del(p-fd_handler); + p-fd_handler = NULL; + close(p-fd_read); + p-fd_read = -1; +} + +/** + * Close the write end of an Ecore_Pipe object created with ecore_pipe_add(). + * + * @param p The Ecore_Pipe object. + * @ingroup Ecore_Pipe_Group + */ +EAPI void +ecore_pipe_write_close(Ecore_Pipe *p) +{ + void *data; + + if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE)) + { + ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, + ecore_pipe_close_write); + return; + } + close(p-fd_write); + p-fd_write = -1; +} + +/** * Write on the file descriptor the data passed as parameter. * * @param p The Ecore_Pipe object. * @param buffer The data to write into the pipe. * @param nbytes The size of the @p buffer in bytes + * @return Returns TRUE on a successful write, FALSE on an error * @ingroup Ecore_Pipe_Group */ EAPI int @@ -359,9 +407,13 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes) { ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, ecore_pipe_write); - return 0; + return FALSE; } - /* first write the len into the pipe */ + + if(p-fd_write == -1) + return FALSE; + + /* First write the len into the pipe */ do { ret = pipe_write(p-fd_write, nbytes, sizeof(nbytes)); @@ -375,7 +427,13 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes) /* XXX What should we do here? */ fprintf(stderr, The length of the data was not written complete to the pipe\n); -return 0; +return FALSE; + } + else if (ret == -1 errno == EPIPE) + { +close(p-fd_write); +p-fd_write = -1; +return FALSE; } else if (ret == -1 errno == EINTR) /* try it again */ @@ -390,7 +448,7 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes) while
Re: [E-devel] [e-users] new module: systray
I'm very glad someone finally did this, thank you very much Gustavo. On Tue, Mar 24, 2009 at 1:16 PM, Downknew Wise downkneww...@gmail.com wrote: Well done!!! Now e is more usable!!! It works without crashes with my systray apps: emesene pidgin network manager and also gnome-do :) Hi, just a quick off-topic suggestion: I've found that the e17 execute panel is as an acceptable gnome-do replacement (at least for launching other apps), so I just bound it to win-space and got rid of gnome-do. Has someone tried it? Do you like it? Do you e17 hackers think it would be possible/desirable to extend the execute-panel to have search capabilities like gnome-do? Cheers, Emme 2009/3/23 Gustavo Sverzut Barbieri barbi...@profusion.mobi For those that do not read svn commits mail list, I just added a systray module to E-MODULES-EXTRA/systray. It is very basic but should be able to replace trayer or stalonetray or any other tray you're using outside e17. It is still ugly as it will be presented as a plain/solid color and not respect theme image. Theme must provide inset and plain colors in order to specify the desired color. By default I used white for inset and light gray for plain so it matches black and white (e17 default). I plan to implement a hack in order to improve this situation, but I don't know when I'll make this. Please report bugs and suggestions. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com ___ enlightenment-users mailing list enlightenment-us...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-users -- Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [e-users] new module: systray
On Wed, Mar 25, 2009 at 5:48 AM, muzzle muz...@gmail.com wrote: I'm very glad someone finally did this, thank you very much Gustavo. On Tue, Mar 24, 2009 at 1:16 PM, Downknew Wise downkneww...@gmail.com wrote: Well done!!! Now e is more usable!!! It works without crashes with my systray apps: emesene pidgin network manager and also gnome-do :) Hi, just a quick off-topic suggestion: I've found that the e17 execute panel is as an acceptable gnome-do replacement (at least for launching other apps), so I just bound it to win-space and got rid of gnome-do. Has someone tried it? Do you like it? Do you e17 hackers think it would be possible/desirable to extend the execute-panel to have search capabilities like gnome-do? execute panel = execbuf (run command...)? If so I already know of some students willing to implement an idea to have execbuf plugins in the same fashion of kde4 krunner, you'd call plugins to match strings and report results asynchronously, so you could do calc (= 1 + 2 - shows =3), google queries, amarok/rhythmbox search, query firefox sqlite db and much more. I forgot to write these ideas on GSoC page, but someone could do and seems like a good plan. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 -- Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] edje_object_size_min_calc() doesn't return correct size
Hi, I'm trying to use edje_object_size_min_calc() to get the size of an edje object after I resized an Evas_Object that is swallowed into it. I'm resizing this Evas_Object with edje_extern_object_[min/max]_size_set(), and I have a part that is relative to this swallow and larger than it. When I use edje_object_part_geometry_get() the size returned is correct, but edje_object_size_min_calc() still just returns the size of the swallow, not the size of the part relative to it (which is larger). I even tried to get the size after main_loop iterations, but still got wrong values. Any suggestions? May edje_object_size_min_calc() be broken or it shouldn't return these values? Regards, -- Rafael Antognolli -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [PATCH] Efreet: use eina_list instead of ecore_dlist
Hi, The attached patches fix three things: 0001 converts the remaining uses of ecore_dlist to using eina_list 0002 replaces the use of Eina_Compare_Cb with the use of EINA_COMPARE_CB 0003 Allows the e17-specified menu to be chosen as a menu only if STRICT_SPEC is not defined, as it is obviously not conforming to the spec. I tested a bit on my system and everything seems to be working correctly, however I haven't tested it really thoroughly. Comments welcome. Regards, -- Albin Tonnerre diff --git a/src/lib/efreet_desktop.c b/src/lib/efreet_desktop.c index 9357add..2dfa357 100644 --- a/src/lib/efreet_desktop.c +++ b/src/lib/efreet_desktop.c @@ -1089,7 +1089,7 @@ efreet_desktop_environment_check(Efreet_Ini *ini) /** * @param desktop: the desktop entry - * @param files: an ecore list of file names to execute, as either absolute paths, + * @param files: an eina list of file names to execute, as either absolute paths, * relative paths, or uris * @param func: a callback to call for each prepared command line * @param data: user data passed to the callback @@ -1105,8 +1105,8 @@ efreet_desktop_command_get(Efreet_Desktop *desktop, Eina_List *files, /** * @param desktop: the desktop entry - * @param files an ecore list of local files, as absolute paths, local paths, or file:// uris (or NULL to get exec string with no files appended) - * @return Returns an ecore list of exec strings + * @param files an eina list of local files, as absolute paths, local paths, or file:// uris (or NULL to get exec string with no files appended) + * @return Returns an eina list of exec strings * @brief Get the command to use to execute a desktop entry * * The returned list and each of its elements must be freed. @@ -1153,7 +1153,7 @@ efreet_desktop_command_local_get(Efreet_Desktop *desktop, Eina_List *files) /** * @param desktop: the desktop entry - * @param files: an ecore list of file names to execute, as either absolute paths, + * @param files: an eina list of file names to execute, as either absolute paths, * relative paths, or uris * @param cb_command: a callback to call for each prepared command line * @param cb_progress: a callback to get progress for the downloads diff --git a/src/lib/efreet_menu.c b/src/lib/efreet_menu.c index 1a77a38..57c85fa 100644 --- a/src/lib/efreet_menu.c +++ b/src/lib/efreet_menu.c @@ -41,7 +41,7 @@ struct Efreet_Menu_Internal } name; /** The names for this menu */ Efreet_Desktop *directory; /** The directory */ -Ecore_DList *directories; /** All the directories set in the menu file */ +Eina_List *directories; /** All the directories set in the menu file */ Efreet_Menu_Move *current_move; /** The current move */ @@ -50,7 +50,7 @@ struct Efreet_Menu_Internal Eina_List *app_pool; /** application pool */ Eina_List *applications; /** applications in this menu */ -Ecore_DList *directory_dirs;/** .directory file directories */ +Eina_List *directory_dirs;/** .directory file directories */ Eina_Hash *directory_cache;/** .directory dirs */ Eina_List *moves; /** List of moves to be handled by the menu */ @@ -1001,10 +1001,10 @@ efreet_menu_internal_free(Efreet_Menu_Internal *internal) internal-applications = eina_list_free(internal-applications); -IF_FREE_DLIST(internal-directories); +IF_FREE_LIST(internal-directories, free); IF_FREE_LIST(internal-app_dirs, efreet_menu_app_dir_free); IF_FREE_LIST(internal-app_pool, efreet_menu_desktop_free); -IF_FREE_DLIST(internal-directory_dirs); +IF_FREE_LIST(internal-directory_dirs, free); IF_FREE_HASH(internal-directory_cache); IF_FREE_LIST(internal-moves, efreet_menu_move_free); @@ -1053,10 +1053,10 @@ static int efreet_menu_handle_menu(Efreet_Menu_Internal *internal, Efreet_Xml *xml) { Efreet_Xml *child; +Eina_List *l; int (*cb)(Efreet_Menu_Internal *parent, Efreet_Xml *xml); -ecore_list_last_goto(xml-children); -while ((child = ecore_dlist_previous(xml-children))) +EINA_LIST_REVERSE_FOREACH(xml-children, l, child) { cb = eina_hash_find(efreet_menu_handle_cbs, child-tag); if (cb) @@ -1206,13 +1206,13 @@ efreet_menu_handle_directory_dir(Efreet_Menu_Internal *parent, Efreet_Xml *xml) if (!path) return 0; /* we've already got this guy in our list we can skip it */ -if (ecore_list_find(parent-directory_dirs, ECORE_COMPARE_CB(strcmp), path)) +if (eina_list_search_unsorted(parent-directory_dirs, EINA_COMPARE_CB(strcmp), path)) { FREE(path); return 1; } -ecore_dlist_prepend(parent-directory_dirs, path); +parent-directory_dirs = eina_list_prepend(parent-directory_dirs, path); return 1; } @@ -1237,10 +1237,10 @@ efreet_menu_handle_default_directory_dirs(Efreet_Menu_Internal *parent, Efreet_X
[E-devel] I propose the help in development 'fm2'
Hello, All. I'm Sergey Semernin from Belgorod, Russia. I have experience in C/C++ programming in Linux (mostly kernel drivers development, DSP, AI, KDE/Qt programming, autotools) - all about 6 years. Therefore, I can help you in E17 file manager development - fix bugs, realize features, etc., to satisfy yours release plan. Now, I'm reading documentation and taking a close look on E17 sources in order to learn Enlightenment principles, architecture and API. I think to be useful and working well with all development team. Sincerely yours, Sergey. P.S. Sorry for my english. It is not native language for me. -- Jabber/XMPP: sergey.semer...@gmail.com Cellular: +7-909-206-5992 -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] epdf not compilable ?
Hello guys :) Is currently epdf useable ? I get the following error while I tried to compile it : /bin/sh ../../libtool --tag=CXX --mode=link i686-pc-linux-gnu-g++ -O2 -march=i686 -pipe -fomit-frame-pointer -no-undefined -version-info 0:0:0 -Wl,-O1 -o libepdf.la -rpath /usr/lib libepdf_la-epdf_main.lo libepdf_la-epdf_document.lo libepdf_la-epdf_fontinfo.lo libepdf_la-epdf_index.lo libepdf_la-epdf_page.lo libepdf_la-epdf_page_transition.lo libepdf_la-epdf_postscript.lo libepdf_la-esmart_pdf.lo -levas -lecore -leina -lpoppler i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/ewl -I/usr/include/efreet -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/poppler -O2 -march=i686 -pipe -fomit-frame-pointer -MT libepdf_ewl_la-ewl_pdf.lo -MD -MP -MF .deps/libepdf_ewl_la-ewl_pdf.Tpo -c ewl_pdf.c -fPIC -DPIC -o .libs/libepdf_ewl_la-ewl_pdf.o ewl_pdf.c: In function ‘ewl_pdf_reveal_cb’: ewl_pdf.c:742: error: ‘Ewl_Widget’ has no member named ‘fx_clip_box’ ewl_pdf.c:743: error: ‘Ewl_Widget’ has no member named ‘fx_clip_box’ ewl_pdf.c:745: error: ‘Ewl_Widget’ has no member named ‘fx_clip_box’ ewl_pdf.c:746: error: ‘Ewl_Widget’ has no member named ‘fx_clip_box’ make[3]: *** [libepdf_ewl_la-ewl_pdf.lo] Error 1 make[3]: *** Waiting for unfinished jobs i686-pc-linux-gnu-g++ -shared -nostdlib /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crti.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/crtbeginS.o .libs/libepdf_la-epdf_main.o .libs/libepdf_la-epdf_document.o .libs/libepdf_la-epdf_fontinfo.o .libs/libepdf_la-epdf_index.o .libs/libepdf_la-epdf_page.o .libs/libepdf_la-epdf_page_transition.o .libs/libepdf_la-epdf_postscript.o .libs/libepdf_la-esmart_pdf.o /usr/lib/libevas.so -L/usr/lib /usr/lib/libecore.so /usr/lib/libeina.so -lpoppler -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2 -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/crtendS.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crtn.o -march=i686 -Wl,-O1 -Wl,-soname -Wl,libepdf.so.0 -o .libs/libepdf.so.0.0.0 (cd .libs rm -f libepdf.so.0 ln -s libepdf.so.0.0.0 libepdf.so.0) (cd .libs rm -f libepdf.so ln -s libepdf.so.0.0.0 libepdf.so) i686-pc-linux-gnu-ar cru .libs/libepdf.a libepdf_la-epdf_main.o libepdf_la-epdf_document.o libepdf_la-epdf_fontinfo.o libepdf_la-epdf_index.o libepdf_la-epdf_page.o libepdf_la-epdf_page_transition.o libepdf_la-epdf_postscript.o libepdf_la-esmart_pdf.o i686-pc-linux-gnu-ranlib .libs/libepdf.a creating libepdf.la (cd .libs rm -f libepdf.la ln -s ../libepdf.la libepdf.la) make[3]: Leaving directory `/var/tmp/portage/app-text/epdf-/work/epdf/src/lib' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/app-text/epdf-/work/epdf/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/app-text/epdf-/work/epdf' make: *** [all] Error 2 Thanks best regards, Cedric Tabin -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel