From a4398117607f4f1fefec25d4043feaa9a918f225 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 12 Apr 2018 01:28:47 +0100 Subject: Plymouth "zooms" in on smaller displays when multiple displays are used, but the script splash plugin defines the window size as the smallest of the displays. When using a sprite as a background image, the wrong size is used which leaves large chunks of the screen unused. This patch uses the largest display as the window size, which allows it to be appopriately cropped on smaller displays. See : https://lists.freedesktop.org/archives/plymouth/2013-April/000724.html --- .../plymouth/files/0.8.8-include-sysmacros.patch | 11 --- ...mouth-fix-window-size-with-multiple-heads.patch | 21 +++++ .../files/plymouth-include-sysmacros.patch | 11 +++ sys-boot/plymouth/plymouth-0.8.8-r3.ebuild | 93 ++++++++++++++++++++++ 4 files changed, 125 insertions(+), 11 deletions(-) delete mode 100644 sys-boot/plymouth/files/0.8.8-include-sysmacros.patch create mode 100644 sys-boot/plymouth/files/plymouth-fix-window-size-with-multiple-heads.patch create mode 100644 sys-boot/plymouth/files/plymouth-include-sysmacros.patch create mode 100644 sys-boot/plymouth/plymouth-0.8.8-r3.ebuild diff --git a/sys-boot/plymouth/files/0.8.8-include-sysmacros.patch b/sys-boot/plymouth/files/0.8.8-include-sysmacros.patch deleted file mode 100644 index 7f39fa1a..00000000 --- a/sys-boot/plymouth/files/0.8.8-include-sysmacros.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Nur a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c ---- a/src/libply-splash-core/ply-terminal.c 2012-09-26 17:50:53.000000000 +0100 -+++ b/src/libply-splash-core/ply-terminal.c 2018-02-21 11:04:49.318694569 +0000 -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/sys-boot/plymouth/files/plymouth-fix-window-size-with-multiple-heads.patch b/sys-boot/plymouth/files/plymouth-fix-window-size-with-multiple-heads.patch new file mode 100644 index 00000000..53172d1a --- /dev/null +++ b/sys-boot/plymouth/files/plymouth-fix-window-size-with-multiple-heads.patch @@ -0,0 +1,21 @@ +diff -Nur a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c +--- a/src/plugins/splash/script/script-lib-sprite.c 2012-09-26 17:50:53.000000000 +0100 ++++ b/src/plugins/splash/script/script-lib-sprite.c 2018-04-12 01:20:25.782074829 +0100 +@@ -233,7 +233,7 @@ + if (width == 0) + width = ply_pixel_display_get_width (display->pixel_display); + else +- width = MIN (width, ply_pixel_display_get_width (display->pixel_display)); ++ width = MAX (width, ply_pixel_display_get_width (display->pixel_display)); + } + return script_return_obj (script_obj_new_number (width)); + } +@@ -273,7 +273,7 @@ + if (height == 0) + height = ply_pixel_display_get_height (display->pixel_display); + else +- height = MIN (height, ply_pixel_display_get_height (display->pixel_display)); ++ height = MAX (height, ply_pixel_display_get_height (display->pixel_display)); + } + return script_return_obj (script_obj_new_number (height)); + } diff --git a/sys-boot/plymouth/files/plymouth-include-sysmacros.patch b/sys-boot/plymouth/files/plymouth-include-sysmacros.patch new file mode 100644 index 00000000..7f39fa1a --- /dev/null +++ b/sys-boot/plymouth/files/plymouth-include-sysmacros.patch @@ -0,0 +1,11 @@ +diff -Nur a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c +--- a/src/libply-splash-core/ply-terminal.c 2012-09-26 17:50:53.000000000 +0100 ++++ b/src/libply-splash-core/ply-terminal.c 2018-02-21 11:04:49.318694569 +0000 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/sys-boot/plymouth/plymouth-0.8.8-r3.ebuild b/sys-boot/plymouth/plymouth-0.8.8-r3.ebuild new file mode 100644 index 00000000..ba650ee1 --- /dev/null +++ b/sys-boot/plymouth/plymouth-0.8.8-r3.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit autotools-utils readme.gentoo systemd toolchain-funcs + +DESCRIPTION="Graphical boot animation (splash) and logger" +HOMEPAGE="http://cgit.freedesktop.org/plymouth/" +SRC_URI="http://www.freedesktop.org/software/plymouth/releases/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE_VIDEO_CARDS="video_cards_intel video_cards_radeon" +IUSE="${IUSE_VIDEO_CARDS} debug gdm +gtk +libkms +pango static-libs" + +CDEPEND=" + >=media-libs/libpng-1.2.16 + gtk? ( + dev-libs/glib:2 + >=x11-libs/gtk+-2.12:2 ) + libkms? ( x11-libs/libdrm[libkms] ) + pango? ( >=x11-libs/pango-1.21 ) + video_cards_intel? ( x11-libs/libdrm[video_cards_intel] ) + video_cards_radeon? ( x11-libs/libdrm[video_cards_radeon] ) +" +DEPEND="${CDEPEND} + virtual/pkgconfig +" +# Block due bug #383067 +RDEPEND="${CDEPEND} + virtual/udev + x11-themes/redcore-artwork-core +" + +DOC_CONTENTS=" + Follow the following instructions to set up Plymouth:\n + http://dev.gentoo.org/~aidecoe/doc/en/plymouth.xml +" + +src_prepare() { + epatch "${FILESDIR}/${PN}-redcore-defaults.patch" + epatch "${FILESDIR}/${PN}-include-sysmacros.patch" + epatch "${FILESDIR}/${PN}-fix-window-size-with-multiple-heads.patch" + + sed -i 's:/bin/systemd-tty-ask-password-agent:/usr/bin/systemd-tty-ask-password-agent:g' \ + systemd-units/systemd-ask-password-plymouth.service.in || die \ + 'ask-password sed failed' + sed -i 's:/bin/udevadm:/usr/bin/udevadm:g' \ + systemd-units/plymouth-start.service.in || die 'udevadm sed failed' + autotools-utils_src_prepare +} + +src_configure() { + local myeconfargs=( + --with-system-root-install=no + --localstatedir=/var + --without-rhgb-compat-link + --disable-systemd-integration + $(use_enable debug tracing) + $(use_enable gtk gtk) + $(use_enable libkms) + $(use_enable pango) + $(use_enable gdm gdm-transition) + $(use_enable video_cards_intel libdrm_intel) + $(use_enable video_cards_radeon libdrm_radeon) + ) + autotools-utils_src_configure +} + +src_install() { + autotools-utils_src_install + + # Provided by redcore-artwork-core + rm "${D}/usr/share/plymouth/bizcom.png" + + # Install compatibility symlinks as some rdeps hardcode the paths + dosym /usr/bin/plymouth /bin/plymouth + dosym /usr/sbin/plymouth-set-default-theme /sbin/plymouth-set-default-theme + dosym /usr/sbin/plymouthd /sbin/plymouthd + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + if ! has_version "sys-kernel/dracut[dracut_modules_plymouth]" && ! has_version "sys-kernel/genkernel-next[plymouth]"; then + ewarn "If you want initramfs builder with plymouth support, please emerge" + ewarn "sys-kernel/dracut[dracut_modules_plymouth] or sys-kernel/genkernel-next[plymouth]." + fi +} -- cgit v1.2.3