walters at verbum.org
Fri May 7 17:37:20 UTC 2010
On Fri, May 7, 2010 at 1:17 PM, Toshio Kuratomi <a.badger at gmail.com> wrote:
> Running makefile-install-schema and makefile-uninstall-schema eventually
> calls do_sync() which was supposed to reread the schemas. That's currently
> calling gconf_engine_suggest_sync() in gconf.c and I'm not sure whether
> there's some logic in there that could cause it not to suggest syncing in
> our current setup.
I don't understand how this could ever work - GConf IPC happens in
terms of ORBit which is per-uid, so a bare --makefile-install-rule
might contact the GConf engine for uid 0 and ask it to reload, but
that's it. It would have to jump through hoops to contact the GConf
running as uid 500 or whatever, and I don't see those hoops being
Oh but...I see, it's a Fedora patch not in the upstream GConf code to
run killall. My bad looking at upstream gconf git. Sigh...
> So changing policy back to doing a killall -HUP in %posttrans should work.
> It would be nice to know what Fedora versions are affected by this and
> whether it will someday be fixed before updating the Guidelines, though.
So though this still leaves a window of up to 30 seconds where after
installing an application the schema will be invalid. Which seems
very likely what people are hitting.
I think ideally we'd have the RPM system detect a schema was installed
and do an immediate reload once post transaction, and nuke the 30
second timeout from gconf. That still leaves though the problem of
the massive copy&paste scriptlets; we could remove the killall from
--makefile-install-rule which would help.
More information about the devel