elementary + fedora: year 2017 in review
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 Pantheoncerbere
- the Pantheon session watchdogcontractor
- the sharing service for elementary applicationsgala
- the Pantheon window managerpantheon-agent-polkit
- the PolKit agent for Pantheonpantheon-greeter
- the Pantheon-styled LightDM greeterpantheon-session-settings
- downstream fork of GNOME and xsession settings files for Pantheonplank
- 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 updateraudience
- video playermaya-calendar
- calendarnoise
- music playerpantheon-calculator
- calculatorpantheon-files
- file browserpantheon-photos
- photo manager and viewerpantheon-terminal
- terminalscratch-text-editor
- text and code editorscreenshot-tool
- screenshot toolsnap-photobooth
- webcam applicationswitchboard
- 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 modulesgranite
- GTK+3 toolkit extensionsgsignond
- SSO management daemongsignond-extension-pantheon
-libsecret
extension forgsignond
gsignond-plugin-sasl
- SASL plugin forgsignond
gsignond-plugin-oauth
- OAuth plugin forgsignond
libgsignon-glib
- GLib bindings forgsignond
elementary artwork
elementary-icon-theme
- icon theme (was already available on fedora)elementary-theme
- GTK+ theme (“stylesheet”)impallari-raleway-fonts
- font used bypantheon-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.