Packaging issue: integrating our distros package manager to gnome-shell

I’m trying to integrate our distros (Manjaro) package manager pamac to gnome-shell in a way similar to how gnome-software integrates with it. That is, I want to have the same “Show details” option in shell app drawer that gnome-software has.

It seems that gnome-shell check if /usr/bin/gnome-software exists and is executable to determine if the “Show details” option is shown. Our pamac developer modified pamac to accept the same cli syntax as gnome-software, I copied the gnome-software desktop files and symlinked /usr/bin/gnome-software to /usr/bin/pamac-manager. “Show details” option becomes present, but doesn’t work. I can successfully run

 gnome-software --details firefox

And it opens Firefox in pamac. But when I click “Show details” in gnome shell, nothing happens.

Does anyone have any tips on how to proceed? Does gnome-shell make some kind of api call to gnome-software?

Xorg logs show nothing interesting. I also tried to watch journalctl /usr/bin/gnome-shell, but nothing was revealed. I would like to know what exactly gnome-shell is running when clicking “Show details”

It activates an action that Software exposes over D-Bus.

If it was running shell commands (rather than using the D-Bus API in GIO), it would look like this:

gdbus call --session --dest org.gnome.Software \
                        --object-path /org/gnome/Software \
                        --method org.gtk.Actions.Activate details '[<("firefox.desktop", "")>]' '{}'
1 Like

Thank you! This means that if we want to integrate pamac into gnome-shell, it is going to require a lot more refactoring than just accepting the same command line parameters.

Indeed.

I suspect you would be better off with a small downstream patch to gnome-shell. Just replace the calls here and here with whatever works best for your package manager.

1 Like

Thanks! I will consider it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.