[packages/suspend-utils] - added patches from SUSE - plymouth support and small fixes

baggins baggins at pld-linux.org
Thu Jan 2 21:58:27 CET 2014


commit 1845a56850de3c3e10271b212e9bb82ab7a50aac
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Thu Jan 2 21:43:22 2014 +0100

    - added patches from SUSE - plymouth support and small fixes

 ...-disable-splash-when-unable-to-switch-vts.patch |  16 +
 s2disk-do-not-fail-without-local-terminals.patch   |  74 +++
 ...end-ignore-acpi-video-flags-not-available.patch |  15 +
 suspend-plymouth.patch                             | 507 +++++++++++++++++++++
 suspend-utils.spec                                 |  11 +
 5 files changed, 623 insertions(+)
---
diff --git a/suspend-utils.spec b/suspend-utils.spec
index a4dfaf5..0b1317a 100644
--- a/suspend-utils.spec
+++ b/suspend-utils.spec
@@ -1,4 +1,5 @@
 #
+%bcond_without	plymouth
 %bcond_with	splashy
 %bcond_without	initrd		# don't build resume-initrd
 %bcond_without	dietlibc	# link initrd version with static glibc
@@ -27,6 +28,10 @@ Patch1:		suspend-fadvise.patch
 Patch2:		suspend-diet.patch
 Patch3:		suspend-utils-conf.patch
 Patch4:		suspend-utils-build.patch
+Patch5:		suspend-ignore-acpi-video-flags-not-available.patch
+Patch6:		suspend-plymouth.patch
+Patch7:		s2disk-do-not-fail-without-local-terminals.patch
+Patch8:		s2disk-disable-splash-when-unable-to-switch-vts.patch
 URL:		http://sourceforge.net/projects/suspend
 BuildRequires:	autoconf
 BuildRequires:	automake
@@ -45,6 +50,7 @@ BuildRequires:	pciutils-devel
 BuildRequires:	perl-Switch
 BuildRequires:	pkgconfig
 BuildRequires:	sed >= 4.0
+%{?with_plymouth:BuildRequires:	plymouth-static >= 0.8.8-8}
 %if %{with splashy}
 BuildRequires:	DirectFB-static
 BuildRequires:	freetype-static
@@ -93,6 +99,10 @@ Zamrażanie w RAM/Dysku/Jedno i drugie - program resume dla initrd.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 install %{SOURCE1} .
 
@@ -143,6 +153,7 @@ mv resume resume-initrd
 
 %configure \
 	%{?with_splashy:--enable-splashy} \
+	%{?with_plymouth:--enable-plymouth} \
 	--enable-compress \
 	--enable-threads \
 	--enable-encrypt
diff --git a/s2disk-disable-splash-when-unable-to-switch-vts.patch b/s2disk-disable-splash-when-unable-to-switch-vts.patch
new file mode 100644
index 0000000..47ae3fa
--- /dev/null
+++ b/s2disk-disable-splash-when-unable-to-switch-vts.patch
@@ -0,0 +1,16 @@
+---
+ suspend.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: suspend-0.8.20081103/suspend.c
+===================================================================
+--- suspend-0.8.20081103.orig/suspend.c
++++ suspend-0.8.20081103/suspend.c
+@@ -2501,6 +2501,7 @@ int main(int argc, char *argv[])
+ 		if (vt_fd == -ENOTTY) {
+ 			suspend_warning("Unable to switch virtual terminals, "
+ 					"using the current console.");
++			splash_param = 0;
+ 		} else {
+ 			suspend_error("Could not open a virtual terminal.");
+ 			ret = errno;
diff --git a/s2disk-do-not-fail-without-local-terminals.patch b/s2disk-do-not-fail-without-local-terminals.patch
new file mode 100644
index 0000000..73f9906
--- /dev/null
+++ b/s2disk-do-not-fail-without-local-terminals.patch
@@ -0,0 +1,74 @@
+---
+ suspend.c |   38 ++++++++++++++++++++++++++------------
+ 1 file changed, 26 insertions(+), 12 deletions(-)
+
+Index: suspend-utils-1.0/suspend.c
+===================================================================
+--- suspend-utils-1.0.orig/suspend.c
++++ suspend-utils-1.0/suspend.c
+@@ -57,6 +57,15 @@ do { \
+ 	fprintf(stderr, "%s: " msg " Reason: %m\n", my_name, ## args); \
+ } while (0)
+ 
++#ifndef CONFIG_ARCH_S390
++#define suspend_warning(msg) \
++do { \
++	fprintf(stderr, "%s: " msg "\n", my_name); \
++} while (0)
++#else
++#define suspend_warning(msg)
++#endif
++
+ static char snapshot_dev_name[MAX_STR_LEN] = SNAPSHOT_DEVICE;
+ static char resume_dev_name[MAX_STR_LEN] = RESUME_DEVICE;
+ static loff_t resume_offset;
+@@ -2489,21 +2498,24 @@ int main(int argc, char *argv[])
+ 
+ 	vt_fd = prepare_console(&orig_vc, &suspend_vc);
+ 	if (vt_fd < 0) {
+-		ret = errno;
+-		if (vt_fd == -ENOTTY)
+-			suspend_error("No local tty. Remember to specify local " \
+-					"console after the remote.");
+-		else
++		if (vt_fd == -ENOTTY) {
++			suspend_warning("Unable to switch virtual terminals, "
++					"using the current console.");
++		} else {
+ 			suspend_error("Could not open a virtual terminal.");
+-		goto Close_snapshot_fd;
++			ret = errno;
++			goto Close_snapshot_fd;
++		}
+ 	}
+ 
+ 	splash_prepare(&splash, splash_param);
+ 
+-	if (lock_vt() < 0) {
+-		ret = errno;
+-		suspend_error("Could not lock the terminal.");
+-		goto Restore_console;
++	if (vt_fd >= 0) {
++		if (lock_vt() < 0) {
++			ret = errno;
++			suspend_error("Could not lock the terminal.");
++			goto Restore_console;
++		}
+ 	}
+ 
+ 	splash.progress(5);
+@@ -2547,10 +2559,12 @@ int main(int argc, char *argv[])
+ 		set_swappiness(orig_swappiness);
+ 	close_swappiness();
+ 
+-	unlock_vt();
++	if (vt_fd >= 0)
++		unlock_vt();
+ Restore_console:
+ 	splash.finish();
+-	restore_console(vt_fd, orig_vc);
++	if (vt_fd >= 0)
++		restore_console(vt_fd, orig_vc);
+ Close_snapshot_fd:
+ 	close(snapshot_fd);
+ Close_resume_fd:
diff --git a/suspend-ignore-acpi-video-flags-not-available.patch b/suspend-ignore-acpi-video-flags-not-available.patch
new file mode 100644
index 0000000..bdf9338
--- /dev/null
+++ b/suspend-ignore-acpi-video-flags-not-available.patch
@@ -0,0 +1,15 @@
+Index: suspend-utils-1.0/s2ram-x86.c
+===================================================================
+--- suspend-utils-1.0.orig/s2ram-x86.c
++++ suspend-utils-1.0/s2ram-x86.c
+@@ -61,8 +61,8 @@ static int set_acpi_video_mode(int mode)
+ 	unsigned long acpi_video_flags;
+ 	FILE *f = fopen("/proc/sys/kernel/acpi_video_flags", "r");
+ 	if (!f) {
+-		printf("/proc/sys/kernel/acpi_video_flags does not exist; you need a kernel >=2.6.16.\n");
+-		return S2RAM_FAIL;
++		printf("/proc/sys/kernel/acpi_video_flags does not exist; ignoring\n");
++		return S2RAM_OK;
+ 	}
+ 	/* read the old setting from /proc */
+ 	if (fscanf(f, "%ld", &acpi_video_flags) != 1) {
diff --git a/suspend-plymouth.patch b/suspend-plymouth.patch
new file mode 100644
index 0000000..2b379ce
--- /dev/null
+++ b/suspend-plymouth.patch
@@ -0,0 +1,507 @@
+Index: suspend-utils-1.0/configure.ac
+===================================================================
+--- suspend-utils-1.0.orig/configure.ac
++++ suspend-utils-1.0/configure.ac
+@@ -74,6 +74,12 @@ AC_ARG_ENABLE(
+ 	,
+ 	[enable_fbsplash="no"]
+ )
++AC_ARG_ENABLE(
++	[plymouth],
++	[AC_HELP_STRING([--enable-plymouth], [enable plymouth support])],
++	,
++	[enable_plymouth="no"]
++)
+ AC_ARG_WITH(
+ 	[devdir],
+ 	[AC_HELP_STRING([--with-devdir=DIR], [use if --enable-create-device, put devices in this directory, default /dev])],
+@@ -249,6 +255,21 @@ if test "${enable_fbsplash}" = "yes"; th
+ 	)
+ fi
+ 
++if test "${enable_plymouth}" = "yes"; then
++	CONFIG_FEATURES="${CONFIG_FEATURES} plymouth"
++	AC_DEFINE([CONFIG_PLYMOUTH], [1], [Define if plymouth enabled])
++	PKG_CHECK_MODULES(
++		[PLYMOUTH],
++		[ply-splash-core],
++		,
++		[AC_MSG_ERROR([Required plymouth-devel was not found])]
++	)
++	AC_DEFINE_UNQUOTED([PLYMOUTH_THEMESDIR],["`$PKG_CONFIG --variable=themesdir ply-splash-core`"], [Plymouth theme directory])
++	AC_DEFINE_UNQUOTED([PLYMOUTH_PLUGINSDIR],["`$PKG_CONFIG --variable=pluginsdir ply-splash-core`"], [Plymouth plugins directory])
++	AC_DEFINE_UNQUOTED([PLYMOUTH_CONFDIR],["`$PKG_CONFIG --variable=confdir ply-splash-core`"], [Plymouth configuration directory])
++	AC_DEFINE_UNQUOTED([PLYMOUTH_POLICYDIR],["`$PKG_CONFIG --variable=policydir ply-splash-core`"], [Plymouth policy directory])
++fi
++
+ if test "${enable_threads}" = "yes"; then
+ 	CONFIG_FEATURES="${CONFIG_FEATURES} threads"
+ 	AC_DEFINE([CONFIG_THREADS], [1], [Define if threads enabled])
+@@ -301,6 +322,7 @@ AM_CONDITIONAL([ENABLE_RESUME_STATIC], [
+ AM_CONDITIONAL([ENABLE_CREATE_DEVICE], [test "${enable_create_device}" = "yes"])
+ AM_CONDITIONAL([ENABLE_SPLASHY], [test "${enable_splashy}" = "yes"])
+ AM_CONDITIONAL([ENABLE_FBSPLASH], [test "${enable_fbsplash}" = "yes"])
++AM_CONDITIONAL([ENABLE_PLYMOUTH], [test "${enable_plymouth}" = "yes"])
+ AC_CONFIG_FILES([
+ 	Makefile
+ 	doc/Makefile
+Index: suspend-utils-1.0/Makefile.am
+===================================================================
+--- suspend-utils-1.0.orig/Makefile.am
++++ suspend-utils-1.0/Makefile.am
+@@ -29,6 +29,9 @@ if ENABLE_DEBUG
+ if ENABLE_FBSPLASH
+ noinst_PROGRAMS+=fbsplash-test
+ endif
++if ENABLE_PLYMOUTH
++noinst_PROGRAMS+=plymouth-test
++endif
+ endif
+ noinst_LIBRARIES=\
+ 	libsuspend-common.a
+@@ -88,6 +91,12 @@ AM_CFLAGS+=\
+ common_s2disk_libs+=\
+ 	${FBSPLASH_LIBS}
+ endif
++if ENABLE_PLYMOUTH
++AM_CFLAGS+=\
++	${PLYMOUTH_CFLAGS}
++common_s2disk_libs+=\
++	${PLYMOUTH_LIBS} -lm
++endif
+ 
+ libsuspend_common_a_SOURCES=\
+ 	swsusp.h suspend_ioctls.h \
+@@ -99,6 +108,7 @@ libsuspend_common_a_SOURCES=\
+ 	splash.h splash.c \
+ 	splashy_funcs.h splashy_funcs.c \
+ 	fbsplash_funcs.h fbsplash_funcs.c \
++	plymouth_funcs.h plymouth_funcs.c \
+ 	bootsplash.h bootsplash.c \
+ 	memalloc.h memalloc.c load.c \
+ 	whitelist.h whitelist.csv whitelist.c \
+@@ -179,6 +189,11 @@ whitelist.c: whitelist.csv
+ clean-local:
+ 	rm -f whitelist.c
+ 
++plymouth_test_SOURCES=\
++	plymouth_funcs.c \
++	plymouth-test.c
++plymouth_test_LDADD=\
++	$(PLYMOUTH_LIBS) -lm
+ #
+ # Misc functions
+ #
+Index: suspend-utils-1.0/plymouth_funcs.c
+===================================================================
+--- /dev/null
++++ suspend-utils-1.0/plymouth_funcs.c
+@@ -0,0 +1,259 @@
++/*
++ * plymouth_funcs.c
++ *
++ * Plymouth (userspace splash) splash method support
++ *
++ * Copyright (c) 2009 Frederic Crozat <fcrozat at suse.com>
++ *
++ * This file is released under the GPLv2.
++ *
++ */
++
++#include "config.h"
++
++#ifdef CONFIG_PLYMOUTH
++#include <string.h>
++#include <stdio.h>
++#include <fcntl.h>
++#include <unistd.h>
++#include <stdlib.h>
++
++#include "splash.h"
++#include "encrypt.h"
++#include "plymouth_funcs.h"
++#include <ply-event-loop.h>
++#include <ply-boot-splash-plugin.h>
++#include <ply-boot-splash.h>
++//#include <ply-window.h>
++#include <ply-progress.h>
++#include <ply-utils.h>
++#include <ply-terminal.h>
++#include <ply-keyboard.h>
++#include <ply-pixel-display.h>
++#include <ply-text-display.h>
++#include <ply-renderer.h>
++
++static    ply_boot_splash_t *ply_splash;
++static    ply_buffer_t *buffer;
++//static    ply_window_t *window;
++static    ply_keyboard_t *keyboard;
++static    ply_terminal_t *terminal;
++static    ply_progress_t *ply_progress;
++static	  ply_renderer_t *renderer;
++static	  ply_list_t *pixel_displays;
++static	  ply_text_display_t *text_display;
++static    int key_pressed = 0;
++static	  char last_key = -1;
++
++static void keyboard_input_handler (void *user_data, const char *keyboard_input, size_t      character_size) {
++	fprintf(stderr, "key pressed\n");
++	key_pressed = 1;
++	if (character_size > 0) {
++		last_key = keyboard_input[character_size - 1];
++	}
++}
++
++int plymouth_update(const char *arg) {
++	const char *cmd = "/usr/bin/plymouth";
++	pid_t pid = fork();
++	if (!pid) {
++		int fd = open("/dev/null", O_RDWR);
++		dup2(fd, 2);
++		close(fd);
++		if (execl(cmd, cmd, arg, (char *) NULL) == -1)
++			exit(1);
++	}
++	else {
++		int status;
++		waitpid(pid, &status, 0);
++		return status;
++	}
++	return 1;
++}
++
++void terminate_plymouth() {
++        ply_keyboard_stop_watching_for_input (keyboard);
++	ply_keyboard_remove_input_handler (keyboard, keyboard_input_handler); 
++        ply_boot_splash_unset_keyboard (ply_splash);
++	ply_boot_splash_hide (ply_splash);
++	ply_boot_splash_free (ply_splash);
++	ply_progress_free (ply_progress);
++	ply_renderer_close (renderer);
++	ply_renderer_free (renderer);
++	ply_terminal_close (terminal);
++	ply_terminal_free (terminal);
++	ply_buffer_free (buffer);
++}
++
++static int plymouth_init() {
++	
++	int ret;
++	ply_key_file_t *key_file;
++	char *splash_string;
++	char *splash_path;
++	ply_list_t *heads;
++	ply_list_node_t *node;
++
++
++	buffer = ply_buffer_new ();
++
++	key_file = ply_key_file_new (PLYMOUTH_CONFDIR "plymouthd.conf");
++
++	if ((ret = ply_key_file_load (key_file)) == 0)
++	{
++		return ret;
++	}
++	splash_string = ply_key_file_get_value (key_file, "Daemon", "Theme");
++
++	asprintf(&splash_path, PLYMOUTH_THEMESDIR "%s/%s.plymouth", splash_string, splash_string);
++	free (splash_string);
++	terminal =  ply_terminal_new ("tty63");
++	ply_splash = ply_boot_splash_new (splash_path, PLYMOUTH_PLUGINSDIR, buffer);
++	free (splash_path);
++	if ((ret = ply_boot_splash_load (ply_splash)) == 0) {
++		fprintf(stderr,"could not open splash\n");
++		return ret;
++	}
++	renderer = ply_renderer_new (NULL, NULL, terminal);
++	if ((ret = ply_renderer_open (renderer))== 0) {
++		fprintf(stderr,"could not open renderer /dev/fb\n");
++		return ret;
++	}
++	keyboard =  ply_keyboard_new_for_terminal (terminal);
++
++	text_display = ply_text_display_new (terminal);
++  	ply_boot_splash_add_text_display (ply_splash, text_display);
++
++	heads = ply_renderer_get_heads (renderer);
++	pixel_displays = ply_list_new();
++
++
++	node = ply_list_get_first_node (heads);
++
++	while (node != NULL)
++        { 
++	  ply_list_node_t *next_node;
++          ply_renderer_head_t *head;
++          ply_pixel_display_t *display;
++
++          head = ply_list_node_get_data (node);
++	  next_node = ply_list_get_next_node (heads, node);
++
++	  display = ply_pixel_display_new (renderer, head);
++
++	  ply_list_append_data (pixel_displays, display);
++          node = next_node;
++          ply_boot_splash_add_pixel_display (ply_splash, display);
++         }
++
++	ply_progress = ply_progress_new();
++	ply_boot_splash_attach_progress (ply_splash, ply_progress);
++	ply_boot_splash_attach_to_event_loop (ply_splash, ply_event_loop_get_default());
++
++
++	ply_keyboard_add_input_handler(keyboard, keyboard_input_handler, NULL); 
++	return ret;
++
++}
++
++int plymouth_open(int mode)
++{
++	int ret;
++
++	if ((ret = plymouth_init ()) == 0 )
++	{
++		fprintf(stderr,"could not initialize plymouth : error %d \n",ret);
++		return -1;
++	}
++
++	ply_boot_splash_set_keyboard (ply_splash, keyboard);
++	ply_renderer_activate (renderer);
++	if (mode==SPL_RESUME) {
++		ply_boot_splash_show (ply_splash, PLY_BOOT_SPLASH_MODE_RESUME);
++	}
++	else {
++		ply_boot_splash_show (ply_splash, PLY_BOOT_SPLASH_MODE_SUSPEND);
++	       	ply_boot_splash_display_message (ply_splash, "Suspending..." );
++	}
++	ply_keyboard_watch_for_input(keyboard);
++
++	ply_event_loop_process_pending_events (ply_event_loop_get_default());
++
++	return 0;
++}
++
++
++inline int plymouth_finish(void)
++{
++
++	terminate_plymouth();
++
++	return 0;
++}
++
++inline int plymouth_progress(int p)
++{
++	ply_progress_set_percentage (ply_progress, (double) p / 100);
++
++	ply_event_loop_process_pending_events (ply_event_loop_get_default());
++
++	return 0;
++}
++
++
++void plymouth_read_password(char *buf, int vrfy)
++{
++#if 0
++#if CONFIG_ENCRYPT
++        char *vrfy_buf = vrfy ? buf + PASS_SIZE : buf;
++
++        do {
++            while (plymouth_get_password(buf,PASS_SIZE, 
++                        "Passphrase please (must be non-empty): ") <= 0);
++            
++            if (vrfy)
++                while (plymouth_get_password(vrfy_buf,PASS_SIZE,
++                            "Verify passphrase: ") <= 0);
++            
++    	} while (vrfy && strncmp(buf, vrfy_buf, PASS_SIZE));
++#endif
++#endif
++}
++
++
++void plymouth_set_caption(const char *message)
++{
++	ply_boot_splash_display_message (ply_splash, message);
++	ply_event_loop_process_pending_events (ply_event_loop_get_default());
++}
++
++int plymouth_dialog(const char *prompt) 
++{
++	key_pressed = 0;
++	ply_progress_pause (ply_progress);
++       	ply_boot_splash_display_message (ply_splash, prompt);
++	while (key_pressed == 0) {
++		ply_event_loop_process_pending_events (ply_event_loop_get_default());
++	}
++	ply_progress_unpause (ply_progress);
++	return last_key;
++}
++
++char plymouth_key_pressed(void) {
++#if 1
++	ply_event_loop_process_pending_events (ply_event_loop_get_default());
++	if (key_pressed == 0) {
++	       return 0;
++	}
++	else {
++		int key = last_key;
++		last_key = -1;
++		key_pressed = 0;
++		return key;
++	}
++#endif
++//	return 0;
++}
++
++
++#endif
+Index: suspend-utils-1.0/plymouth_funcs.h
+===================================================================
+--- /dev/null
++++ suspend-utils-1.0/plymouth_funcs.h
+@@ -0,0 +1,28 @@
++/*
++ * plymouth_funcs.h
++ *
++ * Boot splash related definitions for plymouth method
++ *
++ * Copyright (C) 2009 Frederic Crozat <fcrozat at suse.com>
++ *
++ * This file is released under the GPLv2.
++ *
++ */
++
++#ifndef PLYMOUTH_FUNCS_H
++#define PLYMOUTH_FUNCS_H
++#ifdef CONFIG_PLYMOUTH
++
++int plymouth_open(int mode);
++int plymouth_finish(void);
++int plymouth_progress(int p);
++void plymouth_read_password(char *, int);
++int plymouth_dialog(const char *);
++void plymouth_set_caption(const char *message);
++char plymouth_key_pressed(void);
++
++
++
++#endif
++#endif /* PLYMOUTH_FUNCS_H */
++
+Index: suspend-utils-1.0/plymouth-test.c
+===================================================================
+--- /dev/null
++++ suspend-utils-1.0/plymouth-test.c
+@@ -0,0 +1,72 @@
++/*
++ * plymouth-test.c
++ *
++ * plymouth (framebuffer splash) splash method support
++ *
++ * Copyright (c) 2009 Frederic Crozat <fcrozat at suse.com>
++ *
++ * This file is released under the GPLv2.
++ *
++ */
++
++#include "config.h"
++
++#include <string.h>
++#include <stdio.h>
++#include <linux/types.h>
++#include <syscall.h>
++#include <sys/ioctl.h>
++#include <sys/types.h>
++#include <errno.h>
++
++#include "swsusp.h"
++#include "splash.h"
++#include "plymouth_funcs.h"
++
++int main (void)
++{
++	char c;
++	int r;
++	int i;
++	printf("plymouth_open...\n");
++	r = plymouth_open(SPL_SUSPEND);
++	printf("plymouth_open=%d\n", r);
++	if (r) {
++		return 1;
++	}
++
++	for (i=0; i<=100; i+=10) {
++		printf("plymouth_progress (%d)...\n", i);
++		plymouth_progress(i);
++		sleep(1);
++		if (i == 50) {
++			printf("plymouth_dialog()...\n");
++			printf("plymouth_dialog=%c\n", plymouth_dialog ("Hello world!\nPlease press a key: "));
++		}
++#ifdef CONFIG_ENCRYPT
++		else if (i==60) {
++			char pass[PASS_SIZE];
++			printf("plymouth_read_password(,0)..\n");
++			plymouth_read_password(pass, 0);
++			printf("plymouth_read_password=%s\n", pass);
++		}
++		else if (i==80) {
++			char pass[PASS_SIZE];
++			printf("plymouth_read_password(,1)..\n");
++			plymouth_read_password(pass, 1);
++			printf("plymouth_read_password=%s\n", pass);
++		}
++#endif
++		
++		c = plymouth_key_pressed();
++		if (c) {
++			char buffer[SPLASH_GENERIC_MESSAGE_SIZE];
++			sprintf(buffer, "Key %c (%02x) pressed", c, (unsigned char)c);
++			plymouth_set_caption(buffer);
++		}
++	}
++
++	printf("plymouth_finish...\n");
++	plymouth_finish();
++	return 0;
++}
+Index: suspend-utils-1.0/splash.c
+===================================================================
+--- suspend-utils-1.0.orig/splash.c
++++ suspend-utils-1.0/splash.c
+@@ -27,6 +27,7 @@
+ #include "bootsplash.h"
+ #include "splashy_funcs.h"
+ #include "fbsplash_funcs.h"
++#include "plymouth_funcs.h"
+ #include "encrypt.h"
+ 
+ #define INPUT_PATH "/dev/input/by-path"
+@@ -202,6 +203,10 @@ void splash_prepare(struct splash *splas
+ 	splash->key_pressed	= simple_key_pressed;
+ 	splash->set_caption	= splash_dummy_set_caption;
+ 
++#ifdef CONFIG_PLYMOUTH
++	plymouth_update ("quit");
++#endif
++
+ 	if (!mode)
+ 		return;
+ 
+@@ -233,6 +238,15 @@ void splash_prepare(struct splash *splas
+ 		if (!open_input_fd())
+ 			splash->key_pressed = key_pressed;
+ #endif
++#ifdef CONFIG_PLYMOUTH
++	} else if (!plymouth_open(mode)) {
++		splash->finish      = plymouth_finish;
++		splash->progress    = plymouth_progress;
++		splash->dialog	    = plymouth_dialog;
++		splash->read_password   = plymouth_read_password;
++		if (!open_input_fd())
++			splash->key_pressed = key_pressed;
++#endif
+ 	} else if (0) {
+ 		/* add another splash system here */
+ 	} else {
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/suspend-utils.git/commitdiff/bda6ab210580ea892bb658c553cf972f25816c4a



More information about the pld-cvs-commit mailing list