summaryrefslogtreecommitdiffstats
path: root/src/os-plugins/plugins/bootsplash
diff options
context:
space:
mode:
Diffstat (limited to 'src/os-plugins/plugins/bootsplash')
-rw-r--r--src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm253
-rw-r--r--src/os-plugins/plugins/bootsplash/XX_bootsplash.sh56
-rw-r--r--src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0bin0 -> 822344 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1bin0 -> 18948 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1bin0 -> 7804 bytes
-rwxr-xr-xsrc/os-plugins/plugins/bootsplash/files/sbin/splashybin0 -> 54215 bytes
-rwxr-xr-xsrc/os-plugins/plugins/bootsplash/files/sbin/splashy_configbin0 -> 66416 bytes
-rwxr-xr-xsrc/os-plugins/plugins/bootsplash/files/sbin/splashy_updatebin0 -> 9611 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf0
-rw-r--r--src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.pngbin0 -> 89872 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml138
-rw-r--r--src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9bin0 -> 80552 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9bin0 -> 474652 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1bin0 -> 105596 bytes
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh18
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh1
-rw-r--r--src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh1
28 files changed, 478 insertions, 0 deletions
diff --git a/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm b/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm
new file mode 100644
index 00000000..ef1db778
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/OpenSLX/OSPlugin/bootsplash.pm
@@ -0,0 +1,253 @@
+# Copyright (c) 2007..2010 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# bootsplash.pm
+# - implementation of the 'bootsplash' plugin, which installs splashy
+# into the ramfs, including changeing theme
+# -----------------------------------------------------------------------------
+package OpenSLX::OSPlugin::bootsplash;
+
+use strict;
+use warnings;
+
+use base qw(OpenSLX::OSPlugin::Base);
+
+use File::Path;
+
+use OpenSLX::Basics;
+use OpenSLX::Utils;
+use OpenSLX::DistroUtils;
+
+sub new
+{
+ my $class = shift;
+
+ my $self = {
+ name => 'bootsplash',
+ };
+
+ mkpath("$openslxConfig{'config-path'}/plugins/bootsplash/themes");
+
+ return bless $self, $class;
+}
+
+sub getInfo
+{
+ my $self = shift;
+
+ return {
+ description => unshiftHereDoc(<<' End-of-Here'),
+ Installs Splashy as bootsplash into ramfs and sets a Theme.
+ End-of-Here
+ precedence => 30,
+ };
+}
+
+sub getAttrInfo
+{
+ my $self = shift;
+
+ return {
+ 'bootsplash::active' => {
+ applies_to_systems => 1,
+ applies_to_clients => 1,
+ description => unshiftHereDoc(<<' End-of-Here'),
+ should the 'bootsplash'-plugin be executed during boot?
+ End-of-Here
+ content_regex => qr{^(0|1)$},
+ content_descr => '1 means active - 0 means inactive',
+ default => '1',
+ },
+
+ 'bootsplash::theme' => {
+ applies_to_systems => 1,
+ applies_to_clients => 1,
+ description => unshiftHereDoc(<<' End-of-Here'),
+ name of the theme to apply to bootsplash (unset for no theme)
+ End-of-Here
+ content_regex => undef,
+ content_descr => undef,
+ default => 'openslx',
+ },
+ };
+}
+
+sub suggestAdditionalKernelParams
+{
+ my $self = shift;
+ my $makeInitRamFSEngine = shift;
+
+ my @suggestedParams;
+
+ # add vga=0x317 unless explicit vga-mode is already set
+ if (!$makeInitRamFSEngine->haveKernelParam(qr{\bvga=})) {
+ push @suggestedParams, 'vga=0x317';
+ }
+
+ # add quiet, if not already set
+ if (!$makeInitRamFSEngine->haveKernelParam('quiet')) {
+ push @suggestedParams, 'quiet';
+ }
+
+ return @suggestedParams;
+}
+
+sub suggestAdditionalKernelModules
+{
+ my $self = shift;
+ my $makeInitRamFSEngine = shift;
+
+ my @suggestedModules;
+
+ # Ubuntu needs vesafb and fbcon (which drags along some others)
+ #if ($makeInitRamFSEngine->{'distro-name'} =~ m{^ubuntu}i) {
+ push @suggestedModules, qw( i810 i830 i915 mga nouveau r128 radeon savage sis tdfx ttm via drm fbcon vesafb );
+ #}
+
+ return @suggestedModules;
+}
+
+sub installationPhase
+{
+ my $self = shift;
+ my $info = shift;
+
+ $self->{pluginRepositoryPath} = $info->{'plugin-repo-path'};
+ $self->{openslxBasePath} = $info->{'openslx-base-path'};
+
+ my $splashyPath =
+ "$self->{openslxBasePath}/lib/plugins/bootsplash/files";
+ my $pluginRepoPath = "$self->{pluginRepositoryPath}";
+
+ my $initFile = newInitFile();
+ my $do_stop = unshiftHereDoc(<<' End-of-Here');
+ /opt/openslx/plugin-repo/bootsplash/bin/splashy shutdown
+ sleep 1
+ /opt/openslx/plugin-repo/bootsplash/bin/splashy_update \
+ "progress 100" 2>/dev/null
+ End-of-Here
+
+ # add helper functions to initfile
+ # first parameter name of the function
+ # second parameter content of the function
+ $initFile->addFunction('do_start', " : # do nothing here");
+ $initFile->addFunction('do_stop', $do_stop);
+ $initFile->addFunction('do_restart', " : # do nothing here");
+
+ # place a call of the helper function in the stop block
+ # of the init file
+ # first parameter name of the function
+ # second parameter name of the block
+ $initFile->addFunctionCall('do_start', 'start');
+ $initFile->addFunctionCall('do_stop', 'stop');
+ $initFile->addFunctionCall('do_restart', 'restart');
+
+ my $distro = (split('-',$self->{'os-plugin-engine'}->distroName()))[0];
+
+ # write initfile to filesystem
+ spitFile(
+ "$pluginRepoPath/bootsplash.halt",
+ getInitFileForDistro($initFile, ucfirst($distro))
+ );
+
+ # copy splashy(_update) into plugin-repo folder
+ mkpath("$pluginRepoPath/sbin");
+ mkpath("$pluginRepoPath/lib");
+ mkpath("$pluginRepoPath/usr/lib");
+ slxsystem("cp -a $splashyPath/sbin/* $pluginRepoPath/sbin/;
+ cp -p $splashyPath/lib/* $pluginRepoPath/lib/;
+ cp -p $splashyPath/usr/lib/* $pluginRepoPath/usr/lib/") == 0
+ or die _tr(
+ "unable to copy splashy to $pluginRepoPath"
+ );
+ # create a proper (distro specific) runlevel script for halt
+ #my $initfile = newInitFile();
+ #$initfile->addDaemon("");
+ #
+ #my $runlevelscript = getInitFileForDistro($initfile, "ubuntu");
+
+ return;
+}
+
+sub removalPhase
+{
+ my $self = shift;
+ my $info = shift;
+
+ return;
+}
+
+
+sub copyRequiredFilesIntoInitramfs
+{
+ my $self = shift;
+ my $targetPath = shift;
+ my $attrs = shift;
+ my $makeInitRamFSEngine = shift;
+
+ my $bootsplashDir = "$openslxConfig{'base-path'}/lib/plugins/bootsplash";
+ my $bootsplashConfigDir
+ = "$openslxConfig{'config-path'}/plugins/bootsplash";
+ my $bootsplashTheme = $attrs->{'bootsplash::theme'} || '';
+ my $splashyThemeDir = '';
+
+ if ($bootsplashTheme) {
+ my $bootsplashThemeDir = "$bootsplashDir/files/themes/$bootsplashTheme";
+ my $altThemeDir = "$bootsplashConfigDir/themes/$bootsplashTheme";
+ if (-d $bootsplashThemeDir) {
+ $splashyThemeDir = "$bootsplashThemeDir";
+ }
+ elsif (-d $altThemeDir) {
+ $splashyThemeDir = "$altThemeDir";
+ }
+ if (-d $splashyThemeDir) {
+ my $splashyPath = "$bootsplashDir/files";
+ $makeInitRamFSEngine->addCMD(
+ "cp -p $splashyPath/sbin/splashy* $targetPath/sbin/;
+ cp -p $splashyPath/lib/lib* $targetPath/lib/;
+ cp -p $splashyPath/usr/lib/lib* $targetPath/usr/lib/"
+ );
+ $makeInitRamFSEngine->addCMD(
+ "mkdir -p $targetPath/etc/splashy/themes"
+ );
+ $makeInitRamFSEngine->addCMD(
+ "cp -a $splashyThemeDir $targetPath/etc/splashy/themes/"
+ );
+ my $defSplashyTheme = "/etc/splashy/themes/$bootsplashTheme";
+ my $splashyConfig = unshiftHereDoc(<<" End-of-Here");
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!-- Autogenerated by OpenSLX-plugin 'bootsplash' -->
+ <splashy>
+ <!-- themes directory: -->
+ <themes>/etc/splashy/themes</themes>
+ <!-- current theme (relative path) -->
+ <current_theme>$bootsplashTheme</current_theme>
+ <!-- full path to theme, fall back in case of problems -->
+ <default_theme>$defSplashyTheme</default_theme>
+ <pid>/etc/splashy/splashy.pid</pid>
+ <fifo>/dev/.initramfs/splashy.fifo</fifo>
+ </splashy>
+ End-of-Here
+ $makeInitRamFSEngine->addCMD( {
+ file => "$targetPath/etc/splashy/config.xml",
+ content => $splashyConfig,
+ } );
+ }
+ }
+ else {
+ $bootsplashTheme = '<none>';
+ }
+
+ vlog(1, _tr("bootsplash-plugin: bootsplash=%s", $bootsplashTheme));
+
+ return;
+}
+
+1;
diff --git a/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh b/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh
new file mode 100644
index 00000000..372e025d
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/XX_bootsplash.sh
@@ -0,0 +1,56 @@
+# Copyright (c) 2007..2008 - RZ Uni Freiburg
+# Copyright (c) 2008 - 2009 OpenSLX GmbH
+#
+# This program/file is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org
+#
+# stage3 part of 'bootsplash' plugin - the runlevel script
+#
+# script is included from init via the "." load function - thus it has all
+# variables and functions available
+
+if [ -e /initramfs/plugin-conf/bootsplash.conf ]; then
+ . /initramfs/plugin-conf/bootsplash.conf
+ if [ $bootsplash_active -ne 0 ]; then
+ if [ ${no_bootsplash} -eq 0 ]; then
+ # create a runlevelscript that will stop splashy before the start of KDM
+ d_mkrlscript init splashy.boot ""
+ echo -e "\tLD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib/ \
+ /opt/openslx/plugin-repo/bootsplash/sbin/splashy_update \
+ exit 2>/dev/null \
+ \n\ttype killall >/dev/null 2>&1 && killall -9 splashy" \
+ >>/mnt/etc/init.d/splashy.boot
+ d_mkrlscript close splashy.boot ""
+
+ cp /mnt/opt/openslx/plugin-repo/bootsplash/bootsplash.halt \
+ /mnt/etc/init.d/bootsplash.halt
+ chmod 744 /mnt/etc/init.d/bootsplash.halt
+ cp -a /etc/splashy /mnt/etc/
+ rllinker "bootsplash.halt" 1 1
+
+ # fix for ubuntu 1004+
+ for i in init init.inactive; do
+ for j in kdm gdm xdm lxdm; do
+ dmfile=/mnt/etc/${i}/${j}.conf
+ if [ -f $dmfile ]; then
+ sed -e "s,^script.*,script\n\t#0x42#," \
+ -e "s,#0x42#,# shutdown splashy - added by splashy plugin\n\t#0x42#," \
+ -e "s,#0x42#,if [ ! \"x$(ps aux |grep splashy |grep -v grep | wc -l)\" -eq \"x0\" ]; then\n\t#0x42#, " \
+ -e "s,#0x42#, LD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib/ \\\\\n\t#0x42#," \
+ -e "s,#0x42#, /opt/openslx/plugin-repo/bootsplash/sbin/splashy_update exit \\\\\n\t#0x42#," \
+ -e "s,#0x42#, 2>/dev/null \n\t#0x42#," \
+ -e "s,#0x42#,fi \n\t#0x42#," \
+ -e "s,#0x42#,#splashy-stop-done#," \
+ -i $dmfile 2>/dev/null &
+ fi
+ done
+ done
+ fi
+ fi
+fi
+
diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0 b/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0
new file mode 100644
index 00000000..e96b345b
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/lib/libglib-2.0.so.0
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1 b/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1
new file mode 100644
index 00000000..817c6d2d
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/lib/libsplashy.so.1
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1 b/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1
new file mode 100644
index 00000000..71c251d1
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/lib/libsplashycnf.so.1
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy b/src/os-plugins/plugins/bootsplash/files/sbin/splashy
new file mode 100755
index 00000000..fee26325
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/sbin/splashy
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config
new file mode 100755
index 00000000..1e048366
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_config
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update
new file mode 100755
index 00000000..cb624fde
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/sbin/splashy_update
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf b/src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/themes/openslx/blank.ttf
diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png b/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png
new file mode 100644
index 00000000..e7f996c6
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/themes/openslx/openslx.png
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml b/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml
new file mode 100644
index 00000000..48854551
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/themes/openslx/theme.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Automatically generated by splashy_config. Do not edit -->
+<splashy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://splashy.alioth.debian.org/schemas/1.1/themes.xsd">
+ <info>
+ <!-- theme name is case sensitive. use directory name -->
+ <name>openslx</name>
+ <version>0.2</version>
+ <description>OpenSLX Splashy Theme</description>
+ <urls>http://openslx.com</urls>
+ <author>mj0@uni-freiburg.de</author>
+ </info>
+ <progressbar>
+ <!-- here are tags to set the bar... x coordinate,
+ y coordinate, width and height are for the progress bar.
+ Remember that x, y, width and height are expressed in percentage -->
+ <dimension>
+ <x>0</x>
+ <y>42</y>
+ <width>100</width>
+ <height>16</height>
+ </dimension>
+ <!-- here you can set the color of the progressbar...
+ set the amount of red, green, blue and alpha channel.
+ Remember that the max value is 255 and the minumun value is 0-->
+ <color>
+ <red>128</red>
+ <green>147</green>
+ <blue>161</blue>
+ <alpha>255</alpha>
+ </color>
+ <!-- whether or not you want a border around the progressbar. default: no -->
+ <border>
+ <enable>no</enable>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ <alpha>0</alpha>
+ </color>
+ </border>
+ <!-- here you can set the color of the progressbar background
+ set the amount of red, green, blue and alpha channel.
+ Remember that the max value is 255 and the minumun value is 0-->
+ <background>
+ <color>
+ <red>240</red>
+ <green>240</green>
+ <blue>240</blue>
+ <alpha>255</alpha>
+ </color>
+ </background>
+ <direction>
+ <boot>forward</boot>
+ <shutdown>backward</shutdown>
+ <resume>forward</resume>
+ <suspend>backward</suspend>
+ </direction>
+ <visibility>
+ <boot>yes</boot>
+ <shutdown>yes</shutdown>
+ <resume>yes</resume>
+ <suspend>yes</suspend>
+ </visibility>
+ </progressbar>
+ <!-- conventional path: /etc/splashy/themes + theme-name -->
+ <background>
+ <boot>openslx.png</boot>
+ <shutdown>openslx.png</shutdown>
+ <resume>openslx.png</resume>
+ <suspend>openslx.png</suspend>
+ <errorimg>openslx.png</errorimg>
+ <!-- resolution of the images. this value affects where
+ the progressbar will be drawn. If VALUE <= 0, then percentages
+ of the screen width and hight will be assumed -->
+ <dimension>
+ <!-- NOTE: x and y are not used by splashy -->
+ <x>0</x>
+ <y>0</y>
+ <width>0</width>
+ <height>0</height>
+ </dimension>
+ </background>
+ <textbox>
+ <!-- whether you want the textbox always
+ shown or no. If no, it will be shown only on error,
+ see autoverboseonerror -->
+ <enable>no</enable>
+ <!-- here are tags to set the text area... x coordinate,
+ y coordinate, width and height are for the text area.
+ Remember that x, y, width and height are expressed in percentage
+ or pixel units -->
+ <dimension>
+ <x>1</x>
+ <y>61</y>
+ <width>98</width>
+ <height>38</height>
+ </dimension>
+ <!-- here you can set the color of the text area...
+ set the amount of red, green, blue and alpha channel.
+ Remember that the max value is 255 and the minumun value is 0-->
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ <alpha>0</alpha>
+ </color>
+ <!-- whether or not you want a border around the progressbar. default: no -->
+ <border>
+ <enable>no</enable>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ <alpha>0</alpha>
+ </color>
+ </border>
+ <text>
+ <!-- font file to use, path relative to theme -->
+ <font>
+ <file>blank.ttf</file>
+ <height>2</height>
+ </font>
+ <!-- here you can set the color of the text/font...
+ set the amount of red, green, blue and alpha channel.
+ Remember that the max value is 255 and the minumun value is 0-->
+ <color>
+ <red>62</red>
+ <green>93</green>
+ <blue>114</blue>
+ <alpha>0</alpha>
+ </color>
+ </text>
+ </textbox>
+ <autoverboseonerror>no</autoverboseonerror>
+ <fadein>no</fadein>
+ <fadeout>no</fadeout>
+</splashy>
diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9
new file mode 100644
index 00000000..fbe2d611
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirect-1.2.so.9
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9
new file mode 100644
index 00000000..76b77716
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/usr/lib/libdirectfb-1.2.so.9
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1 b/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1
new file mode 100644
index 00000000..513b3508
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/files/usr/lib/libmagic.so.1
Binary files differ
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh
new file mode 100644
index 00000000..a54fde96
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/05-have-kernelvars/bootsplash.sh
@@ -0,0 +1,18 @@
+# splashy depends on /proc/fb with VESA
+# only activate with kernel option quiet and no debuglevel
+if grep -q ".*" /proc/fb > /dev/null 2>&1 \
+ && grep -qie " quiet " -qie "^quiet " -qie " quiet$" /proc/cmdline \
+ > /dev/null 2>&1 \
+ && [ $DEBUGLEVEL -eq 0 ] \
+ && [ -e /bin/splashy ] ; then
+ export no_bootsplash=0
+else
+ export no_bootsplash=1
+fi
+
+if [ ${no_bootsplash} -eq 0 ]; then
+ /bin/splashy boot 2>/dev/null
+ # add splashy.boot runlevel script
+ export D_SPLASHY=splashy.boot
+fi
+
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh
new file mode 100644
index 00000000..7f3d563e
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/10-nw-if-config/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 10" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh
new file mode 100644
index 00000000..d8155ff0
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/20-nw-bridge-config/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 20" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh
new file mode 100644
index 00000000..be6ac567
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/25-have-ip-config/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 25" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh
new file mode 100644
index 00000000..606eb694
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/35-have-network-root/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 35" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh
new file mode 100644
index 00000000..d5fc62ec
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/40-started-hw-config/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 40" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh
new file mode 100644
index 00000000..4b7e9c78
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/50-have-layered-fs/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 50" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh
new file mode 100644
index 00000000..9c3bd20f
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/60-have-servconfig/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 60" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh
new file mode 100644
index 00000000..fcd0c410
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/70-before-plugins/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 70" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh
new file mode 100644
index 00000000..0abfa5b2
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/80-after-plugins/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 80" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh
new file mode 100644
index 00000000..8738e454
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/85-have-initial-boot/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 85" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh
new file mode 100644
index 00000000..2546d298
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/90-postinit-done/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 90" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh
new file mode 100644
index 00000000..5ff86715
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/95-cleanup/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 95" >/dev/null 2>&1
diff --git a/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh b/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh
new file mode 100644
index 00000000..93673915
--- /dev/null
+++ b/src/os-plugins/plugins/bootsplash/init-hooks/99-handing-over/bootsplash.sh
@@ -0,0 +1 @@
+[ ${no_bootsplash} -eq 0 ] && /bin/splashy_update "progress 100" >/dev/null 2>&1