commit plymouth for openSUSE:Factory
Hello community, here is the log from the commit of package plymouth for openSUSE:Factory checked in at 2018-09-04 22:47:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plymouth (Old) and /work/SRC/openSUSE:Factory/.plymouth.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "plymouth" Tue Sep 4 22:47:18 2018 rev:61 rq:632215 version:0.9.3+git20180827.0a66272 Changes: -------- --- /work/SRC/openSUSE:Factory/plymouth/plymouth.changes 2018-08-07 10:50:33.352633699 +0200 +++ /work/SRC/openSUSE:Factory/.plymouth.new/plymouth.changes 2018-09-04 22:47:24.239197073 +0200 @@ -1,0 +2,39 @@ +Tue Aug 28 07:32:03 UTC 2018 - qzhao@suse.com + +- Update to version 0.9.3+git20180827.0a66272: + ensure tty is closed on deactivate + If plymouth doesn't get explicitly "activated" then when + GDM tries to deactivate it, the deactivation request is + a noop. + One aspect of being active, though is having ownership and + control of the terminal. This happens immediately, even + before a splash is shown. + The `deactivate` request needs to relinguish such control, + unconditionally, since some display server is about to use + the tty. +- Update patch name base on quilt standerd + Remove only_use_fb_for_cirrus_bochs.patch + Add plymouth-only_use_fb_for_cirrus_bochs.patch + Remove 0001-Some-greenish-openSUSE-colors.patch + Add plymouth-some-greenish-openSUSE-colors.patch + +------------------------------------------------------------------- +Fri Aug 17 17:36:09 UTC 2018 - bjorn.lie@gmail.com + +- Update to version 0.9.3+git20180807.7663b0c: + * systemd-units: Add "ConditionVirtualization=!container" + * README: add link to Code of Conduct + * two-step: add unhandled splash mode case to switch + * main: fix build + * Fix miscellaneous compiler warnings + * configure: Pass -Wno-cast-function-type if available + * main: Fix getting detailed logs from systemd + * main: Show details when ESC is pressed during splash_delay + * drm: Remove unnecessary reset_scan_out_buffer_if_needed() call + from ply_renderer_head_map() + * main: Only activate renderers if the splash uses pixel-displays +- Switch to new gitlab home in _service. +- Refresh patches with quilt. +- Use autosetup macro. + +------------------------------------------------------------------- Old: ---- 0001-Some-greenish-openSUSE-colors.patch only_use_fb_for_cirrus_bochs.patch plymouth-0.9.3+git20171220.6e9e95d.tar.xz New: ---- plymouth-0.9.3+git20180827.0a66272.tar.xz plymouth-only_use_fb_for_cirrus_bochs.patch plymouth-some-greenish-openSUSE-colors.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plymouth.spec ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.807199028 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.811199042 +0200 @@ -22,43 +22,31 @@ %define plymouth_initrd_file /boot/initrd-plymouth.img Name: plymouth -Version: 0.9.3+git20171220.6e9e95d +Version: 0.9.3+git20180827.0a66272 Release: 0 Summary: Graphical Boot Animation and Logger -License: GPL-2.0+ +License: GPL-2.0-or-later Group: System/Base Url: http://www.freedesktop.org/wiki/Software/Plymouth Source0: %{name}-%{version}.tar.xz Source1: boot-duration -# PATCH-FIX-OPENSUSE plymouth-dracut-path.patch tittiatcoke@gmail.com -# -- prefix is /usr/sbin and /usr/bin -Patch9: plymouth-dracut-path.patch -# PATCH-FIX-OPENSUSE 0001-Some-greenish-openSUSE-colors.patch bnc#886148 fcrozat@suse.com -# -- to use suse colors in tribar. -Patch10: 0001-Some-greenish-openSUSE-colors.patch -# PATCH-FIX-OPENSUSE plymouth-correct-runtime-dir.patch tittiatcoke@gmail.com -# -- make sure the runtime directory is /run and not /var/run -Patch16: plymouth-correct-runtime-dir.patch -# PATCH-FIX-UPSTREAM plymouth-manpages.patch bnc#871419 idoenmez@suse.de -# -- Fix man page installation -Patch17: plymouth-manpages.patch -# PATCH-FIX-UPSTREAM plymouth-ignore-cirrusdrm.patch bnc#888590 fcrozat@suse.com -# -- ignore cirrusdrm, use fb instead -# Patch26: plymouth-ignore-cirrusdrm.patch -# PATCH-FIX-OPENSUSE only_use_fb_for_cirrus_bochs.patch bnc#888590 fvogt@suse.com -# -- force fb for cirrus and bochs, force drm otherwise. replace removal of framebuffer -# -- driver and plymouth-ignore-cirrusdrm.patch with single patch. -Patch26: only_use_fb_for_cirrus_bochs.patch -# PATCH-FIX-UPSTREAM -# 0001-Add-label-ft-plugin.patch -# 0002-Install-label-ft-plugin-into-initrd-if-available.patch -# 0003-fix_null_deref.patch -# boo#959986 fvogt@suse.com -# -- add ability to output text in initrd needed for encryption. -Patch30: 0001-Add-label-ft-plugin.patch -Patch31: 0002-Install-label-ft-plugin-into-initrd-if-available.patch -Patch32: 0003-fix_null_deref.patch +# PATCH-FIX-OPENSUSE plymouth-dracut-path.patch tittiatcoke@gmail.com -- Prefix is /usr/sbin and /usr/bin +Patch0: plymouth-dracut-path.patch +# PATCH-FIX-OPENSUSE plymouth-some-greenish-openSUSE-colors.patch bnc#886148 fcrozat@suse.com -- To use suse colors in tribar. +Patch1: plymouth-some-greenish-openSUSE-colors.patch +# PATCH-FIX-OPENSUSE plymouth-correct-runtime-dir.patch tittiatcoke@gmail.com -- Make sure the runtime directory is /run and not /var/run +Patch2: plymouth-correct-runtime-dir.patch +# PATCH-FIX-UPSTREAM plymouth-manpages.patch bnc#871419 idoenmez@suse.de -- Fix man page installation +Patch3: plymouth-manpages.patch +# PATCH-FIX-OPENSUSE plymouth-only_use_fb_for_cirrus_bochs.patch bnc#888590 fvogt@suse.com -- force fb for cirrus and bochs, force drm otherwise. replace removal of framebuffer driver and plymouth-ignore-cirrusdrm.patch with single patch. +Patch4: plymouth-only_use_fb_for_cirrus_bochs.patch +# PATCH-FIX-UPSTREAM 0001-Add-label-ft-plugin.patch boo#959986 fvogt@suse.com -- add ability to output text in initrd needed for encryption. +Patch5: 0001-Add-label-ft-plugin.patch +# PATCH-FIX-UPSTREAM 0002-Install-label-ft-plugin-into-initrd-if-available.patch boo#959986 fvogt@suse.com -- add ability to output text in initrd needed for encryption. +Patch6: 0002-Install-label-ft-plugin-into-initrd-if-available.patch +# PATCH-FIX-UPSTREAM 0003-fix_null_deref.patch boo#959986 fvogt@suse.com -- add ability to output text in initrd needed for encryption. +Patch7: 0003-fix_null_deref.patch BuildRequires: automake BuildRequires: docbook-xsl-stylesheets @@ -349,15 +337,7 @@ plugin. %prep -%setup -q -%patch9 -%patch10 -p1 -%patch16 -p1 -%patch17 -p1 -%patch26 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 +%autosetup -p1 # replace builddate with patch0date sed -i "s/__DATE__/\"$(stat -c %%y %{_sourcedir}/%{name}.changes)\"/" src/main.c ++++++ 0001-Add-label-ft-plugin.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.819199069 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.819199069 +0200 @@ -20,11 +20,11 @@ create mode 100644 src/plugins/controls/label-ft/Makefile.am create mode 100644 src/plugins/controls/label-ft/plugin.c -diff --git a/configure.ac b/configure.ac -index 445034d..13b8c3e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -60,6 +60,15 @@ if test x$enable_pango = xyes; then +Index: plymouth-0.9.3+git20180807.7663b0c/configure.ac +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/configure.ac 2018-08-17 19:58:07.106444425 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/configure.ac 2018-08-17 19:58:59.703026810 +0200 +@@ -69,6 +69,15 @@ if test x$enable_pango = xyes; then AC_SUBST(PANGO_LIBS) fi @@ -40,7 +40,7 @@ AC_ARG_ENABLE(gtk, AS_HELP_STRING([--enable-gtk],[enable building with gtk, disabled there is no x11 renderer]),enable_gtk=$enableval,enable_gtk=yes) AM_CONDITIONAL(ENABLE_GTK, [test "$enable_gtk" = yes]) -@@ -295,6 +304,7 @@ AC_CONFIG_FILES([Makefile +@@ -308,6 +317,7 @@ AC_CONFIG_FILES([Makefile src/plugins/splash/script/Makefile src/plugins/controls/Makefile src/plugins/controls/label/Makefile @@ -48,11 +48,11 @@ src/Makefile src/client/ply-boot-client.pc src/client/Makefile -diff --git a/src/libply-splash-graphics/ply-label.c b/src/libply-splash-graphics/ply-label.c -index ba1f7b1..7c65708 100644 ---- a/src/libply-splash-graphics/ply-label.c -+++ b/src/libply-splash-graphics/ply-label.c -@@ -96,8 +96,13 @@ ply_label_load_plugin (ply_label_t *label) +Index: plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-graphics/ply-label.c +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/src/libply-splash-graphics/ply-label.c 2018-08-07 17:41:15.000000000 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-graphics/ply-label.c 2018-08-17 19:58:59.703026810 +0200 +@@ -96,8 +96,13 @@ ply_label_load_plugin (ply_label_t *labe get_plugin_interface_function_t get_label_plugin_interface; @@ -66,10 +66,10 @@ if (label->module_handle == NULL) return false; -diff --git a/src/plugins/controls/Makefile.am b/src/plugins/controls/Makefile.am -index f1621f9..284b206 100644 ---- a/src/plugins/controls/Makefile.am -+++ b/src/plugins/controls/Makefile.am +Index: plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/Makefile.am +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/src/plugins/controls/Makefile.am 2018-08-07 17:41:15.000000000 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/Makefile.am 2018-08-17 19:58:59.703026810 +0200 @@ -1,4 +1,8 @@ +SUBDIRS = if ENABLE_PANGO @@ -80,11 +80,10 @@ +SUBDIRS += label-ft endif MAINTAINERCLEANFILES = Makefile.in -diff --git a/src/plugins/controls/label-ft/Makefile.am b/src/plugins/controls/label-ft/Makefile.am -new file mode 100644 -index 0000000..2ff864d ---- /dev/null -+++ b/src/plugins/controls/label-ft/Makefile.am +Index: plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/label-ft/Makefile.am +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/label-ft/Makefile.am 2018-08-17 19:58:59.703026810 +0200 @@ -0,0 +1,22 @@ +AM_CPPFLAGS = -I$(top_srcdir) \ + -I$(srcdir)/../../../libply \ @@ -108,11 +107,10 @@ +label_ft_la_SOURCES = $(srcdir)/plugin.c + +MAINTAINERCLEANFILES = Makefile.in -diff --git a/src/plugins/controls/label-ft/plugin.c b/src/plugins/controls/label-ft/plugin.c -new file mode 100644 -index 0000000..06fe73e ---- /dev/null -+++ b/src/plugins/controls/label-ft/plugin.c +Index: plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/label-ft/plugin.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ plymouth-0.9.3+git20180807.7663b0c/src/plugins/controls/label-ft/plugin.c 2018-08-17 19:58:59.703026810 +0200 @@ -0,0 +1,507 @@ +/* ply-label.c - label control + * @@ -621,6 +619,3 @@ +} + +/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ --- -2.7.0 - ++++++ 0002-Install-label-ft-plugin-into-initrd-if-available.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.827199097 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.827199097 +0200 @@ -10,11 +10,11 @@ scripts/plymouth-populate-initrd.in | 9 +++++++++ 1 file changed, 9 insertions(+) -diff --git a/scripts/plymouth-populate-initrd.in b/scripts/plymouth-populate-initrd.in -index 43c7f22..a109c59 100755 ---- a/scripts/plymouth-populate-initrd.in -+++ b/scripts/plymouth-populate-initrd.in -@@ -427,6 +427,15 @@ +Index: plymouth-0.9.3+git20180807.7663b0c/scripts/plymouth-populate-initrd.in +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/scripts/plymouth-populate-initrd.in 2018-08-17 19:57:27.334004329 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/scripts/plymouth-populate-initrd.in 2018-08-17 19:59:15.535202195 +0200 +@@ -427,6 +427,15 @@ if [ -d ${PLYMOUTH_DATADIR}/plymouth/the inst_recur "${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}" fi @@ -30,6 +30,3 @@ if [ -L ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth ]; then cp -a ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth $INITRDDIR${PLYMOUTH_DATADIR}/plymouth/themes fi --- -2.7.0 - ++++++ 0003-fix_null_deref.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.839199139 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.839199139 +0200 @@ -12,10 +12,10 @@ src/libply-splash-graphics/ply-label.c | 8 ++++++++ 1 file changed, 8 insertions(+) -Index: plymouth-0.9.2/src/libply-splash-graphics/ply-label.c +Index: plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-graphics/ply-label.c =================================================================== ---- plymouth-0.9.2.orig/src/libply-splash-graphics/ply-label.c -+++ plymouth-0.9.2/src/libply-splash-graphics/ply-label.c +--- plymouth-0.9.3+git20180807.7663b0c.orig/src/libply-splash-graphics/ply-label.c 2018-08-17 19:58:59.703026810 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-graphics/ply-label.c 2018-08-17 19:59:33.203397962 +0200 @@ -130,6 +130,15 @@ ply_label_load_plugin (ply_label_t *labe label->control = label->plugin_interface->create_control (); ++++++ _service ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.855199193 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.855199193 +0200 @@ -1,6 +1,6 @@ <services> <service mode="disabled" name="tar_scm"> - <param name="url">git://anongit.freedesktop.org/plymouth</param> + <param name="url">https://gitlab.freedesktop.org/plymouth/plymouth.git</param> <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="filename">plymouth</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:24.871199249 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:24.871199249 +0200 @@ -1,4 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">git://anongit.freedesktop.org/plymouth</param> - <param name="changesrevision">6e9e95dc0fe89a3c52f50e44ff0096a6e65e46a6</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">6e9e95dc0fe89a3c52f50e44ff0096a6e65e46a6</param></service><service name="tar_scm"> + <param name="url">https://gitlab.freedesktop.org/plymouth/plymouth.git</param> + <param name="changesrevision">9ed2a0c55be8ee9919953efbacedc079a7428358</param></service></servicedata> \ No newline at end of file ++++++ plymouth-0.9.3+git20171220.6e9e95d.tar.xz -> plymouth-0.9.3+git20180827.0a66272.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/.gitignore new/plymouth-0.9.3+git20180827.0a66272/.gitignore --- old/plymouth-0.9.3+git20171220.6e9e95d/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/.gitignore 2018-01-19 07:58:58.000000000 +0100 @@ -0,0 +1,45 @@ +Makefile.in +*.o +core.* +.libs/* +.deps/* +.libs +.deps +*.lo +.*.sw* +*.orig +*.rej +*~ +configure +config.h* +*-test +*.la +.gitignore +config.log +build-tools +config.status +libtool +autom4te.cache +Makefile +aclocal.m4 +*.tar.bz2 +*.patch +stamp-* +*.rpm +plymouth +plymouth-generate-initrd +plymouth-populate-initrd +plymouth-set-default-theme +plymouth-log-viewer +plymouth-upstart-bridge +plymouthd +*.pc +tags +*.bck +*.string +*.plymouth +*.script.h +*.service +*.path +docs/*.8 +docs/*.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/README new/plymouth-0.9.3+git20180827.0a66272/README --- old/plymouth-0.9.3+git20171220.6e9e95d/README 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/README 2018-08-22 09:08:15.000000000 +0200 @@ -41,3 +41,11 @@ Plymouth isn't done yet. It's still under active development, but is used in several popular distros already, including Fedora, Mandriva, Ubuntu and others. See the distributions page for more information. + +As with other projects hosted on freedesktop.org, Plymouth follows its +Code of Conduct, based on the Contributor Covenant. Please conduct +yourself in a respectful and civilized manner when using the above +mailing lists, bug trackers, etc: + + https://www.freedesktop.org/wiki/CodeOfConduct + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/configure.ac new/plymouth-0.9.3+git20180827.0a66272/configure.ac --- old/plymouth-0.9.3+git20171220.6e9e95d/configure.ac 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/configure.ac 2018-08-22 09:08:15.000000000 +0200 @@ -78,7 +78,7 @@ AC_SUBST(GTK_LIBS) fi -AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm-renderer],[enable building drm kms support]),enable_drm_renderer=$enableval,enable_drm_renderer=yes) +AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm],[enable building drm kms support]),enable_drm_renderer=$enableval,enable_drm_renderer=yes) AM_CONDITIONAL(ENABLE_DRM_RENDERER, [test "$enable_drm_renderer" = yes]) if test x$enable_drm_renderer = xyes; then @@ -227,6 +227,7 @@ -Wwrite-strings -Wnested-externs -Wpointer-arith \ -Wswitch-enum -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result \ + -Wno-cast-function-type \ -Wcast-align -Wsign-compare -Wp,-D_FORTIFY_SOURCE=2" elif test "$GCC" = "yes"; then AC_MSG_RESULT(no) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/docs/development.txt new/plymouth-0.9.3+git20180827.0a66272/docs/development.txt --- old/plymouth-0.9.3+git20171220.6e9e95d/docs/development.txt 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/docs/development.txt 2018-06-07 04:30:43.000000000 +0200 @@ -237,7 +237,7 @@ ├── libply-splash-core # splash plugin APIS ├── libply-splash-graphics # graphical splash plugin specific APIs ├── plugins # plugins as shared libraries - │ ├── controls # grapical widgets + │ ├── controls # graphical widgets │ │ └── label # text label for text output │ ├── renderers # the different graphical backends │ │ ├── drm @@ -294,7 +294,7 @@ when the handler is called. The +trigger_data+ argument transfers information from the code pulling the trigger. It can be thought of as a payload or result to be sent from the code pulling the trigger to -the code watching the trigger. The third argument, +trigger+, is the +the code watching the trigger. The third argument, +trigger+, is the trigger itself. It's passed as a convenience, so the same handler can be used for multiple triggers, and the handler can differentiate which trigger fired. @@ -307,7 +307,7 @@ daemon can't respond to the client until the user has typed the password. The code that handles communication with the client sets up a trigger that the keyboard reading code pulls when the user hits enter. When -that trigger fires, a function set up by the code that communcates +that trigger fires, a function set up by the code that communicates with the client is called and it can reply to the client with the password delivered from the keyboard reading code through the trigger. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/docs/plymouth1.xml new/plymouth-0.9.3+git20180827.0a66272/docs/plymouth1.xml --- old/plymouth-0.9.3+git20171220.6e9e95d/docs/plymouth1.xml 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/docs/plymouth1.xml 2018-06-07 04:30:43.000000000 +0200 @@ -298,7 +298,7 @@ <variablelist> <varlistentry> <term><option>--keys=STRING</option></term> - <listitem><para>Keys to remove sensitivitiy from</para></listitem> + <listitem><para>Keys to remove sensitivity from</para></listitem> </varlistentry> </variablelist> </listitem> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/docs/plymouthd.xml new/plymouth-0.9.3+git20180827.0a66272/docs/plymouthd.xml --- old/plymouth-0.9.3+git20171220.6e9e95d/docs/plymouthd.xml 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/docs/plymouthd.xml 2018-06-07 04:30:43.000000000 +0200 @@ -103,7 +103,7 @@ <varlistentry> <term><option>--tty=STRING</option></term> - <listitem><para>TTY to ues instead of default.</para></listitem> + <listitem><para>TTY to use instead of default.</para></listitem> </varlistentry> </variablelist> </refsect1> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/client/plymouth.c new/plymouth-0.9.3+git20180827.0a66272/src/client/plymouth.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/client/plymouth.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/client/plymouth.c 2018-06-07 04:30:43.000000000 +0200 @@ -897,7 +897,7 @@ "get-splash-plugin-path", "Get directory where splash plugins are installed", PLY_COMMAND_OPTION_TYPE_FLAG, "newroot", "Tell boot daemon that new root filesystem is mounted", PLY_COMMAND_OPTION_TYPE_STRING, "quit", "Tell boot daemon to quit", PLY_COMMAND_OPTION_TYPE_FLAG, - "ping", "Check of boot daemon is running", PLY_COMMAND_OPTION_TYPE_FLAG, + "ping", "Check if boot daemon is running", PLY_COMMAND_OPTION_TYPE_FLAG, "has-active-vt", "Check if boot daemon has an active vt", PLY_COMMAND_OPTION_TYPE_FLAG, "sysinit", "Tell boot daemon root filesystem is mounted read-write", PLY_COMMAND_OPTION_TYPE_FLAG, "show-splash", "Show splash screen", PLY_COMMAND_OPTION_TYPE_FLAG, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply/ply-logger.c new/plymouth-0.9.3+git20180827.0a66272/src/libply/ply-logger.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply/ply-logger.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply/ply-logger.c 2018-08-22 09:08:15.000000000 +0200 @@ -313,7 +313,6 @@ const char *filename) { int fd; - mode_t mode; assert (logger != NULL); assert (filename != NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply/ply-rectangle.c new/plymouth-0.9.3+git20180827.0a66272/src/libply/ply-rectangle.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply/ply-rectangle.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply/ply-rectangle.c 2018-08-22 09:08:15.000000000 +0200 @@ -129,6 +129,7 @@ case V_COLLISION_EXACT: return PLY_RECTANGLE_OVERLAP_EXACT_LEFT_EDGE; } + break; case H_COLLISION_RIGHT: switch (v_collision) { case V_COLLISION_NONE: @@ -144,6 +145,7 @@ case V_COLLISION_EXACT: return PLY_RECTANGLE_OVERLAP_EXACT_RIGHT_EDGE; } + break; case H_COLLISION_BOTH: switch (v_collision) { case V_COLLISION_NONE: @@ -159,6 +161,7 @@ case V_COLLISION_EXACT: return PLY_RECTANGLE_OVERLAP_ALL_EDGES; } + break; case H_COLLISION_CONTAINED: switch (v_collision) { case V_COLLISION_NONE: @@ -174,6 +177,7 @@ case V_COLLISION_EXACT: return PLY_RECTANGLE_OVERLAP_NO_EDGES; } + break; case H_COLLISION_EXACT: switch (v_collision) { case V_COLLISION_NONE: @@ -189,6 +193,7 @@ case V_COLLISION_EXACT: return PLY_RECTANGLE_OVERLAP_NO_EDGES; } + break; } return PLY_RECTANGLE_OVERLAP_NONE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-boot-splash.c new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-boot-splash.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-boot-splash.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-boot-splash.c 2018-08-22 09:08:15.000000000 +0200 @@ -695,4 +695,10 @@ splash->plugin_interface->become_idle (splash->plugin, splash->idle_trigger); } +bool +ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash) +{ + return splash->plugin_interface->add_pixel_display != NULL; +} + /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-boot-splash.h new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-boot-splash.h --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-boot-splash.h 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-boot-splash.h 2018-08-22 09:08:15.000000000 +0200 @@ -89,6 +89,7 @@ void ply_boot_splash_become_idle (ply_boot_splash_t *splash, ply_boot_splash_on_idle_handler_t idle_handler, void *user_data); +bool ply_boot_splash_uses_pixel_displays (ply_boot_splash_t *splash); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-device-manager.c new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-device-manager.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-device-manager.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-device-manager.c 2018-08-22 09:08:15.000000000 +0200 @@ -134,13 +134,13 @@ free_devices_from_device_path (ply_device_manager_t *manager, const char *device_path) { - char *key = NULL; - ply_renderer_t *renderer = NULL; + void *key = NULL; + void *renderer = NULL; ply_hashtable_lookup_full (manager->renderers, (void *) device_path, - (void **) &key, - (void **) &renderer); + &key, + &renderer); if (renderer == NULL) return; @@ -696,12 +696,12 @@ (void *) ply_renderer_get_device_name (renderer)); if (old_renderer != NULL) { - ply_trace ("ignoring device %s since it's alerady managed", + ply_trace ("ignoring device %s since it's already managed", ply_renderer_get_device_name (renderer)); ply_renderer_free (renderer); renderer = NULL; - return; + return true; } } } @@ -786,6 +786,15 @@ return false; } +static void +create_non_graphical_devices (ply_device_manager_t *manager) +{ + create_devices_for_terminal_and_renderer_type (manager, + NULL, + manager->local_console_terminal, + PLY_RENDERER_TYPE_NONE); +} + #ifdef HAVE_UDEV static void create_devices_from_udev (ply_device_manager_t *manager) @@ -801,10 +810,7 @@ return; ply_trace ("Creating non-graphical devices, since there's no suitable graphics hardware"); - create_devices_for_terminal_and_renderer_type (manager, - NULL, - manager->local_console_terminal, - PLY_RENDERER_TYPE_NONE); + create_non_graphical_devices (manager); } #endif @@ -845,6 +851,12 @@ if (done_with_initial_devices_setup) return; + if ((manager->flags & PLY_DEVICE_MANAGER_FLAGS_SKIP_RENDERERS)) { + ply_trace ("Creating non-graphical devices, since renderers are being explicitly skipped"); + create_non_graphical_devices (manager); + return; + } + if ((manager->flags & PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV)) { ply_trace ("udev support disabled, creating fallback devices"); create_fallback_devices (manager); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-device-manager.h new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-device-manager.h --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-device-manager.h 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-device-manager.h 2018-08-22 09:08:15.000000000 +0200 @@ -31,7 +31,8 @@ { PLY_DEVICE_MANAGER_FLAGS_NONE = 0, PLY_DEVICE_MANAGER_FLAGS_IGNORE_SERIAL_CONSOLES = 1 << 0, - PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV = 1 << 1 + PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV = 1 << 1, + PLY_DEVICE_MANAGER_FLAGS_SKIP_RENDERERS = 1 << 2 } ply_device_manager_flags_t; typedef struct _ply_device_manager ply_device_manager_t; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-pixel-buffer.c new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-pixel-buffer.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-pixel-buffer.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-pixel-buffer.c 2018-06-07 04:30:43.000000000 +0200 @@ -50,6 +50,8 @@ ply_region_t *updated_areas; /* in device pixels */ uint32_t is_opaque : 1; int device_scale; + + ply_pixel_buffer_rotation_t device_rotation; }; static inline void ply_pixel_buffer_blend_value_at_pixel (ply_pixel_buffer_t *buffer, @@ -153,6 +155,52 @@ return (alpha << 24) | (red << 16) | (green << 8) | blue; } +static inline void ply_pixel_buffer_set_pixel (ply_pixel_buffer_t *buffer, + int x, + int y, + uint32_t pixel_value) +{ + switch (buffer->device_rotation) { + case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT: + buffer->bytes[y * buffer->area.width + x] = pixel_value; + break; + case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN: + x = (buffer->area.width - 1) - x; + y = (buffer->area.height - 1) - y; + buffer->bytes[y * buffer->area.width + x] = pixel_value; + break; + case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE: + y = (buffer->area.height - 1) - y; + buffer->bytes[x * buffer->area.height + y] = pixel_value; + break; + case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE: + x = (buffer->area.width - 1) - x; + buffer->bytes[x * buffer->area.height + y] = pixel_value; + break; + } +} + +static inline uint32_t ply_pixel_buffer_get_pixel (ply_pixel_buffer_t *buffer, + int x, + int y) +{ + switch (buffer->device_rotation) { + case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT: + return buffer->bytes[y * buffer->area.width + x]; + case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN: + x = (buffer->area.width - 1) - x; + y = (buffer->area.height - 1) - y; + return buffer->bytes[y * buffer->area.width + x]; + case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE: + y = (buffer->area.height - 1) - y; + return buffer->bytes[x * buffer->area.height + y]; + case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE: + x = (buffer->area.width - 1) - x; + return buffer->bytes[x * buffer->area.height + y]; + } + return 0; +} + static inline void ply_pixel_buffer_blend_value_at_pixel (ply_pixel_buffer_t *buffer, int x, @@ -162,12 +210,12 @@ uint32_t old_pixel_value; if ((pixel_value >> 24) != 0xff) { - old_pixel_value = buffer->bytes[y * buffer->area.width + x]; + old_pixel_value = ply_pixel_buffer_get_pixel (buffer, x, y); pixel_value = blend_two_pixel_values (pixel_value, old_pixel_value); } - buffer->bytes[y * buffer->area.width + x] = pixel_value; + ply_pixel_buffer_set_pixel (buffer, x, y, pixel_value); } static void @@ -222,6 +270,35 @@ } } +static void ply_pixel_buffer_add_updated_area (ply_pixel_buffer_t *buffer, + ply_rectangle_t *area) +{ + ply_rectangle_t updated_area = *area; + + switch (buffer->device_rotation) { + case PLY_PIXEL_BUFFER_ROTATE_UPRIGHT: + break; + case PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN: + updated_area.x = buffer->area.width - area->width - area->x; + updated_area.y = buffer->area.height - area->height - area->y; + break; + case PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE: + updated_area.x = buffer->area.height - area->height - area->y; + updated_area.y = area->x; + updated_area.height = area->width; + updated_area.width = area->height; + break; + case PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE: + updated_area.x = area->y; + updated_area.y = buffer->area.width - area->width - area->x; + updated_area.height = area->width; + updated_area.width = area->height; + break; + } + + ply_region_add_rectangle (buffer->updated_areas, &updated_area); +} + static void ply_pixel_buffer_fill_area_with_pixel_value (ply_pixel_buffer_t *buffer, ply_rectangle_t *fill_area, @@ -251,7 +328,7 @@ } } - ply_region_add_rectangle (buffer->updated_areas, &cropped_area); + ply_pixel_buffer_add_updated_area (buffer, &cropped_area); } void @@ -282,8 +359,24 @@ ply_pixel_buffer_new (unsigned long width, unsigned long height) { + return ply_pixel_buffer_new_with_device_rotation ( + width, height, PLY_PIXEL_BUFFER_ROTATE_UPRIGHT); +} + +ply_pixel_buffer_t * +ply_pixel_buffer_new_with_device_rotation (unsigned long width, + unsigned long height, + ply_pixel_buffer_rotation_t device_rotation) +{ ply_pixel_buffer_t *buffer; + if (device_rotation == PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE || + device_rotation == PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE) { + unsigned long tmp = width; + width = height; + height = tmp; + } + buffer = calloc (1, sizeof(ply_pixel_buffer_t)); buffer->updated_areas = ply_region_new (); @@ -292,6 +385,7 @@ buffer->area.height = height; buffer->logical_area = buffer->area; buffer->device_scale = 1; + buffer->device_rotation = device_rotation; buffer->clip_areas = ply_list_new (); ply_pixel_buffer_push_clip_area (buffer, &buffer->area); @@ -447,7 +541,7 @@ for (y = buffer->area.y; y < buffer->area.y + buffer->area.height; y++) { if (cropped_area.y <= y && y < cropped_area.y + cropped_area.height) { - if (cropped_area.width < UNROLLED_PIXEL_COUNT) { + if (cropped_area.width < UNROLLED_PIXEL_COUNT || buffer->device_rotation) { for (x = cropped_area.x; x < cropped_area.x + cropped_area.width; x++) { pixel = 0xff000000; RANDOMIZE (noise); @@ -457,7 +551,7 @@ RANDOMIZE (noise); pixel |= (((blue + noise) & COLOR_MASK) >> BLUE_SHIFT); - buffer->bytes[y * buffer->area.width + x] = pixel; + ply_pixel_buffer_set_pixel (buffer, x, y, pixel); } } else { uint32_t shaded_set[UNROLLED_PIXEL_COUNT]; @@ -485,7 +579,7 @@ blue += blue_step; } - ply_region_add_rectangle (buffer->updated_areas, &cropped_area); + ply_pixel_buffer_add_updated_area (buffer, &cropped_area); } void @@ -671,7 +765,7 @@ } } - ply_region_add_rectangle (buffer->updated_areas, &cropped_area); + ply_pixel_buffer_add_updated_area (buffer, &cropped_area); } void @@ -756,7 +850,8 @@ /* Fast path to memcpy if we need no blending or scaling */ if (opacity == 1.0 && ply_pixel_buffer_is_opaque (source) && - canvas->device_scale == source->device_scale) { + canvas->device_scale == source->device_scale && + canvas->device_rotation == PLY_PIXEL_BUFFER_ROTATE_UPRIGHT) { ply_rectangle_t cropped_area; cropped_area.x = x_offset; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-pixel-buffer.h new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-pixel-buffer.h --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-pixel-buffer.h 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-pixel-buffer.h 2018-06-07 04:30:43.000000000 +0200 @@ -37,9 +37,21 @@ | ((uint8_t) (CLAMP (g * 255.0, 0.0, 255.0)) << 8) \ | ((uint8_t) (CLAMP (b * 255.0, 0.0, 255.0)))) +typedef enum +{ + PLY_PIXEL_BUFFER_ROTATE_UPRIGHT = 0, + PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN, + PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE, + PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE +} ply_pixel_buffer_rotation_t; + #ifndef PLY_HIDE_FUNCTION_DECLARATIONS ply_pixel_buffer_t *ply_pixel_buffer_new (unsigned long width, unsigned long height); +ply_pixel_buffer_t * +ply_pixel_buffer_new_with_device_rotation (unsigned long width, + unsigned long height, + ply_pixel_buffer_rotation_t device_rotation); void ply_pixel_buffer_free (ply_pixel_buffer_t *buffer); void ply_pixel_buffer_get_size (ply_pixel_buffer_t *buffer, ply_rectangle_t *size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-renderer.c new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-renderer.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/libply-splash-core/ply-renderer.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/libply-splash-core/ply-renderer.c 2018-08-22 09:08:15.000000000 +0200 @@ -314,7 +314,8 @@ { assert (renderer->plugin_interface != NULL); - return renderer->plugin_interface->deactivate (renderer->backend); + renderer->plugin_interface->deactivate (renderer->backend); + renderer->is_active = false; } bool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/main.c new/plymouth-0.9.3+git20180827.0a66272/src/main.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/main.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/main.c 2018-08-28 09:00:02.000000000 +0200 @@ -168,6 +168,7 @@ bool retain_splash, ply_trigger_t *quit_trigger); static bool sh_is_init (state_t *state); +static void cancel_pending_delayed_show (state_t *state); static ply_boot_splash_mode_t get_splash_mode_from_mode (ply_mode_t mode) @@ -361,6 +362,8 @@ { ply_boot_splash_t *splash; + cancel_pending_delayed_show (state); + if (state->boot_splash != NULL) return; @@ -851,6 +854,11 @@ ply_trace ("system now initialized, opening log"); state->system_initialized = true; +#ifdef PLY_ENABLE_SYSTEMD_INTEGRATION + if (state->is_attached) + tell_systemd_to_print_details (state); +#endif + prepare_logging (state); } @@ -902,7 +910,7 @@ { ply_trace ("checking if plymouth should show default splash"); - const char const *strings[] = { + const char * const strings[] = { "single", "1", "s", "S", "-S", NULL }; int i; @@ -1001,6 +1009,8 @@ (ply_event_loop_timeout_handler_t) show_splash, state); + /* Listen for ESC to show details */ + ply_device_manager_activate_keyboards (state->device_manager); return; } } @@ -1174,6 +1184,9 @@ static void hide_splash (state_t *state) { + if (state->boot_splash && ply_boot_splash_uses_pixel_displays (state->boot_splash)) + ply_device_manager_deactivate_renderers (state->device_manager); + state->is_shown = false; cancel_pending_delayed_show (state); @@ -1193,7 +1206,6 @@ state->showing_details = false; toggle_between_splash_and_details (state); - ply_device_manager_deactivate_renderers (state->device_manager); hide_splash (state); quit_splash (state); } @@ -1255,12 +1267,8 @@ } static void -deactivate_splash (state_t *state) +deactivate_console (state_t *state) { - assert (!state->is_inactive); - - ply_device_manager_deactivate_renderers (state->device_manager); - detach_from_running_session (state); if (state->local_console_terminal != NULL) { @@ -1274,6 +1282,18 @@ if (command_line_has_argument (state->kernel_command_line, "plymouth.debug")) ply_logger_close_file (ply_logger_get_error_default ()); +} + +static void +deactivate_splash (state_t *state) +{ + assert (!state->is_inactive); + + if (state->boot_splash && ply_boot_splash_uses_pixel_displays (state->boot_splash)) + ply_device_manager_deactivate_renderers (state->device_manager); + + deactivate_console (state); + state->is_inactive = true; ply_trigger_pull (state->deactivate_trigger, NULL); @@ -1291,7 +1311,6 @@ if (state->quit_trigger != NULL) { if (!state->should_retain_splash) { ply_trace ("hiding splash"); - ply_device_manager_deactivate_renderers (state->device_manager); hide_splash (state); } @@ -1310,6 +1329,7 @@ ply_trigger_t *deactivate_trigger) { if (state->is_inactive) { + deactivate_console (state); ply_trigger_pull (deactivate_trigger, NULL); return; } @@ -1359,7 +1379,8 @@ } ply_device_manager_activate_keyboards (state->device_manager); - ply_device_manager_activate_renderers (state->device_manager); + if (state->boot_splash && ply_boot_splash_uses_pixel_displays (state->boot_splash)) + ply_device_manager_activate_renderers (state->device_manager); state->is_inactive = false; @@ -1570,6 +1591,8 @@ bytes = ply_buffer_get_bytes (state->entry_buffer); size = ply_buffer_get_size (state->entry_buffer); + if (size == 0) + return; bytes_to_remove = MIN (size, PLY_UTF8_CHARACTER_SIZE_MAX); while ((previous_character_size = ply_utf8_character_get_size (bytes + size - bytes_to_remove, bytes_to_remove)) < bytes_to_remove) { @@ -1761,7 +1784,8 @@ return NULL; attach_splash_to_devices (state, splash); - ply_device_manager_activate_renderers (state->device_manager); + if (ply_boot_splash_uses_pixel_displays (splash)) + ply_device_manager_activate_renderers (state->device_manager); splash_mode = get_splash_mode_from_mode (state->mode); @@ -1772,11 +1796,6 @@ return NULL; } -#ifdef PLY_ENABLE_SYSTEMD_INTEGRATION - if (state->is_attached) - tell_systemd_to_print_details (state); -#endif - ply_device_manager_activate_keyboards (state->device_manager); return splash; @@ -1823,6 +1842,10 @@ return false; } +#ifdef PLY_ENABLE_SYSTEMD_INTEGRATION + tell_systemd_to_print_details (state); +#endif + state->is_redirected = should_be_redirected; state->is_attached = true; state->session = session; @@ -1839,6 +1862,10 @@ if (!state->is_attached) return; +#ifdef PLY_ENABLE_SYSTEMD_INTEGRATION + tell_systemd_to_stop_printing_details (state); +#endif + ply_trace ("detaching from terminal session"); ply_terminal_session_detach (state->session); state->is_redirected = false; @@ -2356,7 +2383,9 @@ device_manager_flags |= PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV; if (!plymouth_should_show_default_splash (&state)) { - /* don't bother listening for udev events if we're forcing details */ + /* don't bother listening for udev events or setting up a graphical renderer + * if we're forcing details */ + device_manager_flags |= PLY_DEVICE_MANAGER_FLAGS_SKIP_RENDERERS; device_manager_flags |= PLY_DEVICE_MANAGER_FLAGS_IGNORE_UDEV; /* don't ever delay showing the detailed splash */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/renderers/drm/plugin.c new/plymouth-0.9.3+git20180827.0a66272/src/plugins/renderers/drm/plugin.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/renderers/drm/plugin.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/plugins/renderers/drm/plugin.c 2018-08-22 09:08:15.000000000 +0200 @@ -43,6 +43,7 @@ #include <unistd.h> #include <drm.h> +#include <drm_mode.h> #include <xf86drm.h> #include <xf86drmMode.h> @@ -62,6 +63,11 @@ #define BYTES_PER_PIXEL (4) +/* For builds with libdrm < 2.4.89 */ +#ifndef DRM_MODE_ROTATE_0 +#define DRM_MODE_ROTATE_0 (1<<0) +#endif + struct _ply_renderer_head { ply_renderer_backend_t *backend; @@ -367,6 +373,53 @@ ply_renderer_buffer_free (backend, buffer); } +static int +connector_orientation_prop_to_rotation (drmModePropertyPtr prop, + int orientation) +{ + const char *name = prop->enums[orientation].name; + + if (strcmp (name, "Upside Down") == 0) + return PLY_PIXEL_BUFFER_ROTATE_UPSIDE_DOWN; + + if (strcmp (name, "Left Side Up") == 0) { + /* Left side up, rotate counter clockwise to correct */ + return PLY_PIXEL_BUFFER_ROTATE_COUNTER_CLOCKWISE; + } + + if (strcmp (name, "Right Side Up") == 0) { + /* Left side up, rotate clockwise to correct */ + return PLY_PIXEL_BUFFER_ROTATE_CLOCKWISE; + } + + return PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; +} + +static int +ply_renderer_connector_get_rotation (ply_renderer_backend_t *backend, + drmModeConnector *connector) +{ + drmModePropertyPtr prop; + int i, rotation; + + for (i = 0; i < connector->count_props; i++) { + prop = drmModeGetProperty (backend->device_fd, connector->props[i]); + if (!prop) + continue; + + if ((prop->flags & DRM_MODE_PROP_ENUM) && + strcmp (prop->name, "panel orientation") == 0) { + rotation = connector_orientation_prop_to_rotation (prop, connector->prop_values[i]); + drmModeFreeProperty (prop); + return rotation; + } + + drmModeFreeProperty (prop); + } + + return PLY_PIXEL_BUFFER_ROTATE_UPRIGHT; +} + static bool ply_renderer_head_add_connector (ply_renderer_head_t *head, drmModeConnector *connector, @@ -402,6 +455,7 @@ { ply_renderer_head_t *head; drmModeModeInfo *mode; + int rotation; head = calloc (1, sizeof(ply_renderer_head_t)); @@ -425,7 +479,8 @@ ply_renderer_head_add_connector (head, connector, connector_mode_index); assert (ply_array_get_size (head->connector_ids) > 0); - head->pixel_buffer = ply_pixel_buffer_new (head->area.width, head->area.height); + rotation = ply_renderer_connector_get_rotation (backend, connector); + head->pixel_buffer = ply_pixel_buffer_new_with_device_rotation (head->area.width, head->area.height, rotation); ply_pixel_buffer_set_device_scale (head->pixel_buffer, ply_get_device_scale (head->area.width, head->area.height, @@ -450,6 +505,85 @@ free (head); } +static void +ply_renderer_head_clear_plane_rotation (ply_renderer_backend_t *backend, + ply_renderer_head_t *head) +{ + drmModeObjectPropertiesPtr plane_props; + drmModePlaneResPtr plane_resources; + drmModePropertyPtr prop; + drmModePlanePtr plane; + uint64_t rotation; + uint32_t i, j; + int rotation_prop_id = -1; + int primary_id = -1; + int err; + + err = drmSetClientCap (backend->device_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); + if (err) + return; + + plane_resources = drmModeGetPlaneResources (backend->device_fd); + if (!plane_resources) + return; + + for (i = 0; i < plane_resources->count_planes; i++) { + plane = drmModeGetPlane (backend->device_fd, + plane_resources->planes[i]); + if (!plane) + continue; + + if (plane->crtc_id != head->controller_id) { + drmModeFreePlane (plane); + continue; + } + + plane_props = drmModeObjectGetProperties (backend->device_fd, + plane->plane_id, + DRM_MODE_OBJECT_PLANE); + + for (j = 0; plane_props && (j < plane_props->count_props); j++) { + prop = drmModeGetProperty (backend->device_fd, + plane_props->props[j]); + if (!prop) + continue; + + if (strcmp (prop->name, "type") == 0 && + plane_props->prop_values[j] == DRM_PLANE_TYPE_PRIMARY) { + primary_id = plane->plane_id; + } + + if (strcmp (prop->name, "rotation") == 0) { + rotation_prop_id = plane_props->props[j]; + rotation = plane_props->prop_values[j]; + } + + drmModeFreeProperty (prop); + } + + drmModeFreeObjectProperties (plane_props); + drmModeFreePlane (plane); + + if (primary_id != -1) + break; + + /* Not primary -> clear any found rotation property */ + rotation_prop_id = -1; + } + + if (primary_id != -1 && rotation_prop_id != -1 && rotation != DRM_MODE_ROTATE_0) { + err = drmModeObjectSetProperty (backend->device_fd, + primary_id, + DRM_MODE_OBJECT_PLANE, + rotation_prop_id, + DRM_MODE_ROTATE_0); + ply_trace ("Cleared rotation on primary plane %d result %d", + primary_id, err); + } + + drmModeFreePlaneResources (plane_resources); +} + static bool ply_renderer_head_set_scan_out_buffer (ply_renderer_backend_t *backend, ply_renderer_head_t *head, @@ -476,6 +610,7 @@ return false; } + ply_renderer_head_clear_plane_rotation (backend, head); return true; } @@ -483,8 +618,6 @@ ply_renderer_head_map (ply_renderer_backend_t *backend, ply_renderer_head_t *head) { - bool scan_out_set; - assert (backend != NULL); assert (backend->device_fd >= 0); assert (backend != NULL); @@ -511,13 +644,6 @@ */ ply_renderer_head_redraw (backend, head); - scan_out_set = reset_scan_out_buffer_if_needed (backend, head); - if (!scan_out_set && backend->is_active) { - destroy_output_buffer (backend, head->scan_out_buffer_id); - head->scan_out_buffer_id = 0; - return false; - } - return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/renderers/frame-buffer/plugin.c new/plymouth-0.9.3+git20180827.0a66272/src/plugins/renderers/frame-buffer/plugin.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/renderers/frame-buffer/plugin.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/plugins/renderers/frame-buffer/plugin.c 2018-08-22 09:08:15.000000000 +0200 @@ -392,9 +392,9 @@ backend->head.area.height = 0; } -static const char const *get_visual_name (int visual) +static const char *get_visual_name (int visual) { - static const char const *visuals[] = + static const char * const visuals[] = { [FB_VISUAL_MONO01] = "FB_VISUAL_MONO01", [FB_VISUAL_MONO10] = "FB_VISUAL_MONO10", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/splash/script/script-lib-sprite.c new/plymouth-0.9.3+git20180827.0a66272/src/plugins/splash/script/script-lib-sprite.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/splash/script/script-lib-sprite.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/plugins/splash/script/script-lib-sprite.c 2018-08-22 09:08:15.000000000 +0200 @@ -462,8 +462,8 @@ /* In that case only draw the background if the sprite doesn't * cover the complete area */ if (position_x > x || position_y > y || - (ply_pixel_buffer_get_width (sprite->image) + position_x) < (x + width) || - (ply_pixel_buffer_get_height (sprite->image) + position_y) < (y + height)) + ((int)ply_pixel_buffer_get_width (sprite->image) + position_x) < (x + width) || + ((int)ply_pixel_buffer_get_height (sprite->image) + position_y) < (y + height)) script_lib_draw_brackground (pixel_buffer, &clip_area, data); } else { script_lib_draw_brackground (pixel_buffer, &clip_area, data); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/splash/two-step/plugin.c new/plymouth-0.9.3+git20180827.0a66272/src/plugins/splash/two-step/plugin.c --- old/plymouth-0.9.3+git20171220.6e9e95d/src/plugins/splash/two-step/plugin.c 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/src/plugins/splash/two-step/plugin.c 2018-08-22 09:08:15.000000000 +0200 @@ -205,6 +205,10 @@ case PLY_BOOT_SPLASH_MODE_SHUTDOWN: animation_prefix = "shutdown-animation-"; break; + case PLY_BOOT_SPLASH_MODE_INVALID: + default: + ply_trace ("unexpected splash mode 0x%x\n", plugin->mode); + return; } ply_trace ("trying prefix: %s", animation_prefix); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-halt.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-halt.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-halt.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-halt.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -4,6 +4,7 @@ Before=systemd-halt.service DefaultDependencies=no ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container [Service] ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-kexec.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-kexec.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-kexec.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-kexec.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -4,6 +4,7 @@ Before=systemd-kexec.service DefaultDependencies=no ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container [Service] ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-poweroff.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-poweroff.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-poweroff.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-poweroff.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -4,6 +4,7 @@ Before=systemd-poweroff.service DefaultDependencies=no ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container [Service] ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-reboot.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-reboot.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-reboot.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-reboot.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -4,6 +4,7 @@ Before=systemd-reboot.service DefaultDependencies=no ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container [Service] ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-start.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-start.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/plymouth-start.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/plymouth-start.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -5,6 +5,7 @@ After=systemd-vconsole-setup.service systemd-udev-trigger.service systemd-udevd.service Before=systemd-ask-password-plymouth.service ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container [Service] ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=@plymouthruntimedir@/pid --attach-to-session diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/systemd-ask-password-plymouth.service.in new/plymouth-0.9.3+git20180827.0a66272/systemd-units/systemd-ask-password-plymouth.service.in --- old/plymouth-0.9.3+git20171220.6e9e95d/systemd-units/systemd-ask-password-plymouth.service.in 2017-12-20 16:51:10.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/systemd-units/systemd-ask-password-plymouth.service.in 2018-08-22 09:08:15.000000000 +0200 @@ -6,6 +6,7 @@ After=plymouth-start.service Before=shutdown.target ConditionKernelCommandLine=!plymouth.enable=0 +ConditionVirtualization=!container ConditionPathExists=/run/plymouth/pid [Service] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/themes/details/.gitignore new/plymouth-0.9.3+git20180827.0a66272/themes/details/.gitignore --- old/plymouth-0.9.3+git20171220.6e9e95d/themes/details/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/themes/details/.gitignore 2018-01-19 07:58:58.000000000 +0100 @@ -0,0 +1 @@ +! details.plymouth diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/themes/text/.gitignore new/plymouth-0.9.3+git20180827.0a66272/themes/text/.gitignore --- old/plymouth-0.9.3+git20171220.6e9e95d/themes/text/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/themes/text/.gitignore 2018-01-19 07:58:58.000000000 +0100 @@ -0,0 +1 @@ +! contact.plymouth diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plymouth-0.9.3+git20171220.6e9e95d/themes/tribar/.gitignore new/plymouth-0.9.3+git20180827.0a66272/themes/tribar/.gitignore --- old/plymouth-0.9.3+git20171220.6e9e95d/themes/tribar/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/plymouth-0.9.3+git20180827.0a66272/themes/tribar/.gitignore 2018-01-19 07:58:58.000000000 +0100 @@ -0,0 +1 @@ +! text.plymouth ++++++ plymouth-correct-runtime-dir.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:25.063199910 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:25.063199910 +0200 @@ -1,6 +1,8 @@ ---- a/configure.ac 2012-11-02 22:26:41.000000000 +0100 -+++ b/configure.ac 2013-02-22 17:15:58.300689336 +0100 -@@ -268,7 +268,7 @@ +Index: plymouth-0.9.3+git20180807.7663b0c/configure.ac +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/configure.ac 2018-08-07 17:41:15.000000000 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/configure.ac 2018-08-17 19:58:07.106444425 +0200 +@@ -150,7 +150,7 @@ if test x$with_system_root_install = xye else plymouthclientdir=$bindir plymouthdaemondir=$sbindir ++++++ plymouth-dracut-path.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:25.071199938 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:25.071199938 +0200 @@ -1,6 +1,8 @@ ---- scripts/plymouth-populate-initrd.in 2012-08-21 01:25:52.000000000 +0200 -+++ scripts/plymouth-populate-initrd.in 2012-11-01 18:27:22.760029873 +0100 -@@ -372,8 +372,8 @@ +Index: plymouth-0.9.3+git20180807.7663b0c/scripts/plymouth-populate-initrd.in +=================================================================== +--- plymouth-0.9.3+git20180807.7663b0c.orig/scripts/plymouth-populate-initrd.in 2018-08-07 17:41:15.000000000 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/scripts/plymouth-populate-initrd.in 2018-08-17 19:57:27.334004329 +0200 +@@ -386,8 +386,8 @@ done [ -z "$INITRDDIR" ] && usage error mkdir -p ${INITRDDIR}${PLYMOUTH_DATADIR}/plymouth/themes ++++++ plymouth-manpages.patch ++++++ --- /var/tmp/diff_new_pack.a4Q5tj/_old 2018-09-04 22:47:25.083199979 +0200 +++ /var/tmp/diff_new_pack.a4Q5tj/_new 2018-09-04 22:47:25.083199979 +0200 @@ -1,7 +1,7 @@ -Index: plymouth-0.8.8_git20140207/docs/Makefile.am +Index: plymouth-0.9.3+git20180807.7663b0c/docs/Makefile.am =================================================================== ---- plymouth-0.8.8_git20140207.orig/docs/Makefile.am -+++ plymouth-0.8.8_git20140207/docs/Makefile.am +--- plymouth-0.9.3+git20180807.7663b0c.orig/docs/Makefile.am 2018-08-07 17:41:15.000000000 +0200 ++++ plymouth-0.9.3+git20180807.7663b0c/docs/Makefile.am 2018-08-17 19:58:25.330646165 +0200 @@ -16,12 +16,14 @@ plymouth.1: plymouth1.xml %.1: %.xml $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ++++++ plymouth-only_use_fb_for_cirrus_bochs.patch ++++++ From: Fabian Vogt <fvogt@suse.com> Subject: force fb for cirrus and bochs, force drm otherwise References: bsc#888590, bsc#980750 DRM does not work well with cirrus and bochs (no display) but the framebuffer driver prevents DRM drivers from loading. As we need to support cirrus for libvirt and bochs for QEMU, we cannot just remove support for frame-buffer. Index: plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-core/ply-device-manager.c =================================================================== --- plymouth-0.9.3+git20180807.7663b0c.orig/src/libply-splash-core/ply-device-manager.c 2018-08-07 17:41:15.000000000 +0200 +++ plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-core/ply-device-manager.c 2018-08-17 19:58:41.178821647 +0200 @@ -228,13 +228,33 @@ create_devices_for_udev_device (ply_devi subsystem = udev_device_get_subsystem (device); ply_trace ("device subsystem is %s", subsystem); + const char *card_vendor = udev_device_get_sysattr_value (device, "device/vendor"); + const char *card_device = udev_device_get_sysattr_value (device, "device/device"); + bool use_fb = false; + if (card_vendor) { + /* Cirrus */ + if (strcmp ("0x1013", card_vendor) == 0) + use_fb = true; + /* "Technical Corp", also used by bochs */ + else if (strcmp ("0x1234", card_vendor) == 0) + use_fb = strcmp("0x1111", card_device) == 0; + } + if (subsystem != NULL && strcmp (subsystem, SUBSYSTEM_DRM) == 0) { ply_trace ("found DRM device %s", device_path); renderer_type = PLY_RENDERER_TYPE_DRM; + if (use_fb) { + ply_trace ("forcing use of framebuffer for cirrusdrmfb"); + renderer_type = PLY_RENDERER_TYPE_NONE; + } } else if (strcmp (subsystem, SUBSYSTEM_FRAME_BUFFER) == 0) { ply_trace ("found frame buffer device %s", device_path); - if (!fb_device_has_drm_device (manager, device)) + if (use_fb) { renderer_type = PLY_RENDERER_TYPE_FRAME_BUFFER; + } + else if (!fb_device_has_drm_device (manager, device)) { + ply_trace ("avoiding use of framebuffer to not block DRM drivers from working"); + } else ply_trace ("ignoring, since there's a DRM device associated with it"); } ++++++ plymouth-some-greenish-openSUSE-colors.patch ++++++
From 9e69959ad2d7624936832421dfb0cd1fee47fefc Mon Sep 17 00:00:00 2001 From: Jan Engelhardt <jengelh@inai.de> Date: Sun, 29 Jul 2012 20:38:50 +0200 Subject: [PATCH] Some greenish openSUSE colors
--- src/plugins/splash/text/plugin.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: plymouth-0.9.3+git20180807.7663b0c/src/plugins/splash/text/plugin.c =================================================================== --- plymouth-0.9.3+git20180807.7663b0c.orig/src/plugins/splash/text/plugin.c 2018-08-07 17:41:15.000000000 +0200 +++ plymouth-0.9.3+git20180807.7663b0c/src/plugins/splash/text/plugin.c 2018-08-17 19:57:50.786263802 +0200 @@ -174,10 +174,10 @@ view_start_animation (view_t *view) 0x2e3436); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_WHITE, - 0xffffff); + 0x40ff00); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BROWN, - 0x979a9b); + 0x106000); ply_text_display_set_background_color (view->display, PLY_TERMINAL_COLOR_BLACK); Index: plymouth-0.9.3+git20180807.7663b0c/src/plugins/splash/tribar/plugin.c =================================================================== --- plymouth-0.9.3+git20180807.7663b0c.orig/src/plugins/splash/tribar/plugin.c 2018-08-07 17:41:15.000000000 +0200 +++ plymouth-0.9.3+git20180807.7663b0c/src/plugins/splash/tribar/plugin.c 2018-08-17 19:57:50.786263802 +0200 @@ -177,13 +177,13 @@ view_start_animation (view_t *view) 0x000000); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_WHITE, - 0xffffff); + 0x40ff00); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BLUE, - 0x0073B3); + 0x20a000); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BROWN, - 0x00457E); + 0x106000); ply_text_display_set_background_color (view->display, PLY_TERMINAL_COLOR_BLACK);
participants (1)
-
root