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

Already on GitHub? Sign in to your account

Start porting cinnamon to use gdbus #1620

wants to merge 6 commits into


None yet
6 participants

leigh123linux commented Jan 18, 2013

gjs-1.35 doesn't support the old way.


Lusito commented Jan 18, 2013

seems you mixed in your pillow support commit into this pull request


Lusito commented Feb 13, 2013

I've just started porting my looking glass interface to gdbus and must say, it's hell converting the stuff.
It seems you need to know the dbus interface signatures in advance if you want to use it. With dbus-glib it could detect that from the dbus service.
Do you know if there is a way around it ? or at least a way to avoid writing the interface twice, maybe by exporting the xml into a file ?
gdbus documentation seems non-existent.


clefebvre commented Apr 12, 2013

It seems to work with Mint 13 and 14 so let's do it.

We should probably talk about this one on Monday to see how to best tackle this.

This impacts the following files in Cinnamon and probably 3rd party applets as well:

./files/usr/share/cinnamon/applets/power@cinnamon.org/applet.js:3:const DBus = imports.dbus;
./files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js:4:const DBus = imports.dbus;
./files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js:8:const DBus = imports.dbus;
./files/usr/share/cinnamon/applets/xrandr@cinnamon.org/applet.js:3:const DBus = imports.dbus;
./js/ui/automountManager.js:4:const DBus = imports.dbus;
./js/ui/scripting.js:3:const DBus = imports.dbus;
./js/ui/autorunManager.js:4:const DBus = imports.dbus;
./js/ui/magnifierDBus.js:3:const DBus = imports.dbus;
./js/ui/cinnamonDBus.js:3:const DBus = imports.dbus;
./js/ui/notificationDaemon.js:4:const DBus = imports.dbus;
./js/ui/calendar.js:3:const DBus = imports.dbus;
./js/ui/keyboard.js:5:const DBus = imports.dbus;
./js/ui/endSessionDialog.js:21:const DBus = imports.dbus;
./js/ui/main.js:4:const DBus = imports.dbus;
./js/ui/appletManager.js:10:const DBus = imports.dbus;
./js/misc/screenSaver.js:3:const DBus = imports.dbus;
./js/misc/modemManager.js:3:const DBus = imports.dbus;
./js/misc/gnomeSession.js:3:const DBus = imports.dbus;

Worst case scenario it's easy to revert the dbus deletion in gjs, but that'll be down to individual distros to patch, which isn't ideal.


City-busz commented Apr 13, 2013

Reverting the dbus deletion in gjs is not an option for Arch Linux, because we always ship vanilla packages. Cinnamon needs to be ported to GDBus ASAP, otherwise we will have to remove Cinnamon from our repositories in the next days, when gjs 1.36.0 moved to our stable repositories.

Many related patches can be found in gnome-shell source code:


clefebvre commented Apr 14, 2013

Your options are simple:

  • Do it (we'll merge it quickly)
  • Patch gjs (surely you didn't mean to say your users aren't as important as your policies or aversion to patches)
  • Delay your gjs upgrade and wait for someone else to do the job

I don't mean to be cheeky but you're telling us what you need "ASAP", and you don't offer any solution for it.

We're all busy and we all want this to be done eventually. You look like you care about providing Cinnamon to your users just as much as we care whether this happens right now or in 6 months time: not enough. If neither you or us are the driving force behind this and nobody steps up to fill your urgent need, it just won't happen. There's no need to wave the package removal scenario at us, ultimately we're talking about Arch users losing out. Surely that's more important than not patching gjs, or not making an effort to work on what's needed here.. the patches you mentioned.

There's a lot of Cinnamon devs out there and I'm sure you've plenty of resources as well. If somebody steps up to do the dirty work in time for that gjs upgrade you seem such in a hurry to apply, then great, I'll be responsive and merge it quickly.

I've merged a lot of 3.8 pulls already, I'm ready to merge more if more contributions come in. This one isn't complete yet.

I'm a little bit annoyed at the lack of compatibility coming from GNOME 3.8 and everyone assuming it's our responsibility to be compatible with it the minute it comes out when we're not set to use it for another 6 months.

Just to be clear here. Assuming someone forgot why they were paid for and prioritized this over their own agenda, you'd still be giving your users an unstable version of Cinnamon. If today Cinnamon 1.7.5 gets full 3.8 compatibility, you'll go ahead and provide 3.8 alongside with 1.7.5 instead of doing the right thing and waiting for 1.8 to provide both stable versions? The minute you upgrade GNOME and gjs, the minute you lose compatibility with Cinnamon 1.6.7. Whether Cinnamon "git-latest" has full 3.8 compatibility or not, if you care about your Cinnamon users your upgrade path should be from 1.6 to 1.8.

Now you can tell me I'm wrong, that Cinnamon doesn't really matter to you and that upgrading GNOME ASAP is way more important, and we'll then know where we stand. That can be explained more clearly than with vague "Cinnamon is 1 year late" statements (like in the case of Cinnarch), so that when Cinnamon is indeed pulled from the Arch repository, Arch users understand the reason why. That being: Your commitment being on upgrading important packages such as GNOME at the cost of delivering unstable snapshots or not delivering at all non-important packages such as Cinnamon.

There's a lack of commitment here, on both sides.

Thanks for your understanding and apologies for the tough talk. I hope you get what you want (full 3.8 compatibility in time for "ASAP"). I've no idea who's going to step up and do it though (although I'll prioritize its merging when it happens).


clefebvre commented Apr 14, 2013

Another quick point.

  • At the moment, 3.8 compatibility is not a requirement for Cinnamon 1.8.
  • Cinnamon 1.8 is planned for release around the end of April.
  • Our next meeting is this Monday at 6pm (London time) on #linuxmint-dev irc.spotchat.org
  • Distributors hoping to ship GNOME 3.8 and Cinnamon 1.8 are welcome to join in. We can talk about the state of Cinnamon 1.7 on top of 3.8, what's left to do, who really needs it and how to achieve it.

dalcde commented Apr 14, 2013

@clefebvre I can do the porting to gdbus. I'll cherry-pick leigh's commits and work on top of it. Shouldn't be a difficult job.


leigh123linux commented Apr 14, 2013


I believe most/all these changes for gjs are backwards compatible with 3.6 so I don't see any real issues merging them once ported.
I never expected you to make this a high priority task when I reported the issue and any help form you is gratefully received.
I'm not available for tomorrows meeting but am hoping to ship 1.7 when F19 is released in June/July.


dalcde commented Apr 14, 2013

Taking that back. Isn't as trivial as I thought. I'll still work on it but I cannot guarantee success.


clefebvre commented Apr 14, 2013

@Leigh: Thanks and thanks for starting the work on this. I tested your pull on both 3.4 and 3.6 (well.. their respective gjs versions). It works well on both. We'll have 1.8 for sure and we can make sure 3.8 compatibility is in in time for F19. The issue is more problematic for other distros so it's likely to be done way before that. If it isn't, we'll make sure it gets done by June/July and we can add it in a 1.8.x release.

@dalcde: Thanks for stepping up on this one.

May be it will be helpful. I tried to port Cinnamon on gdbus to work with Gnome 3.8. There are several commits



First commit contain patches from @leigh123linux. With this patches I was able to start Cinnamon but there are other problems described at #1788 . Patches primary based on patches from gnome-shell git. But note that I didn't have any experience with gdbus(and dbus) before so there are can be bugs.


Lusito commented Apr 14, 2013

@clefebvre: It would avoid some merging conflicts if you merged #1649 before @dalcde starts porting cinnamonDBus.js


clefebvre commented Apr 14, 2013

Thanks @vovka-korovka.

@Lusito: Thanks, it's merged now.


clefebvre commented Apr 17, 2013

This pull is superseded by #1872

@clefebvre clefebvre closed this Apr 17, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment