From 3c23b95df42b8ec226ab4110364cd69a50b48b2b Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 9 Feb 2009 21:49:15 -0500
Subject: Tweaker integration progress.

---
 abs/core-testing/tweaker/bin/LocalIPCheck.pl     | 47 ++++++++++++++++++++++++
 abs/core-testing/tweaker/bin/twk_EXAMPLE.pl      |  2 +-
 abs/core-testing/tweaker/bin/twk_RAM.pl          | 11 ++++--
 abs/core-testing/tweaker/bin/twk_audio.pl        | 16 +++++---
 abs/core-testing/tweaker/bin/twk_audio_RP.pl     |  2 +-
 abs/core-testing/tweaker/bin/twk_cpu.pl          |  2 +-
 abs/core-testing/tweaker/bin/twk_dragon.pl       |  2 +-
 abs/core-testing/tweaker/bin/twk_general.pl      |  2 +-
 abs/core-testing/tweaker/bin/twk_graphics.pl     |  2 +-
 abs/core-testing/tweaker/bin/twk_keymap.sh       | 17 ++++-----
 abs/core-testing/tweaker/bin/twk_linux.pl        |  2 +-
 abs/core-testing/tweaker/bin/twk_localization.pl |  2 +-
 abs/core-testing/tweaker/bin/twk_scrub_sql.pl    |  2 +-
 abs/core-testing/tweaker/bin/twk_tuners.pl       |  2 +-
 abs/core-testing/tweaker/bin/twk_upgrade.pl      |  4 +-
 abs/core-testing/tweaker/lib/Tweaker/Script.pm   |  4 +-
 16 files changed, 87 insertions(+), 32 deletions(-)
 create mode 100755 abs/core-testing/tweaker/bin/LocalIPCheck.pl

diff --git a/abs/core-testing/tweaker/bin/LocalIPCheck.pl b/abs/core-testing/tweaker/bin/LocalIPCheck.pl
new file mode 100755
index 0000000..b744fb6
--- /dev/null
+++ b/abs/core-testing/tweaker/bin/LocalIPCheck.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+
+# Valid private IP ranges
+
+my @LOCAL_IP_RANGES = ("10.0.0.0", "10.255.255.255",
+		       "172.16.0.0", "172.31.255.255",
+		       "192.168.0.0", "192.168.255.255");
+
+# input: A dotted quad IP address.
+
+# output: 0 if a public (internet) address
+#       : 8 if a class A private (LAN) address
+#       : 12 if a class B private (LAN) address
+#       : 16 if a class C private (LAN) address
+
+sub get_IP_number () {
+    my ($dotted_quad) = @_;
+    my $IP_number=0;
+    
+    split(/\./, $dotted_quad);
+
+    for (my $i=0; $i < 4; $i++) {
+	$IP_number=$IP_number+@_[3-$i]*(2**(8*$i));
+    }
+    return $IP_number;
+}
+
+while(<>) {
+    chop;
+    my $IPnumber=&get_IP_number($_);
+    my $class=16;
+
+    while (@LOCAL_IP_RANGES) {
+	my $highIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
+	my $lowIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
+
+	if (($lowIPnumber <= $IPnumber) && ($highIPnumber >= $IPnumber)) {
+	    exit($class); # PRIVATE IP
+	} else {
+	    $class += 4;
+	}
+    }
+}
+
+exit(0); # PUBLIC IP
+
+
diff --git a/abs/core-testing/tweaker/bin/twk_EXAMPLE.pl b/abs/core-testing/tweaker/bin/twk_EXAMPLE.pl
index 4fc401a..7dfb075 100755
--- a/abs/core-testing/tweaker/bin/twk_EXAMPLE.pl
+++ b/abs/core-testing/tweaker/bin/twk_EXAMPLE.pl
@@ -11,7 +11,7 @@
 
 #!/usr/bin/perl -w
 
-# Copyright 2008 YOUR NAME HERE
+# Copyright 2009 YOUR NAME HERE
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_RAM.pl b/abs/core-testing/tweaker/bin/twk_RAM.pl
index ead3e3c..79fe938 100755
--- a/abs/core-testing/tweaker/bin/twk_RAM.pl
+++ b/abs/core-testing/tweaker/bin/twk_RAM.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -48,10 +48,13 @@ sub implement_option {
 	# We will arbitrarily set the cache size to 1/16 of available RAM
 	my $cachesize = int($RAM_size / 16);
 	execute_shell_command("sed -i 's/cache.*=.*/cache=$cachesize/g' /etc/mplayer/mplayer.conf") || exit -1;
+
+	# If there's enough RAM, make mtd run by default.
+	# ??? unimplemented
     } else {
-	exit -1; # You may not have to do this.  It's only when you need to change MySQL settings for MythTV.
-    } # You may not have to do this.  It's only when you need to change MySQL settings for MythTV.
-    disconnect_from_db(); # You may not have to do this.  It's only when you need to change MySQL settings for MythTV.
+	exit -1;
+    }
+    disconnect_from_db();
 }
 
 # Poll the system to see what recommendationlevel the given option has on the system.
diff --git a/abs/core-testing/tweaker/bin/twk_audio.pl b/abs/core-testing/tweaker/bin/twk_audio.pl
index 72b9c86..b3bdd89 100755
--- a/abs/core-testing/tweaker/bin/twk_audio.pl
+++ b/abs/core-testing/tweaker/bin/twk_audio.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -30,11 +30,16 @@ sub poll_for_digital_output_device {
     my @digital_matches = ( "digital", "IEC958" );
     
     my $results = execute_shell_command($poll_command);
-    foreach my $digital_match (@digital_matches) {
-	if ($results =~ /card (\d):.*device (\d).*$digital_match.*/i) {
-	    $card = $1;
-	    $device = $2;
+    if ($results) {
+	foreach my $digital_match (@digital_matches) {
+	    if ($results =~ /card (\d):.*device (\d).*$digital_match.*/i) {
+		$card = $1;
+		$device = $2;
+	    }
 	}
+    } else {
+	recommendation_level("not available", "No audio devices detected.");
+	exit(-1);
     }
     return ($card, $device);
 }
@@ -336,6 +341,7 @@ sub poll_options {
 	    }
 	}
 	case "analogsurround" {
+	    my ($card, $device) = poll_for_digital_output_device;
 	    recommendation_level("unsupported", "No configuration data exists yet for this option.");
 	}
 	case "digital" {
diff --git a/abs/core-testing/tweaker/bin/twk_audio_RP.pl b/abs/core-testing/tweaker/bin/twk_audio_RP.pl
index 2642fda..5b30bd8 100755
--- a/abs/core-testing/tweaker/bin/twk_audio_RP.pl
+++ b/abs/core-testing/tweaker/bin/twk_audio_RP.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_cpu.pl b/abs/core-testing/tweaker/bin/twk_cpu.pl
index 04a57cc..c6d87ab 100755
--- a/abs/core-testing/tweaker/bin/twk_cpu.pl
+++ b/abs/core-testing/tweaker/bin/twk_cpu.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_dragon.pl b/abs/core-testing/tweaker/bin/twk_dragon.pl
index 8bfccca..f5ad5b7 100755
--- a/abs/core-testing/tweaker/bin/twk_dragon.pl
+++ b/abs/core-testing/tweaker/bin/twk_dragon.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index 86da85d..9b01480 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_graphics.pl b/abs/core-testing/tweaker/bin/twk_graphics.pl
index b2fdb17..4fb6d77 100755
--- a/abs/core-testing/tweaker/bin/twk_graphics.pl
+++ b/abs/core-testing/tweaker/bin/twk_graphics.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_keymap.sh b/abs/core-testing/tweaker/bin/twk_keymap.sh
index 41341bf..885594d 100755
--- a/abs/core-testing/tweaker/bin/twk_keymap.sh
+++ b/abs/core-testing/tweaker/bin/twk_keymap.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -60,15 +60,14 @@ chown -fR mythtv:mythtv $MYTH_HOME/.xine
 
 #Make mplayer use keymappings that get along with xine, MythMusic, and ATI remote button mappings.
 #NOTE: PGUP is PageUp and PGDWN is PageDown
-if [[ -f $MYTH_HOME/.mplayer/input.conf ]]; then
-    sed -i "s/^PGUP .*/PGUP seek -60/" $MYTH_HOME/.mplayer/input.conf
-    sed -i "s/^PGDWN .*/PGDWN seek +60/" $MYTH_HOME/.mplayer/input.conf
-    sed -i "s/^p .*/p pause/" $MYTH_HOME/.mplayer/input.conf
-    sed -i "s/^l .*/l pause/" $MYTH_HOME/.mplayer/input.conf
+if [[ -f /etc/mplayer/input.conf ]]; then
+    sed -i "s/^PGUP .*/PGUP seek -60/" /etc/mplayer/input.conf
+    sed -i "s/^PGDWN .*/PGDWN seek +60/" /etc/mplayer/input.conf
+    sed -i "s/^p .*/p pause/" /etc/mplayer/input.conf
+    sed -i "s/^l .*/l pause/" /etc/mplayer/input.conf
 else
-    mkdir -p $MYTH_HOME/.mplayer/
-    /bin/cp $KNOPPMYTH_SHARE/mplayer_keymap $MYTH_HOME/.mplayer/input.conf
+    echo "ERROR: /etc/mplayer/input.conf is missing, which is unexpected."
+    exit -1
 fi
-chown -fR mythtv:mythtv $MYTH_HOME/.mplayer
 
 echo "Tweaked keymap"
\ No newline at end of file
diff --git a/abs/core-testing/tweaker/bin/twk_linux.pl b/abs/core-testing/tweaker/bin/twk_linux.pl
index 107b4d9..f8b46fb 100755
--- a/abs/core-testing/tweaker/bin/twk_linux.pl
+++ b/abs/core-testing/tweaker/bin/twk_linux.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_localization.pl b/abs/core-testing/tweaker/bin/twk_localization.pl
index f517ff4..572ee06 100755
--- a/abs/core-testing/tweaker/bin/twk_localization.pl
+++ b/abs/core-testing/tweaker/bin/twk_localization.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_scrub_sql.pl b/abs/core-testing/tweaker/bin/twk_scrub_sql.pl
index 2012d4d..c1de20b 100755
--- a/abs/core-testing/tweaker/bin/twk_scrub_sql.pl
+++ b/abs/core-testing/tweaker/bin/twk_scrub_sql.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_tuners.pl b/abs/core-testing/tweaker/bin/twk_tuners.pl
index ab7f029..0b2b88c 100755
--- a/abs/core-testing/tweaker/bin/twk_tuners.pl
+++ b/abs/core-testing/tweaker/bin/twk_tuners.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/abs/core-testing/tweaker/bin/twk_upgrade.pl b/abs/core-testing/tweaker/bin/twk_upgrade.pl
index 479a675..b5d09b6 100755
--- a/abs/core-testing/tweaker/bin/twk_upgrade.pl
+++ b/abs/core-testing/tweaker/bin/twk_upgrade.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
+# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -159,7 +159,7 @@ sub implement_option {
 	# Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
 	# online stream options.
 	#$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
-	$command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml"
+	$command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
 	execute_shell_command($command);
 	
     } else {
diff --git a/abs/core-testing/tweaker/lib/Tweaker/Script.pm b/abs/core-testing/tweaker/lib/Tweaker/Script.pm
index ec3a42a..7dd2c8f 100644
--- a/abs/core-testing/tweaker/lib/Tweaker/Script.pm
+++ b/abs/core-testing/tweaker/lib/Tweaker/Script.pm
@@ -80,7 +80,7 @@ sub get_mythtv_connection_string {
     # we want something like mythconverg:localhost
     my $dbname = "";
     my $dbhostname = "";
-    open(MYSQLTXT, "< /home/mythtv/.mythtv/mysql.txt");
+    open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
     while(<MYSQLTXT>) {
 	if (/DBName=(.*)/) {
 	    $dbname=$1;
@@ -98,7 +98,7 @@ sub get_mythtv_authentication {
     my $dbusername = "";
     my $dbpassword = "";
 
-    open(MYSQLTXT, "< /home/mythtv/.mythtv/mysql.txt");
+    open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
     while(<MYSQLTXT>) {
 	if (/DBUserName=(.*)/) {
 	    $dbusername=$1;
-- 
cgit v0.12


From 03e928006035cb5dcc51f0071ca3103c6ea5af00 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Mon, 9 Feb 2009 22:15:31 -0800
Subject: Fixes for Atomic Ant.

---
 abs/core-testing/LinHES-config/PKGBUILD        |  2 +-
 abs/core-testing/LinHES-config/systemconfig.sh | 13 +++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 9e40e6f..e10d697 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=1.0
-pkgrel=242
+pkgrel=243
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan )
diff --git a/abs/core-testing/LinHES-config/systemconfig.sh b/abs/core-testing/LinHES-config/systemconfig.sh
index 82c2b97..9a0828a 100755
--- a/abs/core-testing/LinHES-config/systemconfig.sh
+++ b/abs/core-testing/LinHES-config/systemconfig.sh
@@ -165,14 +165,15 @@ ln -s "/usr/share/zoneinfo/$timezone"  ${BASE}/etc/localtime
        # echo CLOCK_SYSTOCH="yes" >> ${BASE}/etc/conf.d/clock
        # echo TIMEZONE="$timezone" >> ${BASE}/etc/conf.d/clock
 cp_and_log $TEMPLATES/rc.conf ${BASE}/etc/rc.conf
-# #Check for Atomic Ant
-# if grep disablemodules=agpart,intel_agp /proc/cmdline >/dev/null
-# then
-# 	cat /etc/rc.conf.1 |  sed -e '/MOD_BLACKLIST/ c\MOD_BLACKLIST=($ALSABLACKLIST agpart intel_agp)' > /etc/rc.conf
-# 	rm -fr /etc/rc.conf.1
+#Check for Atomic Ant
+ if grep disablemodules=agpart,intel_agp /proc/cmdline >/dev/null
+ then
+ 	cat /etc/rc.conf |  sed -e '/MOD_BLACKLIST/ c\MOD_BLACKLIST=($ALSABLACKLIST agpart intel_agp)' > /etc/rc.conf.aa
+	mv /etc/rc.conf /etc/rc.conf.preaa
+	mv /etc/rc.conf.aa /etc/rc.conf
 # else
 # 	exit 1
-# fi
+ fi
 
 }
 
-- 
cgit v0.12


From a918f7d7077aa2d6b8eaef3695aaa06f01f33e6a Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Mon, 9 Feb 2009 22:15:40 -0800
Subject: Latest -fixes.

---
 abs/core-testing/mythtv/stable/mythtv/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
index 8b75286..e5df644 100644
--- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.21
-pkgrel=31
+pkgrel=32
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \
@@ -20,7 +20,7 @@ install=mythtv.install
 
 build() {
 	cd $startdir/src/${pkgname}-${pkgver} || return 1
-	svn update -r 19954
+	svn update
 
 #apply patches 
 	 patch -p0 < ../myththemedmenu.cpp.patch
-- 
cgit v0.12


From a317442a44fcbd340416a4c4ff93ced72f23e6d9 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Mon, 9 Feb 2009 23:13:41 -0800
Subject: Made local-website a dep.

---
 abs/core-testing/mythtv/stable/mythweb/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
index d5ddefb..f909fff 100644
--- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
@@ -1,11 +1,11 @@
 pkgname=mythweb
 pkgver=0.21
-pkgrel=9
+pkgrel=10
 pkgdesc="Web interface for MythTV's backend"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
-depends=("mythtv>=${pkgver}" 'lighttpd' 'php')
+depends=("mythtv>=${pkgver}" 'lighttpd' 'php' 'local-website')
 install=mythweb.install
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
 md5sums=('00ee70be781b9af5913f046525d79ab9')
-- 
cgit v0.12


From 3f7e6cf27809049b1aa0bad3cdbbeeaf6d0929b5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Mon, 9 Feb 2009 23:18:12 -0800
Subject: Installed mythappletrailers, mythstream and mythvodka by default.

---
 abs/core-testing/LinHES-config/PKGBUILD        | 2 +-
 abs/core-testing/LinHES-config/systemconfig.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index e10d697..6210304 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=1.0
-pkgrel=243
+pkgrel=244
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan )
diff --git a/abs/core-testing/LinHES-config/systemconfig.sh b/abs/core-testing/LinHES-config/systemconfig.sh
index 9a0828a..8c21242 100755
--- a/abs/core-testing/LinHES-config/systemconfig.sh
+++ b/abs/core-testing/LinHES-config/systemconfig.sh
@@ -391,7 +391,7 @@ function setupplugins (){
 pkglistinstall=""
 pkglistremove=""
 #default enabled
-for i in mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo
+for i in mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo mythappletrailers mythstream mythvodka
 do
 eval pkgvalue=\$${i}
 
@@ -414,7 +414,7 @@ done
 
 
 #default disabled
- for i in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather mythstream mythappletrailers mythvodka
+ for i in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather
  do
 eval pkgvalue=\$${i}
 
-- 
cgit v0.12


From 3f800dd55f69e72b8b542c3a80d89107e2bab813 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 10 Feb 2009 15:26:08 -0800
Subject: Initial inclusion.

---
 abs/extra-testing/community/ircii/PKGBUILD | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 abs/extra-testing/community/ircii/PKGBUILD

diff --git a/abs/extra-testing/community/ircii/PKGBUILD b/abs/extra-testing/community/ircii/PKGBUILD
new file mode 100644
index 0000000..2eb8ad6
--- /dev/null
+++ b/abs/extra-testing/community/ircii/PKGBUILD
@@ -0,0 +1,16 @@
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+pkgname=ircii
+pkgver=20060725
+pkgrel=1
+pkgdesc="IRC Client"
+arch=('i686')
+url="http://www.eterna.com.au/ircii/"
+license=('BSD')
+source=(ftp://ircii.warped.com/pub/ircII/ircii-$pkgver.tar.bz2)
+md5sums=('280ae54367627591c1c43c765eb9d59b')
+build() {
+	cd $startdir/src/$pkgname-$pkgver
+	./configure --prefix=/usr
+	make || return 1
+	make install DESTDIR=$startdir/pkg || return 1
+}
-- 
cgit v0.12


From 6a6eddd0b9b60826ba8deb30d7408bb06c4bbf00 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 10 Feb 2009 15:59:02 -0800
Subject: Removed previous patches as they had no affect on crashing and were
 causing directory creatinon in /.

---
 abs/extra-testing/libvisual-plugins/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/extra-testing/libvisual-plugins/PKGBUILD b/abs/extra-testing/libvisual-plugins/PKGBUILD
index ea11aaa..6324fba 100644
--- a/abs/extra-testing/libvisual-plugins/PKGBUILD
+++ b/abs/extra-testing/libvisual-plugins/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=libvisual-plugins
 pkgver=0.4.0
-pkgrel=4
+pkgrel=5
 pkgdesc="plugins for libvisual"
 arch=("i686" "x86_64")
 license=('GPL')
@@ -31,12 +31,12 @@ options=(!libtool)
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  patch -p1 < ../01_disable-gforce-dfsg.patch
-  patch -p1 < ../02_64-bit_JESS_fix.patch
-  patch -p1 < ../03_build_against_gl_fixes.patch
-  patch -p1 < ../04_lv_analyzer_build_fix.patch
-  patch -p1 < ../05_fix_po.patch
-  patch -p1 < ../60_no-const-vispluginfo-in-nastyfft.patch
+#  patch -p1 < ../01_disable-gforce-dfsg.patch
+#  patch -p1 < ../02_64-bit_JESS_fix.patch
+#  patch -p1 < ../03_build_against_gl_fixes.patch
+#  patch -p1 < ../04_lv_analyzer_build_fix.patch
+#  patch -p1 < ../05_fix_po.patch
+#  patch -p1 < ../60_no-const-vispluginfo-in-nastyfft.patch
 #  patch -p1 < ../90_autoreconf.patch
   ./configure --prefix=/usr  --enable-alsa --disable-gstreamer-plugin
   make || return 1
-- 
cgit v0.12


From 31b573e6bbe5a38097d3dbe1c45b6ddf09864dec Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 10 Feb 2009 23:29:17 -0800
Subject: Patch for compilation error w/ serial.h.

---
 abs/core-testing/kernel26/PKGBUILD    |  7 +++++--
 abs/core-testing/kernel26/serial.diff | 13 +++++++++++++
 2 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 abs/core-testing/kernel26/serial.diff

diff --git a/abs/core-testing/kernel26/PKGBUILD b/abs/core-testing/kernel26/PKGBUILD
index 99d1be3..a809ede 100644
--- a/abs/core-testing/kernel26/PKGBUILD
+++ b/abs/core-testing/kernel26/PKGBUILD
@@ -29,14 +29,16 @@ source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2
         config config.x86_64
         # standard config files for mkinitcpio ramdisk
         kernel26.preset
-	logo_linux_clut224.ppm)
+	logo_linux_clut224.ppm
+	serial.diff)
 optdepends=('crda: to set the correct wireless channels of your country')
 md5sums=('d351e44709c9810b85e29b877f50968a'
          '7e3194e7a4090363f272e66f1aedbc26'
          '817a3ae21ce441c5cfcff28a453354a6'
          '959b317feb974d8906c5e15e7c76ad8f'
          '25584700a0a679542929c4bed31433b6'
-	 '7bdfe2e1daedb324fdfdfa95ba4e2430')
+	 '7bdfe2e1daedb324fdfdfa95ba4e2430'
+	 'd66b5cc1e1c2ce40d06d77167f36dfd9')
 
 build() {
   KARCH=x86
@@ -45,6 +47,7 @@ build() {
   # Add -ARCH patches
   # See http://projects.archlinux.org/git/?p=linux-2.6-ARCH.git;a=summary
   patch -Np1 -i ${srcdir}/${_patchname} || return 1
+  patch -p0 < ../../serial.diff
 
   if [ "$CARCH" = "x86_64" ]; then
     cat ../config.x86_64 >./.config
diff --git a/abs/core-testing/kernel26/serial.diff b/abs/core-testing/kernel26/serial.diff
new file mode 100644
index 0000000..9b53e48
--- /dev/null
+++ b/abs/core-testing/kernel26/serial.diff
@@ -0,0 +1,13 @@
+--- include/linux/serial.h.orig	2009-02-11 05:59:28.000000000 +0000
++++ include/linux/serial.h	2009-02-11 06:09:24.000000000 +0000
+@@ -10,8 +10,9 @@
+ #ifndef _LINUX_SERIAL_H
+ #define _LINUX_SERIAL_H
+ 
+-#ifdef __KERNEL__
+ #include <linux/types.h>
++
++#ifdef __KERNEL__
+ #include <asm/page.h>
+ 
+ /*
-- 
cgit v0.12


From 09b14aa48e621e4263c095769bbd2697893eef8d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
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  <eric@archlinux.org>
+
+	* 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 <eric@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+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 <direct/types.h>
+ #include <direct/debug.h>
++#include <linux/types.h>
+ 
+ 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 <llexiw@gmail.com>
+# Contributor: Jeremy Sands <cto@jeremysands.com>
+
+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 <llexiw@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: dongiovanni <dongiovanni@archlinux.de>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+# Contributor: Jeremy Sands <cto@jeremysands.com>
+# 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 <simonbachmann@freesurf.ch>
+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