Mass bug filing: use and misuse of dbus-launch (dbus-x11)
I'm about to do a mass-bug-filing against packages that mention
dbus-x11 in their dependencies, or dbus-launch in their code, asking
maintainers to adjust their dependencies to make dbus-x11 optional.
My goal is that users can install the major desktop tasks in stretch
(GNOME, KDE, etc.) with either one of dbus-user-session or dbus-x11,
defaulting to dbus-user-session for new installations.
A dd-list of packages likely to be affected (based on
<https://codesearch.debian.net/search?q=dbus-%28x11|launch%29>)
is attached. Some of these will be false positives that merely
mention dbus-launch in documentation or example code, like qt4-x11;
I'll filter those out when I categorise them by type of dbus-launch
use during bug filing.
I will be prioritizing key packages for my MBF, then fill in non-key
packages afterwards.
tl;dr version:
* Search this mail for "Recommendations" for what you should do if you
are a maintainer of one of several categories of package.
* I think we should default to dbus-user-session for stretch on Linux.
* dbus-launch (dbus-x11) without dbus-user-session should continue to
be supported, but should be a non-default configuration on Linux.
* On kFreeBSD and Hurd, dbus-launch is still the best we can do.
* Regression tests should use dbus-run-session, not dbus-launch,
on all kernels.
* Fallback plan: make it possible for early adopters to use
dbus-user-session instead of dbus-launch, but keep dbus-launch the
default for new installs even on Linux, and reconsider for stretch+1.
My proposed solutions will make it possible to move to this
fallback plan by modifying src:dbus and nothing else.
Background: ways you might get a session bus
============================================
As of current stable, the correct way to start a "production"
D-Bus session in Debian was for /etc/X11/Xsession.d to invoke
dbus-launch(1). This would result in a session bus (dbus-daemon) per
X11 display, and is set up by the dbus-x11 package. The dbus-daemon
terminates when the X11 display does.
dbus 1.10 in testing/unstable introduces a new way for systemd users
to get a D-Bus session bus per uid (the *user bus*), shared between
all parallel logins whether they are X11, Wayland, Mir, text or
non-interactive. This is not 100% compatible with traditional practice,
particularly if you have two or more parallel X11 logins with the same uid
(GNOME's gdm won't do that, but some other display managers do), which
is why it is "opt-in". In Debian, this is not done by default, but can be
activated by installing the dbus-user-session package. In this case the
dbus-daemon terminates when "systemd --user" does, which is when the uid
responsible for this dbus-daemon ends their last parallel login session.
Some desktop environment core components, such as GNOME's gnome-session,
will automatically start a session bus per login session using
dbus-launch if there is not already one available. I believe GNOME on
Wayland currently relies on this mechanism if dbus-user-session is not
installed. This session bus terminates when the X11 display does (in the
case of GNOME on Wayland, the X11 display is XWayland, and terminates
when gnome-shell does). Similarly, regression tests sometimes start a
fake X11 display (Xvfb) and run dbus-launch scoped to that X11 display.
Another possible way to get a session bus is to run dbus-run-session(1),
or run dbus-daemon directly (typically using its --print-address
option). This is frequently done by regression tests. In this case,
a dbus-daemon started by dbus-run-session is terminated when
dbus-run-session's child process terminates, and a directly-run
dbus-daemon must be killed by the test script at the appropriate time.
Finally, if you start a program that uses D-Bus with no session bus
running, and you have an X11 display, the D-Bus library (typically
libdbus or GLib's GDBus) will attempt "X11 autolaunching": the program
forks and execs dbus-launch in a special "autolaunching" mode, and the
various dbus-launch processes that were started in this way attempt to
acquire a hidden X11 resource. Whichever dbus-launch process happens to
get there first forks and execs the dbus-daemon for this X11 session,
then continues to run to supervise it; the other dbus-launch processes
just report its address back to their parents and then terminate.
This mode is discouraged, and not particularly reliable: it has
a tendency to start the dbus-daemon in a somewhat precarious situation,
as a child of some random GUI app with arbitrary environment variables,
resource limits, std{in,out,err} fds and so on.
Autolaunching can also get used if you run a graphical program under
su/sudo with access to your X11 display (but seriously, don't do that).
X11 autolaunching may have been important 10 years ago, when people
installed D-Bus into distributions that didn't otherwise integrate it,
and used it to run individual GNOME or KDE apps inside a fvwm session
or something. However, in 2016 and in a well-integrated distribution
like Debian, I would be inclined to treat any use of X11 autolaunching
as a bug.
Why should we prefer dbus-user-session?
=======================================
* If a GUI login session is running (for example you are logged-in
to a GUI environment but the screen is locked), your cron jobs and ssh
sessions on the same machine can share the desktop's user-services like
dconf, Telepathy, fd.o Secrets (gnome-keyring/KWallet).
* It's a good fit for the design of user-services like dconf.
They can take a bus name on the user bus and be confident that
this acts as a mutex locking out other instances of the user service
on the same machine, avoiding "last write wins" data loss for all
configurations where $HOME is not shared between machines.
* It's also very suitable for taking per-user daemons that use D-Bus
and would more usually be run in a desktop login session (for example
exporting media to a UPnP receiver like a PS3 using Rygel, with Tracker
for indexing) and turning them into pseudo-system-services running as
a dedicated user: a systemd service with PAMName= and User= is enough
to get a systemd --user instance and an accompanying dbus-daemon for
that user, which is enough to support services like Rygel.
* dbus-daemon is not a fully-featured service manager: it can start
session services on-demand, but it doesn't support resource limiting,
disabling services, non-D-Bus services and so on (nor should it - that
isn't in its scope, and it doesn't have enough regular contributors
to be a good idea to expand its scope to something like that). The
user bus can use a fully-featured service manager, "systemd --user",
for service activation.
* As a systemd user service, the user bus is started in a known context
with predictable/controllable environment variables, resource limits and
so on.
* The traditional D-Bus session bus uses abstract Unix sockets on
Linux, to ensure automatic cleanup even if the dbus-daemon is terminated
uncleanly. These sockets are always shared with container-based
sandboxes, unless you start a new network namespace (which unshares
all abstract Unix sockets, and also IP networking). The user bus
uses a single filesystem-backed socket per uid, which is easy to
inspect with standard Unix tools ("everything is a file") and is more
container-friendly: it is not shared by default, but can be shared
with a simple bind mount.
* dbus-launch is fairly horrible code, complicated by the historical
need for it to support X11 autolaunching, so the D-Bus maintainers
would like to move it out of the critical path and minimize its use.
Why should dbus-user-session be optional?
=========================================
* The current implementation[1] requires systemd and systemd-logind.
This is not portable to non-Linux kernels, and upsets some Linux users.
[This is not set in stone; there's no reason why someone couldn't
write a PAM module that started a user bus, but the people doing the
work so far are happy with systemd taking responsibility for that.]
* Some desktop environments (including many configurations of "build
your own desktop environment from pieces") do support multiple
parallel X11 sessions per uid per machine. In these setups, the
user bus breaks the expectations of software that assumes it can run
once per X11 session, in parallel, and take the same bus name on the
session bus corresponding to each X11 session (for example
gnome-settings-daemon has this behaviour).
[It is possible to use a bus name like com.example.MyService.X0
if you want a bus name per X11 display, although this would require
coordinated code changes in the service and its consumers.]
* The per-X11-session bus would disconnect all background services
(or at least those that happen to use D-Bus) on each X11 logout;
well-behaved D-Bus services respond to this by terminating. The user
bus isn't normally terminated until all processes in the login session
have exited, which can result in background services lingering
(more precisely, if a login-session process lingers, then the
dbus-daemon and other non-GUI processes will too).
[If this is important to you, for example in a university computer lab,
consider using systemd-logind's KillUserProcesses option, which is
the default upstream since 230 but not in Debian; it's more thorough,
and does not depend on the implementation detail of whether processes
happen to use D-Bus for IPC.]
Recommendations for libraries
=============================
This recommendation applies to library implementations of D-Bus such
as libdbus, GLib's GDBus, systemd's sd-bus, dbus-sharp and dbus-java,
when connecting to the standard session bus.
If the environment variable DBUS_SESSION_BUS_ADDRESS is set, libraries
must use that address when asked to connect to the session bus.
If DBUS_SESSION_BUS_ADDRESS is unset, but XDG_RUNTIME_DIR is set,
and $XDG_RUNTIME_DIR/bus is a socket owned by the correct uid,
libraries must use that socket (for instance by substituting the
XDG_RUNTIME_DIR, escaped as a D-Bus address component, into
"unix:path=${escaped_xdg_runtime_dir}/bus").
If neither of those is available, libraries may use X11 autolaunching
(the "autolaunch:" pseudo-transport) like libdbus and GDBus do, or
they may simply fail the connection attempt like sd-bus does. I
anticipate that for stretch+1 or stretch+2, we might want to recommend
that libraries like libdbus and GDBus should disable X11 autolaunching,
and fail to connect in the circumstances where they would have used it.
Recommendations for desktop sessions
====================================
This recommendation applies to desktop sessions like GNOME, and desktop
sessions' core infrastructure like gnome-session.
Desktop sessions that make use of D-Bus should depend on
Depends: default-dbus-session-bus | dbus-session-bus
If a desktop environment works better with the "user bus" (I anticipate
that GNOME might do this in stretch or stretch+1), it may indicate
that with:
Depends: dbus-user-session | dbus-session-bus
Recommends: dbus-user-session
If a desktop environment strictly depends on the "user bus", please talk
to dbus@packages.debian.org.
Desktop sessions may execute dbus-launch if they are started with
DBUS_SESSION_BUS_ADDRESS absent from the environment, and either
XDG_RUNTIME_DIR unset, or a socket named $XDG_RUNTIME_DIR/bus not existing
or owned by the wrong uid. This code path should not run in Debian X11
sessions or with dbus-user-session installed, but might be useful in
Wayland sessions with dbus-user-session not installed, or as part of
upstream support for distributions with less careful X11 integration
than Debian.
Recommendations for regression tests
====================================
This recommendation applies to packages that run tests at build time,
packages with autopkgtests, and all similar situations.
Regression tests should either use dbus-run-session, which is an "adverb"
command like sudo or fakeroot:
Depends: dbus (>= 1.8)
dbus-run-session -- make check
or if finer control is needed, start a dbus-daemon the hard way, something
like this:
Depends: dbus
#!/bin/sh
dbus-daemon --session --fork --print-address=4 --print-pid=5 4>address.tmp 5>pid.tmp
trap 'kill $(cat pid.tmp); rm -f address.tmp pid.tmp' EXIT
export DBUS_SESSION_BUS_ADDRESS="$(cat address.tmp)"
make check
If a special configuration file for the dbus-daemon is required, use
dbus-run-session --config=special.conf -- make check
or
dbus-daemon --config=special.conf --fork --print-address=4 ...
Recommendations for other software that relies on D-Bus
=======================================================
This recommendation applies to ordinary apps that rely on having a
session bus but are not a core part of a desktop environment, such as
the Empathy real-time communications client. These packages should rely
on the distribution and the desktop environment cooperating to ensure
that a session bus is provided.
A hard requirement for a session bus should be indicated like this:
Depends: default-dbus-session-bus | dbus-session-bus
A softer requirement can be indicated by a similar Recommends or Suggests.
These packages should not attempt to run dbus-launch or dbus-daemon,
except as a side-effect of using a library that supports X11
autolaunching - it is not their responsibility.
Discussion/contact
==================
Please discuss this MBF on debian-devel or by contacting
dbus@packages.debian.org.
[1] Please contact the D-Bus upstream mailing list if you are
interested in implementing a user bus without systemd. You will need
something resembling pam_xdg_support (which is what Ubuntu used
before they switched to systemd) to provide the XDG_RUNTIME_DIR,
plus some way to start the actual dbus-daemon, probably from the
same or a different PAM module. Note that since Ubuntu does not
use or maintain pam_xdg_support any more, you will likely need to
become its new upstream maintainer, or fork it as a basis for your
new PAM module.
Regards,
S
Adrien Grellier <perso@adrieng.fr>
calligra (U)
Alberto Garcia <berto@igalia.com>
vagalume
webkit2gtk (U)
webkitgtk (U)
Albin Tonnerre <lutin@debian.org>
e17 (U)
efl (U)
Alexander Zangerl <az@debian.org>
duplicity
Alexandre Viau <aviau@debian.org>
ring (U)
Alf Gaida <agaida@siduction.org>
lxqt-common (U)
pcmanfm-qt (U)
Andrea Veri <and@debian.org>
bamf (U)
Andreas Barth <aba@debian.org>
debian-policy (U)
Andreas Henriksson <andreas@fatal.se>
evince (U)
evolution-data-server (U)
gconf (U)
gcr (U)
gjs (U)
glib-networking (U)
glib2.0 (U)
gnome-photos (U)
gnome-power-manager (U)
gnome-session (U)
gnome-terminal (U)
gnome-vfs (U)
gtk+3.0 (U)
gvfs (U)
libsoup2.4 (U)
libunique (U)
pango1.0 (U)
pygobject (U)
totem (U)
vala (U)
Andreas Tille <tille@debian.org>
debian-edu (U)
Andrew Lee (李健秋) <ajqlee@debian.org>
debian-edu (U)
lxde-common (U)
lxdm (U)
lxqt-common (U)
lxsession (U)
pcmanfm-qt (U)
Andrew Shadura <andrewsh@debian.org>
libaudclient (U)
Andrew Starr-Bochicchio <asb@debian.org>
deluge (U)
notify-osd (U)
Andrey Rahmatullin <wrar@debian.org>
xboxdrv (U)
Andriy Grytsenko <andrej@rep.kiev.ua>
lxde-common (U)
lxdm (U)
lxsession (U)
Andriy Senkovych <jolly_roger@itblog.org.ua>
salt (U)
Anibal Monsalve Salazar <anibal@debian.org>
pcp (U)
Antonio Terceiro <terceiro@debian.org>
apprecommender (U)
ohai (U)
Arnaud Fontaine <arnau@debian.org>
awesome (U)
Aron Xu <aron@debian.org>
fcitx (U)
ibus (U)
Autopkgtest team <autopkgtest-devel@lists.alioth.debian.org>
autopkgtest
Axel Beckert <abe@debian.org>
xymon (U)
Ayman Negm <negm@debian.org>
highlight
Benjamin Drung <benjamin.drung@profitbricks.com>
salt (U)
Bilal Akhtar <bilalakhtar@ubuntu.com>
audacious (U)
Bill Allombert <ballombe@debian.org>
debian-policy (U)
Boris Pek <tehnick@debian.org>
kde-gtk-config (U)
Carsten Schoenert <c.schoenert@t-online.de>
icedove (U)
ChangZhuo Chen (陳昌倬) <czchen@debian.org>
lxqt-common (U)
pcmanfm-qt (U)
Chris Taylor <ctaylor@debian.org>
audacious (U)
audtty
Christian Perrier <bubulle@debian.org>
tasksel (U)
Christine Spang <christine@debian.org>
quodlibet (U)
Christoph Berg <myon@debian.org>
xymon
Christoph Goehre <chris@sigxcpu.org>
icedove
Christopher Knadle <Chris.Knadle@coredump.us>
mumble
Colin Watson <cjwatson@ubuntu.com>
xdeb (U)
Corentin Desfarges <corentin.desfarges.dev@gmail.com>
fw4spl (U)
Corentin LABBE <clabbe.montjoie@gmail.com>
yasat
Cream Packaging Team <pkg-cream-team@lists.alioth.debian.org>
python-cream
Cristian Greco <cristian@debian.org>
deluge
Cyril Lavier <cyril.lavier@davromaniak.eu>
audacious (U)
Cédric Boutillier <boutil@debian.org>
qtruby (U)
Dafydd Harries <daf@debian.org>
empathy (U)
Daniel Baumann <mail@daniel-baumann.ch>
open-infrastructure-system-config
Daniel Kahn Gillmor <dkg@fifthhorseman.net>
msva-perl
Daniel Schepler <schepler@debian.org>
killbots (U)
knetwalk (U)
libkdegames (U)
libkdegames-kde4 (U)
David Bremner <bremner@debian.org>
highlight (U)
David Michael Smith <sidicas2@gmail.com>
liferea
David Mohammed <foss.freedom@gmail.com>
budgie-desktop
David Palacio <dpalacio@orbitalibre.org>
qtruby (U)
David Suárez <david.sephirot@gmail.com>
collab-qa-tools
David Weinehall <tao@debian.org>
libbonobo (U)
Debian Accessibility Team <debian-accessibility@lists.debian.org>
emacspeak
qt-at-spi
Debian AppArmor Team <pkg-apparmor-team@lists.alioth.debian.org>
apparmor
Debian CD Group <debian-cd@lists.debian.org>
debian-cd
Debian Chromium Maintainers <pkg-chromium-maint@lists.alioth.debian.org>
chromium-browser
Debian Cinnamon Team <pkg-cinnamon-team@lists.alioth.debian.org>
cinnamon-screensaver
cinnamon-session
cjs
nemo
Debian CLI Libraries Team <pkg-cli-libs-team@lists.alioth.debian.org>
dbus-sharp
Debian Edu Developers <debian-edu@lists.debian.org>
debian-edu
Debian Edu Packaging Team <debian-edu-pkg-team@lists.alioth.debian.org>
italc
Debian Evolution Maintainers <pkg-evolution-maintainers@lists.alioth.debian.org>
evolution-data-server
Debian FreeIPA Team <pkg-freeipa-devel@lists.alioth.debian.org>
certmonger
oddjob
Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
xboxdrv
Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
deja-dup
epiphany-browser
evince
gconf (U)
gcr
gjs
glib-networking
glib2.0
gnome-keyring
gnome-keyring (U)
gnome-photos
gnome-power-manager
gnome-screensaver
gnome-session
gnome-terminal
gnome-vfs (U)
gtk+3.0
gvfs
libbonobo
libnotify
libsoup2.4
libunique
libunique3
pango1.0
pygobject
pygobject-2 (U)
totem
Debian Go Packaging Team <pkg-go-maintainers@lists.alioth.debian.org>
golang-github-coreos-go-systemd
Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>
taffybar
Debian Install System Team <debian-boot@lists.debian.org>
tasksel
Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
java-gnome
Debian KDE Extras Team <pkg-kde-extras@lists.alioth.debian.org>
kmplayer
krusader
quassel
strigi
Debian Libvirt Maintainers <pkg-libvirt-maintainers@lists.alioth.debian.org>
libguestfs
virt-manager
Debian LXDE Maintainers <lxde-debian@lists.lxde.org>
lxsession
Debian LXDE Maintainers <pkg-lxde-maintainers@lists.alioth.debian.org>
lxde-common
lxdm
Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
fw4spl
Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
audacious
libaudclient
Debian Multimedia Team <pkg-multimedia-maintainers@lists.alioth.debian.org>
sonic-pi
Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
marionnet
obus
Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
libdpkg-log-perl
libgnome2-gconf-perl
libgtk2-notify-perl
libgtk2-unique-perl
Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
e17
efl
Debian Policy List <debian-policy@lists.debian.org>
debian-policy
Debian Printing Team <debian-printing@lists.debian.org>
hplip
Debian Privacy Tools Maintainers <pkg-privacy-maintainers@lists.alioth.debian.org>
onioncircuits
Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
pyqt5
python-dbusmock
python-notify2
python-psutil (U)
python-qt4
python-secretstorage (U)
Debian QA Group <packages@qa.debian.org>
ekg2
ulatencyd
Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
calligra
kde4libs
qt4-x11
qtbase-opensource-src
qtlocation-opensource-src
qtruby
qtwebkit-opensource-src
Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
ohai
ruby-dbus
Debian Salt Team <pkg-salt-team@lists.alioth.debian.org>
salt
Debian SELinux maintainers <selinux-devel@lists.alioth.debian.org>
policycoreutils
sepolgen
Debian Sugar Team <pkg-sugar-devel@lists.alioth.debian.org>
sugar
sugar-toolkit
Debian Telepathy maintainers <pkg-telepathy-maintainers@lists.alioth.debian.org>
empathy
Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org>
ring
Debian WebKit Maintainers <pkg-webkit-maintainers@lists.alioth.debian.org>
webkit2gtk
webkitgtk
Debian X Strike Force <debian-x@lists.debian.org>
weston
xorg
Debian Xfce Maintainers <pkg-xfce-devel@lists.alioth.debian.org>
orage
thunar
xfce4-session
xfce4-terminal
xfconf
xfdesktop4
Debian/Kubuntu Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
akonadi
akonadi-calendar
akonadi-search
analitza
artikulate
baloo-kf5
bluez-qt
breeze-gtk
cantor
dolphin
frameworkintegration
gpgmepp
gwenview
jovie
juk
kaccounts-integration
kalarmcal
kate
kate4
kauth
kblog
kcalc
kcalcore
kcalutils
kconfig
kcontacts
kcrash
kdbusaddons
kde-baseapps
kde-cli-tools
kde-gtk-config
kde-runtime
kde4libs
kdebugsettings
kdeclarative
kdecoration
kdelibs4support
kdepim
kdepim-addons
kdepim-runtime
kemoticons
kf5-kdepim-apps-libs
kf5-kdepimlibs
kf5-messagelib
kfilemetadata-kf5
kguiaddons
kholidays
khotkeys
khtml
kiconthemes
kidentitymanagement
kig
killbots
kimageformats
kimap
kinit
kio
kitemmodels
kitemviews
kldap
kleopatra
klettres
kmailtransport
kmbox
kmime
kmix
knetwalk
knewstuff
knotifications
konsole
kontactinterface
kopete
kpeople
kpimtextedit
kplotting
kscd
kscreen
kscreenlocker
kservice
ksystemlog
ktexteditor
ktnef
kwayland
kwidgetsaddons
kwin
kwindowsystem
kxmlgui
libaccounts-glib
libaccounts-qt
libkcddb
libkdeedu
libkdegames
libkdegames-kde4
libkeduvocdocument
libkf5calendarsupport
libkf5eventviews
libkf5grantleetheme
libkf5gravatar
libkf5incidenceeditor
libkf5kdcraw
libkf5kdgantt2
libkf5kexiv2
libkf5kgeomap
libkf5ksieve
libkf5libkdepim
libkf5libkleo
libkf5mailcommon
libkf5mailimporter
libkf5pimcommon
libkomparediff2
libkscreen
libksysguard
marble
modemmanager-qt
networkmanager-qt
okteta
okular
parley
picmi
plasma-framework
plasma-integration
plasma-mediacenter
plasma-workspace
rocs
signond
solid
syndication
umbrello
Debian/Ubuntu Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
baloo
Diane Trout <diane@debian.org>
kde4libs (U)
libaccounts-glib (U)
libaccounts-qt (U)
signond (U)
Diane Trout <diane@ghic.org>
kaccounts-integration (U)
kemoticons (U)
Didier Raboud <odyx@debian.org>
hplip (U)
Didier Roche <didrocks@ubuntu.com>
bamf
Dmitry Shachnev <mitya57@debian.org>
gnome-keyring (U)
gnome-screensaver (U)
pyqt5 (U)
python-qt4 (U)
python-secretstorage
qtbase-opensource-src (U)
qtlocation-opensource-src (U)
qtwebkit-opensource-src (U)
Dmitry Smirnov <onlyjob@debian.org>
gitg
golang-github-coreos-go-systemd (U)
phantomjs
winswitch
xpra
Docker Packaging Team <docker-maint@lists.alioth.debian.org>
golang-dbus (U)
Emilio Pozuelo Monfort <pochu@debian.org>
empathy (U)
glib2.0 (U)
gnome-screensaver (U)
gnome-vfs (U)
gtk+3.0 (U)
libbonobo (U)
libnotify (U)
libsoup2.4 (U)
libunique (U)
libunique3 (U)
liferea (U)
pygobject-2 (U)
vala (U)
webkit2gtk (U)
webkitgtk (U)
weston (U)
Eshat Cakar <info@eshat.de>
jovie (U)
kcalc (U)
kde-baseapps (U)
kde-runtime (U)
kdepim (U)
kf5-kdepimlibs (U)
kig (U)
killbots (U)
klettres (U)
knetwalk (U)
kopete (U)
ksystemlog (U)
libkdegames (U)
libkdegames-kde4 (U)
okular (U)
parley (U)
rocs (U)
Fabio Fantoni <fantonifabio@tiscali.it>
cinnamon-screensaver (U)
cinnamon-session (U)
cjs (U)
nemo (U)
Fathi Boudra <fabo@debian.org>
akonadi (U)
kcalc (U)
kde-baseapps (U)
kde-runtime (U)
kde4libs (U)
kdepim (U)
kdepim-runtime (U)
kf5-kdepimlibs (U)
killbots (U)
kmplayer (U)
knetwalk (U)
kopete (U)
krusader (U)
ksystemlog (U)
libkdegames (U)
libkdegames-kde4 (U)
okteta (U)
strigi (U)
umbrello (U)
x11vnc
Felix Geyer <fgeyer@debian.org>
kscreen (U)
quassel (U)
Franklin G Mendoza <franklin.g.mendoza@gmail.com>
salt (U)
George Kiagiadakis <gkiagiad@csd.uoc.gr>
killbots (U)
knetwalk (U)
libkdegames (U)
libkdegames-kde4 (U)
George Kiagiadakis <kiagiadakis.george@gmail.com>
kcalc (U)
kde-baseapps (U)
kde-runtime (U)
kde4libs (U)
kdepim (U)
kdepim-runtime (U)
kf5-kdepimlibs (U)
kopete (U)
okteta (U)
umbrello (U)
Georges Khaznadar <georgesk@debian.org>
sonic-pi (U)
Giuseppe Iuculano <iuculano@debian.org>
chromium-browser (U)
gregor herrmann <gregoa@debian.org>
libdpkg-log-perl (U)
libgnome2-gconf-perl (U)
libgtk2-notify-perl (U)
libgtk2-unique-perl (U)
Guido Günther <agx@sigxcpu.org>
icedove (U)
libguestfs (U)
virt-manager (U)
Guillaume Mazoyer <respawneral@gmail.com>
java-gnome (U)
Gustavo Noronha Silva <kov@debian.org>
webkit2gtk (U)
webkitgtk (U)
Hanno Zulla <kontakt@hanno.de>
sonic-pi (U)
Helge Kreutzmann <debian@helgefjell.de>
goobox
Hilko Bengen <bengen@debian.org>
libguestfs (U)
Holger Levsen <holger@debian.org>
debian-edu (U)
Héctor Orón Martínez <zumbi@debian.org>
weston (U)
Iain Lane <laney@debian.org>
gjs (U)
glib-networking (U)
glib2.0 (U)
gvfs (U)
libsoup2.4 (U)
pango1.0 (U)
Iain R. Learmonth <irl@debian.org>
live-config (U)
Ian Jackson <ijackson@chiark.greenend.org.uk>
autopkgtest (U)
IME Packaging Team <pkg-ime-devel@lists.alioth.debian.org>
fcitx
ibus
intrigeri <intrigeri@debian.org>
apparmor (U)
Jakob Haufe <sur5r@sur5r.net>
minitube
Jan Lübbe <jluebbe@debian.org>
e17 (U)
Javi Merino <vicho@debian.org>
sonata (U)
Jeremy Bicha <jbicha@ubuntu.com>
gtk+3.0 (U)
Joe Healy <joehealy@gmail.com>
salt (U)
Johannes Schauer <josch@debian.org>
botch
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
atril (U)
mate-power-manager (U)
mate-screensaver (U)
mate-session-manager (U)
Jonas Smedegaard <dr@jones.dk>
fact++
konclude
pinot
sugar (U)
sugar-toolkit (U)
Jonathan Nieder <jrnieder@gmail.com>
debian-policy (U)
Jonathan Yu <jawnsy@cpan.org>
libgtk2-unique-perl (U)
Jonny Lamb <jonny@debian.org>
empathy (U)
Jordi Mallach <jordi@debian.org>
evolution-data-server (U)
gconf (U)
Jose Carlos Garcia Sogo <jsogo@debian.org>
deja-dup (U)
Joshua Timberman <joshua@opscode.com>
ohai (U)
Josselin Mouette <joss@debian.org>
evolution-data-server (U)
gconf
gnome-keyring
gnome-photos (U)
gnome-vfs
libbonobo (U)
libunique (U)
libunique3 (U)
pygobject
pygobject-2
José L. Redrejo Rodríguez <jredrejo@debian.org>
debian-edu (U)
Julian Andres Klode <jak@debian.org>
hplip (U)
software-properties
Julien Danjou <acid@debian.org>
awesome
Jörg Frings-Fürst <debian@jff-webhosting.net>
remmina
shotwell
simple-scan
Kees Cook <kees@debian.org>
apparmor (U)
Laurent Bigonville <bigon@debian.org>
deja-dup (U)
empathy (U)
epiphany-browser (U)
evince (U)
evolution-data-server (U)
gcr (U)
gnome-photos (U)
gnome-session (U)
libnotify (U)
totem (U)
Laurent Léonard <laurent@open-minds.org>
virt-manager (U)
Lionel Le Folgoc <mrpouit@gmail.com>
orage (U)
thunar (U)
xfce4-session (U)
xfce4-terminal (U)
xfconf (U)
xfdesktop4 (U)
Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
kde4libs (U)
kf5-kdepimlibs (U)
killbots (U)
knetwalk (U)
ksystemlog (U)
qt4-x11 (U)
qtbase-opensource-src (U)
qtlocation-opensource-src (U)
qtwebkit-opensource-src (U)
Live Systems Maintainers <debian-live@lists.debian.org>
live-config
Loic Minier <lool@dooz.org>
dbus (U)
dbus-python (U)
libbonobo (U)
vala (U)
xdeb (U)
Louis Bettens <louis@bettens.info>
taffybar (U)
Lucas Albuquerque Medeiros de Moura <lucas.moura128@gmail.com>
apprecommender
Lucas Nussbaum <lucas@debian.org>
collab-qa-tools (U)
marionnet (U)
Luke Faraone <lfaraone@debian.org>
rainbow
Luke Faraone <luke@faraone.cc>
sugar (U)
Luke Yelavich <luke.yelavich@canonical.com>
qt-at-spi (U)
LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org>
lxqt-common
pcmanfm-qt
Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
firefox
firefox-esr
Maintainers of Vala packages <pkg-vala-maintainers@lists.alioth.debian.org>
vala
Manoj Srivastava <srivasta@debian.org>
policycoreutils (U)
sepolgen (U)
Manu Mahajan <manu@codepencil.com>
java-gnome (U)
Marc-Andre Lureau <marcandre.lureau@gmail.com>
vala (U)
Margarita Manterola <marga@debian.org>
cinnamon-screensaver (U)
cinnamon-session (U)
cjs (U)
nemo (U)
Mark Purcell <msp@debian.org>
hplip (U)
kmplayer (U)
krusader (U)
strigi (U)
Martin Pitt <mpitt@debian.org>
autopkgtest (U)
libnotify (U)
libunique (U)
pygobject (U)
pygobject-2 (U)
python-dbusmock (U)
udisks2 (U)
Martin Wimpress <code@flexion.org>
atril (U)
MATE Packaging Team <pkg-mate-team@lists.alioth.debian.org>
atril
mate-power-manager
mate-screensaver
mate-session-manager
plank (U)
Matthias Klose <doko@ubuntu.com>
openjdk-8 (U)
Matthias Klumpp <mak@debian.org>
flatpak (U)
Maximiliano Curia <maxy@debian.org>
akonadi (U)
akonadi-calendar (U)
akonadi-search (U)
analitza (U)
artikulate (U)
baloo (U)
baloo-kf5 (U)
bluez-qt (U)
breeze-gtk (U)
calligra (U)
cantor (U)
cinnamon-screensaver (U)
cinnamon-session (U)
cjs (U)
dolphin (U)
frameworkintegration (U)
gpgmepp (U)
gwenview (U)
jovie (U)
juk (U)
kalarmcal (U)
kate (U)
kate4 (U)
kauth (U)
kblog (U)
kcalc (U)
kcalcore (U)
kcalutils (U)
kconfig (U)
kcontacts (U)
kcrash (U)
kdbusaddons (U)
kde-baseapps (U)
kde-cli-tools (U)
kde-gtk-config (U)
kde-runtime (U)
kde4libs (U)
kdebugsettings (U)
kdeclarative (U)
kdecoration (U)
kdelibs4support (U)
kdepim (U)
kdepim-addons (U)
kdepim-runtime (U)
kemoticons (U)
kf5-kdepim-apps-libs (U)
kf5-kdepimlibs (U)
kf5-messagelib (U)
kfilemetadata-kf5 (U)
kguiaddons (U)
kholidays (U)
khotkeys (U)
khtml (U)
kiconthemes (U)
kidentitymanagement (U)
kig (U)
killbots (U)
kimageformats (U)
kimap (U)
kinit (U)
kio (U)
kitemmodels (U)
kitemviews (U)
kldap (U)
kleopatra (U)
klettres (U)
kmailtransport (U)
kmbox (U)
kmime (U)
kmix (U)
knetwalk (U)
knewstuff (U)
knotifications (U)
konsole (U)
kontactinterface (U)
kopete (U)
kpeople (U)
kpimtextedit (U)
kplotting (U)
krusader (U)
kscd (U)
kscreen (U)
kscreenlocker (U)
kservice (U)
ksystemlog (U)
ktexteditor (U)
ktnef (U)
kwayland (U)
kwidgetsaddons (U)
kwin (U)
kwindowsystem (U)
kxmlgui (U)
libaccounts-glib (U)
libaccounts-qt (U)
libkcddb (U)
libkdeedu (U)
libkdegames (U)
libkdegames-kde4 (U)
libkeduvocdocument (U)
libkf5calendarsupport (U)
libkf5eventviews (U)
libkf5grantleetheme (U)
libkf5gravatar (U)
libkf5incidenceeditor (U)
libkf5kdcraw (U)
libkf5kdgantt2 (U)
libkf5kexiv2 (U)
libkf5kgeomap (U)
libkf5ksieve (U)
libkf5libkdepim (U)
libkf5libkleo (U)
libkf5mailcommon (U)
libkf5mailimporter (U)
libkf5pimcommon (U)
libkomparediff2 (U)
libkscreen (U)
libksysguard (U)
marble (U)
modemmanager-qt (U)
nemo (U)
networkmanager-qt (U)
okteta (U)
okular (U)
parley (U)
picmi (U)
plasma-framework (U)
plasma-integration (U)
plasma-mediacenter (U)
plasma-workspace (U)
qtruby (U)
rocs (U)
signond (U)
solid (U)
strigi (U)
syndication (U)
umbrello (U)
Micah Anderson <micah@debian.org>
msva-perl (U)
Michael Biebl <biebl@debian.org>
dbus (U)
dbus-glib (U)
deja-dup (U)
epiphany-browser (U)
evince (U)
evolution-data-server (U)
firewalld (U)
gconf (U)
gcr (U)
gjs (U)
glib-networking (U)
glib2.0 (U)
gnome-keyring (U)
gnome-photos (U)
gnome-power-manager (U)
gnome-screensaver (U)
gnome-session (U)
gnome-terminal (U)
gnome-vfs (U)
gtk+3.0 (U)
gvfs (U)
libmediaart
libnotify (U)
libsoup2.4 (U)
libunique (U)
libunique3 (U)
network-manager (U)
network-manager-applet (U)
pango1.0 (U)
pygobject (U)
totem (U)
udisks2 (U)
vala (U)
Michael Casadevall <mcasadevall@debian.org>
python-qt4 (U)
Michael Gilbert <mgilbert@debian.org>
chromium-browser (U)
Michael Meskes <meskes@debian.org>
kdepim (U)
qtruby (U)
Mike Gabriel <sunweaver@debian.org>
atril (U)
debian-edu (U)
italc (U)
mate-power-manager (U)
mate-screensaver (U)
mate-session-manager (U)
plank (U)
python-cream (U)
weston (U)
Mike Hommey <glandium@debian.org>
firefox (U)
firefox-esr (U)
Mirco Bauer <meebey@debian.org>
dbus-sharp (U)
Modestas Vainius <modax@debian.org>
akonadi (U)
jovie (U)
kate (U)
kate4 (U)
kcalc (U)
kde-baseapps (U)
kde-runtime (U)
kde4libs (U)
kdepim (U)
kdepim-runtime (U)
kf5-kdepimlibs (U)
killbots (U)
knetwalk (U)
konsole (U)
kopete (U)
ksystemlog (U)
libkdegames (U)
libkdegames-kde4 (U)
okteta (U)
umbrello (U)
Nathan Scott <nathans@debian.org>
pcp (U)
Nicolas Bonnefon <nicolas@bonnefon.org>
glogg
Nicolas Dandrimont <nicolas.dandrimont@crans.org>
obus (U)
Nicolas Dandrimont <olasd@debian.org>
marionnet (U)
Norbert Tretkowski <norbert@tretkowski.de>
gajim (U)
Oliver Sauder <os@esite.ch>
diodon
Ondřej Kuzník <ondra@mistotebe.net>
quodlibet
Onkar Shinde <onkarshinde@ubuntu.com>
java-gnome (U)
OpenJDK Team <openjdk@lists.launchpad.net>
openjdk-8
Osamu Aoki <osamu@debian.org>
ibus (U)
im-config
Otavio Salvador <otavio@debian.org>
tasksel (U)
Patrick Schoenfeld <schoenfeld@debian.org>
libdpkg-log-perl (U)
Patrick Winnertz <winnie@debian.org>
italc (U)
Paul Gevers <elbrus@debian.org>
emacspeak (U)
liferea (U)
Paul van Tilburg <paulvt@debian.org>
ruby-dbus (U)
PCP Development Team <pcp@oss.sgi.com>
pcp
Petr Baudis <pasky@ucw.cz>
mate-power-manager (U)
Petter Reinholdtsen <pere@debian.org>
debian-edu (U)
sonic-pi (U)
Pino Toscano <pino@debian.org>
juk (U)
kmix (U)
kscd (U)
libkcddb (U)
libkf5kexiv2 (U)
qt4-x11 (U)
qtbase-opensource-src (U)
rocs (U)
Praveen Arimbrathodiyil <pravi.a@gmail.com>
ohai (U)
Python Applications Packaging Team <python-apps-team@lists.alioth.debian.org>
sonata
Python Modules Packaging Team <python-modules-team@lists.alioth.debian.org>
python-cream (U)
Raphaël Hertzog <hertzog@debian.org>
debian-cd (U)
Raúl Sánchez Siles <rasasi78@gmail.com>
calligra (U)
Reiner Herrmann <reiner@reiner-h.de>
firejail
Riccardo Setti <giskard@debian.org>
empathy (U)
Richard Jones <rjones@redhat.com>
libguestfs (U)
Rico Tzschichholz <ricotz@ubuntu.com>
plank
Ritesh Raj Sarraf <rrs@debian.org>
systemtap
Rodolfo García Peñas (kix) <kix@debian.org>
wmauda
Rohan Garg <rohan@kde.org>
kscreen (U)
Rohan Garg <rohangarg@kubuntu.org>
baloo (U)
Russ Allbery <rra@debian.org>
debian-policy (U)
Russell Coker <russell@coker.com.au>
policycoreutils (U)
sepolgen (U)
Ryan Niebur <ryan@debian.org>
libgnome2-gconf-perl (U)
libgtk2-notify-perl (U)
libgtk2-unique-perl (U)
Sam Hartman <hartmans@debian.org>
moonshot-ui
Samuel Thibault <sthibault@debian.org>
qt-at-spi (U)
Sandro Tosi <morph@debian.org>
python-psutil
Santiago Garcia Mantinan <manty@debian.org>
debian-cd (U)
Santiago Ruano Rincón <santiago@debian.org>
sugar (U)
sugar-toolkit (U)
Sascha Steinbiss <satta@debian.org>
onioncircuits (U)
Scott Kitterman <scott@kitterman.com>
pyqt5 (U)
python-qt4 (U)
quassel (U)
Sebastian Dröge <slomo@debian.org>
dbus (U)
dbus-glib (U)
dbus-python (U)
libbonobo (U)
libunique (U)
libunique3 (U)
vala (U)
Sebastian Reichel <sre@debian.org>
vala (U)
Sebastien Delafond <seb@debian.org>
aptly
Sergey "Shnatsel" Davidoff <sergey@elementaryos.org>
plank (U)
Sergio Durigan Junior <sergiodj@sergiodj.net>
midori
Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
pcmanfm-qt (U)
Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
zeitgeist
Simon McVittie <smcv@debian.org>
dbus (U)
dbus-glib (U)
dbus-python (U)
flatpak (U)
Sjoerd Simons <sjoerd@debian.org>
dbus (U)
dbus-glib (U)
dbus-python (U)
empathy (U)
evolution-data-server (U)
gcr (U)
gnome-power-manager (U)
gnome-screensaver (U)
gnome-terminal (U)
network-manager (U)
pygobject (U)
pygobject-2 (U)
vala (U)
Stanislav Maslovski <stanislav.maslovski@gmail.com>
kbdd
Stefano Karapetsas <stefano@karapetsas.com>
atril (U)
mate-power-manager (U)
mate-screensaver (U)
mate-session-manager (U)
Stein Magnus Jodal <jodal@debian.org>
mopidy-dleyna
Steve Langasek <vorlon@debian.org>
xdeb (U)
Steve McIntyre <93sam@debian.org>
debian-cd (U)
Stéphane Glondu <glondu@debian.org>
obus (U)
Sune Vuorela <debian@pusling.com>
akonadi (U)
kdepim-runtime (U)
qt4-x11 (U)
Sune Vuorela <sune@debian.org>
analitza (U)
cantor (U)
gwenview (U)
jovie (U)
juk (U)
kate (U)
kate4 (U)
kcalc (U)
kde-baseapps (U)
kde-runtime (U)
kde4libs (U)
kdepim (U)
kf5-kdepimlibs (U)
kig (U)
killbots (U)
klettres (U)
knetwalk (U)
konsole (U)
kopete (U)
ksystemlog (U)
libkcddb (U)
libkdegames (U)
libkdegames-kde4 (U)
libkf5kdcraw (U)
libkf5kexiv2 (U)
marble (U)
okteta (U)
qt4-perl
qtbase-opensource-src (U)
qtruby (U)
umbrello (U)
Tanguy Ortolo <tanguy+debian@ortolo.eu>
gajim
TANIGUCHI Takaki <takaki@debian.org>
phantomjs (U)
The Ayatana Packagers <pkg-ayatana-devel@lists.alioth.debian.org>
notify-osd
Thomas Kluyver <thomas@kluyver.me.uk>
python-notify2 (U)
Thomas Mueller <thomas.mueller@tmit.eu>
quassel
quassel (U)
Thomas Perl <m@thp.io>
gpodder
Thomas Preud'homme <robotux@celest.fr>
gcp
Tianon Gravi <admwiggin@gmail.com>
golang-dbus
Tianon Gravi <tianon@debian.org>
golang-github-coreos-go-systemd (U)
Till Kamppeter <till.kamppeter@gmail.com>
hplip (U)
Timo Aaltonen <tjaalton@debian.org>
certmonger (U)
oddjob (U)
Timo Juhani Lindfors <timo.lindfors@iki.fi>
systemtap (U)
Timo Jyrinki <timo@debian.org>
qt4-x11 (U)
qtbase-opensource-src (U)
qtlocation-opensource-src (U)
qtwebkit-opensource-src (U)
Tino Mettler <tino+debian@tikei.de>
syncevolution
tony mancill <tmancill@debian.org>
gpodder (U)
Torsten Marek <shlomme@debian.org>
python-qt4 (U)
qtruby (U)
Tristan Seligmann <mithrandi@debian.org>
quodlibet (U)
Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
dbus
dbus-glib
dbus-python
firewalld
flatpak
network-manager
network-manager-applet
udisks2
Vangelis Mouhtsis <vangelis@gnugr.org>
atril (U)
mate-power-manager (U)
mate-screensaver (U)
mate-session-manager (U)
Vincent Bernat <bernat@debian.org>
snmpsim
systemtap (U)
Wolfgang Schweer <wschweer@arcor.de>
debian-edu (U)
Wolodja Wentland <debian@babilen5.org>
salt (U)
Wookey <wookey@debian.org>
xbuilder
xdeb
Yuan CHAO <yuanchao@gmail.com>
pcmanfm-qt (U)
YunQiang Su <wzssyqa@gmail.com>
fcitx (U)
Yves-Alexis Perez <corsac@debian.org>
orage (U)
thunar (U)
xfce4-session (U)
xfce4-terminal (U)
xfconf (U)
xfdesktop4 (U)
أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy@sabily.org>
xpra (U)
Reply to: