Kay Sievers 2010-12-16 12:59:25 +00:00 committed by Git OBS Bridge
parent 468616b5a7
commit 35e0322b7c
3 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,61 @@
From 81eca00461968aac09f9e8535f4327282698b495 Mon Sep 17 00:00:00 2001
From: Stefan Seyfried <seife+obs@b1-systems.com>
Date: Thu, 16 Dec 2010 11:30:17 +0100
Subject: [PATCH] Add bootsplash handling for password dialogs
openSUSE uses bootsplash.org, so add a crude handling for setting the
splash screen to verbose when a password is asked...
---
src/ask-password-api.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/ask-password-api.c b/src/ask-password-api.c
index 9f7023e..2023441 100644
--- a/src/ask-password-api.c
+++ b/src/ask-password-api.c
@@ -47,6 +47,9 @@ int ask_password_tty(
int r, ttyfd = -1, notify = -1;
struct pollfd pollfd[2];
bool reset_tty = false;
+ bool splash_silent = false;
+ FILE *procsplash = NULL;
+ char *line = NULL;
enum {
POLL_TTY,
POLL_INOTIFY
@@ -90,6 +93,19 @@ int ask_password_tty(
}
reset_tty = true;
+ procsplash = fopen("/proc/splash", "r+");
+ if (procsplash) {
+ getline(&line, &p, procsplash);
+ p = 0; /* reset, just to make sure */
+ if (line &&
+ (strstr(line, "on\n") == line + strlen(line) - 3) &&
+ (strstr(line, "silent") != NULL)) {
+ splash_silent = true;
+ rewind(procsplash);
+ fprintf(procsplash, "verbose\n");
+ fflush(procsplash);
+ }
+ }
}
zero(pollfd);
@@ -201,6 +217,12 @@ finish:
close_nointr_nofail(ttyfd);
}
+ if (splash_silent) { /* only set if procsplash != NULL */
+ rewind(procsplash);
+ fprintf(procsplash, "silent\n");
+ fclose(procsplash);
+ }
+
return r;
}
--
1.7.3.1

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Dec 16 12:49:00 UTC 2010 - seife@opensuse.org
- add bootsplash handling patch to be able to enter e.g.
crypto passphrases (bnc#659885)
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com Thu Dec 9 18:54:15 CET 2010 - kay.sievers@novell.com

View File

@ -43,6 +43,7 @@ Requires: fsck-with-dev-lock
Conflicts: mkinitrd < 2.6.0-5 Conflicts: mkinitrd < 2.6.0-5
Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2 Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2
Source1: systemd-rpmlintrc Source1: systemd-rpmlintrc
Patch42: 0001-Add-bootsplash-handling-for-password-dialogs.patch
%description %description
Systemd is a system and service manager, compatible with SysV and LSB Systemd is a system and service manager, compatible with SysV and LSB
@ -77,6 +78,7 @@ Drop-in replacement of System V init tools.
%prep %prep
%setup -q %setup -q
%patch42 -p1
%build %build
# prevent pre-generated and distributed files from re-building # prevent pre-generated and distributed files from re-building