summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDet2015-07-09 13:49:27 +0300
committerDet2015-07-09 13:49:27 +0300
commitb6fe689ea31f215368d1f2a880b4becbb85e3e00 (patch)
treef4e642e7adbedc3e13ca1bd8c2546e2790898137
downloadaur-b6fe689ea31f215368d1f2a880b4becbb85e3e00.tar.gz
Initial import: 1.5.4.4-16
-rw-r--r--.SRCINFO36
-rw-r--r--PKGBUILD110
-rw-r--r--fbcondecor.conf6
-rw-r--r--fbcondecor.daemon55
-rw-r--r--fbsplash-basic.sh196
-rw-r--r--fbsplash.initcpio_hook52
-rw-r--r--fbsplash.initcpio_install104
-rw-r--r--fbsplash.install33
-rw-r--r--splash.conf76
-rw-r--r--splash_start_initcpio.patch22
10 files changed, 690 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..d3dccbc07735
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,36 @@
+pkgbase = fbsplash
+ pkgdesc = Userspace implementation of a splash screen for Linux (formerly gensplash)
+ pkgver = 1.5.4.4
+ pkgrel = 16
+ url = http://fbsplash.alanhaggai.org
+ install = fbsplash.install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ depends = miscsplashutils
+ depends = freetype2
+ depends = libjpeg
+ depends = libpng
+ depends = libmng
+ depends = lcms
+ depends = gpm
+ optdepends = linux-fbcondecor: enable console background images
+ optdepends = fbsplash-extras: additional functionality like daemon icons
+ optdepends = uswsusp-fbsplash: suspend to disk with fbsplash
+ optdepends = python: convert themes from splashy to fbsplash
+ conflicts = fbsplash-scripts
+ conflicts = initscripts-extras-fbsplash
+ source = http://downloads.sourceforge.net/project/fbsplash.berlios/splashutils-1.5.4.4.tar.bz2
+ source = splash_start_initcpio.patch
+ source = splash.conf
+ source = fbsplash-basic.sh
+ source = fbsplash.initcpio_install
+ source = fbsplash.initcpio_hook
+ source = fbcondecor.daemon
+ source = fbcondecor.conf
+ options = !makeflags
+ backup = etc/conf.d/fbcondecor
+ backup = etc/conf.d/splash
+
+pkgname = fbsplash
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ab8589c63294
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,110 @@
+# Maintainer: Det
+# Contributors: Tom Kwok, Heiko Baums, Kurt J. Bosch
+
+pkgname=fbsplash
+pkgver=1.5.4.4
+pkgrel=16
+pkgdesc="Userspace implementation of a splash screen for Linux (formerly gensplash)"
+arch=('i686' 'x86_64')
+url="http://fbsplash.alanhaggai.org"
+license=('GPL')
+depends=('miscsplashutils' 'freetype2' 'libjpeg' 'libpng' 'libmng' 'lcms' 'gpm')
+optdepends=('linux-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=$pkgname.install
+source=("http://downloads.sourceforge.net/project/fbsplash.berlios/splashutils-$pkgver.tar.bz2"
+ 'splash_start_initcpio.patch'
+ 'splash.conf'
+ 'fbsplash-basic.sh'
+ 'fbsplash.initcpio_install'
+ 'fbsplash.initcpio_hook'
+ 'fbcondecor.daemon'
+ 'fbcondecor.conf')
+md5sums=('2a16704c4adde97b58812cd89e3f2342'
+ '4045e315c52f5a576fca4f7e634eeb91'
+ '90708a96038d7d7921c2e9fde938c058'
+ 'b5e6c08bbe7645a1c035565ea7d66437'
+ '2860cc29d5da2ea65c810de068bcc262'
+ 'f65cf94d4d4959bb44cda5fa634ab405'
+ '631b10db2f7c4b70062e79b60541ddbb'
+ 'b3db9d4fd902b62ac9e38589677e2d16')
+
+build() {
+ cd splashutils-$pkgver
+
+ msg2 "Running 'autoreconf'.."
+ autoreconf -i
+
+ # fix fbcondecor_ctl splash type
+ sed -i 's|fbsplash_lib_init(fbspl_bootup)|fbsplash_lib_init(fbspl_undef)|' src/fbcon_decor_ctl.c
+
+ # fix libdir
+ sed -i "s|/lib/splash/cache|/usr/lib/splash/cache|g" debian/splashutils.dirs
+ sed -i "s|/lib/splash/tmp|/usr/lib/splash/tmp|g" debian/splashutils.dirs
+ sed -i "s|/lib/splash/cache|/usr/lib/splash/cache|g" debian/splash.conf
+ sed -i "s|/lib/splash/cache|/usr/lib/splash/cache|g" debian/changelog
+ sed -i "s|/lib/splash/tmp|/usr/lib/splash/tmp|g" debian/changelog
+ sed -i "s|/lib/splash/cache|/usr/lib/splash/cache|g" docs/daemon
+ sed -i "s|@libdir@/splash/cache|/usr/lib/splash/cache|g" scripts/splash-functions.sh.in
+ sed -i "s|@libdir@/splash/tmp|/usr/lib/splash/tmp|g" scripts/splash-functions.sh.in
+ sed -i "s|@libdir@/splash/bin|/usr/lib/splash/bin|g" scripts/splash-functions.sh.in
+ sed -i "s|/lib/splash/cache|/usr/lib/splash/cache|g" src/daemon_cmd.c
+ sed -i "s|@libdir@/splash/sys|/usr/lib/splash/sys|g" scripts/splash_geninitramfs.in
+ sed -i "s|@libdir@/splash|/usr/lib/splash|g" scripts/splash_manager.in
+ sed -i "s|@libdir@/splash|/usr/lib/splash|g" src/fbsplash.h.in
+
+ #Fix freetype => freetype2
+ sed -i 's|\(#include <freetype\)/|\12/|' src/libfbsplashrender.c
+ sed -i 's|\(#include <freetype\)/|\12/|' src/ttf.h
+ sed -i 's|\(#include <freetype\)/|\12/|' src/ttf.c
+
+ # fix set_event_dev call for initcpio usage (if evdev module is there)
+ #patch -Np2 -i "$srcdir/splash_start_initcpio.patch"
+
+ export LIBS="-lbz2"
+
+ msg2 "Running './configure'.."
+ ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --without-klibc --enable-fbcondecor --with-gpm --with-mng --with-png --with-ttf --with-ttf-kernel
+
+ msg2 "Running 'make'.."
+ make
+}
+
+package() {
+ cd splashutils-$pkgver
+
+ msg2 "Running 'make install'.."
+ make DESTDIR="$pkgdir" \
+ sbindir="/usr/bin" \
+ eexecbindir="/usr/bin" \
+ eexecsbindir="/usr/bin" \
+ install
+
+ cd "$pkgdir"
+
+ # fix duplicate slashes to get splash_cache_cleanup grep to work
+ sed -r -e 's,^(export spl_.*="/)/+,\1,' -i usr/bin/splash-functions.sh
+
+ # fix the path to splash_util
+ sed -r -e 's|sbin|usr/bin|g' -i usr/bin/splash{-functions.sh,_{geninitramfs,manager}} usr/share/doc/splashutils/{porting,early_bootup} usr/include/fbsplash.h
+
+ # provide the mountpoint needed by splash-functions.sh
+ install -dm755 usr/lib/splash/{cache,tmp}
+ install -dm700 usr/lib/splash/sys
+
+ # Install fbsplash scripts and config file
+ install -Dm644 "$srcdir"/splash.conf etc/conf.d/splash
+ install -Dm644 "$srcdir"/fbsplash-basic.sh etc/rc.d/functions.d/fbsplash-basic.sh
+ install -Dm644 "$srcdir"/fbsplash.initcpio_install usr/lib/initcpio/install/fbsplash
+ install -Dm644 "$srcdir"/fbsplash.initcpio_hook usr/lib/initcpio/hooks/fbsplash
+
+ # Install fbcodecor script and config file
+ install -Dm644 "$srcdir"/fbcondecor.conf etc/conf.d/fbcondecor
+ install -Dm755 "$srcdir"/fbcondecor.daemon etc/rc.d/fbcondecor
+} \ No newline at end of file
diff --git a/fbcondecor.conf b/fbcondecor.conf
new file mode 100644
index 000000000000..18db844524c3
--- /dev/null
+++ b/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/fbcondecor.daemon b/fbcondecor.daemon
new file mode 100644
index 000000000000..882c05fa835d
--- /dev/null
+++ b/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
+. /usr/bin/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/fbsplash-basic.sh b/fbsplash-basic.sh
new file mode 100644
index 000000000000..45c39ef17ced
--- /dev/null
+++ b/fbsplash-basic.sh
@@ -0,0 +1,196 @@
+
+# /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 advanced script is 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 )
+ # splash-functions.sh will run splash_setup which needs /proc
+ # code line copied from /etc/rc.sysinit
+ /bin/mountpoint -q /proc || /bin/mount -n -t proc proc /proc -o nosuid,noexec,nodev
+ export SPLASH_PUSH_MESSAGES SPLASH_VERBOSE_ON_ERRORS
+ . /usr/bin/splash-functions.sh # /etc/conf.d/splash is also sourced by this
+ unset options opt i # eliminate splash_setup non local vars ## FIX ME ##
+ SPLASH_STEPS=3 # sysinit steps
+ 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 /run/.splash-cache; then
+ /bin/mount --move /run/.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 > 1 && fsckret != 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
+ /usr/lib/systemd/systemd-vconsole-setup
+ # 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
+ }
+ splash_shutdown_prekillall() {
+ splash_comm_send progress $(( 65535*1/3 )); splash_comm_send paint
+ [[ -r $spl_pidfile ]] && add_omit_pids $( <$spl_pidfile )
+ }
+ splash_shutdown_postkillall() {
+ splash_comm_send progress $(( 65535*2/3 )); splash_comm_send paint
+ }
+ 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++ ))
+ 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_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; /usr/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
+ /usr/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/fbsplash.initcpio_hook b/fbsplash.initcpio_hook
new file mode 100644
index 000000000000..2ace3e8bf9f7
--- /dev/null
+++ b/fbsplash.initcpio_hook
@@ -0,0 +1,52 @@
+run_hook ()
+{
+ # avoid exporting configuration
+ (
+ SPLASH_INIT_MESSAGE="Initializing the kernel"
+ # Get configuration and functions (faking sysinit for config file hacks)
+ PREVLEVEL=N; RUNLEVEL=S
+ . /usr/bin/splash-functions.sh
+ unset PREVLEVEL RUNLEVEL
+
+ [ "${SPLASH_MODE_REQ}" = "silent" ] || exit 0
+
+ # Start the daemon here if possible
+ # to show animations early and gain some bootup speed
+ if [ -x "$spl_daemon" ]; then
+ msg "Starting Fbsplash Daemon"
+ set -e
+ # Mount the cache within /run to get it moved to the new root
+ mkdir /run/.splash-cache
+ ( spl_cachedir=/run/.splash-cache; splash_cache_prep )
+ # Take over any existing cache content
+ mkdir -p $spl_cachedir
+ parent=$( dirname $spl_cachedir )
+ mv $spl_cachedir $parent/.splash-cache
+ cp -a $parent/.splash-cache /run/
+ # Symlink for starting the daemon
+ ln -s /run/.splash-cache $spl_cachedir
+ # 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
+ cd /run/.splash-cache
+ set +e
+ SPLASH_BOOT_MESSAGE="${SPLASH_INIT_MESSAGE}"
+ splash_start && sleep .1 # allow the daemon to open the event dev
+ exit
+ fi
+
+ # Start the fbcondecor helper if not already done by fbcondecor kernel
+ if ! fbcondecor_supported; then
+ BOOT_MSG="${SPLASH_INIT_MESSAGE}" \
+ /usr/bin/fbcondecor_helper 2 init 0 0 $SPLASH_THEME
+ fi
+ )
+}
diff --git a/fbsplash.initcpio_install b/fbsplash.initcpio_install
new file mode 100644
index 000000000000..fcbc9f22f0a6
--- /dev/null
+++ b/fbsplash.initcpio_install
@@ -0,0 +1,104 @@
+
+build() {
+ # Add config file, splash-functions and the helper
+ add_file /etc/conf.d/splash
+ add_file /usr/bin/splash-functions.sh
+ add_binary /usr/bin/fbcondecor_helper
+
+ # Get in configuration, parameters and functions
+ . /etc/conf.d/splash
+ . /usr/bin/splash-functions.sh
+
+ # Unmount any stale cache tmpfs
+ splash_cache_cleanup
+
+ SPLASH_PROFILE=off
+
+ if [[ $SPLASH_DAEMON = early ]]; then
+ # Add stuff needed to run splash_start function (except optional evdev module)
+ add_dir $spl_tmpdir
+ add_binary $spl_daemon
+ if [[ -e /etc/rc.d/functions.d/fbsplash-extras.sh ]]; then
+ . /etc/rc.d/functions.d/fbsplash-extras.sh
+ # Add files from a prepared cache (faking sysinit)
+ splash_cache_prep_initcpio && add_full_dir $spl_cachedir
+ fi
+ fi
+
+ # List file paths contained in given Fbsplash theme cfg files
+ # (Only file paths containing at least one slash will be found by this.)
+ fbsplash_list_paths() {
+ (( $# )) || return 0
+ /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 arg is a theme cfg file path
+ fbsplash_is_cfg() {
+ [[ $1 =~ ^/etc/splash/[^/]+/[0-9]+x[0-9]+\.cfg$ ]]
+ }
+
+ # Add all files referenced by path in given theme cfg files
+ # args: <theme-root-dir> <cfg-file>...
+ fbsplash_add_files_from_cfgs() {
+ local file theme_dir=$1; shift
+ while read file; do
+ if [[ $file == /* ]]; then
+ add_file $file
+ else # Path may be relative to /etc/splash or theme-dir
+ local found=0
+ for file in /etc/splash/$file "$theme_dir"/$file; do
+ [[ -f $file ]] && { add_file $file; found=1; }
+ done
+ (( found )) || error "Theme '${theme_dir##*/}': File not found: '$file'"
+ fi
+ done < <( fbsplash_list_paths "$@" )
+ }
+
+ # Add common files (may be referenced in cfg by plain file name)
+ local file
+ for file in /etc/splash/*; do
+ [[ -f $file ]] && add_file "$file"
+ done
+
+ # Add themes
+ local file theme
+ for theme in $SPLASH_THEMES; do
+ if [[ -d /etc/splash/$theme && $theme != */* ]]; then
+ add_full_dir /etc/splash/$theme
+ local files=()
+ for file in /etc/splash/$theme/*.cfg; do
+ [[ -f $file ]] && fbsplash_is_cfg "$file" && files+=( $file )
+ done
+ fbsplash_add_files_from_cfgs /etc/splash/$theme "${files[@]}"
+ elif [[ -f /etc/splash/$theme ]] && fbsplash_is_cfg /etc/splash/$theme; then
+ file=/etc/splash/$theme; theme=${theme%/*}
+ add_file $file
+ fbsplash_add_files_from_cfgs /etc/splash/$theme $file
+ # Add all non-cfg files from theme dir (may be referenced by plain file name)
+ for file in /etc/splash/$theme/*; do
+ [[ -f $file ]] && ! fbsplash_is_cfg "$file" && add_file "$file"
+ done
+ else
+ error "Theme invalid or not found: '$theme'"
+ fi
+ done
+
+ add_runscript fbsplash
+}
+
+help() {
+cat<<HELPEOF
+ This hook adds the FBconDecor helper and Fbsplash themes and maybe the
+ Fbsplash daemon as specified in /etc/conf.d/splash.
+HELPEOF
+}
+
+#EOF
diff --git a/fbsplash.install b/fbsplash.install
new file mode 100644
index 000000000000..9ceef8042010
--- /dev/null
+++ b/fbsplash.install
@@ -0,0 +1,33 @@
+post_install() {
+ 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() {
+ if [ -d /lib/splash/sys ]; then
+ rm -r /lib/splash/sys
+ fi
+ if [ ! "$(ls -A /lib/splash)" ]; then
+ rmdir /lib/splash
+ fi
+ post_install
+}
+
+op=$1
+shift
+$op $*
+
+#EOF
diff --git a/splash.conf b/splash.conf
new file mode 100644
index 000000000000..8eb3a442ddaf
--- /dev/null
+++ b/splash.conf
@@ -0,0 +1,76 @@
+#
+# /etc/conf.d/splash
+#
+
+#### WARNING!
+## This file is also sourced in the initcpio hook.
+## No BASH-code (like arrays) is allowed here!
+
+#### initcpio and Fbsplash daemon ##########################################
+
+## Themes to include into initcpio
+## For a smaller initcpio you may try theme cfg files instead of directories.
+SPLASH_THEMES="
+ arch-black
+ arch-banner-icons/1024x768.cfg
+ arch-banner-icons/1280x800.cfg
+ arch-banner-noicons/1024x768.cfg
+ arch-banner-noicons/1280x800.cfg
+"
+
+## 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%)"
+
+## Include and use the Fbsplash daemon (1.5 MiB) in the initcpio
+## instead of the small helper only.
+## Usefull to show animations early.
+## Note: Themes with 'scripts/rc_init-pre' like 'arch-banner-icons' are
+## supported now if fbsplash-extras>=2.0.10 is installed, but there
+## might still be some sophisticated ones which break when using this.
+SPLASH_DAEMON="early"
+
+## Make the splash daemon use fade effects.
+## Note: The initcpio helper does only use the kernel parameter!
+# Just use fadein on bootup and fadeout on shutdown/reboot
+case $PREVLEVEL in N ) SPLASH_EFFECTS="fadein" ; esac
+case $RUNLEVEL in [06] ) SPLASH_EFFECTS="fadeout"; esac
+# Uncomment this line to allways use both
+# SPLASH_EFFECTS="fadein,fadeout"
+
+## 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 X 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 #
diff --git a/splash_start_initcpio.patch b/splash_start_initcpio.patch
new file mode 100644
index 000000000000..ff4ae962881c
--- /dev/null
+++ b/splash_start_initcpio.patch
@@ -0,0 +1,22 @@
+diff -ru src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in src//splashutils-1.5.4.3/scripts/splash-functions.sh.in
+--- src.orig//splashutils-1.5.4.3/scripts/splash-functions.sh.in 2008-11-13 20:54:19.000000000 +0100
++++ src//splashutils-1.5.4.3/scripts/splash-functions.sh.in 2011-03-03 09:45:29.258901793 +0100
+@@ -250,6 +250,9 @@
+ # Start the splash daemon
+ BOOT_MSG="$(splash_get_boot_message)" ${spl_daemon} --theme="${SPLASH_THEME}" --pidfile="${spl_pidfile}" --type=${ttype} ${options}
+
++ # First let the daemon open the event dev before it's gone away in case this is run in the initcpio
++ splash_set_event_dev
++
+ # Set the silent TTY and boot message
+ splash_comm_send "set tty silent ${SPLASH_TTY}"
+
+@@ -261,8 +264,6 @@
+
+ splash_comm_send "set autoverbose ${SPLASH_AUTOVERBOSE}"
+
+- splash_set_event_dev
+-
+ return 0
+ }
+