From 09b14aa48e621e4263c095769bbd2697893eef8d Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson Date: Tue, 10 Feb 2009 23:29:38 -0800 Subject: Needed for Splashy. --- abs/core-testing/directfb/ChangeLog | 5 + abs/core-testing/directfb/PKGBUILD | 26 ++ abs/core-testing/directfb/dfb_serial.diff | 10 + abs/core-testing/initscripts-splashy/PKGBUILD | 31 +++ .../initscripts-splashy/initscripts-splash.install | 25 ++ abs/core-testing/initscripts-splashy/splash | 310 +++++++++++++++++++++ abs/core-testing/initscripts-splashy/splash.conf | 4 + abs/core-testing/splashy/PKGBUILD | 46 +++ abs/core-testing/splashy/splashy-functions | 92 ++++++ abs/core-testing/splashy/splashy.initcpio_hook | 48 ++++ abs/core-testing/splashy/splashy.initcpio_install | 51 ++++ abs/core-testing/splashy/splashy.install | 15 + abs/core-testing/sysvinit-mod/PKGBUILD | 29 ++ abs/core-testing/sysvinit-mod/sysvinit.diff | 276 ++++++++++++++++++ 14 files changed, 968 insertions(+) create mode 100644 abs/core-testing/directfb/ChangeLog create mode 100644 abs/core-testing/directfb/PKGBUILD create mode 100644 abs/core-testing/directfb/dfb_serial.diff create mode 100644 abs/core-testing/initscripts-splashy/PKGBUILD create mode 100644 abs/core-testing/initscripts-splashy/initscripts-splash.install create mode 100644 abs/core-testing/initscripts-splashy/splash create mode 100644 abs/core-testing/initscripts-splashy/splash.conf create mode 100644 abs/core-testing/splashy/PKGBUILD create mode 100644 abs/core-testing/splashy/splashy-functions create mode 100755 abs/core-testing/splashy/splashy.initcpio_hook create mode 100755 abs/core-testing/splashy/splashy.initcpio_install create mode 100644 abs/core-testing/splashy/splashy.install create mode 100644 abs/core-testing/sysvinit-mod/PKGBUILD create mode 100644 abs/core-testing/sysvinit-mod/sysvinit.diff diff --git a/abs/core-testing/directfb/ChangeLog b/abs/core-testing/directfb/ChangeLog new file mode 100644 index 0000000..4e10ded --- /dev/null +++ b/abs/core-testing/directfb/ChangeLog @@ -0,0 +1,5 @@ +2008-07-29 Eric Belanger + + * directfb 1.2.0-1 + * Upstream update + * Added ChangeLog diff --git a/abs/core-testing/directfb/PKGBUILD b/abs/core-testing/directfb/PKGBUILD new file mode 100644 index 0000000..76e86d1 --- /dev/null +++ b/abs/core-testing/directfb/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD,v 1.7 2008/08/02 19:48:28 Snowman Exp $ +# Maintainer: Eric Belanger +# Contributor: Eric Belanger + +pkgname=directfb +pkgver=1.2.7 +pkgrel=1 +pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device" +arch=('i686' 'x86_64') +url="http://www.directfb.org" +license=('LGPL') +depends=('libjpeg' 'libxext' 'sdl' 'sysfsutils' 'libpng' 'freetype2') +options=('!libtool') +source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver}.tar.gz dfb_serial.diff) +md5sums=('59ca16f600e96c8c104a485ff7c322c6' + '5993ae20546b80d0e5fa4f7b367e2f82') + +build() { + cd ${srcdir}/DirectFB-${pkgver} +# patch -p0 < ../dfb_serial.diff + ./configure --prefix=/usr --sysconfdir=/etc --enable-static --enable-zlib \ + --enable-x11 --enable-sdl --disable-vnc --disable-osx \ + --enable-video4linux2 --enable-voodoo || return 1 + make || return 1 + make DESTDIR=${pkgdir} install || return 1 +} diff --git a/abs/core-testing/directfb/dfb_serial.diff b/abs/core-testing/directfb/dfb_serial.diff new file mode 100644 index 0000000..638467b --- /dev/null +++ b/abs/core-testing/directfb/dfb_serial.diff @@ -0,0 +1,10 @@ +--- lib/direct/serial.h.orig 2009-02-11 05:40:20.000000000 +0000 ++++ lib/direct/serial.h 2009-02-11 05:40:44.000000000 +0000 +@@ -31,6 +31,7 @@ + + #include + #include ++#include + + struct __D_DirectSerial { + int magic; diff --git a/abs/core-testing/initscripts-splashy/PKGBUILD b/abs/core-testing/initscripts-splashy/PKGBUILD new file mode 100644 index 0000000..1c8dbed --- /dev/null +++ b/abs/core-testing/initscripts-splashy/PKGBUILD @@ -0,0 +1,31 @@ +# Contributor: Lexiw +# Contributor: Jeremy Sands + +pkgname=initscripts-splashy +pkgver=2008.09 +pkgrel=2 +pkgdesc="System initialization/bootup scripts with splash support" +arch=('i686' 'x86_64') +url="http://www.archlinux.org" +license=('GPL') +groups=('base') +backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown) +depends=('glibc' 'bash' 'awk' 'grep' 'coreutils' 'sed' 'udev>=118' 'net-tools' 'ncurses' 'sysvinit-mod') +provides=('initscripts') +conflicts=('initscripts') +install=initscripts-splash.install +source=(ftp://ftp.archlinux.org/other/initscripts/initscripts-${pkgver}-${pkgrel}.tar.gz + splash.conf + splash) +md5sums=('c28214d35643570cde56dd1142348aa7' + 'fe6da7a9242aca91779e165979bb7e3d' + 'd3fffe7133e6096937195084d2746889') + +build() { + cd ${startdir}/src/initscripts-${pkgver}-${pkgrel}/ + + DESTDIR=$startdir/pkg ./install.sh + + install -D -m644 ${startdir}/splash ${startdir}/pkg/etc/rc.d/functions.d/splash + install -D -m644 ${startdir}/splash.conf ${startdir}/pkg/etc/splash.conf +} diff --git a/abs/core-testing/initscripts-splashy/initscripts-splash.install b/abs/core-testing/initscripts-splashy/initscripts-splash.install new file mode 100644 index 0000000..9fffa9b --- /dev/null +++ b/abs/core-testing/initscripts-splashy/initscripts-splash.install @@ -0,0 +1,25 @@ +post_upgrade() { + cat << "EOF" +----------------------------------------------------------- +IMPORTANT NOTICE FOR ENCRYPTION USERS + +The "password" column in /etc/crypttab has now +two special keywords: +- ASK ask for a passphrase on boot +- SWAP use a random key and create swapspace + This is particularly dangerous, as the + volume in question will be overwritten + If you use SWAP as your passphrase (which + is insecure anyway), be sure to remove it + from /etc/crypttab to avoid dataloss! + +See /etc/crypttab(.pacnew) for more information. +----------------------------------------------------------- +Attention netcfg users: netcfg is no longer included as +part of the initscripts package. +Be aware that rc.conf's NET_PROFILES has changed to +NETWORKS, and that netcfg must be installed separately. +For more info, see the netcfg man page. +----------------------------------------------------------- +EOF +} diff --git a/abs/core-testing/initscripts-splashy/splash b/abs/core-testing/initscripts-splashy/splash new file mode 100644 index 0000000..a3e49a4 --- /dev/null +++ b/abs/core-testing/initscripts-splashy/splash @@ -0,0 +1,310 @@ +# +# initscripts-splash functions +# + +. /etc/splash.conf + +if [ "$SPLASH_DEBUG" = "true" ]; then + if ! [ -d /var/log/splash ]; then + mkdir -p /var/log/splash + fi + if ! [ -f /var/log/splash/splash.log ]; then + mount -ns -t tmpfs -o size=1M tmpfs /var/log/splash + echo "Hello damned debugger" > /var/log/splash/splash.log + fi +fi + +debug_log() { + [ "$SPLASH_DEBUG" = "true" ] || return 1 + + echo "$1" >> /var/log/splash/splash.log +} + +splash_enabled_cmdline() { debug_log "$0 ${FUNCNAME}" + local ENABLE=false + local SINGLE=false + + for x in $CMDLINE; do + case $x in + single) + SINGLE=true + ;; + splash) + ENABLE=true + ;; + nosplash) + ENABLE=false + ;; + esac + done + + [ "${SINGLE}" = "false" ] || return 1 + [ "${ENABLE}" = "true" ] || return 1 + + return 0 +} + +splash_enabled_config() { debug_log "$0 ${FUNCNAME}" + if [[ -n ${SPLASH} && -f /etc/rc.d/${SPLASH}-functions ]]; then + return 0 + else + if [[ -f /etc/rc.d/splashy-functions ]]; then + SPLASH="splashy" + return 0 + else + return 1 + fi + fi +} + +if [ -z "$RUNLEVEL" ]; then + return 0 +fi + +if ! splash_enabled_cmdline; then + return 0 +fi + +if ! splash_enabled_config; then + return 0 +fi + +count_daemons() { + local COUNT=0 + for daemon in "${DAEMONS[@]}"; do + if [ "$daemon" = "${daemon#!}" ]; then + ((COUNT++)) + fi + done + + echo ${COUNT} +} + +count_stats() { + local COUNT=$(grep -e status -e stat_busy /etc/${1} | grep -c -v \#) + + if ! [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then + ((COUNT--)) + fi + if ! [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then + ((COUNT--)) + fi + + echo ${COUNT} +} + +set_sysinit() { debug_log "$0 ${FUNCNAME}" + SPLASH_PROGRESS_STATS=$(count_stats rc.sysinit) + SPLASH_PROGRESS_DAEMONS=$(count_daemons) + SPLASH_PROGRESS_TOTAL=$(($SPLASH_PROGRESS_STATS+$SPLASH_PROGRESS_DAEMONS)) + SPLASH_PROGRESS_COUNT=0 + SPLASH_AUTORUN_COMMAND="splash_sysinit" + + debug_log "SPLASH_PROGRESS_TOTAL=$SPLASH_PROGRESS_TOTAL SPLASH_AUTORUN_COMMAND=$SPLASH_AUTORUN_COMMAND" +} + +set_multi() { debug_log "$0 ${FUNCNAME}" + SPLASH_PROGRESS_STATS=$(count_stats rc.sysinit) + SPLASH_PROGRESS_DAEMONS=$(count_daemons) + SPLASH_PROGRESS_TOTAL=$(($SPLASH_PROGRESS_STATS+$SPLASH_PROGRESS_DAEMONS)) + SPLASH_PROGRESS_COUNT=$(($SPLASH_PROGRESS_STATS-1)) + SPLASH_AUTORUN_COMMAND="splash_multi" + + debug_log "SPLASH_PROGRESS_TOTAL=$SPLASH_PROGRESS_TOTAL SPLASH_AUTORUN_COMMAND=$SPLASH_AUTORUN_COMMAND" +} + +set_shutdown() { debug_log "$0 ${FUNCNAME}" + SPLASH_PROGRESS_STATS=$(count_stats rc.shutdown) + SPLASH_RUNNING_DAEMONS=(`/bin/ls /var/run/daemons`) + SPLASH_PROGRESS_DAEMONS=${#SPLASH_RUNNING_DAEMONS[*]} + SPLASH_PROGRESS_TOTAL=$(($SPLASH_PROGRESS_STATS+$SPLASH_PROGRESS_DAEMONS)) + SPLASH_PROGRESS_COUNT=0 + SPLASH_AUTORUN_COMMAND="splash_shutdown" + + debug_log "SPLASH_PROGRESS_TOTAL=$SPLASH_PROGRESS_TOTAL SPLASH_AUTORUN_COMMAND=$SPLASH_AUTORUN_COMMAND" +} + +if [ -z "${SPLASH_INIT_DONE}" ]; then + export SPLASH_INIT_DONE="true" + + debug_log "$0 Running initscript..." + + case "$RUNLEVEL" in + S) + set_sysinit + SPLASH_STATUS_MESSAGE="Booting Arch Linux..." + ;; + 3) + set_multi + SPLASH_STATUS_MESSAGE="Loading daemons..." + ;; + 5) + set_multi + SPLASH_STATUS_MESSAGE="Loading daemons..." + ;; + 6) + set_shutdown + SPLASH_STATUS_MESSAGE="Rebooting Arch Linux..." + ;; + 0) + set_shutdown + SPLASH_STATUS_MESSAGE="Shutting down Arch Linux..." + ;; + esac +fi + +. /etc/rc.d/${SPLASH}-functions + +# splash functions: + +splash_progress() { debug_log "$0 ${FUNCNAME}" + if [ -n "$SPLASH_PROGRESS_COUNT" ]; then + ${SPLASH}_progress $SPLASH_PROGRESS_COUNT $SPLASH_PROGRESS_TOTAL + ((SPLASH_PROGRESS_COUNT++)) + fi +} + +splash_print() { debug_log "$0 ${FUNCNAME}" + ${SPLASH}_print "${1}" + + debug_log "$1" +} + +splash_exit() { debug_log "$0 ${FUNCNAME}" + ${SPLASH}_exit ${DEFAULT_TTY} ${SWITCH_TTY} +} + +splash_sysinit() { debug_log "$0 ${FUNCNAME}" + ${SPLASH}_sysinit ${DEFAULT_TTY} +} + +splash_multi() { debug_log "$0 ${FUNCNAME}" + ${SPLASH}_multi + + trap splash_exit 0 + splash_progress +} + +splash_shutdown() { debug_log "$0 ${FUNCNAME}" + ${SPLASH}_shutdown ${DEFAULT_TTY} + + if [ -n "`pidof $SPLASH`" ]; then + export KILLALL5_OPTS="-o `pidof $SPLASH`" + fi +} + +if [ -n "${SPLASH_AUTORUN_COMMAND}" ]; then + $SPLASH_AUTORUN_COMMAND + splash_print "${SPLASH_STATUS_MESSAGE}" + sleep 0.5 +fi + +# functions: + +deltext() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "${DEL_TEXT}" + else + return 0 + fi +} + +printhl() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "${C_OTHER}${PREFIX_HL} ${C_H1}${1}${C_CLEAR} \n" + else + return 0 + fi +} + +printsep() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "\n${C_SEPARATOR} ------------------------------\n" + else + return 0 + fi +} + +stat_bkgd() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} " + deltext + printf " ${C_OTHER}[${C_BKGD}BKGD${C_OTHER}]${C_CLEAR} " + fi +} + +stat_busy() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "${C_OTHER}${PREFIX_REG} ${C_MAIN}${1}${C_CLEAR} " + printf "${SAVE_POSITION}" + deltext + printf " ${C_OTHER}[${C_BUSY}BUSY${C_OTHER}]${C_CLEAR} " + fi + splash_print "${1}" +} + +stat_append() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf "${RESTORE_POSITION}" + printf "${C_MAIN}${1}${C_CLEAR}" + printf "${SAVE_POSITION}" + else + return 0 + fi +} + +stat_done() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + deltext + printf " ${C_OTHER}[${C_DONE}DONE${C_OTHER}]${C_CLEAR} \n" + fi + splash_progress +} + +stat_fail() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + printf " ${C_OTHER}[${C_FAIL}FAIL${C_OTHER}]${C_CLEAR} \n" + fi + splash_print "Something failed, killing splash..." + sleep 2 + splash_exit +} + +#daemons: + +log_daemon() { debug_log "$0 ${FUNCNAME}" + case $1 in + ?dm|slim) + splash_exit + ;; + esac +} + +start_daemon() { debug_log "$0 ${FUNCNAME}" + log_daemon $1 + splash_progress + /etc/rc.d/$1 start +} + +start_daemon_bkgd() { debug_log "$0 ${FUNCNAME}" + if [ "$CONSOLE_PRINT" == "true" ]; then + stat_bkgd "Starting $1" + fi + log_daemon $1 + (/etc/rc.d/$1 start) &>/dev/null & + splash_progress +} + +stop_daemon() { debug_log "$0 ${FUNCNAME}" + /etc/rc.d/$1 stop + + for daemon in ${SPLASH_RUNNING_DAEMONS[@]}; do + if [ "$daemon" = "$1" ]; then + splash_progress + break + fi + done +} + +# End of file +# vim: set ts=2 noet: diff --git a/abs/core-testing/initscripts-splashy/splash.conf b/abs/core-testing/initscripts-splashy/splash.conf new file mode 100644 index 0000000..3f82053 --- /dev/null +++ b/abs/core-testing/initscripts-splashy/splash.conf @@ -0,0 +1,4 @@ +DEFAULT_TTY=8 +SWITCH_TTY=1 +CONSOLE_PRINT=true +SPLASH_DEBUG=false diff --git a/abs/core-testing/splashy/PKGBUILD b/abs/core-testing/splashy/PKGBUILD new file mode 100644 index 0000000..be38e8c --- /dev/null +++ b/abs/core-testing/splashy/PKGBUILD @@ -0,0 +1,46 @@ +# Contributor: Lexiw +# Contributor: Angel 'angvp' Velasquez +# Contributor: dongiovanni +# Contributor: Darwin Bautista +# Contributor: Jeremy Sands +# Contributor: Tons of people here http://bbs.archlinux.org/viewtopic.php?id=48978 + +pkgname=splashy +pkgver=0.3.13 +pkgrel=1 +pkgdesc="A next-generation user-space boot splashing system for Linux systems" +arch=('i686' 'x86_64') +url="http://splashy.alioth.debian.org/" +license=('GPL') +depends=('file' 'glib2' 'initscripts-splashy' 'directfb') +makedepends=('perl' 'pkgconfig' 'procps' 'gcc' 'make') +options=('!libtool') +source=(https://alioth.debian.org/frs/download.php/2691/splashy-0.3.13.tar.gz + splashy.initcpio_install + splashy.initcpio_hook + splashy.install + splashy-functions) +md5sums=('03b7ee4f31c56ee61463772f74bad8a0' + '89ab896c3b6d8edc70f7233d4f447897' + 'f2d1b7ca4560a2888b08c5580dc8afae' + 'c22046f52421e0663e02375e399ef37a' + '91972fc154635806923befe3a70a1299') + +build() { + cd ${startdir}/src/${pkgname}-${pkgver} + + ./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc --sbindir=/sbin --datarootdir=/usr/share --mandir=/usr/share/man --includedir=/usr/include + make || return 1 + make DESTDIR=${startdir}/pkg install + + # Remove unnecessary files + rm -rf ${startdir}/pkg/etc/{console-tools,default,init.d,lsb-base-logging.sh} + rm -rf ${startdir}/pkg/usr/share/initramfs-tools + + install -D -m644 ${startdir}/splashy.initcpio_install ${startdir}/pkg/lib/initcpio/install/splashy + install -D -m644 ${startdir}/splashy.initcpio_hook ${startdir}/pkg/lib/initcpio/hooks/splashy + install -D -m644 ${startdir}/splashy-functions ${startdir}/pkg/etc/rc.d/splashy-functions + + sed -e 's|>/etc/splashy/themes<|>/usr/share/splashy/themes<|' -i ${startdir}/pkg/etc/splashy/config.xml +} +install=${pkgname}.install diff --git a/abs/core-testing/splashy/splashy-functions b/abs/core-testing/splashy/splashy-functions new file mode 100644 index 0000000..037cb27 --- /dev/null +++ b/abs/core-testing/splashy/splashy-functions @@ -0,0 +1,92 @@ +# +# splashy functions +# + +# functions: + +splashy_wait_till_ready() { debug_log "$0 ${FUNCNAME}" + local tries=50 + + /sbin/splashy_update "print" 2> /dev/null + + while [ $? -ne 0 ]; do + [ $tries -ne 0 ] || return 1 + ((tries--)) + sleep 0.1 + /sbin/splashy_update "print" 2> /dev/null + done + + debug_log "tries=$((50-$tries))" +} + +splashy_print() { debug_log "$0 ${FUNCNAME}" + /sbin/splashy_update "print ${1}" 2> /dev/null +} + +splashy_sysinit() { debug_log "$0 ${FUNCNAME}" + splashy_wait_till_ready +} + +splashy_multi() { debug_log "$0 ${FUNCNAME}" + return 0 +} + +splashy_shutdown() { debug_log "$0 ${FUNCNAME}" + clear > /dev/tty${1} + /sbin/splashy_chvt ${1} + + splashy shutdown 2> /dev/null + + splashy_wait_till_ready +} + +splashy_kill() { debug_log "$0 ${FUNCNAME}" + local tries=50 + while pidof splashy > /dev/null; do + [ $tries -ne 0 ] || return 1 + ((tries--)) + + kill -15 `pidof splashy` + sleep 0.2 + pidof splashy > /dev/null || break + kill -9 `pidof splashy` + sleep 0.2 + done + debug_log "tries=$((50-$tries))" +} + +splashy_exit() { debug_log "$0 ${FUNCNAME}" + pidof splashy > /dev/null || return 1 + + /usr/bin/setterm -cursor off > /dev/tty8 + + /sbin/splashy_update "progress 100" 2> /dev/null + sleep 0.3 + /sbin/splashy_update "exit" 2> /dev/null + sleep 0.3 + + splashy_kill + + if [ "$(fgconsole 2>/dev/null)" = "${1}" ]; then + clear > /dev/tty${1} || true + fi + + /usr/bin/setterm -cursor off > /dev/tty7 + + if [ -n "${2}" ]; then + if [ "$(fgconsole 2>/dev/null)" != "${2}" ]; then + /sbin/splashy_chvt ${2} || true + else + # fall back to tty1 + /sbin/splashy_chvt 1 || true + fi + fi +} + +splashy_progress() { debug_log "$0 ${FUNCNAME}" + PROGRESS=$(((${1}*100)/${2})) + /sbin/splashy_update "progress ${PROGRESS}" 2> /dev/null +} + +# End of file +# vim: set ts=2 noet: diff --git a/abs/core-testing/splashy/splashy.initcpio_hook b/abs/core-testing/splashy/splashy.initcpio_hook new file mode 100755 index 0000000..5e960b9 --- /dev/null +++ b/abs/core-testing/splashy/splashy.initcpio_hook @@ -0,0 +1,48 @@ +# vim: set ft=sh: +run_hook() { + [ -x /sbin/splashy ] || return + + SPLASH=false + SINGLE=false + + for x in $(cat /proc/cmdline); do + case $x in + single) + SINGLE=true + ;; + splash) + SPLASH=true + ;; + nosplash) + SPLASH=false + ;; + esac + done + + [ "${SINGLE}" = "false" ] || return + [ "${SPLASH}" = "true" ] || return + +#if [ -s /proc/fb ]; then +# while read fbno desc; do +# mknod /dev/fb${fbno} c 29 ${fbno} +# done < /proc/fb +#else +# mknod /dev/fb0 c 29 0 +#fi + +#for i in 0 1 2 3 4 5 6 7 8; do +# test -c /dev/tty${i} || \ +# mknod /dev/tty${i} c 4 ${i} +#done + + msg -n ":: Loading Splashy..." + + if [ -x /sbin/splashy_chvt ]; then + /sbin/splashy_chvt 8 + fi + + /sbin/splashy boot + sleep 1 #we need a better solution + + msg "done." +} diff --git a/abs/core-testing/splashy/splashy.initcpio_install b/abs/core-testing/splashy/splashy.initcpio_install new file mode 100755 index 0000000..86efda8 --- /dev/null +++ b/abs/core-testing/splashy/splashy.initcpio_install @@ -0,0 +1,51 @@ +# vim: set ft=sh: +install() { + [ -x /sbin/splashy ] || return 1 + + THEMES_DIR="$(splashy_config --get-key /splashy/themes 2> /dev/null)" + CURRENT_THEME="$(splashy_config --get-key /splashy/current_theme 2> /dev/null)" + + add_binary "/sbin/splashy" + add_file "/sbin/splashy_chvt" + add_file "/etc/splashy/config.xml" + add_full_dir "${THEMES_DIR}/${CURRENT_THEME}" + + #shared libraries needed by splashy + add_file "/usr/lib/libsplashycnf.so.1" + add_file "/usr/lib/libsplashy.so.1" + add_file "/usr/lib/libglib-2.0.so.0" + add_file "/usr/lib/libdirectfb-1.2.so.0" + add_file "/usr/lib/libfusion-1.2.so.0" + add_file "/usr/lib/libdirect-1.2.so.0" + add_file "/usr/lib/libpng12.so.0" + add_file "/usr/lib/libjpeg.so.62" + add_file "/usr/lib/libfreetype.so.6" + add_file "/lib/libm.so.6" + add_file "/lib/libpthread.so.0" + add_file "/usr/lib/libz.so.1" + add_file "/lib/libdl.so.2" + add_file "/lib/libc.so.6" + add_file "/lib/libpcre.so.0" + add_file "/lib/libsysfs.so.2" + add_file "/usr/lib/directfb-1.2-0/wm/libdirectfbwm_default.so" + add_file "/usr/lib/directfb-1.2-0/systems/libdirectfb_fbdev.so" + add_file "/usr/lib/directfb-1.2-0/inputdrivers/libdirectfb_keyboard.so" + add_file "/usr/lib/directfb-1.2-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.so" + add_file "/usr/lib/directfb-1.2-0/interfaces/IDirectFBFont/libidirectfbfont_default.so" + add_file "/usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so" + add_file "/usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so" + + if [ $(arch) = "x86_64" ]; then + add_file "/lib/ld-linux-x86-64.so.2" + else + add_file "/lib/ld-linux.so.2" + fi + + SCRIPT="splashy" +} + +help() { +echo "This hook includes Splashy in the initramfs image." +} + +#EOF diff --git a/abs/core-testing/splashy/splashy.install b/abs/core-testing/splashy/splashy.install new file mode 100644 index 0000000..4b1eaba --- /dev/null +++ b/abs/core-testing/splashy/splashy.install @@ -0,0 +1,15 @@ +pkgname=splashy + +post_install() { + cat << _EOF + +==> You'll probably want to see the page on the wiki +==> to do final configuration and install of splashy: +==> http://wiki.archlinux.org/index.php/Splashy + +_EOF +} + +post_upgrade() { + post_install $1 +} diff --git a/abs/core-testing/sysvinit-mod/PKGBUILD b/abs/core-testing/sysvinit-mod/PKGBUILD new file mode 100644 index 0000000..172ed18 --- /dev/null +++ b/abs/core-testing/sysvinit-mod/PKGBUILD @@ -0,0 +1,29 @@ +# Contributor: Simon Bachmann +pkgname=sysvinit-mod +pkgver=2.86 +pkgrel=2 +pkgdesc="Linux System V Init, with a patched killall5 to enable omission of specified pids" +arch=('i686' 'x86_64') +url="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/" +license=('GPL') +depends=('shadow' 'util-linux' 'coreutils' 'glibc' 'awk') +provides=('sysvinit') +conflicts=('sysvinit') +source=(ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/sysvinit-$pkgver.tar.gz sysvinit.diff) +md5sums=('7d5d61c026122ab791ac04c8a84db967' '9fa3c71e4a12465239135d67a8859315') + +build() { + cd $startdir/src/sysvinit-$pkgver + #patch killall5 + patch -p1 < $startdir/src/sysvinit.diff || return 1 + cp src/init.c src/init.c.backup + sed 's/\(.*\)\(Sending processes\)\(.*\)/\1\2 started by init\3/' \ + src/init.c > tmp~ + mv tmp~ src/init.c + mkdir -p $startdir/pkg/bin $startdir/pkg/sbin + mkdir -p $startdir/pkg/usr/bin + mkdir -p $startdir/pkg/usr/man/man5 $startdir/pkg/usr/man/man8 + mkdir -p $startdir/pkg/usr/man/man1 $startdir/pkg/usr/include + make -C src || return 1 + make -C src MANDIR=/usr/man ROOT=$startdir/pkg install +} diff --git a/abs/core-testing/sysvinit-mod/sysvinit.diff b/abs/core-testing/sysvinit-mod/sysvinit.diff new file mode 100644 index 0000000..d26f7cc --- /dev/null +++ b/abs/core-testing/sysvinit-mod/sysvinit.diff @@ -0,0 +1,276 @@ +diff -r -u sysvinit-2.86/COPYRIGHT sysvinit-2.86.patched/COPYRIGHT +--- sysvinit-2.86/COPYRIGHT 2004-07-30 12:12:12.000000000 +0000 ++++ sysvinit-2.86.patched/COPYRIGHT 2008-04-15 14:28:52.000000000 +0000 +@@ -12,7 +12,7 @@ + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + On Debian GNU/Linux systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. +diff -r -u sysvinit-2.86/man/killall5.8 sysvinit-2.86.patched/man/killall5.8 +--- sysvinit-2.86/man/killall5.8 2004-06-09 12:47:45.000000000 +0000 ++++ sysvinit-2.86.patched/man/killall5.8 2008-04-15 14:28:52.000000000 +0000 +@@ -4,14 +4,29 @@ + .SH SYNOPSIS + .B killall5 + .RB -signalnumber ++.RB [ \-o ++.IR omitpid ] ++.RB [ \-o ++.IR omitpid.. ] + .SH DESCRIPTION + .B killall5 + is the SystemV killall command. It sends a signal to all processes except + kernel threads and the processes in its own session, so it won't kill + the shell that is running the script it was called from. Its primary + (only) use is in the \fBrc\fP scripts found in the /etc/init.d directory. ++.SH OPTIONS ++.IP "-o \fIomitpid\fP" ++Tells \fIkillall5\fP to omit processes with that process id. ++.SH NOTES ++\fIkillall5\fP can also be invoked as pidof, which is simply a ++(symbolic) link to the \fIkillall5\fP program. ++.SH EXIT STATUS ++The program return zero if it killed processes. It return 2 if no ++process were killed, and 1 if it was unable to find any processes ++(/proc/ is missing). + .SH SEE ALSO + .BR halt (8), +-.BR reboot (8) ++.BR reboot (8), ++.BR pidof (8) + .SH AUTHOR + Miquel van Smoorenburg, miquels@cistron.nl +diff -r -u sysvinit-2.86/man/pidof.8 sysvinit-2.86.patched/man/pidof.8 +--- sysvinit-2.86/man/pidof.8 1998-09-02 12:49:33.000000000 +0000 ++++ sysvinit-2.86.patched/man/pidof.8 2008-04-15 14:28:52.000000000 +0000 +@@ -27,13 +27,20 @@ + .IP -x + Scripts too - this causes the program to also return process id's of + shells running the named scripts. +-.IP -o \fIomitpid\fP ++.IP "-o \fIomitpid\fP" + Tells \fIpidof\fP to omit processes with that process id. The special + pid \fB%PPID\fP can be used to name the parent process of the \fIpidof\fP + program, in other words the calling shell or shell script. ++.SH "EXIT STATUS" ++.TP ++.B 0 ++At least one program was found with the requested name. ++.TP ++.B 1 ++No program was found with the requested name. + .SH NOTES +-\fIpidof\fP is simply a (symbolic) link to the \fIkillall5\fP program, +-which should also be located in \fP/sbin\fP. ++\fIpidof\fP is actually the same program as \fIkillall5\fP; ++the program behaves according to the name under which it is called. + .PP + When \fIpidof\fP is invoked with a full pathname to the program it + should find the pid of, it is reasonably safe. Otherwise it is possible +@@ -43,6 +50,7 @@ + .BR shutdown (8), + .BR init (8), + .BR halt (8), +-.BR reboot (8) ++.BR reboot (8), ++.BR killall5 (8) + .SH AUTHOR + Miquel van Smoorenburg, miquels@cistron.nl +diff -r -u sysvinit-2.86/src/killall5.c sysvinit-2.86.patched/src/killall5.c +--- sysvinit-2.86/src/killall5.c 2004-07-30 12:16:23.000000000 +0000 ++++ sysvinit-2.86.patched/src/killall5.c 2008-04-15 14:28:52.000000000 +0000 +@@ -378,8 +378,8 @@ + int foundone = 0; + int ok = 0; + +- /* Try to stat the executable. */ +- if (prog[0] == '/' && stat(prog, &st) == 0) dostat++; ++ if (! prog) ++ return NULL; + + /* Get basename of program. */ + if ((s = strrchr(prog, '/')) == NULL) +@@ -387,9 +387,16 @@ + else + s++; + ++ if (! *s) ++ return NULL; ++ + q = (PIDQ_HEAD *)xmalloc(sizeof(PIDQ_HEAD)); + q = init_pid_q(q); + ++ /* Try to stat the executable. */ ++ if (prog[0] == '/' && stat(prog, &st) == 0) ++ dostat++; ++ + /* First try to find a match based on dev/ino pair. */ + if (dostat) { + for (p = plist; p; p = p->next) { +@@ -404,15 +411,35 @@ + if (!foundone) for (p = plist; p; p = p->next) { + ok = 0; + +- /* Compare name (both basename and full path) */ +- ok += (p->argv0 && strcmp(p->argv0, prog) == 0); +- ok += (p->argv0 && strcmp(p->argv0base, s) == 0); ++ /* matching nonmatching ++ * proc name prog name prog name ++ * --- ----------- ------------ ++ * b b, p/b, q/b ++ * p/b b, p/b q/b ++ * ++ * Algorithm: Match if: ++ * cmd = arg ++ * or cmd = base(arg) ++ * or base(cmd) = arg ++ * ++ * Specifically, do not match just because base(cmd) = base(arg) ++ * as was done in earlier versions of this program, since this ++ * allows /aaa/foo to match /bbb/foo . ++ */ ++ ok |= ++ (p->argv0 && strcmp(p->argv0, prog) == 0) ++ || (p->argv0 && s != prog && strcmp(p->argv0, s) == 0) ++ || (p->argv0base && strcmp(p->argv0base, prog) == 0); + + /* For scripts, compare argv[1] as well. */ +- if (scripts_too && p->argv1 && +- !strncmp(p->statname, p->argv1base, STATNAMELEN)) { +- ok += (strcmp(p->argv1, prog) == 0); +- ok += (strcmp(p->argv1base, s) == 0); ++ if ( ++ scripts_too && p->statname && p->argv1base ++ && !strncmp(p->statname, p->argv1base, STATNAMELEN) ++ ) { ++ ok |= ++ (p->argv1 && strcmp(p->argv1, prog) == 0) ++ || (p->argv1 && s != prog && strcmp(p->argv1, s) == 0) ++ || (p->argv1base && strcmp(p->argv1base, prog) == 0); + } + + /* +@@ -423,7 +450,7 @@ + (p->argv0 == NULL || + p->argv0[0] == 0 || + strchr(p->argv0, ' '))) { +- ok += (strcmp(p->statname, s) == 0); ++ ok |= (strcmp(p->statname, s) == 0); + } + if (ok) add_pid_to_q(q, p); + } +@@ -548,20 +575,28 @@ + } + } + } +- printf("\n"); ++ if (!first) ++ printf("\n"); + closelog(); + return(first ? 1 : 0); + } + + + ++#define KILLALL_OMITSZ 16 ++ + /* Main for either killall or pidof. */ + int main(int argc, char **argv) + { + PROC *p; + int pid, sid = -1; ++ pid_t opid[KILLALL_OMITSZ]; ++ int i, oind, omit = 0; + int sig = SIGKILL; + ++ /* return non-zero if no process was killed */ ++ int retval = 2; ++ + /* Get program name. */ + if ((progname = strrchr(argv[0], '/')) == NULL) + progname = argv[0]; +@@ -576,10 +611,34 @@ + return main_pidof(argc, argv); + + /* Right, so we are "killall". */ ++ for (oind = KILLALL_OMITSZ-1; oind > 0; oind--) ++ opid[oind] = 0; ++ + if (argc > 1) { +- if (argc != 2) usage(); +- if (argv[1][0] == '-') (argv[1])++; +- if ((sig = atoi(argv[1])) <= 0 || sig > 31) usage(); ++ for (i = 1; i < argc; i++) { ++ if (argv[i][0] == '-') (argv[i])++; ++ if (argv[i][0] == 'o') { ++ if (++i >= argc) usage(); ++ if (oind >= KILLALL_OMITSZ -1) { ++ nsyslog(LOG_ERR,"omit pid buffer size " ++ "%d exceeded!\n", ++ KILLALL_OMITSZ); ++ closelog(); ++ exit(1); ++ } ++ if ((opid[oind] = atoi(argv[i])) < 1) { ++ nsyslog(LOG_ERR, ++ "illegal omit pid value " ++ "(%s)!\n", argv[i]); ++ closelog(); ++ exit(1); ++ } ++ oind++; ++ omit = 1; ++ } ++ else if ((sig = atoi(argv[1])) <= 0 || sig > 31) ++ usage(); ++ } + } + + /* First get the /proc filesystem online. */ +@@ -602,15 +661,26 @@ + /* Read /proc filesystem */ + if (readproc() < 0) { + kill(-1, SIGCONT); +- exit(1); ++ return(1); + } + +- /* Now kill all processes except our session. */ ++ /* Now kill all processes except init (pid 1) and our session. */ + sid = (int)getsid(0); + pid = (int)getpid(); +- for (p = plist; p; p = p->next) +- if (p->pid != pid && p->sid != sid && !p->kernel) +- kill(p->pid, sig); ++ for (p = plist; p; p = p->next) { ++ if (p->pid == 1 || p->pid == pid || p->sid == sid || p->kernel) ++ continue; ++ if (omit) { ++ for (i = 0; i < oind; i++) ++ if (opid[i] == p->pid) ++ break; ++ /* On a match, continue with the for loop above. */ ++ if (i < oind) ++ continue; ++ } ++ kill(p->pid, sig); ++ retval = 0; ++ } + + /* And let them continue. */ + kill(-1, SIGCONT); +@@ -618,5 +688,8 @@ + /* Done. */ + closelog(); + +- return 0; ++ /* Force the kernel to run the scheduler */ ++ usleep(1); ++ ++ return retval; + } + -- cgit v0.12