eaps.o(.text+0x23b): In function `write_icon': /var/tmp/portage/e17genmenu-4.1.3/work/e17genmenu-4.1.3/src/eaps.c:142: undefined reference to `engrave_eet_output' collect2: ld returned 1 exit status make[2]: *** [e17genmenu] Error 1 make[2]: Leaving directory `/var/tmp/portage/e17genmenu-4.1.3/work/e17genmenu-4.1.3/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/e17genmenu-4.1.3/work/e17genmenu-4.1.3' make: *** [all] Error 2
e17genmenu-4.1.4 now in portage
I confirm this for e17genmenu-4.1.4. I have the following output: eaps.o(.text+0x23b): In function `write_icon': /home/exports/portage/e17genmenu-4.1.4/work/e17genmenu-4.1.4/src/eaps.c:144: undefined reference to `engrave_eet_output' collect2: ld returned 1 exit status make[2]: *** [e17genmenu] Error 1 make[2]: Leaving directory `/home/exports/portage/e17genmenu-4.1.4/work/e17genmenu-4.1.4/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/exports/portage/e17genmenu-4.1.4/work/e17genmenu-4.1.4' make: *** [all] Error 2
contact upstream
Okay after discussion upstream and an interesting conversation via the E17 mailing list, the following seems semi-evident to me. Either Enlightenment has circular dependencies or Portage isn't building applications in the correct order or both. This is the command line I use to update my E17 via CVS: emerge imlib2 dev-db/edb eet evas ecore epeg epsilon embryo edje esmart etox ewl e entrance evidence e_utils engrave emotion examine elicit entice imlib2_loaders engage e_modules e17genmenu erss eclair equate It's my understanding that portage should be able to walk through that command line and figure out what needs to be built first. If you look at the compile error for e17genmenu, you'll notice an undefined reference to engrave_eet_output. If you emerge engrave, this error actually goes away (presumably they've changed the API recently). I had similar problems with e_utils requiring engrave and epsilon requiring emotion and ewl requiring emotion as well. So my basic conclusion is as follows. Either there are circular references (hence why epsilon or ewl would require emotion) or we have the dependencies wrong in Portage. I have a feeling they changed the API recently (or someone changed the ebuilds recently) because none of these issues popped up until now. Any thoughts?
you're using live cvs ebuilds you're expected to periodically re-emerge all the live cvs ebuilds *yourself* nothing can be done about it in portage, if it's a problem, dont use the ebuilds