summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xabs/core-testing/LinHES-config-svn/PKGBUILD2
-rwxr-xr-xabs/core-testing/LinHES-config-svn/install_db_chroot.sh136
-rwxr-xr-xabs/core-testing/LinHES-config-svn/install_functions.sh54
-rwxr-xr-xabs/core-testing/LinHES-config-svn/install_proxy.sh4
-rwxr-xr-xabs/core-testing/LinHES-config/install_db_chroot.sh136
-rwxr-xr-xabs/core-testing/LinHES-config/install_functions.sh46
-rwxr-xr-xabs/core-testing/LinHES-config/install_proxy.sh800
-rw-r--r--abs/core-testing/LinHES-config/ir_config.sh42
-rw-r--r--abs/core-testing/aumix/PKGBUILD2
-rw-r--r--abs/core-testing/avahi/PKGBUILD2
-rw-r--r--abs/core-testing/cdrkit/PKGBUILD2
-rw-r--r--abs/core-testing/fbsplash/PKGBUILD2
-rw-r--r--abs/core-testing/fbsplash/darch.tar.bz2bin0 -> 1572821 bytes
-rw-r--r--abs/core-testing/fbsplash/fbsplash.inithooks10
-rw-r--r--abs/core-testing/libcap/PKGBUILD28
-rw-r--r--abs/core-testing/local-website/PKGBUILD2
-rw-r--r--abs/core-testing/local-website/htdocs/fuppes.php4
-rw-r--r--abs/core-testing/local-website/htdocs/index.html73
-rw-r--r--abs/core-testing/mplayer/PKGBUILD2
-rw-r--r--abs/core-testing/mythtv/stable/mythweb/PKGBUILD9
-rw-r--r--abs/core-testing/mythtv/stable/mythweb/patch/mythweb.pl.diff23
-rw-r--r--abs/core-testing/nvidia-71xx-utils/PKGBUILD63
-rw-r--r--abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install29
-rw-r--r--abs/core-testing/nvidia-71xx-utils/supported-cards.txt236
-rw-r--r--abs/core-testing/nvidia-71xx/NVIDIA_kernel-96.43.05-2290218.diff.txt1471
-rw-r--r--abs/core-testing/nvidia-71xx/PKGBUILD41
-rw-r--r--abs/core-testing/nvidia-71xx/nvidia-71xx.install23
-rw-r--r--abs/core-testing/perl_modules/perl-algorithm-diff/PKGBUILD3
-rw-r--r--abs/core-testing/perl_modules/perl-digest-sha1/PKGBUILD4
-rw-r--r--abs/core-testing/perl_modules/perl-javascript/PKGBUILD3
-rw-r--r--abs/core-testing/perl_modules/perl-list-compare/PKGBUILD3
-rw-r--r--abs/core-testing/perl_modules/perl-pathtools/PKGBUILD4
-rwxr-xr-xabs/core-testing/plextor-convertX-driver/PKGBUILD14
-rwxr-xr-xabs/core-testing/plextor-convertX-driver/convertX.install6
-rw-r--r--abs/core-testing/smbclient/PKGBUILD10
-rw-r--r--abs/core-testing/tdb/PKGBUILD14
-rw-r--r--abs/core-testing/tweaker/PKGBUILD2
-rwxr-xr-xabs/core-testing/tweaker/bin/twk_cpu.pl4
-rwxr-xr-xabs/core-testing/tweaker/bin/twk_general.pl9
-rwxr-xr-xabs/core-testing/tweaker/bin/twk_keymap.sh2
-rwxr-xr-xabs/core/live-installer/PKGBUILD2
-rwxr-xr-xabs/core/live-installer/install_proxy.sh4
-rw-r--r--abs/extra-testing/community/cpulimit/PKGBUILD20
-rw-r--r--abs/extra-testing/community/vsftpd/PKGBUILD52
-rw-r--r--abs/extra-testing/community/vsftpd/run13
-rw-r--r--abs/extra-testing/community/vsftpd/vsftpd.d40
-rw-r--r--abs/extra-testing/community/vsftpd/vsftpd.install22
-rw-r--r--abs/extra-testing/community/vsftpd/vsftpd.xinetd10
-rw-r--r--abs/extra-testing/fuppes-svn/PKGBUILD15
-rw-r--r--abs/extra-testing/fuppes-svn/fuppes.cfg216
-rw-r--r--abs/extra-testing/fuppes-svn/fuppes.ch2
-rw-r--r--abs/extra-testing/fuppes-svn/fuppes.install20
-rwxr-xr-xabs/extra-testing/fuppes-svn/run2
-rw-r--r--abs/extra-testing/perl-algorithm-diff/PKGBUILD23
-rwxr-xr-xabs/mv-core/MythVantage-config/PKGBUILD2
-rwxr-xr-xabs/mv-core/MythVantage-config/install_proxy.sh4
56 files changed, 3327 insertions, 440 deletions
diff --git a/abs/core-testing/LinHES-config-svn/PKGBUILD b/abs/core-testing/LinHES-config-svn/PKGBUILD
index 2927a6e..32645a2 100755
--- a/abs/core-testing/LinHES-config-svn/PKGBUILD
+++ b/abs/core-testing/LinHES-config-svn/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-config-svn
pkgver=1.0
-pkgrel=294
+pkgrel=299
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 system-templates )
diff --git a/abs/core-testing/LinHES-config-svn/install_db_chroot.sh b/abs/core-testing/LinHES-config-svn/install_db_chroot.sh
index 1a0131e..808dbb9 100755
--- a/abs/core-testing/LinHES-config-svn/install_db_chroot.sh
+++ b/abs/core-testing/LinHES-config-svn/install_db_chroot.sh
@@ -6,58 +6,112 @@
myhost=$hostname
hostname $myhost
echo $myhost > /etc/hostname
-echo "install_db_chroot hostname is $hostname"
+echo "$0 hostname is $hostname"
. $MV_ROOT/bin/install_functions.sh
#myhost=`cat /etc/hostname`
-#mount -t proc none /proc
-pacman --noconfirm -Sf mysql
-/etc/rc.d/mysqld
-
-status=1
-mysqlstatus=1
-while [ ! $status = 0 ]
-do
- /etc/rc.d/mysqld stop
- sleep 1
- /etc/rc.d/mysqld start
- mysqlstatus=$?
- if [ $mysqlstatus = 0 ]
- then
- mysql -e "show databases;"
- showstatus=$?
- if [ $showstatus = 0 ]
- then
- pacman --noconfirm -R mythdb-initial
- pacman --noconfirm -S mythdb-initial
- $MV_ROOT/bin/restore_default_settings.sh -c load
- DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1
- $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
- $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install
-
- update_db_settings HostServiceMythWEB "1"
- echo 'UseMythWEB="1"' >> /etc/systemconfig
-
- #update database to allow user jobs on this host.
- $MV_ROOT/bin/restore_default_settings.sh -c USERJOBALLOW
- $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL
- if [ -d /data/srv/mysql/mythconverg ]
- #if [ -d /var/lib/mysql/mythconverg ]
- then
+# Before this script is called, the mysqld that facilitated the installation is killed.
+# We need to make sure to stop and start the mysqld that will be used post-install so
+# that the database can be initialized.
+
+/etc/rc.d/mysqld stop
+killall -9 mysqld
+/etc/rc.d/mysqld start
+sleep 1
+
+# Put a limit on how many times we try to (re-)start MySQL
+success_test() {
+ # parameter: number of tries to start mysqld so far
+ PID=`pidof -o %PPID /usr/sbin/mysqld`
+ if [ -z "$PID" ]; then # mysqld isn't running
+ if [ $1 -gt 3 ]; then
+ echo "ERROR: Failed to start MySQL server in $1 attempts."
+ sleep 5
+ exit 1
+ else
+ echo "Tried $1 time(s) to start MySQL server."
+ return 1
+ fi
+ else # mysqld is running
+ return 0
+ fi
+ # should never get here
+ return 1
+}
+
+mysqld_tries=0
+# See if MySQL server is running; try several ways to start it if it's not.
+while true; do
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server is running"
+ break
+ else
+ echo "MySQL server is not running. Trying to start it."
+ # Maybe it just needs to be started
+ sleep 1
+ /etc/rc.d/mysqld start
+ mysqld_tries=$((mysqld_tries + 1))
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server has been started"
+ break
+ else
+ echo "MySQL server may not be installed. Trying to install it."
+ # Maybe it's not installed; try (re-)installing it and starting it
+ sleep 1
+ pacman --noconfirm -Sf mysql
+ sleep 1
+ /etc/rc.d/mysqld start
+ mysqld_tries=$((mysqld_tries + 1))
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server has been installed and started"
+ break
+ else
+ echo "MySQL server would not start, even after (re-)installing it."
+ fi
+ fi
+ fi
+done
+
+# At this point, MySQL server should be up and running
+
+while true; do
+ mysql -e "show databases;"
+
+ if [ $? -eq 0 ]; then
+ pacman --noconfirm -R mythdb-initial
+ pacman --noconfirm -S mythdb-initial
+ $MV_ROOT/bin/restore_default_settings.sh -c load
+ DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1
+ $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
+ $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install
+
+ update_db_settings HostServiceMythWEB "1"
+ echo 'UseMythWEB="1"' >> /etc/systemconfig
+
+ #update database to allow user jobs on this host.
+ $MV_ROOT/bin/restore_default_settings.sh -c USERJOBALLOW
+ $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL
+ #if [ -d /var/lib/mysql/mythconverg ]
+ if [ -d /data/srv/mysql/mythconverg ]; then
# pacman --noconfirm -R webcalendar
# pacman --noconfirm --nodeps -S webcalendar
- status=0
- fi
+ break
+ else
+ echo "Failed to create mythconverg database. Will re-try."
+ sleep 1
+ fi
# if [ $SystemType = "Master_backend" ]
# then
# $MV_ROOT/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost
# fi
- fi
+ else
+ echo "Failed to look for databases. Will re-try."
+ sleep 1
fi
done
/etc/rc.d/mysqld stop
#umount /proc
-
-
-
diff --git a/abs/core-testing/LinHES-config-svn/install_functions.sh b/abs/core-testing/LinHES-config-svn/install_functions.sh
index ddade6d..4f6f7ed 100755
--- a/abs/core-testing/LinHES-config-svn/install_functions.sh
+++ b/abs/core-testing/LinHES-config-svn/install_functions.sh
@@ -38,7 +38,7 @@ update_db_settings Theme "$pick"
function splash_setup (){
echo $CMDLINE | grep -q splash=silent
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
update_db_settings Hostbootsplash 1
else
@@ -61,7 +61,7 @@ function setupremote {
update_db_settings HostRemoteType "$Remotetype"
#special case for special remote
echo "Starting with support for $Remotetype"
- if [ x$Remotetype = "xdvico" ]
+ if [ "$Remotetype" == "dvico" ]
then
/usr/sbin/lircd -d /dev/usb/hiddev0
else
@@ -79,7 +79,7 @@ echo "Scanning for Hauppauge receiver"
for hpgid in `lspci -nm -d4444: |cut -d" " -f6- |tr -d '"'|tr " " :`
do
line=`grep $hpgid $TEMPLATES/remotes/i2c.id`
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
modprobe lirc_i2c
FoundReceiverType=`echo "$line"|cut -d"|" -f2`
@@ -102,7 +102,7 @@ while read line
do
USBID=`echo "$line"|cut -d"|" -f1`
lsusb -d "$USBID" > /dev/null 2>/dev/null
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
Remotetype=`echo "$line"|cut -d"|" -f2`
echo "Found $Remotetype"
@@ -111,7 +111,7 @@ do
break
fi
done <$BASE/$TEMPLATES/remotes/receiver_usb.id
-if [ $found_remote = 1 ]
+if [ $found_remote -eq 1 ]
then
scan_for_hpg_receiver
fi
@@ -125,7 +125,7 @@ fi
function rest_of_network () {
#netmask
echo $CMDLINE | grep -q netmask
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*netmask=}
NETMASK=${TEMPVAR%% *}
@@ -139,7 +139,7 @@ function rest_of_network () {
fi
#gateway
echo $CMDLINE | grep -q gateway
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*gateway=}
GATEWAY=${TEMPVAR%% *}
@@ -152,7 +152,7 @@ function rest_of_network () {
#dns
echo $CMDLINE | grep -q dns
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*dns=}
DNS=${TEMPVAR%% *}
@@ -165,7 +165,7 @@ function rest_of_network () {
function init_network {
echo $CMDLINE |grep -q netdev
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*netdev=}
MYTHDEFAULT=${TEMPVAR%% *}
@@ -176,7 +176,7 @@ function init_network {
echo $CMDLINE | grep -q ip
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
update_db_settings HostDefaulteth0 0
update_db_settings HostDefault${MYTHDEFAULT} 1
@@ -187,7 +187,7 @@ function init_network {
TEMPVAR=${CMDLINE#*ip=}
IP=${TEMPVAR%% *}
- if [ x$IP = xdhcp ]
+ if [ "$IP" == "dhcp" ]
then
/sbin/dhcpcd $MYTHDEFAULT
update_db_settings HostUseDHCP${MYTHDEFAULT} 0
@@ -202,11 +202,11 @@ function init_network {
function init_remote {
echo $CMDLINE | grep -q remoteport
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*remoteport=}
REMOTEPORT=${TEMPVAR%% *}
- if [ x"$ReceiverType" = "xSerial" ]
+ if [ "$ReceiverType" == "Serial" ]
then
if [ -e /dev/$REMOTEPORT ]
then
@@ -220,7 +220,7 @@ function init_remote {
fi
echo $CMDLINE | grep -q remote
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*remote=}
Remotetype=${TEMPVAR%% *}
@@ -239,7 +239,7 @@ ROOT=$1
DATA=$2
SWAP=$3
-if [ ! x$SWAP = xNO ]
+if [ "$SWAP" != "NO" ]
then
SWAPLINE=",$SWAP,S"
MKSWAPCMD="mkswap /dev/${disk}2"
@@ -248,7 +248,7 @@ if [ ! x$SWAP = xNO ]
MKSWAPCMD=""
fi
-if [ x$DATA = xALL ]
+if [ "$DATA" == "ALL" ]
then
DATALINE=",,,"
EXTRALINE=""
@@ -315,7 +315,7 @@ unmount_it () {
copy_it () {
- if [ x$1 = xALL ]
+ if [ "$1" == "ALL" ]
then
echo "Transferring system"
unsquashfs -f -d /$mountpoint /.livesys/medium/system.sqf
@@ -403,7 +403,7 @@ function find_uuid() {
get_grub_map() {
- rm /tmp/dev.map
+ [ -e /tmp/dev.map ] && rm /tmp/dev.map
/sbin/grub --no-floppy --device-map /tmp/dev.map <<EOF
quit
EOF
@@ -422,17 +422,17 @@ mapdev() {
fi
for dev in $devs
do
- if [ "(" = $(echo $dev | cut -b1) ]; then
+ if [ "(" == $(echo $dev | cut -b1) ]; then
grubdevice="$dev"
else
- if [ "$dev" = "$linuxdevice" ]; then
+ if [ "$dev" == "$linuxdevice" ]; then
device_found=1
break
fi
fi
done
- if [ "$device_found" = "1" ]; then
- if [ "$partition_flag" = "0" ]; then
+ if [ "$device_found" == "1" ]; then
+ if [ "$partition_flag" == "0" ]; then
echo "$grubdevice"
else
grubdevice_stringlen=${#grubdevice}
@@ -461,7 +461,7 @@ dogrub() {
#/usr/sbin/xfs_freeze -f /$mountpoint > /dev/null 2>&1
echo "freezing xfs fs"
/usr/sbin/xfs_freeze -f /$mountpoint
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
sleep 40
echo "unfreezing xfs"
@@ -531,7 +531,7 @@ case $1 in
create_fstab
fi
#was 5
- if [ x$3 = xUPGRADE ]
+ if [ "$3" == "UPGRADE" ]
then
if [ ! -f /tmp/etc/KnoppMyth-version ]
then
@@ -558,11 +558,11 @@ case $1 in
SWAPUUID=$FOUNDUUID
FOUNDUUID=""
- if [ x$4 = x ]
+ if [ "$4" == "" ]
then
#upgrade
find_uuid ${2}3
- elif [ x$5 = xFULL_INSTALL ]
+ elif [ "$5" == "FULL_INSTALL" ]
then
#install
find_uuid ${2}3
@@ -585,7 +585,7 @@ case $1 in
if [ -f /tmp/etc/fstab ]
then
grep -q /dev/vg /tmp/etc/fstab
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
grep /dev/vg /tmp/etc/fstab >> /$mountpoint/etc/fstab
grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs mkdir
diff --git a/abs/core-testing/LinHES-config-svn/install_proxy.sh b/abs/core-testing/LinHES-config-svn/install_proxy.sh
index 3f626a1..32d01d7 100755
--- a/abs/core-testing/LinHES-config-svn/install_proxy.sh
+++ b/abs/core-testing/LinHES-config-svn/install_proxy.sh
@@ -174,7 +174,7 @@ full_install () {
sleep 1
$run partition_it $disk $rootsize $datasize $swapsize
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs $datafs
@@ -294,7 +294,7 @@ function upgrade () {
if [ ! x$rootfs = "xDo_not_format" ]
then
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs NO
diff --git a/abs/core-testing/LinHES-config/install_db_chroot.sh b/abs/core-testing/LinHES-config/install_db_chroot.sh
index 1a0131e..808dbb9 100755
--- a/abs/core-testing/LinHES-config/install_db_chroot.sh
+++ b/abs/core-testing/LinHES-config/install_db_chroot.sh
@@ -6,58 +6,112 @@
myhost=$hostname
hostname $myhost
echo $myhost > /etc/hostname
-echo "install_db_chroot hostname is $hostname"
+echo "$0 hostname is $hostname"
. $MV_ROOT/bin/install_functions.sh
#myhost=`cat /etc/hostname`
-#mount -t proc none /proc
-pacman --noconfirm -Sf mysql
-/etc/rc.d/mysqld
-
-status=1
-mysqlstatus=1
-while [ ! $status = 0 ]
-do
- /etc/rc.d/mysqld stop
- sleep 1
- /etc/rc.d/mysqld start
- mysqlstatus=$?
- if [ $mysqlstatus = 0 ]
- then
- mysql -e "show databases;"
- showstatus=$?
- if [ $showstatus = 0 ]
- then
- pacman --noconfirm -R mythdb-initial
- pacman --noconfirm -S mythdb-initial
- $MV_ROOT/bin/restore_default_settings.sh -c load
- DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1
- $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
- $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install
-
- update_db_settings HostServiceMythWEB "1"
- echo 'UseMythWEB="1"' >> /etc/systemconfig
-
- #update database to allow user jobs on this host.
- $MV_ROOT/bin/restore_default_settings.sh -c USERJOBALLOW
- $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL
- if [ -d /data/srv/mysql/mythconverg ]
- #if [ -d /var/lib/mysql/mythconverg ]
- then
+# Before this script is called, the mysqld that facilitated the installation is killed.
+# We need to make sure to stop and start the mysqld that will be used post-install so
+# that the database can be initialized.
+
+/etc/rc.d/mysqld stop
+killall -9 mysqld
+/etc/rc.d/mysqld start
+sleep 1
+
+# Put a limit on how many times we try to (re-)start MySQL
+success_test() {
+ # parameter: number of tries to start mysqld so far
+ PID=`pidof -o %PPID /usr/sbin/mysqld`
+ if [ -z "$PID" ]; then # mysqld isn't running
+ if [ $1 -gt 3 ]; then
+ echo "ERROR: Failed to start MySQL server in $1 attempts."
+ sleep 5
+ exit 1
+ else
+ echo "Tried $1 time(s) to start MySQL server."
+ return 1
+ fi
+ else # mysqld is running
+ return 0
+ fi
+ # should never get here
+ return 1
+}
+
+mysqld_tries=0
+# See if MySQL server is running; try several ways to start it if it's not.
+while true; do
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server is running"
+ break
+ else
+ echo "MySQL server is not running. Trying to start it."
+ # Maybe it just needs to be started
+ sleep 1
+ /etc/rc.d/mysqld start
+ mysqld_tries=$((mysqld_tries + 1))
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server has been started"
+ break
+ else
+ echo "MySQL server may not be installed. Trying to install it."
+ # Maybe it's not installed; try (re-)installing it and starting it
+ sleep 1
+ pacman --noconfirm -Sf mysql
+ sleep 1
+ /etc/rc.d/mysqld start
+ mysqld_tries=$((mysqld_tries + 1))
+ success_test $mysqld_tries
+ if [ $? -eq 0 ]; then
+ echo "MySQL server has been installed and started"
+ break
+ else
+ echo "MySQL server would not start, even after (re-)installing it."
+ fi
+ fi
+ fi
+done
+
+# At this point, MySQL server should be up and running
+
+while true; do
+ mysql -e "show databases;"
+
+ if [ $? -eq 0 ]; then
+ pacman --noconfirm -R mythdb-initial
+ pacman --noconfirm -S mythdb-initial
+ $MV_ROOT/bin/restore_default_settings.sh -c load
+ DISPLAY=127.0.0.1:0 $MV_ROOT/bin/MythVantage -t restore,default_1
+ $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
+ $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install
+
+ update_db_settings HostServiceMythWEB "1"
+ echo 'UseMythWEB="1"' >> /etc/systemconfig
+
+ #update database to allow user jobs on this host.
+ $MV_ROOT/bin/restore_default_settings.sh -c USERJOBALLOW
+ $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL
+ #if [ -d /var/lib/mysql/mythconverg ]
+ if [ -d /data/srv/mysql/mythconverg ]; then
# pacman --noconfirm -R webcalendar
# pacman --noconfirm --nodeps -S webcalendar
- status=0
- fi
+ break
+ else
+ echo "Failed to create mythconverg database. Will re-try."
+ sleep 1
+ fi
# if [ $SystemType = "Master_backend" ]
# then
# $MV_ROOT/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost
# fi
- fi
+ else
+ echo "Failed to look for databases. Will re-try."
+ sleep 1
fi
done
/etc/rc.d/mysqld stop
#umount /proc
-
-
-
diff --git a/abs/core-testing/LinHES-config/install_functions.sh b/abs/core-testing/LinHES-config/install_functions.sh
index ce9a057..9f38384 100755
--- a/abs/core-testing/LinHES-config/install_functions.sh
+++ b/abs/core-testing/LinHES-config/install_functions.sh
@@ -38,7 +38,7 @@ update_db_settings Theme "$pick"
function parse_cmdline_2_db(){
echo $CMDLINE | grep -q displayres
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*displayres=}
update_db_settings HostXres $TEMPVAR
@@ -49,7 +49,7 @@ function parse_cmdline_2_db(){
function bootsplash_setup (){
echo $CMDLINE | grep -q splash=silent
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
update_db_settings Hostbootsplash 1
else
@@ -72,7 +72,7 @@ function setupremote {
update_db_settings HostRemoteType "$Remotetype"
#special case for special remote
printhl "Starting with support for $Remotetype"
- if [ x$Remotetype = "xdvico" ]
+ if [ "$Remotetype" == "dvico" ]
then
/usr/sbin/lircd -d /dev/usb/hiddev0
else
@@ -90,7 +90,7 @@ printhl " Scanning for Hauppauge receiver"
for hpgid in `lspci -nm -d4444: |cut -d" " -f6- |tr -d '"'|tr " " :`
do
line=`grep $hpgid $TEMPLATES/remotes/i2c.id`
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
modprobe lirc_i2c
FoundReceiverType=`echo "$line"|cut -d"|" -f2`
@@ -131,7 +131,7 @@ while read line
do
USBID=`echo "$line"|cut -d"|" -f1`
lsusb -d "$USBID" > /dev/null 2>/dev/null
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
Remotetype=`echo "$line"|cut -d"|" -f2`
printhl "Found $Remotetype"
@@ -140,7 +140,7 @@ do
break
fi
done <$BASE/$TEMPLATES/remotes/receiver_usb.id
-if [ $found_remote = 1 ]
+if [ $found_remote -eq 1 ]
then
scan_for_hpg_receiver
fi
@@ -154,7 +154,7 @@ fi
function rest_of_network () {
#netmask
echo $CMDLINE | grep -q netmask
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*netmask=}
NETMASK=${TEMPVAR%% *}
@@ -168,7 +168,7 @@ function rest_of_network () {
fi
#gateway
echo $CMDLINE | grep -q gateway
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*gateway=}
GATEWAY=${TEMPVAR%% *}
@@ -180,7 +180,7 @@ function rest_of_network () {
#dns
echo $CMDLINE | grep -q dns
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*dns=}
DNS=${TEMPVAR%% *}
@@ -193,7 +193,7 @@ function rest_of_network () {
function init_network {
echo $CMDLINE |grep -q netdev
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*netdev=}
MYTHDEFAULT=${TEMPVAR%% *}
@@ -204,7 +204,7 @@ function init_network {
echo $CMDLINE | grep -q ip
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
update_db_settings HostDefaulteth0 0
update_db_settings HostDefault${MYTHDEFAULT} 1
@@ -215,7 +215,7 @@ function init_network {
TEMPVAR=${CMDLINE#*ip=}
IP=${TEMPVAR%% *}
- if [ x$IP = xdhcp ]
+ if [ "$IP" == "dhcp" ]
then
/sbin/dhcpcd $MYTHDEFAULT
update_db_settings HostUseDHCP${MYTHDEFAULT} 0
@@ -230,7 +230,7 @@ function init_network {
function init_remote {
echo $CMDLINE | grep -q remoteport
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*remoteport=}
REMOTEPORT=${TEMPVAR%% *}
@@ -248,7 +248,7 @@ function init_remote {
fi
echo $CMDLINE | grep -q remote
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
TEMPVAR=${CMDLINE#*remote=}
Remotetype=${TEMPVAR%% *}
@@ -267,7 +267,7 @@ ROOT=$1
DATA=$2
SWAP=$3
-if [ ! x$SWAP = xNO ]
+if [ ! "$SWAP" == "NO" ]
then
SWAPLINE=",$SWAP,S"
MKSWAPCMD="mkswap /dev/${disk}2"
@@ -276,7 +276,7 @@ if [ ! x$SWAP = xNO ]
MKSWAPCMD=""
fi
-if [ x$DATA = xALL ]
+if [ "$DATA" == "ALL" ]
then
DATALINE=",,,"
EXTRALINE=""
@@ -343,7 +343,7 @@ unmount_it () {
copy_it () {
- if [ x$1 = xALL ]
+ if [ "$1" == "ALL" ]
then
echo "Transferring system"
unsquashfs -f -d /$mountpoint /.livesys/medium/system.sqf
@@ -431,7 +431,7 @@ function find_uuid() {
get_grub_map() {
- rm /tmp/dev.map
+ [ -e /tmp/dev.map ] && rm /tmp/dev.map
/sbin/grub --no-floppy --device-map /tmp/dev.map <<EOF
quit
EOF
@@ -489,7 +489,7 @@ dogrub() {
#/usr/sbin/xfs_freeze -f /$mountpoint > /dev/null 2>&1
echo "freezing xfs fs"
/usr/sbin/xfs_freeze -f /$mountpoint
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
sleep 40
echo "unfreezing xfs"
@@ -559,7 +559,7 @@ case $1 in
create_fstab
fi
#was 5
- if [ x$3 = xUPGRADE ]
+ if [ "$3" == "UPGRADE" ]
then
if [ ! -f /tmp/etc/KnoppMyth-version ]
then
@@ -586,11 +586,11 @@ case $1 in
SWAPUUID=$FOUNDUUID
FOUNDUUID=""
- if [ x$4 = x ]
+ if [ "$4" == "" ]
then
#upgrade
find_uuid ${2}3
- elif [ x$5 = xFULL_INSTALL ]
+ elif [ "$5" == "FULL_INSTALL" ]
then
#install
find_uuid ${2}3
@@ -613,7 +613,7 @@ case $1 in
if [ -f /tmp/etc/fstab ]
then
grep -q /dev/vg /tmp/etc/fstab
- if [ $? = 0 ]
+ if [ $? -eq 0 ]
then
grep /dev/vg /tmp/etc/fstab >> /$mountpoint/etc/fstab
grep /dev/vg /tmp/etc/fstab | awk -v mount=$mountpoint ' { print "/" mount $2 }' |xargs mkdir
diff --git a/abs/core-testing/LinHES-config/install_proxy.sh b/abs/core-testing/LinHES-config/install_proxy.sh
index b9d6b67..4d158e7 100755
--- a/abs/core-testing/LinHES-config/install_proxy.sh
+++ b/abs/core-testing/LinHES-config/install_proxy.sh
@@ -17,155 +17,685 @@ run=$MV_ROOT/bin/install_functions.sh
CMDLINE=$(cat /proc/cmdline)
BACKUPFILE="/myth/backup/mythconverg.sql.gz"
+#TEMPNET="Hostip"$default_interface
+#eval MYTHIP=\$${TEMPNET}
+function create_chroot_mnt_points() {
+
+ echo "Creating directory for media in chroot"
+ mkdir -p $mountpoint/media/cdrom
+ mkdir -p $mountpoint/media/dvd
+ mkdir -p $mountpoint/mnt
+
+}
+function cp_and_log () {
+ ls $1 >/dev/null 2>&1
+ status=$?
+ if [ $status = 0 ]
+ then
+ echo "copying $1 to $2"
+ cp -rfp $1 $2
+ else
+ echo "$1 is not present, skipping..."
+ fi
+
+}
+
+function mdadm_find () {
+
+ PREFIX=$1
+ if [ -e $PREFIX/etc/KnoppMyth-version ]
+ then
+ MDADM_CONF="/etc/mdadm/mdadm.conf"
+ else
+ MDADM_CONF="/etc/mdadm.conf"
+ fi
+ echo "Using $MDADM_CONF"
+}
progress () {
- mypercent=`echo "$1" | cut -d. -f1`
- if [ x$mypercent = x ]
+mypercent=`echo "$1" | cut -d. -f1`
+if [ x$mypercent = x ]
+then
+echo "" > /tmp/.install_percent
+else
+echo "${mypercent}% complete" > /tmp/.install_percent
+fi
+
+
+}
+
+function apply_new_auth () {
+#check if file is present
+ if [ -f /root/myth_user_call.out ]
+ then
+ #read in file, running each command in chroot
+ exec 4</root/myth_user_call.out
+ while read LINE <&4
+ do
+ if [ ! x"$LINE" = x ]
+ then
+ #run commands in chroot
+ chroot "$mountpoint" $MV_ROOT/bin/myth_user_call -i $LINE > /tmp/user_auth.update
+ fi
+ done
+ rm -f /root/myth_user_call.out
+ else
+ echo "No new password changes to apply"
+ fi
+}
+
+
+function backup_sql_check {
+ if [ -f ${mountpoint}${BACKUPFILE} ]
+ then
+ echo "found ${mountpoint}${BACKUPFILE} "
+ rc=0
+ else
+ echo "did not find ${mountpoint}${BACKUPFILE} "
+ rc=1
+ fi
+ return $rc
+}
+
+function mdadm_assemble_all {
+
+ mdadm_find /tmp
+ mdadm --assemble --scan -c /tmp${MDADM_CONF}
+ MDLIST=`grep ARRAY /tmp${MDADM_CONF}|tr -s [:space:]|cut -d" " -f2`
+ for array in $MDLIST
+ do
+ echo "assembling array $array"
+ mdadm --assemble -c /tmp${MDADM_CONF} $array
+ sleep 2
+ fsck -p $array
+ done
+
+}
+
+function upgrade_mount_search {
+
+ MYTH_P=`cat /tmp/etc/fstab |grep -E /myth[[:space:]] | awk ' {print $1 '} `
+ umount $mountpoint/myth
+
+ #should probably just mdadm all the time
+ echo $MYTH_P |grep -q \/md.
+ if [ $? = 0 ]
then
- echo "" > /tmp/.install_percent
+ mdadm_assemble_all
+ fi
+
+ echo $MYTH_P |grep -q UUID
+ if [ $? = 0 ]
+ then
+ MUUID=`echo $MYTH_P|cut -d= -f2|tr -d \"`
+ echo blkid $MUUID
+ blkid -t UUID=$MUUID
+ if [ ! $? = 0 ]
+ then
+ echo "couldn't find $MUUID, starting md support"
+ mdadm_assemble_all
+ fi
+ mount -U $MUUID $mountpoint/myth
+ echo mount -U $MUUID $mountpoint/myth
+ MYTHMOUNT=`blkid -t UUID=$MUUID|cut -d: -f1`
+ MYTHMOUNT=`basename $MYTHMOUNT`
+ echo "MYTHMOUNT is $MYTHMOUNT"
else
- echo "${mypercent}% complete" > /tmp/.install_percent
+ mount $MYTH_P $mountpoint/myth
+ echo mount $MYTH_P $mountpoint/myth
+ MYTHMOUNT=`basename $MYTH_P`
+ echo "MYTHMOUNT is $MYTHMOUNT"
+ fi
+ sleep 2
+ backup_sql_check
+ if [ $? = 1 ]
+ then
+ mkdir -p /new_boot/root/backup
+ if [ ! -e /tmp/mythconverg.sql.gz ]
+ then
+ echo "Couldn't find ANY database to restore, upgrade will continue but a new database will be installed."
+ else
+ cp_and_log /tmp/mythconverg.sql.gz /new_boot/root/backup/mythconverg.sql.gz
+ BACKUPFILE="/root/backup/mythconverg.sql.gz"
+ echo "setting BACKUPFILE to $BACKUPFILE"
+ fi
fi
+ return 0
}
+full_install () {
+ if [ -f /tmp/.this_is_upgrade ]
+ then
+ rm /tmp/.this_is_upgrade
+ fi
+ echo "Partitioning $disk" > /tmp/.install_state
+ progress 1
+ sleep 1
+ $run partition_it $disk $rootsize $datasize $swapsize
+
+ echo "Formatting $disk" > /tmp/.install_state
+ progress 2
+ sleep 1
+ $run format_it $disk $rootfs $datafs
+
+ echo "Preparing $disk" > /tmp/.install_state
+ progress 3
+ sleep 1
+ $run mount_it $disk
+
+ startsize=`statgrab -M disk.|grep $disk.write_bytes|cut -d= -f 2|tr -d " "`
+
+ echo "STARTSIZE=$startsize">/tmp/.startsize.io
+ echo "Creating $hostname" > /tmp/.install_state
+
+ sleep 1
+ $run copy_it $disk ALL
+ rm $mountpoint/etc/fstab
+ $run fstab_fix_it $disk $rootfs $datafs FULL_INSTALL
+ echo "Configuring system" > /tmp/.install_state
+ progress 100
+ #progress 99
+ sleep 1
+ $run grub_it $disk
+
+
+ #echo "Configuring system" > /tmp/.install_state
+ #progress 100
+ sleep 1
+ cp_and_log /etc/systemconfig "$mountpoint"/etc
+ cp_and_log /root/xorg.conf.install "$mountpoint"/etc/X11/xorg.conf.install
+ #run save syssettings to save settings, then copy to new mountpoint
+ $MV_ROOT/bin/restore_default_settings.sh -c save -t syssettings -h $MVHOSTNAME -d localhost
+ SE=$TEMPLATES/settings/syssettings
+ mkdir -p ${mountpoint}$SE
+ #cp -rp $SE/* ${mountpoint}$SE/
+ cp_and_log "$SE/*" "${mountpoint}$SE/"
+ chown root:mythtv "$mountpoint"/etc/systemconfig
+ chown -R mythtv:mythtv ${mountpoint}$SE
+
+ chmod -R 775 ${mountpoint}$SE
+ chmod 775 "$mountpoint"/etc/systemconfig
+ mkdir -p "$mountpoint"/var/log/mythtv
+ chown mythtv "$mountpoint"/var/log/mythtv
+ #copy over any updates that might have occured
+ #cp -rp $MV_ROOT/bin/*.sh "$mountpoint"$MV_ROOT/bin/
+ cp_and_log "$MV_ROOT/bin/*.sh" "$mountpoint"$MV_ROOT/bin/
+ chmod -R 755 ${mountpoint}/root
+ create_chroot_mnt_points
+ cp_and_log /etc/mtab "$mountpoint"/etc/mtab
+ # cp_and_log /etc/hostname "$mountpoint"/etc/hostname
+ apply_new_auth
+
+
+ if [ $SystemType = "Master_backend" -o $SystemType = "Standalone" ]
+ then
+ #installing DB to local machine
+ #turn off old live database, so the chroot one can start
+ echo "---------------------CHROOT INSTALLDB-------------------------"
+ /etc/rc.d/mysqld stop
+ mount --bind /dev "$mountpoint/dev"
+ mount --bind /proc "$mountpoint/proc"
+ mount -t sysfs none $mountpoint/sys
+ chroot "$mountpoint" "$MV_ROOT/bin/install_db_chroot.sh" 2>&1 |tee /tmp/chrootdb.out
+ #chroot "$mountpoint" "$MV_ROOT/bin/install_db_chroot.sh"
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,user,this_is_install
+ echo "stopping mysql in chroot"
+ chroot "$mountpoint" /etc/rc.d/mysqld stop
+ kill_dhcp_chroot
+ sleep 2
+ lsof |grep new_boot
+ umount -l "$mountpoint/dev"
+ umount -l "$mountpoint/proc"
+ umount -l "$mountpoint/sys"
+
+ echo "---------------------END CHROOT INSTALLDB-------------------------"
+ /etc/rc.d/mysqld start
+ else
+ #update remotedb with this host settings
+ mount --bind /dev "$mountpoint/dev"
+ mount --bind /proc "$mountpoint/proc"
+ mount -t sysfs none $mountpoint/sys
+ chroot "$mountpoint" DISPLAY=127.0.0.1:0 /usr/local/bin/MythVantage -t restore,default_1
+ chroot "$mountpoint" $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
+ if [ ! $? = 0 ]
+ then
+ touch $mountpoint/tmp/.dbsysfailed
+ chmod 777 $mountpoint/tmp/.dbsysfailed
+ else
+ #Run second time
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,user,this_is_install
+ chroot "$mountpoint" $MV_ROOT/bin/restore_default_settings.sh -c ACCESSCONTROL
+ umount -l "$mountpoint/dev"
+ umount -l "$mountpoint/proc"
+ umount -l "$mountpoint/sys"
+ fi
+ fi
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh advanced,user
+ touch $mountpoint/home/mythtv/.configure && chmod 777 $mountpoint/home/mythtv/.configure
+
+ echo "Done" > /tmp/.install_state
+ cp_and_log /tmp/mythvantage_install.log $mountpoint/var/log/
+ $run umount_it $disk
+
+}
+
+function createsquashlist(){
+if [ -f $1 ]
+then
+ rm -f
+$1
+fi
+for i in bin boot etc home lib opt root sbin usr var data
+do
+echo $i >> $1
+done
+
+
+}
+
+
+
+
+function upgrade () {
+ touch /tmp/.this_is_upgrade
+
+ if [ ! x$rootfs = "xDo_not_format" ]
+ then
+ echo "Formatting
+ $disk" > /tmp/.install_state
+ progress 2
+ sleep 1
+ $run format_it $disk $rootfs NO
+ fi
+ echo "Preparing $disk" > /tmp/.install_state
+ progress 3
+ sleep 1
+ $run mount_it $disk
+ startsize=`statgrab -M disk.|grep $disk.write_bytes|cut -d= -f 2|tr -d " "`
+ echo "STARTSIZE=$startsize">/tmp/.startsize.io
+ echo "Upgrading $hostname" > /tmp/.install_state
+ sleep 1
+ cp_and_log /tmp/etc /new_boot/etc.old
+ cp_and_log /tmp/oss /new_boot/var/lib/oss.old
+
+
+ SQUASHLIST="/tmp/.squashlist"
+ createsquashlist $SQUASHLIST
+ $run copy_it $disk $SQUASHLIST
+ #copy back ssh keys
+
+# cp_and_log -rp /data/var/cache/pacman/pkg/* /new_boot/data/var/cache/pacman/pkg/
+ cp_and_log "/new_boot/etc.old/ssh/*.pub" /new_boot/etc/ssh/
+ cp_and_log "/new_boot/etc.old/ssh/*.key" /new_boot/etc/ssh/
+ cp_and_log "/new_boot/etc.old/ssh/*key" /new_boot/etc/ssh/
+ mdadm_find /tmp
+ cp_and_log /tmp${MDADM_CONF} /new_boot/etc
+ #cp_and_log /new_boot/etc.old/mdadm/mdadm.conf /new_boot/etc/
+ cp_and_log /new_boot/etc.old/asound.state /new_boot/etc/
+ if [ ! -f /tmp/etc/KnoppMyth-version ]
+ then
+ #passwd/shadow/group
+ cp_and_log /new_boot/etc.old/passwd /new_boot/etc/
+ cp_and_log /new_boot/etc.old/shadow /new_boot/etc/
+ cp_and_log /new_boot/etc.old/group /new_boot/etc/
+ fi
+ mkdir -p "$mountpoint"/var/log/mythtv
+ chown mythtv "$mountpoint"/var/log/mythtv
+ if [ x$rootfs = "xDo_not_format" ]
+ then
+ rootfs=`grep \/\ /tmp/etc/fstab |awk ' { print $3 } '`
+ fi
+ #this is here to copy in the systemconfig file as soon as possible.
+ cp_and_log /etc/systemconfig "$mountpoint"/etc/systemconfig
+ echo "Configuring system" > /tmp/.install_state
+ progress 100
+ backup_sql_check
+ if [ $? = 1 ]
+ then
+ upgrade_mount_search
+ fi
+ echo $run fstab_fix_it $disk UPGRADE $MYTHMOUNT
+ $run fstab_fix_it $disk UPGRADE $MYTHMOUNT
+ create_chroot_mnt_points
+
+ #echo "Writing boot sector" > /tmp/.install_state
+ #progress 99
+ sleep 1
+ $run grub_it $disk
+ #echo "Configuring system" > /tmp/.install_state
+ #progress 100
+ sleep 1
+ cp_and_log /etc/mtab "$mountpoint"/etc/mtab
+ cp_and_log /etc/systemconfig "$mountpoint"/etc
+ cp_and_log /root/xorg.conf.install "$mountpoint"/etc/X11/xorg.conf.install
+#make sure mythconverg.sql.gz is present
+ #backup_sql_check
+ #if [ $? = 1 ]
+ #then
+ # upgrade_mount_search
+ #fi
+ echo $CMDLINE | grep -q clean_upgrade
+ status=$?
+ if [ -f /tmp/etc/KnoppMyth-version -o $status = 0 ]
+ then
+ #run save syssettings to save settings, then copy to new mountpoint
+ $MV_ROOT/bin/restore_default_settings.sh -c save -t syssettings -h $MVHOSTNAME -d localhost
+ SE=$TEMPLATES/settings/syssettings
+ mkdir -p ${mountpoint}$SE
+ #cp -rfp $SE/* ${mountpoint}$SE/
+ cp_and_log "$SE/*" "${mountpoint}$SE/"
+ chown root:mythtv "$mountpoint"/etc/systemconfig
+ chown -R mythtv:mythtv ${mountpoint}$SE
+ chmod -R 775 ${mountpoint}$SE
+ if [ ! $status = 0 ]
+ then
+ touch $mountpoint/home/mythtv/.kmupgrade && chmod 777 $mountpoint/home/mythtv/.kmupgrade
+ fi
+ fi
+
+
+
+ cp_and_log "$MV_ROOT/bin/*.sh" "$mountpoint"$MV_ROOT/bin/
+ chmod -R 755 ${mountpoint}/root
+ chown root:mythtv "$mountpoint"/etc/systemconfig
+ chmod 775 "$mountpoint"/etc/systemconfig
+ #mount /proc and /dev
+ mount --bind /dev "$mountpoint/dev"
+ mount --bind /proc "$mountpoint/proc"
+
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,user,this_is_install
+ #wrap this in a network check_network, no need to update the db if the import worked.
+ ##### do I need to start mysql?
+ /etc/rc.d/mysqld stop
+ if [ $SystemType = "Master_backend" -o $SystemType = "Standalone" ]
+ then
+ echo $CMDLINE | grep -q clean_upgrade
+ status=$?
+ if [ $status = 0 ]
+ then
+ #new db as part of clean upgrade
+ echo "--------------------------------"
+ echo "clean upgrade installing new database"
+ echo "--------------------------------"
+ chroot "$mountpoint" "$MV_ROOT/bin/install_db_chroot.sh" |tee /tmp/chrootdb.out
+ echo "############################################"
+ echo "End Installing new database/clean"
+ echo "############################################"
+ else
+ #proceed as normal
+ if [ -f "$mountpoint"/$BACKUPFILE ]
+ then
+ echo "--------------------------------"
+ echo "Restoring database with $BACKUPFILE"
+ echo "--------------------------------"
+ chroot "$mountpoint" "$MV_ROOT/bin/restore_km_db_chroot.sh" "$BACKUPFILE" |tee /tmp/chrootdb_km.out
+ echo "############################################"
+ echo "End Restoring database"
+ echo "############################################"
+ else
+ echo "--------------------------------"
+ echo "Couldn't find backup file, installing new database"
+ echo "--------------------------------"
+ touch /tmp/.upgrade_db_failed
+ chroot "$mountpoint" "$MV_ROOT/bin/install_db_chroot.sh" |tee /tmp/chrootdb.out
+ echo "############################################"
+ echo "End Installing new database"
+ echo "############################################"
+ fi
+ fi
+ fi
+
+ if [ -f /tmp/etc/KnoppMyth-version ]
+ then
+ chroot "$mountpoint" $MV_ROOT/bin/restore_default_settings.sh -c restore -t hostsettings
+ #change permissions of /myth (only needed on km->linhes)
+ chown -R mythtv:mythtv $mountpoint/myth
+ chown -R root:root $mountpoint/myth/backup
+ else
+ chroot "$mountpoint" $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings
+ fi
+ #
+ #Run second time
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,user,this_is_install
+ chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh advanced,this_is_install
+ echo "stopping mysql in chroot"
+ chroot "$mountpoint" /etc/rc.d/mysqld stop
+ apply_new_auth
+ kill_dhcp_chroot
+ umount -l "$mountpoint/dev"
+ umount -l "$mountpoint/proc"
+
+ echo "Done" > /tmp/.install_state
+ cp_and_log /tmp/mythvantage_install.log $mountpoint/var/log/
+
+ $run umount_it $disk
+ /etc/rc.d/mysqld start
+}
+
+function netboot-full_install () {
+ TEMPVAR=${CMDLINE#*nfsroot=}
+ NFSROOT=${TEMPVAR%% *}
+ NFSROOT=`echo $NFSROOT|cut -d: -f1`
+ MAC=`/sbin/ifconfig eth0|grep HWaddr| cut -d: -f2-|awk '{ print $3}'|tr : -`
+ URL="http://$NFSROOT:1337/diskless.py?HOSTNAME=$hostname&MAC=$MAC"
+ echo "calling $URL"
+ echo "Starting" > /tmp/.install_state
+ curl $URL
+ ${MV_ROOT}/bin/xconfig.sh
+}
+
+# function killdhcp () {
+# if [ -f /etc/dhcpc/dhcpcd-eth0.pid ]
+# then
+# pid=`cat /etc/dhcpc/dhcpcd-eth0.pid`
+# kill -9 $pid
+# rm -f /etc/dhcpc/dhcpcd-eth0.pid
+# rm -f /var/run/dhcpcd*
+# fi
+# if [ -f /var/run/dhcpcd-eth0.pid ]
+# then
+# pid=`cat /var/run/dhcpcd-eth0.pid`
+# kill -9 $pid
+# rm -f /var/run/dhcpcd-eth0.pid*
+# fi
+# ip address flush dev eth0
+# }
+
+
+
+function SANE_SYSETTINGS () {
+sed -e '/HOSTrootfstype/d' \
+ -e '/HOSTrootfstype/d' \
+ -e '/HOSTdatafstype/d' \
+ -e '/HOSTOSsize/d' \
+ -e '/HostUseALLdata/d' \
+ -e '/HOSTDATAsize/d' \
+ -e '/HOSTuprootfstype/d' \
+ -e '/HostUseSWAP/d' \
+ -e '/HOSTSWAPsize/d ' /tmp/templates/settings/syssettings/settings.txt > /tmp/settings.new
+ mv /tmp/settings.new /tmp/templates/settings/syssettings/settings.txt
+}
+
case $1 in
- full_install_it )
- mv_install.py --rootdisk=$disk --rootfs=$rootfs --rootsize=$rootsize --datafs=$datafs --datasize=$datasize --datadisk=$disk --swapsize=$swapsize -c full_install
- ;;
+ full_install_it ) full_install ;;
- NETBOOT)
- echo "-----------------------------------------------------------------------3-----"
- netboot-full_install
- ;;
+ NETBOOT)
+echo "-----------------------------------------------------------------------3-----"
+ netboot-full_install ;;
+
+ find_update)
+
+ #TRY TO mount first partition of drive
+ #copy /etc/systemconfig to live, import settings into db
+ #umount drive
+ echo $CMDLINE | grep -q clean_upgrade
+ if [ $? = 1 ]
+ then
+ $run mount_it $disk
+ [ -e "/new_boot/root/backup/mythconverg.sql.gz" ] && cp /new_boot/root/backup/mythconverg.sql.gz /tmp
+
+
+ if [ -f /new_boot/etc/systemconfig ]
+ then
+ ###########ADD templates
+ mkdir -p $TEMP_TEMPLATES
+ cp_and_log /new_boot/$TEMPLATES $TEMP_TEMPLATES
+ SANE_SYSETTINGS
+ cp_and_log $TEMP_TEMPLATES/settings $TEMPLATES/
+ cp_and_log /new_boot/etc/systemconfig /etc/systemconfig
+ cp_and_log /new_boot/etc /tmp/etc
+ cp_and_log /new_boot/var/lib/oss /tmp/oss
+ [ -e /tmp/etc/mdadm.conf ] && cp_and_log /tmp/etc/mdadm.conf /etc/
- find_update)
- mv_install.py --rootdisk=$disk -c find_upgrade
+ $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings -h $MVHOSTNAME -d 127.0.0.1
+ else
+ cp_and_log /new_boot/etc /tmp/etc
+ [ -e /tmp/etc/mdadm.conf ] && cp_and_log /tmp/etc/mdadm.conf /etc/
+ #now we search for the timezone and try to update
+ TZREGION=`cat /tmp/etc/timezone | cut -d"/" -f1`
+ TZSUB=`cat /tmp/etc/timezone | cut -d"/" -f2 -`
+
+
+ if [ $TZREGION = $TZSUB ]
+ then
+ $run update_db_it HostTimeZoneRegion "$TZREGION"
+ else
+ $run update_db_it HostTimeZoneRegion "$TZREGION"
+ $run update_db_it HostTimeZoneRegion_$TZREGION "$TZSUB"
+ fi
+ fi
+ backup_sql_check
+ echo $?
+ upgrade_mount_search
+ echo $?
+ $run umount_it $disk
+ fi
;;
- upgrade_it)
- mv_install.py --rootdisk=$disk --rootfs=$rootfs -c upgrade
+ upgrade_it)
+ upgrade
;;
+ disk_model_it)
+ model="unknown"
+ size="xxx"
+ case $2 in
- disk_model_it)
- model="unknown"
- size="xxx"
- case $2 in
- h* )
- model=`cat /proc/ide/$2/model`
- ;;
- s*) model=`sginfo /dev/$2|grep Product|awk ' { print $2 } '`
- ;;
- esac
- size=`parted /dev/$2 print |grep Disk|awk ' { print $3 } ' `
- echo ""$model" $size " >/tmp/model
+ h* )
+ model=`cat /proc/ide/$2/model`
+ ;;
+ s*) model=`sginfo /dev/$2|grep Product|awk ' { print $2 } '`
+ ;;
+ esac
+ size=`parted /dev/$2 print |grep Disk|awk ' { print $3 } ' `
+ echo ""$model" $size " >/tmp/model
;;
+ network_check_it)
+ #Should never return from check_network
+ case $2 in
+ setup_network)
+ vnc_check
+ install_network_setup
+ ;;
- network_check_it)
- #Should never return from check_network
- case $2 in
- setup_network)
- vnc_check
- install_network_setup
- ;;
-
- check_self)
- myipdefault=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'`
- echo "network check myself"
- ifconfig
- ping -c 1 $myipdefault
- if [ ! $? = 0 ]
- then
- exit 3
- #can't ping yourself
- fi
- ;;
- check_gw)
- #check gateway
- echo "network check gateway"
- /sbin/route -n
- mygwdefault=`/sbin/route -n |grep $default_interface|grep UG|awk '{ print $2}'`
- echo "Default gateway seems to be $mygwdefault"
- if [ ! x$mygwdefault = x ]
- then
- sleep 2
- ping -c 5 $mygwdefault
- if [ ! $? = 0 ]
- then
- exit 4
- fi
- fi
- ;;
- check_ns)
- #check nameserver
- echo " network check nameserver"
- mydns=`cat /etc/resolv.conf|grep nameserver|head -1|awk '{ print $2}'`
- ping -c 1 $mydns
- if [ ! $? = 0 ]
- then
- exit 5
- fi
- ;;
- check_names)
- echo "network check resolve names"
- host google.com
- if [ ! $? = 0 ]
- then
- exit 6
- fi
- ;;
- host_names)
- #if host is found, then check to see if it's online
- #if hoip matchs my ip assume it's ok
- echo "network check my hostname $hostname"
- hout=`host $hostname|head -n1`
- status=$?
- hoip=`echo $hout|awk '{print $4}'`
- if [ $hoip = found: ]
- then
- status=1
- fi
-
- unkownhost=`host unkown.linhes.org |head -n1 `
- unkownhostip=`echo $unkownhost |awk '{print $4}'`
-
- #found host, now grab the ip
- if [ $status = 0 ]
- then
- hoip=`echo $hout|awk '{print $4}'`
- /sbin/ifconfig -a |grep -q $hoip
- if [ $? = 0 ]
- then
- echo "DNS ip matches on of my ips $hoip"
- status=0
- else
- if [ $unkownhostip = $hoip ]
- then
- echo "Bad DNS returning false hits"
- echo "Assuming hostname is OK"
- echo "DNS unknown: $unkownhostip"
- echo " HOSTDNS: $hoip "
- /sbin/ifconfig -a |grep "inet addr"
- else
- echo "IP in DNS but doesn't match mine, hostname is not safe to use"
- echo "DNS:$hoip"
- echo "HOST: "
- /sbin/ifconfig -a |grep "inet addr"
- status=7
+ check_self)
+ myipdefault=`ifconfig | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'`
+ echo "network check myself"
+ ifconfig
+ ping -c 1 $myipdefault
+ if [ ! $? = 0 ]
+ then
+ exit 3
+ #can't ping yourself
+ fi
+ ;;
+ check_gw)
+ #check gateway
+ echo "network check gateway"
+ /sbin/route -n
+ mygwdefault=`/sbin/route -n |grep $default_interface|grep UG|awk '{ print $2}'`
+ echo "Default gateway seems to be $mygwdefault"
+ if [ ! x$mygwdefault = x ]
+ then
+ sleep 2
+ ping -c 5 $mygwdefault
+ if [ ! $? = 0 ]
+ then
+ exit 4
+ fi
+ fi
+ ;;
+ check_ns)
+ #check nameserver
+ echo " network check nameserver"
+ mydns=`cat /etc/resolv.conf|grep nameserver|head -1|awk '{ print $2}'`
+ ping -c 1 $mydns
+ if [ ! $? = 0 ]
+ then
+ exit 5
+ fi
+ ;;
+ check_names)
+ echo "network check resolve names"
+ host google.com
+ if [ ! $? = 0 ]
+ then
+ exit 6
+ fi
+ ;;
+ host_names)
+ #if host is found, then check to see if it's online
+ #if hoip matchs my ip assume it's ok
+ echo "network check my hostname $hostname"
+ hout=`host $hostname|head -n1`
+ status=$?
+ hoip=`echo $hout|awk '{print $4}'`
+ if [ $hoip = found: ]
+ then
+ status=1
fi
- fi
- else
- echo "Couldn't find hostname in DNS, must be safe to use"
- status=0
- fi
- exit $status
- ;;
-
- esac
- exit 0
- ;;
- * )
+ unkownhost=`host unkown.linhes.org |head -n1 `
+ unkownhostip=`echo $unkownhost |awk '{print $4}'`
+
+ #found host, now grab the ip
+ if [ $status = 0 ]
+ then
+ hoip=`echo $hout|awk '{print $4}'`
+ /sbin/ifconfig -a |grep -q $hoip
+ if [ $? = 0 ]
+ then
+ echo "DNS ip matches on of my ips $hoip"
+ status=0
+ else
+ if [ $unkownhostip = $hoip ]
+ then
+ echo "Bad DNS returning false hits"
+ echo "Assuming hostname is OK"
+ echo "DNS unknown: $unkownhostip"
+ echo " HOSTDNS: $hoip "
+ /sbin/ifconfig -a |grep "inet addr"
+ else
+ echo "IP in DNS but doesn't match mine, hostname is not safe to use"
+ echo "DNS:$hoip"
+ echo "HOST: "
+ /sbin/ifconfig -a |grep "inet addr"
+ status=7
+ fi
+ fi
+ else
+ echo "Couldn't find hostname in DNS, must be safe to use"
+ status=0
+ fi
+ exit $status
+ ;;
+
+ esac
+ exit 0
+ ;;
+
+
+ * )
if [ -f /tmp/.install_state ]
then
state=`cat /tmp/.install_state`
@@ -179,7 +709,7 @@ case $1 in
if [ -f /tmp/.startsize.io ]
then
- . /tmp/.startsize.io
+ . /tmp/.startsize.io
#finding the drive
ddrive=`df | grep $mountpoint | head -n1 | awk -F/ ' { print $3 } ' | cut -d" " -f 1|cut -b1,2,3 `
used=`statgrab -M disk.|grep ${ddrive}.write_bytes|cut -d= -f 2|tr -d " "`
@@ -201,11 +731,7 @@ case $1 in
cond2=$(echo "$percent > 98" |bc )
if [ $cond2 -eq 1 ]
then
- percent=98
- fi
- if [ x"${state}" = "xDone" ]
- then
- percent=100
+ percent=98
fi
cond3=$(echo "$percent < 3" |bc )
if [ $cond3 -eq 0 ]
@@ -214,7 +740,7 @@ case $1 in
fi
fi
fi
- ;;
+ ;;
esac
diff --git a/abs/core-testing/LinHES-config/ir_config.sh b/abs/core-testing/LinHES-config/ir_config.sh
index 69d8406..28134e2 100644
--- a/abs/core-testing/LinHES-config/ir_config.sh
+++ b/abs/core-testing/LinHES-config/ir_config.sh
@@ -2,8 +2,7 @@ function include_lirc () {
config_file=$1
include_file=$2
grep -q ${include_file} ${config_file}
- if [ $? = 0 ]
- then
+ if [ "$?" == "0" ]; then
echo ${include_file} already present
else
echo "include \"${include_file}\"" >> $config_file
@@ -39,8 +38,7 @@ function setup_ir_remote {
#make backup copy
mv ${BASE}/etc/lircd.conf ${BASE}/etc/lircd.conf.`date +%Y-%m-%d-%H-%M`
mv ${BASE}/etc/lircrc ${BASE}/etc/lircrc.`date +%Y-%m-%d-%H-%M`
- if [ $HostBlasterType = pvr150 ]
- then
+ if [ "$HostBlasterType" == "pvr150" ]; then
Remotetype=hauppauge-blaster
fi
@@ -58,18 +56,15 @@ function setup_ir_remote {
chmod 755 /etc/lircrc
daemon_add="lircd $daemon_add"
#standard location for mythtv lircrc
- if [ ! -e /home/mythtv/.mythtv/lircrc ]
- then
- if [ ! -d /home/mythtv/.mythtv ]
- then
+ if [ ! -e /home/mythtv/.mythtv/lircrc ]; then
+ if [ ! -d /home/mythtv/.mythtv ]; then
mkdir /home/mythtv/.mythtv
chown mythtv:mythtv /home/mythtv/.mythtv
fi
ln -s /etc/lircrc /home/mythtv/.mythtv/lircrc 2> /dev/null
fi
#standard location for lircrc
- if [ ! -e /home/mythtv/.lircrc ]
- then
+ if [ ! -e /home/mythtv/.lircrc ]; then
ln -s /etc/lircrc /home/mythtv/.lircrc 2> /dev/null
fi
# echo "Sending hup to lircd"
@@ -141,16 +136,14 @@ function setup_lcd () {
x) echo "empty lcd" ;;
*) echo "setup lcd"
- if [ -f $TEMPLATES/LCD/$LCDtype/modules ]
- then
+ if [ -f $TEMPLATES/LCD/$LCDtype/modules ]; then
sed -i -e '/.*#LCD/d' ${BASE}/etc/modules.mythvantage
cat $TEMPLATES/LCD/$LCDtype/modules >> ${BASE}/etc/modules.mythvantage
#should also modprobe
fi
- if [ -f $TEMPLATES/LCD/$LCDtype/LCDd.conf ]
- then
+ if [ -f $TEMPLATES/LCD/$LCDtype/LCDd.conf ]; then
cp_and_log $TEMPLATES/LCD/$LCDtype/LCDd.conf /etc
# install="lcdproc $install"
daemon_add="lcdd $daemon_add"
@@ -160,10 +153,8 @@ function setup_lcd () {
fi
#check if lirc capable,if so then call setupremote
#if not in tinker mode check for remote
- if [ ! x$Remotetype = xtinker ]
- then
- if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ]
- then
+ if [ "$Remotetype" != "tinker" ]; then
+ if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ]; then
cd $TEMPLATES/LCD/$LCDtype
for i in lircd*
do
@@ -182,18 +173,15 @@ function setup_lcd () {
}
function setup_blaster_proto () {
- if [ x$HostBlasterType = x ]
- then
+ if [ "$HostBlasterType" == "" ]; then
HostBlasterType = "crap"
fi
- if [ ! $HostBlasterType = pvr150 -a ! $HostBlasterType = None ]
- then
+ if [[ ("$HostBlasterType" != "pvr150") && ("$HostBlasterType" != "None") ]]; then
for i in `seq $Hostnumblaster`
do
TEMP=HostTransmitproto_$i
eval proto=\$${TEMP}
- if [ -f $TEMPLATES/transmit/${proto}/lircd.conf ]
- then
+ if [ -f $TEMPLATES/transmit/${proto}/lircd.conf ]; then
include_lirc ${BASE}/etc/lircd.conf $TEMPLATES/transmit/${proto}/lircd.conf
fi
done
@@ -207,8 +195,7 @@ function setup_blaster_proto () {
function setup_blaster_transmiter () {
echo "setup_blaster_transmiter"
#if it's Reciever type, then these modules have already been loaded.
- if [ ! x$HostBlasterType = xReceiver ]
- then
+ if [ "$HostBlasterType" != "Receiver" ]; then
case $HostBlasterType in
None) echo "no blaster"
sed -i -e '/.*#blaster/d' ${BASE}/etc/modules.mythvantage
@@ -235,8 +222,7 @@ function setup_blaster_transmiter () {
}
function setupir () {
- if [ ! x$Remotetype = xtinker ]
- then
+ if [ "$Remotetype" != "tinker" ]; then
setup_ir_remote
setup_ir_receiver
unload_all_lirc
diff --git a/abs/core-testing/aumix/PKGBUILD b/abs/core-testing/aumix/PKGBUILD
index 560427f..09b525a 100644
--- a/abs/core-testing/aumix/PKGBUILD
+++ b/abs/core-testing/aumix/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=aumix
pkgver=2.8
-pkgrel=3
+pkgrel=4
pkgdesc="A color text mode sound mixer with GPM support"
arch=('i686' 'x86_64')
license=('GPL')
diff --git a/abs/core-testing/avahi/PKGBUILD b/abs/core-testing/avahi/PKGBUILD
index e068e17..c448d16 100644
--- a/abs/core-testing/avahi/PKGBUILD
+++ b/abs/core-testing/avahi/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=avahi
pkgver=0.6.24
-pkgrel=1
+pkgrel=2
pkgdesc="A multicast/unicast DNS-SD framework"
arch=('i686' 'x86_64')
url="http://www.avahi.org/"
diff --git a/abs/core-testing/cdrkit/PKGBUILD b/abs/core-testing/cdrkit/PKGBUILD
index 1f8bfa8..6de7150 100644
--- a/abs/core-testing/cdrkit/PKGBUILD
+++ b/abs/core-testing/cdrkit/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=cdrkit
pkgver=1.1.8
-pkgrel=1
+pkgrel=2
pkgdesc="Suite of programs for CD/DVD recording, ISO image creation, and audio CD extraction"
arch=('i686' 'x86_64')
url="http://cdrkit.org/"
diff --git a/abs/core-testing/fbsplash/PKGBUILD b/abs/core-testing/fbsplash/PKGBUILD
index 92a59ea..5d42484 100644
--- a/abs/core-testing/fbsplash/PKGBUILD
+++ b/abs/core-testing/fbsplash/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=fbsplash
pkgver=1.5.4.3
-pkgrel=13
+pkgrel=14
pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
arch=('i686' 'x86_64')
url="http://fbsplash.berlios.de"
diff --git a/abs/core-testing/fbsplash/darch.tar.bz2 b/abs/core-testing/fbsplash/darch.tar.bz2
new file mode 100644
index 0000000..0faab98
--- /dev/null
+++ b/abs/core-testing/fbsplash/darch.tar.bz2
Binary files differ
diff --git a/abs/core-testing/fbsplash/fbsplash.inithooks b/abs/core-testing/fbsplash/fbsplash.inithooks
index 0e8c60c..c396b92 100644
--- a/abs/core-testing/fbsplash/fbsplash.inithooks
+++ b/abs/core-testing/fbsplash/fbsplash.inithooks
@@ -28,14 +28,14 @@ stat_busy() {
# 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
+ 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
+ if [ "${SPLASH_RC_SHUTDOWN}" == "1" ]; then
save_shutdown_steps
fi
@@ -57,7 +57,7 @@ start_daemon() {
}
# rc.sysinit #
-if [ $CALLER == '/etc/rc.sysinit' ]; then
+if [ "$CALLER" == '/etc/rc.sysinit' ]; then
# echo "fbsplash: Setting up splash..."
splash_cache_prep
SPLASH_MAX_STEPS=$(load_boot_steps)
@@ -69,14 +69,14 @@ if [ $CALLER == '/etc/rc.sysinit' ]; then
fi
# rc.multi #
-if [ $CALLER == '/etc/rc.multi' ]; then
+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
+if [ "$CALLER" == '/etc/rc.shutdown' ]; then
# echo "fbsplash: Setting up splash..."
splash_cache_prep
SPLASH_MAX_STEPS=$(load_shutdown_steps)
diff --git a/abs/core-testing/libcap/PKGBUILD b/abs/core-testing/libcap/PKGBUILD
index 8d09b19..a80dccf 100644
--- a/abs/core-testing/libcap/PKGBUILD
+++ b/abs/core-testing/libcap/PKGBUILD
@@ -1,20 +1,22 @@
-#$Id: PKGBUILD 8870 2008-08-16 22:39:56Z eric $
-# Maintainer: Arjan Timmerman <arjan@archlinux.org>
+#$Id: PKGBUILD 29964 2009-03-15 02:32:04Z hugo $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
pkgname=libcap
-pkgver=1.10
-pkgrel=2
+pkgver=2.16
+pkgrel=3
pkgdesc="POSIX 1003.1e capabilities"
-arch=(i686 x86_64)
+arch=('i686' 'x86_64')
url="http://www.kernel.org/pub/linux/libs/security/linux-privs/"
-license="GPL"
+license=('GPL')
depends=('glibc')
-source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/${pkgname}-${pkgver}.tar.gz
- libcap-1.10-debian.patch)
-md5sums=('2c09eea823f67cfdde96177a959bc39b' 'ba642c86c4072917fcff77ec31411194')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9e075fda242c4070ba76407064c13302')
build() {
- cd ${startdir}/src/${pkgname}-${pkgver}
- patch -Np1 -i ${startdir}/src/libcap-1.10-debian.patch || return 1
- make prefix=/usr DESTDIR=${startdir}/pkg install
- rmdir ${startdir}/pkg/usr/share/man/man2
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i -e "s|LIBDIR=\$(FAKEROOT)\$(lib_prefix)/\$(lib)|LIBDIR=\$(FAKEROOT)/\$(lib)|g" Make.Rules || return 1
+ make prefix=/usr DESTDIR=${pkgdir} install
+
+ rm ${pkgdir}/lib/*.a || return 1
+ chmod 755 ${pkgdir}/lib/libcap.so.* || return 1
}
diff --git a/abs/core-testing/local-website/PKGBUILD b/abs/core-testing/local-website/PKGBUILD
index e02a757..6ce813c 100644
--- a/abs/core-testing/local-website/PKGBUILD
+++ b/abs/core-testing/local-website/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=local-website
pkgver=2
-pkgrel=6
+pkgrel=7
pkgdesc="Contents of http://localhost"
arch=(i686 x86_64)
license=('GPL')
diff --git a/abs/core-testing/local-website/htdocs/fuppes.php b/abs/core-testing/local-website/htdocs/fuppes.php
new file mode 100644
index 0000000..f082f31
--- /dev/null
+++ b/abs/core-testing/local-website/htdocs/fuppes.php
@@ -0,0 +1,4 @@
+<?php
+$HTTP_HOST = getenv('HTTP_HOST');
+header("Location: http://$HTTP_HOST:81/");
+?>
diff --git a/abs/core-testing/local-website/htdocs/index.html b/abs/core-testing/local-website/htdocs/index.html
index 661f673..14d5c22 100644
--- a/abs/core-testing/local-website/htdocs/index.html
+++ b/abs/core-testing/local-website/htdocs/index.html
@@ -1,22 +1,39 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
+
+
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+
+
<meta content="Cecil Watson" name="author">
+
+
+
+
<title>LinHES R6</title>
<link href="KnoppMyth.css" rel="stylesheet" type="text/css">
</head>
+
+
<body>
<p align="center"><a href="http://www.mysettopbox.tv">
<img src="header.png" alt="Tux with a Remote" align="middle" border="0"></a>
</p>
+
+
+
<table align="center" border="0" cellpadding="5">
<tbody>
+
<tr>
+
<td style="vertical-align: top;">
+
<p class="headerimage" align="center"><b>The Linux Home Entertainment System Release 6</b></p>
+
<p><a href="mythweb/mythweb.php"><b>MythWeb</b></a>: <br>
&nbsp; &nbsp; The MythWeb allows you to use a web page to control
@@ -24,6 +41,7 @@
but it is dependent upon MythTV being installed and operational."
</p>
+
<p><a href="remote/index.html"><b>MythTV Web Virtual Remote</b></a>: <br>
&nbsp; &nbsp; A web based virtual remote control for MythTV.
@@ -32,32 +50,38 @@
<b>Utilities/Setup -&gt; Setup -&gt; General -&gt; Fourth Page</b>.
</p>
+
<p><a href="mythtv-doc/mythtv-HOWTO.html"><b>MythTV Documentation</b></a>: <br>
&nbsp; &nbsp; The MythTV Installation / User's Guide.
</p>
+
<p><a href="mythtv-doc/keys.txt"><b>MythTV Keybindings</b></a>: <br>
&nbsp; &nbsp; The keybindings for the normal MythTV interface.
</p>
+
<p><a href="linhes.html"><b>LinHES</b></a>: <br>
&nbsp; &nbsp; Describes how "The Project Leader" setup multiple systems
to form a <b>Lin</b>ux <b>H</b>ome <b>E</b>ntertainment <b>S</b>ystem.
</p>
+
<p><a href="folding@home/"><b>My Folding Status</b></a>: <br>
&nbsp; &nbsp; Status of the folding@home work for the local user.
</p>
+
<p><a href="http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&amp;teamnum=50975"><b>Folding@home</b></a>: <br>
&nbsp; &nbsp; KnoppMyth Team status for the folding@home effort.
</p>
+
<p><a href="ipodfeed/"><b>iPod Feeds</b></a> <br>
&nbsp; &nbsp; Transcodes ready for the ipod (if any).</p>
@@ -67,62 +91,27 @@
&nbsp;&nbsp;&nbsp; FUPPES - Free UPnP Entertainment Service. &nbsp;A
UPnP to be used inplace of the UPnP server that comes with MythTV.
&nbsp;If the UPnP that comes with MythTV doesn't work for you, you can
-try FUPPES. &nbsp;Edit <i>/etc/sv/mythtvbackend/run</i>, and add "<i>--noupnp</i>"
-to the command line for <i>/usr/bin/mythbackend</i>. &nbsp;Then restart the
-backend and start FUPPES.</p>
- <p style="font-weight: bold;">sv restart mythtvbackend fuppes</p>
- <p>If you want FUPPES to start on boot add a link to the
- <i>/etc/sv/fuppes</i> directory under <i>/var/service</i>.</p>
- <p><b>ln -s /etc/sv/fuppes /var/service</b></p>
- <p></p>
-
- <p><a href="motion/index.html"><b>Motion</b></a>: <br>
-
- &nbsp; &nbsp; Motion is a software motion detector. The configuration file for
- motion is <i>/etc/motion/motion.conf</i>. All you should have to do is edit
- "videodevice" to point to your webcam or capture device. You'll also
- need to change the IP in <i>/var/www/motion/index.html</i> to the IP of your
- backend.
- <br><br>
-
- &nbsp; &nbsp; As root: <b>sv start motion</b> will start motion.
- To have it start automatically add a link to the
- <i>/etc/sv/motion</i> directory under <i>/var/service</i>.</p>
- <p><b>ln -s /etc/sv/motion /var/service</b></p>
- <p>Images and video are stored in <i>/myth/motion</i>.
- Symlinks to <i>/myth/gallery</i> and <i>/myth/video</i> exist.
- <br><br>
-
- For further detail on configuring Motion, please read the
- <a href="http://www.lavrsen.dk/twiki/bin/view/Motion/MotionGuide">Motion Guide</a>.
-
- </p>
-
+try FUPPES.
+
<p><a href="rrd/index.html"><b>RRDTool</b></a>: <br>
&nbsp; &nbsp; Hardware status graphs.
</p>
- <p><a href="vlc_control.php"><b>VLC HTTP Interface</b></a>: <br>
-
- &nbsp; &nbsp; Web interface for VideoLan Client.
- </p>
-
- <b>Tip:</b>
- &nbsp;If you seem to be stuck in a
- loop when trying to select a video to stream from MythWeb
- (MythStreamTV), go back to the main
- <a href="mythweb/">MythWeb</a> page and select &nbsp;"StreamTV" again.
-
+
<p><a href="javascript:void(0)"onclick="window.open('mythweb/data/mp3player.html','linkname','height=100, width=260,scrollbars=no')"><b>KnoppMyth Radio</b></a>: <br>
&nbsp; &nbsp; Your music must be encoded as MP3 in MythMusic for this to work.</p>
+
</td>
+
</tr>
+
<tr>
<td style="vertical-align: top;"></td>
</tr>
</tbody>
+
</table>
</body>
diff --git a/abs/core-testing/mplayer/PKGBUILD b/abs/core-testing/mplayer/PKGBUILD
index a952464..09389a3 100644
--- a/abs/core-testing/mplayer/PKGBUILD
+++ b/abs/core-testing/mplayer/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mplayer
pkgver=29134
-pkgrel=11
+pkgrel=12
pkgdesc="Famous multimedia player, dev. version, without its GUI"
arch=('i686' 'x86_64')
url="http://www.mplayerhq.hu/"
diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
index 768eba0..e601ae9 100644
--- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mythweb
pkgver=0.21
-pkgrel=13
+pkgrel=15
pkgdesc="Web interface for MythTV's backend"
arch=('i686' 'x86_64')
url="http://www.mythtv.org"
@@ -23,14 +23,15 @@ build() {
# tar -zxvf $startdir/patch/icons.tar.gz
###
+ # Workaround for LIGHTTPD bug in mythweb.pl (affects DB queries)
+ cd $startdir/src/mythplugins/$pkgname/
+ patch -p0 < $startdir/patch/mythweb.pl.diff
+
cp -r $startdir/src/mythplugins/$pkgname/* $startdir/pkg/$DOCROOT
# cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/$DOCROOT
rm $startdir/pkg/srv/$DOCROOT/README
chown -R http:users $startdir/pkg/$DOCROOT
chmod g+rw $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data}
-
-
-
}
diff --git a/abs/core-testing/mythtv/stable/mythweb/patch/mythweb.pl.diff b/abs/core-testing/mythtv/stable/mythweb/patch/mythweb.pl.diff
new file mode 100644
index 0000000..6dcbf99
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythweb/patch/mythweb.pl.diff
@@ -0,0 +1,23 @@
+*** mythweb-unpatched.pl 2009-06-02 14:55:24.011861459 -0400
+--- mythweb.pl 2009-06-02 14:56:24.386441304 -0400
+***************
+*** 49,57 ****
+
+ # Connect to the database
+ END { $dbh->disconnect() if ($dbh); }
+! our $dbh = DBI->connect("dbi:mysql:database=$ENV{'db_name'}:host=$ENV{'db_server'}",
+! $ENV{'db_login'},
+! $ENV{'db_password'});
+ unless ($dbh) {
+ print header(),
+ "Cannot connect to database: $!\n\n";
+--- 49,57 ----
+
+ # Connect to the database
+ END { $dbh->disconnect() if ($dbh); }
+! our $dbh = DBI->connect("dbi:mysql:database=$ENV{'DB_NAME'}:host=$ENV{'DB_SERVER'}",
+! $ENV{'DB_LOGIN'},
+! $ENV{'DB_PASSWORD'});
+ unless ($dbh) {
+ print header(),
+ "Cannot connect to database: $!\n\n";
diff --git a/abs/core-testing/nvidia-71xx-utils/PKGBUILD b/abs/core-testing/nvidia-71xx-utils/PKGBUILD
new file mode 100644
index 0000000..9522ff8
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx-utils/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 5949 2008-07-21 20:32:38Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: James Rayner <iphitus@gmail.com>
+
+pkgname=nvidia-71xx-utils
+pkgver=71.86.09
+pkgrel=1
+pkgdesc="NVIDIA legacy drivers utilities and libraries, 71xx branch."
+arch=(i686 x86_64)
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('xorg-server')
+conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-utils' \
+ 'nvidia-96xx-utils' 'nvidia-legacy-utils')
+replaces=('nvidia-legacy-utils')
+provides=('libgl')
+license=('custom')
+install=nvidia-71xx.install
+source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \
+ supported-cards.txt)
+options=(docs !strip)
+md5sums=('51ce70e2ba967a2bad1cf01ce25c7f76'
+ '6363d7e494d33729609540088e33e73f')
+[ "$CARCH" = "x86_64" ] && md5sums=('205599549ddd6fadecfbc1adb090dfe2'
+ '6363d7e494d33729609540088e33e73f')
+
+build()
+{
+ # override nvida install routine and do it the long way.
+ cd $startdir/src/
+ sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/
+
+ mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps}
+ mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers}
+ mkdir -p $startdir/pkg/usr/share/licenses/nvidia-71xx/
+
+ install lib/{libGLcore.so.${pkgver},libGL.so.${pkgver},tls/libnvidia-tls.so.${pkgver}} \
+ $startdir/pkg/usr/lib/ || return 1
+ install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1
+ install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1
+ # fix nvidia .desktop file
+ sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $startdir/pkg/usr/share/applications/nvidia-settings.desktop
+ install -m644 share/pixmaps/nvidia-settings.png $startdir/pkg/usr/share/pixmaps/ || return 1
+ install X11R6/lib/modules/drivers/nvidia_drv.so $startdir/pkg/usr/lib/xorg/modules/drivers || return 1
+ install X11R6/lib/modules/extensions/libglx.so.$pkgver $startdir/pkg/usr/lib/xorg/modules/extensions || return 1
+ install -m755 bin/nvidia-{settings,bug-report.sh} $startdir/pkg/usr/bin/ || return 1
+ cd $startdir/pkg/usr/lib/
+ ln -s /usr/lib/libGL.so.$pkgver libGL.so || return 1
+ ln -s /usr/lib/libGL.so.$pkgver libGL.so.1 || return 1
+ ln -s /usr/lib/libGLcore.so.$pkgver libGLcore.so.1 || return 1
+ ln -s /usr/lib/libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1
+ cd $startdir/pkg/usr/lib/xorg/modules/extensions
+ ln -s /usr/lib/xorg/modules/extensions/libglx.so.$pkgver libglx.so || return 1
+
+ install -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $startdir/pkg/usr/share/licenses/nvidia-71xx/ || return 1
+ install -D -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README $startdir/pkg/usr/share/doc/nvidia/README || return 1
+ install -D -m644 $startdir/src/supported-cards.txt $startdir/pkg/usr/share/doc/nvidia/supported-cards.txt || return 1
+
+ find $startdir/pkg/usr -type d -exec chmod 755 {} \;
+ # phew :)
+}
diff --git a/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install b/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install
new file mode 100644
index 0000000..cea8f32
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install
@@ -0,0 +1,29 @@
+# arg 1: the new package version
+post_install() {
+
+ echo -------------------------------
+ echo By using this package you accept the NVIDIA license,
+ echo which has been installed in /usr/share/licenses/nvidia-71xx/LICENSE
+ echo If you do not accept this license, you must remove the package immediately.
+ echo Dont forget to update your /etc/X11/xorg.conf
+ echo In order to use nvidia-settings, you need to install 'gtk2' package.
+ echo -------------------------------
+
+ ### removing outdated workaround
+ if grep 'create-nvidia-nodes.sh' /etc/modprobe.conf >/dev/null 2>&1; then
+ cat /etc/modprobe.conf | grep -v 'create-nvidia-nodes.sh' \
+ >/tmp/.pacnvidia
+ mv /tmp/.pacnvidia /etc/modprobe.conf
+ chmod 644 etc/modprobe.conf
+ fi
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/nvidia-71xx-utils/supported-cards.txt b/abs/core-testing/nvidia-71xx-utils/supported-cards.txt
new file mode 100644
index 0000000..d4f26ea
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx-utils/supported-cards.txt
@@ -0,0 +1,236 @@
+Archlinux currently manages three branches of the NVIDIA binary driver:
+
+nvidia (latest nvidia release)
+nvidia-96xx (96xx legacy branch)
+nvidia-71xx (71xx legacy branch)
+
+This excerpt from the NVIDIA 1.0.9746 README lists the supported devices
+for each of those:
+
+______________________________________________________________________________
+
+Appendix A. Supported NVIDIA Graphics Chips
+______________________________________________________________________________
+
+For the most complete and accurate listing of supported GPUs, please see the
+Supported Products List, available from the NVIDIA Linux x86 Graphics Driver
+download page. Please go to http://www.nvidia.com/object/unix.html, follow the
+Archive link under the Linux x86 heading, follow the link for the 1.0-9746
+driver, and then go to the Supported Products List.
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ GeForce 6800 Ultra 0x0040
+ GeForce 6800 0x0041
+ GeForce 6800 XE 0x0043
+ GeForce 6800 XT 0x0044
+ GeForce 6800 GT 0x0045
+ GeForce 6800 GT 0x0046
+ GeForce 6800 GS 0x0047
+ GeForce 6800 XT 0x0048
+ Quadro FX 4000 0x004E
+ GeForce 7800 GTX 0x0090
+ GeForce 7800 GTX 0x0091
+ GeForce 7800 GT 0x0092
+ GeForce 7800 GS 0x0093
+ GeForce Go 7800 0x0098
+ GeForce Go 7800 GTX 0x0099
+ Quadro FX 4500 0x009D
+ GeForce 6800 GS 0x00C0
+ GeForce 6800 0x00C1
+ GeForce 6800 LE 0x00C2
+ GeForce 6800 XT 0x00C3
+ GeForce Go 6800 0x00C8
+ GeForce Go 6800 Ultra 0x00C9
+ Quadro FX Go1400 0x00CC
+ Quadro FX 3450/4000 SDI 0x00CD
+ Quadro FX 1400 0x00CE
+ GeForce 6800 Ultra/GeForce 6800 0x00F0
+ GeForce 6600 GT 0x00F1
+ GeForce 6600 0x00F2
+ GeForce 6200 0x00F3
+ GeForce 6600 LE 0x00F4
+ GeForce 7800 GS 0x00F5
+ GeForce 6800 GS 0x00F6
+ Quadro FX 3400/4400 0x00F8
+ GeForce 6800 Ultra 0x00F9
+ GeForce PCX 5750 0x00FA
+ GeForce PCX 5900 0x00FB
+ GeForce PCX 5300/Quadro FX 330 0x00FC
+ Quadro NVS 280 PCI-E/Quadro FX 330 0x00FD
+ Quadro FX 1300 0x00FE
+ GeForce PCX 4300 0x00FF
+ GeForce 6600 GT 0x0140
+ GeForce 6600 0x0141
+ GeForce 6600 LE 0x0142
+ GeForce 6600 VE 0x0143
+ GeForce Go 6600 0x0144
+ GeForce 6610 XL 0x0145
+ GeForce Go 6600 TE/6200 TE 0x0146
+ GeForce 6700 XL 0x0147
+ GeForce Go 6600 0x0148
+ GeForce Go 6600 GT 0x0149
+ Quadro NVS 440 0x014A
+ Quadro FX 550 0x014C
+ Quadro FX 540 0x014E
+ GeForce 6200 0x014F
+ GeForce 6500 0x0160
+ GeForce 6200 TurboCache(TM) 0x0161
+ GeForce 6200 LE 0x0163
+ GeForce Go 6200 0x0164
+ Quadro NVS 285 0x0165
+ GeForce Go 6400 0x0166
+ GeForce Go 6200 0x0167
+ GeForce Go 6400 0x0168
+ GeForce 8800 GTX 0x0191
+ GeForce 8800 GTS 0x0193
+ GeForce 7300 LE 0x01D1
+ GeForce 7300 SE 0x01D3
+ Quadro NVS 110M/GeForce Go 7300 0x01D7
+ GeForce Go 7400 0x01D8
+ Quadro NVS 110M 0x01DA
+ Quadro NVS 120M 0x01DB
+ Quadro FX 350M 0x01DC
+ Quadro FX 350 0x01DE
+ GeForce 7300 GS 0x01DF
+ GeForce 6800 0x0211
+ GeForce 6800 LE 0x0212
+ GeForce 6800 GT 0x0215
+ GeForce 6800 XT 0x0218
+ GeForce 6200 0x0221
+ GeForce 6150 0x0240
+ GeForce 6150 LE 0x0241
+ GeForce 6100 0x0242
+ GeForce Go 6100 0x0247
+ GeForce 7900 GTX 0x0290
+ GeForce 7900 GT/GTO 0x0291
+ GeForce 7900 GS 0x0292
+ GeForce 7950 GX2 0x0294
+ GeForce Go 7900 GS 0x0298
+ GeForce Go 7900 GTX 0x0299
+ Quadro FX 2500M 0x029A
+ Quadro FX 1500M 0x029B
+ Quadro FX 5500 0x029C
+ Quadro FX 3500M 0x029D
+ Quadro FX 1500 0x029E
+ Quadro FX 4500 X2 0x029F
+ GeForce 7600 GS 0x02E1
+ GeForce FX 5800 Ultra 0x0301
+ GeForce FX 5800 0x0302
+ Quadro FX 2000 0x0308
+ Quadro FX 1000 0x0309
+ GeForce FX 5600 Ultra 0x0311
+ GeForce FX 5600 0x0312
+ GeForce FX 5600XT 0x0314
+ GeForce FX Go5600 0x031A
+ GeForce FX Go5650 0x031B
+ Quadro FX Go700 0x031C
+ GeForce FX 5200 0x0320
+ GeForce FX 5200 Ultra 0x0321
+ GeForce FX 5200 0x0322
+ GeForce FX 5200LE 0x0323
+ GeForce FX Go5200 0x0324
+ GeForce FX Go5250 0x0325
+ GeForce FX 5500 0x0326
+ GeForce FX 5100 0x0327
+ GeForce FX Go5200 32M/64M 0x0328
+ Quadro NVS 55/280 PCI 0x032A
+ Quadro FX 500/FX 600 0x032B
+ GeForce FX Go53xx 0x032C
+ GeForce FX Go5100 0x032D
+ GeForce FX 5900 Ultra 0x0330
+ GeForce FX 5900 0x0331
+ GeForce FX 5900XT 0x0332
+ GeForce FX 5950 Ultra 0x0333
+ GeForce FX 5900ZT 0x0334
+ Quadro FX 3000 0x0338
+ Quadro FX 700 0x033F
+ GeForce FX 5700 Ultra 0x0341
+ GeForce FX 5700 0x0342
+ GeForce FX 5700LE 0x0343
+ GeForce FX 5700VE 0x0344
+ GeForce FX Go5700 0x0347
+ GeForce FX Go5700 0x0348
+ Quadro FX Go1000 0x034C
+ Quadro FX 1100 0x034E
+ GeForce 7600 GT 0x0391
+ GeForce 7600 GS 0x0392
+ GeForce 7300 GT 0x0393
+ GeForce Go 7600 0x0398
+ Quadro FX 560 0x039E
+
+
+Below are the legacy GPUs that are no longer supported in the unified driver.
+These GPUs will continue to be maintained through the special legacy NVIDIA
+GPU driver releases.
+
+The 1.0-96xx driver supports the following set of GPUs:
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ GeForce2 MX/MX 400 0x0110
+ GeForce2 MX 100/200 0x0111
+ GeForce2 Go 0x0112
+ Quadro2 MXR/EX/Go 0x0113
+ GeForce4 MX 460 0x0170
+ GeForce4 MX 440 0x0171
+ GeForce4 MX 420 0x0172
+ GeForce4 MX 440-SE 0x0173
+ GeForce4 440 Go 0x0174
+ GeForce4 420 Go 0x0175
+ GeForce4 420 Go 32M 0x0176
+ GeForce4 460 Go 0x0177
+ Quadro4 550 XGL 0x0178
+ GeForce4 440 Go 64M 0x0179
+ Quadro NVS 0x017A
+ Quadro4 500 GoGL 0x017C
+ GeForce4 410 Go 16M 0x017D
+ GeForce4 MX 440 with AGP8X 0x0181
+ GeForce4 MX 440SE with AGP8X 0x0182
+ GeForce4 MX 420 with AGP8X 0x0183
+ GeForce4 MX 4000 0x0185
+ Quadro4 580 XGL 0x0188
+ Quadro NVS 280 SD 0x018A
+ Quadro4 380 XGL 0x018B
+ Quadro NVS 50 PCI 0x018C
+ GeForce2 Integrated GPU 0x01A0
+ GeForce4 MX Integrated GPU 0x01F0
+ GeForce3 0x0200
+ GeForce3 Ti 200 0x0201
+ GeForce3 Ti 500 0x0202
+ Quadro DCC 0x0203
+ GeForce4 Ti 4600 0x0250
+ GeForce4 Ti 4400 0x0251
+ GeForce4 Ti 4200 0x0253
+ Quadro4 900 XGL 0x0258
+ Quadro4 750 XGL 0x0259
+ Quadro4 700 XGL 0x025B
+ GeForce4 Ti 4800 0x0280
+ GeForce4 Ti 4200 with AGP8X 0x0281
+ GeForce4 Ti 4800 SE 0x0282
+ GeForce4 4200 Go 0x0286
+ Quadro4 980 XGL 0x0288
+ Quadro4 780 XGL 0x0289
+ Quadro4 700 GoGL 0x028C
+
+
+The 1.0-71xx driver supports the following set of GPUs:
+
+
+ NVIDIA chip name Device PCI ID
+ ---------------------------------- ----------------------------------
+ RIVA TNT 0x0020
+ RIVA TNT2/TNT2 Pro 0x0028
+ RIVA TNT2 Ultra 0x0029
+ Vanta/Vanta LT 0x002C
+ RIVA TNT2 Model 64/Model 64 Pro 0x002D
+ Aladdin TNT2 0x00A0
+ GeForce 256 0x0100
+ GeForce DDR 0x0101
+ Quadro 0x0103
+ GeForce2 GTS/GeForce2 Pro 0x0150
+ GeForce2 Ti 0x0151
+ GeForce2 Ultra 0x0152
+ Quadro2 Pro 0x0153
diff --git a/abs/core-testing/nvidia-71xx/NVIDIA_kernel-96.43.05-2290218.diff.txt b/abs/core-testing/nvidia-71xx/NVIDIA_kernel-96.43.05-2290218.diff.txt
new file mode 100644
index 0000000..0dfcfd5
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/NVIDIA_kernel-96.43.05-2290218.diff.txt
@@ -0,0 +1,1471 @@
+diff -ru usr/src/nv/Makefile.kbuild usr/src/nv.2305230/Makefile.kbuild
+--- usr/src/nv/Makefile.kbuild 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/Makefile.kbuild 2008-03-18 12:55:25.461856977 -0700
+@@ -176,6 +176,7 @@
+ vmap \
+ signal_struct \
+ agp_backend_acquire \
++ set_pages_uc \
+ change_page_attr \
+ pci_get_class \
+ sysctl_max_map_count \
+diff -ru usr/src/nv/conftest.sh usr/src/nv.2305230/conftest.sh
+--- usr/src/nv/conftest.sh 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/conftest.sh 2008-03-18 12:55:28.782046180 -0700
+@@ -100,6 +100,32 @@
+ fi
+ ;;
+
++ set_pages_uc)
++ #
++ # Determine if the set_pages_uc() function is present.
++ #
++ echo "#include <linux/autoconf.h>
++ #include <asm/cacheflush.h>
++ void conftest_set_pages_uc(void) {
++ set_pages_uc();
++ }" > conftest$$.c
++
++ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
++ rm -f conftest$$.c
++
++ if [ -f conftest$$.o ]; then
++ rm -f conftest$$.o
++ echo "#undef NV_SET_PAGES_UC_PRESENT" >> conftest.h
++ return
++ else
++ echo "#ifdef NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h
++ echo "#undef NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h
++ echo "#endif" >> conftest.h
++ echo "#define NV_SET_PAGES_UC_PRESENT" >> conftest.h
++ return
++ fi
++ ;;
++
+ change_page_attr)
+ #
+ # Determine if the change_page_attr() function is
+@@ -124,7 +150,9 @@
+ rm -f conftest$$.o
+ return
+ else
++ echo "#ifndef NV_SET_PAGES_UC_PRESENT" >> conftest.h
+ echo "#define NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h
++ echo "#endif" >> conftest.h
+ return
+ fi
+ ;;
+@@ -501,6 +529,8 @@
+ return
+ fi
+
++ rm -f conftest$$.o
++
+ echo "#include <linux/autoconf.h>
+ #include <linux/interrupt.h>
+ irq_handler_t conftest_isr;
+diff -ru usr/src/nv/nv-linux.h usr/src/nv.2305230/nv-linux.h
+--- usr/src/nv/nv-linux.h 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/nv-linux.h 2008-03-18 12:57:26.340745475 -0700
+@@ -19,8 +19,8 @@
+ #include <linux/utsname.h>
+
+
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+-# error This driver does not support pre-2.4 kernels!
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 7)
++# error This driver does not support 2.4 kernels older than 2.4.7!
+ #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+ # define KERNEL_2_4
+ #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+@@ -51,6 +51,10 @@
+ #include <linux/modversions.h>
+ #endif
+
++#if defined(KERNEL_2_4) && !defined(EXPORT_SYMTAB)
++#define EXPORT_SYMTAB
++#endif
++
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+
+@@ -98,6 +102,7 @@
+
+ #include <linux/spinlock.h>
+ #include <asm/semaphore.h>
++#include <linux/completion.h>
+ #include <linux/highmem.h>
+
+ #ifdef CONFIG_PROC_FS
+@@ -118,8 +123,12 @@
+ #endif
+
+ #if defined(CONFIG_KGDB)
++#if defined(NV_OLD_MM_KGDB_BREAKPOINT_PRESENT)
++#include <asm/kgdb.h>
++#else
+ #include <linux/kgdb.h>
+ #endif
++#endif
+
+ #if defined (CONFIG_AGP) || defined (CONFIG_AGP_MODULE)
+ #define AGPGART
+@@ -516,19 +525,16 @@
+ #define NV_KMEM_CACHE_ALLOC(ptr, kmem_cache, type) \
+ { \
+ (ptr) = kmem_cache_alloc(kmem_cache, GFP_KERNEL); \
+- KM_ALLOC_RECORD(ptr, sizeof(type), "km_cache_alloc"); \
+ }
+
+ #define NV_KMEM_CACHE_FREE(ptr, type, kmem_cache) \
+ { \
+- KM_FREE_RECORD(ptr, sizeof(type), "km_cache_free"); \
+ kmem_cache_free(kmem_cache, ptr); \
+ }
+
+-#if defined(NV_SG_MAP_BUFFERS) /* Linux/x86-64, only */
+ #if defined(NV_VMAP_PRESENT)
+ #if (NV_VMAP_ARGUMENT_COUNT == 2)
+-#define NV_VMAP(ptr, pages, count, cached) \
++#define NV_VMAP_KERNEL(ptr, pages, count, prot) \
+ { \
+ (ptr) = (unsigned long)vmap(pages, count); \
+ VM_ALLOC_RECORD((void *)ptr, (count) * PAGE_SIZE, "vm_vmap"); \
+@@ -537,26 +543,35 @@
+ #ifndef VM_MAP
+ #define VM_MAP 0
+ #endif
+-#define NV_VMAP(ptr, pages, count, cached) \
++#define NV_VMAP_KERNEL(ptr, pages, count, prot) \
+ { \
+- pgprot_t __prot = (cached) ? PAGE_KERNEL : PAGE_KERNEL_NOCACHE; \
+- (ptr) = (unsigned long)vmap(pages, count, VM_MAP, __prot); \
++ (ptr) = (unsigned long)vmap(pages, count, VM_MAP, prot); \
+ VM_ALLOC_RECORD((void *)ptr, (count) * PAGE_SIZE, "vm_vmap"); \
+ }
+ #else
+ #error "NV_VMAP_ARGUMENT_COUNT value unrecognized!"
+ #endif
+ #else
++#if defined(NV_SG_MAP_BUFFERS)
+ #error "NV_VMAP() undefined (vmap() unavailable)!"
++#endif
+ #endif /* NV_VMAP_PRESENT */
+
+-#define NV_VUNMAP(ptr, count) \
++#define NV_VUNMAP_KERNEL(ptr, count) \
+ { \
+- VM_FREE_RECORD((void *)ptr, (count) * PAGE_SIZE, "vm_vmap"); \
++ VM_FREE_RECORD((void *)ptr, (count) * PAGE_SIZE, "vm_vunmap"); \
+ vunmap((void *)(ptr)); \
+ }
+
+-#endif /* NV_SG_MAP_BUFFERS */
++#define NV_VMAP(addr, pages, count, cached) \
++ { \
++ pgprot_t __prot = (cached) ? PAGE_KERNEL : PAGE_KERNEL_NOCACHE; \
++ void *__ptr = nv_vmap(pages, count, __prot); \
++ (addr) = (unsigned long)__ptr; \
++ }
++
++#define NV_VUNMAP(addr, count) nv_vunmap((void *)addr, count)
++
+
+ #endif /* !defined NVWATCH */
+
+@@ -764,9 +779,10 @@
+
+ #define NV_PGD_OFFSET(address, kernel, mm) \
+ ({ \
++ struct mm_struct *__mm = (mm); \
+ pgd_t *__pgd; \
+ if (!kernel) \
+- __pgd = pgd_offset(mm, address); \
++ __pgd = pgd_offset(__mm, address); \
+ else \
+ __pgd = pgd_offset_k(address); \
+ __pgd; \
+@@ -968,9 +984,7 @@
+ #define NV_ALLOC_TYPE_PCI (1<<0)
+ #define NV_ALLOC_TYPE_AGP (1<<1)
+ #define NV_ALLOC_TYPE_CONTIG (1<<2)
+-#define NV_ALLOC_TYPE_KERNEL (1<<3)
+-#define NV_ALLOC_TYPE_VMALLOC (1<<4)
+-#define NV_ALLOC_TYPE_VMAP (1<<5)
++#define NV_ALLOC_TYPE_VMAP (1<<3)
+
+ #define NV_ALLOC_MAPPING_SHIFT 16
+ #define NV_ALLOC_MAPPING(flags) (((flags)>>NV_ALLOC_MAPPING_SHIFT)&0xff)
+@@ -980,7 +994,6 @@
+
+ #define NV_ALLOC_MAPPING_AGP(flags) ((flags) & NV_ALLOC_TYPE_AGP)
+ #define NV_ALLOC_MAPPING_CONTIG(flags) ((flags) & NV_ALLOC_TYPE_CONTIG)
+-#define NV_ALLOC_MAPPING_VMALLOC(flags) ((flags) & NV_ALLOC_TYPE_VMALLOC)
+ #define NV_ALLOC_MAPPING_VMAP(flags) ((flags) & NV_ALLOC_TYPE_VMAP)
+
+ static inline U032 nv_alloc_init_flags(int cached, int agp, int contig, int kernel)
+@@ -988,12 +1001,7 @@
+ U032 flags = NV_ALLOC_ENC_MAPPING(cached);
+ if (agp) flags |= NV_ALLOC_TYPE_AGP;
+ else flags |= NV_ALLOC_TYPE_PCI;
+- if (kernel) flags |= NV_ALLOC_TYPE_KERNEL;
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (kernel && !contig) flags |= NV_ALLOC_TYPE_VMAP;
+-#else
+- if (kernel && !contig) flags |= NV_ALLOC_TYPE_VMALLOC;
+-#endif
+ if (contig && !agp) flags |= NV_ALLOC_TYPE_CONTIG;
+ return flags;
+ }
+@@ -1067,21 +1075,24 @@
+ #define NV_ATOMIC_DEC_AND_TEST(data) atomic_dec_and_test(&(data))
+ #define NV_ATOMIC_READ(data) atomic_read(&(data))
+
++extern int nv_update_memory_types;
++
+ /*
+- * a BUG() is triggered on early 2.6 x86_64 kernels. the underlying
+- * problem actually exists on many architectures and kernels, but
+- * these are the only kernels that check the condition and trigger
+- * a BUG(). note that this is a problem of the core kernel, not an
+- * nvidia bug (and can still be triggered by agpgart). let's avoid
+- * change_page_attr on those kernels.
++ * Using change_page_attr() on early Linux/x86-64 2.6 kernels may
++ * result in a BUG() being triggered. The underlying problem
++ * actually exists on multiple architectures and kernels, but only
++ * the above check for the condition and trigger a BUG().
++ *
++ * Note that this is a due to a bug in the Linux kernel, not an
++ * NVIDIA driver bug (it can also be triggered by AGPGART).
++ *
++ * We therefore need to determine at runtime if change_page_attr()
++ * can be used safely on these kernels.
+ */
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+-extern int nv_use_cpa;
+-
+-#if defined(NVCPU_X86_64) && !defined(KERNEL_2_4) && \
+- (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11))
+-#define NV_CHANGE_PAGE_ATTR_BUG_PRESENT 1
+-#endif
++#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) && defined(NVCPU_X86_64) && \
++ !defined(KERNEL_2_4) && \
++ (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11))
++#define NV_CHANGE_PAGE_ATTR_BUG_PRESENT
+ #endif
+
+ #if defined(NVCPU_X86) || defined(NVCPU_X86_64)
+@@ -1093,7 +1104,7 @@
+ *
+ * We need to be careful to mask out _PAGE_NX when the host system
+ * doesn't support this feature or when it's disabled: the kernel
+- * may not do this in its implementation of the change_page_attr()
++ * may not do this in its implementation of the change_page_attr()
+ * interface.
+ */
+ #ifndef X86_FEATURE_NX
+diff -ru usr/src/nv/nv-vm.c usr/src/nv.2305230/nv-vm.c
+--- usr/src/nv/nv-vm.c 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/nv-vm.c 2008-03-18 12:55:58.755754293 -0700
+@@ -43,42 +43,40 @@
+ }
+ #endif
+
+-/*
+- * AMD Athlon processors expose a subtle bug in the Linux
+- * kernel, that may lead to AGP memory corruption. Recent
+- * kernel versions had a workaround for this problem, but
+- * 2.4.20 is the first kernel to address it properly. The
+- * page_attr API provides the means to solve the problem.
+- */
+-
+ static inline void nv_set_page_attrib_uncached(nv_pte_t *page_ptr)
+ {
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+- if (nv_use_cpa)
++ if (nv_update_memory_types)
+ {
+- struct page *page = virt_to_page(__va(page_ptr->phys_addr));
++#if defined(NV_SET_PAGES_UC_PRESENT)
++ struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr);
++ set_pages_uc(page, 1);
++#elif defined(NV_CHANGE_PAGE_ATTR_PRESENT)
++ struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr);
+ pgprot_t prot = PAGE_KERNEL_NOCACHE;
+ #if defined(NVCPU_X86) || defined(NVCPU_X86_64)
+ pgprot_val(prot) &= __nv_supported_pte_mask;
+ #endif
+ change_page_attr(page, 1, prot);
+- }
+ #endif
++ }
+ }
+
+ static inline void nv_set_page_attrib_cached(nv_pte_t *page_ptr)
+ {
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+- if (nv_use_cpa)
++ if (nv_update_memory_types)
+ {
+- struct page *page = virt_to_page(__va(page_ptr->phys_addr));
++#if defined(NV_SET_PAGES_UC_PRESENT)
++ struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr);
++ set_pages_wb(page, 1);
++#elif defined(NV_CHANGE_PAGE_ATTR_PRESENT)
++ struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr);
+ pgprot_t prot = PAGE_KERNEL;
+ #if defined(NVCPU_X86) || defined(NVCPU_X86_64)
+ pgprot_val(prot) &= __nv_supported_pte_mask;
+ #endif
+ change_page_attr(page, 1, prot);
++#endif
+ }
+-#endif /* NV_CHANGE_PAGE_ATTR_PRESENT */
+ }
+
+ static inline void nv_lock_page(nv_pte_t *page_ptr)
+@@ -360,8 +358,11 @@
+ #if defined(NV_CPA_NEEDS_FLUSHING)
+ nv_execute_on_all_cpus(cache_flush, NULL);
+ #endif
++#if (defined(NVCPU_X86) || defined(NVCPU_X86_64)) && \
++ defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+ global_flush_tlb();
+ #endif
++#endif
+ }
+
+ /*
+@@ -409,11 +410,11 @@
+ nv_pte_t *page_ptr = *at->page_table;
+ unsigned int i, j, gfp_mask;
+ unsigned long virt_addr = 0, phys_addr;
++ struct page **pages = 0;
+ #if defined(NV_SG_MAP_BUFFERS)
+ int ret = -1;
+ nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+ struct pci_dev *dev = nvl->dev;
+- struct page **pages = 0;
+ #endif
+
+ nv_printf(NV_DBG_MEMINFO, "NVRM: VM: nv_vm_malloc_pages: %d pages\n",
+@@ -462,22 +463,7 @@
+ }
+ #endif
+ }
+- else if (NV_ALLOC_MAPPING_VMALLOC(at->flags))
+- {
+- void *virt_kptr = NULL;
+- at->size = at->num_pages * PAGE_SIZE;
+- nv_printf(NV_DBG_MEMINFO, "NVRM: VM: vmalloc, size 0x%x\n", at->size);
+- NV_VMALLOC(virt_kptr, at->size, NV_ALLOC_MAPPING_CACHED(at->flags));
+- virt_addr = (unsigned long) virt_kptr;
+- if (virt_addr == 0)
+- {
+- nv_printf(NV_DBG_ERRORS,
+- "NVRM: nv_vm_malloc failed to allocate vmalloc memory\n");
+- return -1;
+- }
+- }
+
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (NV_ALLOC_MAPPING_VMAP(at->flags))
+ {
+ NV_KMALLOC(pages, sizeof(struct page *) * at->num_pages);
+@@ -488,11 +474,10 @@
+ return -1;
+ }
+ }
+-#endif
+
+ for (i = 0; i < at->num_pages; i++)
+ {
+- if (!NV_ALLOC_MAPPING_CONTIG(at->flags) && !NV_ALLOC_MAPPING_VMALLOC(at->flags))
++ if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
+ {
+ NV_GET_FREE_PAGES(virt_addr, 0, gfp_mask);
+ if (virt_addr == 0)
+@@ -553,10 +538,10 @@
+ }
+ }
+ nv_sg_load(&page_ptr->sg_list, page_ptr);
++#endif
+
+ if (NV_ALLOC_MAPPING_VMAP(at->flags))
+ pages[i] = NV_GET_PAGE_STRUCT(page_ptr->phys_addr);
+-#endif
+
+ if (!NV_ALLOC_MAPPING_CACHED(at->flags))
+ nv_set_page_attrib_uncached(page_ptr);
+@@ -565,41 +550,21 @@
+ virt_addr += PAGE_SIZE;
+ }
+
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (NV_ALLOC_MAPPING_VMAP(at->flags))
+ {
+ NV_VMAP(virt_addr, pages, at->num_pages, NV_ALLOC_MAPPING_CACHED(at->flags));
+-#if defined(KERNEL_2_4)
+- if (virt_addr != 0)
+- {
+- unsigned int i;
+- /*
+- * XXX Linux 2.4's vmap() increments the pages' reference counts
+- * in preparation for vfree(); the latter skips the calls to
+- * __free_page() if the pages are marked reserved, however, so
+- * that the underlying memory is effectively leaked when we free
+- * it later. Decrement the count here to avoid this leak.
+- */
+- for (i = 0; i < at->num_pages; i++)
+- {
+- if (PageReserved(pages[i]))
+- atomic_dec(&pages[i]->count);
+- }
+- }
+-#endif
+- NV_KFREE((void *)pages, sizeof(struct page *) * at->num_pages);
+ if (virt_addr == 0)
+ {
+ nv_printf(NV_DBG_ERRORS,
+ "NVRM: VM: nv_vm_malloc_pages: failed to vmap pages\n");
+ goto failed;
+ }
++ NV_KFREE((void *)pages, sizeof(struct page *) * at->num_pages);
+ for (i = 0; i < at->num_pages; i++)
+ {
+ at->page_table[i]->virt_addr = virt_addr + i * PAGE_SIZE;
+ }
+ }
+-#endif /* NV_SG_MAP_BUFFERS */
+
+ nv_vm_list_page_count(at->page_table, at->num_pages);
+
+@@ -624,7 +589,7 @@
+ nv_sg_unmap_buffer(dev, &page_ptr->sg_list, page_ptr);
+ #endif
+ nv_unlock_page(page_ptr);
+- if (!NV_ALLOC_MAPPING_CONTIG(at->flags) && !NV_ALLOC_MAPPING_VMALLOC(at->flags))
++ if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
+ NV_FREE_PAGES(page_ptr->virt_addr, 0);
+ }
+ }
+@@ -638,16 +603,9 @@
+ #endif
+ NV_FREE_PAGES(page_ptr->virt_addr, at->order);
+ }
+- else if (NV_ALLOC_MAPPING_VMALLOC(at->flags))
+- {
+- page_ptr = *at->page_table;
+- NV_VFREE((void *) page_ptr->virt_addr, at->size);
+- }
+
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (NV_ALLOC_MAPPING_VMAP(at->flags) && pages != 0)
+- NV_VFREE((void *)pages, sizeof(struct page *) * at->num_pages);
+-#endif
++ NV_KFREE((void *)pages, sizeof(struct page *) * at->num_pages);
+
+ return -1;
+ }
+@@ -674,19 +632,17 @@
+ }
+ nv_vm_list_page_count(at->page_table, at->num_pages);
+
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (NV_ALLOC_MAPPING_VMAP(at->flags))
+ NV_VUNMAP((void *)at->page_table[0]->virt_addr, at->num_pages); // undo vmap()
+-#endif
+
+ for (i = 0; i < at->num_pages; i++)
+ {
+ page_ptr = at->page_table[i];
+ if (!NV_ALLOC_MAPPING_CACHED(at->flags))
+ nv_set_page_attrib_cached(page_ptr);
+-#if defined(NV_SG_MAP_BUFFERS)
+ if (NV_ALLOC_MAPPING_VMAP(at->flags))
+ page_ptr->virt_addr = (unsigned long) __va(page_ptr->phys_addr);
++#if defined(NV_SG_MAP_BUFFERS)
+ if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
+ nv_sg_unmap_buffer(dev, &page_ptr->sg_list, page_ptr);
+ #endif
+@@ -701,7 +657,7 @@
+ }
+ }
+ nv_unlock_page(page_ptr);
+- if (!NV_ALLOC_MAPPING_CONTIG(at->flags) && !NV_ALLOC_MAPPING_VMALLOC(at->flags))
++ if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
+ NV_FREE_PAGES(page_ptr->virt_addr, 0);
+ }
+ nv_flush_caches();
+@@ -714,9 +670,136 @@
+ #endif
+ NV_FREE_PAGES(page_ptr->virt_addr, at->order);
+ }
+- else if (NV_ALLOC_MAPPING_VMALLOC(at->flags))
++}
++
++#if defined(NV_VMAP_PRESENT) && defined(KERNEL_2_4) && defined(NVCPU_X86)
++static unsigned long
++nv_vmap_vmalloc(
++ int count,
++ struct page **pages,
++ pgprot_t prot
++)
++{
++ void *virt_addr = NULL;
++ unsigned int i, size = count * PAGE_SIZE;
++
++ NV_VMALLOC(virt_addr, size, TRUE);
++ if (virt_addr == NULL)
++ {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: vmalloc() failed to allocate vmap() scratch pages!\n");
++ return 0;
++ }
++
++ for (i = 0; i < (unsigned int)count; i++)
+ {
+- page_ptr = *at->page_table;
+- NV_VFREE((void *) page_ptr->virt_addr, at->size);
++ pgd_t *pgd = NULL;
++ pmd_t *pmd = NULL;
++ pte_t *pte = NULL;
++ unsigned long address;
++ struct page *page;
++
++ address = (unsigned long)virt_addr + i * PAGE_SIZE;
++
++ pgd = NV_PGD_OFFSET(address, 1, NULL);
++ if (!NV_PGD_PRESENT(pgd))
++ goto failed;
++
++ pmd = NV_PMD_OFFSET(address, pgd);
++ if (!NV_PMD_PRESENT(pmd))
++ goto failed;
++
++ pte = NV_PTE_OFFSET(address, pmd);
++ if (!NV_PTE_PRESENT(pte))
++ goto failed;
++
++ page = NV_GET_PAGE_STRUCT(pte_val(*pte) & PAGE_MASK);
++ get_page(pages[i]);
++ set_pte(pte, mk_pte(pages[i], prot));
++ put_page(page);
++ NV_PTE_UNMAP(pte);
++ }
++ nv_flush_caches();
++
++ return (unsigned long)virt_addr;
++
++failed:
++ NV_VFREE(virt_addr, size);
++
++ return 0;
++}
++
++static void
++nv_vunmap_vmalloc(
++ void *address,
++ int count
++)
++{
++ NV_VFREE(address, count * PAGE_SIZE);
++}
++#endif /* NV_VMAP_PRESENT && KERNEL_2_4 && NVCPU_X86 */
++
++void *nv_vmap(
++ struct page **pages,
++ int count,
++ pgprot_t prot
++)
++{
++ unsigned long virt_addr = 0;
++#if defined(NV_VMAP_PRESENT)
++#if defined(KERNEL_2_4) && defined(NVCPU_X86)
++ /*
++ * XXX Linux 2.4's vmap() checks the requested mapping's size against
++ * the value of (max_mapnr << PAGESHIFT); since 'map_nr' is a 32-bit
++ * symbol, the checks fails given enough physical memory. We can't solve
++ * this problem by adjusting the value of 'map_nr', but we can avoid
++ * vmap() by going through vmalloc().
++ */
++ if (max_mapnr >= 0x100000)
++ virt_addr = nv_vmap_vmalloc(count, pages, prot);
++ else
++#endif
++ NV_VMAP_KERNEL(virt_addr, pages, count, prot);
++#if defined(KERNEL_2_4)
++ if (virt_addr)
++ {
++ int i;
++ /*
++ * XXX Linux 2.4's vmap() increments the pages' reference counts
++ * in preparation for vfree(); the latter skips the calls to
++ * __free_page() if the pages are marked reserved, however, so
++ * that the underlying memory is effectively leaked when we free
++ * it later. Decrement the count here to avoid this leak.
++ */
++ for (i = 0; i < count; i++)
++ {
++ if (PageReserved(pages[i]))
++ atomic_dec(&pages[i]->count);
++ }
+ }
++#endif
++#endif /* NV_VMAP_PRESENT */
++ return (void *)virt_addr;
++}
++
++void nv_vunmap(
++ void *address,
++ int count
++)
++{
++#if defined(NV_VMAP_PRESENT)
++#if defined(KERNEL_2_4) && defined(NVCPU_X86)
++ /*
++ * XXX Linux 2.4's vmap() checks the requested mapping's size against
++ * the value of (max_mapnr << PAGESHIFT); since 'map_nr' is a 32-bit
++ * symbol, the checks fails given enough physical memory. We can't solve
++ * this problem by adjusting the value of 'map_nr', but we can avoid
++ * vmap() by going through vmalloc().
++ */
++ if (max_mapnr >= 0x100000)
++ nv_vunmap_vmalloc(address, count);
++ else
++#endif
++ NV_VUNMAP_KERNEL(address, count);
++#endif /* NV_VMAP_PRESENT */
+ }
+diff -ru usr/src/nv/nv-vm.h usr/src/nv.2305230/nv-vm.h
+--- usr/src/nv/nv-vm.h 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/nv-vm.h 2008-03-18 12:55:54.643519951 -0700
+@@ -11,6 +11,9 @@
+ #ifndef _NV_VM_H_
+ #define _NV_VM_H_
+
++void * nv_vmap(struct page **, int, pgprot_t);
++void nv_vunmap(void *, int);
++
+ int nv_vm_malloc_pages(nv_state_t *, nv_alloc_t *);
+ void nv_vm_free_pages(nv_state_t *, nv_alloc_t *);
+
+diff -ru usr/src/nv/nv.c usr/src/nv.2305230/nv.c
+--- usr/src/nv/nv.c 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/nv.c 2008-03-18 12:56:01.123889244 -0700
+@@ -97,9 +97,7 @@
+ unsigned int nv_remap_limit;
+ #endif
+
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+-int nv_use_cpa = 1;
+-#endif
++int nv_update_memory_types = 1;
+
+ static void *nv_pte_t_cache = NULL;
+
+@@ -850,16 +848,13 @@
+
+ for (i = 0; i < 4; i++)
+ {
+- if (NV_PAT_ENTRY(pat1, i) == 1)
++ if ((i != 1) && NV_PAT_ENTRY(pat1, i) == 1)
+ {
+ nv_printf(NV_DBG_ERRORS, "NVRM: PAT index %d already configured for Write-Combining!\n", i);
+ nv_printf(NV_DBG_ERRORS, "NVRM: Aborting, due to PAT already being configured\n");
+ return 0;
+ }
+- }
+
+- for (i = 0; i < 4; i++)
+- {
+ if (NV_PAT_ENTRY(pat2, i) == 1)
+ {
+ nv_printf(NV_DBG_ERRORS, "NVRM: PAT index %d already configured for Write-Combining!\n", i + 4);
+@@ -969,30 +964,26 @@
+ #endif /* defined(NV_BUILD_NV_PAT_SUPPORT) */
+ }
+
+-
+ #if defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT)
+-
+-/* nv_verify_cpa_interface - determine if the change_page_attr bug is fixed
+- * in this kernel.
++/*
++ * nv_verify_cpa_interface() - determine if the change_page_attr() large page
++ * management accounting bug known to exist in early Linux/x86-64 kernels
++ * is present in this kernel.
+ *
+- * there's really not a good way to determine if change_page_attr is fixed.
+- * we can't really use cpa on 2.6 x86_64 kernels < 2.6.11, as if we run into
+- * the accounting bug, the kernel will throw a BUG. this isn't 100% accurate,
+- * as it doesn't throw a bug until we try to restore the caching attributes
+- * of the page. so if we can track down a 4M allocation, we can mark it
+- * uncached and see if the accounting was done correctly.
+- *
+- * this is a little ugly, but the most accurate approach to determining if
+- * this kernel is good.
++ * There's really no good way to determine if change_page_attr() is working
++ * correctly. We can't reliably use change_page_attr() on Linux/x86-64 2.6
++ * kernels < 2.6.11: if we run into the accounting bug, the Linux kernel will
++ * trigger a BUG() if we attempt to restore the WB memory type of a page
++ * originally part of a large page.
+ *
+- * why do we even bother? some distributions have back-ported the cpa fix to
+- * kernels < 2.6.11. we want to use change_page_attr to avoid random corruption
+- * and hangs, but need to make sure it's safe to do so.
++ * So if we can successfully allocate such a page, change its memory type to
++ * UC and check if the accounting was done correctly, we can determine if
++ * the change_page_attr() interface can be used safely.
+ *
+- * return values:
+- * 0 - test passed, interface works
+- * 1 - test failed, status unclear
+- * -1 - test failed, interface broken
++ * Return values:
++ * 0 - test passed, the change_page_attr() interface works
++ * 1 - test failed, the status is unclear
++ * -1 - test failed, the change_page_attr() interface is broken
+ */
+
+ static inline pte_t *check_large_page(unsigned long vaddr)
+@@ -1000,7 +991,7 @@
+ pgd_t *pgd = NULL;
+ pmd_t *pmd = NULL;
+
+- pgd = NV_PGD_OFFSET(vaddr, 1, &init_mm);
++ pgd = NV_PGD_OFFSET(vaddr, 1, NULL);
+ if (!NV_PGD_PRESENT(pgd))
+ return NULL;
+
+@@ -1110,35 +1101,42 @@
+
+ return 1;
+ }
+-
+ #endif /* defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) */
+
+-
+-// verify that the kernel's mapping matches the requested type
+-// this is to protect against accidental cache aliasing problems
++/*
++ * nv_verify_page_mappings() - verify that the kernel mapping of the specified
++ * page matches the specified type. This is to help detect bugs in the Linux
++ * kernel's change_page_attr() interface, early.
++ *
++ * This function relies on the ability to perform kernel virtul address to PFN
++ * translations and therefore on 'init_mm'. Unfortunately, the latter is no
++ * longer exported in recent Linux/x86 2.6 kernels. The export was removed at
++ * roughtly the same time as the set_pages_{uc,wb}() change_page_attr()
++ * replacement interfaces were introduced; hopefully, it will be sufficient to
++ * check for their presence.
++ */
+ int nv_verify_page_mappings(
+ nv_pte_t *page_ptr,
+ unsigned int cachetype
+ )
+ {
+- struct mm_struct *mm;
++#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) || \
++ (defined(NV_SET_PAGES_UC_PRESENT) && !defined(NVCPU_X86))
++ unsigned long retval = -1;
++#if defined(NVCPU_X86) || defined(NVCPU_X86_64)
+ pgd_t *pgd = NULL;
+ pmd_t *pmd = NULL;
+ pte_t *pte = NULL;
+- unsigned long retval = -1;
+ unsigned int flags, expected;
+ unsigned long address;
+ static int count = 0;
+
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+- if (!nv_use_cpa)
++ if (!nv_update_memory_types)
+ return 0;
+-#endif
+
+ address = (unsigned long)__va(page_ptr->phys_addr);
+- mm = &init_mm; // always a kernel page
+
+- pgd = NV_PGD_OFFSET(address, 1, mm);
++ pgd = NV_PGD_OFFSET(address, 1, NULL);
+ if (!NV_PGD_PRESENT(pgd))
+ {
+ nv_printf(NV_DBG_ERRORS, "NVRM: pgd not present for addr 0x%lx\n", address);
+@@ -1204,7 +1202,11 @@
+ }
+
+ failed:
++#endif /* defined(NVCPU_X86) || defined(NVCPU_X86_64) */
+ return retval;
++#else
++ return 0;
++#endif
+ }
+
+ #if defined(NV_BUILD_NV_PAT_SUPPORT) && defined(CONFIG_HOTPLUG_CPU)
+@@ -1250,7 +1252,8 @@
+ static int __init nvidia_init_module(void)
+ {
+ int rc;
+- U032 i, count;
++ U032 i, count, data;
++ nv_state_t *nv = NV_STATE_PTR(&nv_ctl_device);
+
+ #if defined(VM_CHECKER)
+ nv_init_lock(vm_lock);
+@@ -1266,11 +1269,18 @@
+ return -ENODEV;
+ }
+
++ if (!rm_init_rm())
++ {
++ nv_printf(NV_DBG_ERRORS, "NVRM: rm_init_rm() failed!\n");
++ return -EIO;
++ }
++
+ memset(nv_linux_devices, 0, sizeof(nv_linux_devices));
+
+ if (pci_register_driver(&nv_pci_driver) < 0)
+ {
+ pci_unregister_driver(&nv_pci_driver); // XXX ???
++ rm_shutdown_rm();
+ nv_printf(NV_DBG_ERRORS, "NVRM: No NVIDIA graphics adapter found!\n");
+ return -ENODEV;
+ }
+@@ -1293,6 +1303,7 @@
+ if (num_probed_nv_devices == 0)
+ {
+ pci_unregister_driver(&nv_pci_driver);
++ rm_shutdown_rm();
+ nv_printf(NV_DBG_ERRORS, "NVRM: No NVIDIA graphics adapter probed!\n");
+ return -ENODEV;
+ }
+@@ -1307,6 +1318,7 @@
+ if (num_nv_devices == 0)
+ {
+ pci_unregister_driver(&nv_pci_driver);
++ rm_shutdown_rm();
+ nv_printf(NV_DBG_ERRORS,
+ "NVRM: None of the NVIDIA graphics adapters were initialized!\n");
+ return -ENODEV;
+@@ -1317,8 +1329,9 @@
+ rc = register_chrdev(nv_major, "nvidia", &nv_fops);
+ if (rc < 0)
+ {
+- nv_printf(NV_DBG_ERRORS, "NVRM: register chrdev failed\n");
+ pci_unregister_driver(&nv_pci_driver);
++ rm_shutdown_rm();
++ nv_printf(NV_DBG_ERRORS, "NVRM: register_chrdev() failed!\n");
+ return rc;
+ }
+
+@@ -1367,14 +1380,6 @@
+ }
+ #endif
+
+- // Init the resource manager
+- if (!rm_init_rm())
+- {
+- nv_printf(NV_DBG_ERRORS, "NVRM: rm_init_rm() failed\n");
+- rc = -EIO;
+- goto failed;
+- }
+-
+ #if defined(NV_SG_MAP_BUFFERS)
+ rm_read_registry_dword(NV_STATE_PTR(&nv_ctl_device), "NVreg", "RemapLimit", &nv_remap_limit);
+
+@@ -1407,48 +1412,41 @@
+ /* create /proc/driver/nvidia */
+ nvos_proc_create();
+
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
++ /*
++ * Give users an opportunity to disable the driver's use of
++ * the change_page_attr() and set_pages_{uc,wb}() kernel
++ * interfaces.
++ */
++ rc = rm_read_registry_dword(nv, "NVreg", "UpdateMemoryTypes", &data);
++ if ((rc == 0) && ((int)data != ~0))
+ {
+- int data;
+-
+- // allow the user to override us with a registry key
+- rc = rm_read_registry_dword(NV_STATE_PTR(&nv_ctl_device), "NVreg", "UseCPA", &data);
+- if ((rc == 0) && (data != -1))
+- {
+- nv_use_cpa = data;
+- }
++ nv_update_memory_types = data;
++ }
+ #if defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT)
+- else
++ /*
++ * Unless we explicitely detect that the change_page_attr()
++ * inteface is fixed, disable usage of the interface on
++ * this kernel. Notify the user of this problem using the
++ * driver's /proc warnings interface (read by the installer
++ * and the bug report script).
++ */
++ else
++ {
++ rc = nv_verify_cpa_interface();
++ if (rc < 0)
+ {
+- /*
+- * Unless we explicitely detect that the change_page_attr()
+- * inteface is fixed, disable usage of the interface on
+- * this kernel. Notify the user of this problem using the
+- * driver's /proc warnings interface (read by the installer
+- * and the bug report script).
+- */
+- rc = nv_verify_cpa_interface();
+- if (rc < 0)
+- {
+- nv_prints(NV_DBG_ERRORS, __cpgattr_warning);
+- nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning);
+- nv_use_cpa = 0;
+- }
+- else if (rc != 0)
+- {
+- nv_prints(NV_DBG_ERRORS, __cpgattr_warning_2);
+- nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning_2);
+- nv_use_cpa = 0;
+- }
++ nv_prints(NV_DBG_ERRORS, __cpgattr_warning);
++ nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning);
++ nv_update_memory_types = 0;
++ }
++ else if (rc != 0)
++ {
++ nv_prints(NV_DBG_ERRORS, __cpgattr_warning_2);
++ nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning_2);
++ nv_update_memory_types = 0;
+ }
+-#endif
+ }
+-#endif
+-
+-
+-#if defined(DEBUG)
+- inter_module_register("nv_linux_devices", THIS_MODULE, nv_linux_devices);
+-#endif
++#endif /* defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) */
+
+ #if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL)
+ /* Register ioctl conversions for 32 bit clients */
+@@ -1501,6 +1499,8 @@
+ }
+
+ pci_unregister_driver(&nv_pci_driver);
++ rm_shutdown_rm();
++
+ return rc;
+ }
+
+@@ -1532,10 +1532,6 @@
+ /* remove /proc/driver/nvidia */
+ nvos_proc_remove();
+
+-#if defined(DEBUG)
+- inter_module_unregister("nv_linux_devices");
+-#endif
+-
+ #if defined(NV_PM_SUPPORT_OLD_STYLE_APM)
+ for (i = 0; i < num_nv_devices; i++)
+ {
+@@ -2112,6 +2108,8 @@
+ if (rm_validate_pfn_range(file, NV_VMA_PGOFF(vma),
+ NV_VMA_SIZE(vma)) == RM_OK)
+ {
++ if (vma->vm_flags & VM_WRITE)
++ return -EACCES;
+ vma->vm_flags |= (VM_IO | VM_LOCKED);
+ #if defined(NV_VM_INSERT_PAGE_PRESENT)
+ if (NV_VM_INSERT_PAGE(vma, vma->vm_start, pfn_to_page(NV_VMA_PGOFF(vma))))
+@@ -2240,6 +2238,8 @@
+ if (rm_validate_pfn_range(file, NV_VMA_PGOFF(vma),
+ NV_VMA_SIZE(vma)) == RM_OK)
+ {
++ if (vma->vm_flags & VM_WRITE)
++ return -EACCES;
+ vma->vm_flags |= (VM_IO | VM_LOCKED);
+ #if defined(NV_VM_INSERT_PAGE_PRESENT)
+ if (NV_VM_INSERT_PAGE(vma, vma->vm_start, pfn_to_page(NV_VMA_PGOFF(vma))))
+@@ -3266,8 +3266,21 @@
+ pte_t *pte = NULL;
+ unsigned long retval;
+
+- mm = (kern) ? &init_mm : current->mm;
+- if (!kern) down_read(&current->mm->mmap_sem);
++ if (!kern)
++ {
++ mm = current->mm;
++ down_read(&mm->mmap_sem);
++ }
++ else
++ {
++#if defined(NV_SET_PAGES_UC_PRESENT) && defined(NVCPU_X86)
++ /* nv_printf(NV_DBG_ERRORS,
++ "NVRM: can't translate KVA in nv_get_phys_address()!\n"); */
++ return 0;
++#else
++ mm = NULL;
++#endif
++ }
+
+ pgd = NV_PGD_OFFSET(address, kern, mm);
+ if (!NV_PGD_PRESENT(pgd))
+@@ -3288,11 +3301,13 @@
+ retval &= ~_PAGE_NX;
+ #endif
+
+- if (!kern) up_read(&current->mm->mmap_sem);
++ if (!kern)
++ up_read(&mm->mmap_sem);
+ return retval;
+
+ failed:
+- if (!kern) up_read(&current->mm->mmap_sem);
++ if (!kern)
++ up_read(&mm->mmap_sem);
+ return 0;
+ }
+
+@@ -3300,12 +3315,19 @@
+ unsigned long address
+ )
+ {
+- // make sure this address is a kernel pointer
++#if defined(NV_SET_PAGES_UC_PRESENT) && defined(NVCPU_X86)
++ nv_linux_state_t *nvl;
++ nv_alloc_t *at;
++ unsigned long virt_addr;
++ U032 i, j;
++#endif
++
++ /* make sure this address is a kernel virtual address */
+ #if defined(DEBUG) && !defined(CONFIG_X86_4G)
+ if (address < PAGE_OFFSET)
+ {
+ nv_printf(NV_DBG_WARNINGS,
+- "NVRM: user address passed to get_kern_phys_address: 0x%lx\n",
++ "NVRM: user address passed to get_kern_phys_address: 0x%llx!\n",
+ address);
+ return 0;
+ }
+@@ -3315,6 +3337,30 @@
+ if ((address > PAGE_OFFSET) && (address < VMALLOC_START))
+ return __pa(address);
+
++#if defined(NV_SET_PAGES_UC_PRESENT) && defined(NVCPU_X86)
++ for (i = 0; i < num_nv_devices; i++)
++ {
++ nvl = &nv_linux_devices[i];
++
++ for (at = nvl->alloc_queue; (at != NULL); at = at->next)
++ {
++ if (!NV_ALLOC_MAPPING_VMAP(at->flags))
++ continue;
++
++ for (j = 0; j < at->num_pages; j++)
++ {
++ virt_addr = at->page_table[j]->virt_addr;
++ if ((address >= virt_addr) &&
++ (address < (virt_addr + PAGE_SIZE)))
++ {
++ return (at->page_table[j]->phys_addr +
++ (address & ~PAGE_MASK));
++ }
++ }
++ }
++ }
++#endif
++
+ return _get_phys_address(address, 1);
+ }
+
+@@ -3322,12 +3368,12 @@
+ unsigned long address
+ )
+ {
+- // make sure this address is not a kernel pointer
++ /* make sure this address is not a kernel virtual address */
+ #if defined(DEBUG) && !defined(CONFIG_X86_4G)
+ if (address >= PAGE_OFFSET)
+ {
+ nv_printf(NV_DBG_WARNINGS,
+- "NVRM: kernel address passed to get_user_phys_address: 0x%lx\n",
++ "NVRM: kernel address passed to get_user_phys_address: 0x%llx!\n",
+ address);
+ return 0;
+ }
+@@ -3396,8 +3442,6 @@
+ if (nv_vm_malloc_pages(nv, at))
+ goto failed;
+
+- at->class = class;
+-
+ // set our 'key' to the page_table. rm_alloc_agp_pages will call
+ // nv_translate_address below, which will look up pages using
+ // the value of *pAddress as a key, then index into the page_table
+@@ -3952,7 +3996,8 @@
+
+ if (num_nv_devices == NV_MAX_DEVICES)
+ {
+- nv_printf(NV_DBG_ERRORS, "NVRM: maximum device number (%d) reached!\n", num_nv_devices);
++ nv_printf(NV_DBG_ERRORS, "NVRM: maximum device number (%d) exceeded!\n",
++ (NV_MAX_DEVICES - 1));
+ return -1;
+ }
+
+@@ -4085,13 +4130,10 @@
+ return -1;
+ }
+
+-int NV_API_CALL nv_no_incoherent_mappings
+-(
+- void
+-)
++int NV_API_CALL nv_no_incoherent_mappings(void)
+ {
+-#if defined(NV_CHANGE_PAGE_ATTR_PRESENT)
+- return 1;
++#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) || defined(NV_SET_PAGES_UC_PRESENT)
++ return (nv_update_memory_types);
+ #else
+ return 0;
+ #endif
+diff -ru usr/src/nv/nv.h usr/src/nv.2305230/nv.h
+--- usr/src/nv/nv.h 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/nv.h 2008-03-18 12:55:56.919649651 -0700
+@@ -335,15 +332,39 @@
+
+ #define NV_DEVICE_NAME_LENGTH 40
+
++#define NV_MAX_ISR_DELAY_US 20000
++#define NV_MAX_ISR_DELAY_MS (NV_MAX_ISR_DELAY_US / 1000)
++
++#define NV_TIMERCMP(a, b, CMP) \
++ (((a)->tv_sec == (b)->tv_sec) ? \
++ ((a)->tv_usec CMP (b)->tv_usec) : ((a)->tv_sec CMP (b)->tv_sec))
++
++#define NV_TIMERADD(a, b, result) \
++ { \
++ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
++ (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
++ if ((result)->tv_usec >= 1000000) \
++ { \
++ ++(result)->tv_sec; \
++ (result)->tv_usec -= 1000000; \
++ } \
++ }
++
++#define NV_TIMERSUB(a, b, result) \
++ { \
++ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
++ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
++ if ((result)->tv_usec < 0) \
++ { \
++ --(result)->tv_sec; \
++ (result)->tv_usec += 1000000; \
++ } \
++ }
+
+ /*
+ * driver internal interfaces
+ */
+
+-/* need a fake device number for control device; just to flag it for msgs */
+-#define NV_CONTROL_DEVICE_NUMBER 100
+-
+-
+ #ifndef NVWATCH
+
+ /*
+diff -ru usr/src/nv/os-interface.c usr/src/nv.2305230/os-interface.c
+--- usr/src/nv/os-interface.c 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/os-interface.c 2008-03-18 12:56:04.288069559 -0700
+@@ -25,7 +25,6 @@
+ #include "os-interface.h"
+ #include "nv-linux.h"
+
+-
+ static volatile int os_block_on_smp_barrier;
+
+ #ifdef CONFIG_SMP
+@@ -63,7 +62,7 @@
+ //
+ typedef struct os_sema_s
+ {
+- struct semaphore wait;
++ struct completion completion;
+ spinlock_t lock;
+ S032 count;
+ } os_sema_t;
+@@ -86,7 +85,7 @@
+ return rmStatus;
+
+ os_sema = (os_sema_t *)*ppSema;
+- sema_init(&os_sema->wait, 0);
++ init_completion(&os_sema->completion);
+ spin_lock_init(&os_sema->lock);
+ os_sema->count = 1;
+
+@@ -131,7 +130,7 @@
+ {
+ os_sema->count--;
+ spin_unlock_irqrestore(&os_sema->lock, old_irq);
+- down(&os_sema->wait);
++ wait_for_completion(&os_sema->completion);
+ }
+ else
+ {
+@@ -208,7 +207,7 @@
+ spin_unlock_irqrestore(&os_sema->lock, old_irq);
+
+ if (doWakeup)
+- up(&os_sema->wait);
++ complete(&os_sema->completion);
+
+ return RM_OK;
+ }
+@@ -448,8 +447,6 @@
+ //
+ //---------------------------------------------------------------------------
+
+-#define NV_MAX_ISR_UDELAY 20000
+-#define NV_MAX_ISR_MDELAY (NV_MAX_ISR_UDELAY / 1000)
+ #define NV_MSECS_PER_JIFFIE (1000 / HZ)
+ #define NV_MSECS_TO_JIFFIES(msec) ((msec) * HZ / 1000)
+ #define NV_USECS_PER_JIFFIE (1000000 / HZ)
+@@ -474,7 +471,7 @@
+ do_gettimeofday(&tm1);
+ #endif
+
+- if (in_irq() && MicroSeconds > NV_MAX_ISR_UDELAY)
++ if (in_irq() && (MicroSeconds > NV_MAX_ISR_DELAY_US))
+ return RM_ERROR;
+
+ mdelay_safe_msec = MicroSeconds / 1000;
+@@ -494,36 +491,6 @@
+ return RM_OK;
+ }
+
+-#ifndef timercmp
+-# define timercmp(a, b, CMP) \
+- (((a)->tv_sec == (b)->tv_sec) ? \
+- ((a)->tv_usec CMP (b)->tv_usec) : \
+- ((a)->tv_sec CMP (b)->tv_sec))
+-#endif
+-#ifndef timeradd
+-# define timeradd(a, b, result) \
+- do { \
+- (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
+- (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
+- if ((result)->tv_usec >= 1000000) \
+- { \
+- ++(result)->tv_sec; \
+- (result)->tv_usec -= 1000000; \
+- } \
+- } while (0)
+-#endif
+-#ifndef timersub
+-# define timersub(a, b, result) \
+- do { \
+- (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+- (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+- if ((result)->tv_usec < 0) { \
+- --(result)->tv_sec; \
+- (result)->tv_usec += 1000000; \
+- } \
+- } while (0)
+-#endif
+-
+ /*
+ * On Linux, a jiffie represents the time passed in between two timer
+ * interrupts. The number of jiffies per second (HZ) varies across the
+@@ -549,7 +516,7 @@
+ tm_start = tm_aux;
+ #endif
+
+- if (in_irq() && MilliSeconds > NV_MAX_ISR_MDELAY)
++ if (in_irq() && (MilliSeconds > NV_MAX_ISR_DELAY_MS))
+ return RM_ERROR;
+
+ if (!NV_MAY_SLEEP())
+@@ -561,7 +528,7 @@
+ MicroSeconds = MilliSeconds * 1000;
+ tm_end.tv_usec = MicroSeconds;
+ tm_end.tv_sec = 0;
+- timeradd(&tm_aux, &tm_end, &tm_end);
++ NV_TIMERADD(&tm_aux, &tm_end, &tm_end);
+
+ /* do we have a full jiffie to wait? */
+ jiffies = NV_USECS_TO_JIFFIES(MicroSeconds);
+@@ -590,9 +557,9 @@
+ schedule_timeout(jiffies);
+ /* catch the remainder, if any */
+ do_gettimeofday(&tm_aux);
+- if (timercmp(&tm_aux, &tm_end, <))
++ if (NV_TIMERCMP(&tm_aux, &tm_end, <))
+ {
+- timersub(&tm_end, &tm_aux, &tm_aux); // tm_aux = tm_end - tm_aux
++ NV_TIMERSUB(&tm_end, &tm_aux, &tm_aux); // tm_aux = tm_end - tm_aux
+ MicroSeconds = tm_aux.tv_usec + tm_aux.tv_sec * 1000000;
+ } else
+ MicroSeconds = 0;
+@@ -1109,6 +1076,18 @@
+ {
+ void *vaddr;
+
++ if (start == 0)
++ {
++ if (mode != NV_MEMORY_CACHED)
++ {
++ nv_printf(NV_DBG_ERRORS,
++ "NVRM: os_map_kernel_space: won't map address 0x%0llx UC!\n", start);
++ return NULL;
++ }
++ else
++ return (void *)PAGE_OFFSET;
++ }
++
+ if (!NV_MAY_SLEEP())
+ {
+ nv_printf(NV_DBG_ERRORS,
+@@ -1131,6 +1110,9 @@
+ U032 size_bytes
+ )
+ {
++ if (addr == (void *)PAGE_OFFSET)
++ return;
++
+ NV_IOUNMAP(addr, size_bytes);
+ }
+
+@@ -1176,7 +1158,11 @@
+ #if defined(CONFIG_X86_REMOTE_DEBUG)
+ __asm__ __volatile__ ("int $3");
+ #elif defined(CONFIG_KGDB)
++#if defined(NV_OLD_MM_KGDB_BREAKPOINT_PRESENT)
++ BREAKPOINT;
++#else
+ BREAKPOINT();
++#endif
+ #elif defined(CONFIG_KDB)
+ KDB_ENTER();
+ #else
+diff -ru usr/src/nv/os-registry.c usr/src/nv.2305230/os-registry.c
+--- usr/src/nv/os-registry.c 2008-01-21 11:48:11.000000000 -0800
++++ usr/src/nv.2305230/os-registry.c 2008-03-18 12:56:07.492252151 -0700
+@@ -48,24 +48,6 @@
+ * This could be changed to work on a per-device basis.
+ */
+
+-/*
+- * The 2nd argument to MODULE_PARM is used to verify parameters passed
+- * to the module at load time. It should be a string in the following
+- * format:
+- *
+- * [min[-max]]{b,h,i,l,s}
+- *
+- * The MIN and MAX specifiers delimit the length of the array. If MAX
+- * is omitted, it defaults to MIN; if both are omitted, the default is
+- * 1. The final character is a type specifier.
+- *
+- * b byte
+- * h short
+- * i int
+- * l long
+- * s string
+- */
+-
+ /*
+ * Option: VideoMemoryTypeOverride
+ *
+@@ -360,9 +342,6 @@
+ static int NVreg_DevicesConnected = 0;
+ NV_MODULE_PARAMETER(NVreg_DevicesConnected);
+
+-static int NVreg_VideoEnhancement = 0;
+-NV_MODULE_PARAMETER(NVreg_VideoEnhancement);
+-
+ static int NVreg_RmLogonRC = 1;
+ NV_MODULE_PARAMETER(NVreg_RmLogonRC);
+
+@@ -402,34 +381,36 @@
+ NV_MODULE_PARAMETER(NVreg_RemapLimit);
+
+ /*
+- * Option: UseCPA
++ * Option: UpdateMemoryTypes
+ *
+ * Description:
+ *
+- * Many kernels have a broken implementation of change_page_attr that leads
+- * to cache aliasing problems. x86_64 kernels between 2.6.0 and 2.6.10 will
+- * force a kernel BUG_ON() when this condition is encountered. For this
+- * reason, the NVIDIA driver is very careful about not using the CPA kernel
+- * interface on these kernels.
++ * Many kernels have broken implementations of the change_page_attr()
++ * kernel interface that may cause cache aliasing problems. Linux/x86-64
++ * kernels between 2.6.0 and 2.6.10 may prompt kernel BUG()s due to
++ * improper accounting in the interface's large page management code, for
++ * example. For this reason, the NVIDIA Linux driver is very careful about
++ * not using the change_page_attr() kernel interface on these kernels.
++ *
++ * Due to the serious nature of the problems that can arise from bugs in
++ * the change_page_attr(), set_pages_{uc,wb}() and other kernel interfaces
++ * used to modify memory types, the NVIDIA driver implements a manual
++ * registry key override to allow forcibly enabling or disabling use of
++ * these APIs.
+ *
+- * Some distributions have backported this fix to kernel versions that fall
+- * within this version range. The NVIDIA driver attempts to automatically
+- * detect these fixes and reenable usage of the change_page_attr interface.
++ * Possible values:
+ *
+- * Due to the serious nature of the problems that can arise from this, the
+- * NVIDIA driver implements a manual registry key to force usage of this API
+- * to be enabled or disabled. This registry key can be used to force usage
+- * of the API on a known fixed kernel if the NVIDIA driver fails to detect
+- * the kernel as fixed. This registry key can also be used to disable usage
+- * of the API on a bad kernel that is misdetected as a fixed kernel.
++ * ~0 = use the NVIDIA driver's default logic (default)
++ * 0 = enable use of change_page_attr(), etc.
++ * 1 = disable use of change_page_attr(), etc.
+ *
+- * The default value is '-1' (use NVIDIA driver default logic)
+- * A value of '0' will forcibly disable change_page_attr calls.
+- * A value of '1' will forcibly enable change_page_attr calls.
++ * By default, the NVIDIA driver will attempt to auto-detect if it can
++ * safely use the change_page_attr() and other kernel interfaces to modify
++ * the memory types of kernel mappings.
+ */
+
+-static int NVreg_UseCPA = -1;
+-NV_MODULE_PARAMETER(NVreg_UseCPA);
++static int NVreg_UpdateMemoryTypes = ~0;
++NV_MODULE_PARAMETER(NVreg_UpdateMemoryTypes);
+
+ // 1 - Force sourcing vbios from ROM
+ // 0 - business as usual
+@@ -477,15 +458,14 @@
+ { "NVreg", "ResmanDebugLevel", &NVreg_ResmanDebugLevel, 1 },
+ { "NVreg", "FlatPanelMode", &NVreg_FlatPanelMode, 1 },
+ { "NVreg", "DevicesConnected", &NVreg_DevicesConnected, 1 },
+- { "NVreg", "VideoEnhancement", &NVreg_VideoEnhancement, 1 },
+ { "NVreg", "RmLogonRC", &NVreg_RmLogonRC, 1 },
++ { "NVreg", "VbiosFromROM", &NVreg_VbiosFromROM, 1 },
+ { "NVreg", "ModifyDeviceFiles", &NVreg_ModifyDeviceFiles, 1 },
+ { "NVreg", "DeviceFileUID", &NVreg_DeviceFileUID, 1 },
+ { "NVreg", "DeviceFileGID", &NVreg_DeviceFileGID, 1 },
+ { "NVreg", "DeviceFileMode", &NVreg_DeviceFileMode, 1 },
+- { "NVreg", "VbiosFromROM", &NVreg_VbiosFromROM, 1 },
+ { "NVreg", "RemapLimit", &NVreg_RemapLimit, 1 },
+- { "NVreg", "UseCPA", &NVreg_UseCPA, 1 },
++ { "NVreg", "UpdateMemoryTypes", &NVreg_UpdateMemoryTypes, 1 },
+ { "NVreg", "RMEdgeIntrCheck", &NVreg_RMEdgeIntrCheck, 1 },
+ { NULL, NULL, NULL, 0 }
+ };
diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD
new file mode 100644
index 0000000..3e5d589
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/PKGBUILD
@@ -0,0 +1,41 @@
+# Contributor : Alessandro Sagratini <ale_sagra@hotmail.com>
+
+pkgname=nvidia-71xx
+pkgver=71.86.09
+_kernver='2.6.28-LinHES'
+pkgrel=1
+pkgdesc="NVIDIA legacy drivers for kernel26-ice, 71xx branch"
+arch=(i686 x86_64)
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('nvidia-71xx-utils' 'kernel26')
+conflicts=('nvidia' 'nvidia-96xx')
+license=('custom')
+source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run
+ NVIDIA_kernel-96.43.05-2290218.diff.txt)
+install="nvidia-71xx.install"
+md5sums=('51ce70e2ba967a2bad1cf01ce25c7f76')
+[ "$CARCH" = "x86_64" ] && md5sums=('9d102e8a6a1746423f0e0a231df63eeb'
+ 'f2d9c8605a0f655b3c5c9b2434b9dccd')
+
+build() {
+ cd $startdir/src
+
+ # Extract
+ cd $startdir/src/
+ sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0
+ # Any extra patches are applied in here...
+# patch -Np0 -i ../NVIDIA_kernel-96.43.05-2290218.diff.txt || return 1
+
+ cd usr/src/nv/
+ ln -s Makefile.kbuild Makefile
+ make SYSSRC=/lib/modules/$_kernver/build module
+
+ # install kernel module
+ mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/
+ install -m644 nvidia.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+}
diff --git a/abs/core-testing/nvidia-71xx/nvidia-71xx.install b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
new file mode 100644
index 0000000..0b44b8d
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install() {
+ KERNEL_VERSION='2.6.28-LinHES'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ rmmod nvidia >/dev/null 2>&1 || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
+}
+
+# arg 1: the old package version
+post_remove() {
+ KERNEL_VERSION='2.6.28-LinHES'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ rmmod nvidia >/dev/null 2>&1
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/perl_modules/perl-algorithm-diff/PKGBUILD b/abs/core-testing/perl_modules/perl-algorithm-diff/PKGBUILD
index 38be2cc..d185772 100644
--- a/abs/core-testing/perl_modules/perl-algorithm-diff/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-algorithm-diff/PKGBUILD
@@ -2,13 +2,14 @@
# Maintainer: Charles Mauch <cmauch@gmail.com>
pkgname=perl-algorithm-diff
pkgver=1.1902
-pkgrel=3
+pkgrel=4
pkgdesc="Perl/CPAN Module Algorithm::Diff : Diff also Longest Common Subsequence"
arch=("i686" "x86_64")
url="http://search.cpan.org/TYEMQ/Algorithm-Diff"
license=("GPL" "Artistic")
source=("http://www.cpan.org/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1902.tar.gz")
md5sums=("ff3e17ae485f8adfb8857b183991fbce")
+groups=('shepherd-dep')
build() {
cd $startdir/src/Algorithm-Diff-1.1902
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
diff --git a/abs/core-testing/perl_modules/perl-digest-sha1/PKGBUILD b/abs/core-testing/perl_modules/perl-digest-sha1/PKGBUILD
index 7a3a414..7bf6976 100644
--- a/abs/core-testing/perl_modules/perl-digest-sha1/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-digest-sha1/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=perl-digest-sha1
_realname=Digest-SHA1
pkgver=2.11
-pkgrel=3
+pkgrel=4
pkgdesc="Perl Module: Interface to the SHA-1 Algorithm."
arch=(i686 x86_64)
license=('PerlArtistic')
@@ -16,7 +16,7 @@ source=(http://www.cpan.org/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
replaces=('digest-sha1')
provides=('digest-sha1')
md5sums=('2449bfe21d6589c96eebf94dae24df6b')
-
+groups=('shepherd-dep')
build() {
cd ${startdir}/src/${_realname}-${pkgver}
# install module in vendor directories.
diff --git a/abs/core-testing/perl_modules/perl-javascript/PKGBUILD b/abs/core-testing/perl_modules/perl-javascript/PKGBUILD
index 8ce00cb..564e2d9 100644
--- a/abs/core-testing/perl_modules/perl-javascript/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-javascript/PKGBUILD
@@ -1,7 +1,7 @@
pkgname=perl-javascript
_realname=JavaScript
pkgver=1.12
-pkgrel=1
+pkgrel=2
pkgdesc="get name of current working directory"
arch=('i686' 'x86_64')
url="http://search.cpan.org/~KWILLIAMS/Path-Class"
@@ -11,6 +11,7 @@ depends=('perl>=5.10.0' spidermonkey)
options=('!emptydirs')
source=(http://search.cpan.org/CPAN/authors/id/C/CL/CLAESJAC/JavaScript-$pkgver.tar.gz)
#source=(http://search.cpan.org/CPAN/authors/id/T/TB/TBUSCH/JavaScript-SpiderMonkey-0.19.tar.gz)
+groups=('shepherd-dep')
build() {
cd $startdir/src/$_realname-$pkgver
JS_INC=/usr/include/js PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
diff --git a/abs/core-testing/perl_modules/perl-list-compare/PKGBUILD b/abs/core-testing/perl_modules/perl-list-compare/PKGBUILD
index c1406c1..7480b98 100644
--- a/abs/core-testing/perl_modules/perl-list-compare/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-list-compare/PKGBUILD
@@ -4,12 +4,13 @@
pkgname=perl-list-compare
_realname=List-Compare
pkgver=0.37
-pkgrel=1
+pkgrel=2
pkgdesc="List::Compare - Compare elements of two or more lists"
arch=(i686 x86_64)
license=('PerlArtistic')
url="http://search.cpan.org/dist/${_realname}/"
depends=('perlxml' 'perl>=5.10.0')
+groups=('shepherd-dep')
options=('!emptydirs')
source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/J/JK/JKEENAN/${_realname}-${pkgver}.tar.gz)
md5sums=('7c730dd58cc31a5bbb8eb7006edd1704')
diff --git a/abs/core-testing/perl_modules/perl-pathtools/PKGBUILD b/abs/core-testing/perl_modules/perl-pathtools/PKGBUILD
index 11e69ab..db11a6f 100644
--- a/abs/core-testing/perl_modules/perl-pathtools/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-pathtools/PKGBUILD
@@ -1,7 +1,7 @@
pkgname=perl-pathtools
pkgver=3.29
-pkgrel=1
+pkgrel=2
pkgdesc="get name of current working directory"
arch=('i686' 'x86_64')
url="http://search.cpan.org/~KWILLIAMS/Path-Class"
@@ -10,7 +10,7 @@ license=('GPL' 'PerlArtistic')
depends=('perl>=5.10.0')
options=('!emptydirs')
source=(http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/PathTools-$pkgver.tar.gz)
-
+groups=('shepherd-dep')
build() {
cd $startdir/src/PathTools-$pkgver
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
diff --git a/abs/core-testing/plextor-convertX-driver/PKGBUILD b/abs/core-testing/plextor-convertX-driver/PKGBUILD
index fb503fb..14ecfdc 100755
--- a/abs/core-testing/plextor-convertX-driver/PKGBUILD
+++ b/abs/core-testing/plextor-convertX-driver/PKGBUILD
@@ -2,28 +2,30 @@
pkgname=plextor-convertX-driver
pkgver=0.9.8
-pkgrel=3
-_kernver=2.6.27-ARCH
+pkgrel=6
+_kernver=2.6.28-LinHES
pkgdesc="Drivers for Plextor tuners"
arch=(i686 x86_64)
url="http://nikosapi.org/software/WIS_Go7007"
install="convertX.install"
-source=("http://nikosapi.org/software/WIS_Go7007/wis-go7007-linux-0.9.8-2.tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch')
+source=("http://go7007.imploder.org/wp-content/uploads/2009/02/wis-go7007-linux-098-4tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch')
depends=('udev>=070' 'fxload')
makedepends=('gcc')
+options=(!strip)
build() {
# SET UP
- cd $startdir/src/wis-go7007-linux-0.9.8-2 || return 1
- patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1
- patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1
+ cd $startdir/src/wis-go7007-linux-0.9.8-4 || return 1
+# patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1
+# patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1
# build
make clean || return 1
make || return 1
mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux
mkdir -p $startdir/pkg/etc/udev/rules.d
mkdir -p $startdir/pkg/usr/bin
+ mkdir -p $startdir/pkg/usr/sbin
# install
make DESTDIR=$startdir/pkg install || return 1
install -m755 apps/gorecord $startdir/pkg/usr/bin/gorecord
diff --git a/abs/core-testing/plextor-convertX-driver/convertX.install b/abs/core-testing/plextor-convertX-driver/convertX.install
index 8dfd0b7..8081c6a 100755
--- a/abs/core-testing/plextor-convertX-driver/convertX.install
+++ b/abs/core-testing/plextor-convertX-driver/convertX.install
@@ -5,7 +5,7 @@ pre_install() {
post_install() {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
- KERNEL_VERSION=2.6.17-STB
+ KERNEL_VERSION=2.6.28-LinHES
depmod -v $KERNEL_VERSION > /dev/null 2>&1
/bin/true
}
@@ -13,7 +13,7 @@ post_install() {
post_upgrade() {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
- KERNEL_VERSION=2.6.17-STB
+ KERNEL_VERSION=2.6.28-LinHES
depmod -v $KERNEL_VERSION > /dev/null 2>&1
/bin/true
}
@@ -21,7 +21,7 @@ post_upgrade() {
post_remove() {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
- KERNEL_VERSION=2.6.17-STB
+ KERNEL_VERSION=2.6.28-LinHES
depmod -v $KERNEL_VERSION > /dev/null 2>&1
/bin/true
}
diff --git a/abs/core-testing/smbclient/PKGBUILD b/abs/core-testing/smbclient/PKGBUILD
index 349572b..e2aaedd 100644
--- a/abs/core-testing/smbclient/PKGBUILD
+++ b/abs/core-testing/smbclient/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 34454 2009-04-09 12:39:47Z tpowa $
+# $Id: PKGBUILD 37507 2009-05-02 15:44:09Z tpowa $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=smbclient
-pkgver=3.3.3
+pkgver=3.3.4
# We use the 'A' to fake out pacman's version comparators. Samba chooses
# to append 'a','b',etc to their subsequent releases, which pacman
# misconstrues as alpha, beta, etc. Bad samba!
-_realver=3.3.3
+_realver=3.3.4
pkgrel=1
pkgdesc="Tools to access a server's filespace and printers via SMB"
arch=(i686 x86_64)
url="http://www.samba.org"
license=('GPL3')
-depends=('popt' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.3.3')
+depends=('popt' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'db>=4.7' 'tdb=3.3.4')
source=(http://us1.samba.org/samba/ftp/samba-${_realver}.tar.gz)
options=(!makeflags)
@@ -54,4 +54,4 @@ build() {
done
install -m644 ../docs/manpages/libsmbclient.7 ${pkgdir}/usr/share/man/man7/
}
-md5sums=('4d5835817416d1ffa30783af45c5a9ed')
+md5sums=('1443165edb7cb3f56f1e77aec1ee3266')
diff --git a/abs/core-testing/tdb/PKGBUILD b/abs/core-testing/tdb/PKGBUILD
index 88f37dc..e908119 100644
--- a/abs/core-testing/tdb/PKGBUILD
+++ b/abs/core-testing/tdb/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 22194 2008-12-22 21:57:23Z tpowa $
+# $Id: PKGBUILD 37511 2009-05-02 16:17:09Z tpowa $
# Maintainer: eric <eric@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=tdb
-pkgver=3.2.6
-pkgrel=2
+pkgver=3.3.4
+pkgrel=1
# We use the 'A' to fake out pacman's version comparators. Samba chooses
# to append 'a','b',etc to their subsequent releases, which pamcan
# misconstrues as alpha, beta, etc. Bad samba!
-_realver=3.2.6
+_realver=3.3.4
pkgdesc="A Trivial Database similar to GDBM but allows simultaneous commits"
arch=(i686 x86_64)
license=('GPL3')
@@ -22,7 +22,7 @@ build() {
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
- ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so.1
- ln -sf /usr/lib/libtdb.so.1.1.1 ${pkgdir}/usr/lib/libtdb.so
+ ln -sf /usr/lib/libtdb.so.1.1.2 ${pkgdir}/usr/lib/libtdb.so.1
+ ln -sf /usr/lib/libtdb.so.1.1.2 ${pkgdir}/usr/lib/libtdb.so
}
-md5sums=('0cd27c7afbb8211616eea4010f32271c')
+md5sums=('1443165edb7cb3f56f1e77aec1ee3266')
diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index f546293..9617e49 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=tweaker
pkgver=1
-pkgrel=29
+pkgrel=31
pkgdesc=""
arch=('i686' 'x86_64')
diff --git a/abs/core-testing/tweaker/bin/twk_cpu.pl b/abs/core-testing/tweaker/bin/twk_cpu.pl
index fb256cb..118bac1 100755
--- a/abs/core-testing/tweaker/bin/twk_cpu.pl
+++ b/abs/core-testing/tweaker/bin/twk_cpu.pl
@@ -84,7 +84,7 @@ sub implement_option {
# }
}
case "medium" {
- change_or_make_setting('AutoCommflagWhileRecording', '0') || exit -1;
+ change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
#change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality
#change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality
@@ -94,7 +94,7 @@ sub implement_option {
case "high" {
change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
# ??? Interacts with screen aspect ratio
- change_or_make_setting('Theme', 'LinHES') || exit -1; # High eye candy, potentially low performance
+ change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
#change_or_make_entry("displayprofiles", [["pref_decoder", "ffmpeg"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality
#change_or_make_setting('PreferredMPEG2Decoder', 'ffmpeg') || exit -1; # Most CPU usage, best quality
change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index 5b48bda..387920c 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -407,12 +407,11 @@ sub implement_option {
change_or_make_setting('StartupSecsBeforeRecording', '120');
change_or_make_setting('TruncateDeletesSlowly', '1');
change_or_make_setting('UseOutputPictureControls', '1');
- change_or_make_setting('UserJob1', 'myth2ipod -cut \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJob2', 'myt2xvid3 -cut \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJobDesc1', 'Encode for iPod');
- change_or_make_setting('UserJobDesc2', 'Transcode to XviD');
+ change_or_make_setting('UserJob4', 'myth2mp3 -cut \"%DIR%\" \"%FILE%\"');
+ change_or_make_setting('UserJobDesc1', 'User Job #1');
+ change_or_make_setting('UserJobDesc2', 'User Job #2');
change_or_make_setting('UserJobDesc3', 'User Job #3');
- change_or_make_setting('UserJobDesc4', 'User Job #4');
+ change_or_make_setting('UserJobDesc4', 'Extract audio');
change_or_make_setting('VCDPlayerCommand', 'mplayer vcd:\/\/ -cdrom-device %d -fs -zoom -vo xv -vf pp=lb');
change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers");
change_or_make_setting('VideoBrowserNoDB', '1');
diff --git a/abs/core-testing/tweaker/bin/twk_keymap.sh b/abs/core-testing/tweaker/bin/twk_keymap.sh
index 7e4ef8b..2aa38ee 100755
--- a/abs/core-testing/tweaker/bin/twk_keymap.sh
+++ b/abs/core-testing/tweaker/bin/twk_keymap.sh
@@ -69,5 +69,3 @@ else
echo "ERROR: /etc/mplayer/input.conf is missing, which is unexpected."
exit -1
fi
-
-echo "Tweaked keymap" \ No newline at end of file
diff --git a/abs/core/live-installer/PKGBUILD b/abs/core/live-installer/PKGBUILD
index 5b41dcd..e93031d 100755
--- a/abs/core/live-installer/PKGBUILD
+++ b/abs/core/live-installer/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=live-installer
pkgver=1.0
-pkgrel=26
+pkgrel=27
pkgdesc="Install and configure your system"
#depends=(bc mysql-python expect curl dnsutils)
depends=(bc libstatgrab mysql-python expect curl dnsutils parted sg3_utils)
diff --git a/abs/core/live-installer/install_proxy.sh b/abs/core/live-installer/install_proxy.sh
index 756c46d..ec7f29c 100755
--- a/abs/core/live-installer/install_proxy.sh
+++ b/abs/core/live-installer/install_proxy.sh
@@ -44,7 +44,7 @@ full_install () {
sleep 1
$run partition_it $disk $rootsize $datasize $swapsize
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs $datafs
@@ -144,7 +144,7 @@ function upgrade () {
if [ ! x$rootfs = "xDo_not_format" ]
then
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs NO
diff --git a/abs/extra-testing/community/cpulimit/PKGBUILD b/abs/extra-testing/community/cpulimit/PKGBUILD
new file mode 100644
index 0000000..28a3b55
--- /dev/null
+++ b/abs/extra-testing/community/cpulimit/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD,v 1.6 2009/02/09 18:02:27 abhidg Exp $
+# Maintainer: Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+
+pkgname=cpulimit
+pkgver=1.1
+pkgrel=1
+pkgdesc="Limit cpu usage in %. Actualy sends SIGSTOP/SIGCONT"
+arch=('i686' 'x86_64')
+url="http://cpulimit.sourceforge.net/"
+license=("GPL")
+source=("http://downloads.sourceforge.net/sourceforge/cpulimit/cpulimit-$pkgver.tar.gz")
+md5sums=('f4ff6d4bfaef1258e8f5cd2041e2e2a3')
+
+build () {
+ cd $startdir/src/$pkgname-$pkgver
+ make
+ install -D -m0755 cpulimit $startdir/pkg/usr/bin/cpulimit
+}
+
diff --git a/abs/extra-testing/community/vsftpd/PKGBUILD b/abs/extra-testing/community/vsftpd/PKGBUILD
new file mode 100644
index 0000000..32a4007
--- /dev/null
+++ b/abs/extra-testing/community/vsftpd/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 29700 2009-03-11 22:18:56Z hugo $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=vsftpd
+pkgver=2.1.0
+pkgrel=4
+pkgdesc="Very Secure FTP daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+backup=(etc/vsftpd.conf etc/xinetd.d/vsftpd)
+url="http://vsftpd.beasts.org/"
+#makedepends=('vim')
+depends=('glibc' 'pam' 'tcp_wrappers>=7.6-8' 'openssl>=0.9.8j-1' 'libcap>=2.16')
+install=vsftpd.install
+source=(ftp://vsftpd.beasts.org/users/cevans/vsftpd-$pkgver.tar.gz \
+ vsftpd.xinetd vsftpd.d run)
+md5sums=('7890b54e7ffa6106ffbdfda53f47fa41'
+ 'b07fd4609c70063c1d6b20142910c1a6'
+ 'e46ed8e4c4a6e6a3de59f60b98e4f569'
+ '8abbed7cc75f9a9d2944e0e83c8dd90d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # build-time config
+ sed \
+ -e 's|^#undef VSF_BUILD_TCPWRAPPERS$|#define VSF_BUILD_TCPWRAPPERS|' \
+ -e 's|^#undef VSF_BUILD_SSL$|#define VSF_BUILD_SSL|' \
+ -i builddefs.h
+ make CFLAGS="${CFLAGS}" || return 1
+ install -D -m755 vsftpd ${pkgdir}/usr/sbin/vsftpd || return 1
+ install -D -m644 vsftpd.conf ${pkgdir}/etc/vsftpd.conf || return 1
+ install -D -m644 vsftpd.8 ${pkgdir}/usr/share/man/man8/vsftpd.8 || return 1
+ install -D -m644 vsftpd.conf.5 ${pkgdir}/usr/share/man/man5/vsftpd.conf.5 || return 1
+ install -D -m644 ../vsftpd.xinetd ${pkgdir}/etc/xinetd.d/vsftpd || return 1
+ install -D -m755 ../vsftpd.d ${pkgdir}/etc/rc.d/vsftpd || return 1
+ mkdir -p $startdir/pkg/usr/share/empty
+# ex ${pkgdir}/etc/vsftpd.conf <<_EOF
+#2
+#i
+##
+## Use this to use vsftpd in standalone mode, otherwise it runs through (x)inetd
+##listen=YES
+#.
+#w
+#q
+#_EOF
+#}
+# Below added for LinHES
+ mkdir -p $startdir/pkg/etc/sv/vsftpd/supervise
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/vsftpd/
+}
diff --git a/abs/extra-testing/community/vsftpd/run b/abs/extra-testing/community/vsftpd/run
new file mode 100644
index 0000000..1fd5202
--- /dev/null
+++ b/abs/extra-testing/community/vsftpd/run
@@ -0,0 +1,13 @@
+#!/bin/sh
+exec 2>&1
+. /etc/profile
+. /etc/systemconfig
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+stat_runit "Starting VSFTPD"
+export HOME=/root
+
+# Start vsftpd
+/usr/sbin/vsftpd /etc/vsftpd.conf
diff --git a/abs/extra-testing/community/vsftpd/vsftpd.d b/abs/extra-testing/community/vsftpd/vsftpd.d
new file mode 100644
index 0000000..b43a6d0
--- /dev/null
+++ b/abs/extra-testing/community/vsftpd/vsftpd.d
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/vsftpd`
+case "$1" in
+ start)
+ stat_busy "Starting vsftpd FTP Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/vsftpd &
+ PID=`pidof -o %PPID /usr/sbin/vsftpd`
+ if [ -z $PID ]; then
+ stat_fail
+ else
+ add_daemon vsftpd
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping vsftpd FTP Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon vsftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/abs/extra-testing/community/vsftpd/vsftpd.install b/abs/extra-testing/community/vsftpd/vsftpd.install
new file mode 100644
index 0000000..3bbb2cc
--- /dev/null
+++ b/abs/extra-testing/community/vsftpd/vsftpd.install
@@ -0,0 +1,22 @@
+# arg 1: the new package version
+post_install() {
+ if [ -f lib/modules/`uname -r`/kernel/security/capability.ko ]; then
+ echo ">>> It appears that your current kernel has linux security"
+ echo ">>> capabilities built as a module. vsftpd requires this"
+ echo ">>> functionality to operate."
+ echo ">>>"
+ echo ">>> To activate the module, please load it now (modprobe capability)."
+ echo ">>> Also, you should add it to your MODULES array in rc.conf, so"
+ echo ">>> it will be activated automatically at boot-up."
+ fi
+# Below added for LinHES
+ add_service.sh vsftpd
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ remove_service.sh vsftpd
+}
diff --git a/abs/extra-testing/community/vsftpd/vsftpd.xinetd b/abs/extra-testing/community/vsftpd/vsftpd.xinetd
new file mode 100644
index 0000000..eff2eb3
--- /dev/null
+++ b/abs/extra-testing/community/vsftpd/vsftpd.xinetd
@@ -0,0 +1,10 @@
+service ftp
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/vsftpd
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/abs/extra-testing/fuppes-svn/PKGBUILD b/abs/extra-testing/fuppes-svn/PKGBUILD
index fd794b6..3c14ddd 100644
--- a/abs/extra-testing/fuppes-svn/PKGBUILD
+++ b/abs/extra-testing/fuppes-svn/PKGBUILD
@@ -3,15 +3,18 @@
pkgname=fuppes-svn
pkgver=636
-pkgrel=2
+pkgrel=5
pkgdesc="A free, multiplatform Universal Plug and Play A/V MediaServer"
arch=('i686' 'x86_64')
url="http://fuppes.ulrich-voelkel.de/"
license=('GPL2')
depends=('pcre' 'libxml2' 'sqlite3' 'gettext' 'taglib' 'imagemagick' 'ffmpeg' 'libmp4v2' 'lame' 'libvorbis' 'libmpcdec' 'flac' 'faad2' 'libmad')
makdepends=('pkgconfig' 'autoconf' 'subversion')
-source=(fuppes-r634-archlinux.patch fuppes.diff)
-md5sums=('5d9f6331cc91b64aab69449ce327b214' 'c495fa1bd9a870ae36820632434319ee')
+install=fuppes.install
+source=(fuppes-r634-archlinux.patch fuppes.diff fuppes.cfg run fuppes.ch)
+md5sums=('5d9f6331cc91b64aab69449ce327b214' 'c495fa1bd9a870ae36820632434319ee' \
+ 'b0cef07d8e60d01c8146a69870672e1f' 'd8615e017b9929498076c312f134b2ed' \
+ '3c355b860f1b0d273f5aa8b2bea1bde6')
_svnmod="fuppes"
_svntrunk="https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk"
@@ -36,5 +39,11 @@ build()
make || return 1
make DESTDIR=$startdir/pkg install || return 1
+ mkdir -p $startdir/pkg/etc/sv/fuppes/supervise
+ install -D -m755 $startdir/src/run $startdir/pkg/etc/sv/fuppes/
+ mkdir -p $startdir/pkg/etc/fuppes
+ cp $startdir/src/fuppes.cfg $startdir/pkg/etc/fuppes
+ mkdir -p $startdir/pkg/etc/cron.hourly
+ install -D -m755 $startdir/src/fuppes.ch $startdir/pkg/etc/cron.hourly
}
diff --git a/abs/extra-testing/fuppes-svn/fuppes.cfg b/abs/extra-testing/fuppes-svn/fuppes.cfg
new file mode 100644
index 0000000..beb81cf
--- /dev/null
+++ b/abs/extra-testing/fuppes-svn/fuppes.cfg
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fuppes_config version="0.7.2.3">
+ <shared_objects>
+ <!--<dir>/mnt/music</dir>-->
+ <!--<itunes>/Users/.../iTunes.xml</itunes>-->
+ <dir>/myth/tv</dir>
+ <dir>/myth/video</dir>
+ <dir>/myth/music</dir>
+ <dir>/myth/gallery</dir>
+ <dir>/myth/pretty</dir>
+ </shared_objects>
+ <network>
+ <!--empty = automatic detection-->
+ <interface>192.168.1.253</interface>
+ <!--empty or 0 = random port-->
+ <http_port>81</http_port>
+ <!--list of ip addresses allowed to access fuppes. if empty all ips are allowed-->
+ <allowed_ips>
+ <!--<ip>192.168.0.1</ip>-->
+ </allowed_ips>
+ </network>
+ <content_directory>
+ <!--a list of possible charsets can be found under:
+ http://www.gnu.org/software/libiconv/-->
+ <local_charset>UTF-8</local_charset>
+ <!--libs used for metadata extraction when building the database. [true|false]-->
+ <use_imagemagick>true</use_imagemagick>
+ <use_taglib>true</use_taglib>
+ <use_libavformat>true</use_libavformat>
+ </content_directory>
+ <global_settings>
+ <temp_dir/>
+ <!--uuid is written to and read from <config-dir>/uuid.txt if set to true-->
+ <use_fixed_uuid>false</use_fixed_uuid>
+ </global_settings>
+ <device_settings>
+ <!--"default" settings are inhertied by specific devices and can be overwritten-->
+ <!--do NOT remove the "default" device settings-->
+ <!--all new file types have to be added to the default settings-->
+ <!--adding new file types just to a specific device will have no affect-->
+ <device name="default">
+ <!--specify the maximum length for file names (0 or empty = unlimited)-->
+ <max_file_name_length>0</max_file_name_length>
+ <!--[file|container]-->
+ <playlist_style>file</playlist_style>
+ <show_childcount_in_title>false</show_childcount_in_title>
+ <enable_dlna>false</enable_dlna>
+ <transcoding_release_delay>4</transcoding_release_delay>
+ <file_settings>
+ <!--audio files-->
+ <file ext="mp3">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ </file>
+ <file ext="ogg">
+ <type>AUDIO_ITEM</type>
+ <mime_type>application/octet-stream</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>vorbis</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="mpc">
+ <type>AUDIO_ITEM</type>
+ <mime_type>application/octet-stream</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>musepack</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="wav">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-wav</mime_type>
+ </file>
+ <file ext="flac">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-flac</mime_type>
+ <transcode enabled="true">
+ <ext>mp3</ext>
+ <mime_type>audio/mpeg</mime_type>
+ <dlna>MP3</dlna>
+ <http_encoding>chunked</http_encoding>
+ <decoder>flac</decoder>
+ <encoder>lame</encoder>
+ <bitrate>192</bitrate>
+ <samplerate>44100</samplerate>
+ </transcode>
+ </file>
+ <file ext="wma">
+ <type>AUDIO_ITEM</type>
+ <mime_type>audio/x-ms-wma</mime_type>
+ <dlna>WMAFULL</dlna>
+ </file>
+ <!--image files-->
+ <file ext="jpg">
+ <ext>jpeg</ext>
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/jpeg</mime_type>
+ <convert enabled="false">
+ <!--<dcraw enabled="true">-q 0</dcraw>-->
+ <ext>png</ext>
+ <mime_type>image/png</mime_type>
+ <height>0</height>
+ <width>0</width>
+ <!--set "greater" to "true" if you only want to resize images greater than "height" or "width"-->
+ <greater>false</greater>
+ <!--set "less" to "true" if you only want to resize images less than "height" or "width"-->
+ <less>false</less>
+ <!--set "less" and "greater" to "false" if you always want to resize-->
+ </convert>
+ </file>
+ <file ext="bmp">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/bmp</mime_type>
+ </file>
+ <file ext="png">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/png</mime_type>
+ </file>
+ <file ext="gif">
+ <type>IMAGE_ITEM</type>
+ <mime_type>image/gif</mime_type>
+ </file>
+ <!--video files-->
+ <file ext="mpg">
+ <ext>mpeg</ext>
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/mpeg</mime_type>
+ </file>
+ <file ext="mp4">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/mp4</mime_type>
+ </file>
+ <file ext="avi">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-msvideo</mime_type>
+ </file>
+ <file ext="wmv">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-wmv</mime_type>
+ </file>
+ <file ext="vob">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-vob</mime_type>
+ </file>
+ <file ext="vdr">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-extension-vdr</mime_type>
+ <transcode enabled="true">
+ <ext>vob</ext>
+ <mime_type>video/x-ms-vob</mime_type>
+ </transcode>
+ </file>
+ <file ext="flv">
+ <type>VIDEO_ITEM</type>
+ <mime_type>application/x-flash-video</mime_type>
+ </file>
+ <file ext="asf">
+ <type>VIDEO_ITEM</type>
+ <mime_type>video/x-ms-asf</mime_type>
+ </file>
+ <!--playlists-->
+ <file ext="pls">
+ <type>PLAYLIST</type>
+ <mime_type>audio/x-scpls</mime_type>
+ </file>
+ <file ext="m3u">
+ <type>PLAYLIST</type>
+ <mime_type>audio/x-mpegurl</mime_type>
+ </file>
+ </file_settings>
+ </device>
+ <!--For other device settings take a look at http://fuppes.ulrich-voelkel.de/wiki/index.php/Category:Device-->
+ <!--If you have more than one device it is a good idea to set the ip address as some devices may have conflicting "user agents".-->
+ <!--It is safe to remove unneeded devices-->
+ <device name="PS3" enabled="false">
+ <user_agent>UPnP/1.0 DLNADOC/1.00</user_agent>
+ <user_agent>PLAYSTATION3</user_agent>
+ <!--<ip></ip>-->
+ <enable_dlna>true</enable_dlna>
+ <transcoding_release_delay>50</transcoding_release_delay>
+ <file_settings>
+ <file ext="ogg">
+ <type>AUDIO_ITEM_MUSIC_TRACK</type>
+ <transcode enabled="true">
+ <http_encoding>stream</http_encoding>
+ </transcode>
+ </file>
+ </file_settings>
+ </device>
+ <device name="Xbox 360" virtual="Xbox 360" enabled="false">
+ <user_agent>Xbox/2.0.\d+.\d+ UPnP/1.0 Xbox/2.0.\d+.\d+</user_agent>
+ <user_agent>Xenon</user_agent>
+ <xbox360>true</xbox360>
+ <show_empty_resolution>true</show_empty_resolution>
+ <description_values>
+ <friendly_name>%s %v : 1 : Windows Media Connect</friendly_name>
+ <model_name>Windows Media Connect compatible (%s)</model_name>
+ <model_number>2.0</model_number>
+ </description_values>
+ </device>
+ </device_settings>
+</fuppes_config>
diff --git a/abs/extra-testing/fuppes-svn/fuppes.ch b/abs/extra-testing/fuppes-svn/fuppes.ch
new file mode 100644
index 0000000..60960b5
--- /dev/null
+++ b/abs/extra-testing/fuppes-svn/fuppes.ch
@@ -0,0 +1,2 @@
+#!/bin/bash
+/usr/bin/wget -O /dev/null -q http://localhost:81/presentation/options.html?db=update &> /dev/null
diff --git a/abs/extra-testing/fuppes-svn/fuppes.install b/abs/extra-testing/fuppes-svn/fuppes.install
new file mode 100644
index 0000000..d0099e3
--- /dev/null
+++ b/abs/extra-testing/fuppes-svn/fuppes.install
@@ -0,0 +1,20 @@
+# arg 1: the new package version
+post_install() {
+ sv stop mythbackend
+ mv /etc/sv/mythbackend/run /tmp
+ sed 's/logfile/noupnp\ --logfile/' </tmp/run >/etc/sv/mythbackend/run
+ chmod 755 /etc/sv/mythbackend/run
+ sv start mythbackend
+ add_service.sh fuppes
+ sv start fuppes
+}
+
+post_remove() {
+ sv stop fuppes
+ remove_service.sh fuppes
+ mv /etc/sv/mythbackend/run /tmp/run
+ sv stop mythbackend
+ sed 's/--noupnp\ --logfile/--logfile/' </tmp/run >/etc/sv/mythbackend/run
+ chmod 755 /etc/sv/mythbackend/run
+ sv start mythbackend
+}
diff --git a/abs/extra-testing/fuppes-svn/run b/abs/extra-testing/fuppes-svn/run
new file mode 100755
index 0000000..670a3dd
--- /dev/null
+++ b/abs/extra-testing/fuppes-svn/run
@@ -0,0 +1,2 @@
+#!/bin/bash
+exec /usr/bin/fuppes --config-dir /etc/fuppes --database-file /data/srv/fuppes/fuppes.db --temp-dir /myth/tmp
diff --git a/abs/extra-testing/perl-algorithm-diff/PKGBUILD b/abs/extra-testing/perl-algorithm-diff/PKGBUILD
deleted file mode 100644
index 43d53c1..0000000
--- a/abs/extra-testing/perl-algorithm-diff/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
-# Contributor: François Charette <firmicus ατ gmx δοτ net>
-
-pkgname=perl-algorithm-diff
-pkgver=1.1902
-pkgrel=1
-pkgdesc="Compute intelligent differences between two files / lists"
-arch=('i686' 'x86_64')
-url="http://search.cpan.org/~TJMATHER/XML-RegExp"
-license=('GPL' 'PerlArtistic')
-depends=('perl>=5.10.0')
-options=('!emptydirs')
-source=(http://search.cpan.org/CPAN/authors/id/T/TY/TYEMQ/Algorithm-Diff-$pkgver.tar.gz)
-md5sums=('ff3e17ae485f8adfb8857b183991fbce')
-
-build() {
- cd $startdir/src/Algorithm-Diff-$pkgver
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
- make install DESTDIR=$startdir/pkg || return 1
- find $startdir/pkg -name '.packlist' -delete
- find $startdir/pkg -name '*.pod' -delete
-}
diff --git a/abs/mv-core/MythVantage-config/PKGBUILD b/abs/mv-core/MythVantage-config/PKGBUILD
index d59299e..70c3029 100755
--- a/abs/mv-core/MythVantage-config/PKGBUILD
+++ b/abs/mv-core/MythVantage-config/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=MythVantage-config
pkgver=3.2
-pkgrel=152
+pkgrel=153
pkgdesc="The Gui-installer"
depends=(bc mysql-python expect curl dnsutils sg3_utils parted)
arch=('i686')
diff --git a/abs/mv-core/MythVantage-config/install_proxy.sh b/abs/mv-core/MythVantage-config/install_proxy.sh
index 84b397e..9019349 100755
--- a/abs/mv-core/MythVantage-config/install_proxy.sh
+++ b/abs/mv-core/MythVantage-config/install_proxy.sh
@@ -63,7 +63,7 @@ full_install () {
sleep 1
$run partition_it $disk $rootsize $datasize $swapsize
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs $datafs
@@ -165,7 +165,7 @@ function upgrade () {
if [ ! x$rootfs = "xDo_not_format" ]
then
- echo "Formating $disk" > /tmp/.install_state
+ echo "Formatting $disk" > /tmp/.install_state
progress 2
sleep 1
$run format_it $disk $rootfs NO