summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-04-12 01:28:47 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-04-12 01:28:47 +0100
commita4398117607f4f1fefec25d4043feaa9a918f225 (patch)
tree133fe837565ffe22a55ccd7eda5e5c1d73eca3de
parentea99386b335b20e7a0039d775f0f7fb37888f5dd (diff)
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
-rw-r--r--sys-boot/plymouth/files/plymouth-fix-window-size-with-multiple-heads.patch21
-rw-r--r--sys-boot/plymouth/files/plymouth-include-sysmacros.patch (renamed from sys-boot/plymouth/files/0.8.8-include-sysmacros.patch)0
-rw-r--r--sys-boot/plymouth/plymouth-0.8.8-r3.ebuild93
3 files changed, 114 insertions, 0 deletions
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/0.8.8-include-sysmacros.patch b/sys-boot/plymouth/files/plymouth-include-sysmacros.patch
index 7f39fa1a..7f39fa1a 100644
--- a/sys-boot/plymouth/files/0.8.8-include-sysmacros.patch
+++ b/sys-boot/plymouth/files/plymouth-include-sysmacros.patch
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
+}