[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: announcements: Add GNOME post.
From: |
Ludovic Courtčs |
Subject: |
02/02: announcements: Add GNOME post. |
Date: |
Tue, 29 Mar 2016 13:31:20 +0000 |
civodul pushed a commit to branch master
in repository maintenance.
commit 984166211e937fbc517bc9d7723f9b946bc50584
Author: Ludovic Courtès <address@hidden>
Date: Tue Mar 29 15:30:40 2016 +0200
announcements: Add GNOME post.
---
doc/announcements/savannah/gnome.txt | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/doc/announcements/savannah/gnome.txt
b/doc/announcements/savannah/gnome.txt
new file mode 100644
index 0000000..7dae941
--- /dev/null
+++ b/doc/announcements/savannah/gnome.txt
@@ -0,0 +1,31 @@
+GNOME on GuixSD
+
+It’s a feature that many users were waiting for: proper
[https://www.gnome.org/ GNOME] support in GuixSD. Good news: the forthcoming
Guix and GuixSD release will give you exactly that! Don’t miss the obligatory
[https://www.gnu.org/software/guix/screenshots/0.9.1/gnome-totem-epiphany.png
screenshot]!
+
+You would think adding GNOME is routine distro work involving a lot of
packaging and bits of plumbing that’s already been done a hundred times, which
is probably true! Yet, adding GNOME support turned out to be interesting in
many ways: it’s a good test for GuixSD’s declarative operating system
configuration framework, it’s a way to formalize how this whole software stack
fits together, and it’s been an insightful journey into GNU/Linux desktop
plumbing!
+
+Of course, a lot of software needs to be packaged to begin with. This had
been on-going for some time, culminating with the addition of a
[https://www.gnu.org/software/guix/packages/#gnome gnome meta-package] thanks
to the hard work of ĺ®‹ć–‡ć¦ (Sou Bunnbu) and other hackers. On the way, we added
[https://lists.gnu.org/archive/html/guix-devel/2015-12/msg00173.html an
auto-updater for GNOME packages], because all these package recipes need love.
+
+The more interesting parts were system integration. Modern GNOME/Freedesktop
environments rely on a number of daemons, most of which talk over
[https://www.freedesktop.org/wiki/Software/dbus/ D-Bus], and extending each
other’s functionality: udev, udisks, upower, colord, geoclue, and polkit, to
name a few. Being able to _compose_ all these system services was one of the
driving use cases behind
[https://savannah.gnu.org/forum/forum.php?forum_id=8412 the design of GuixSD’s
new service c [...]
+
+Since GuixSD uses the [https://www.gnu.org/software/shepherd/ GNU Shepherd]
and not systemd as its init system, we needed a way to provide the
[https://freedesktop.org/wiki/Software/systemd/logind/ “logind”] functionality
that systemd implements, and which allows GNOME to know about
[https://www.freedesktop.org/wiki/Software/systemd/multiseat/ users, sessions,
and seats].
+
+So Andy Wingo courageously started by
[https://lists.gnu.org/archive/html/guix-devel/2015-04/msg00352.html
extracting] logind from systemd, leading to [https://github.com/wingo/elogind
“elogind”]. At this point, we had this daemon that could keep track of
logged-in users and active sessions, and which GNOME could talk to over D-Bus…
provided all the relevant [http://www.linux-pam.org/ PAM services] would use
the pam_elogind module so that elogind knows when a user logs in and out, as An
[...]
+
+This pam_elogind thing is a typical example of a cross-cutting concern: _if_
you use elogind, _then_ you want all the relevant login-related PAM services
(mingetty, the X login manager, commands such as su, the SSH daemon, etc.) to
use pam_elogind. To achieve that, we
[http://git.savannah.gnu.org/cgit/guix.git/commit/?id=12c00bca92e3eef2b86565924bbefc39397b5497
updated] our PAM service such that it could be
[https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00163.html extended]
w [...]
+
+At this point, the brave could start using GNOME on GuixSD but would soon
realize that, for example, the “power off” button wouldn’t have the desired
effect, or that changing a laptop’s backlight wouldn’t work because
[https://www.freedesktop.org/wiki/Software/polkit/ polkit], the daemon that
allows unprivileged users to perform privileged operations like that one, was
[https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01000.html missing
essential policy files].
+
+You would think you can finally change the brightness of your screen, but no!
Turns out that polkit would
[https://lists.gnu.org/archive/html/guix-devel/2016-02/msg01170.html refuse to
run gnome-setting-daemon’s backlight helper program] because
[https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00247.html elogind
happened to fail to map PIDs to sessions]. Whatever.
+
+Of course there were still a bunch of embarrassing glitches such as
[http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22666 GNOME suspending right
after it wakes up from suspend], failure to start in QEMU, or
[https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00690.html the lack
of GNOME’s favorite font]. Well, it seems that all these are gone now!
+
+GuixSD users can now enable GNOME by adding
[https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00639.html one line]
in their
[https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html
operating system configuration]. Overall, this has been a nice experience
involving a variety of areas.
+
+== About GNU Guix ==
+
+[http://www.gnu.org/software/guix GNU Guix] is a functional package manager
for the GNU system. The Guix System Distribution or GuixSD is an advanced
distribution of the GNU system that relies on GNU Guix and
[http://www.gnu.org/distros/free-system-distribution-guidelines.html respects
the user's freedom].
+
+In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. Guix uses low-level mechanisms from
the Nix package manager, except that packages are defined as native
[http://www.gnu.org/software/guile Guile] modules, using extensions to the
[http://schemers.org Scheme] language. GuixSD offers a declarative approach to
operating system configuration management, and is [...]
+
+GuixSD can be used on an i686 or x86_64 machine. It is also possible to use
Guix on top of an already installed GNU/Linux system, including on mips64el and
armv7.