I think the end of 2017 is a good time to review the status of elementary apps and the Pantheon DE on fedora, because I submitted the first package of an elementary project (granite) almost exactly one year ago.

During this year, I’ve packaged almost all elementary projects for fedora and almost all of them are available from the official fedora repositories (fedora 25+). I first published my weekly progress via a newsletter, however that didn’t work out as I hoped it would - so I started writing weekly progress reports on this blog instead (also including non-elementary news) under the tag weekly.

What’s working

Pantheon DE

All the Pantheon DE components are packaged for fedora and are in quite good shape on fedora 26+. This includes:

  • capnet-assist - the Captive Portal assistant for Pantheon
  • cerbere - the Pantheon session watchdog
  • contractor - the sharing service for elementary applications
  • gala - the Pantheon window manager
  • pantheon-agent-polkit - the PolKit agent for Pantheon
  • pantheon-greeter - the Pantheon-styled LightDM greeter
  • pantheon-session-settings - downstream fork of GNOME and xsession settings files for Pantheon
  • plank - the dock used by Pantheon (was already available on fedora)
  • wingpanel - top panel used by Pantheon, including the application launcher (slingshot) and all indicators

Installing a Pantheon session on fedora 26+ is as easy as installing the pantheon-session-settings package, which in turn should pull in all other required components as (weak) dependencies. I am thinking about adding a Pantheon Desktop Environment comps group to fedora so it can be installed even easier (and more reliably).

However, I still recommend using the default Display Manager that your spin came with (GDM in case of fedora Workstation), since the Pantheon greeter for LightDM still is a bit buggy on fedora.

Also keep in mind that locking the session (initiating the screen saver / lock screen) doesn’t work yet for an unknown reason (independent from the DM in use). This issue has been tracked here, but there has only been little progress on determining the root cause of the problem.

elementary applications

All official elementary applications are packaged for fedora, and most are working flawlessly. These include:

  • appcenter - software center and updater
  • audience - video player
  • maya-calendar - calendar
  • noise - music player
  • pantheon-calculator - calculator
  • pantheon-files - file browser
  • pantheon-photos - photo manager and viewer
  • pantheon-terminal - terminal
  • scratch-text-editor - text and code editor
  • screenshot-tool - screenshot tool
  • snap-photobooth - webcam application
  • switchboard - settings hub, including most plugs

Some of those packages will probably be renamed in the near future, as the elementary project (finally!) decided to use a consistent naming scheme (io.elementary.APP) for their applications and projects. I have already renamed some of my packages in the elementary-nightly COPR repository.

Shared libraries and utilities

There are some shared libraries and utilities that are used by some elementary applications and Pantheon desktop components, first among them the granite library for GTK+3 extensions, and the gsignon framework for managing account Single-Sign-On (although it isn’t used outside the Online Accounts switchboard plug yet).

  • cmake-elementary - shared CMake modules
  • granite - GTK+3 toolkit extensions
  • gsignond - SSO management daemon
  • gsignond-extension-pantheon - libsecret extension for gsignond
  • gsignond-plugin-sasl - SASL plugin for gsignond
  • gsignond-plugin-oauth - OAuth plugin for gsignond
  • libgsignon-glib - GLib bindings for gsignond

elementary artwork

  • elementary-icon-theme - icon theme (was already available on fedora)
  • elementary-theme - GTK+ theme (“stylesheet”)
  • impallari-raleway-fonts - font used by pantheon-greeter
  • pandora-wallpapers - downstream fork of upstream elementaryOS wallpapers, only including Public Domain works

The elementary GTK+3 theme is being adapted to support the new theme engine introduced with GTK+ 3.20, and it already looks much better on fedora as a result.

Third-party, “made for elementary” applications

At the moment, only one of those is packaged for fedora - vocal, the podcast manager and player. I am currently looking at adding more packages to this list, because there’s some awesome “made for elementary” applications available (for examples, just look at this blog post).

What’s different

As already mentioned, two projects are maintained as downstream forks for various reasons.

Pantheon Session Settings

The upstream Pantheon session settings files would require a lot of permanent adaptation for differences between ubuntu- and fedora-based distributions - not even accounting for differences between different releases of fedora. For this reason, I decided to maintain a downstream fork (as close to upstream as possible) - with one maintained branch for every active release of fedora - instead of constantly rebasing patches on the upstream project.

elementary / pandora Wallpapers

The official upstream wallpapers used to include questionably-licensed artwork (which has been removed since), works in the Public Domain, and CC-licensed works. To be on the safe side of copyright, I decided to maintain a downstream fork (called pandora-wallpapers as in PANtheon and feDORA, pun absolutely intended) which only contains works that are in the Public Domain.

Since this has been cleared up recently, I plan to drop the fork soon, rename the package to elementary-wallpapers and ship the upstream wallpapers directly.

What’s broken

There are some elementary projects that are broken on fedora, for various reasons outlined below.

(Pantheon) Mail

pantheon-mail, the official e-mail application of the elementary project, doesn’t yet support webkit2gtk-4.0, and instead still depends on webkitgtk-3.0, which has been removed from fedora 27+ for security reasons. I have reported this issue here. Work to port it to the newer library was started, but seems to have stalled some months ago (according to the git branches).

Switchboard plugs

Date & Time plug

This plug doesn’t seem to work on fedora, probably because those settings are handled differently on ubuntu- and fedora-based systems.

Locale plug

This plug also doesn’t work correctly, for the same reason - locale settings seem to be handled differently on fedora. Additionally, it uses apt to install language packs - which is obviously not available on fedora. It will either have to support installing language packs via dnf too, or it has to be ported to a cross-platform solution (like PackageKit). This issue has been reported here.

Power plug

This plug depends on elementary-dpms-helper (a small helper script for handling a monitor’s DPMS settings), which in turn depends on a patched version of gnome-settings-daemon for actual functionality - which only older ubuntu releases shipped. I’ve reported this issue here and it has been migrated to GitHub here.

Additionally, the plug depends on the debian-specific laptop-detect to determine whether it is run on a mobile device. This bash script isn’t available on fedora. I’ve reported this issue and volunteered to write a replacement here.

Security & Privacy plug

This plug is only designed to interact with the default ubuntu firewall, ufw, and doesn’t support FirewallD, which is the default on fedora. A patch to port it to FirewallD for an older version of the plug is available, but has not been updated for the current state of the project yet. Additionally, this plug also depends on elementary-dpms-helper.

Sharing plug

This plug depends on an old version of gnome-user-share. The GSettings key that is referenced from the current code has been removed years ago, and the plug crashes because it’s missing on all current fedora releases. This issue has been reported here and has been migrated to GitHub here.

What’s missing

Some projects have not been submitted to the fedora repositories yet, because they either need further testing or are not yet working as advertised.

elementary DPMS helper

I’m not sure whether this actually should be packaged for fedora, since it’s functionality is very limited (the bash script is basically a no-op on fedora, and on recent ubuntu releases) - the only thing that it provides is the GSettings key the two switchboard plugs mentioned above depend on.

After asking an upstream developer about this, they weren’t sure themselves if they wanted to keep the project around for the next release of elementaryOS - so I’ll just wait and see what will happen to it.

Switchboard plugs

Parental Controls plug

This plug is - obviously - of a sensitive nature. As such, I don’t want to submit it to the fedora repositories before I know that it works as advertised.

User Accounts plug

A similar reasoning is behind the missing user accounts plug. I don’t want to submit software to fedora that has the potential to lock users out of their machines or render their data inaccessible due to faulty password and account handling.

TL;DR

The Pantheon desktop environment is complete and mostly functional on fedora, minus some daemon and lock screen issues.

Most elementary apps are working like a charm on fedora, and some more third-party “made for elementary” apps are also on their way.

The elementary artwork is packaged too, and the GTK+3 theme is making progress in supporting the more recent versions of GTK+3 found on fedora.

Some missing packages require patches or more serious testing. You can help with that! Just follow the links above.

Acknowledgements

I would like to thank all the fedora packagers who did package reviews for me (there were a lot of them), and of course the developers of the elementary project, who helped me with the issues I reported and with getting some of my own code contributions for cleanups, and fixing bugs and annoyances accepted upstream.