Lucian Muresan [Tue, 1 Feb 2011 19:05:45 +0000 (14:05 -0500)]
drm: reduce minimum build requirements
This patch adds the respective configure options to make it possible to
disable libdrm_intel, libdrm_radeon, libdrm_nouveau, and libkms
independently from each other.
Martin Pitt [Fri, 14 Jan 2011 23:32:10 +0000 (18:32 -0500)]
pixel-buffer: Fix overflow in blend_two_pixel_values
It was using 16bit types to hold the intermiediate
results of the blend, but for high intensity,
low opacity input values it could need up to
17 bits to prevent overflow.
Andrey Borzenkov [Thu, 18 Nov 2010 18:35:11 +0000 (21:35 +0300)]
utils: if concrete/abstract socket selection
Commit 9de731ed29db4670c1641aedd945c56fd1a3feed caused
plymouth to erroneously drop the leading '\0' on the old
abstract socket making fallback socket support not work.
As result new clients (after update) can no longer communicate
with old running daemons (such as from the initrd).
This commit restores the leading '\0' for both
abstract sockets, trimmed and non-trimmed.
Ray Strode [Mon, 15 Nov 2010 18:56:01 +0000 (13:56 -0500)]
terminal: Don't set ISTRIP in terminal attributes
In certain error paths plymouth would erroneously set
ISTRIP on the terminal. This is bogus in the same way
the changes fixed by commit ea394383c54dda771dcf59e7ec11280fa945280b
were bogus.
Ray Strode [Wed, 13 Oct 2010 12:26:42 +0000 (08:26 -0400)]
populate-initrd: pre-expand logofile variable
The logofile by default is $datadir/plymouth.png
$datadir contains a reference to $datarootdir, so
we need to preexpand the variable in configure, for
the right value to get written to plymouth-populate-initrd.
populate-initrd: don't hardcode client and daemon path
When not installing in system root, the populate initrd script would not
install the client or daemon due to the paths being hardcoded.
Environmental variables are also now available to override the defaults.
The png_set_gray_1_2_4_to_8 function is deprecated and has been removed
from libpng14. Now png_set_expand_gray_1_2_4_to_8 is used instead which
is compatible with libpng-1.2.9 and greater.
Ray Strode [Wed, 6 Oct 2010 22:07:08 +0000 (18:07 -0400)]
branch-merge: clean up socket name
The plymouth client talks to the plymouth daemon via
an abstract socket. There aren't a lot of "rules" for
the name of the abstract socket, and so plymouth has just
used "/ply-boot-protocol" for the name. While this is
perfectly valid, a number programs (hal, udev, etc) use
the convention "/org/freedesktop/program".
"/org/freedesktop/plymouthd" is certainly much nicer than
"/ply-boot-protocol" so we're going to change to that, and
fall back to the old name for compatibility.
One other niggle is trailing zeros in the name. The socket
address is stored in a fixed size buffer. Traditionally,
programms would pass the size of the entire socket structure,
including the full size of the aaddress buffer to bind and
connect. This means that any NUL bytes in the address buffer
after the address become part of the address. This means users
looking at /proc/net/unix will see all the extra NUL bytes.
One trick that some programs employee to skirt around this problem,
is to pass only the size of the structure less the trailing
NUL bytes of the address buffer to bind and connected. While maybe
not 100% kosher, this works okay in practice.
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.
Ray Strode [Wed, 6 Oct 2010 21:43:50 +0000 (17:43 -0400)]
utils: add support for "trimmed abstract" sockets
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.
Colin Watson [Tue, 7 Sep 2010 14:18:52 +0000 (15:18 +0100)]
main: Open /proc/cmdline by absolute path
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.)
[script] Add font selection argument to text to image capability
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");
Ray Strode [Sun, 22 Aug 2010 21:13:45 +0000 (17:13 -0400)]
[drm] Add preliminary support for libkms
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.