From 8501d61cb6c8f6d41cd35ca53557128a66861dac Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sat, 6 Jan 2024 10:21:49 +0100 Subject: [PATCH] remove dir /var/run/plymouth [release 0.8.8-5mamba;Sat Aug 10 2013] --- README.md | 5 + initrd-functions | 359 ++++++++++++++++++ plymouth-0.8.3-fix_tty1_echo.patch | 12 + plymouth-0.8.3-libpng-1.4.patch | 12 + ...able_fb_if_console_cmdline_is_passed.patch | 17 + plymouth-0.8.8-fix-crash-on-deactivate.patch | 137 +++++++ plymouth.spec | 313 +++++++++++++++ 7 files changed, 855 insertions(+) create mode 100644 initrd-functions create mode 100644 plymouth-0.8.3-fix_tty1_echo.patch create mode 100644 plymouth-0.8.3-libpng-1.4.patch create mode 100644 plymouth-0.8.5-dont_disable_fb_if_console_cmdline_is_passed.patch create mode 100644 plymouth-0.8.8-fix-crash-on-deactivate.patch create mode 100644 plymouth.spec diff --git a/README.md b/README.md index 4fcce72..f2a74c7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ # 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. + diff --git a/initrd-functions b/initrd-functions new file mode 100644 index 0000000..2136ac5 --- /dev/null +++ b/initrd-functions @@ -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 . +# +# Authors: +# Peter Jones +# Jeremy Katz +# Jakub Jelinek +# +# + +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 < []" + 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 diff --git a/plymouth-0.8.3-fix_tty1_echo.patch b/plymouth-0.8.3-fix_tty1_echo.patch new file mode 100644 index 0000000..4dc79e9 --- /dev/null +++ b/plymouth-0.8.3-fix_tty1_echo.patch @@ -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; diff --git a/plymouth-0.8.3-libpng-1.4.patch b/plymouth-0.8.3-libpng-1.4.patch new file mode 100644 index 0000000..16c85cc --- /dev/null +++ b/plymouth-0.8.3-libpng-1.4.patch @@ -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); diff --git a/plymouth-0.8.5-dont_disable_fb_if_console_cmdline_is_passed.patch b/plymouth-0.8.5-dont_disable_fb_if_console_cmdline_is_passed.patch new file mode 100644 index 0000000..0b36ff1 --- /dev/null +++ b/plymouth-0.8.5-dont_disable_fb_if_console_cmdline_is_passed.patch @@ -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); diff --git a/plymouth-0.8.8-fix-crash-on-deactivate.patch b/plymouth-0.8.8-fix-crash-on-deactivate.patch new file mode 100644 index 0000000..66fbaad --- /dev/null +++ b/plymouth-0.8.8-fix-crash-on-deactivate.patch @@ -0,0 +1,137 @@ +From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001 +From: Ray Strode +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 +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 +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 + diff --git a/plymouth.spec b/plymouth.spec new file mode 100644 index 0000000..4ded881 --- /dev/null +++ b/plymouth.spec @@ -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 +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 0.8.8-5mamba +- remove dir /var/run/plymouth + +* Sun Jul 14 2013 Silvan Calarco 0.8.8-4mamba +- added upstream patch to fix crash on deactivate +- added debug package + +* Sat Jun 29 2013 Silvan Calarco 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 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 0.8.8-1mamba +- update to 0.8.8 + +* Sun Mar 17 2013 Silvan Calarco 0.8.6.1-2mamba +- rebuilt with systemd integration + +* Sun Oct 14 2012 Automatic Build System 0.8.6.1-1mamba +- automatic version update by autodist + +* Sun Sep 02 2012 Silvan Calarco 0.8.5.1-2mamba +- update and restore dont_disable_fb_if_console_cmdline_is_passed patch + +* Thu Jun 28 2012 Silvan Calarco 0.8.5.1-1mamba +- update to 0.8.5.1 + +* Fri Mar 02 2012 Silvan Calarco 0.8.3.git20120212-2mamba +- modify and reapply patch dont_disable_fb_if_console_cmdline_is_passed + +* Sun Feb 12 2012 Silvan Calarco 0.8.3.git20120212-1mamba +- update to 0.8.3.git20120212 + +* Tue Dec 06 2011 Silvan Calarco 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 0.8.3-9mamba +- removed internal openmamba theme and added requirement for plymouththeme + +* Thu Sep 15 2011 Silvan Calarco 0.8.3-8mamba +- also obsolete splash-theme-openmamba and splash-theme-openmamba1 + +* Fri Sep 09 2011 Silvan Calarco 0.8.3-7mamba +- obsolete splashutils, miscsplashutils and splash-theme-openmamba1 +- provide and obsolete splash-theme-openmamba + +* Sat Apr 30 2011 Silvan Calarco 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 0.8.3-5mamba +- openmamba theme: fixed sprite scaling + +* Fri Sep 10 2010 Silvan Calarco 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 0.8.3-3mamba +- added -x11 and -gui subpackages to remove X11 dependencies from main package + +* Sun Sep 05 2010 Silvan Calarco 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 0.8.3-1mamba +- package created by autospec