[devel] "Символы" DBus (Was: [sisyphus] gnome свежий сизиф)

Mikhail Efremov sem at altlinux.ru
Tue Aug 18 19:43:22 MSD 2009


On Tue, 18 Aug 2009 13:34:29 +0400 Alexey Rusakov wrote:
> В Втр, 18/08/2009 в 13:22 +0400, Alexey Rusakov пишет:
> > В Втр, 18/08/2009 в 12:26 +0400, Anton Vinogradov пишет:
> > > Две очень неприятные проблеммы:
> > > 1. Вместо перзагрузки выкидывает в gdm
> Предположительно проблемы с gnome-session.
> 
> > > 2. Не дает сменить системное время через аплет часов,
> > > вываливаясь с ошибкой "Method "ShowDialog" with signature "su" on
> > > interface "org.gnome.PolicyKit.Manager" doesn't exist"
> Разъехались интерфейс, предоставляемый PolicyKit-gnome, и интерфейс,
> который от него ожидает gnome-panel и конкретно апплет часов...

Это выстрелил мой патч к PolicyKit-gnome.
Ситуация такая: PolicyKit-gnome пытается регистрировать один объект по
двум путям, "/org/gnome/PolicyKit/Manager" и "/". В dbus-glib 0.82
такое больше не позволяется:
    Also, warn and keep the first object path if the library user registers
    an object at two object paths (previously, this would fail silently, use
    the second object path, and leak memory).
(commit 6de1441865da2816c6bcd8cae842be93a8a96304)

Поэтому в PolicyKit-gnome была выкинута регистрация первого пути,
оставлен только второй, т.к. после обновления libdbus-glib по первому не
работал даже пример в самом PolicyKit-gnome. К тому же в коммите
утверждается, что раньше все равно использовался только второй путь.
На самом деле оно похоже все-таки как-то работало, со старым
libdbus-glib у меня получается использовать оба пути.
Получается, что одна часть софта использует первый путь, другая -
второй. При этом я подозреваю, что первый путь является тяжелым
наследием прошлого, как и сам ShowDialog:
  <!-- this interface is deprecated and will be removed in a future
release --> <interface name="org.gnome.PolicyKit.Manager">
    <method name="ShowDialog">

Надо либо приводить весь софт к одному знаменателю, т.е. использовать
какой-то один путь, либо откатывать libdbus-glib.

-- 
WBR, Mikhail Efremov


More information about the Devel mailing list