Before we were using
/ply-boot-protocol\0\0\0\0...\0
for our address which really uglifies /proc/net/unix
and doesn't match what a lot of other programs do.
This commit changes the address to just
/org/freedesktop/plymouthd
which is much nicer.
The socket path is currently defined to be:
#define PLY_BOOT_PROTOCOL_SOCKET_PATH "\0/ply-boot-protocol"
The \0 is because it's an abstract socket, and abstract sockets
have a leading NUL. The code always ignores the NUL though and
adds it back later, so it's not needed.
This commit just drops it.
Right now plymouth listens on an abstract socket with a name
that has a bunch of trailing NUL bytes. These zeroes uglify
the output of /proc/net/unix among other things.
This commit adds support for a new "trimmed abstract" socket
type, which drops the zeroes.
A subsequent commit will actually change plymouthd to use the
new api.
The set-default-theme script was incorrectly redirecting
stderr from a grep command to /null instead of /dev/null.
This causes a /null file to get created on the filesystem.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=30576
Reported by: David LeBlanc <leblancdw@yahoo.com>
Right now if plymouthd dies while daemonizing, we show a horrible
error message on the console:
could not read byte from child: Success
This commit mops that up, so we give a little clue why plymouthd's
child process died in its infancy.
One of the big painpoints in plymouth distro integration
out which distro scripts are calling into plymouthd.
This commit makes plymouthd output that information whenever
there is a request from a connected client.
Open /proc/cmdline, not proc/cmdline. (Technically this doesn't matter
in the daemon, since it's already done chdir ("/"), but the client does
need this and it's clearer to have them match.)
Enables scripts to choose the font they want with a sixth argument to
Image.Text API:
new_image = Image.Text("Hello", 1, 1, 1, 1, "DejaVu Bold,Italic 18");
This commit adds most of the pieces in place to use libkms, a
library by Jakob Bornecrantz, that abstracts the drm drivers
behind a common api.
Right now, we only fallback to libkms if the existing
backends won't work for the configured hardware.
In theory, this will give us pretty boot in virtual
machines, since libkms has support for the vmwgfx drm driver.
Aside from vmwgfx, libkms also supports intel and nouveau right
now. When it supports radeon, too, I'll probably switch to
using libkms by default instead of as a fallback. Eventually,
I'd like to drop all the non-libkms backend bits and the whole
driver vtable abstraction thing from plymouth completely.
This commit is just a copy-and-paste of one of the existing
drm backend files, with changes made to accomodate the libkms
api. I haven't actually tested it, yet, so it will probably
need changes after I get a chance to do that.