Friday, August 26, 2016

GNOME Keysign - GSoC 2016 Final Report

Modernising GNOME-Keysign

As GSoC 2016 came to end,  here's what happened to this project over the summer. I have created a separate 'gsoc' branch with details about the implementation [1]. There's also a readme file that shows a more detailed list with the tasks.

To summarize my work for this summer, here's what I've did:

  • I've re-created the GUI using Glade and Gtk Builder. This improves the user experience and makes the codebase more robust.
  • I've improved the app logic by adding states and transition phases that will give users more feedback about what happened. 
  • I've ported most of the functionality from the old app to the new one. The 'key download' and 'key sign' functionalities are still missing, but I'm hoping to have them added by the end of this week. 
  • Packaging the app. I've done this using the python setuptools module. It should take care of most of the dependencies, the problem is that some of them are not in the 'cheese shop' (like avahi and pygobject). 
  • Package the old app using flatpak. 

What will happen after GSoC

We want modularity between the widgets to be able to run each of them individually. Now that the GUI is constructed with Gtk.Builder, we can split the classes better, to follow a loose coupling design.

With the help of my mentor Tobias Mueller and flatpak people, we managed to have a flatpak bundle which anyone can install without caring too much of the dependencies [2]. After downloading the bundle , you can do `flatpak --user install --bundle` on that file and it will install it.

You can also copy the manifest file and the makefiles from here [3], and build the app them using:

flatpak-builder --force-clean -v --repo=/tmp/fb.repo /tmp/fpbuilder org.gnome.Keysign.json
flatpak remote-add --user gks /tmp/fb.repo
flatpak install --verbose --user gks org.gnome.Keysign

For me it remains to package the new app using flatpak, after I'm done adding the rest of the functionality.

This was GSoC 2016!  I was grateful to have a chance to work again on this project, and I hope people will be more interested about it. It's a nice tool to have when you're at some open source conference, after or before the conference you can exchange your OpenPGP keys with others in an easy and secure way.

Thanks for reading.