remove dir /var/run/plymouth [release 0.8.8-5mamba;Sat Aug 10 2013]

This commit is contained in:
Silvan Calarco 2024-01-06 10:21:49 +01:00
parent 7aab40c14b
commit 8501d61cb6
7 changed files with 855 additions and 0 deletions

View File

@ -1,2 +1,7 @@
# plymouth # plymouth
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.

359
initrd-functions Normal file
View File

@ -0,0 +1,359 @@
#!/bin/bash
#
# functions used by mkinitrd and other tools.
#
# Copyright 2005-2008 Red Hat, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Authors:
# Peter Jones <pjones@redhat.com>
# Jeremy Katz <katzj@redhat.com>
# Jakub Jelinek <jakub@redhat.com>
#
#
IF_verbose=""
function set_verbose() {
case $1 in
1|true|yes|on)
IF_verbose="-v"
;;
0|false|no|off)
IF_verbose=""
;;
esac
}
function is_verbose() {
[ -n "$IF_verbose" ] && return 0
return 1
}
function get_verbose() {
echo "$IF_verbose"
is_verbose
}
function vecho() {
local NONL=""
if [ "$1" == "-n" ]; then
NONL="-n"
shift
fi
is_verbose && echo $NONL "$@"
}
function error() {
local NONL=""
if [ "$1" == "-n" ]; then
NONL="-n"
shift
fi
echo $NONL "$@" > /dev/stderr
}
IF_RTLD=""
IF_dynamic=""
function get_dso_deps() {
local bin="$1" ; shift
declare -a FILES
declare -a NAMES
local LDSO=$(echo nash-showelfinterp $bin | /sbin/nash --forcequiet)
[ -z "$LDSO" -o "$LDSO" == "$bin" ] && local LDSO="$IF_RTLD"
[ -z "$LDSO" -o "$LDSO" == "$bin" ] && return 1
[ -z "$IF_RTLD" ] && IF_RTLD="$LDSO"
# I hate shell.
declare -i n=0
while read NAME I0 FILE ADDR I1 ; do
[ "$FILE" == "not" ] && FILE="$FILE $ADDR"
[ "$NAME" == "not" ] && NAME="$NAME $I0"
NAMES[$n]="$NAME"
FILES[$n]="$FILE"
let n++
done << EOF
$(LD_TRACE_PRELINKING=1 LD_WARN= LD_TRACE_LOADED_OBJECTS=1 \
$LDSO $bin 2>/dev/null)
EOF
[ ${#FILES[*]} -eq 0 ] && return 1
# we don't want the name of the binary in the list
if [ "${FILES[0]}" == "$bin" ]; then
FILES[0]=""
NAMES[0]=""
[ ${#FILES[*]} -eq 1 ] && return 1
fi
declare -i n=0
while [ $n -lt ${#FILES[*]} ]; do
local FILE="${FILES[$n]}"
local NAME="${NAMES[$n]}"
if [ "$FILE" == "not found" -o "$NAME" == "not found" ]; then
cat 1>&2 <<EOF
There are missing files on your system. The dynamic object $bin
requires ${NAMES[$n]} n order to properly function. mkinitrd cannot continue.
EOF
return 1
fi
case "$FILE" in
/lib*)
TLIBDIR=`echo "$FILE" | sed 's,\(/lib[^/]*\)/.*$,\1,'`
BASE=`basename "$FILE"`
# Prefer nosegneg libs over direct segment accesses on i686.
if [ -f "$TLIBDIR/i686/nosegneg/$BASE" ]; then
FILE="$TLIBDIR/i686/nosegneg/$BASE"
# Otherwise, prefer base libraries rather than their optimized
# variants.
elif [ -f "$TLIBDIR/$BASE" ]; then
FILE="$TLIBDIR/$BASE"
fi
FILES[$n]="$FILE"
;;
esac
IF_dynamic="yes"
let n++
done
echo "${FILES[@]}"
}
IF_indent_chars=""
function inst() {
if [ "$#" != "2" -a "$#" != "3" ];then
echo "usage: inst <file> <root> [<destination file>]"
return 1
fi
local file="$1" ; shift
local root="${1%%/}/" ; shift
local dest="${1##/}"
[ -z "$dest" ] && local dest="${file##/}"
local old_indent_chars=${IF_indent_chars}
IF_indent_chars="${IF_indent_chars} "
local indent=${IF_indent_chars:2}
mkdir -p "$root/$(dirname $dest)"
local RET=0
local target=""
[ -L "$file" ] && target=$(readlink "$file")
if [ -n "$target" -a "$dest" != "$target" ]; then
if [ -e "$root$dest" ]; then
#vecho "${indent}$root/$dest already exists"
RET=0
else
vecho "${indent}$file -> $root$dest"
ln -sf "$target" "$root$dest"
#inst "$target" "$root"
local BASE=`basename "$target"`
local TLIBDIR=`echo "$target" | sed -e 's,\(^/lib[^/]*\)/.*$,\1/,' \
-e 's,\(\(.*\)/\)[^/]\+$,\1,'`
if [ "$TLIBDIR" = "$BASE" ]; then
local TLIBDIR=`echo "/$dest" | sed \
-e 's,\(^/lib[^/]*\)/.*$,\1/,' \
-e 's,\(\(.*\)/\)[^/]\+$,\1,'`
fi
inst "$TLIBDIR/$BASE" "$root" "$TLIBDIR/$BASE"
RET=$?
IF_indent_chars=${old_indent_chars}
return $RET
fi
fi
local SHEBANG=$(dd if="$file" bs=2 count=1 2>/dev/null)
if [ "$SHEBANG" == '#!' ]; then
# We're intentionally not playing the "what did this moron run
# in his shell script" game. There's nothing but pain in that.
local interp=$(head -1 "$file" | sed 's/^#! *//')
inst "$interp" "$root"
RET=$?
IF_indent_chars=${old_indent_chars}
return $RET
fi
if [ -e "$root$dest" ]; then
#vecho "${indent}$root$dest already exists"
RET=0
else
if [ -n "$target" -a -L "$target" ]; then
inst "$target" "$root"
RET=$?
else
vecho "${indent}$file -> $root$dest"
cp -aL "$file" "$root$dest"
# local DEPS=$(get_dso_deps "$file")
# if [ -n "$DEPS" ]; then
# IF_dynamic="yes"
# fi
# for x in $DEPS ; do
# local TLIBDIR=`echo "$x" | sed 's,\(/lib[^/]*\)/.*$,\1,'`
# local BASE=`basename "$x"`
# inst "$x" "$root" "$TLIBDIR/$BASE"
# done
RET=$?
fi
fi
IF_indent_chars=${old_indent_chars}
return $RET
}
findone() {
echo nash-find "$@" | /sbin/nash --force --quiet \
| /bin/awk '{ print $1; exit; }'
}
findall() {
echo nash-find "$@" | /sbin/nash --force --quiet
}
# module dep finding and installation functions
moduledep() {
MPARGS=""
if [ "$1" == "--ignore-install" ]; then
MPARGS="$MPARGS --ignore-install"
shift
fi
vecho -n "Looking for deps of module $1"
deps=""
deps=$(modprobe $MPARGS --set-version $kernel --show-depends $1 2>/dev/null| awk '/^insmod / { print gensub(".*/","","g",$2) }' | while read foo ; do [ "${foo%%.ko}" != "$1" ] && echo -n "${foo%%.ko} " ; done)
[ -n "$deps" ] && vecho ": $deps" || vecho
}
locatemodule() {
MPARGS=""
if [ "$1" == "--ignore-install" ]; then
MPARGS="$MPARGS --ignore-install"
shift
fi
fmPath=$(modprobe $MPARGS --set-version $kernel --show-depends $1 2>/dev/null | awk '/^insmod / { print $2; }' | tail -1)
if [ -n "$fmPath" -a -f "$fmPath" ]; then
return 0
fi
for modExt in o.gz o ko ; do
for modDir in /lib/modules/$kernel/updates /lib/modules/$kernel ; do
if [ -d $modDir ]; then
fmPath=$(findone $modDir -name $1.$modExt)
if [ -n "$fmPath" -a -f "$fmPath" ]; then
return 0
fi
fi
done
done
return 1
}
expandModules() {
items=$*
for m in $items ; do
char=$(echo $m | cut -c1)
if [ $char = '=' ]; then
NAME=$(echo $m | cut -c2-)
if [ "$NAME" = "ata" ]; then
MODS="$MODS $(cat /lib/modules/$kernel/modules.block |egrep '(ata|ahci)' |sed -e 's/.ko//')"
else
# Ignore if group list does not exist
if [ -e /lib/modules/$kernel/modules.$NAME ]; then
MODS="$MODS $(cat /lib/modules/$kernel/modules.$NAME |sed -e 's/.ko//')"
fi
fi
else
MODS="$MODS $m"
fi
done
echo $MODS
}
installmodule()
{
MPARGS=""
if [ "$1" == "--ignore-install" ]; then
MPARGS="$MPARGS --ignore-install"
shift
fi
MODULE=$1
fmPath=""
locatemodule $MPARGS $MODULE
MODULE=$fmPath
if [ -z "$MODULE" ]; then
return
fi
if [ -x /usr/bin/strip ]; then
/usr/bin/strip -g $(get_verbose) $MODULE -o $MNTIMAGE/lib/modules/$kernel/$(basename $MODULE)
else
inst "$MODULE" "$MNTIMAGE" "/lib/modules/$kernel/$(basename $MODULE)"
fi
for fw in $(/sbin/modinfo -F firmware $MODULE 2>/dev/null); do
if [ -f /lib/firmware/$fw ]; then
inst "/lib/firmware/$fw" "$MNTIMAGE" "/lib/firmware/$fw"
fi
done
}
# This loops to make sure it resolves dependencies of dependencies of...
resdeps () {
modlist="$1"
before=1
after=2
items=$(eval echo \${$modlist})
vecho "resolving for $modlist"
vecho "and that has items of $items"
while [ $before != $after ]; do
before=$(echo $items | wc -c)
list=""
for i in $items ; do
deps=""
moduledep $i
list="$list $deps"
# need to handle prescsimods here -- they need
# to go _after_ scsi_mod
if [ "$i" = "scsi_mod" ]; then
NEW_PRESCSIMODS=""
for modName in $PRESCSIMODS ; do
list="$list $modName"
if [[ "$items " =~ " $modName " ]]; then
NEW_PRESCSIMODS="$NEW_PRESCSIMODS $modName"
else
items="$items $modName"
fi
done
PRESCSIMODS="$NEW_PRESCSIMODS"
locatemodule scsi_wait_scan
if [ -n "$fmPath" -a -f "$fmPath" ]; then
scsi_wait_scan="yes"
fi
fi
done
items=$(for n in $items $list; do echo $n; done | sort -u)
after=`echo $items | wc -c`
done
resolved="$items"
}
# vim:ts=8:sw=4:sts=4:et

View File

@ -0,0 +1,12 @@
--- plymouth-0.8.3.orig/src/libply-splash-core/ply-terminal.c
+++ plymouth-0.8.3/src/libply-splash-core/ply-terminal.c
@@ -188,7 +188,8 @@
if (tcsetattr (terminal->fd, TCSANOW, &term_attributes) != 0)
return false;
- if (ioctl (terminal->fd, TIOCGLCKTRMIOS, &locked_term_attributes) == 0)
+ if (!terminal->original_locked_term_attributes_saved &&
+ ioctl (terminal->fd, TIOCGLCKTRMIOS, &locked_term_attributes) == 0)
{
terminal->original_locked_term_attributes = locked_term_attributes;
terminal->original_locked_term_attributes_saved = true;

View File

@ -0,0 +1,12 @@
diff -Nru plymouth-0.8.3.orig//src/libply-splash-graphics/ply-image.c plymouth-0.8.3/src/libply-splash-graphics/ply-image.c
--- plymouth-0.8.3.orig//src/libply-splash-graphics/ply-image.c 2010-04-29 18:46:53.000000000 +0200
+++ plymouth-0.8.3/src/libply-splash-graphics/ply-image.c 2010-09-05 21:44:15.292662219 +0200
@@ -151,7 +151,7 @@
png_set_palette_to_rgb (png);
if ((color_type == PNG_COLOR_TYPE_GRAY) && (bits_per_pixel < 8))
- png_set_gray_1_2_4_to_8 (png);
+ png_set_expand_gray_1_2_4_to_8 (png);
if (png_get_valid (png, info, PNG_INFO_tRNS))
png_set_tRNS_to_alpha (png);

View File

@ -0,0 +1,17 @@
diff -Nru plymouth-0.8.5.1.orig/src/main.c plymouth-0.8.5.1/src/main.c
--- plymouth-0.8.5.1.orig/src/main.c 2012-06-06 20:25:04.000000000 +0200
+++ plymouth-0.8.5.1/src/main.c 2012-09-02 17:14:47.163693554 +0200
@@ -1924,13 +1924,6 @@
console_length = strcspn (remaining_file_contents, " \n\t\v");
console = strndup (remaining_file_contents, console_length);
- /* If this console is anything besides tty0, then the user is sort
- * of a weird case (uses a serial console or whatever) and they
- * most likely don't want a graphical splash, so force details.
- */
- if (strcmp (console, "tty0") != 0)
- state->should_force_details = true;
-
asprintf (&console_device, "/dev/%s", console);
free (console);

View File

@ -0,0 +1,137 @@
From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:04:33 -0400
Subject: [PATCH 1/3] main: if deactivate when already deactivated return
immediately
We were trying to ignore second deactivate requests, but
were instead crashing because we're trying to use a nullified
trigger.
This commit makes sure things don't go crashy when a user
does "plymouth deactivate" on an already deactivated plymouthd.
---
src/main.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main.c b/src/main.c
index 88e5002..60ca28f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1135,7 +1135,13 @@ static void
on_deactivate (state_t *state,
ply_trigger_t *deactivate_trigger)
{
- if ((state->deactivate_trigger != NULL) || state->is_inactive)
+ if (state->is_inactive)
+ {
+ ply_trigger_pull (deactivate_trigger, NULL);
+ return;
+ }
+
+ if (state->deactivate_trigger != NULL)
{
ply_trigger_add_handler (state->deactivate_trigger,
(ply_trigger_handler_t)
--
1.7.12.1
From b3548ebaf76d222f56d6a7b34c5940b930d47609 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 1 Nov 2012 17:16:07 -0400
Subject: [PATCH 2/3] two-step: don't update progress when idle
We've already reach a state where we aren't drawing anymore, etc,
so don't update progress and potentially fire off animations
that won't be seen.
---
src/plugins/splash/two-step/plugin.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c
index 2998beb..541a108 100644
--- a/src/plugins/splash/two-step/plugin.c
+++ b/src/plugins/splash/two-step/plugin.c
@@ -1067,6 +1067,9 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL)
return;
+ if (plugin->is_idle)
+ return;
+
if (percent_done >= SHOW_ANIMATION_PERCENT)
{
if (plugin->stop_trigger == NULL)
--
1.7.12.1
From a6129abfc527ac247685d80fc5c20144be1badca Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 2 Nov 2012 17:26:41 -0400
Subject: [PATCH 3/3] main: make plymouth show-splash idempotent
plymouth show-splash causes hairy things, that should only happen once,
like activating renderers to happen.
This commit makes subsequent show-splash calls be no-ops.
---
src/main.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/main.c b/src/main.c
index 60ca28f..ff06163 100644
--- a/src/main.c
+++ b/src/main.c
@@ -113,6 +113,7 @@ typedef struct
uint32_t should_be_attached : 1;
uint32_t should_retain_splash : 1;
uint32_t is_inactive : 1;
+ uint32_t is_shown : 1;
uint32_t should_force_details : 1;
char *kernel_console_tty;
@@ -871,6 +872,12 @@ on_show_splash (state_t *state)
{
bool has_display;
+ if (state->is_shown)
+ {
+ ply_trace ("show splash called while already shown");
+ return;
+ }
+
if (state->is_inactive)
{
ply_trace ("show splash called while inactive");
@@ -884,6 +891,8 @@ on_show_splash (state_t *state)
return;
}
+ state->is_shown = true;
+
check_for_consoles (state, state->default_tty, true);
has_display = ply_list_get_length (state->pixel_displays) > 0 ||
@@ -1012,6 +1021,8 @@ dump_details_and_quit_splash (state_t *state)
if (state->boot_splash != NULL)
ply_boot_splash_hide (state->boot_splash);
+ state->is_shown = false;
+
quit_splash (state);
}
@@ -1116,6 +1127,8 @@ on_boot_splash_idle (state_t *state)
ply_renderer_deactivate (state->renderer);
if (state->boot_splash != NULL)
ply_boot_splash_hide (state->boot_splash);
+
+ state->is_shown = false;
}
ply_trace ("quitting splash");
--
1.7.12.1

313
plymouth.spec Normal file
View File

@ -0,0 +1,313 @@
Name: plymouth
Version: 0.8.8
Release: 5mamba
Summary: Provides a graphical boot animation while the boot process happens in the background
Group: System/Kernel and Hardware
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://www.freedesktop.org/wiki/Software/Plymouth
Source: http://www.freedesktop.org/software/plymouth/releases/plymouth-%{version}.tar.bz2
Source1: initrd-functions
Patch0: %{name}-0.8.3-libpng-1.4.patch
Patch2: %{name}-0.8.3-fix_tty1_echo.patch
Patch3: %{name}-0.8.5-dont_disable_fb_if_console_cmdline_is_passed.patch
Patch4: plymouth-0.8.8-fix-crash-on-deactivate.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libatk-devel
BuildRequires: libcairo-devel
BuildRequires: libdrm-devel
BuildRequires: libexpat-devel
BuildRequires: libfontconfig-devel
BuildRequires: libfreetype-devel
BuildRequires: libglib-devel
BuildRequires: libglitz-devel
BuildRequires: libgtk2-devel
BuildRequires: libpango-devel
BuildRequires: libpixman-devel
BuildRequires: libpng-devel
BuildRequires: libpthread-stubs-devel
BuildRequires: libselinux-devel
BuildRequires: libstdc++6-devel
BuildRequires: libX11-devel
BuildRequires: libXau-devel
BuildRequires: libxcb-devel
BuildRequires: libxcb-util-devel
BuildRequires: libXdmcp-devel
BuildRequires: libXrender-devel
BuildRequires: libz-devel
## AUTOBUILDREQ-END
Obsoletes: splashutils
Obsoletes: miscsplashutils
Requires: plymouththeme
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%debug_package
%description
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.
%package devel
Summary: Devel package for %{name}
Group: Development/Libraries
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Obsoletes: splashutils-devel
%description devel
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.
This package contains static libraries and header files need for development.
%package gui
Summary: GUI log viewer for %{name}
Group: Graphical Desktop/Applications/Administration
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description gui
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.
This package contains the GUI components for boot log viewing.
%package x11
Summary: X11 renderer plugin for %{name}
Group: System/Libraries
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description x11
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.
This package contains the X11 renderer pluing.
%package themes
Summary: Plymouth default themes
Group: System/Kernel and Hardware
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description themes
Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background.
It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup.
For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface).
In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key.
This package contains the default themes provides with plymouth.
%prep
%setup -q
#%patch0 -p1
#%patch2 -p1
%patch3 -p1
%patch4 -p1
%build
%configure \
--with-logo=%{_datadir}/icons/hicolor/64x64/apps/openmamba.png \
--with-background-color=0x0BB03A \
--with-background-start-color-stop=0x00993F \
--with-background-end-color-stop=0x1CD434 \
--with-release-file=%{_sysconfdir}/%{_host_vendor}-release \
--with-system-root-install \
%ifnarch %{ix86} x86_64
--disable-libdrm_intel \
--disable-libdrm_radeon \
--disable-libdrm_nouveau \
%endif
%ifarch x86_64
--libexecdir=%{_prefix}/libexec \
%endif
--enable-pango \
--enable-systemd-integration
%make
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%makeinstall
install -D -m0755 %{SOURCE1} %{buildroot}%{_prefix}/libexec/initrd-functions
## don't quit plymouth on multi-user target to allow smooth transition to X in graphical target
#rm -f %{buildroot}/lib/systemd/system/multi-user.target.wants/plymouth-quit-wait.service
#rm -f %{buildroot}/lib/systemd/system/multi-user.target.wants/plymouth-quit.service
#install -d -m0755 %{buildroot}%{_prefix}/lib/tmpfiles.d
#cat > %{buildroot}%{_prefix}/lib/tmpfiles.d/plymouth.conf << _EOF
#f /var/spool/gdm/force-display-on-active-vt 0644 root root -
#_EOF
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%files
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/plymouth/plymouthd.conf
/bin/plymouth
/sbin/plymouthd
%{_bindir}/rhgb-client
/%{_lib}/libply-splash-core.so.*
/%{_lib}/libply.so.*
%{_libdir}/libply-boot-client.so.*
%{_libdir}/libply-splash-graphics.so.*
%dir %{_libdir}/plymouth
%{_libdir}/plymouth/details.*
%{_libdir}/plymouth/fade-throbber.*
%{_libdir}/plymouth/label.*
%{_libdir}/plymouth/renderers/drm.*
%{_libdir}/plymouth/renderers/frame-buffer.*
%{_libdir}/plymouth/script.*
%{_libdir}/plymouth/space-flares.*
%{_libdir}/plymouth/text.*
%{_libdir}/plymouth/throbgress.*
%{_libdir}/plymouth/two-step.*
/lib/systemd/system/plymouth-*.service
/lib/systemd/system/systemd-ask-password-plymouth.path
/lib/systemd/system/systemd-ask-password-plymouth.service
/lib/systemd/system/halt.target.wants/plymouth-halt.service
/lib/systemd/system/initrd-switch-root.target.wants/plymouth-switch-root.service
/lib/systemd/system/kexec.target.wants/plymouth-kexec.service
/lib/systemd/system/multi-user.target.wants/plymouth-quit-wait.service
/lib/systemd/system/multi-user.target.wants/plymouth-quit.service
/lib/systemd/system/poweroff.target.wants/plymouth-poweroff.service
/lib/systemd/system/reboot.target.wants/plymouth-reboot.service
/lib/systemd/system/sysinit.target.wants/plymouth-read-write.service
/lib/systemd/system/sysinit.target.wants/plymouth-start.service
#%{_prefix}/lib/tmpfiles.d/plymouth.conf
# NOTE: don't replace with %_libexecdir to avoid breaking x86_64
%{_prefix}/libexec/initrd-functions
%{_prefix}/libexec/plymouth/plymouth-generate-initrd
%{_prefix}/libexec/plymouth/plymouth-populate-initrd
%{_prefix}/libexec/plymouth/plymouth-update-initrd
%{_sbindir}/plymouth-set-default-theme
#%{_datadir}/gdm/autostart/LoginWindow/plymouth-log-viewer.desktop
%{_datadir}/plymouth/plymouthd.defaults
%dir %{_datadir}/plymouth/themes
%dir %{_datadir}/plymouth/themes/details
%{_datadir}/plymouth/themes/details/*
%dir %{_datadir}/plymouth/themes/text
%{_datadir}/plymouth/themes/text/*
%dir /var/lib/plymouth
#%dir /var/run/plymouth
%dir /var/spool/plymouth
%{_mandir}/man8/plymouth.8.gz
%doc AUTHORS COPYING
%files devel
%defattr(-,root,root)
%{_includedir}/plymouth-1
/%{_lib}/libply-splash-core.a
/%{_lib}/libply-splash-core.la
/%{_lib}/libply-splash-core.so
/%{_lib}/libply.a
/%{_lib}/libply.la
/%{_lib}/libply.so
%{_libdir}/libply-boot-client.a
%{_libdir}/libply-boot-client.la
%{_libdir}/libply-boot-client.so
%{_libdir}/libply-splash-graphics.a
%{_libdir}/libply-splash-graphics.la
%{_libdir}/libply-splash-graphics.so
%{_libdir}/pkgconfig/*.pc
#%doc ChangeLog NEWS README TODO
#%files gui
#%defattr(-,root,root)
#%{_bindir}/plymouth-log-viewer
%files x11
%defattr(-,root,root)
%{_libdir}/plymouth/renderers/x11.*
%files themes
%defattr(-,root,root)
%dir %{_datadir}/plymouth/themes/fade-in
%{_datadir}/plymouth/themes/fade-in/*
%dir %{_datadir}/plymouth/themes/glow
%{_datadir}/plymouth/themes/glow/*
%dir %{_datadir}/plymouth/themes/script
%{_datadir}/plymouth/themes/script/*
%dir %{_datadir}/plymouth/themes/solar
%{_datadir}/plymouth/themes/solar/*
%dir %{_datadir}/plymouth/themes/spinner
%{_datadir}/plymouth/themes/spinner/*
%dir %{_datadir}/plymouth/themes/spinfinity
%{_datadir}/plymouth/themes/spinfinity/*
%changelog
* Sat Aug 10 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.8-5mamba
- remove dir /var/run/plymouth
* Sun Jul 14 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.8-4mamba
- added upstream patch to fix crash on deactivate
- added debug package
* Sat Jun 29 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.8-3mamba
- restore plymouth-quit in multi-user target because of too many problems (thus no smooth transition for now)
* Mon Jun 24 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.8-2mamba
- remove multi-user target wants for plymouth-quit to allow smooth transition to graphical mode
* Thu Jun 20 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.8-1mamba
- update to 0.8.8
* Sun Mar 17 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.6.1-2mamba
- rebuilt with systemd integration
* Sun Oct 14 2012 Automatic Build System <autodist@mambasoft.it> 0.8.6.1-1mamba
- automatic version update by autodist
* Sun Sep 02 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.5.1-2mamba
- update and restore dont_disable_fb_if_console_cmdline_is_passed patch
* Thu Jun 28 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.5.1-1mamba
- update to 0.8.5.1
* Fri Mar 02 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3.git20120212-2mamba
- modify and reapply patch dont_disable_fb_if_console_cmdline_is_passed
* Sun Feb 12 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3.git20120212-1mamba
- update to 0.8.3.git20120212
* Tue Dec 06 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-10mamba
- move back details and text themes to main package
- added a patch that prevents plymouthd from disabling rendered output if console variable is passed in kernel cmdline
* Thu Dec 01 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-9mamba
- removed internal openmamba theme and added requirement for plymouththeme
* Thu Sep 15 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-8mamba
- also obsolete splash-theme-openmamba and splash-theme-openmamba1
* Fri Sep 09 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-7mamba
- obsolete splashutils, miscsplashutils and splash-theme-openmamba1
- provide and obsolete splash-theme-openmamba
* Sat Apr 30 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-6mamba
- add patch to fix echo problem on first tty console (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595178)
* Tue Sep 14 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-5mamba
- openmamba theme: fixed sprite scaling
* Fri Sep 10 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-4mamba
- configured with green colors
- moved label.so from -x11 to plymouth package to enable message display support
- added openmamba theme and set as default
* Mon Sep 06 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-3mamba
- added -x11 and -gui subpackages to remove X11 dependencies from main package
* Sun Sep 05 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-2mamba
- configured with openmamba logo and fixed release file path
- added png 1.4 patch
- added default splash patch
* Fri Aug 06 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 0.8.3-1mamba
- package created by autospec