From 05408d178b3bb65f895b011705ade34c34b8dce6 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 15:54:43 -0700
Subject: fbsplash:Bumped/Updated for LinHES 7.

---
 abs/core-testing/fbsplash/PKGBUILD                 | 103 ++--
 abs/core-testing/fbsplash/__changelog              |   4 -
 abs/core-testing/fbsplash/darch.tar.bz2            | Bin 1572821 -> 0 bytes
 abs/core-testing/fbsplash/extra/encrypt_hook.patch |  24 -
 abs/core-testing/fbsplash/fbcondecor.conf          |   6 +
 abs/core-testing/fbsplash/fbcondecor.daemon        |  55 ++
 abs/core-testing/fbsplash/fbsplash-basic.sh        | 201 +++++++
 abs/core-testing/fbsplash/fbsplash.bootsteps       |   1 -
 abs/core-testing/fbsplash/fbsplash.conf            |   8 -
 abs/core-testing/fbsplash/fbsplash.daemon          |  56 --
 abs/core-testing/fbsplash/fbsplash.git.patch       | 166 ++++++
 abs/core-testing/fbsplash/fbsplash.initcpio_hook   | 102 ++++
 .../fbsplash/fbsplash.initcpio_install             | 117 +++-
 abs/core-testing/fbsplash/fbsplash.inithooks       |  91 ---
 abs/core-testing/fbsplash/fbsplash.install         |  36 +-
 abs/core-testing/fbsplash/splash-functions-arch.sh |  71 ---
 abs/core-testing/fbsplash/splash-functions.sh      | 618 ---------------------
 abs/core-testing/fbsplash/splash.conf              |  63 +++
 18 files changed, 768 insertions(+), 954 deletions(-)
 delete mode 100644 abs/core-testing/fbsplash/__changelog
 delete mode 100644 abs/core-testing/fbsplash/darch.tar.bz2
 delete mode 100644 abs/core-testing/fbsplash/extra/encrypt_hook.patch
 create mode 100644 abs/core-testing/fbsplash/fbcondecor.conf
 create mode 100644 abs/core-testing/fbsplash/fbcondecor.daemon
 create mode 100644 abs/core-testing/fbsplash/fbsplash-basic.sh
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.bootsteps
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.conf
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.daemon
 create mode 100644 abs/core-testing/fbsplash/fbsplash.git.patch
 create mode 100644 abs/core-testing/fbsplash/fbsplash.initcpio_hook
 delete mode 100644 abs/core-testing/fbsplash/fbsplash.inithooks
 delete mode 100644 abs/core-testing/fbsplash/splash-functions-arch.sh
 delete mode 100644 abs/core-testing/fbsplash/splash-functions.sh
 create mode 100644 abs/core-testing/fbsplash/splash.conf

diff --git a/abs/core-testing/fbsplash/PKGBUILD b/abs/core-testing/fbsplash/PKGBUILD
index 736da1f..dcec71a 100644
--- a/abs/core-testing/fbsplash/PKGBUILD
+++ b/abs/core-testing/fbsplash/PKGBUILD
@@ -1,56 +1,71 @@
-# Maintainer: Greg Helton <gt@fallendusk.org>
+# Maintainer: Heiko Baums <heiko@baums-on-web.de>
+# Contributor: Kurt J. Bosch <kjb-temp-2009 at alpenjodel.de>
 
 pkgname=fbsplash
 pkgver=1.5.4.3
-pkgrel=15
+pkgrel=33
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
 license=('GPL')
-backup=('etc/conf.d/fbsplash.conf' 'etc/conf.d/fbsplash.bootsteps')
-makedepends=('klibc')
-depends=('initscripts' 'miscsplashutils' 'libjpeg' 'libpng' 'freetype2-static' 'gpm' 'libmng' 'which' 'linhes-splash') 
-conflicts=('bootsplash' 'gensplash')
+depends=('miscsplashutils' 'freetype2' 'libjpeg' 'libpng' 'libmng' 'lcms' 'gpm' 'linhes-splash') 
+optdepends=('kernel26-fbcondecor: enable console background images'
+            'fbsplash-extras: additional functionality like daemon icons'
+            'uswsusp-fbsplash: suspend to disk with fbsplash'
+            'python: convert themes from splashy to fbsplash')
+conflicts=('fbsplash-scripts' 'initscripts-extras-fbsplash')
+options=('!makeflags')
+backup=('etc/conf.d/fbcondecor' 'etc/conf.d/splash')
 install=fbsplash.install
-source=(http://download.berlios.de/fbsplash/splashutils-${pkgver}.tar.bz2 \
-	http://code.thewrecker.net/files/darch.tar.bz2 \
-	fbsplash.inithooks \
-	splash-functions-arch.sh \
-	fbsplash.conf \
-	fbsplash.initcpio_install \
-	fbsplash.daemon fbsplash.bootsteps)
+source=(http://dev.gentoo.org/~spock/projects/gensplash/archive/splashutils-${pkgver}.tar.bz2
+        fbsplash.git.patch
+        splash.conf
+        fbsplash-basic.sh
+        fbsplash.initcpio_install
+        fbsplash.initcpio_hook
+        fbcondecor.daemon
+        fbcondecor.conf)
+
 build() {
-	cd ${startdir}/src/splashutils-${pkgver}
-
-	# Configure, make, and install
-	./configure --prefix=/usr --sysconfdir=/etc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel
-	make || return 1
- 	cp -f ${startdir}/splash-functions.sh  ${startdir}/src/splashutils-1.5.4.3/scripts/splash-functions.sh
-	make DESTDIR=${startdir}/pkg install || return 1
-	
-	# Create directories
-	mkdir -p ${startdir}/pkg/lib/splash/cache
-	mkdir -p ${startdir}/pkg/etc/splash
-	mkdir -p ${startdir}/pkg/etc/rc.d/functions.d
-
-	# Install scripts
-	install -D -m644 ${startdir}/src/fbsplash.initcpio_install ${startdir}/pkg/lib/initcpio/install/fbsplash
-	install -D -m644 ${startdir}/src/fbsplash.conf ${startdir}/pkg/etc/conf.d/fbsplash.conf
-	install -D -m744 ${startdir}/src/fbsplash.daemon ${startdir}/pkg/etc/rc.d/fbsplash
-	install -D -m744 ${startdir}/src/splash-functions-arch.sh ${startdir}/pkg/sbin/splash-functions-arch.sh
-	install -D -m755 $startdir/src/fbsplash.bootsteps ${startdir}/pkg/etc/conf.d/fbsplash.bootsteps
-
-	# install darch fbsplash theme
-	cp -r ${startdir}/src/darch ${startdir}/pkg/etc/splash/darch
-	
-	# install initscripts hooks
-	install -D -m744 ${startdir}/src/fbsplash.inithooks ${startdir}/pkg/etc/rc.d/functions.d/fbsplash.sh
+  cd ${srcdir}/splashutils-${pkgver}
+
+  # patch for building splashutils with glibc and dynamical linking
+  patch -Np0 -i ${srcdir}/fbsplash.git.patch || return 1
+  autoreconf
+
+  # fix fbcondecor_ctl splash type
+  sed -e 's,fbsplash_lib_init(fbspl_bootup),fbsplash_lib_init(fbspl_undef),' -i src/fbcon_decor_ctl.c
+
+  ./configure --prefix=/usr --sysconfdir=/etc --without-klibc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+
+  cd ${pkgdir}
+
+  # fix duplicate slashes to get splash_cache_cleanup grep to work
+  sed -r -e 's,^(export spl_.*="/)/+,\1,' -i sbin/splash-functions.sh
+
+  # fix the path to splash_util
+  sed -r -e 's,^(export spl_util=)\"/bin/,\1"/sbin/,' -i sbin/splash-functions.sh
+
+  # provide the mountpoint needed by splash-functions.sh
+  mkdir -p lib/splash/{cache,tmp}
+
+  # Install fbsplash scripts and config file
+  install -D -m644 ${srcdir}/splash.conf etc/conf.d/splash
+  install -D -m644 ${srcdir}/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh
+  install -D -m644 ${srcdir}/fbsplash.initcpio_install lib/initcpio/install/fbsplash
+  install -D -m644 ${srcdir}/fbsplash.initcpio_hook lib/initcpio/hooks/fbsplash
 
+  # Install fbcodecor script and config file
+  install -D -m644 ${srcdir}/fbcondecor.conf etc/conf.d/fbcondecor
+  install -D -m755 ${srcdir}/fbcondecor.daemon etc/rc.d/fbcondecor
 }
 md5sums=('c722cd4148817b9c50381d9bdc1ea6ef'
-         '4ea33e99330abf4a9a468ac8c0ba48ca'
-         '33b3c7c2050670db0e8b2efd9e088ed9'
-         '8ffb29400a2518b16f3dbca653855268'
-         '82ef6f37c2795db1b4fec0e6f8443c66'
-         '21380586a5dafbf7045886ea4374ab65'
-         'bb5154529e4b5fbc701cf4540c15a61a')
+         '3a338c60ed0710c8b7e3e08929db521a'
+         'a8f40c99a32d20d505aa24fbbd703008'
+         'e69753dac753b8ba4e2e29ef5a9c46ca'
+         'e29b3db6ee059b9950febe976a0f2881'
+         'ac2351bc918b101bb9249ce8940722be'
+         '715926469d05eecd345c052e6248ca32'
+         'b3db9d4fd902b62ac9e38589677e2d16')
diff --git a/abs/core-testing/fbsplash/__changelog b/abs/core-testing/fbsplash/__changelog
deleted file mode 100644
index d673fc0..0000000
--- a/abs/core-testing/fbsplash/__changelog
+++ /dev/null
@@ -1,4 +0,0 @@
-modify  splash-functions to not use chvt for verbose
-modify  fbsplash.inithooks to not display "setting up splash"
-added default value for fbsplash.bootsteps
-
diff --git a/abs/core-testing/fbsplash/darch.tar.bz2 b/abs/core-testing/fbsplash/darch.tar.bz2
deleted file mode 100644
index 0faab98..0000000
Binary files a/abs/core-testing/fbsplash/darch.tar.bz2 and /dev/null differ
diff --git a/abs/core-testing/fbsplash/extra/encrypt_hook.patch b/abs/core-testing/fbsplash/extra/encrypt_hook.patch
deleted file mode 100644
index f059048..0000000
--- a/abs/core-testing/fbsplash/extra/encrypt_hook.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- /lib/initcpio/hooks/encrypt	2008-09-12 12:29:38.000000000 -0400
-+++ encrypt.1	2008-10-28 08:13:34.000000000 -0400
-@@ -1,6 +1,7 @@
- # vim: set ft=sh:
- # TODO this one needs some work to work with lots of different
- #       encryption schemes
-+. /sbin/splash-functions.sh
- run_hook ()
- {
-     /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
-@@ -59,6 +60,7 @@ run_hook ()
-                 fi
-             fi
-             # Ask for a passphrase
-+	    splash_verbose
-             if [ ${dopassphrase} -gt 0 ]; then
-                 echo ""
-                 echo "A password is required to access the ${cryptname} volume:"
-@@ -119,4 +121,5 @@ run_hook ()
-         fi
-         nuke ${ckeyfile}
-     fi
-+    splash_silent
- }
diff --git a/abs/core-testing/fbsplash/fbcondecor.conf b/abs/core-testing/fbsplash/fbcondecor.conf
new file mode 100644
index 0000000..18db844
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbcondecor.conf
@@ -0,0 +1,6 @@
+
+# /etc/conf.d/fbcondecor
+#
+
+## Virtual terminals to load with fbcondecor backgrounds
+SPLASH_TTYS="1 2 3 4 5 6"
diff --git a/abs/core-testing/fbsplash/fbcondecor.daemon b/abs/core-testing/fbsplash/fbcondecor.daemon
new file mode 100644
index 0000000..4d78ea4
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbcondecor.daemon
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# /etc/rc.d/fbcondecor
+
+# Set FbConDecor backgrounds
+#
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/fbcondecor
+. /sbin/splash-functions.sh
+
+splash_setup force
+
+retval=0
+[ -z "${SPLASH_TTYS%% }" ] && retval=1
+case "$1"
+in start )
+	if [ "${SPLASH_MODE_REQ}" != "off" ]; then
+		stat_busy "Setting FBconDecor console images"
+		for tty in ${SPLASH_TTYS}; do
+			# avoid blinking on boot
+			[[ "$( fbcondecor_ctl --tty=${tty} -c getstate )" == *\ on ]] && continue
+			fbcondecor_set_theme ${SPLASH_THEME} ${tty} || retval=1
+		done
+		if [ $retval = 0 ]; then
+			stat_done
+		else
+			stat_fail
+		fi
+	fi
+;; stop )
+	stat_busy "Disabling FBconDecor console images"
+	for tty in ${SPLASH_TTYS}; do
+		# avoid errors on restart
+		[[ "$( fbcondecor_ctl --tty=${tty} -c getstate )" == *\ off ]] && continue
+		fbcondecor_ctl --tty=${tty} -c off || retval=1
+	done
+	if [ $retval = 0 ]; then
+		stat_done
+	else
+		stat_fail
+	fi
+;; restart )
+	$0 stop
+	sleep .1
+	echo # don't swallow our status line
+	$0 start
+;; * )
+	echo "usage: $0 {start|stop|restart}"
+esac
+
+exit 0
+
+# EOF #
diff --git a/abs/core-testing/fbsplash/fbsplash-basic.sh b/abs/core-testing/fbsplash/fbsplash-basic.sh
new file mode 100644
index 0000000..2834060
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash-basic.sh
@@ -0,0 +1,201 @@
+
+#  /etc/rc.d/functions.d/fbsplash-basic.sh                                   #
+
+#  Basic Fbsplash script for Arch Linux initscripts                          #
+#                                                                            #
+#  Author:                Kurt J. Bosch    <kjb-temp-2009 at alpenjodel.de>  #
+#  Based on the work of   Greg Helton                <gt at fallendusk.org>  #
+#                         Thomas Baechler         <thomas at archlinux.org>  #
+#                         and others                                         #
+#                                                                            #
+#  Distributed under the terms of the GNU General Public License (GPL)       #
+
+[[ $PREVLEVEL && $RUNLEVEL ]] || return 0
+
+# Do nothing if improved scripts are installed
+[ -r /etc/rc.d/functions.d/fbsplash-extras.sh ] && return
+
+# Only do this where needed
+# Since we use BASH, all important functions and variables are exported
+case ${0#/etc/rc.} in sysinit | multi | shutdown )
+	export SPLASH_PUSH_MESSAGES="no"
+	export SPLASH_VERBOSE_ON_ERRORS="no"
+	. /sbin/splash-functions.sh # /etc/conf.d/splash is also sourced by this
+	unset options opt i # eliminate splash_setup non local vars   ## FIX ME ##
+	declare -ix SPLASH_STEPS=3 # sysinit steps
+	declare -ix SPLASH_STEPS_DONE=0
+esac
+
+# Verbose mode is handled by fbcondecor kernel patch and daemon script
+[[ $SPLASH_MODE_REQ = silent ]] || return 0
+
+# Override - Don't try to use /usr/bin/basename
+splash_comm_send() {
+	[[ $( /bin/pidof -o %PPID $spl_daemon ) ]] && echo "$@" >$spl_fifo &
+}
+
+case $0 in /etc/rc.sysinit )
+	# Prevent splash destruction
+	CONSOLEFONT=""
+	# Continue to use a splash daamon started in initcpio
+	if /bin/mountpoint -q /dev/.splash-cache; then
+		/bin/mount --move /dev/.splash-cache $spl_cachedir || return
+		splash_comm_send set message "$SPLASH_BOOT_MESSAGE"
+	# Mount a tmpfs
+	else
+		( splash_cache_prep ) || return
+	fi
+	add_hook sysinit_udevsettled  splash_sysinit_udevsettled
+	add_hook sysinit_postfsck     splash_sysinit_postfsck
+	add_hook sysinit_postfsckloop splash_sysinit_postfsck
+	add_hook sysinit_premount     splash_sysinit_premount
+	add_hook sysinit_end          splash_sysinit_end
+	splash_sysinit_udevsettled() {
+		splash_begin
+		splash_progress_init
+		splash_progress
+	}
+	splash_sysinit_premount() {
+		splash_progress
+	}
+	splash_sysinit_postfsck() { # fsck failure emergency exit
+		[ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ] && chvt 1
+	}
+	splash_sysinit_end() {
+		splash_progress
+	}
+;; /etc/rc.multi )
+	add_hook multi_start splash_multi_start
+	add_hook multi_end   splash_multi_end
+	splash_multi_start() {
+		SPLASH_STEPS_DONE=$SPLASH_STEPS
+		splash_progress_init
+	}
+	start_daemon() {
+		[[ $1 = $SPLASH_XSERVICE ]] && SPLASH_EXIT_TYPE=staysilent splash_stop
+		/etc/rc.d/$1 start
+		splash_progress
+	}
+	start_daemon_bkgd() {
+		[[ $1 = $SPLASH_XSERVICE ]] && SPLASH_EXIT_TYPE=staysilent splash_stop
+		stat_bkgd "Starting $1"
+		( SPLASH_PUSH_MESSAGES="no" SPLASH_VERBOSE_ON_ERRORS="no" \
+			/etc/rc.d/$1 start ) &>/dev/null &
+	}
+	splash_multi_end() {
+		if [[ $PREVLEVEL = N ]]; then
+			if ! in_array "$SPLASH_XSERVICE" "${DAEMONS[@]}"; then
+				if [[ $RUNLEVEL = 5 ]]; then
+					SPLASH_EXIT_TYPE=staysilent splash_stop
+				else
+					splash_stop
+					[[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]] && chvt 1
+				fi
+			fi
+			# Now do setfont
+			set_consolefont
+			# Umount the tmpfs
+			splash_cache_cleanup
+		fi
+	}
+;; /etc/rc.shutdown )
+	( splash_cache_prep ) || return
+	# Not using XSERVICE here to avoid missing errors - X should chvt back to SPLASH_TTY
+	add_hook shutdown_start       splash_shutdown_start
+	add_hook shutdown_prekillall  splash_shutdown_prekillall
+	add_hook shutdown_postkillall splash_shutdown_postkillall
+	add_hook shutdown_poweroff    splash_shutdown_poweroff
+	splash_shutdown_start() {
+		splash_begin
+	}
+	## http://bugs.archlinux.org/task/10536                       ## FIX ME ##
+	splash_shutdown_prekillall() { /bin/sleep .1; }
+	splash_shutdown_postkillall() {
+		if [[ $( $spl_bindir/fgconsole ) = $SPLASH_TTY ]]; then
+			stat_busy "Restarting Fbsplash daemon"
+			PROGRESS=$(( 65535*2/3 )) splash_start
+			if [[ -e $spl_cachedir/stop_failed-fbsplash-dummy ]]; then
+				splash_comm_send update_svc fbsplash-dummy svc_stop_failed
+			fi
+			stat_done
+		fi
+	}
+	##
+	splash_shutdown_poweroff() {
+		SPLASH_EXIT_TYPE=staysilent splash_stop
+	}
+esac
+
+splash_progress_init() {
+	for daemon in "${DAEMONS[@]}"; do
+		case $daemon in $SPLASH_XSERVICE | @$SPLASH_XSERVICE ) break
+		;; \!* |@* ) continue
+		esac
+		SPLASH_STEPS+=1
+	done
+}
+
+splash_progress() {
+	splash_comm_send progress $(( 65535*++SPLASH_STEPS_DONE/SPLASH_STEPS ))
+	splash_comm_send paint
+}
+
+# Start the splash daemon - using upstream function
+splash_set_event_dev() { :; } # override - Never grab the keyboard
+splash_begin() {
+	if ! [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then
+		stat_busy "Starting Fbsplash daemon"
+		if [ -x /etc/splash/$SPLASH_THEME/scripts/rc_init-pre ]; then
+			/etc/splash/$SPLASH_THEME/scripts/rc_init-pre ${0#/etc/rc.d} $RUNLEVEL
+		fi &&
+		splash_start &&
+		stat_done || stat_fail
+	fi
+}
+
+# Stop the splash daemon - if any
+splash_stop() {
+	if [[ $( /bin/pidof -o %PPID $spl_daemon ) ]]; then
+		SPLASH_PUSH_MESSAGES="no" stat_busy "Stopping Fbsplash daemon"
+		splash_comm_send progress 65535; splash_comm_send paint; /bin/sleep .1
+		splash_comm_send exit $SPLASH_EXIT_TYPE
+		# Wait for painting/fadeout
+		local -i i=0
+		while [[ i++ -lt 100 && $( /bin/pidof -o %PPID $spl_daemon ) ]]; do
+			/bin/sleep .1
+		done
+		stat_done
+	fi
+}
+
+stat_busy() {
+	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
+	printf "${SAVE_POSITION}"
+	deltext
+	printf "   ${C_OTHER}[${C_BUSY}BUSY${C_OTHER}]${C_CLEAR} "
+	SPLASH_BUSY_MSG=$1
+	if [[ $SPLASH_PUSH_MESSAGES = yes ]]; then
+		splash_comm_send set message "${1}"
+		splash_comm_send paint
+	fi
+}
+
+stat_fail() {
+	deltext
+	printf "   ${C_OTHER}[${C_FAIL}FAIL${C_OTHER}]${C_CLEAR} \n"
+	local event=stop_failed; [[ $PREVLEVEL = N ]] && event=start_failed
+	# Provide a general failure status event and write to msglog textbox
+	splash_comm_send update_svc fbsplash-dummy svc_${event}
+	splash_comm_send log "Error $SPLASH_BUSY_MSG"
+	splash_comm_send paint
+	# Save for daemon restart                                     ## FIX ME ##
+	if /bin/mountpoint -q $spl_cachedir; then
+		: >|$spl_cachedir/${event}-fbsplash-dummy
+	fi
+	# Upstream way of error handling
+	if [[ $SPLASH_VERBOSE_ON_ERRORS = yes ]]; then
+		chvt 1
+	fi
+}
+
+# EOF #
diff --git a/abs/core-testing/fbsplash/fbsplash.bootsteps b/abs/core-testing/fbsplash/fbsplash.bootsteps
deleted file mode 100644
index 7273c0f..0000000
--- a/abs/core-testing/fbsplash/fbsplash.bootsteps
+++ /dev/null
@@ -1 +0,0 @@
-25
diff --git a/abs/core-testing/fbsplash/fbsplash.conf b/abs/core-testing/fbsplash/fbsplash.conf
deleted file mode 100644
index ddd88f8..0000000
--- a/abs/core-testing/fbsplash/fbsplash.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# fbsplash.conf
-#
-
-THEMES="linhes"
-SPLASH_TTYS="1 2 3 4 5 6"
-
-#EOF
diff --git a/abs/core-testing/fbsplash/fbsplash.daemon b/abs/core-testing/fbsplash/fbsplash.daemon
deleted file mode 100644
index e615500..0000000
--- a/abs/core-testing/fbsplash/fbsplash.daemon
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-
-source /etc/rc.conf
-source /etc/rc.d/functions
-
-source /sbin/splash-functions.sh
-source /etc/conf.d/fbsplash.conf
-
-case "$1" in
-	start)
-		if [ "$(fbcondecor_supported)" = "true" ]
-		then
-			THEME="linhes"
-			if [ -f /proc/cmdline ]; then
-				OPTIONS=$(grep -o 'splash=[^ ]*' /proc/cmdline)
-				for i in $(echo "${OPTIONS#*=}" | sed -e 's/,/ /g')
-				do
-					case ${i%:*} in
-						theme)		THEME=${i#*:} ;;
-					esac
-				done
-			fi
-			stat_busy "Setting fbcondecor console images"
-			for TTY in ${SPLASH_TTYS}; do
-				fbcondecor_set_theme ${TTY} ${THEME}
-			done
-			stat_done
-		fi
-		save_boot_steps
-		splash_exit
-	;;
-
-	kill)
-		if [ "$(fbcondecor_supported)" = "true" ]
-		then
-			stat_busy "Disabling fbcondecor console images"
-			for TTY in ${SPLASH_TTYS}; do
-				fbcondecor_remove_theme ${TTY}
-			done
-			stat_done
-		fi
-	;;
-
-	restart)
-		$0 kill
-		sleep 1
-		$1 start
-	;;
-
-	*)
-		echo "usage: $0 {start|restart|kill}"
-esac
-exit 0
-
-#EOF
-
diff --git a/abs/core-testing/fbsplash/fbsplash.git.patch b/abs/core-testing/fbsplash/fbsplash.git.patch
new file mode 100644
index 0000000..15f041c
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash.git.patch
@@ -0,0 +1,166 @@
+From 4ecac1b2645afc8079aad4067a1aa0e8a96eab12 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Micha=C5=82=20Januszewski?= <spock@gentoo.org>
+Date: Tue, 16 Feb 2010 23:30:18 +0100
+Subject: [PATCH] Make it possible to build fbcondecor_helper against glibc.
+
+---
+ configure.ac     |   34 ++++++++++++++++++++++++++++++++++
+ libs/Makefile.am |    2 ++
+ src/Makefile.am  |   34 +++++++++++++++++++++++++++++++++-
+ 3 files changed, 69 insertions(+), 1 deletions(-)
+
+diff --git configure.ac configure.ac
+index 63b1ff6..8db1498 100644
+--- configure.ac
++++ configure.ac
+@@ -76,6 +76,23 @@ AC_ARG_ENABLE([klibc-shared],
+ )
+ AM_CONDITIONAL([CONFIG_KLIBC_SHARED], [test "x${config_klibc_shared}" = "xyes"])
+ 
++AC_ARG_ENABLE([static-binaries],
++  AC_HELP_STRING([--disable-static-binaries], [do not build any statically linked binaries]),
++  [
++    AS_CASE(["${enableval}"],
++      [yes], [config_static_binaries="yes"],
++      [no],  [config_static_binaries="no"],
++             [AC_MSG_ERROR([bad value '${enableval}' for --disable-static-binaries])]
++    )
++  ],
++  [config_static_binaries="yes"]
++)
++AM_CONDITIONAL([CONFIG_STATIC_BINARIES], [test "x${config_static_binaries}" = "xyes"])
++AS_IF(
++  [test "x${config_static_binaries}" = "xyes"],
++  [AC_DEFINE([CONFIG_STATIC_BINARIES], [1], [Define to 1 to disable building of statically linked binaries.])]
++)
++
+ AC_ARG_ENABLE([deprecated],
+   AC_HELP_STRING([--enable-deprecated], [include support for deprecated features]),
+   [
+@@ -333,6 +350,23 @@ AC_ARG_WITH([themedir],
+ )
+ AC_SUBST([themedir])
+ 
++AC_ARG_WITH([klibc],
++  AC_HELP_STRING([--without-klibc], [link the kernel helper against glibc instead of klibc]),
++  [
++    AS_CASE(["${withval}"],
++      [yes], [config_klibc="yes"],
++      [no],  [config_klibc="no"],
++             [AC_MSG_ERROR([bad value ${withval} for --with-klibc])]
++    )
++  ],
++  [config_klibc="yes"]
++)
++AM_CONDITIONAL([CONFIG_KLIBC], [test "x${config_klibc}" = "xyes"])
++AS_IF(
++  [test "x${config_klibc}" = "xyes"],
++  [AC_DEFINE([CONFIG_KLIBC], [1], [use klibc])]
++)
++
+ M_CFLFAGS=
+ M_LIBS=
+ AC_CHECK_HEADER(
+diff --git libs/Makefile.am b/core/libs/Makefile.am
+index 6675ec1..d070b29 100644
+--- libs/Makefile.am
++++ libs/Makefile.am
+@@ -24,6 +24,7 @@ mostlyclean-local: \
+ 
+ noinst_LIBRARIES =
+ 
++if CONFIG_KLIBC
+ if CONFIG_HELPER
+ noinst_LIBRARIES += libjpeg.a
+ if CONFIG_PNG
+@@ -33,6 +34,7 @@ if CONFIG_TTF_KERNEL
+ noinst_LIBRARIES += libfreetype.a
+ endif
+ endif
++endif
+ 
+ libjpeg_a_SOURCES =
+ libpng_a_SOURCES =
+diff --git src/Makefile.am b/core/src/Makefile.am
+index fa6919d..7570b5e 100644
+--- src/Makefile.am
++++ src/Makefile.am
+@@ -167,7 +167,6 @@ sbin_PROGRAMS += fbcondecor_ctl
+ endif
+ sbin_PROGRAMS += fbsplashd
+ bin_PROGRAMS  += splash_util
+-eexecsbin_PROGRAMS += fbsplashctl
+ 
+ fbcondecor_ctl_SOURCES      = fbcon_decor_ctl.c fbcon_decor.h ../include/console_decor.h ../include/fbcondecor.h common.h fbsplash.h
+ fbcondecor_ctl_CPPFLAGS     = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_la_CFLAGS)
+@@ -185,6 +184,9 @@ splash_util_CPPFLAGS        = $(AM_CPPFLAGS) -DTARGET_UTIL $(libfbsplashrender_l
+ splash_util_LDFLAGS         = $(AM_LDFLAGS)
+ splash_util_LDADD           = libfbsplashrender.la libfbsplash.la
+ 
++if CONFIG_STATIC_BINARIES
++eexecsbin_PROGRAMS += fbsplashctl
++
+ fbsplashctl_SOURCES         = $(fbsplashd_SOURCES) $(splash_util_SOURCES) fbsplashctl.c
+ fbsplashctl_CFLAGS          = $(AM_CFLAGS) $(PTHREAD_STATIC_CFLAGS) $(RT_CFLAGS) $(libfbsplashrender_la_CFLAGS) -DUNIFIED_BUILD
+ fbsplashctl_CPPFLAGS        = $(fbsplashd_CPPFLAGS) $(splash_util_CPPFLAGS)
+@@ -210,6 +212,7 @@ uninstall-hook:
+ if CONFIG_FBCON_DECOR
+ 	rm -f $(DESTDIR)$(eexecsbindir)/fbcondecor_ctl.static$(EXEEXT)
+ endif
++endif
+ 
+ ################################################################################
+ # Kernel
+@@ -219,6 +222,7 @@ if CONFIG_HELPER
+ eexecsbin_PROGRAMS  += fbcondecor_helper
+ endif
+ 
++if CONFIG_KLIBC
+ fbcondecor_helper_SOURCES = \
+ 	kernel.c \
+ 	libfbsplash.c \
+@@ -236,10 +240,12 @@ fbcondecor_helper_SOURCES = \
+ 	common.h \
+ 	render.h \
+ 	fbsplash.h
++
+ fbcondecor_helper_CPPFLAGS  = -DWITH_ERRLIST -DTARGET_KERNEL -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER
+ fbcondecor_helper_CFLAGS    = -Os -w -ffunction-sections -fdata-sections -I.@am__isrc@
+ fbcondecor_helper_LDFLAGS   = 
+ fbcondecor_helper_LDADD     = 
++
+ fbcondecor_helper_CFLAGS   += -I$(abs_top_builddir)/libs/libjpeg -I$(LIBJPEG_SOURCE)
+ fbcondecor_helper_LDADD    += $(top_builddir)/libs/libjpeg.a
+ if CONFIG_PNG
+@@ -280,3 +286,29 @@ fbcondecor_helper-%.o: %.c
+ 	@$(call infmsg,CC,$@)
+ 	$(Q)$(MKDIR_P) $(@D)
+ 	$(Q)$(KLCC) $(fbcondecor_helper_CPPFLAGS) $(fbcondecor_helper_CFLAGS) $(INCLUDES) -c $< -o $@
++else
++fbcondecor_helper_SOURCES = \
++	kernel.c \
++	libfbsplash.c \
++	libfbsplashrender.c \
++	fbcon_decor.c \
++	common.c \
++	parse.c \
++	list.c \
++	render.c \
++	image.c \
++	effects.c \
++	fbcon_decor.h \
++	../include/console_decor.h \
++	../include/fbcondecor.h \
++	common.h \
++	render.h \
++	fbsplash.h
++if CONFIG_TTF_KERNEL
++fbcondecor_helper_SOURCES  += ttf.c ttf.h
++endif
++fbcondecor_helper_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_KERNEL
++fbcondecor_helper_CFLAGS   = $(AM_CFLAGS) $(libfbsplashrender_la_CFLAGS)
++fbcondecor_helper_LDFLAGS  = $(AM_LDFLAGS)
++fbcondecor_helper_LDADD    = $(libfbsplashrender_la_LIBADD)
++endif
+-- 
+1.6.5.GIT
diff --git a/abs/core-testing/fbsplash/fbsplash.initcpio_hook b/abs/core-testing/fbsplash/fbsplash.initcpio_hook
new file mode 100644
index 0000000..62048df
--- /dev/null
+++ b/abs/core-testing/fbsplash/fbsplash.initcpio_hook
@@ -0,0 +1,102 @@
+run_hook ()
+{
+	SPLASH_INIT_MESSAGE="Initializing the kernel"
+	SPLASH_MODE_REQ="off"
+	SPLASH_THEME="default"
+	SPLASH_TTY=16
+	SPLASH_TEXTBOX="no"
+	SPLASH_AUTOVERBOSE=0
+
+	. /etc/conf.d/splash
+
+	# Kernel parameters override config file
+	local ifs="$IFS"
+	IFS=','
+	set -- $splash
+	IFS="$ifs"
+	local arg effects
+	for arg in "$@"; do
+		case "$arg"
+		in off      ) SPLASH_MODE_REQ="off"
+		;; silent   ) SPLASH_MODE_REQ="silent"
+		;; verbose  ) SPLASH_MODE_REQ="verbose"
+		;; theme:?* ) SPLASH_THEME="${arg#theme:}"
+		;;   tty:?* ) SPLASH_TTY="${arg#tty:}"
+		;; insane   ) SPLASH_SANITY="insane"
+		;; fadein | fadeout ) effects="$effects,$arg"
+		esac
+	done
+	if [ -n "$effects" ]; then
+		SPLASH_EFFECTS="${effects#,}"
+	fi
+
+	if [ "${SPLASH_MODE_REQ}" != "silent" ]; then
+		return
+	fi
+
+	if ! [ "$console" = tty1 -o "$SPLASH_SANITY" = insane ]; then
+		err "Fbsplash requires console=tty1 in kernel line!"
+		return 1
+	fi
+
+	# Start the daemon here if possible
+	# to show animations early and gain some bootup speed
+	if [ -x /sbin/fbsplashd.static ]; then
+		if [ -x /etc/splash/"$SPLASH_THEME"/scripts/rc_init-pre ]; then
+			msg "Found '/etc/splash/$SPLASH_THEME/scripts/rc_init-pre'"
+			msg "Not starting Fbsplash daemon - no theme hook support in initcpio."
+		else
+			msg "Starting Fbsplash Daemon"
+			(
+				set -e
+				# Hold the cache and fifo within /dev to get it moved to the new root
+				mkdir /dev/.splash-cache
+				# code line derived from splash-functions.sh
+				mount -t tmpfs cachedir /dev/.splash-cache -o rw,mode=0644,size=4096k
+				# Take over any existing cache content
+				mkdir -p /lib/splash/cache
+				mv /lib/splash/cache /lib/splash/.splash-cache
+				cp -a /lib/splash/.splash-cache /dev/
+				ln -s /dev/.splash-cache /lib/splash/cache
+				mkfifo -m 600 /lib/splash/cache/.splash
+				# Wait for any fbcondecor fadein - may take very long on some broken systems
+				i=0
+				while [ -n "$( pidof fbcondecor_helper )" ]; do
+					if [ $i -ge 50 ]; then
+						err "timeout on waiting for fbcondecor_helper to die!"
+						exit 1
+					fi
+					sleep .1
+					i=$(( i + 1 ))
+				done
+				# Actually start the daemon
+				options=""
+				[ -n "$SPLASH_THEME"      ] && options="$options --theme=$SPLASH_THEME"
+				[ -n "$SPLASH_EFFECTS"    ] && options="$options --effects=$SPLASH_EFFECTS"
+				[ "$SPLASH_TEXTBOX" = yes ] && options="$options --textbox"
+				cd /dev/.splash-cache
+				BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
+					/sbin/fbsplashd.static --type=bootup --pidfile=daemon.pid $options
+				(
+					echo set tty silent $SPLASH_TTY
+					echo set mode silent
+					echo repaint
+					echo set autoverbose $SPLASH_AUTOVERBOSE
+				) >/lib/splash/cache/.splash &
+			)
+			return
+		fi
+	fi
+
+	# Start the fbcondecor helper if not already done by fbcondecor kernel
+	(
+		# code copied from splash-functions.sh
+		fbcondecor_supported() {
+			[ -e /dev/fbsplash -o -e /dev/fbcondecor ]
+		}
+		if ! fbcondecor_supported; then
+			BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
+				/sbin/fbcondecor_helper 2 init 0 0 $SPLASH_THEME
+		fi
+	)
+}
diff --git a/abs/core-testing/fbsplash/fbsplash.initcpio_install b/abs/core-testing/fbsplash/fbsplash.initcpio_install
index 3fdd7e9..4485f91 100644
--- a/abs/core-testing/fbsplash/fbsplash.initcpio_install
+++ b/abs/core-testing/fbsplash/fbsplash.initcpio_install
@@ -1,29 +1,114 @@
 
 install() {
-	[ -x /sbin/fbcondecor_helper ] || return 1
+	(
+		. /etc/conf.d/splash
 
-	source /etc/conf.d/fbsplash.conf
-	[ -z "${THEME}" ] && THEME="linhes"
+		if /bin/mountpoint -q /lib/splash/cache; then
+			/bin/umount /lib/splash/cache
+		fi
 
-	add_binary "/sbin/fbcondecor_helper"	
+		# Add the helper
+		add_binary /sbin/fbcondecor_helper
 
-	add_device "/dev/null" c 1 3
-	add_device "/dev/console" c 5 1
-	add_device "/dev/tty0" c 4 0
+		# Add the daemon for early start
+		if [[ $SPLASH_DAEMON = early ]]; then
+			add_binary /sbin/fbsplashd.static
+		fi
 
-	for DIR in /dev /dev/fb /dev/misc /dev/vc /lib/splash/proc /lib/splash/sys
-	do
-		add_dir ${DIR}
-	done
+		# Add a clean config file avoiding errors when running the hook
+		file=$( /usr/bin/mktemp )
+		for var in SPLASH_INIT_MESSAGE SPLASH_MODE_REQ SPLASH_THEME SPLASH_TTY \
+		           SPLASH_AUTOVERBOSE SPLASH_EFFECTS SPLASH_TEXTBOX
+		do
+			eval value=\"\$$var\"
+			[ -n "$value" ] && echo $var="'$value'"
+		done >|$file
+		add_file $file /etc/conf.d/splash
 
-	for THEME in ${THEMES}
-	do
-		add_full_dir "/etc/splash/${THEME}"
-	done
+		# List file paths contained in given Fbsplash theme cfg file
+		_get_cfg_files() {
+			< "$1" /bin/sed -re '
+				# convert all whitespace into single blanks
+				s,[[:space:]]+, ,g ; t L1
+				:L1
+				# drop comments, grouping directives and blank lines
+				/^ *([#<]|$)/ d
+				# get a filepath or drop
+				s,.*[ =]([^ ]*/[^ ]+).*,\1, ; t ; d
+			' | /usr/bin/sort -u
+		}
+
+		# Check if cfg file name or path
+		_match_cfg() {
+			[[ "$1" =~ (^|/)[0-9]+x[0-9]+\.cfg$ ]]
+		}
+
+		# Add non-cfg files in given dir
+		_add_non_cfg_files() {
+			local file dir="$1"
+			for file in $( /bin/ls "$dir" ); do
+				if [ -f "$dir/$file" ]; then
+					_match_cfg "$file" || add_file "$dir/$file"
+				fi
+			done
+		}
+
+		# Add global non-cfg files
+		_add_non_cfg_files /etc/splash
+
+		# Add themes
+		dirs=""
+		for theme in ${SPLASH_THEMES[*]}; do # string list and array allowed
+			[ ${theme:0:1} = / ] || theme=/etc/splash/$theme
+			if [ -f $theme ]; then
+				if ! _match_cfg $theme; then
+					err "Not a valid theme cfg file name: $theme"
+					continue
+				fi
+				add_file $theme || continue
+				dir=$( dirname $theme )
+				# Add non-cfg files in theme dir
+				_add_non_cfg_files $dir
+				# Add files refered in cfg file by paths
+				for file in $( _get_cfg_files $theme ); do
+					if [ ${file:0:1} = / ]; then
+						add_file $file
+						continue
+					fi
+					# Path may be relative to theme-dir or to /etc/splash
+					[ -e $dir/$file -o ! -f /etc/splash/$file ] && add_file $dir/$file
+					[ -e /etc/splash/$file -o ! -f $dir/$file ] && add_file /etc/splash/$file
+				done
+			elif [ -d $theme ]; then
+				dir=$theme
+				add_full_dir $dir
+			else
+				err "Theme not found: $theme"
+				continue
+			fi
+			if [[ " "$dirs" " != *" "$dir" "* ]]; then
+				dirs+=" "$dir
+			fi
+		done
+		for dir in $dirs; do
+			# Add the rc_init-pre script if we have one
+			# Currently this just prevents early daemon start for the theme
+			if [[ $SPLASH_DAEMON = early && -x $dir/scripts/rc_init-pre ]]; then
+				add_file $dir/scripts/rc_init-pre || continue
+				echo "WARNING: rc_init-pre script found - no early daemon with '${dir##*/}'!" >&2
+			fi
+		done
+	)
+
+	SCRIPT="fbsplash"
 }
 
 help() {
-	echo "This hook includes Fbsplash in the initramfs image."
+cat<<HELPEOF
+  This hook adds the FBconDecor helper and Fbsplash themes and maybe the
+  Fbsplash daemon as specified in /etc/conf.d/splash. Put it after udev
+  for early daemon start or when using a FBconDecor kernel.
+HELPEOF
 }
 
 #EOF
diff --git a/abs/core-testing/fbsplash/fbsplash.inithooks b/abs/core-testing/fbsplash/fbsplash.inithooks
deleted file mode 100644
index c396b92..0000000
--- a/abs/core-testing/fbsplash/fbsplash.inithooks
+++ /dev/null
@@ -1,91 +0,0 @@
-# fbsplash function.d script #
-# Author: Greg Helton <gt@fallendusk.org> #
-
-# Who is calling? #
-CALLER=$0
-
-# splash stuff #
-. /etc/conf.d/fbsplash.conf
-. /sbin/splash-functions.sh
-
-# Redefine the stat functions #
-stat_bkgd() {
-	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
-	deltext
-	printf "   ${C_OTHER}[${C_BKGD}BKGD${C_OTHER}]${C_CLEAR} "
-}
-
-stat_busy() {
-	printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} "
-	printf "${SAVE_POSITION}"
- 	deltext
-	printf "   ${C_OTHER}[${C_BUSY}BUSY${C_OTHER}]${C_CLEAR} "
-	# This checks to see if we just brought up the lo interface in rc.sysinit #
-	# if so, start the progress bar #
-	if [ "${1}" == 'Bringing up loopback interface' ]; then
-		splash rc_init
-	fi
-        # Load variables #
-        var_load STEP_NR MAX_STEPS RC_MULTI RC_SYSINIT RC_SHUTDOWN
-        # Only update the splash progress if we're in sysinit, multi, or shutdown. #
-        if [[ "${SPLASH_RC_MULTI}" == "1" || "${SPLASH_RC_SYSINIT}" == "1" || "${SPLASH_RC_SHUTDOWN}" == "1" ]]; then
-                ((SPLASH_STEP_NR++))
-                SPLASH_PROGRESS=$((100*${SPLASH_STEP_NR}/${SPLASH_MAX_STEPS}))
-                SPLASH_CURRENT_PROGRESS=${SPLASH_PROGRESS}
-                splash_update_progress ${SPLASH_PROGRESS}
-                var_save STEP_NR CURRENT_PROGRESS
-        fi
-	if [ "${SPLASH_RC_SHUTDOWN}" == "1" ]; then
-		save_shutdown_steps
-	fi
-
-}
-
-stat_done() {
-	deltext
-	printf "   ${C_OTHER}[${C_DONE}DONE${C_OTHER}]${C_CLEAR} \n"
-}
-
-stat_fail() {
-	deltext
-	printf "   ${C_OTHER}[${C_FAIL}FAIL${C_OTHER}]${C_CLEAR} \n"
-	splash_verbose
-}
-
-start_daemon() {
-	/etc/rc.d/$1 start
-}
-
-# rc.sysinit #
-if [ "$CALLER" == '/etc/rc.sysinit' ]; then
-#	echo "fbsplash: Setting up splash..."
-	splash_cache_prep
-	SPLASH_MAX_STEPS=$(load_boot_steps)
-	SPLASH_STEP_NR=0
-	SPLASH_RC_MULTI=0
-	SPLASH_RC_SYSINIT=1
-	SPLASH_RC_SHUTDOWN=0
-	var_save MAX_STEPS STEP_NR RC_MULTI RC_SYSINIT RC_SHUTDOWN
-fi
-
-# rc.multi #
-if [ "$CALLER" == '/etc/rc.multi' ]; then
-	SPLASH_RC_MULTI=1
-	SPLASH_RC_SYSINIT=0
-	var_save RC_MULTI RC_SYSINIT
-fi
-
-# rc.shutdown #
-if [ "$CALLER" == '/etc/rc.shutdown' ]; then
-#	echo "fbsplash: Setting up splash..."
-	splash_cache_prep
-	SPLASH_MAX_STEPS=$(load_shutdown_steps)
-	SPLASH_SHUTDOWN_STEPS=1
-	SPLASH_STEP_NR=0
-	SPLASH_RC_MULTI=0
-	SPLASH_RC_SYSINIT=0
-	SPLASH_RC_SHUTDOWN=1
-	var_save MAX_STEPS STEP_NR RC_MULTI RC_SYSINIT RC_SHUTDOWN DAEMON_STEPS
-	splash rc_init
-fi
-
diff --git a/abs/core-testing/fbsplash/fbsplash.install b/abs/core-testing/fbsplash/fbsplash.install
index 2899857..09da219 100644
--- a/abs/core-testing/fbsplash/fbsplash.install
+++ b/abs/core-testing/fbsplash/fbsplash.install
@@ -1,25 +1,19 @@
-
 post_install() {
-	echo ">"
-	echo "> ATTENTION!!!:"
-	echo "----------------------------------------------"
-	echo "> fbsplash has been rewritten and no longer depends "
-	echo "> on using a special initscripts. "
-	echo "> Please read http://wiki.archlinux.org/fbsplash "
-	echo "> for more details on the changes. "
-	echo "----------------------------------------------"
-	if ! [ -e /etc/conf.d/fbsplash.bootsteps ]; then
-		echo ""
-		echo "Creating step count files..."
-		echo "Note: The first boot's percentage will be wrong. "
-		echo "The scripts will update with the right steps after first boot"
-		echo ""
-		touch /etc/conf.d/fbsplash.bootsteps
-		touch /etc/conf.d/fbsplash.shutdownsteps
-		echo 25 > /etc/conf.d/fbsplash.bootsteps
-		echo 20 > /etc/conf.d/fbsplash.shutdownsteps
-	fi
-		echo 20 > /etc/conf.d/fbsplash.shutdownsteps
+	echo "------------------------------------------------------------"
+	echo "> This package doesn't contain a default theme."
+	echo "> You need to install one separately."
+        echo "> To find some themes, just search AUR for \"fbsplash-theme\","
+        echo "> or GNOME-Look.org or KDE-Look.org for \"fbsplash\"."
+        echo "------------------------------------------------------------"
+        echo "> Configuration for fbsplash: /etc/conf.d/splash"
+        echo "> Configuration for fbcondecor: /etc/conf.d/fbcondecor"
+	echo "------------------------------------------------------------"
+        echo "> Remember to rebuild the initrd after changing the"
+        echo "> configuration."
+        echo "------------------------------------------------------------"
+	echo "> Please read http://wiki.archlinux.org/index.php/Fbsplash"
+	echo "> for more details. "
+	echo "------------------------------------------------------------"
 }
 
 post_upgrade() {
diff --git a/abs/core-testing/fbsplash/splash-functions-arch.sh b/abs/core-testing/fbsplash/splash-functions-arch.sh
deleted file mode 100644
index 977ccef..0000000
--- a/abs/core-testing/fbsplash/splash-functions-arch.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-# ArchLinux specific splash functions #
-# Author: Greg Helton <gt@fallendusk.org> #
-
-splash_init() {
-	splash_setup	
-	splash_start
-}
-
-splash_exit() {
-	splash_comm_send "exit"
-	splash_cache_cleanup
-}
-
-splash_update_progress() {
-	local PROGRESS
-	PROGRESS=$(($1*65535/100))
-	splash_comm_send "progress ${PROGRESS}"
-	splash_comm_send "repaint"
-}
-
-var_save() {
-for i in $@ ;
-	do
-		local var
-		eval var=\$SPLASH_${i}
-		echo "SPLASH_$i=$(echo ${var})" > ${spl_cachedir}/${i}
-	done
-}
-
-var_load() {
-for i in $@ ;
-	do
-		local var
-		eval var=\$SPLASH_${i}
-		if [[ -z "$(echo ${var})" && -f ${spl_cachedir}/${i} ]] ; then
-			source ${spl_cachedir}/${i}
-		fi
-	done
-}
-
-save_boot_steps() {
-	var_load STEP_NR
-	echo $SPLASH_STEP_NR > /etc/conf.d/fbsplash.bootsteps
-}
-
-load_boot_steps() {
-	BOOT_STEPS=$(cat /etc/conf.d/fbsplash.bootsteps)
-	# Fail safe, so we don't divide by 0
-	if [ $BOOT_STEPS = 0 ]; then
-		BOOT_STEPS=1
-	fi
-	printf $BOOT_STEPS
-}
-
-save_shutdown_steps() {
-	var_load SHUTDOWN_STEPS
-	((SPLASH_SHUTDOWN_STEPS++))
-	echo $SPLASH_SHUTDOWN_STEPS > /etc/conf.d/fbsplash.shutdownsteps
-	var_save SHUTDOWN_STEPS
-}
-
-load_shutdown_steps() {
-	SHUTDOWN_STEPS=$(cat /etc/conf.d/fbsplash.shutdownsteps)
-	# Fail safe, so we don't divide by 0
-	if [ $SHUTDOWN_STEPS = 0 ]; then
-		SHUTDOWN_STEPS=1
-	fi
-	printf $SHUTDOWN_STEPS
-}
-
-# EOF #
diff --git a/abs/core-testing/fbsplash/splash-functions.sh b/abs/core-testing/fbsplash/splash-functions.sh
deleted file mode 100644
index 1c17663..0000000
--- a/abs/core-testing/fbsplash/splash-functions.sh
+++ /dev/null
@@ -1,618 +0,0 @@
-# Distributed under the terms of the GNU General Public License v2
-
-# Author:     Michal Januszewski <spock@gentoo.org>
-# Maintainer: Michal Januszewski <spock@gentoo.org>
-
-# This file is a part of splashutils. The functions contained in this
-# file are meant to be used by hook scripts in splash themes or by
-# initscript systems. The code will be kept distro-agnostic to facilitate
-# portability. It should also contain POSIX compatible code. No bashisms
-# allowed!
-
-# ####################################################################
-#    Change any settings ONLY if you are sure what you're doing.
-#    Don't cry if it breaks afterwards.
-# ####################################################################
-
-# The splash scripts need a cache which can be guaranteed to be
-# both readable and writable at all times, even when the root fs
-# is mounted read-only. To that end, an in-RAM fs is used. Valid
-# values for spl_cachetype are 'tmpfs' and 'ramfs'. spl_cachesize
-# is a size limit in KB, and it should probably be left with the
-# default value.
-export spl_cachesize="4096"
-export spl_cachetype="tmpfs"
-export spl_cachedir="//lib/splash/cache"
-export spl_tmpdir="//lib/splash/tmp"
-export spl_fifo="${spl_cachedir}/.splash"
-export spl_pidfile="${spl_cachedir}/daemon.pid"
-export spl_util="//bin/splash_util.static"
-export spl_daemon="//sbin/fbsplashd.static"
-export spl_decor="//sbin/fbcondecor_ctl.static"
-export spl_bindir="//lib/splash/bin"
-
-# This is the main function which handles all events.
-# Accepted parameters:
-#  svc_start <name>
-#  svc_stop <name>
-#  svc_started <name>
-#  svc_stopped <name>
-#  svc_start_failed <name>
-#  svc_stop_failed <name>
-#  svc_input_begin <name>
-#  svc_input_end <name>
-#  rc_init <internal_runlevel> - used to distinguish between 'boot' and 'sysinit'
-#  rc_exit
-#  critical
-splash() {
-	local event="$1"
-	shift
-
-	# Reload the splash settings in rc_init.  We could have set them wrong the
-	# first time splash_setup was called (when splash-functions.sh was first
-	# sourced) if /proc wasn't mounted.
-	if [ "${event}" = "rc_init" ]; then
-		splash_setup "force"
-	else
-		splash_setup
-	fi
-
-	[ "${SPLASH_MODE_REQ}" = "off" ] && return
-
-	# Prepare the cache here -- rc_init-pre might want to use it
-	if [ "${event}" = "rc_init" ]; then
-		if [ "${RUNLEVEL}" = "S" -a "$1" = "sysinit" ]; then
-			splash_cache_prep 'start' || return
-		elif [ "${RUNLEVEL}" = "6" -o "${RUNLEVEL}" = "0" ]; then
-			# Check if the splash cachedir is mounted readonly. If it is,
-			# we need to mount a tmpfs over it.
-			if ! touch "${spl_cachedir}/message" 2>/dev/null ; then
-				splash_cache_prep 'stop' || return
-			fi
-		fi
-	fi
-
-	local args=""
-
-	if [ "${event}" = "rc_init" -o "${event}" = "rc_exit" ]; then
-		args="$* ${RUNLEVEL}"
-	elif [ "${event}" = "svc_started" -o "${event}" = "svc_stopped" ]; then
-		if [ -z "$2" ]; then
-			# Backwards compatibility hack.  Add a 0 to the arguments to simulate
-			# an error code.
-			args="$* 0"
-		else
-			args="$*"
-
-			# Backwards compatibility: translate an error condition (non-zero
-			# error code) into an appropriate event.
-			if [ "$2" != "0" ]; then
-				if [ "${event}" = "svc_started" ]; then
-					event="svc_start_failed"
-				else
-					event="svc_stop_failed"
-				fi
-			fi
-		fi
-	else
-		args="$*"
-	fi
-
-	splash_profile "pre ${event} ${args}"
-
-	# Handle -pre event hooks
-	if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-pre" ]; then
-		/etc/splash/"${SPLASH_THEME}"/scripts/${event}-pre ${args}
-	fi
-
-	case "$event" in
-		svc_start)			splash_svc_start "$1";;
-		svc_stop)			splash_svc_stop "$1";;
-		svc_started) 		splash_svc "$1" "start";;
-		svc_stopped)		splash_svc "$1" "stop";;
-		svc_start_failed)	splash_svc_fail "$1" "start";;
-		svc_stop_failed)	splash_svc_fail "$1" "stop";;
-		svc_input_begin)	splash_input_begin "$1";;
-		svc_input_end)		splash_input_end "$1";;
-		rc_init) 			splash_init "$1" "${RUNLEVEL}";;
-		rc_exit) 			splash_exit "${RUNLEVEL}";;
-		critical) 			splash_verbose;;
-	esac
-
-	splash_profile "post ${event} ${args}"
-
-	# Handle -post event hooks
-	if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-post" ]; then
-		/etc/splash/"${SPLASH_THEME}"/scripts/${event}-post ${args}
-	fi
-
-	return 0
-}
-
-splash_setup() {
-	# If it's already set up, let's not waste time on parsing the config
-	# files again
-	if [ "${SPLASH_THEME}" != "" -a "${SPLASH_TTY}" != "" -a "$1" != "force" ]; then
-		return 0
-	fi
-
-	export SPLASH_EFFECTS=""
-	export SPLASH_SANITY=""
-	export SPLASH_TEXTBOX="no"
-	export SPLASH_MODE_REQ="off"
-	export SPLASH_PROFILE="off"
-	export SPLASH_THEME="default"
-	export SPLASH_TTY="16"
-	export SPLASH_KDMODE="TEXT"
-	export SPLASH_AUTOVERBOSE="0"
-	export SPLASH_BOOT_MESSAGE="Booting the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_SHUTDOWN_MESSAGE="Shutting down the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_REBOOT_MESSAGE="Rebooting the system (\$progress%)... Press F2 for verbose mode."
-	export SPLASH_XSERVICE="xdm"
-
-	[ -f /etc/splash/splash ] && . /etc/splash/splash
-	[ -f /etc/conf.d/splash ] && . /etc/conf.d/splash
-	[ -f /etc/conf.d/fbcondecor ] && . /etc/conf.d/fbcondecor
-
-	if [ -f /proc/cmdline ]; then
-		options=$(grep -o 'splash=[^ ]*' /proc/cmdline)
-
-		# Execute this loop over $options so that we can process multiple
-		# splash= arguments on the kernel command line. Useful for adjusting
-		# splash parameters from ISOLINUX.
-		for opt in ${options} ; do
-			options=${opt#*=}
-
-			for i in $(echo "${options}" | sed -e 's/,/ /g') ; do
-				case ${i%:*} in
-					theme)		SPLASH_THEME=${i#*:} ;;
-					tty)		SPLASH_TTY=${i#*:} ;;
-					verbose) 	SPLASH_MODE_REQ="verbose" ;;
-					silent)		SPLASH_MODE_REQ="silent" ;;
-					kdgraphics)	SPLASH_KDMODE="GRAPHICS" ;;
-					profile)	SPLASH_PROFILE="on" ;;
-					insane)		SPLASH_SANITY="insane" ;;
-				esac
-			done
-		done
-	fi
-}
-
-splash_get_boot_message() {
-	if [ "${RUNLEVEL}" = "6" ]; then
-		echo "${SPLASH_REBOOT_MESSAGE}"
-	elif [ "${RUNLEVEL}" = "0" ]; then
-		echo "${SPLASH_SHUTDOWN_MESSAGE}"
-	else
-		echo "${SPLASH_BOOT_MESSAGE}"
-	fi
-}
-
-splash_start() {
-	if [ "${SPLASH_MODE_REQ}" = "verbose" ]; then
-		${spl_decor} -c on 2>/dev/null
-		return 0
-	elif [ "${SPLASH_MODE_REQ}" != "silent" ]; then
-		return 0
-	fi
-
-	# Display a warning if the system is not configured to display init messages
-	# on tty1. This can cause a lot of problems if it's not handled correctly, so
-	# we don't allow silent splash to run on incorrectly configured systems.
-	if [ "${SPLASH_MODE_REQ}" = "silent" -a "${SPLASH_SANITY}" != "insane" ]; then
-		if [ -z "$(grep -E '(^| )CONSOLE=/dev/tty1( |$)' /proc/cmdline)" -a \
-			 -z "$(grep -E '(^| )console=tty1( |$)' /proc/cmdline)" ]; then
-			clear
-			splash_warn "You don't appear to have a correct console= setting on your kernel"
-			splash_warn "command line. Silent splash will not be enabled. Please add"
-			splash_warn "console=tty1 or CONSOLE=/dev/tty1 to your kernel command line"
-			splash_warn "to avoid this message."
-			if [ -n "$(grep 'CONSOLE=/dev/tty1' /proc/cmdline)" -o \
-				  -n "$(grep 'console=tty1' /proc/cmdline)" ]; then
-				splash_warn "Note that CONSOLE=/dev/tty1 and console=tty1 are general parameters and"
-				splash_warn "not splash= settings."
-			fi
-			return 1
-		fi
-
-		if [ -n "$(grep -E '(^| )CONSOLE=/dev/tty1( |$)' /proc/cmdline)" ]; then
-			mount -n --bind / ${spl_tmpdir}
-			if [ ! -c "${spl_tmpdir}/dev/tty1" ]; then
-				umount -n ${spl_tmpdir}
-				splash_warn "The filesystem mounted on / doesn't contain the /dev/tty1 device"
-				splash_warn "which is required for the silent splash to function properly."
-				splash_warn "Silent splash will not be enabled. Please create the appropriate"
-				splash_warn "device node to avoid this message."
-				return 1
-			fi
-			umount -n ${spl_tmpdir}
-		fi
-	fi
-
-	rm -f "${spl_pidfile}"
-
-	# Prepare the communications FIFO
-	rm -f "${spl_fifo}" 2>/dev/null
-	mkfifo "${spl_fifo}"
-
-	local options=""
-	[ "${SPLASH_KDMODE}" = "GRAPHICS" ] && options="--kdgraphics"
-	[ -n "${SPLASH_EFFECTS}" ] && options="${options} --effects=${SPLASH_EFFECTS}"
-	[ "${SPLASH_TEXTBOX}" = "yes" ] && options="${options} --textbox"
-
-	local ttype="bootup"
-	if [ "${RUNLEVEL}" = "6" ]; then
-		ttype="reboot"
-	elif [ "${RUNLEVEL}" = "0" ]; then
-		ttype="shutdown"
-	fi
-
-	# Start the splash daemon
-	BOOT_MSG="$(splash_get_boot_message)" ${spl_daemon} --theme="${SPLASH_THEME}" --pidfile="${spl_pidfile}" --type=${ttype} ${options}
-
-	# Set the silent TTY and boot message
-	splash_comm_send "set tty silent ${SPLASH_TTY}"
-
-	if [ "${SPLASH_MODE_REQ}" = "silent" ]; then
-		splash_comm_send "set mode silent"
-		splash_comm_send "repaint"
-		${spl_decor} -c on 2>/dev/null
-	fi
-
-	splash_comm_send "set autoverbose ${SPLASH_AUTOVERBOSE}"
-
-	splash_set_event_dev
-
-	return 0
-}
-
-###########################################################################
-# Cache-related functions
-###########################################################################
-
-splash_cache_prep() {
-	# Mount an in-RAM filesystem at spl_cachedir
-	mount -ns -t "${spl_cachetype}" cachedir "${spl_cachedir}" \
-		-o rw,mode=0644,size="${spl_cachesize}"k
-
-	retval="$?"
-
-	if [ ${retval} -ne 0 ]; then
-		splash_err "Unable to create splash cache - switching to verbose."
-		splash_verbose
-		return "${retval}"
-	fi
-}
-
-# args: list of files to save when the cache is umounted
-#       Note that the 'profile' file is already handled and thus shouldn't
-#       be included in the list.
-splash_cache_cleanup() {
-	# Don't try to clean anything up if the cachedir is not mounted.
-	[ -z "$(grep ${spl_cachedir} /proc/mounts)" ] && return;
-
-	# Create the temp dir if necessary.
-	if [ ! -d "${spl_tmpdir}" ]; then
-		mkdir -p "${spl_tmpdir}" 2>/dev/null
-		[ "$?" != "0" ] && return
-	fi
-
-	# Make sure the splash daemon is dead.
-	if [ -n "$(pgrep fbsplashd)" ]; then
-		sleep 1
-		killall -9 "${spl_daemon##*/}" 2>/dev/null
-	fi
-
-	# If /etc is not writable, don't update /etc/mtab. If it is
-	# writable, update it to avoid stale mtab entries (bug #121827).
-	local mntopt=""
-	[ -w /etc/mtab ] || mntopt="-n"
-	mount ${mntopt} --move "${spl_cachedir}" "${spl_tmpdir}" 2>/dev/null
-
-	# Don't try to copy anything if the cachedir is not writable.
-	[ -w "${spl_cachedir}" ] || return
-
-	if [ "${SPLASH_PROFILE}" != "off" ]; then
-		cp -a "${spl_tmpdir}/profile" "${spl_cachedir}" 2>/dev/null
-	fi
-
-	while [ -n "$1" ]; do
-		cp -a "${spl_tmpdir}/$1" "${spl_cachedir}" 2>/dev/null
-		shift
-	done
-
-	umount -l "${spl_tmpdir}" 2>/dev/null
-}
-
-###########################################################################
-# Common functions
-###########################################################################
-
-# Sends data to the splash FIFO after making sure there's someone
-# alive on the other end to receive it.
-splash_comm_send() {
-	if [ -z "`pidof $(basename ${spl_daemon})`" ]; then
-		return 1
-	else
-		splash_profile "comm $*"
-		echo "$*" > "${spl_fifo}" &
-	fi
-}
-
-# Returns the current splash mode.
-splash_get_mode() {
-	local ctty="${spl_bindir}/fgconsole"
-	local mode="$(${spl_util})"
-
-	if [ "${mode}" = "silent" ]; then
-		echo "silent"
-	else
-		if [ -z "$(${spl_decor} -c getstate --tty=${ctty} 2>/dev/null | grep off)" ]; then
-			echo "verbose"
-		else
-			echo "off"
-		fi
-	fi
-}
-
-# chvt <n>
-# --------
-# Switches to the n-th tty.
-chvt() {
-	local ntty=$1
-
-#	if [ -x /usr/bin/chvt ] ; then
-#		/usr/bin/chvt ${ntty}
-#	else
-		printf "\e[12;${ntty}]"
-#	fi
-}
-
-# Switches to verbose mode.
-splash_verbose() {
-#	chvt 1
-/bin/true
-}
-
-# Switches to silent mode.
-splash_silent() {
-	splash_comm_send "set mode silent"
-}
-
-# Saves profiling information
-splash_profile() {
-	if [ "${SPLASH_PROFILE}" = "on" ]; then
-		echo "$(cat /proc/uptime | cut -f1 -d' '): $*" >> "${spl_cachedir}/profile"
-	fi
-}
-
-# Set the input device if it exists. This will make it possible to use F2 to
-# switch from verbose to silent.
-splash_set_event_dev() {
-	local t="$(grep -Hsi keyboard /sys/class/input/input*/name | sed -e 's#.*input\([0-9]*\)/name.*#event\1#')"
-	if [ -z "${t}" ]; then
-		t="$(grep -Hsi keyboard /sys/class/input/event*/device/driver/description | grep -o 'event[0-9]\+')"
-		if [ -z "${t}" ]; then
-			for i in /sys/class/input/input* ; do
-				if [ "$((0x$(cat $i/capabilities/ev) & 0x100002))" = "1048578" ]; then
-					t="$(echo $i | sed -e 's#.*input\([0-9]*\)#event\1#')"
-				fi
-			done
-
-			if [ -z "${t}" ]; then
-				# Try an alternative method of finding the event device. The idea comes
-				# from Bombadil <bombadil(at)h3c.de>. We're couting on the keyboard controller
-				# being the first device handled by kbd listed in input/devices.
-				t="$(/bin/grep -s -m 1 '^H: Handlers=kbd' /proc/bus/input/devices | grep -o 'event[0-9]*')"
-			fi
-		fi
-	fi
-	[ -n "${t}" ] && splash_comm_send "set event dev /dev/input/${t}"
-}
-
-###########################################################################
-# Service
-###########################################################################
-
-# args: <svc> <action>
-splash_svc() {
-	local srv="$1"
-	local act="$2"
-
-	if [ "${act}" = "start" ]; then
-		splash_svc_update "${srv}" "svc_started"
-		if [ "${srv}" = "gpm" ]; then
-			splash_comm_send "set gpm"
-			splash_comm_send "repaint"
-		fi
-		splash_comm_send "log Service '${srv}' started."
-	else
-		splash_svc_update "${srv}" "svc_stopped"
-		splash_comm_send "log Service '${srv}' stopped."
-	fi
-
-	splash_update_progress "${srv}"
-}
-
-# args: <svc> <action>
-splash_svc_fail() {
-	local srv="$1"
-	local act="$2"
-
-	if [ "${SPLASH_VERBOSE_ON_ERRORS}" = "yes"  ]; then
-		splash_verbose
-		return 1
-	fi
-
-	if [ "${act}" = "start" ]; then
-		splash_svc_update "${srv}" "svc_start_failed"
-		splash_comm_send "log Service '${srv}' failed to start."
-	else
-		splash_svc_update "${srv}" "svc_stop_failed"
-		splash_comm_send "log Service '${srv}' failed to stop."
-	fi
-
-	splash_update_progress "${srv}"
-}
-
-# args: <svc> <state>
-#
-# Inform the splash daemon about service status changes.
-splash_svc_update() {
-	splash_comm_send "update_svc $1 $2"
-}
-
-# args: <svc>
-splash_svc_start() {
-	local svc="$1"
-
-	splash_svc_update "${svc}" "svc_start"
-	splash_comm_send "paint"
-}
-
-# args: <svc>
-splash_svc_stop() {
-	local svc="$1"
-
-	splash_svc_update "${svc}" "svc_stop"
-	splash_comm_send "paint"
-}
-
-# args: <svc>
-splash_input_begin() {
-	local svc="$1"
-
-	if [ "$(splash_get_mode)" = "silent" ]; then
-		splash_verbose
-		export SPL_SVC_INPUT_SILENT="${svc}"
-	fi
-}
-
-# args: <svc>
-splash_input_end() {
-	local svc="$1"
-
-	if [ "${SPL_SVC_INPUT_SILENT}" = "${svc}" ]; then
-		splash_silent
-		unset SPL_SVC_INPUT_SILENT
-	fi
-}
-
-###########################################################################
-# Framebuffer Console Decorations functions
-###########################################################################
-
-fbcondecor_supported()
-{
-	[ -e /dev/fbsplash -o -e /dev/fbcondecor ]
-}
-
-# args: <theme> <tty>
-fbcondecor_set_theme()
-{
-	local theme=$1
-	local tty=$2
-
-	[ -x ${spl_decor} ] || return 1
-
-	${spl_decor} --tty="${tty}" -t "${theme}" -c setcfg || return 1
-	${spl_decor} --tty="${tty}" -t "${theme}" -c setpic -q
-	${spl_decor} --tty="${tty}" -c on
-}
-
-###########################################################################
-# Service list
-###########################################################################
-
-# splash_svclist_get <type>
-# -------------------------
-# type:
-#  - start - to get a list of services to be started during bootup
-#  - stop  - to get a list of services to be stopped during shutdown/reboot
-splash_svclist_get() {
-	if [ "$1" = "start" -a -r "${spl_cachedir}/svcs_start" ]; then
-		cat "${spl_cachedir}/svcs_start"
-	elif [ "$1" = "stop" -a -r "${spl_cachedir}/svcs_stop" ]; then
-		cat "${spl_cachedir}/svcs_stop"
-	fi
-}
-
-splash_warn() {
-	echo "$*"
-}
-
-splash_err() {
-	echo "$*"
-}
-
-############################################################################
-# Functions to be overridden by distro-specific code
-###########################################################################
-
-# args: <internal_runlevel> <runlevel>
-#
-# This function is called when an 'rc_init' event takes place,
-# i.e. when the runlevel is changed.
-
-# It is normally used to initialize any internal splash-related 
-# variables (e.g. ones used to track the boot progress), calculate
-# and save the service list and call `splash_start` in appropriate 
-# runlevels.
-#
-# Note that the splash cache is already intialized when this
-# function is called.
-splash_init() {
-	if [ "$2" = "6" -o "$2" = "0" -o "$2" = "S" -a "$1" = "sysinit" ]; then
-		splash_start
-	fi
-}
-
-# args: <runlevel>
-#
-# This function is called when an 'rc_exit' event takes place,
-# i.e. at the end of processes all initscript from a runlevel.
-splash_exit() {
-	# If we're in sysinit or rebooting, do nothing.
-	[ "$1" = "S" -o "$1" = "6" -o "$1" = "0" ] && return 0
-
-	splash_comm_send "exit"
-	splash_cache_cleanup
-}
-
-# args: <svc>
-#
-# This function is called whenever the progress variable should be
-# updated.  It should recalculate the progress and send it to the
-# splash daemon.
-splash_update_progress() {
-	# splash_comm_send "progress ${progress}"
-	# splash_comm_send "paint"
-	return
-}
-
-# Export functions if we're running bash.
-if [ -n "${BASH}" ]; then
-	export -f splash
-	export -f splash_setup
-	export -f splash_get_boot_message
-	export -f splash_start
-	export -f splash_cache_prep
-	export -f splash_cache_cleanup
-	export -f splash_comm_send
-	export -f splash_get_mode
-	export -f chvt
-	export -f splash_verbose
-	export -f splash_silent
-	export -f splash_profile
-	export -f splash_set_event_dev
-	export -f splash_svclist_get
-fi
-
-# Load any supplementary splash functions.
-for i in /sbin/splash-functions-*.sh ; do
-	[ -r "${i}" ] && . "${i}"
-done
-
-splash_setup
-
-# vim:ts=4
diff --git a/abs/core-testing/fbsplash/splash.conf b/abs/core-testing/fbsplash/splash.conf
new file mode 100644
index 0000000..74cada9
--- /dev/null
+++ b/abs/core-testing/fbsplash/splash.conf
@@ -0,0 +1,63 @@
+#
+# /etc/conf.d/splash
+#
+
+####  initcpio and Fbsplash daemon  ##########################################
+
+## Themes to include into initcpio
+## For a smaller initcpio you may try theme cfg files instead of directories.
+SPLASH_THEMES=(
+    linhes
+)
+
+## Override the initial silent splash screen status message defaults.
+## Note: '$progress' will be replaced by Fbsplash itself.
+## * initcpio - (no effect with fbcondecor kernel)
+SPLASH_INIT_MESSAGE="Initializing the kernel"
+## * bootup
+SPLASH_BOOT_MESSAGE="Booting '$HOSTNAME' (\$progress%)"
+## * reboot
+SPLASH_REBOOT_MESSAGE="Rebooting '$HOSTNAME' (\$progress%)"
+## * shutdown
+SPLASH_SHUTDOWN_MESSAGE="Shutting down '$HOSTNAME' (\$progress%)"
+
+## To show animations early, include the Fbsplash daemon (1.5 MiB) into initcpio, too,
+## instead of the small helper only.
+## Note: Themes with 'scripts/rc_init-pre' like 'arch-banner-icons' are not supported.
+SPLASH_DAEMON="early"
+
+## Make the splash daemon use fade effects.
+## Note: The initcpio helper does only use the kernel parameter!
+# SPLASH_EFFECTS="fadein,fadeout"
+## Uggly hack to get that in from the kernel line :p
+SPLASH_EFFECTS=$(e=();IFS=',';for w in $splash;do [[ $w == fade* ]]&&e+=($w);done;echo "${e[*]}")
+
+## Enable the textbox when starting the Fbsplash daemon.
+## Useful if the theme provides a message log or other textbox.
+## The scripts write any initscripts [FAIL] messages to the log.
+## Note: The textbox can also be toggled by pressing F3-key.
+SPLASH_TEXTBOX="yes"
+
+## Splash progress timeout
+## If set to a positive value, Fbsplash will automatically switch to verbose
+## mode if there is no progress for the specified number of seconds.
+SPLASH_AUTOVERBOSE=0
+
+####  scripts behaviour  #####################################################
+
+## Change to verbose mode on any initscripts [FAIL] message
+## Useful with very simple themes and also when starting Xorg from DAEMONS
+SPLASH_VERBOSE_ON_ERRORS="no"
+
+## Name of the DAEMONS script starting Xorg if any
+## Set this to avoid virtual terminal change struggle between Xorg and Fbsplash.
+SPLASH_XSERVICE="gdm"
+#SPLASH_XSERVICE="kdm"
+#SPLASH_XSERVICE="xdm"
+#SPLASH_XSERVICE="lxdm"
+#SPLASH_XSERVICE="slim"
+
+## Push initscripts [BUSY] messages to the splash status message line.
+SPLASH_PUSH_MESSAGES="no"
+
+# EOF #
-- 
cgit v0.12