diff options
Diffstat (limited to 'abs/core-testing/fbsplash')
-rw-r--r-- | abs/core-testing/fbsplash/PKGBUILD | 54 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/extra/encrypt_hook.patch | 24 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/fbsplash.conf | 8 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/fbsplash.daemon | 56 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/fbsplash.initcpio_install | 29 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/fbsplash.inithooks | 91 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/fbsplash.install | 33 | ||||
-rw-r--r-- | abs/core-testing/fbsplash/splash-functions-arch.sh | 71 |
8 files changed, 366 insertions, 0 deletions
diff --git a/abs/core-testing/fbsplash/PKGBUILD b/abs/core-testing/fbsplash/PKGBUILD new file mode 100644 index 0000000..eec0284 --- /dev/null +++ b/abs/core-testing/fbsplash/PKGBUILD @@ -0,0 +1,54 @@ +# Maintainer: Greg Helton <gt@fallendusk.org> + +pkgname=fbsplash +pkgver=1.5.4.3 +pkgrel=3 +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') +makedepends=('klibc') +depends=('initscripts' 'miscsplashutils' 'libjpeg' 'libpng' 'freetype2-static' 'gpm' 'libmng') +conflicts=('bootsplash' 'gensplash') +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) +md5sums=('c722cd4148817b9c50381d9bdc1ea6ef' + '4ea33e99330abf4a9a468ac8c0ba48ca' + '44375e92025ce07b3434773efb282127' + '8ffb29400a2518b16f3dbca653855268' + 'b1b45761b2a5899a4fe8255fc9cfaf9c' + '5cce2373181193207d105e150a7f371c' + '9f876244d6b09c96cf1543a1b47d6525') + +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 + 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 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 +} diff --git a/abs/core-testing/fbsplash/extra/encrypt_hook.patch b/abs/core-testing/fbsplash/extra/encrypt_hook.patch new file mode 100644 index 0000000..f059048 --- /dev/null +++ b/abs/core-testing/fbsplash/extra/encrypt_hook.patch @@ -0,0 +1,24 @@ +--- /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/fbsplash.conf b/abs/core-testing/fbsplash/fbsplash.conf new file mode 100644 index 0000000..331f684 --- /dev/null +++ b/abs/core-testing/fbsplash/fbsplash.conf @@ -0,0 +1,8 @@ +# +# fbsplash.conf +# + +THEMES="darch" +SPLASH_TTYS="1 2 3 4 5 6" + +#EOF
\ No newline at end of file diff --git a/abs/core-testing/fbsplash/fbsplash.daemon b/abs/core-testing/fbsplash/fbsplash.daemon new file mode 100644 index 0000000..29e5755 --- /dev/null +++ b/abs/core-testing/fbsplash/fbsplash.daemon @@ -0,0 +1,56 @@ +#!/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="darch" + 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.initcpio_install b/abs/core-testing/fbsplash/fbsplash.initcpio_install new file mode 100644 index 0000000..06700a8 --- /dev/null +++ b/abs/core-testing/fbsplash/fbsplash.initcpio_install @@ -0,0 +1,29 @@ + +install() { + [ -x /sbin/fbcondecor_helper ] || return 1 + + source /etc/conf.d/fbsplash.conf + [ -z "${THEME}" ] && THEME="darch" + + 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 + + for DIR in /dev /dev/fb /dev/misc /dev/vc /lib/splash/proc /lib/splash/sys + do + add_dir ${DIR} + done + + for THEME in ${THEMES} + do + add_full_dir "/etc/splash/${THEME}" + done +} + +help() { + echo "This hook includes Fbsplash in the initramfs image." +} + +#EOF diff --git a/abs/core-testing/fbsplash/fbsplash.inithooks b/abs/core-testing/fbsplash/fbsplash.inithooks new file mode 100644 index 0000000..dbf7b13 --- /dev/null +++ b/abs/core-testing/fbsplash/fbsplash.inithooks @@ -0,0 +1,91 @@ +# 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 new file mode 100644 index 0000000..4ef95b6 --- /dev/null +++ b/abs/core-testing/fbsplash/fbsplash.install @@ -0,0 +1,33 @@ + +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 20 > /etc/conf.d/fbsplash.bootsteps + echo 10 > /etc/conf.d/fbsplash.shutdownsteps + fi + +} + +post_upgrade() { + post_install +} + +op=$1 +shift +$op $* + +#EOF diff --git a/abs/core-testing/fbsplash/splash-functions-arch.sh b/abs/core-testing/fbsplash/splash-functions-arch.sh new file mode 100644 index 0000000..977ccef --- /dev/null +++ b/abs/core-testing/fbsplash/splash-functions-arch.sh @@ -0,0 +1,71 @@ +# 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 # |