[oe] e-wm broken after yesterdays upgrade

Carsten Haitzler (The Rasterman) raster at rasterman.com
Sun Nov 16 22:46:17 UTC 2008


On Sun, 16 Nov 2008 16:22:07 +0100 Koen Kooi <k.kooi at student.utwente.nl>
babbled:

> On 16-11-08 15:59, Stefan Schmidt wrote:
> > Hello.
> >
> > Sorry for the delay. Having a cold I decided to have a releaxed weekend.
> > Will take a deeper look next days if the stuff below does not help.
> >
> > On Sat, 2008-11-15 at 22:32, Koen Kooi wrote:
> >> I just built and installed the updated e-wm and it refuses to start:
> >
> > Installed means from the updated angstrom feed I guess?
> 
> Yes, I did 'bitbake e-wm', synced the new packages to the feeds and did 
> 'opkg update ; opkg upgrade' on the device (an omap3evm board).
> On the omap3evm board I'd like to test illume to see if it is fit to 
> replace mb-wm in angstrom pda images, on the beagleboard I'd like to run 
> a 'regular' e-wm. The omap3evm was running the 'regular' e-wm at the 
> time of the upgrade.

hmmm. i wonder... did this actually rebuild and upgrade all the dependencies?
that could be the problem. right now the efl .bb's SHOULD have a dependency on
the SAME svnrev (ie e-wm svnr37568 should depend on svnr37568 of evas, edje
etc. etc.). but they don't. are: eet, evas, edje, ecore, eina, efreet, embryo,
edje, e-wm in-sync with their version?

> > As a sidenote. This was not rushed in without testing or review. I spent
> > some good hours on reviewing it together with mickey, in his role as E
> > maintainer in OE. We also decided to keep some more patches out until there
> > is more time for review.
> >
> > And I of course tested it before pushing. Building and actually using it. No
> > breakage here. But as I only tested with a complete new image and not with
> > updating from a feed I may have messed up here. Should not happen though :(
> 
> It seems that almost no OE developer is tracking upgrade paths for such 
> intrusive changes, which is a pity. You'd be suprised how much bugs 
> there are when you try to build an image from the feeds[1] instead of 
> from a pristine deploy/. Anyway, mistakes happen :)
> 
> > If eina is installed in a matching version I would need the following to
> > track this down as I don't have the problem here:
> 
> libeina0 - 2:0.0.1+svnr37324-r0.1 -
> 
> > - Full x.log
> 
> http://dominion.thruhere.net/koen/OE/e17/e-log.txt
> 
> It has scary messages about missing vars, but it *does* find the evas 
> engines. However:

oooooh! thaqt's bad. well ok - the scary stuff. e is actually marginally smart.
it doesnt just rely on knowing its installed location at compile time. you can
actually relocate e and efl on the fly at runtime. even if you build with a
prefix of --prefix=/usr or /usr/local or /opt/e17 - just mv all the
PREFIX/lib/.so's, PREFIX/bin/binaries and PREFIX/share/* dirs and PREFIX/lib/*
dirs of the respective app (in this case - same applies to evas or edje etc.)
and they will figure out their new home (as long as they retain a common PREFIX
for that package - ie share/* stuff moves to the same PREFIX as libs and bins).
it tries to figure this out many ways. first it checks /proc/self/maps. it
looks for a function inside the process (or lib) to see where it's mapped and
if the address is int he mapping range for anything in /proc/self/maps - if it
finds it the full path is there (well - should be unless its deleted or stack
or heap...) if this fails it looks at argv[0] - if its a full path.. well..
thats the binary - if its not - it checks for the binary in $PATH and when
found knows the full path. if this fails... it falls back to the good old
"compiled in prefix" like everyone else - it also allows you to set environment
variables to tell it what its prefix should be, if you moved it. these always
take precedence if set, even over auto-finding. what is most odd... is that
it's failing for you. on a linux host i can't imagine it failing
- /proc/self/maps is the first port of call and that should work! something
strange is up here... maybe its the missing AUTHORS
file? /usr/share/enlightenment/AUTHORS - thats uses as a "is it there" file
detect for the prefix search. it's an extra check (it's also used by e's about
box). ok checked - yes. AUTHORS missing from packaging. fixed:
--------
diff --git a/packages/e17/e-wm_svn.bb b/packages/e17/e-wm_svn.bb
index a2fabc7..7734bf2 100644
--- a/packages/e17/e-wm_svn.bb
+++ b/packages/e17/e-wm_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "The Enlightenment Window Manager Version 17"
 DEPENDS = "eet evas ecore edje efreet edbus"
 LICENSE = "MIT BSD"
 PV = "0.16.999.043+svnr${SRCREV}"
-PR = "r17"
+PR = "r18"
 
 inherit e update-alternatives
 
@@ -92,6 +92,8 @@ FILES_${PN} = "\
   ${datadir}/enlightenment/data/icons \
   ${datadir}/enlightenment/data/input_methods \
   ${datadir}/enlightenment/data/config/profile.cfg \
+  ${datadir}/enlightenment/AUTHORS \
+  ${datadir}/enlightenment/COPYING \
   ${sysconfdir} \
 "
 FILES_${PN}-config-default = "${datadir}/enlightenment/data/config/default"
--------
this will fix the scary output :) e's own fallbacks to the old-school "compiled
in path" saved it from ever breaking... hooray for multiple levels of
redundancy :) thanks for that catch!

> root at omap3evm:~# cat /usr/bin/enlightenment_start.oe
> #!/bin/sh
> 
> E_PROFILE=""
> if [ -r /etc/enlightenment/default_profile ]; then
>    . /etc/enlightenment/default_profile
> fi
> 
> renice -10 -p $$
> exec enlightenment_start $E_PROFILE
> 
> root at omap3evm:~# ls /etc/enlightenment/
> sysactions.conf
> root at omap3evm:~#
> 
> Do I need an extra package to get the default_profile?

hmm the above is a bit of legacy before e had proper default profile settings.
the default profile.. is "default" if its not set
there. /usr/share/enlightenment/data/config/profile.cfg contains it (eet -l to
list keys, eet -x config profile.cfg profile-name; cat profile-name  to extract
- u can insert with eet too).

i wouldn't recommend using the default_profile file thing. this is only here to
keep openmoko's previous setup happy. you can always change profiles on the fly
runtime and to go back to default is a few clicks away (default will always run
the install wizard as e comes out of the box). so yes - you need another package
to provide that default_profile, (which is just a test file that has "-profile
PROFILENAME" in it). once you have this you are stuck in that profile though -
no escape (without a restart of your x session entirely after
removing/changing the package).

> > - Full strace
> 
> http://dominion.thruhere.net/koen/OE/e17/e-strace.txt

stat64("/usr/share/eenlightenment/data/images/test.png", 0x398dca0) = -1 ENOENT
(No such file or directory)

aha! that's the one. that SHOULD be in the e-wm-images package missing!

opkg search /usr/share/enlightenment/data/images/test.png
e-wm-images - 0.16.999.043+svnr37468-r17.1
- /usr/share/enlightenment/data/images/test.png

(yes different svnrev - but that shouldn't make a difference - i'm just a little
head locally of my public patchset. i am sure stefan can confirm that test.png
is in the images package for the oe svnrev int he images he built)

> > - Full list of installed packages
> 
> http://dominion.thruhere.net/koen/OE/e17/e-installed-packages.txt
> 
> Thanks for looking into this, let me know if you need more info.

strange - all the libs and e-wm etc. seem to be in sync (except etk - but that
wont affect e). how it should be. odd that u have the tiff saver module and not
the loader!

> regards,
> 
> Koen
> 
> [1] modulo bugs due to not running image_post_process commands
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com





More information about the Openembedded-devel mailing list