Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The PluginActivated DBus signal is no longer sent #418

Open
tari01 opened this issue Aug 23, 2024 · 8 comments
Open

The PluginActivated DBus signal is no longer sent #418

tari01 opened this issue Aug 23, 2024 · 8 comments

Comments

@tari01
Copy link

tari01 commented Aug 23, 2024

Expected behaviour

When I subscribe to org.mate.SettingsDaemon + /org/mate/SettingsDaemon + PluginActivated via DBus, I expect to receive a notification for each activated plugin.

Actual behaviour

As of version 1.27.1, the daemon no longer sends the PluginActivated signal

Steps to reproduce the behaviour

Launch the mate-settings-daemon and create a signal watcher for PluginActivated.
I have written a small Python test script to demonstrate this (works as expected on 1.27.0, does nothing on 1.28.0):

#!/usr/bin/env python3

from gi.repository import Gio
from gi.repository import GLib
import subprocess

pLoop = None

def onPluginActivated (pConnection, sSender, sPath, sInterface, sSignal, lParameters, pData):

    print (sInterface, sSignal, lParameters[0])

def onNameAppeared (pConnection, sName, sOwner):

    pConnection.signal_subscribe (None, "org.mate.SettingsDaemon", "PluginActivated", "/org/mate/SettingsDaemon", None, Gio.DBusSignalFlags.NONE, onPluginActivated, None)

if __name__ == '__main__':

    Gio.bus_watch_name (Gio.BusType.SESSION, "org.mate.SettingsDaemon", Gio.BusNameWatcherFlags.NONE, onNameAppeared, None)

    pSubprocess = subprocess.Popen (["/usr/lib/mate-settings-daemon/mate-settings-daemon", "--replace"])

    pLoop = GLib.MainLoop.new (None, True)
    pLoop.run ()

m-s-d-test.py.zip

MATE general version

1.28.0

Package version

1.28.0

Linux Distribution

Arch/Debian

@tari01
Copy link
Author

tari01 commented Aug 30, 2024

The cause of the issue seem to be the changes introduced in b99fca7 by @yetist. Even after going through the whole commit, I am not able to figure out why the daemon stopped sending signals...

@lukefromdc
Copy link
Member

lukefromdc commented Aug 30, 2024 via email

@joakim-tjernlund
Copy link

The cause of the issue seem to be the changes introduced in b99fca7 by @yetist. Even after going through the whole commit, I am not able to figure out why the daemon stopped sending signals...

Can you revert that commit locally and see if that fixes the problem?

@tari01
Copy link
Author

tari01 commented Nov 21, 2024

The cause of the issue seem to be the changes introduced in b99fca7 by @yetist. Even after going through the whole commit, I am not able to figure out why the daemon stopped sending signals...

Can you revert that commit locally and see if that fixes the problem?

Yes. I've been using my own build of mate-settings-daemon with that commit reverted since I reported this issue. It works properly as before. There are some build changes that also need to to be reverted for the build to succeed.

@joakim-tjernlund
Copy link

The cause of the issue seem to be the changes introduced in b99fca7 by @yetist. Even after going through the whole commit, I am not able to figure out why the daemon stopped sending signals...

Can you revert that commit locally and see if that fixes the problem?

Yes. I've been using my own build of mate-settings-daemon with that commit reverted since I reported this issue. It works properly as before. There are some build changes that also need to to be reverted for the build to succeed.

Then perhaps do a MR with that revert, if new stuff breaks and no one fixes it, then it has to go.

@lukefromdc
Copy link
Member

The worry is, will distros drop the old code? I don't have enough understanding of dbus to fix this and really can't maintain the whole DE solo, so this may take a while until other maintainers get back

@joakim-tjernlund
Copy link

The cause of the issue seem to be the changes introduced in b99fca7 by @yetist. Even after going through the whole commit, I am not able to figure out why the daemon stopped sending signals...

Can you revert that commit locally and see if that fixes the problem?

Yes. I've been using my own build of mate-settings-daemon with that commit reverted since I reported this issue. It works properly as before. There are some build changes that also need to to be reverted for the build to succeed.

I tried the same, revert just this commit(had to add -ldbus-1 too) but this completely lost track of monitor positions in mate-display-properties

I think there are more lost signals here, like when I power off an external display, MATE does not see this properly. If I bring up mate-display-properties and change something, then MATE notices that one monitor is gone.

@sunweaver
Copy link
Member

@joakim-tjernlund The step forward, i.e. dropping dbus-glib (deprecated upstream, Debian wants to phase it out), is the right way to go. The way forward here is to fix the GDBus implementation.

@tari01 Maybe in January you can spend some more time on this (@tari01 works in my company...).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants