From da98b0f401f135cb5a04270dbfc46c5dafc43d9d Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Mon, 17 Aug 2009 12:15:12 -0500
Subject: LinHESconfig: remove debugging code, finish myth vars in network

---
 abs/core-testing/LinHES-config/mv_advanced.py  |  3 --
 abs/core-testing/LinHES-config/mv_install.py   |  3 +-
 abs/core-testing/LinHES-config/mv_network.py   | 56 +++++++++++++++++++++++++-
 abs/core-testing/LinHES-config/systemconfig.py |  2 +
 4 files changed, 58 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/LinHES-config/mv_advanced.py b/abs/core-testing/LinHES-config/mv_advanced.py
index d7c65f1..2b53d04 100755
--- a/abs/core-testing/LinHES-config/mv_advanced.py
+++ b/abs/core-testing/LinHES-config/mv_advanced.py
@@ -369,9 +369,6 @@ def setup_advanced(systemconfig,data_config):
     setup_evrouter(systemconfig["UseEvrouter"],
                    systemconfig["EvrouterConfig"],
                    systemconfig["TEMPLATES"])
-    systemconfig["mythip"]="192.168.100.myip"
-    systemconfig["mythgw"]="192.168.100.mygw"
-    systemconfig["mythdns"]="192.168.100.100"
 
     setup_DNSmasq(systemconfig["RunDHCP"],
                   systemconfig["mythip"],
diff --git a/abs/core-testing/LinHES-config/mv_install.py b/abs/core-testing/LinHES-config/mv_install.py
index 2f2d1c2..56118c1 100755
--- a/abs/core-testing/LinHES-config/mv_install.py
+++ b/abs/core-testing/LinHES-config/mv_install.py
@@ -137,14 +137,13 @@ def copy_updates():
     cp_and_log2(MVROOT+"/bin/", data_config.MOUNTPOINT+MVROOT+"/bin", "*.py")
 
 def timezone_to_db(timefile):
-    logging.info("importing timezone needs")
+    logging.info("importing timezone")
     try:
         f = open(timefile)
         timezonecontents = f.readline().strip()
         f.close()
     except:
         logging.debug("Couldn't open /tmp/etc/timezone, will not set the timezone")
-	updatedb("HostTimeZone", "Unknown");
         return
     update_db("HostTimeZone", timezonecontents);
     tzsplit = timezonecontents.partition('/')
diff --git a/abs/core-testing/LinHES-config/mv_network.py b/abs/core-testing/LinHES-config/mv_network.py
index 855940f..3f8de3b 100755
--- a/abs/core-testing/LinHES-config/mv_network.py
+++ b/abs/core-testing/LinHES-config/mv_network.py
@@ -3,7 +3,7 @@ import sys , os, commands , glob, time, re
 import logging
 import mv_common
 import socket, fcntl, struct, array
-import netifaces
+import netifaces, iplib
 global etcnetdir
 etcnetdir = "/etc/net/ifaces"
 
@@ -49,6 +49,25 @@ def get_ip(ifname):
         struct.pack('256s', ifname[:15])
     )[20:24])
 
+def get_default_route(iface):
+    rcroute = "127.0.0.1" 
+    f = open ('/proc/net/route', 'r')
+    for line in f:
+        words = string.split (line)
+        netiface = words[0]
+        route =  words[2]
+        flags =  words[3]
+        try:
+            if ( netiface == iface ) and ( flags == "0003") :
+                route = iplib.IPv4Address(route, notation="hex")
+                t = str(route.get_dot())
+                s = t.split(".")
+                rcroute = s[3] + "." + s[2] + "." + s[1] + "." + s[0]
+                break
+        except ValueError:
+            pass
+    return rcroute
+
 def setup_MYTH_IP(systemconfig):
     default_interface = systemconfig["default_interface"]
     #check for dhcp in use
@@ -64,6 +83,41 @@ def setup_MYTH_IP(systemconfig):
     logging.debug("    Using %s as default ip", defaultip)
     return defaultip
 
+
+def setup_MYTH_GW(systemconfig):
+    default_interface = systemconfig["default_interface"]
+    #check for dhcp in use
+    if setup_MYTH_DHCP(systemconfig) == "0":
+        logging.debug("   dhcp is in use, finding dhcp ip")
+        defaultgw = get_default_route(default_interface)
+    else:
+        try:
+            defaultgw = systemconfig["Hostgw"+default_interface]
+        except:
+            logging.debug("    Error occured finding the defaultgw")
+            defaultgw = "127.0.0.1"
+    logging.debug("    Using %s as default gw", defaultgw)
+    return defaultgw
+
+
+def setup_MTYH_DNS():
+    returndns = "127.0.0.1"
+    try:
+      f = open ('/etc/resolv.conf', 'r')
+      for line in f:
+          if line.startswith("nameserver"):
+              print line
+              returndns = line.split()[1]  
+              break
+    except:
+      logging.debug("   Couldn't open /etc/resolv.conf for myth_dns")
+    logging.debug("   using %s for myth_dns", returndns)
+    return returndns
+
+
+
+
+
 def flush(netdev):
     logging.debug("    Flushing %s",netdev)
     cmd = '''ip address flush dev %s''' %netdev
diff --git a/abs/core-testing/LinHES-config/systemconfig.py b/abs/core-testing/LinHES-config/systemconfig.py
index b2f8529..c559e09 100755
--- a/abs/core-testing/LinHES-config/systemconfig.py
+++ b/abs/core-testing/LinHES-config/systemconfig.py
@@ -75,6 +75,8 @@ def main(argv):
 
     systemconfig["mythip"] = mv_network.setup_MYTH_IP(systemconfig)
     systemconfig["mythdhcp"] = mv_network.setup_MYTH_DHCP(systemconfig)
+    systemconfig["mythgw"] = mv_network.setup_MYTH_DHCP(systemconfig)
+    systemconfig["mythdns"] = mv_network.setup_MYTH_DHCP(systemconfig)
 
     if cmdmodule["all"]:
         logging.info("***    WILL RUN ALL MODULES   ***")
-- 
cgit v0.12


From 997dbedae9ea47fbb46ec15f8827cf1a8065c11e Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Mon, 17 Aug 2009 12:16:31 -0500
Subject: mv-core: bring it up to date so that it works again

---
 abs/mv-core/MythVantage-config/PKGBUILD            |   83 +-
 .../MythVantage-config/checkout_MythVantage.sh     |    3 +-
 abs/mv-core/MythVantage-config/file_time_offset.py |   39 +
 .../MythVantage-config/install_functions.sh        |  525 +++----
 abs/mv-core/MythVantage-config/install_proxy.sh    |  616 +++------
 abs/mv-core/MythVantage-config/mv_advanced.py      |  384 ++++++
 abs/mv-core/MythVantage-config/mv_common.py        |  200 +++
 abs/mv-core/MythVantage-config/mv_config.py        |   14 +
 abs/mv-core/MythVantage-config/mv_hostype.py       |  219 +++
 abs/mv-core/MythVantage-config/mv_install.py       | 1433 ++++++++++++++++++++
 abs/mv-core/MythVantage-config/mv_ir.py            |  330 +++++
 abs/mv-core/MythVantage-config/mv_misc.py          |  180 +++
 abs/mv-core/MythVantage-config/mv_network.py       |  504 +++++++
 abs/mv-core/MythVantage-config/mv_screensaver.py   |  199 +++
 abs/mv-core/MythVantage-config/mv_smolt.py         |   59 +
 abs/mv-core/MythVantage-config/mv_software.py      |   41 +
 abs/mv-core/MythVantage-config/mv_webuser.py       |   21 +
 abs/mv-core/MythVantage-config/myth_user_call.py   |  159 +++
 abs/mv-core/MythVantage-config/systemconfig.py     |  243 ++++
 abs/mv-core/MythVantage-config/systemconfig.sh     | 1269 +----------------
 abs/mv-core/MythVantage-config/timezip.py          |    8 +-
 abs/mv-core/MythVantage-config/xconfig.sh          |  109 +-
 abs/mv-core/hobbit-client/client/bin/bb            |  Bin 177017 -> 176817 bytes
 abs/mv-core/hobbit-client/client/bin/bbcmd         |  Bin 149244 -> 149012 bytes
 abs/mv-core/hobbit-client/client/bin/bbdigest      |  Bin 192338 -> 192018 bytes
 abs/mv-core/hobbit-client/client/bin/bbhostgrep    |  Bin 184578 -> 184354 bytes
 abs/mv-core/hobbit-client/client/bin/bbhostshow    |  Bin 146205 -> 145965 bytes
 abs/mv-core/hobbit-client/client/bin/clientupdate  |  Bin 180919 -> 180695 bytes
 abs/mv-core/hobbit-client/client/bin/hobbitlaunch  |  Bin 167359 -> 167103 bytes
 abs/mv-core/hobbit-client/client/bin/logfetch      |  Bin 217231 -> 216887 bytes
 abs/mv-core/hobbit-client/client/bin/msgcache      |  Bin 169865 -> 169641 bytes
 abs/mv-core/hobbit-client/client/bin/orcahobbit    |  Bin 173135 -> 172935 bytes
 abs/mv-core/mp_all.sh                              |   31 +
 .../myth/release-fixes/Midnight-blue/PKGBUILD      |   21 -
 .../myth/release-fixes/Midnight-wide/PKGBUILD      |   21 -
 .../MythVantage-menu/HOST_SETTINGS.xml             |   71 -
 .../MythVantage-menu/util_menu.xml                 |  121 --
 .../MythVantage-menu/util_menu.xml.mv              |  106 --
 .../release-fixes/MythVanage-mythmenu/PKGBUILD     |   15 -
 .../myth/release-fixes/basic-amber/PKGBUILD        |   20 -
 abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD |   20 -
 .../myth/release-fixes/basic-green/PKGBUILD        |   20 -
 .../myth/release-fixes/basic-purple/PKGBUILD       |   20 -
 abs/mv-core/myth/release-fixes/basic-red/PKGBUILD  |   20 -
 abs/mv-core/myth/release-fixes/compile-plugins.sh  |   17 -
 .../mythtv-release-fixes/3466-v1.patch             |  240 ----
 .../release-fixes/mythtv-release-fixes/PKGBUILD    |   79 --
 .../mythtv-release-fixes/dbconfig.patch            |   19 -
 .../mythtv-release-fixes/debug_uitypes.cpp.patch   |   21 -
 .../mythtv-release-fixes/debug_xmlparse.cpp.patch  |   14 -
 .../mythtv-release-fixes/jump_snapshot.patch       |   13 -
 .../mythtv-release-fixes/myth.find_orphans.pl      |  260 ----
 .../release-fixes/mythtv-release-fixes/myth.sh     |    4 -
 .../release-fixes/mythtv-release-fixes/mythbackend |   37 -
 .../mythtv-release-fixes/mythbackend.sh            |  117 --
 .../mythtv-release-fixes/myththemedmenu.cpp.patch  |  125 --
 .../mythtv-release-fixes/myththemedmenu.h.patch    |   25 -
 .../mythtv-release-fixes/mythtv.install            |   59 -
 .../mythtv-release-fixes/pop_be_restart.cpp.patch  |   51 -
 .../mythtv-release-fixes/pop_be_restart.h.patch    |   10 -
 .../mythtv-release-fixes/reload.patch              |   52 -
 .../mythtv-release-fixes/screenshot_jump.patch     |   10 -
 .../mythtv-release-fixes/screenshots.diff          |  458 -------
 .../mythtv-release-fixes/screenshots2.diff         |  467 -------
 .../mythtv-release-fixes/smolt_jump.patch          |   10 -
 .../myth/release-fixes/mythtv-themes/PKGBUILD      |   36 -
 .../release-fixes/plugins/mytharchive/PKGBUILD     |   41 -
 .../release-fixes/plugins/mythbrowser/PKGBUILD     |   34 -
 .../release-fixes/plugins/mythcontrols/PKGBUILD    |   36 -
 .../myth/release-fixes/plugins/mythflix/PKGBUILD   |   36 -
 .../release-fixes/plugins/mythgallery/PKGBUILD     |   36 -
 .../myth/release-fixes/plugins/mythgame/PKGBUILD   |   36 -
 .../release-fixes/plugins/mythmovietime/PKGBUILD   |   35 -
 .../myth/release-fixes/plugins/mythmusic/PKGBUILD  |   39 -
 .../plugins/mythmusic/music_flac.patch             |  293 ----
 .../myth/release-fixes/plugins/mythnews/PKGBUILD   |   34 -
 .../myth/release-fixes/plugins/mythphone/PKGBUILD  |   42 -
 .../myth/release-fixes/plugins/mythsmolt/PKGBUILD  |   27 -
 .../myth/release-fixes/plugins/mythvideo/PKGBUILD  |   36 -
 .../release-fixes/plugins/mythweather/PKGBUILD     |   37 -
 .../myth/release-fixes/plugins/mythweb/PKGBUILD    |   34 -
 .../release-fixes/plugins/mythweb/dblogininit.inc  |    6 -
 .../release-fixes/plugins/mythweb/mythweb.install  |   37 -
 .../plugins/mythweb/mythweblighttpd.patch          |   13 -
 .../myth/release-fixes/syth-lacquer-clean/PKGBUILD |   23 -
 .../myth/release-fixes/syth-lacquer-wide/PKGBUILD  |   23 -
 abs/mv-core/myth/stable/Midnight-blue/PKGBUILD     |   21 +
 abs/mv-core/myth/stable/Midnight-wide/PKGBUILD     |   21 +
 .../MythVantage-menu/HOST_SETTINGS.xml             |   71 +
 .../MythVantage-menu/util_menu.xml                 |  121 ++
 .../MythVantage-menu/util_menu.xml.mv              |  106 ++
 .../myth/stable/MythVanage-mythmenu/PKGBUILD       |   15 +
 abs/mv-core/myth/stable/basic-amber/PKGBUILD       |   20 +
 abs/mv-core/myth/stable/basic-blue/PKGBUILD        |   20 +
 abs/mv-core/myth/stable/basic-green/PKGBUILD       |   20 +
 abs/mv-core/myth/stable/basic-purple/PKGBUILD      |   20 +
 abs/mv-core/myth/stable/basic-red/PKGBUILD         |   20 +
 abs/mv-core/myth/stable/mp_all.sh                  |   30 +
 abs/mv-core/myth/stable/mytharchive/PKGBUILD       |   41 +
 abs/mv-core/myth/stable/mythbrowser/PKGBUILD       |   34 +
 abs/mv-core/myth/stable/mythcontrols/PKGBUILD      |   36 +
 abs/mv-core/myth/stable/mythflix/PKGBUILD          |   36 +
 abs/mv-core/myth/stable/mythgallery/PKGBUILD       |   36 +
 abs/mv-core/myth/stable/mythgame/PKGBUILD          |   36 +
 abs/mv-core/myth/stable/mythmovietime/PKGBUILD     |   35 +
 abs/mv-core/myth/stable/mythmusic/PKGBUILD         |   39 +
 abs/mv-core/myth/stable/mythmusic/music_flac.patch |  293 ++++
 abs/mv-core/myth/stable/mythnews/PKGBUILD          |   34 +
 abs/mv-core/myth/stable/mythphone/PKGBUILD         |   42 +
 abs/mv-core/myth/stable/mythsmolt/PKGBUILD         |   27 +
 .../myth/stable/mythtv-release-fixes/3466-v1.patch |  240 ++++
 .../myth/stable/mythtv-release-fixes/PKGBUILD      |   79 ++
 .../stable/mythtv-release-fixes/dbconfig.patch     |   19 +
 .../mythtv-release-fixes/debug_uitypes.cpp.patch   |   21 +
 .../mythtv-release-fixes/debug_xmlparse.cpp.patch  |   14 +
 .../mythtv-release-fixes/jump_snapshot.patch       |   13 +
 .../mythtv-release-fixes/myth.find_orphans.pl      |  260 ++++
 .../myth/stable/mythtv-release-fixes/myth.sh       |    4 +
 .../myth/stable/mythtv-release-fixes/mythbackend   |   37 +
 .../stable/mythtv-release-fixes/mythbackend.sh     |  117 ++
 .../mythtv-release-fixes/myththemedmenu.cpp.patch  |  125 ++
 .../mythtv-release-fixes/myththemedmenu.h.patch    |   25 +
 .../stable/mythtv-release-fixes/mythtv.install     |   59 +
 .../mythtv-release-fixes/pop_be_restart.cpp.patch  |   51 +
 .../mythtv-release-fixes/pop_be_restart.h.patch    |   10 +
 .../myth/stable/mythtv-release-fixes/reload.patch  |   52 +
 .../mythtv-release-fixes/screenshot_jump.patch     |   10 +
 .../stable/mythtv-release-fixes/screenshots.diff   |  458 +++++++
 .../stable/mythtv-release-fixes/screenshots2.diff  |  467 +++++++
 .../stable/mythtv-release-fixes/smolt_jump.patch   |   10 +
 abs/mv-core/myth/stable/mythtv-themes/PKGBUILD     |   36 +
 abs/mv-core/myth/stable/mythvideo/PKGBUILD         |   36 +
 abs/mv-core/myth/stable/mythweather/PKGBUILD       |   37 +
 abs/mv-core/myth/stable/mythweb/PKGBUILD           |   34 +
 abs/mv-core/myth/stable/mythweb/dblogininit.inc    |    6 +
 abs/mv-core/myth/stable/mythweb/mythweb.install    |   37 +
 .../myth/stable/mythweb/mythweblighttpd.patch      |   13 +
 .../myth/stable/syth-lacquer-clean/PKGBUILD        |   23 +
 abs/mv-core/myth/stable/syth-lacquer-wide/PKGBUILD |   23 +
 abs/mv-core/mythvantage-live/PKGBUILD              |    2 +-
 abs/mv-core/openssh/PKGBUILD                       |   63 -
 abs/mv-core/openssh/sshd                           |   40 -
 abs/mv-core/openssh/sshd.confd                     |    4 -
 abs/mv-core/openssh/sshd.pam                       |   10 -
 abs/mv-core/syslog-ng/PKGBUILD                     |    6 +-
 145 files changed, 8056 insertions(+), 5705 deletions(-)
 create mode 100755 abs/mv-core/MythVantage-config/file_time_offset.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_advanced.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_common.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_config.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_hostype.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_install.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_ir.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_misc.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_network.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_screensaver.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_smolt.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_software.py
 create mode 100755 abs/mv-core/MythVantage-config/mv_webuser.py
 create mode 100755 abs/mv-core/MythVantage-config/myth_user_call.py
 create mode 100755 abs/mv-core/MythVantage-config/systemconfig.py
 create mode 100644 abs/mv-core/mp_all.sh
 delete mode 100755 abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
 delete mode 100644 abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
 delete mode 100755 abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
 delete mode 100755 abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/basic-green/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/basic-red/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/compile-plugins.sh
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff
 delete mode 100644 abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch
 delete mode 100755 abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD
 delete mode 100644 abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc
 delete mode 100755 abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install
 delete mode 100755 abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch
 delete mode 100755 abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD
 delete mode 100755 abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/Midnight-blue/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/Midnight-wide/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
 create mode 100644 abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
 create mode 100755 abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
 create mode 100755 abs/mv-core/myth/stable/MythVanage-mythmenu/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/basic-amber/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/basic-blue/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/basic-green/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/basic-purple/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/basic-red/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mp_all.sh
 create mode 100644 abs/mv-core/myth/stable/mytharchive/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythbrowser/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythcontrols/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythflix/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythgallery/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythgame/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythmovietime/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythmusic/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythmusic/music_flac.patch
 create mode 100644 abs/mv-core/myth/stable/mythnews/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythphone/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythsmolt/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/3466-v1.patch
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/dbconfig.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/debug_uitypes.cpp.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/debug_xmlparse.cpp.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/jump_snapshot.patch
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/myth.find_orphans.pl
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/myth.sh
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend.sh
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.cpp.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.h.patch
 create mode 100755 abs/mv-core/myth/stable/mythtv-release-fixes/mythtv.install
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.cpp.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.h.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/reload.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/screenshot_jump.patch
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/screenshots.diff
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/screenshots2.diff
 create mode 100644 abs/mv-core/myth/stable/mythtv-release-fixes/smolt_jump.patch
 create mode 100755 abs/mv-core/myth/stable/mythtv-themes/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythvideo/PKGBUILD
 create mode 100644 abs/mv-core/myth/stable/mythweather/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/mythweb/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/mythweb/dblogininit.inc
 create mode 100755 abs/mv-core/myth/stable/mythweb/mythweb.install
 create mode 100755 abs/mv-core/myth/stable/mythweb/mythweblighttpd.patch
 create mode 100755 abs/mv-core/myth/stable/syth-lacquer-clean/PKGBUILD
 create mode 100755 abs/mv-core/myth/stable/syth-lacquer-wide/PKGBUILD
 delete mode 100644 abs/mv-core/openssh/PKGBUILD
 delete mode 100755 abs/mv-core/openssh/sshd
 delete mode 100644 abs/mv-core/openssh/sshd.confd
 delete mode 100644 abs/mv-core/openssh/sshd.pam

diff --git a/abs/mv-core/MythVantage-config/PKGBUILD b/abs/mv-core/MythVantage-config/PKGBUILD
index 70c3029..60c3dca 100755
--- a/abs/mv-core/MythVantage-config/PKGBUILD
+++ b/abs/mv-core/MythVantage-config/PKGBUILD
@@ -1,31 +1,66 @@
 pkgname=MythVantage-config
 pkgver=3.2
-pkgrel=153
+pkgrel=162
 pkgdesc="The Gui-installer"
-depends=(bc mysql-python expect curl dnsutils sg3_utils parted)
+
+depends=(bc libstatgrab  mysql-python expect curl dnsutils parted 
+	 sg3_utils nmbscan system-templates rsync python-parted 
+	 ddcxinfo python-pexpect python-netifaces python-iplib mythinstall)
+
 arch=('i686')
-source=(mythinstall.bin install-ui.xml  bpopup-ui.xml  mythbeselect.bin install_proxy.sh install_functions.sh startx systemconfig.sh install_db_chroot.sh restore_default_settings.sh live-install.sh xconfig.sh timezip.py soundconfig.sh mythvantage-release issue autocard.py MythVantage.sh create_master.sh build_diskless.sh networkconfig.sh myth_user_call )
-install=live.install
-build() {
 
+source=(mythinstall.bin 
+ install-ui.xml
+ bpopup-ui.xml
+ mythbeselect.bin
+ install_proxy.sh
+ install_functions.sh
+ startx systemconfig.sh
+ install_db_chroot.sh
+ restore_default_settings.sh
+ live-install.sh
+ xconfig.sh
+ timezip.py
+ soundconfig.sh
+ mythvantage-release
+ issue autocard.py 
+ MythVantage.sh 
+ create_master.sh 
+ build_diskless.sh 
+ networkconfig.sh 
+ myth_user_call
+ mv_advanced.py 
+ mv_common.py 
+ mv_config.py 
+ mv_ir.py 
+ mv_misc.py 
+ mv_network.py 
+ mv_screensaver.py 
+ mv_smolt.py 
+ mv_software.py 
+ mv_webuser.py 
+ mv_hostype.py 
+ systemconfig.py 
+ myth_user_call.py
+ mv_install.py)
+
+install=live.install
 
+build() {
     mkdir -p $startdir/pkg/etc
     mkdir -p $startdir/pkg/usr/share/mythtv/themes/default
-
-# new stuff
     MVDIR=$startdir/pkg/usr/MythVantage
-     mkdir  $startdir/pkg/etc/profile.d
-	install -m 0755 MythVantage.sh  $startdir/pkg/etc/profile.d/MythVantage.sh
-   mkdir -p $startdir/pkg/root/
+    mkdir  $startdir/pkg/etc/profile.d
+    install -m 0755 MythVantage.sh  $startdir/pkg/etc/profile.d/MythVantage.sh
+    mkdir -p $startdir/pkg/root/
 
 
     mkdir -p $MVDIR/bin
     mkdir -p $MVDIR/templates
     mkdir -p $MVDIR/etc
 #copy in all the installer specific stuff
-    #cp -rp ../templates $MVDIR/
     rsync -r --exclude=.svn ../templates $MVDIR/
-   install -m0700 myth_user_call  $MVDIR/bin/myth_user_call
+    install -m0700 myth_user_call  $MVDIR/bin/myth_user_call
     install -m 0755 install_proxy.sh  $MVDIR/bin/install_proxy.sh
     install -m 0755 install_functions.sh  $MVDIR/bin/install_functions.sh
     install -m 0755 systemconfig.sh  $MVDIR/bin/systemconfig.sh
@@ -38,9 +73,23 @@ build() {
     install -m 0755 autocard.py $MVDIR/bin/autocard.py
     install -m 0755 soundconfig.sh $MVDIR/bin/soundconfig.sh
     install -m 0755 networkconfig.sh $MVDIR/bin/networkconfig.sh
-     install -m 0755 create_master.sh $MVDIR/bin/create_master.sh
-     install -m 0755 build_diskless.sh $MVDIR/bin/build_diskless.sh
-
+    install -m 0755 create_master.sh $MVDIR/bin/create_master.sh
+    install -m 0755 build_diskless.sh $MVDIR/bin/build_diskless.sh
+    install -m 0755 timezip.py $MVDIR/bin/timezip.py
+    install -m 0755 autocard.py $MVDIR/bin/autocard.py
+    install -m 0755 mv_config.py $MVDIR/bin/mv_config.py
+    install -m 0755 mv_install.py $MVDIR/bin/mv_install.py
+    install -m 0755 mv_advanced.py  $MVDIR/bin/
+    install -m 0755 mv_common.py $MVDIR/bin/ 
+    install -m 0755 mv_ir.py  $MVDIR/bin/ 
+    install -m 0755 mv_misc.py  $MVDIR/bin/ 
+    install -m 0755 mv_network.py  $MVDIR/bin/ 
+    install -m 0755 mv_screensaver.py  $MVDIR/bin/ 
+    install -m 0755 mv_smolt.py  $MVDIR/bin/ 
+    install -m 0755 mv_software.py  $MVDIR/bin/ 
+    install -m 0755 mv_webuser.py $MVDIR/bin/ 
+    install -m 0755 mv_hostype.py $MVDIR/bin/ 
+    install -m 0755 systemconfig.py $MVDIR/bin/ 
 
     #copy in the branding stuff
     install -m 0755 mythvantage-release $startdir/pkg/etc/mythvantage-release
@@ -57,10 +106,6 @@ build() {
     ln -s MythVantage mythinstall
     cd -
     install -g mythtv -m 4750 mythbeselect.bin $MVDIR/bin/mythbeselect
-
-    #install -g mythtv -m 750 mythinstall.bin $MVDIR/bin/mythinstall
-#    mkdir -p $startdir/pkg/usr/share/templates
-    #cp -rp ../templates $startdir/pkg/usr/share/
     install -m 0755 startx $startdir/pkg/root/startx
     install -m 0755 live-install.sh $startdir/pkg/root/live-install.sh
 }
diff --git a/abs/mv-core/MythVantage-config/checkout_MythVantage.sh b/abs/mv-core/MythVantage-config/checkout_MythVantage.sh
index 54fad7e..9fbab15 100755
--- a/abs/mv-core/MythVantage-config/checkout_MythVantage.sh
+++ b/abs/mv-core/MythVantage-config/checkout_MythVantage.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 MYDIR=`pwd`
 MYTHPATH="\/data\/LinHES-PKGBUILD\/abs\/core-testing\/mythtv\/stable\/mythtv\/src\/mythtv-0.21"
-MYTHPATH="\/data\/LinHES-PKGBUILD\/abs\/mv-core\/myth\/release-fixes\/mythtv-release-fixes\/src\/mythtv"
+MYTHPATH="\/data\/LinHES-PKGBUILD\/abs\/mv-core\/myth\/stable\/mythtv-release-fixes\/src\/mythtv"
 
 function setup_links {
 rm mythinstall.bin
@@ -38,6 +38,7 @@ git checkout master
 
 dl_repo
 sed -i "s/^MYTHPATH.*$/MYTHPATH\=\"$MYTHPATH\"/g"  $MYDIR/src/MythVantage-app/mythinstall/mythinstall.pro
+sed -i "s/^MYTHPATH.*$/MYTHPATH\=\"$MYTHPATH\"/g"  $MYDIR/src/MythVantage-app/mythbeselect/mythberestart.pro
 sed -i "s/\/\/#define __MVAPP__/#define __MVAPP__/g" $MYDIR/src/MythVantage-app/mythinstall/mv_common.h
 sed -i "s/LinHES/mythvantage/g" $MYDIR/src/MythVantage-app/mythinstall/mv_common.h
 
diff --git a/abs/mv-core/MythVantage-config/file_time_offset.py b/abs/mv-core/MythVantage-config/file_time_offset.py
new file mode 100755
index 0000000..f2973d0
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/file_time_offset.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+
+
+import time
+import os
+import glob
+import getopt
+import sys
+def main(argv):
+    filecount=0
+#    root = "/tmp"
+#    offset = 4
+    now = int(time.time())
+
+
+    try:
+        opts, args = getopt.getopt(argv, "hs:d:")
+    except getopt.GetoptError:
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt in ("-h", "--help"):
+                print "-s seconds -d /testdir"
+                print "default if 4 seconds"
+                sys.exit()
+        elif opt in ( "-s" ):
+                offset = int(arg)
+        elif opt in ("-d"):
+                root = arg
+
+    for item in glob.glob(root+"/*"):
+        lastmodDate = os.path.getmtime(item)
+        tdiff= now-lastmodDate
+        #print tdiff, offset
+
+        if tdiff > offset:
+            filecount+=1
+    print filecount
+if __name__ == "__main__":
+    main(sys.argv[1:])
diff --git a/abs/mv-core/MythVantage-config/install_functions.sh b/abs/mv-core/MythVantage-config/install_functions.sh
index 1d217e9..0bc0591 100755
--- a/abs/mv-core/MythVantage-config/install_functions.sh
+++ b/abs/mv-core/MythVantage-config/install_functions.sh
@@ -1,5 +1,6 @@
 #!/bin/bash
 . /etc/profile
+
 disk=$2
 mountpoint=new_boot
 
@@ -10,9 +11,11 @@ CMDLINE=$(cat /proc/cmdline)
 hostname=`hostname`
 MYSQLCMD_C="mysql -u$MYTHDBUSER  -p$MYTHTVPASSWD mythconverg -B --exec"
 BASE=""
+found_remote=1
 
 function update_db_settings () {
 
+ printhl "  setting database value $1 to $2 for $hostname"
  $MYSQLCMD_C "delete from settings where value='${1}' and hostname=\"$hostname\";"
  $MYSQLCMD_C "REPLACE INTO  settings set value='${1}', data='${2}' , hostname=\"$hostname\";"
 }
@@ -29,13 +32,34 @@ theme=($THEMES)                # Read into array variable.
 num_themes=${#theme[*]}        # Count how many elements.
 
 pick=${theme[$((RANDOM%num_themes))]}
-echo "Selected $pick as the theme"
+printhl "   Selected $pick as the theme"
 update_db_settings Theme "$pick"
 }
 
+function parse_cmdline_2_db(){
+    echo $CMDLINE | grep -q displayres
+    if [ $? -eq 0 ]
+    then
+        TEMPVAR=${CMDLINE#*displayres=}
+        update_db_settings HostXres $TEMPVAR
+    fi
+
+}
+
+
+function bootsplash_setup (){
+    echo $CMDLINE | grep -q splash=silent
+    if [ $? -eq 0 ]
+    then
+        update_db_settings Hostbootsplash 1
+    else
+        update_db_settings Hostbootsplash 0
+    fi
+}
+
 
 function setupremote {
-    mv $BASE/etc/lircd.conf $BASE/etc/lircd.conf.`date +%Y-%m-%d-%H-%M`
+    [ -e $BASE/etc/lircd.conf ] && mv -f $BASE/etc/lircd.conf $BASE/etc/lircd.conf.`date +%Y-%m-%d-%H-%M`
     if [ -d $TEMPLATES/remotes/$Remotetype ]
     then
             cd $TEMPLATES/remotes/$Remotetype
@@ -43,110 +67,162 @@ function setupremote {
             do
                     cat $i >> $BASE/etc/lircd.conf
             done
-            cp lircrc $BASE/etc/lircrc
-            chmod 755 /etc/lircrc
+            cp -f lircrc* $BASE/etc/lircrc 2> /dev/null
+            [ -e /etc/lircrc ] && chmod 755 /etc/lircrc
             update_db_settings HostRemoteType  "$Remotetype"
-            /usr/sbin/lircd  -d /dev/lirc0
-        mkdir /root/.mythtv
-        ln -s /etc/lircrc /root/.mythtv/lircrc
-     else
+        #special case for special remote
+        printhl "Starting with support for $Remotetype"
+        if [ "$Remotetype" == "dvico" ]
+        then
+            /usr/sbin/lircd  -d /dev/usb/hiddev0 --driver=dvico
+        elif [ "$Remotetype" == "Dvico-Dual-Digital4-rev2" ]
+        then
+            /usr/sbin/lircd -d /dev/input/irremote --driver=devinput
+        else
+            /usr/sbin/lircd -d /dev/lirc0
+        fi
+        [ -e /root/.mythtv ] ||  mkdir /root/.mythtv 2>/dev/null
+        ln -s /etc/lircrc /root/.mythtv/lircrc 2>/dev/null
+    else
         echo "Couldn't open directory $TEMPLATES/remotes/$Remotetype"
     fi
 }
 
 function scan_for_hpg_receiver() {
-echo "Scanning for Hauppauge receiver"
+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`
         Remotetype=`echo "$line"|cut -d"|" -f4`
         statusline=`echo "$line"|cut -d"|" -f2,4`
-        echo "Found $statusline , $Remotetype"
+        #echo "Found $statusline , $Remotetype"
+        echo "Found Hauppauge"
+        echo "-------------------"
+        echo "  1) Hauppauge black"
+        echo "  2) Hauppauge silver"
+        echo "  3) hauppauge-grey-g3"
+        echo ""
+        read -p "Which Hauppauge remote (5 sec): " -t 5 ans
+        echo
+        if [ "$?" != "0" ]; then
+        echo
+            echo "Using default $Remotetype"
+        else
+            case $ans in
+                1) Remotetype="hauppauge-black";;
+                2) Remotetype="hauppauge-silver";;
+                3) Remotetype="hauppauge-grey-g3" ;;
+                *) echo "Using default $Remotetype";;
+             esac
+        fi
         update_db_settings  HostReceiverType $FoundReceiverType
+        found_remote=0
         setupremote
         break
     fi
-
 done
 }
 
+
 function scan_for_usb_remote () {
-echo "Scanning for usb receiver/remote"
+#found_remote=1
+printhl "   Scanning for usb receiver/remote"
 while read line
 do
-    USBID=`echo "$line"|cut -f1`
+    USBID=`echo "$line"|cut -d"|"  -f1`
     lsusb -d "$USBID" > /dev/null 2>/dev/null
-    if [ $? = 0 ]
+    if [ $? -eq 0 ]
     then
-       # Remotetype=`echo "$line"|cut -f2`
-	 Remotetype=`echo "$line"|cut -d"|" -f2`
-        echo "found $Remotetype"
+        Remotetype=`echo "$line"|cut -d"|" -f2`
+        printhl  "Found $Remotetype"
         setupremote
+        found_remote=0
         break
     fi
 done <$BASE/$TEMPLATES/remotes/receiver_usb.id
-scan_for_hpg_receiver
+if [ $found_remote -eq 1 ]
+then
+    scan_for_hpg_receiver
+fi
+printhl "   Scanning for TatIR"
+if lsusb | grep 04d8:0004 > /dev/null 2>/dev/null
+then
+	/usr/bin/PyroUsb.py > /dev/null 2>&1 &
+fi
+
+if [ $found_remote -eq 1  ]
+then
+#No remote found_remote
+     update_db_settings HostRemoteType  "no_remote"
+fi
+
 }
 
 function rest_of_network () {
     #netmask
-    echo $CMDLINE | grep -q netmask
-    if [ $? = 0 ]
+    echo $CMDLINE | grep -q cnetmask
+    if [ $? -eq 0 ]
     then
-        TEMPVAR=${CMDLINE#*netmask=}
+        TEMPVAR=${CMDLINE#*cnetmask=}
         NETMASK=${TEMPVAR%% *}
         /sbin/ifconfig eth0 $IP netmask $NETMASK
         nm=`/usr/bin/nmconv.py -obits  $NETMASK`
         NETMASK="/$nm $NETMASK"
-        echo $NETMASK
+        #echo $NETMASK
         update_db_settings HostNETMASK${MYTHDEFAULT} "$NETMASK"
     else
-        echo "netmask not found"
+        printhl "   Netmask not found"
     fi
     #gateway
-    echo $CMDLINE | grep -q gateway
-    if [ $? = 0 ]
+    echo $CMDLINE | grep -q cgateway
+    if [ $? -eq 0 ]
     then
-        TEMPVAR=${CMDLINE#*gateway=}
+        TEMPVAR=${CMDLINE#*cgateway=}
         GATEWAY=${TEMPVAR%% *}
         /sbin/route add default  gw $GATEWAY
         update_db_settings HostGW${MYTHDEFAULT} "$GATEWAY"
-
-        else
-        echo "gateway not found"
+    else
+        printhl  "  Gateway not found"
     fi
 
     #dns
-    echo $CMDLINE | grep -q dns
-    if [ $? = 0 ]
+    echo $CMDLINE | grep -q cdns
+    if [ $? -eq 0 ]
     then
-        TEMPVAR=${CMDLINE#*dns=}
+        TEMPVAR=${CMDLINE#*cdns=}
         DNS=${TEMPVAR%% *}
         echo "nameserver $DNS" >> /etc/resolv.conf
         update_db_settings HostDNS${MYTHDEFAULT} "$DNS"
         else
-        echo "DNS not found"
+            printhl "    DNS not found"
+    fi
+    echo $CMDLINE | grep -q chostname
+    if [ $? -eq 0 ]
+    then
+        TEMPVAR=${CMDLINE#*chostname=}
+        MYHOST=${TEMPVAR%% *}
+        update_db_settings HostMyhostname "$MYHOST"
+        else
+            printhl "    hostname not found"
     fi
 }
 
 function init_network {
-    echo $CMDLINE |grep -q netdev
-    if [ $? = 0 ]
+    echo $CMDLINE |grep -q cnetdev
+    if [ $? -eq 0 ]
     then
-        TEMPVAR=${CMDLINE#*netdev=}
+        TEMPVAR=${CMDLINE#*cnetdev=}
         MYTHDEFAULT=${TEMPVAR%% *}
     else
         MYTHDEFAULT="eth0"
     fi
 
-
-
     echo $CMDLINE | grep -q ip
-    if [ $? = 0 ]
+    if [ $? -eq 0 ]
     then
         update_db_settings HostDefaulteth0 0
         update_db_settings HostDefault${MYTHDEFAULT} 1
@@ -155,9 +231,9 @@ function init_network {
         update_db_settings HostActiveonboot${MYTHDEFAULT} 1
         update_db_settings HostNetDevice ${MYTHDEFAULT}
 
-        TEMPVAR=${CMDLINE#*ip=}
+        TEMPVAR=${CMDLINE#*cip=}
         IP=${TEMPVAR%% *}
-        if [ x$IP = xdhcp ]
+        if [ "$IP" == "dhcp" ]
         then
             /sbin/dhcpcd $MYTHDEFAULT
             update_db_settings HostUseDHCP${MYTHDEFAULT} 0
@@ -168,11 +244,74 @@ function init_network {
             rest_of_network
         fi
     fi
+
+
+
+
+}
+
+function dev_up_check(){
+    /sbin/ifconfig $1 1>/dev/null 2>/dev/null
+    status=$?
+    if [ $status -eq 1 ]
+    then
+        return 0
+    else
+        devip=`/sbin/ifconfig  | grep -C1 $1| grep inet|grep -v inet6  | cut -d: -f2 | awk '{ print $1}'`
+        if [  "x$devip" = "x" ]
+        then
+            return 1
+        else
+            return 0
+        fi
+    fi
+}
+
+function request_dhcp(){
+    echo $CMDLINE |grep -q cnetdev
+    if [ $? -eq 0 ]
+    then
+        TEMPVAR=${CMDLINE#*cnetdev=}
+        MYTHDEFAULT_NET=${TEMPVAR%% *}
+    else
+        MYTHDEFAULT_NET="eth0"
+    fi
+    for ndev in eth0 eth1 wlan0 wlan1 ath0
+    do
+        dev_up_check $ndev
+        status=$?
+        if [ $status -eq 1 ]
+        then
+            #interface is down, lets see if dhcp responds
+            dhcpcd -Td -t2 $ndev -h "" > /tmp/dhcpinfo.$ndev
+            #check for hostname here
+
+            TEMPVAR=`grep new_ip_address /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+            if [ ! x$TEMPVAR = x ]
+            then
+                update_db_settings HostIP$ndev "$TEMPVAR"
+                TEMPVAR=`grep new_subnet_mask /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+                nm=`/usr/bin/nmconv.py -obits  $TEMPVAR`
+                TEMPVAR="/$nm    $TEMPVAR"
+                update_db_settings HostNETMASK$ndev "$TEMPVAR"
+                TEMPVAR=`grep new_routers /tmp/dhcpinfo.$ndev |cut -d\= -f2`
+                update_db_settings HostGW$ndev "$TEMPVAR"
+                TEMPVAR=`grep new_domain_name_servers /tmp/dhcpinfo.$ndev |cut  -d\= -f2`
+                update_db_settings HostDNS$ndev "$TEMPVAR"
+            fi
+        fi
+    done
+    TEMPVAR=`grep new_host_name /tmp/dhcpinfo.$MYTHDEFAULT_NET |cut -d\= -f2`
+    if [ ! x$TEMPVAR = x ]
+    then
+        update_db_settings HostMyhostname "$TEMPVAR"
+    fi
+
 }
 
 function init_remote {
     echo $CMDLINE | grep -q remoteport
-    if [ $? = 0 ]
+    if [ $? -eq 0 ]
     then
         TEMPVAR=${CMDLINE#*remoteport=}
         REMOTEPORT=${TEMPVAR%% *}
@@ -190,7 +329,7 @@ function init_remote {
     fi
 
     echo $CMDLINE | grep -q remote
-    if [ $? = 0 ]
+    if [ $? -eq 0 ]
     then
         TEMPVAR=${CMDLINE#*remote=}
         Remotetype=${TEMPVAR%% *}
@@ -202,302 +341,4 @@ function init_remote {
 
 #-----------------------
 
-#set -x
-
-partition_it () {
-ROOT=$1
-DATA=$2
-SWAP=$3
-
-if [ ! x$SWAP = xNO ]
-	then
-		SWAPLINE=",$SWAP,S"
-        MKSWAPCMD="mkswap /dev/${disk}2"
-	else
-		SWAPLINE=",0,0"
-       MKSWAPCMD=""
-	fi
-
-if [ x$DATA = xALL ]
-then
-	DATALINE=",,,"
-	EXTRALINE=""
-else
-	DATALINE=",$DATA,,"
-	EXTRALINE=",0,,"
-fi
-sfdisk /dev/$disk -uM << EOF
-,$1,,*
-$SWAPLINE
-$DATALINE
-$EXTRALINE
-;
-EOF
-
-$MKSWAPCMD
-#sfdisk -l /dev/$disk
-}
-
-
-function fscmd () {
-
-case $1 in
-       reiserfs) FSCMDC="mkreiserfs -q -l ROOT"
-                ;;
-
-        xfs)    FSCMDC="mkfs -t $1 -f"
-                ;;
-        ext3)   FSCMDC="mkfs.ext3"
-                ;;
-        jfs)    FSCMDC="mkfs.jfs -q "
-                                ;;
-        *)  FSCMDC="echo $1"
-        ;;
-
-esac
-}
-
-format_it ()  {
-    fscmd $1
-    $FSCMDC /dev/${disk}1|  tr -s [:cntrl:]  \\n
-    fscmd $2
-    $FSCMDC /dev/${disk}3|  tr -s [:cntrl:]  \\n
-}
-
-mount_it () {
-        if [ ! -d \/$mountpoint ]
-        then
-        mkdir \/$mountpoint
-        fi
-        mount /dev/${disk}1  \/$mountpoint
-        mkdir \/$mountpoint/data
-        mount /dev/${disk}3 \/$mountpoint/data
-}
-
-unmount_it () {
-        umount /dev/${disk}1
-        umount /dev/${disk}3
-}
-
-#linux-live version of copy_it
-# copy_it () {
-#         #rsync -rvp --exclude=/mnt --exclude=\/$mountpoint  / \/$mountpoint
-#         lzmdir=`find /mnt/live/mnt -name  data.lzm -execdir pwd \;| tail -1`
-#          cd $lzmdir
-#         if [ x$1 = xALL ]
-#         then
-#             LIST=`ls *.lzm`
-#             else
-#             LIST=`echo $1 | tr , " " `
-#         fi
-#
-#         for i in  $LIST
-#         do
-#              echo "Transferring $i"
-#             lzm2dir $i \/$mountpoint
-#         done
-#         for i in sys proc dev tmp
-#         do
-#         mkdir /$mountpoint/$i
-#
-#         done
-#         chmod 777 /$mountpoint/tmp
-# 	    mknod /$mountpoint/dev/null c 1 3
-#         mknod /$mountpoint/dev/null c 1 5
-#         mknod /$mountpoint/dev/console c 5 1
-#         chmod +s /$mountpoint/usr/bin/Xorg
-#         chmod +s /$mountpoint/usr/bin/crontab
-#         chmod +s /$mountpoint/usr/bin/sudo
-#         chmod +s /$mountpoint/bin/mount
-#
-# }
-
-copy_it () {
-
-        if [ x$1 = xALL ]
-        then
-            echo "Transferring system"
-            unsquashfs -f -d /$mountpoint /.livesys/medium/system.sqf
-        else
-             echo "Upgrading system"
-            unsquashfs -e $1 -f -d /$mountpoint /.livesys/medium/system.sqf
-        fi
-
-        for i in sys proc dev tmp
-        do
-        mkdir /$mountpoint/$i
-
-        done
-        chmod 777 /$mountpoint/tmp
-        mknod /$mountpoint/dev/null c 1 3
-        mknod /$mountpoint/dev/null c 1 5
-        mknod /$mountpoint/dev/console c 5 1
-        chmod +s /$mountpoint/usr/bin/Xorg
-        chmod +s /$mountpoint/usr/bin/crontab
-        chmod +s /$mountpoint/usr/bin/sudo
-        chmod +s /$mountpoint/bin/mount
-
-}
-
-
-device_node () {
-                cd /dev
-                mknod hda b 3 0
-                mknod hda1 b 3 1
-                mknod hda2 b 3 2
-                mknod hda3 b 3 3
-                mknod hda4 b 3 4
-                mknod hda5 b 3 5
-                mknod hda6 b 3 6
-                mknod hda7 b 3 7
-                mknod hda8 b 3 8
-                mknod sda b 8 0
-                mknod sda1 b 8 1
-                mknod sda2 b 8 2
-                mknod sda3 b 8 3
-                mknod sda4 b 8 4
-                mknod sda5 b 8 5
-                mknod sda6 b 8 6
-                mknod sda7 b 8 7
-                mknod sda8 b 8 8
-                mknod sdb b 8 16
-                mknod sdb1 b 8 17
-                mknod sdb2 b 8 18
-                mknod sdb3 b 8 19
-                mknod sdb4 b 8 20
-                mknod sdb5 b 8 21
-                mknod sdb6 b 8 22
-                mknod sdb7 b 8 23
-                mknod sdb8 b 8 24
-                cd -
-                }
-
-
-function create_fstab()
-{
-echo "creating fstab"
-cat > /$mountpoint/etc/fstab << EOF
-# <file system>        <dir>         <type>    <options>          <dump> <pass>
-none                   /dev/pts      devpts    defaults            0      0
-none                   /dev/shm      tmpfs     defaults            0      0
-/dev/cdrom /media/cdrom   auto    ro,user,noauto,unhide   0      0
-/dev/dvd /media/dvd   auto    ro,user,noauto,unhide   0      0
-UUID=ROOTUID / auto defaults 0 1
-UUID=DATAUID /data auto defaults 0 1
-UUID=SWAPUID swap swap defaults 0 0
-EOF
-
-
-}
-
-
-function find_uuid() {
-    uuid=`blkid -s UUID /dev/$1 |cut -d= -f2|cut -d\" -f2`
-    echo $uuid for $1
-    FOUNDUUID=$uuid
-
-}
-
-
-case $1 in
-        partition_it )
-	#drive  ROOT DATA(ALL) SWAP(NO)
-                for i in `mount | grep $disk | awk ' { print $1 } '`
-                do
-                umount $i
-                done
-		swap=`cat /etc/fstab |grep $disk|grep swap|awk ' { print $1 } '`
-		swapoff $swap
-                partition_it $3 $4 $5
-                exit 0
-
-        ;;
-        format_it )
-                device_node
-
-                format_it $3 $4
-                exit 0
-        ;;
-        mount_it )
-                mount_it
-        ;;
-        copy_it )
-                copy_it $3
-
-        ;;
-
-
-        fstab_fix_it)
-                    echo $@ >> /tmp/fstab.input
-                    if [  ! -f  /$mountpoint/etc/fstab ]
-                    then
-                        create_fstab
-                    fi
-
-                    if [ x$3 = xUPGRADE ]
-                    then
-                       echo "copying old fstab"
-                       cp -f /tmp/etc/fstab /$mountpoint/etc/fstab
-                       FOUNDUUID=""
-                       find_uuid ${2}1
-                       ROOTUUID=$FOUNDUUID
-                       sed -i -e "s/.*\/\ .*$/UUID=$ROOTUUID \/  auto defaults,noatime 0 1/g"  /$mountpoint/etc/fstab
-                    else
-                        #search for UUID
-                        FOUNDUUID=""
-                        find_uuid ${2}1
-                        ROOTUUID=$FOUNDUUID
-
-                        echo "--"
-                        echo $ROOTUUID
-                        echo "--"
-
-                        FOUNDUUID=""
-                        find_uuid ${2}2
-                        SWAPUUID=$FOUNDUUID
-
-                        FOUNDUUID=""
-                        find_uuid ${2}3
-                        DATAUUID=$FOUNDUUID
-                        sed -i -e "s/.*\/\ .*$/UUID=$ROOTUUID \/  auto defaults,noatime 0 1/g"  /$mountpoint/etc/fstab
-                        sed -i -e "s/.*\/data\ .*$/UUID=$DATAUUID \/data  auto defaults,noatime 0 1/g" /$mountpoint/etc/fstab
-                        sed -i -e "s/.*swap\ .*$/UUID=$SWAPUUID swap swap defaults  0/g" /$mountpoint/etc/fstab
-                    fi
-
-        ;;
-
-        grub_it )
-                #linux-live
-                #grub-install  --recheck --no-floppy  --root-directory=/$mountpoint /dev/$disk
-                grub-install  --recheck --no-floppy  --root-directory=/$mountpoint "(hd0)"
-
-
-        #fixing fstab
-#                     if [  ! -f  /$mountpoint/etc/fstab ]
-#                     then
-#                         cp  -f /$mountpoint/etc/fstab.install  /$mountpoint/etc/fstab
-#                     fi
-# 		sed -e s/hda/$disk/g /$mountpoint/etc/fstab > /tmp/newfstab
-# 		cp -f /tmp/newfstab /$mountpoint/etc/fstab
-
-		#fixing grub/menu.1st
-        FOUNDUUID=""
-        find_uuid ${disk}1
-        ROOTUUID=$FOUNDUUID
-#		sed -e s/hda/$disk/g /$mountpoint/boot/grub/menu.lst > /tmp/menu.lst
-
-		sed -i -e "s/root=.\S*/root=\/dev\/disk\/by-uuid\/$ROOTUUID/g"   /$mountpoint/boot/grub/menu.lst
-
-
-#cp -f /tmp/menu.lst /$mountpoint/boot/grub/menu.lst
-		#cp /etc/X11/xorg.conf /$mountpoint/etc/X11/xorg.conf
-        mkinitcpio -g /$mountpoint/boot/kernel26.img
-                ;;
-        umount_it)
-
-                umount \/$mountpoint/data
-                umount \/$mountpoint
-esac
-
-
 
diff --git a/abs/mv-core/MythVantage-config/install_proxy.sh b/abs/mv-core/MythVantage-config/install_proxy.sh
index 9019349..71b675b 100755
--- a/abs/mv-core/MythVantage-config/install_proxy.sh
+++ b/abs/mv-core/MythVantage-config/install_proxy.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
-#chroot  and /tmp
-MVHOSTNAME=mvi
+export TERM=vt100
+MVHOSTNAME=larch5
 . /etc/profile
 TEMP_TEMPLATES=/tmp/templates
 disk=$2
@@ -14,475 +14,177 @@ run=$MV_ROOT/bin/install_functions.sh
 . /etc/systemconfig 2>/dev/null
 . $MV_ROOT/bin/networkconfig.sh
 CMDLINE=$(cat /proc/cmdline)
-
-#TEMPNET="Hostip"$default_interface
-#eval MYTHIP=\$${TEMPNET}
+BACKUPFILE="/myth/backup/mythconverg.sql.gz"
 
 
 progress () {
-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
-}
-
-
-
-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 "Installing data" > /tmp/.install_state
-
-    sleep 1
-        $run copy_it $disk ALL
-        rm $mountpoint/etc/fstab
-        $run fstab_fix_it $disk $rootfs $datafs FULL_INSTALL
-
-    progress 99
-    sleep 1
-    $run grub_it $disk
-
-
-    echo "Configuring system" > /tmp/.install_state
-        progress 100
-        sleep 1
-        cp -f /etc/systemconfig "$mountpoint"/etc
-    #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 127.0.0.1
-        SE=$TEMPLATES/settings/syssettings
-        mkdir -p ${mountpoint}$SE
-        cp -rp $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
-        #copy over any updates that might have occured
-        cp -f $MV_ROOT/bin/*.sh "$mountpoint"$MV_ROOT/bin/
-        chmod -R 755 ${mountpoint}/root
-        cp /etc/mtab "$mountpoint"/etc/mtab
-    	apply_new_auth
-        mkdir -p $mountpoint/var/log/func
-        mkdir -p $mountpoint/var/log/certmaster
-
-    if  [ $SystemType = "Master_backend" -o $SystemType = "Standalone"  ]
+    mypercent=`echo "$1" | cut -d. -f1`
+    if [  x$mypercent = x ]
     then
-            #installing DB to local machine
-                #turn off old live database, so the chroot one can start
-            /etc/rc.d/mysqld stop
-            mount --bind /dev "$mountpoint/dev"
-            chroot "$mountpoint"   "$MV_ROOT/bin/install_db_chroot.sh"  >  /tmp/chrootdb.out
-            chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,this_is_install
-            echo "stopping mysql in chroot"
-            chroot "$mountpoint" /etc/rc.d/mysqld stop
-            umount "$mountpoint/dev"
-
-            #/etc/rc.d/mysqld start
+    echo "" > /tmp/.install_percent
     else
-            #update remotedb with this host settings
-            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,this_is_install
-            chroot "$mountpoint" $MV_ROOT/bin/restore_default_settings.sh -c  ACCESSCONTROL
-            fi
+    echo "${mypercent}% complete" > /tmp/.install_percent
     fi
-    chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh advanced
-    echo "Done" > /tmp/.install_state
-    cp /tmp/mythvantage_install.log  $mountpoint/var/log/
-    $run unmount_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
-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 "Installing data" > /tmp/.install_state
-        sleep 1
-        cp -rf /tmp/etc /new_boot/etc.old
-        cp -rf  /tmp/oss /new_boot/var/lib/oss.old
-        #$run copy_it $disk bin.lzm,boot.lzm,etc.lzm,home.lzm,lib.lzm,opt.lzm,root.lzm,sbin.lzm,usr.lzm,var.lzm
-        SQUASHLIST="/tmp/.squashlist"
-        createsquashlist $SQUASHLIST
-        $run copy_it $disk $SQUASHLIST
-        #copy back ssh keys
-
-        cp -rp /data/var/cache/pacman/pkg/* /new_boot/data/var/cache/pacman/pkg/
-        cp -fp /new_boot/etc.old/ssh/*.pub   /new_boot/etc/ssh/
-        cp -fp /new_boot/etc.old/ssh/*.key   /new_boot/etc/ssh/
-        cp -fp /new_boot/etc.old/ssh/*key   /new_boot/etc/ssh/
-
-        #funckeys
-        cadir=/etc/pki/func/ca
-        mv /new_boot/etc/pki  /new_boot/etc/pki.new
-        cp -rp /new_boot/etc.old/pki  /new_boot/etc/
-        #passwd/shadow/group
-        cp -fp /new_boot/etc.old/passwd /new_boot/etc/
-        cp -fp /new_boot/etc.old/shadow /new_boot/etc/
-        cp -fp /new_boot/etc.old/group   /new_boot/etc/
-
-        if [  x$rootfs = "xDo_not_format" ]
-        then
-            #rootfs=`grep ${disk}1 /tmp/etc/fstab |awk ' { print $3 } '`
-            rootfs=`grep \/\  /tmp/etc/fstab |awk ' { print $3 } '`
-        fi
-#        #datafs=`grep ${disk}3 /tmp/etc/fstab |awk ' { print $3 } '`
-#        datafs=`grep \/data /tmp/etc/fstab |awk ' { print $3 } '|head 1`
-        $run fstab_fix_it $disk UPGRADE
-
-    echo "Writing boot sector" > /tmp/.install_state
-        progress 99
-        sleep 1
-        $run grub_it $disk
-
-
-    echo "Configuring system" > /tmp/.install_state
-        progress
-        sleep 1
-        cp /etc/mtab "$mountpoint"/etc/mtab
-        cp -f /etc/systemconfig "$mountpoint"/etc
-        cp -f $MV_ROOT/bin/*.sh "$mountpoint"$MV_ROOT/bin/
-        chmod -R 755 ${mountpoint}/root
-        chown root:mythtv "$mountpoint"/etc/systemconfig
-        chmod 775 "$mountpoint"/etc/systemconfig
-        mkdir -p $mountpoint/var/log/func
-        mkdir -p $mountpoint/var/log/certmaster
-        #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,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?
-        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
-        #
-    #Run second time
-        chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh misc,hostype,network,advanced,this_is_install
-        chroot "$mountpoint" $MV_ROOT/bin/systemconfig.sh advanced,this_is_install
-	apply_new_auth
-        umount "$mountpoint/dev"
-        umount "$mountpoint/proc"
-    echo "Done" > /tmp/.install_state
-    cp /tmp/mythvantage_install.log  $mountpoint/var/log/
-
-    $run unmount_it $disk
-}
-
-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 vnc_check() {
-#     CMDLINE=$(cat /proc/cmdline)
-#     echo $CMDLINE |grep -q vnc
-#     USEVNC=$?
-#     echo $CMDLINE |grep -q nfsroot
-#      NETBOOT=$?
-#     echo $USEVNC
-# 	if [ !  x$USEVNC = x0  ]
-# 	then
-# 	    echo "not using vnc"
-#         if [ !  x$NETBOOT = x0  ]
-#         then
-#             echo "not using netboot"
-#         else
-#             echo "using netboot"
-#             USEVNC=0
-#         fi
-#
-#     else
-#         echo " using vnc"
-#     fi
-# }
-
-
-# function network_setup () {
-# DEVICE=eth0
-#     if [ ! -f /etc/systemconfig ]
-#     then
-#         exit 1
-#     fi
-#
-# if [ ! x$USEVNC = x0  ]
-# then
-#     echo "Resetting  the network"
-#     killdhcp
-#     if [ $UseDHCP = 0 ]
-#     then
-#          /sbin/dhcpcd $DEVICE
-#             if [ ! $? = 0 ]
-#             then
-#                 exit 2
-#             fi
-#         fi
-# else
-#   echo "using vnc/netboot, will not reset network"
-#   echo "nameserver $nameserver" > /etc/resolv.conf
-#   return 0
-# fi
-#
-# if [ $UseDHCP = 1 ]
-# then
-#
-#         /sbin/ifconfig $DEVICE $ip
-#         /sbin/route add default gw $route
-#         echo "nameserver $nameserver" > /etc/resolv.conf
-#
-# fi
-#
-#
-# }
-
-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 )         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
-            $run mount_it $disk
-                if [ -f /new_boot/etc/systemconfig ]
-                then
-                ###########ADD templates
-                mkdir -p $TEMP_TEMPLATES
-                cp -pr /new_boot/$TEMPLATES  $TEMP_TEMPLATES
-                SANE_SYSETTINGS
-                cp -rp $TEMP_TEMPLATES/settings $TEMPLATES/
-
-
-                cp /new_boot/etc/systemconfig /etc/systemconfig
-                cp -rf  /new_boot/etc /tmp/etc
-                cp -rf /new_boot/var/lib/oss  /tmp/oss
-
-                $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings -h $MVHOSTNAME  -d 127.0.0.1
-                fi
-            $run umount_it $disk
+    full_install_it )
+             mv_install.py --rootdisk=$disk --rootfs=$rootfs --rootsize=$rootsize --datafs=$datafs --datasize=$datasize --datadisk=$disk --swapsize=$swapsize -c full_install
+             rc=$?
+             echo "mv_install.py exit code $rc"
+             if [ $rc != 0 ]
+             then
+                echo "mv_install error" >> /tmp/.install_error
+             fi
+             exit $rc
             ;;
 
-        upgrade_it)
-                #"$MV_ROOT/bin/install_proxy.sh upgrade_it " + install_drive + " " + rootfs +  "&"
-                upgrade
-
+    NETBOOT)
+            echo "-----------------------------------------------------------------------3-----"
+            netboot-full_install
             ;;
-        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
 
+    find_update)
+            mv_install.py --rootdisk=$disk -c find_upgrade
             ;;
-        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}'`
-                                            ping -c 1 $myipdefault
-                                                    if [ ! $? = 0 ]
-                                                    then
-                                                        exit 3
-                                                        #can't ping yourself
-                                                    fi
-                                ;;
-                                check_gw)
-                                            #check gateway
-                                            mygwdefault=`/sbin/route |grep $default_interface|grep UG|awk '{ print $2}'`
-					                        if  [ !  x$mygwdefault = x ]
-					                        then
-	                                            ping -c 1 $mygwdefault
-        	                                    if [ ! $? = 0 ]
-                	                            then
-                        	                        exit 4
-                                	      	    fi
-				                            fi
-                                ;;
-                                check_ns)
-                                            #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)
-                                            host google.com
-                                            if [ ! $? = 0 ]
-                                            then
-                                                exit 6
-                                            fi
-                                ;;
-                                host_names)
-                                            #if host is found, then check to see if it's online
-                                            #if not online, assume it's ok to use this hostname
-
-                                            hout=`host $hostname`
-                                            status=$?
-                                            #found host, now grab the ip
-                                            if [ $status = 0 ]
-                                            then
-                                                hoip=`echo $hout|awk  '{print $4}'`
-                                                ping -c 1 $hoip
-                                                if [  $? = 0 ]
-                                                then
-                                                    status=0
-                                                else
-                                                    status=1
-                                                fi
-                                            fi
 
-                                            if [  $status = 0 ]
-                                            then
-                                                exit 7
-                                            fi
-
-
-                                ;;
+    upgrade_it)
+            mv_install.py --rootdisk=$disk --rootfs=$rootfs -c upgrade
+            ;;
 
-                            esac
-                        exit 0
+    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
             ;;
 
+    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
+
+                                if [ $hoip = "out;" ]
+                                then
+                                    #;; connection timed out; no servers could be reached
+                                    echo "DNS servers not found"
+                                    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
+                                            fi
+                                    fi
+                                else
+                                    echo "Couldn't find hostname in DNS, must be safe to use"
+                                    status=0
+                                fi
+                                exit $status
+                    ;;
+
+                esac
+            exit 0
+        ;;
 
-        * )
-            state=`cat /tmp/.install_state`
+    * )
+        if [ -f /tmp/.install_state ]
+        then
+                state=`cat /tmp/.install_state`
+        else
+        state=" "
+        fi
             if  [  x"${state}" =  "xConfiguring system" ]
             then
                 progress ""
@@ -490,7 +192,7 @@ echo "-----------------------------------------------------------------------3--
 
                 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 " "`
@@ -509,10 +211,14 @@ echo "-----------------------------------------------------------------------3--
                     total=$TOTALSIZE
                 fi
             percent=`echo "scale=2 ;  ($used/$total) * 100 " |bc `
-            cond2=$(echo "$percent > 100" |bc  )
+            cond2=$(echo "$percent > 98" |bc  )
             if [ $cond2 -eq 1  ]
             then
-            percent=100
+                percent=98
+            fi
+            if  [  x"${state}" =  "xDone" ]
+            then
+                percent=100
             fi
             cond3=$(echo "$percent < 3" |bc )
             if [ $cond3 -eq 0   ]
@@ -521,7 +227,7 @@ echo "-----------------------------------------------------------------------3--
                 fi
             fi
         fi
-        ;;
+    ;;
 esac
 
 
diff --git a/abs/mv-core/MythVantage-config/mv_advanced.py b/abs/mv-core/MythVantage-config/mv_advanced.py
new file mode 100755
index 0000000..2b53d04
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_advanced.py
@@ -0,0 +1,384 @@
+# -*- coding: utf-8 -*-
+import logging, os, re
+import mv_common
+
+def setup_pacman(create_link):
+    if create_link:
+        logging.info("    Creating pacman link")
+        #LOOK
+        #This is not implmented yet, below is the bash code for reference
+        #if [ ! x$1 = x ]
+    #then
+        #ln -s ${BASE}/data/var ${BASE}/data/srv/httpd/htdocs/repo
+        #echo "creating the link for the pacman repo mirror"
+    #fi
+
+    #for i in mv-core mv-core-testing mv-extra mv-extra-testing
+    #do
+        #echo "[$i]"  > ${BASE}/etc/pacman.d/$i
+        ##add mirror if needed
+        #if [ x$PKG_MIRROR = x1 ]
+        #then
+            #echo " Server = http://$dbhost/repo/$i " >> ${BASE}/etc/pacman.d/$i
+        #fi
+        ##add user templates
+        #USERTEMPLATES="/data/home/mythtv/templates"
+        #if [ -f $USERTEMPLATES/sources/$i ]
+        #then
+            #echo "Adding user  $i"
+            #cat $USERTEMPLATES/sources/$i  >> ${BASE}/etc/pacman.d/$i
+        #fi
+        #cat $TEMPLATES/sources/$i  >> ${BASE}/etc/pacman.d/$i
+        #echo "setting local mirror to $dbhost for $i "
+    #done
+    else:
+        logging.info("    Pacman link will not be created")
+    return
+
+def setup_ncid_client(dbhost,templatefile):
+    #This always runs
+    logging.debug("    Configuring ncid client with server %s",dbhost)
+    cmd = '''sed -e "s/^set Host.*$/set Host %s /" %s >/etc/ncid/ncid.conf''' %(dbhost, templatefile)
+    return
+
+def setup_ncid_daemon(port,templatefile,Runncidd):
+    logging.info("    Configuring callerid daemon")
+    if Runncidd == "1":
+        logging.debug("    Port: %s",port)
+        mv_common.cp_and_log("/etc/ncid/ncidd.conf",templatefile)
+        cmd = '''sed -e "s/.*set ttyport.*$/set ttyport =  \/dev\/%s /" %s >/etc/ncid/ncidd.conf''' %(port,templatefile)
+        mv_common.runcmd(cmd)
+        mv_common.pacinstall("ncidd")
+        mv_common.add_service("ncidd")
+    else:
+        logging.debug("    Callerid will not run")
+        mv_common.pacremove("ncidd")
+        mv_common.remove_service("ncidd")
+    return
+
+def setup_splash(Usebootsplash):
+    if Usebootsplash == "1":
+        logging.info("    Enabling splash")
+        cmd = ''' sed -i "s/^default.*0/default 1/g" /boot/grub/menu.lst'''
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Disabling splash")
+        cmd = ''' sed -i "s/^default.*1/default 0/g" /boot/grub/menu.lst'''
+        mv_common.runcmd(cmd)
+    return
+def setup_rrd(UseRRD):
+    if UseRRD == "1":
+        logging.info("    Enabling rrd_stats")
+        mv_common.pacinstall("rrd_stats")
+    else:
+        logging.info("    Disabling rrd_stats")
+        mv_common.pacremove("rrd_stats")
+
+
+def setup_hobbit(UseHobbit,SystemType,dbhost):
+    if UseHobbit == "1":
+        if SystemType == "Standalone" or SystemType == "Master_backend":
+            logging.info("    Installing hobbit server")
+            mv_common.pacinstall("hobbitserver")
+            mv_common.add_service("hobbit")
+        else:
+            logging.info("    Installing hobbit client")
+            mv_common.pacinstall("hobbit-client")
+            setup_hobbit_client(dbhost)
+            mv_common.add_service("hobbit-client")
+
+    else:
+            logging.info("    Removing Hobbit")
+            mv_common.pacremove("hobbit")
+            mv_common.pacremove("hobbit-client")
+            mv_common.remove_service("hobbit-client")
+            mv_common.remove_service("hobbitserver")
+            cmd = "rm -f /data/srv/httpd/htdocs/hobbit/index.html"
+            mv_common.runcmd(cmd)
+    return
+
+def setup_hobbit_client(dbhost):
+    logging.info("    Configuring hobbit client")
+    logging.debug("   hobbit server is %s:", dbhost)
+    cmd='''sed -i "s/^BBDISP.*$/BBDISP=%s/g" /data/srv/hobbit/client/etc/hobbitclient.cfg ''' %dbhost
+    mv_common.runcmd(cmd)
+    return
+
+def setup_evrouter(UseEvrouter,EvrouterConfig,template):
+    if UseEvrouter == "1":
+        logging.info("    Configuring everouter")
+        logging.debug("    EvrouterConfig is %s:",EvrouterConfig)
+        if EvrouterConfig == "tinker":
+            logging.debug("    tinker mode, not changing the config")
+            return
+        mv_common.pacinstall("evrouter")
+        mv_common.pacinstall("Xvfb")
+        mv_common.cp_and_log(template+"/evrouter/"+EvrouterConfig,"/etc/evrouter.cfg")
+        mv_common.add_service("evrouter")
+        mv_common.add_service("Xvfb")
+    else:
+        logging.info("    Not using evrouter")
+        mv_common.pacremove("evrouter")
+        mv_common.remove_service("evrouter")
+        mv_common.remove_service("Xvfb")
+
+    return
+
+def setup_DNSmasq(RunDHCP,ip,gw,nameserver):
+    if RunDHCP == "1":
+        logging.info("    Configuring dhcp server(dnsmasq)")
+        logging.debug("    ip: %s", ip)
+        logging.debug("    gw: %s", gw)
+        logging.debug("    ns: %s", nameserver)
+        mv_common.pacinstall("dnsmasq")
+        mv_common.pacinstall("mvpmc")
+        mv_common.add_service("dnsmasq")
+        logging.debug("    Setting default route to my gw: %s",gw)
+        try:
+            f = open("/etc/dnsmasq.conf",'r')
+            dnsconf = f.readlines()
+            f.close()
+        except:
+                logging.info("    Couldn't open dnsmasq.conf")
+                return
+        for line in dnsconf:
+            outline = line
+            if re.match("^dhcp-option=3",line):
+                logging.debug("    Setting default route to my gw: %s",gw)
+                outline = "dhcp-option=3,%s\n" %gw
+            if re.match("^dhcp-option=6",line):
+                logging.debug("    Setting dns to my ip: %s",ip)
+                outline = "dhcp-option=6,%s\n" %ip
+            f.write(outline)
+        f.close()
+
+        logging.debug("    change nfsroot to my ip:%s",ip)
+        cmd = '''sed -i "s/nfsroot=.*:/nfsroot=%s:/g" /data/srv/tftp/pxelinux.cfg/default''' %ip
+        mv_common.runcmd(cmd)
+
+        logging.debug("    Adding 127.0.0.1 to resolv.conf")
+        logging.debug("    other nameserver is %s",nameserver)
+        try:
+            f = open("/etc/resolv.conf",'r')
+            dns = f.readlines()
+            f.close()
+        except:
+                dns=''
+                logging.debug("   Couldn't open resolv.conf for reading")
+        try:
+            f = open("/etc/resolv.conf",'w')
+            line="search lan\n"
+            f.write(line)
+            line="nameserver 127.0.0.1\n"
+            f.write(line)
+            line="nameserver %s\n" %nameserver
+            f.write(line)
+            for line in dns:
+                f.write(line)
+            f.close()
+        except:
+                logging.debug("   Couldn't open resolv.conf for writing")
+
+        logging.debug("    setup dongle.config")
+        cmd = ''' sed -i "s/mvpmc -f .*/mvpmc -f \/etc\/helvR10.fon -s %s \& /" /data/srv/tftp/dongle.bin.config ''' %ip
+        #COMMAND="%s/mvpmc -f .*/mvpmc -f \/etc\/helvR10.fon -s ${ip} \& /"
+        #ex ${BASE}/data/srv/tftp/dongle.bin.config <<EOF
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    removing dhcp server(dnsmasq)")
+        mv_common.pacremove("dnsmasq")
+        mv_common.pacremove("mvpmc")
+        mv_common.remove_service("dnsmasq")
+    return
+
+def setup_mythweb(UseMythWEB):
+    if UseMythWEB == "1":
+        logging.info("    Activating mythweb")
+        mv_common.pacinstall("lighttpd")
+        mv_common.pacinstall("mythweb")
+        mv_common.add_service("lighttpd")
+    else:
+        logging.info("    Removing mythweb")
+        mv_common.pacremove("lighttpd")
+        mv_common.pacremove("mythweb")
+        mv_common.remove_service("lighttpd")
+    return
+
+def setup_samba(systemconfig,data_config):
+    mythhome = data_config.MYTHHOME
+    if systemconfig["UseSamba"] == "1":
+        logging.info("    Activating windows file sharing")
+        usersamba=mythhome+"/templates/smb.conf"
+        mv_common.pacinstall("samba")
+        if not os.path.exists("/etc/samba"):
+            logging.debug("    Creating directory /etc/samba")
+            try:
+                os.makedirs("/etc/samba")
+            except:
+                pass
+
+        if os.path.exists(usersamba):
+            logging.debug("    Using user provided config file %s",usersamba)
+            cmd = "install -D -m755  %s /etc/samba/smb.conf" %usersamba
+            mv_common.runcmd(cmd)
+        else:
+            Samba_media = systemconfig["Samba_media"]
+            Samba_home = systemconfig["Samba_home"]
+            if systemconfig["Samba_mediareadonly"] == "1":
+                smreadonly = "yes"
+            else:
+                smreadonly = "no"
+
+            if systemconfig["Samba_homereadonly"] == "1":
+                shreadonly = "yes"
+            else:
+                shreadonly = "no"
+            domain = systemconfig["Samba_domain"]
+            servername = systemconfig["hostname"]
+
+            try:
+                f = open(systemconfig["TEMPLATES"]+"/samba/smb.conf.template",'r')
+                t_smbconf = f.readlines()
+                f.close()
+            except:
+                logging.info("   Couldn't open samba template file")
+                return
+
+            try:
+                f = open("/etc/samba/smb.conf",'w')
+            except:
+                logging.info("   Couldn't open samba file")
+                return
+
+            for line in t_smbconf:
+                outline = line
+                if re.match("^.*workgroup", line):
+                    logging.debug("    Setting workgroup to %s",domain)
+                    outline="workgroup = %s\n" %domain
+                    logging.debug("     %s",outline)
+                if re.match("^.* server string",line):
+                    logging.debug("    Setting server name to %s",servername)
+                    outline="server string = %s\n" %servername
+                    logging.debug("     %s",outline)
+                f.write(outline)
+            outline="include =  %s/templates/user.shares \n" %mythhome
+            f.write(outline)
+            if Samba_media == "1":
+                outline="include =  /etc/samba/smb.conf.media\n"
+                f.write(outline)
+            if Samba_home == "1":
+                outline="include =  /etc/samba/smb.conf.home\n"
+                f.write(outline)
+            f.close()
+            logging.info("    Writing smb.conf.media")
+            try:
+                f = open("/etc/samba/smb.conf.media","w")
+            except:
+                logging.info("    Couldn't open smb.conf.media")
+                return
+            medialines='''
+[%s]
+path = %s
+public = yes
+only guest = yes
+writeable  = %s
+printable = no
+force user = mythtv
+force group = mythtv
+create mask = 0755''' %(data_config.SMEDIA,data_config.DATAMOUNT,smreadonly)
+            f.write(medialines)
+            f.close
+            logging.debug("     %s",medialines)
+            logging.info("    Writing smb.conf.home")
+            try:
+                    f = open("/etc/samba/smb.conf.home","w")
+            except:
+                logging.info("    Couldn't open smb.conf.home")
+                return
+            homelines='''
+[home]
+path = %s
+public = yes
+only guest = yes
+writeable  = %s
+printable = no
+force user = mythtv
+force group = mythtv
+create mask = 0755 ''' %(data_config.MYTHHOME,shreadonly)
+            f.write(homelines)
+            f.close
+            logging.debug("     %s",homelines)
+
+
+        mv_common.add_service("nmbd")
+        mv_common.add_service("smbd")
+    else:
+        logging.info("  Removing windows file sharing")
+        mv_common.remove_service("smbd")
+        mv_common.remove_service("nmbd")
+        mv_common.pacremove("samba")
+        mv_common.pacinstall("smbclient")
+    return
+
+def setup_NFSshares(UseNFS,templatefile):
+    if UseNFS == "1":
+        logging.info("    Activating NFS server")
+        mv_common.pacinstall("nfs-utils")
+        mv_common.pacinstall("portmap")
+        cmd = '''sed -e "s/REPLACEME/*/g" %s  >/etc/exports''' %templatefile
+        mv_common.add_service("nfsd")
+        mv_common.add_service("nfs-utils")
+        mv_common.add_service("portmap")
+    else:
+        logging.info("    Removing NFS server")
+        mv_common.remove_service("nfsd")
+    return
+
+def setup_dyndns(DDnsEnable):
+    if DDnsEnable == "1":
+        logging.info("    Installing Dynamic DNS client")
+        mv_common.pacinstall("inadyn")
+        mv_common.add_service("inadyn")
+    else:
+        logging.info("    Removing Dynamic DNS client")
+        mv_common.pacremove("inadyn")
+        mv_common.remove_service("inadyn")
+
+
+def setup_advanced(systemconfig,data_config):
+    logging.info("____Start of advanced configuration____")
+    create_link = False
+    if systemconfig["SystemType"] == "Master_backend":
+        create_link = True
+    setup_pacman(create_link)
+    setup_ncid_client(systemconfig["dbhost"],
+                      systemconfig["TEMPLATES"]+"/ncid.conf.template")
+
+    setup_ncid_daemon(systemconfig["nciddSerialPort"],
+                      systemconfig["TEMPLATES"]+"/ncidd.conf.template",
+                      systemconfig["Runncidd"])
+
+    setup_splash(systemconfig["Usebootsplash"])
+    if data_config.SYSTEMTYPE == "MythVantage":
+        setup_hobbit(systemconfig["UseHobbit"],
+                    systemconfig["SystemType"],
+                    systemconfig["dbhost"])
+    if data_config.SYSTEMTYPE == "LinHES":
+        setup_rrd(systemconfig["UseRRD"])
+
+    setup_evrouter(systemconfig["UseEvrouter"],
+                   systemconfig["EvrouterConfig"],
+                   systemconfig["TEMPLATES"])
+
+    setup_DNSmasq(systemconfig["RunDHCP"],
+                  systemconfig["mythip"],
+                  systemconfig["mythgw"],
+                  systemconfig["mythdns"])
+
+    setup_mythweb(systemconfig["UseMythWEB"])
+    setup_samba(systemconfig,data_config)
+    setup_NFSshares(systemconfig["UseNFS"],
+                systemconfig["TEMPLATES"]+"/exports.template")
+
+    setup_dyndns(systemconfig["DDnsEnable"])
+    logging.info("__End of advanced configuration\n")
diff --git a/abs/mv-core/MythVantage-config/mv_common.py b/abs/mv-core/MythVantage-config/mv_common.py
new file mode 100755
index 0000000..f18e02b
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_common.py
@@ -0,0 +1,200 @@
+# -*- coding: utf-8 -*-
+import logging, os, time
+import commands
+config_file = "mv_config"
+data_config = __import__(config_file, globals(), locals(), [])
+
+def runcmd(cmd):
+    if data_config.NOOPDEBUG=="FALSE":
+        pass
+    else:
+        cmd = "echo "+cmd
+    logging.debug("    %s",cmd)
+    cmdout = commands.getstatusoutput(cmd)
+    logging.debug("    %s",cmdout)
+    return cmdout[0]
+
+def runcmd_output(cmd):
+    if data_config.NOOPDEBUG=="FALSE":
+        pass
+    else:
+        cmd = "echo "+cmd
+    logging.debug("    %s",cmd)
+    cmdout = commands.getstatusoutput(cmd)
+    logging.debug("    %s",cmdout)
+    return cmdout[1]
+
+def services(systemconfig):
+    logging.debug("______Start of services______")
+    logging.debug("__End services")
+
+def cp_and_log(srcfile,destfile):
+    #return
+    if not os.path.exists(srcfile):
+        logging.info("%s is not present, skipping...",srcfile)
+    else:
+        cmd = ("rsync -arhp %s %s") %(srcfile,destfile)
+        runcmd(cmd)
+
+
+def add_service(daemon):
+    logging.info("    Adding service %s",daemon)
+    cmd = "add_service.sh %s" %daemon
+    runcmd(cmd)
+
+def remove_service(daemon):
+    logging.info("    Removing service %s",daemon)
+    cmd = "remove_service.sh %s" %daemon
+    runcmd(cmd)
+
+def start_service(daemon):
+    logging.info("    start service %s",daemon)
+    cmd = "sv start %s" %daemon
+    runcmd(cmd)
+
+def stop_service(daemon):
+    logging.info("    stop service %s",daemon)
+    cmd = "sv stop %s" %daemon
+    runcmd(cmd)
+
+def restart_service(daemon):
+    logging.info("    Restarting service %s",daemon)
+    if daemon == "lcdd":
+        stop_service(daemon)
+        logging.debug("    killing all lcdd")
+        cmd = "killall -9 LCDd"
+        runcmd(cmd)
+        time.sleep(2)
+        start_service(daemon)
+    else:
+        cmd = "sv restart %s" %daemon
+        runcmd(cmd)
+
+def hup_service(daemon):
+    logging.info("    hup service %s",daemon)
+    cmd = "sv hup %s" %daemon
+    runcmd(cmd)
+
+
+
+def pkg_blacklist_check(pkg):
+    cmd = '''grep -q %s /etc/blacklist.package''' %pkg
+    rc = runcmd(cmd)
+    if rc == 0:
+        return True
+    else:
+        return False
+
+def pkg_installed_check(pkg):
+    logging.debug("    Checking if %sis installed",pkg)
+    cmd = "pacman -Q %s " %pkg
+    rc = runcmd(cmd)
+    if rc == 0:
+        return True
+    else:
+        return False
+
+
+def pacinstall(pkg):
+    logging.info("    Checking %s for install",pkg)
+    #extra pkg check
+    if pkg == "xine":
+        pacinstall("xine-ui")
+    elif pkg == "dvdcss":
+        pacinstall("libdvdcss")
+    elif pkg == "webmin":
+        add_service("webmin")
+    elif pkg == "fuppes":
+        pacinstall("fuppes-svn")
+
+    if  not pkg_blacklist_check(pkg):
+        if pkg_installed_check(pkg):
+            logging.info("    %s is already installed, will not install",pkg)
+        else:
+            logging.info("    Installing %s",pkg)
+            cmd ='''pacman --noconfirm -Sf %s ''' %pkg
+            runcmd(cmd)
+    else:
+        logging.info("    %s is blacklisted, will not install",pkg)
+
+def pacremove(pkg):
+    logging.info("    Checking %s for removal",pkg)
+    if pkg == "xine":
+        pacremove("xine-ui")
+    elif pkg == "dvdcss":
+        pacremove("libdvdcss")
+    elif pkg == "webmin":
+        remove_service("webmin")
+
+    if  not pkg_blacklist_check(pkg):
+        if not pkg_installed_check(pkg):
+            logging.info("    %s is not installed, will not remove",pkg)
+        else:
+            logging.info("    Removing %s",pkg)
+            cmd ='''pacman --noconfirm -R  %s ''' %pkg
+            runcmd(cmd)
+    else:
+        logging.info("    %s is blacklisted, will not remove",pkg)
+
+def getpid(process):
+    return commands.getoutput('pidof %s' % process)
+
+def remove_file(filename):
+    logging.debug("    Removing %s", filename)
+    try:
+        os.remove(filename)
+    except:
+        logging.debug("*     Could not remove %s", filename)
+
+
+def restartLCD(RESTART_LCD):
+    if  RESTART_LCD :
+        logging.info("    Restarting lcd server")
+        cmd = "killall -9 mythlcdserver"
+        runcmd(cmd)
+    else:
+        logging.debug("    Not restarting MYTHLCD server")
+
+
+def reloadfe(dbhost,RESTART_LCD):
+    logging.debug("____Start of reloadfe____")
+    if data_config.SYSTEMTYPE == "MythVantage":
+        logging.info("    Clearing Backend cache")
+        cmd = '''/usr/bin/backend_control.sh  clearcache  behost %s''' %dbhost
+        runcmd(cmd)
+
+    restartLCD(RESTART_LCD)
+    for pid in getpid("mythfrontend"):
+        cmd = ''' kill -s USR1 %s ''' %pid
+        #runcmd(cmd)
+        logging.info("    Reloading frontend with pid of %s",pid)
+
+    logging.debug("__End of reloadfe\n")
+
+
+def restartfe(RESTART_LCD):
+    logging.debug("____Start of restartfe____")
+    if data_config.SYSTEMTYPE=="LinHES":
+        logging.debug("    LinHES seems to be running will not restartfe")
+        return
+    logging.info("    Restarting frontend")
+    restartLCD(RESTART_LCD)
+    cmd="killall -9 mythfrontend"
+    runcmd(cmd)
+    cmd="killall -9 welcome"
+    runcmd(cmd)
+    logging.debug("__End of restartfe\n")
+
+
+def udev_trigger():
+    logging.info("    Triggering udev")
+    cmd = "udevadm settle"
+    runcmd(cmd)
+    cmd = "udevadm trigger"
+    runcmd(cmd)
+    cmd = "udevadm settle"
+    runcmd(cmd)
+    cmd = "udevadm trigger"
+    runcmd(cmd)
+
+
diff --git a/abs/mv-core/MythVantage-config/mv_config.py b/abs/mv-core/MythVantage-config/mv_config.py
new file mode 100755
index 0000000..9ce29f1
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_config.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+SYSTEMTYPE="MythVantage"
+MVHOSTNAME="mvi"
+MOUNTPOINT="/new_boot"
+DATAMOUNT="/data"
+MYTHHOME="/data/home/mythtv"
+SQUASHFILE="/tmp/.squashlist"
+SQUASHLIST=("bin","boot","etc","home","lib","opt","root","sbin","usr","var","data")
+NOOPDEBUG="FALSE"
+BACKUPFILE="mythconverg.sql.gz"
+BACKUPPATH="/data/backup/"
+TEMP_TEMPLATES="/tmp/templates"
+SMEDIA="media"
+
diff --git a/abs/mv-core/MythVantage-config/mv_hostype.py b/abs/mv-core/MythVantage-config/mv_hostype.py
new file mode 100755
index 0000000..e7e14cb
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_hostype.py
@@ -0,0 +1,219 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+import os
+
+config_file = "mv_config"
+data_config = __import__(config_file, globals(), locals(), [])
+
+def setup_ntp(usepool,ntpserver):
+    if usepool:
+        logging.info("Setting ntp server to %s",ntpserver)
+        print '''sed -i "s/pool.ntp.org/$dbhost/g" ${BASE}/etc/ntp.conf'''
+    else:
+        logging.info("Not changing ntp configuration")
+
+def setup_avahi(templates):
+    file="/etc/avahi/services/mysql.service"
+    if not os.path.exists(file):
+        logging.debug("    copying in mysql.service for avahi")
+        try:
+            os.makedirs("/etc/avahi/services")
+        except:
+            logging.debug("    Couldn't create /etc/avahi/services")
+        mv_common.cp_and_log(templates+"/mysql.service",file)
+        cmd="sudo sv restart avahi"
+        mv_common.runcmd(cmd)
+
+def remove_avahi_service():
+    file="/etc/avahi/services/mysql.service"
+    if os.path.exists(file):
+        logging.debug("    Removing avahi mysql.service file")
+        cmd="rm -rf %s" %file
+        mv_common.runcmd(cmd)
+        cmd="sudo sv restart avahi"
+        mv_common.runcmd(cmd)
+
+def setup_db():
+    logging.debug("    Setting up the database")
+
+def setup_mysqlnetwork(EnableNetwork):
+    logging.debug("    Setting up mysql network")
+    mysqlconf = "/etc/my.cnf"
+    cmd = '''grep "#skip-networking" %s ''' %mysqlconf
+    status = mv_common.runcmd(cmd)
+
+    if EnableNetwork :
+        logging.debug("    Enabling mysql networking")
+        if status == 0 :
+            logging.debug("    Network is already enabled for mysql")
+        else:
+            cmd = '''sed -ie "s/^skip-networking/#skip-networking/g" %s ''' %mysqlconf
+            mv_common.runcmd(cmd)
+            mv_common.restart_service("mysqld")
+    else:
+        logging.debug("    Disabling mysql networking")
+        if status == 1 :
+            logging.debug("    Network is already disabled for mysql")
+        else:
+            cmd = '''sed -ie "s/#skip-networking/skip-networking/g" %s ''' %mysqlconf
+            mv_common.runcmd(cmd)
+            mv_common.restart_service("mysqld")
+
+def setup_mysql_connection(systemconfig):
+    logging.info("    Configuring database connection")
+    mythip = systemconfig["mythip"]
+    systemtype = systemconfig["SystemType"]
+    mv_root = systemconfig["MVROOT"]
+    mysqltxt = "/usr/share/mythtv/mysql.txt"
+    templates = systemconfig["TEMPLATES"]
+    mysqltemplate = templates + "/mysql.txt"
+    dbhost = systemconfig["dbhost"]
+
+    if systemtype == "Master_backend":
+        logging.debug("    Setting dbhost to %s in systemconfig", mythip)
+        dbhost = mythip
+        cmd = '''sed -ei "s/^dbhost=.*$/dbhost=\"%s\"/" /etc/systemconfig ''' %dbhost
+        mv_common.runcmd(cmd)
+        logging.debug("    Changing dbhost in settings table for master_backend")
+        cmd = '''%s/bin/restore_default_settings.sh -c BECONFIG -s master -a %s ''' %(mv_root, dbhost)
+        mv_common.runcmd(cmd)
+
+    if systemtype == "Slave_backend":
+        slavehost = mythip
+        logging.debug("    Changing slave in settings: %s", slavehost)
+        cmd = '''%s/bin/restore_default_settings.sh -c BECONFIG -s slave  -a %s ''' %(mv_root, slavehost)
+        mv_common.runcmd(cmd)
+
+    if systemtype == "Master_backend":
+        logging.debug("   changing mysql.txt file to use localhost")
+        cmd = '''sed -e "s/^DBHostName=.*$/DBHostName="localhost"/" %s > %s ''' %(mysqltemplate, mysqltxt)
+        mv_common.runcmd(cmd)
+    else:
+        logging.debug("   changing mysql.txt file to use %s", dbhost)
+        cmd = '''sed -e "s/^DBHostName=.*$/DBHostName=%s/" %s > %s ''' %(dbhost, mysqltemplate, mysqltxt)
+        mv_common.runcmd(cmd)
+
+    delfile = data_config.MYTHHOME + "/.mythtv/mysql.txt"
+    mv_common.remove_file(delfile)
+    delfile = mv_root + "/bin/mythtv/.mythtv/mysql.txt"
+    mv_common.remove_file(delfile)
+    filecheck = data_config.MYTHHOME + "/templates/mysql.txt"
+    if os.path.exists(filecheck):
+        logging.info("    Scrapping all the previous work and using %s for mysql.txt", filecheck)
+        mv_common.cp_and_log(filecheck, mysqltxt)
+
+
+
+def setup_func_key():
+    if data_config.SYSTEMTYPE == "MythVantage":
+        logging.debug("    Grabbing the key for Func")
+        cmd="/usr/MythVantage/bin/grabkey.py"
+        mv_common.runcmd(cmd)
+
+def setup_func_minion(dbhost):
+    logging.info("    Setting up the func minion:")
+    logging.debug("   certmaster is %s:",dbhost)
+    cmd='''sed -i "s/^certmaster.*$/certmaster = %s/" /etc/func/minion.conf ''' %dbhost
+    mv_common.runcmd(cmd)
+
+def setup_syslog(dbhost):
+    logging.debug("    Setting syslog to log to %s",dbhost)
+    cmd ='''sed -i "s/^destination d_remote.*$/destination d_remote \{tcp\(\"%s\" port\(514\)\) \;\} \;/" /etc/syslog-ng.conf''' %dbhost
+    return
+
+def hostypeprint(systemconfig):
+    logging.info("______Start of hostype config_____")
+    mv_common.services(systemconfig)
+    install_list=''
+    remove_list=''
+    daemon_list=''
+    daemon_remove_list=''
+    run_mysqlnetwork = False
+
+    if systemconfig["SystemType"] == "Standalone":
+        logging.info("Stand alone system being configured")
+        setup_ntp(False,"null")
+        remove_avahi_service()
+        EnableNetwork = False
+        run_mysqlnetwork = True
+        if systemconfig["hostypec"]:
+            setup_db()
+        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
+        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+
+    elif systemconfig["SystemType"] == "Master_backend":
+        logging.info("Master backend system being configured")
+        setup_ntp(False,"null")
+        setup_avahi(systemconfig["TEMPLATES"])
+        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
+        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        EnableNetwork = True
+        run_mysqlnetwork = True
+        if data_config.SYSTEMTYPE == "MythVantage":
+            install_list.append('func')
+            install_list.append('certmaster')
+            daemon_list.append('certmaster')
+
+    elif systemconfig["SystemType"] == "Slave_backend":
+        logging.info("Slave backend  system being configured")
+        setup_ntp(True,systemconfig["dbhost"])
+        remove_avahi_service()
+        if systemconfig["hostypec"]:
+            setup_db()
+        install_list=("portmap", "nfs-utils", "local-website", "avahi", 'libmysqlclient')
+        daemon_list=("mythbackend", "portmap", "nfs-utils", "netfs", "lighttpd", "avahi")
+        daemon_remove_list=('mysql')
+        if data_config.SYSTEMTYPE == "MythVantage":
+            install_list.remove("local-website")
+            daemon_list.remove("lighttpd")
+            install_list.append('func')
+            daemon_list.append('funcd')
+            remove_list.append("lighttpd")
+
+
+    elif systemconfig["SystemType"] == "Frontend_only":
+        logging.info("Frontend only system being configured")
+        setup_ntp(True,systemconfig["dbhost"])
+        remove_avahi_service()
+        install_list=("mysql-clients", "libmysqlclient",  "avahi", "portmap", "nfs-utils", "local-website")
+        remove_list=("mysql")
+        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        daemon_remove_list=("mysql", "mythbackend")
+        if data_config.SYSTEMTYPE == "MythVantage":
+            install_list.remove("local-website")
+            daemon_list.remove("lighttpd")
+            install_list.append('func')
+            daemon_list.append('funcd')
+            remove_list.append("lighttpd")
+
+
+
+    for pkg in install_list:
+        mv_common.pacinstall(pkg)
+    for pkg in remove_list:
+        mv_common.pacinstall(pkg)
+    for daemon in daemon_list:
+        mv_common.add_service(daemon)
+    for daemon in daemon_remove_list:
+        mv_common.remove_service(daemon)
+    if systemconfig["RunFrontend"] == "1":
+        logging.debug("   Will run the frontend")
+        mv_common.add_service("frontend")
+        mv_common.add_service("hal")
+    else:
+        logging.debug("   Will NOT run the frontend")
+        mv_common.remove_service("frontend")
+        mv_common.remove_service("hal")
+
+
+    if run_mysqlnetwork:
+        setup_mysqlnetwork(EnableNetwork)
+    else:
+        logging.debug("    Not running setup_mysql_connection")
+
+    setup_mysql_connection(systemconfig)
+    if data_config.SYSTEMTYPE == "MythVantage":
+        setup_func_minion(systemconfig["dbhost"])
+        setup_func_key()
+        setup_syslog(systemconfig["dbhost"])
+    logging.info("__End of hostype config\n")
diff --git a/abs/mv-core/MythVantage-config/mv_install.py b/abs/mv-core/MythVantage-config/mv_install.py
new file mode 100755
index 0000000..56118c1
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_install.py
@@ -0,0 +1,1433 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+import sys,  os,  commands,  glob,  time
+import getopt,  re,  MySQLdb
+import logging
+try:
+    import parted
+except:
+    print "module parted not found"
+
+def usage():
+    print "help text:"
+    print "example usage:  --rootdisk=sda --rootfs=ext4 --rootsize=34240 --datafs=ext4 --datasize=3400 --datadisk=sda --swapsize=340 -c full_install"
+
+def clean_upgrade():
+    return False
+
+def error_out(errmsg):
+    cmd = '''echo %s >> /tmp/.install_error ''' %errmsg
+    runcmd(cmd)
+    logging.critical("***********************************")
+    logging.critical("error: %s",errmsg)
+    print "***********************************"
+    print "ERROR: mv_install.py: %s" %errmsg
+    print "***********************************"
+    sys.exit(1)
+
+
+def update_db(value, data):
+    db = MySQLdb.connect(host="localhost",  user="mythtv",  passwd="[REDACTED]  db="mythconverg")
+    try:
+        cursor = db.cursor()
+        cursor.execute("DELETE FROM settings where value=%s and hostname=%s;", (value, data_config.MVHOSTNAME))
+        cursor.execute("REPLACE INTO  settings set value=%s, data=%s, hostname=%s;", (value, data, data_config.MVHOSTNAME))
+        logging.debug("Updated database  with %s, %s", data, value)
+    except  MySQLdb.Error,  e:
+        logging.debug("Unable to update database with %s, %s", data, value)
+
+
+def progress(pgnum):
+    progressline = str(pgnum) + "% complete"
+    logging.debug("Progress: %s",  pgnum)
+    f = open('/tmp/.install_percent',  'w')
+    f.write(progressline)
+    f.close()
+
+def update_status(status):
+    logging.debug("Status: %s",  status)
+    f = open('/tmp/.install_state',  'w')
+    f.write(str(status))
+    f.close()
+
+def kill_dhcp_chroot():
+    logging.debug("Killing off chroot dhcpcd")
+    stddir = os.getcwd()
+    piddir = ("%s/var/run/") %data_config.MOUNTPOINT
+    try:
+        os.chdir(piddir)
+        for FILE in glob.glob("dhcpcd-*.pid"):
+            f = open(FILE, 'r')
+            pid = f.readline()
+            f.close()
+            cmd = "kill -9 %s" %pid
+            runcmd(cmd)
+            os.remove(FILE)
+        os.chdir(stddir)
+    except:
+        pass
+
+def statgrab(disk):
+    cmd = "statgrab -M disk. |grep %s.write_bytes" % hostoptions["rootdisk"]
+    out = commands.getoutput(cmd)
+    try:
+        prewritebytes = out.split("=")[1].strip()
+    except:
+        prewritebytes = "1024"
+    outline = "STARTSIZE=%s" %prewritebytes
+    f = open('/tmp/.startsize.io',  'w')
+    f.write(str(outline))
+    f.close()
+
+def backup_sql_check():
+    logging.debug("Searching for backup file")
+    try:
+        hostoptions["backupfile"]
+    except:
+        logging.debug("Backup file var is empty")
+        return False
+    if os.path.exists(data_config.MOUNTPOINT+hostoptions["backupfile"]):
+        logging.debug("Backup file %s is present", data_config.MOUNTPOINT+hostoptions["backupfile"])
+        return True
+    else:
+        logging.debug("Backup file %s is NOT present", data_config.MOUNTPOINT+hostoptions["backupfile"])
+        return False
+
+def mdadm_find(PREFIX):
+    logging.debug("Searching for mdadm.conf")
+    if os.path.exists(PREFIX+"/etc/KnoppMyth-version"):
+        mdadmconf = "/etc/mdadm/mdadm.conf"
+    else:
+        mdadmconf = "/etc/mdadm.conf"
+    logging.debug("Using %s for mdadm.conf", mdadmconf)
+    return mdadmconf
+
+def mdadm_assemble_all():
+    # read mdadm.conf and start the arrays
+    #ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977
+    logging.debug("Starting mdadm support")
+    mdadmconf_file = mdadm_find("/tmp")
+    cmd = "cdadm --assemble --scan -c /tmp/%s" %mdadmconf_file
+    runcmd(cmd)
+    mdadm_contents = ''
+    try:
+        f = open(mdadmconf_file,  'r')
+        mdadm_contents = f.readlines()
+        f.close()
+    except:
+        logging.debug("     Couldn't open mdadmconf file")
+    for line in mdadm_contents:
+        if line.startswith("ARRAY"):
+            logging.debug("     Found MD array: %s", line)
+            array = line.split()[1]
+            logging.info("      assembling array: %s", array)
+            cmd = "mdadm --assemble -c /tmp%s %s" %(mdadmconf_file, array)
+            runcmd(cmd)
+            time.sleep(2)
+            cmd = "fsck -p %s" %array
+            runcmd
+
+def copy_updates():
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("MVROOT was not defined,  using the default value")
+        MVROOT = "/usr/MythVantage"
+    cp_and_log2(MVROOT+"/bin/", data_config.MOUNTPOINT+MVROOT+"/bin", "*.sh")
+    cp_and_log2(MVROOT+"/bin/", data_config.MOUNTPOINT+MVROOT+"/bin", "*.py")
+
+def timezone_to_db(timefile):
+    logging.info("importing timezone")
+    try:
+        f = open(timefile)
+        timezonecontents = f.readline().strip()
+        f.close()
+    except:
+        logging.debug("Couldn't open /tmp/etc/timezone, will not set the timezone")
+        return
+    update_db("HostTimeZone", timezonecontents);
+    tzsplit = timezonecontents.partition('/')
+    print tzsplit
+    if tzsplit[2]  == '' :
+        update_db("HostTimeZoneRegion", tzsplit[0])
+    else:
+        update_db("HostTimeZoneRegion", tzsplit[0])
+        tztemp="HostTimeZoneRegion_%s" % tzsplit[0]
+        update_db(tztemp, tzsplit[2])
+
+
+
+def cp_and_log(srcfile, destfile):
+    #return
+    if not os.path.exists(srcfile):
+        logging.info("%s is not present,  skipping...", srcfile)
+    else:
+        cmd = ("rsync -arvp %s %s") %(srcfile, destfile)
+        runcmd(cmd)
+
+def cp_and_log2(srcfile, destfile, fileglob):
+    #return
+    logging.debug("cp_and_log2")
+    logging.debug("%s,  %s,  %s", srcfile, destfile,  fileglob)
+
+    if not os.path.exists(srcfile):
+        logging.info("%s is not present,  skipping...", srcfile)
+    else:
+        if fileglob == '':
+            cmd = ("rsync -arvp %s %s") %(srcfile, destfile)
+            runcmd(cmd)
+        else:
+            fileglob = "*"
+            cmd = ("rsync -arvp %s/%s %s") %(srcfile, fileglob, destfile)
+            runcmd(cmd)
+
+def runcmd(cmd):
+    if data_config.NOOPDEBUG == "FALSE":
+        pass
+    else:
+        cmd = "echo "+cmd
+    logging.debug("    %s", cmd)
+    cmdout = commands.getstatusoutput(cmd)
+    logging.debug("    %s", cmdout)
+    return cmdout
+
+def mysqldb(cmd, inchroot):
+    if cmd == "start":
+        mycmd = "  /etc/rc.d/mysqld start"
+    elif cmd == "stop":
+        mycmd = "  /etc/rc.d/mysqld stop"
+    if inchroot == "chroot":
+        mycmd = "  chroot /newboot %s" %mycmd
+    runcmd(mycmd)
+
+
+def mount_bind_chroot():
+    logging.debug("Mounting dev/proc/sysfs for chroot")
+    cmd = "  mount --bind /dev %s" %data_config.MOUNTPOINT+"/dev"
+    runcmd(cmd)
+    cmd = "  mount --bind /dev/pts %s" %data_config.MOUNTPOINT+"/dev/pts"
+    runcmd(cmd)
+    cmd = "  mount --bind /proc %s" %data_config.MOUNTPOINT+"/proc"
+    runcmd(cmd)
+    cmd = "  mount -t sysfs none  %s" %data_config.MOUNTPOINT+"/sys"
+    runcmd(cmd)
+
+
+def umount_bind_chroot():
+    logging.debug("UnMounting dev/proc/sysfs for chroot")
+    cmd = "  umount -l %s" %data_config.MOUNTPOINT+"/dev/pts"
+    runcmd(cmd)
+    cmd = "  umount -l %s" %data_config.MOUNTPOINT+"/dev"
+    runcmd(cmd)
+    cmd = "  umount -l %s" %data_config.MOUNTPOINT+"/proc"
+    runcmd(cmd)
+    cmd = "  umount -l %s" %data_config.MOUNTPOINT+"/sys"
+    runcmd(cmd)
+
+
+def blank_table(diskdevice):
+    logging.debug("    writing new parition table for %s", diskdevice)
+    logging.debug("parition table before:")
+    cmd = "fdisk -l %s" %diskdevice
+    runcmd(cmd)
+
+    cmd = "echo w |fdisk %s" %diskdevice
+    runcmd(cmd)
+
+    logging.debug("parition table after:")
+    cmd = "fdisk -l %s" %diskdevice
+    runcmd(cmd)
+
+def partitions_removeall(diskdevice, label):
+    logging.info("Removing all partitions for %s  %s", label, diskdevice)
+    try:
+        device = parted.getDevice(diskdevice)
+        partdisk = parted.Disk(device)
+        partdisk.deleteAllPartitions()
+        if data_config.NOOPDEBUG == "FALSE":
+            partdisk.commit()
+        for partition in partdisk.partitions:
+            print "type: %s" %partition.type
+    except:
+        logging.debug("   Error reading parition table, attempting to write a blank one")
+        blank_table(diskdevice)
+
+
+def create_partitions(diskdevice, size, ptype, startsector):
+    logging.debug("_____Create partitions______")
+    if size == "NO":
+        logging.info("Size is 0,  skipping")
+        return "NO"
+    partlist = []
+    newstart = 0
+    totalused = 0
+    device = parted.getDevice(diskdevice)
+    partdisk = parted.Disk(device)
+    for partition in partdisk.partitions:
+        if partition.type != parted.PARTITION_FREESPACE:
+            partlist.append((partition,
+                        partition.path,
+                        partition.getFlag(parted.PARTITION_BOOT),
+                        partition.geometry.start,
+                        partition.geometry.end,
+                        partition.geometry.length,
+                        partition.type,
+                        partition.fileSystem))
+    for slice in partlist:
+        (usedpartition,  usedpath,  usedbootable,  usedstart,  usedend,  usedlength,  usedtype,  usedfs) = slice
+        #Start the new partition one after the end of last
+        newstart = usedend+1
+
+    if  startsector == 0:
+        newstart = 0
+    if size == "ALL":
+        logging.debug("     Using the rest of the disk  %s", (device.length-newstart) )
+        try:
+            geom = parted.Geometry(device=device,  start=newstart,  length=(device.length-newstart))
+        except:
+            logging.info("An error occured,  probably invalid parition size")
+            return
+    else:
+        # convert size in MB to a length on the device in sectors
+        length = (int(size) * (1024 * 1024)) / device.sectorSize
+        logging.debug("Size is %s", length)
+        try:
+            geom = parted.Geometry(device=device,  start=newstart,  length=length)
+        except:
+            logging.info("An error occured,  probably invalid parition size")
+            error_out("invalid parition size")
+
+    #collect device constraint
+    constraint = device.getConstraint()
+    # new partition
+    if ptype == "NORMAL":
+        newpart = parted.Partition(disk=partdisk, type=parted.PARTITION_NORMAL,  geometry=geom)
+    elif ptype == "SWAP":
+        newpart = parted.Partition(disk=partdisk, type=parted.PARTITION_NORMAL,  geometry=geom)
+
+    #add the partition to the disk and commit changes
+    partdisk.addPartition(partition=newpart,  constraint=constraint)
+    if data_config.NOOPDEBUG == "FALSE":
+        partdisk.commit()
+    logging.info("created partition %s of %dMB and added it to %s" %
+                (newpart.getDeviceNodeName(),  newpart.getSize(),  diskdevice))
+    return newpart.getDeviceNodeName()
+
+def set_active_parition(diskdevice):
+        """ Set the bootable flag for this partition. """
+        logging.debug("    Setting active parition")
+        device = parted.getDevice(diskdevice)
+        partdisk = parted.Disk(device)
+        try:
+            for partition in partdisk.partitions:
+                partition.setFlag(parted.PARTITION_BOOT)
+            partdisk.commit()
+        except:
+            logging.info("    Couldn't set the active partition")
+            logging.info("    Depending on your system this may not matter")
+
+
+def partition_disk():
+    global hostoptions
+    logging.info("Partitioning")
+    logging.debug("____start of partition_disk____")
+    rootdisk = hostoptions["rootdisk"]
+    datadisk = hostoptions["datadisk"]
+    label = "root"
+    partitions_removeall("/dev/"+rootdisk, label)
+    label = "data"
+    partitions_removeall("/dev/"+datadisk, label)
+    hostoptions["rootpartition"] = create_partitions("/dev/"+rootdisk, hostoptions["rootsize"], "NORMAL", 0)
+    set_active_parition("/dev/"+rootdisk)
+    hostoptions["swappartition"] = create_partitions("/dev/"+rootdisk, hostoptions["swapsize"], "SWAP", 1)
+    if datadisk != rootdisk:
+        hostoptions["datapartition"] = create_partitions("/dev/"+datadisk, hostoptions["datasize"], "NORMAL", 0)
+    else:
+        hostoptions["datapartition"] = create_partitions("/dev/"+datadisk, hostoptions["datasize"], "NORMAL", 1)
+    time.sleep(5)
+
+def fscmd(fstype):
+    fscmds = {"reiserfs":"mkreiserfs -q -l ROOT",  "xfs": "mkfs -t xfs -f",  "ext3": "mkfs.ext3", "jfs":"mkfs.jfs -q", "ext4":"mkfs.ext4", "Do_not_format":"noformat", "no_format":"noformat"}
+    try:
+        rc = fscmds[fstype]
+    except:
+        logging.critical(" %s is not a valid fs type,  exiting now", fstype)
+        error_out("Error mvinstall during format")
+    return rc
+
+
+def format_disk(install_type):
+    logging.info("______Starting Disk Format______")
+    rootfs = fscmd(hostoptions["rootfs"])
+    datafs = fscmd(hostoptions["datafs"])
+
+    rootdisk = hostoptions["rootdisk"]
+    datadisk = hostoptions["datadisk"]
+    rootpartition = hostoptions["rootpartition"]
+    datapartition = hostoptions["datapartition"]
+    if install_type != "upgrade":
+        swapsize = hostoptions["swapsize"]
+        swappartition = hostoptions["swappartition"]
+
+    logging.debug("     Format command for rootfs  %s : %s ",  rootfs, rootpartition)
+    if ( rootfs != "noformat"):
+        logging.info("Starting format of %s", rootpartition)
+        cmd = "  %s /dev/%s" %( rootfs,  rootpartition)
+        #os.system(cmd)
+        runcmd(cmd)
+    else:
+        logging.info("Will not format root partition: %s", rootpartition)
+
+    logging.debug("     Format command for datafs  %s : %s ",  datafs, datapartition)
+    if (datafs != "noformat"):
+        logging.info("Starting format of %s", datapartition)
+        cmd = "  %s /dev/%s" %( datafs,  datapartition)
+        #os.system(cmd)
+        runcmd(cmd)
+    else:
+        logging.info("Will not format data partition: %s",  datapartition)
+
+    if install_type == "install":
+        if (hostoptions["swapsize"] != "NO"):
+            logging.info("Starting format for swap %s", swappartition)
+            cmd = "  mkswap /dev/%s" % swappartition
+            #os.system(cmd)
+            runcmd(cmd)
+        else:
+            logging.debug("     Swap is set to NO,  will not run mkswap")
+
+    logging.debug("_____End of format______")
+
+
+def mount_it():
+    logging.info("______Mounting disk______")
+#   Create mount points
+    try:
+        mountpoint = data_config.MOUNTPOINT
+        mp = mountpoint
+        logging.info("Creating mountpoints %s", mp)
+        os.makedirs(mp)
+    except OSError:
+        logging.debug("     Could not create %s", mp)
+
+#   Mount root
+    cmd = "mount /dev/%s %s"  %(hostoptions["rootpartition"], mountpoint)
+    runcmd(cmd)
+    #logging.debug(cmd)
+    #cmdout=commands.getoutput(cmd)
+    #logging.debug(cmdout)
+#   Mount data
+#make mountpoint after mounting /
+    try:
+        mountpoint = data_config.MOUNTPOINT
+        datapoint = data_config.DATAMOUNT
+        mp = mountpoint+datapoint
+        logging.info("Creating mountpoints %s", mp)
+        os.makedirs(mp)
+    except OSError:
+        logging.debug("     Could not create %s", mp)
+
+    cmd = "mount /dev/%s %s"  %(hostoptions["datapartition"], mp)
+    runcmd(cmd)
+    #logging.debug(cmd)
+    #cmdout=commands.getoutput(cmd)
+    #logging.debug(cmdout)
+
+def unmount_it():
+    logging.info("______Unmounting disk______")
+    cmd = "umount  %s"  %(data_config.MOUNTPOINT+data_config.DATAMOUNT)
+    runcmd(cmd)
+    time.sleep(2)
+
+    cmd = "swapoff /dev/%s" %(hostoptions["swappartition"])
+    runcmd(cmd)
+
+    cmd = "sync"
+    runcmd(cmd)
+
+    cmd = "umount   %s"  %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "sync"
+    runcmd(cmd)
+
+
+def create_squashlist():
+    logging.debug("Creating squashlist")
+    squashfile = data_config.SQUASHFILE
+    f = open(squashfile,  'w')
+    for i in data_config.SQUASHLIST:
+        f.write(i)
+        f.write("\n")
+        logging.debug(i)
+    f.close()
+
+
+def copy_it(install_type):
+    logging.info("______Transferring to disk______")
+    logging.debug(  install_type)
+    if ( install_type == "install"):
+        logging.info("Transferring system")
+        cmd = "  unsquashfs -f -d %s /.livesys/medium/system.sqf" %(data_config.MOUNTPOINT)
+        runcmd(cmd)
+        #logging.debug(cmd)
+        #cmdout=commands.getoutput(cmd)
+
+    if ( install_type == "upgrade"):
+        logging.info("Upgrading system")
+        create_squashlist()
+        cmd = "  unsquashfs -e %s -f -d %s /.livesys/medium/system.sqf" %(data_config.SQUASHFILE,  data_config.MOUNTPOINT)
+        runcmd(cmd)
+        #logging.debug(cmd)
+        #cmdout=commands.getoutput(cmd)
+#   Create the missing dir
+    i = ("sys", "proc", "dev", "tmp", "mnt", "media", "media/cdrom", "media/dvd", "var/log/mythtv")
+    mountpoint = data_config.MOUNTPOINT
+    for item in i:
+        try:
+            mp = mountpoint+"/"+item
+            logging.info("Creating mountpoints %s", mp)
+            os.makedirs(mp)
+        except OSError:
+            logging.debug("     __Could not create %s", mp)
+#   General fixup
+    cmd = "chmod 777 %s/tmp" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "mknod %s/dev/null c 1 5" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "mknod %s/dev/console c 5 1" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "chmod +s  %s/usr/bin/Xorg" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "chmod +s  %s/usr/bin/crontab" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "chmod +s  %s/usr/bin/sudo" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    cmd = "chmod +s  %s/bin/mount" %(data_config.MOUNTPOINT)
+    runcmd(cmd)
+    logging.debug("__End of copy_it__")
+
+def create_fstab(extralines):
+    logging.debug("______Creating new fstab file_______")
+    logging.info("Creating new fstab file")
+    fstabfile = data_config.MOUNTPOINT+"/etc/fstab"
+    fstab_list = []
+    f = open(fstabfile,  'w')
+    line = '''# <file system>        <dir>         <type>    <options>          <dump> <pass> \n'''
+    fstab_list.append(line)
+    line = '''none                   /dev/pts      devpts    defaults            0      0 \n'''
+    fstab_list.append(line)
+    line = '''none                   /dev/shm      tmpfs     defaults            0      0\n'''
+    fstab_list.append(line)
+    line = '''/dev/cdrom /media/cdrom   auto    ro,user,noauto,unhide   0      0\n'''
+    fstab_list.append(line)
+    line = '''/dev/dvd /media/dvd   auto    ro,user,noauto,unhide   0      0\n'''
+    fstab_list.append(line)
+    line = '''UUID=ROOTUID /  auto defaults,noatime 0 1\n'''
+    fstab_list.append(line)
+    line = '''UUID=DATAUID %s  auto defaults,noatime 0 1\n''' %(data_config.DATAMOUNT)
+    fstab_list.append(line)
+    line = '''UUID=SWAPUID swap swap defaults  0 0 \n'''
+    fstab_list.append(line)
+    for vline in extralines:
+        fstab_list.append(vline)
+    for outline in fstab_list:
+        logging.debug(outline)
+        f.write(outline)
+    f.close()
+
+def find_uuid(partition):
+    logging.info("Finding the UUID for %s...", partition)
+    cmd = "blkid -s UUID /dev/%s" %partition
+    tmpuuid = runcmd(cmd)[1]
+    splituuid = tmpuuid.partition("=")
+    uuid = splituuid[2].replace('"', "")
+    logging.info("The uuid is %s", uuid)
+    return uuid.strip()
+
+def pick_out_vg():
+    logging.info("Searching for Volume Groups in old fstab")
+    vglines = []
+    f = open("/tmp/etc/fstab",  'r')
+    oldfscontents = f.readlines()
+    for line in oldfscontents:
+        if line.startswith("/dev/vg"):
+            vglines.append(line)
+            templine = line.split()
+            mdir = templine[1]
+            if not os.path.exists (mdir):
+                logging.debug("Creating dir %s for VG mount", mdir)
+                os.makedirs (mdir)
+#               Might need to os.chown to mythtv:users
+            else:
+                logging.debug("Directory %s for VG mount already present", mdir)
+    return vglines
+
+def fstab_it(install_type):
+    logging.info("______Checking fstab______")
+    kmvg = []
+    fstabfile = data_config.MOUNTPOINT+"/etc/fstab"
+#   Check for knoppmyth install,  if found create new
+    if install_type == "upgrade":
+        if os.path.exists("/tmp/etc/KnoppMyth-version"):
+            logging.debug("     KnoppMyth-Version found,  creating new fstab")
+            kmvg = pick_out_vg()
+            create_fstab(kmvg)
+        elif os.path.exists("/tmp/etc/fstab"):
+            logging.debug("     Upgrade and not Knoppmyth,  using old fstab")
+            cp_and_log("/tmp/etc/fstab", fstabfile)
+#   Catch all for creating new fstab
+    if not os.path.exists(data_config.MOUNTPOINT+"/etc"):
+        os.makedirs(data_config.MOUNTPOINT+"/etc")
+    if not os.path.exists(fstabfile):
+        create_fstab(kmvg)
+
+    logging.info("____UUID check for %s",  "swap")
+    swapuuid = find_uuid(hostoptions["swappartition"])
+
+    logging.info("____UUID check for %s",  "data")
+    datauuid = find_uuid(hostoptions["datapartition"])
+
+    logging.info("____UUID check for %s",  "root")
+    rootuuid = find_uuid(hostoptions["rootpartition"])
+
+    fstabfile = data_config.MOUNTPOINT+"/etc/fstab"
+    logging.info("Correcting UUID's in %s", fstabfile)
+    f = open(fstabfile,  'r')
+    oldfscontents = f.readlines()
+    newfstab = []
+    f.close()
+    for line in oldfscontents:
+        if line.startswith("UUID"):
+            templine = line.split()
+            if ( templine[1] == "/"):
+                logging.debug("     Found Root fstab line:")
+                logging.debug(      templine)
+                templine[0] = "UUID=%s" %(rootuuid)
+                newline = ''
+                for i in templine:
+                    newline+=i
+                    newline+="    "
+                newline+="\n"
+                logging.debug("     New fstab line:")
+                logging.debug(      newline)
+                newfstab.append(newline)
+
+            if ( templine[1] == data_config.DATAMOUNT):
+                logging.debug("     Found DATA mount")
+                logging.debug(      templine)
+                templine[0] = "UUID=%s" %(datauuid)
+                newline = ''
+                for i in templine:
+                    newline+=i
+                    newline+="    "
+                newline+="\n"
+                logging.debug("     New fstab line:")
+                logging.debug(      newline)
+                newfstab.append(newline)
+
+            if ( templine[1] == "swap"):
+                if len(swapuuid) <= 5:
+                    logging.debug("     swapp uuid is to small")
+                else:
+                    logging.debug("     Found swap partition")
+                    logging.debug(      templine)
+                    templine[0] = "UUID=%s" %(swapuuid)
+                    newline = ''
+                    for i in templine:
+                        newline+=i
+                        newline+="    "
+                    newline+="\n"
+                    logging.debug("     New fstab line:")
+                    logging.debug(      newline)
+                    newfstab.append(newline)
+        else:
+            logging.debug("     Line didn't match,  adding to newfstab:")
+            logging.debug(      line)
+            newfstab.append(line)
+    logging.info("Writing out newfstab")
+    logging.debug("______This is the new fstab_____")
+    f = open(fstabfile,  'w')
+    for line in newfstab:
+        logging.debug(line)
+        f.write(line)
+        #f.write("\n")
+    f.close()
+
+def grub_it():
+    logging.info("______Start of grub install______")
+    cmd = "  grub-install --recheck --no-floppy --root-directory=%s \"(hd0)\" "  % data_config.MOUNTPOINT
+    logging.info("Running grub-install")
+    runcmd(cmd)
+    rootuuid = find_uuid(hostoptions["rootpartition"])
+    cmd = "  mkinitcpio -g %s/boot/kernel26.img" % data_config.MOUNTPOINT
+    logging.info("Running mkinitcpio")
+    runcmd(cmd)
+    logging.info("Adding root uuid to grub menu")
+    grubfile = data_config.MOUNTPOINT+"/boot/grub/menu.lst"
+    try:
+        f = open(grubfile,  'r')
+        oldgrub = f.readlines()
+        newgrub = []
+        f.close()
+        for line in oldgrub:
+            if line.startswith("kernel"):
+                templine = line.split()
+                logging.debug("     Found kernel Root grubline:")
+                logging.debug(      templine)
+                templine[2] = "root=/dev/disk/by-uuid/%s" %(rootuuid)
+                newline = ''
+                for i in templine:
+                    newline+=i
+                    newline+="    "
+                newline+="\n"
+                logging.debug("     New grub menu.lst  line:")
+                logging.debug(      newline)
+                newgrub.append(newline)
+            else:
+                logging.debug("Line didn't match,  adding to newgrub:")
+                logging.debug(      line)
+                newgrub.append(     line)
+        logging.info("Writing out new grub file")
+        logging.debug("______This is the new grub_____")
+        f = open(grubfile,  'w')
+        for line in newgrub:
+            logging.debug(line)
+            f.write(line)
+        f.close()
+    except:
+        logging.debug("Couldn't open grub file")
+
+def fix_permissions():
+    logging.info("Fixing permissions")
+    SE = os.environ["TEMPLATES"]+"/settings/syssettings"
+    cmd = "  chmod -R 755  %s" %(data_config.MOUNTPOINT+SE)
+    runcmd(cmd)
+    cmd = "  chmod 775  %s" %(data_config.MOUNTPOINT+"/etc/systemconfig")
+    runcmd(cmd)
+    cmd = "  chmod 755  %s" %(data_config.MOUNTPOINT+"/root")
+    runcmd(cmd)
+    cmd = "  chown root:mythtv  %s" %(data_config.MOUNTPOINT+"/etc/systemconfig")
+    runcmd(cmd)
+    cmd = "  chown -R mythtv:mythtv  %s" %(data_config.MOUNTPOINT+SE)
+    runcmd(cmd)
+    cmd = "  chown -R mythtv:mythtv  %s" %(data_config.MOUNTPOINT+"/var/log/mythtv")
+    runcmd(cmd)
+
+def apply_new_auth():
+    logging.info("_____Applying Password updates_______")
+    passfile = "/root/myth_user_call.out"
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("MVROOT was not defined,  using the default value")
+        MVROOT = "/usr/MythVantage"
+    if data_config.NOOPDEBUG == "FALSE":
+        cmdprefix = "chroot " + data_config.MOUNTPOINT + " " + MVROOT+"/bin/myth_user_call -i "
+    else:
+        cmdprefix = "echo chroot " + data_config.MOUNTPOINT + " " + MVROOT+"/bin/myth_user_call -i "
+    try:
+        f = open(passfile,  'r')
+        passcmds = f.readlines()
+        f.close()
+        for cmd in passcmds:
+            execmd = cmdprefix+cmd
+#            Using os.system because runcmd fails
+            logging.debug(execmd)
+            os.system(execmd)
+    except:
+        logging.debug("Applying password updates failed,  couldn't open %s", passfile)
+    logging.debug
+
+def add_to_blacklist(module):
+    rcfile = data_config.MOUNTPOINT + "/etc/rc.conf"
+    logging.debug("    Attempting to add %s to blacklist", module)
+    newline=''
+    try:
+        f = open(rcfile, 'r')
+        conflines = f.readlines()
+        f.close()
+    except:
+        logging.critical("    *Couldn't open %s for reading",rcfile)
+        return
+
+    try:
+        f = open(rcfile, 'w')
+    except:
+        logging.critical("    *Couldn't open %s for reading",rcfile)
+        return
+
+    for line in conflines:
+        newline = line
+        if re.match("MOD_BLACKLIST",line):
+            logging.debug(line)
+            try:
+                lastpar = line.rindex(')')
+                logging.debug("    found ) at %s", lastpar)
+                newline = line[:lastpar] +" !" + module + " " + line[lastpar:]
+                logging.debug(newline)
+            except:
+                logging.debug("Couldn't find ending )")
+                newline = line
+        f.write(newline)
+    f.close()
+
+
+def add_to_modulelist(module):
+    rcfile = data_config.MOUNTPOINT + "/etc/rc.conf"
+    logging.debug("    Attempting to add %s to modulelist", module)
+    newline=''
+    try:
+        f = open(rcfile, 'r')
+        conflines = f.readlines()
+        f.close()
+    except:
+        logging.critical("    *Couldn't open %s for reading",rcfile)
+        return
+
+    try:
+        f = open(rcfile, 'w')
+    except:
+        logging.critical("    *Couldn't open %s for reading",rcfile)
+        return
+
+    for line in conflines:
+        newline = line
+        if re.match("MODULES=",line):
+            logging.debug(line)
+            try:
+                lastpar = line.rindex(')')
+                logging.debug("    found ) at %s", lastpar)
+                newline = line[:lastpar] +" " + module + " " + line[lastpar:]
+                logging.debug(newline)
+            except:
+                logging.debug("Couldn't find ending )")
+                newline = line
+        f.write(newline)
+    f.close()
+
+
+
+def special_hardware_check():
+    logging.info("_____Applying special boot parameters_______")
+    try:
+        f = open('/proc/cmdline', 'r')
+        bootoptions = f.readlines()
+        f.close()
+    except:
+        logging.critical("    *Couldn't open /proc/cmdline")
+        return
+    bootoptions =  bootoptions[0].split()
+    logging.debug("    Boot options: %s", bootoptions)
+    for item in bootoptions:
+        logging.debug(item)
+        if re.match("disablemodules",item) != None :
+            logging.debug("    Found disabledmodules")
+            modulelist = item.split("=")[1]
+            for module in modulelist.split(','):
+                add_to_blacklist(module)
+
+        if re.match("modules",item) != None :
+            logging.debug("    Found modules")
+            modulelist = item.split("=")[1]
+            for module in modulelist.split(','):
+                add_to_modulelist(module)
+
+        if re.match("type",item) != None :
+            logging.debug("    Found special hardware type")
+            try:
+                typefile = open(data_config.MOUNTPOINT + "/myth/.special_hardware_type", 'w')
+                typelist = item.split("=")[1]
+                # there should be only one special hardware type, but this will handle multiples, just in case
+                for type in typelist.split(','):
+                    typefile.write(type)
+                    typefile.write("\n")
+                typefile.close()
+            except:
+                logging.debug("Couldn't write to file: ", typefile)
+
+
+def swapsearch():
+#currently unused!
+    partlist = []
+    stddir = os.getcwd()
+    os.chdir("/sys/block")
+    partitionlist = glob.glob("*")
+    for item in partitionlist:
+        try:
+            newitem = item.strip().rpartition(" ")[2]
+            if (not newitem == '') and  (not newitem.startswith("loop")):
+                path = "/dev/"+newitem.strip()
+                path = path.strip()
+                device = parted.getDevice(path)
+                (cylinders,  heads,  sectors) = device.biosGeometry
+                sizeInBytes = device.length * device.sectorSize
+                disk = parted.Disk(device)
+                for partition in disk.partitions:
+                    if partition.type == parted.PARTITION_PROTECTED or \
+                    partition.type == parted.PARTITION_METADATA or \
+                    partition.type == parted.PARTITION_FREESPACE:
+                        continue
+
+                    partlist.append((partition,
+                                    partition.path,
+                                    partition.getFlag(parted.PARTITION_BOOT),
+                                    partition.geometry.start,
+                                    partition.geometry.end,
+                                    partition.geometry.length,
+                                    partition.type,
+                                    partition.fileSystem))
+                for slice in partlist:
+                    (partition,  path,  bootable,  start,  end,  length,  type,  fs) = slice
+                    if partition.getFlag(parted.PARTITION_SWAP) or fs.type == "linux-swap":
+                        print "found swap"
+                        print path
+        except:
+            pass
+    os.chdir(stddir)
+
+def sane_settings(file):
+    #Remove some settings from file_name
+    removeline = ("HOSTrootfstype",  "HOSTrootfstype",  "HOSTdatafstype",  "HOSTOSsize",  "HostUseALLdata",  "HOSTDATAsize",  "HOSTuprootfstype",  "HostUseSWAP",  "HOSTSWAPsize")
+    logging.debug("__Running sane settings")
+    try:
+        f = open(file,  'r')
+        filecontents = f.readlines()
+        f.close()
+    except:
+        logging.debug("     Couldn't find file %s to sane", file)
+    try:
+        f = open(file, 'w')
+        for line in filecontents:
+            for item in removeline:
+                if line.startsize(line.strip()):
+                    logging.debug("     Found a line to remove in %s,  %s", file, line)
+                else:
+                    f.write(line)
+    except:
+        logging.debug("     Couldn't open file %s for writing", file)
+    logging.debug("     __End  sane settings")
+
+def restore_default_settings():
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("     MVROOT was not defined,  using the default value")
+        MVROOT = "/usr/MythVantage"
+    logging.info("Saving syssettings")
+    cmd = "%s/bin/restore_default_settings.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME)
+    runcmd(cmd)
+    SE = os.environ["TEMPLATES"]+"/settings/syssettings/"
+    cp_and_log(SE, data_config.MOUNTPOINT+SE)
+    cp_and_log("/etc/mtab", data_config.MOUNTPOINT+"/etc/mtab")
+    copy_updates()
+    fix_permissions()
+
+def full_install(hostoptions):
+    logging.info("______Start of full install______")
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("     MVROOT was not defined,  using the default value")
+        MVROOT = "/usr/MythVantage"
+
+    try:
+        os.remove("/tmp/.this_is_upgrade")
+    except OSError:
+        logging.debug("     File /tmp/.this_is_upgrade not present,  couldn't delete it")
+        pass
+#   Partition disk
+    statusmsg = "Partitioning %s"  %( hostoptions["rootdisk"])
+    update_status(statusmsg)
+    progress(1)
+    if data_config.NOOPDEBUG == "FALSE":
+        partition_disk()
+    else:
+        logging.debug("     Debug mode,  skipping partitioning step")
+
+#   Format disk
+    statusmsg = "Preparing  %s"  %( hostoptions["rootdisk"])
+    update_status(statusmsg)
+    progress(2)
+    format_disk("install")
+
+
+#   Mount partitions
+    statusmsg = "Mounting  %s"  %( hostoptions["rootdisk"])
+    update_status(statusmsg)
+    progress(3)
+    mount_it()
+
+#   Find number of bytes written to disk before starting copy.  This is used
+#   to have a somewhat decent progress indication.
+    statgrab( hostoptions["rootdisk"])
+    msg = "Creating %s" %(systemconfig["hostname"])
+    update_status(msg)
+
+#   Copy system to disk
+    copy_it("install")
+#   Remove old fstab so that a new one is created
+    fstabfile = data_config.MOUNTPOINT+"/etc/fstab"
+    try:
+        os.remove(fstabfile)
+    except OSError:
+        logging.debug("     ERROR: deleting %s", fstabfile)
+    fstab_it("full_install")
+#   Configure system
+    msg = "Configuring system"
+    update_status(msg)
+    progress(98)
+    grub_it()
+    special_hardware_check()
+#   Configuring the system
+    logging.info("______Configuring system________")
+    cp_and_log("/etc/systemconfig", data_config.MOUNTPOINT+"/etc/systemconfig")
+    cp_and_log("/root/xorg.conf.install", data_config.MOUNTPOINT+"/etc/X11/xorg.conf.install")
+    restore_default_settings()
+    #try:
+        #MVROOT=os.environ["MV_ROOT"]
+    #except:
+        #logging.debug("     MVROOT was not defined,  using the default value")
+        #MVROOT="/usr/MythVantage"
+    #logging.info("Saving syssettings")
+    #cmd="%s/bin/restore_default_settings.sh -c save -t syssettings -h %s -d localhost" %(MVROOT, data_config.MVHOSTNAME)
+    #runcmd(cmd)
+    #SE=os.environ["TEMPLATES"]+"/settings/syssettings"
+    #cp_and_log(SE, data_config.MOUNTPOINT+SE)
+    #cp_and_log("/etc/mtab", data_config.MOUNTPOINT+"/etc/mtab")
+    #cp_and_log2(MVROOT+"/bin/", data_config.MOUNTPOINT+MVROOT+"/bin/", "*.sh")
+    #cp_and_log2(MVROOT+"/bin/", data_config.MOUNTPOINT+MVROOT+"/bin/", "*.py")
+    #fix_permissions()
+    mount_bind_chroot()
+    apply_new_auth()
+    umount_bind_chroot()
+    if ( systemconfig["SystemType"] == "Master_backend" or  systemconfig["SystemType"] == "Standalone" ):
+#       This install will need a DB,  so install it
+        logging.info("______Installing Database in CHROOT________")
+        mysqldb("stop", '')
+        mount_bind_chroot()
+        cmd = "  chroot %s %s/bin/install_db_chroot.sh |tee /tmp/chrootdb.out" %(data_config.MOUNTPOINT, MVROOT)
+        runcmd(cmd)
+        logging.info("Running systemconfig in chroot")
+        #cmd = "  chroot %s %s/bin/systemconfig.sh misc, hostype, network, advanced, user, this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+        cmd = "chroot %s %s/bin/systemconfig.sh all,this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+        rc = runcmd(cmd)[0]
+        if rc != 0 :
+            error_out("Running systemconfig")
+
+        mysqldb("stop", "chroot")
+        kill_dhcp_chroot()
+        logging.info("____End Database in CHROOT____")
+        mysqldb("start", '')
+        umount_bind_chroot()
+    else:
+        logging.info("______No database required,  continuing configuration________")
+        mount_bind_chroot()
+        cmd = "  chroot %s DISPLAY=127.0.0.1:0 %s/bin/MythVantage -t restore, default 1" %(data_config.MOUNTPOINT, MVROOT)
+        runcmd(cmd)
+#       Need to check for to touch  /tmp/.dbsysfailed
+        cmd = "  chroot %s %s/bin/restore_default_settings.sh -c restore  -t syssettings " %(data_config.MOUNTPOINT, MVROOT)
+        runcmd(cmd)
+        if ( 'x' == '1' ):
+            logging.debug("touching /tmp/.dbsysfailed")
+        else:
+            #cmd = "  chroot %s %s/bin/systemconfig.sh misc, hostype, network, advanced, user, this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+            cmd = "chroot %s %s/bin/systemconfig.sh all,this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+            rc = runcmd(cmd)[0]
+            if rc != 0 :
+                error_out("Running systemconfig")
+            cmd = "chroot %s %s/bin/restore_default_settings.sh -c ACCESSCONTROL " %(data_config.MOUNTPOINT, MVROOT)
+            runcmd(cmd)
+        umount_bind_chroot()
+    #cmd = "  chroot %s %s/bin/systemconfig.sh advanced, user" %(data_config.MOUNTPOINT, MVROOT)
+    #runcmd(cmd)
+    cmd = "  touch %s%s/.configure" %(data_config.MOUNTPOINT, data_config.MYTHHOME)
+    runcmd(cmd)
+    cmd = "  chmod 777 %s%s/.configure" %(data_config.MOUNTPOINT, data_config.MYTHHOME)
+    runcmd(cmd)
+    msg = "Done"
+    update_status(msg)
+    cp_and_log("/tmp/mythvantage_install.log", data_config.MOUNTPOINT+"/var/log/mythvantage_install.log")
+    cp_and_log("/tmp/mv_debug.log", data_config.MOUNTPOINT+"/var/log/mv_debug.log")
+    unmount_it()
+    logging.debug("_____End of full install_____")
+
+def find_upgrade():
+    logging.info("_____Start of find_upgrade_____")
+    global hostoptions
+    #try to mount first partition of disk
+    #copy old /etc/systemconfig to live,  import settings into db
+    #umount drive.
+    #check for clean upgrade
+    if ( clean_upgrade() ):
+        logging.info("Clean upgrade requested,  not using old data")
+        return
+    mount_it()
+    oldbackupfile = data_config.MOUNTPOINT+"/root/backup/"+data_config.BACKUPFILE
+    newbackupfile = "/tmp/"+data_config.BACKUPFILE
+    if os.path.exists(oldbackupfile):
+        logging.debug("Setting backup file to %s", newbackupfile)
+        hostoptions["backupfile"] = newbackupfile
+        cp_and_log(oldbackupfile, newbackupfile)
+
+    srcfile = data_config.MOUNTPOINT+"/etc/systemconfig"
+    logging.info("Searching for systemconfig file %s", srcfile)
+    if os.path.exists(srcfile):
+        logging.info("Found systemconfig file %s", srcfile)
+        TEMPLATES = os.environ["TEMPLATES"]+"/settings/syssettings"
+        cp_and_log2(data_config.MOUNTPOINT+TEMPLATES, data_config.TEMP_TEMPLATES, '')
+        sane_settings("/tmp/templates/settings/syssettings/settings.txt")
+        cp_and_log2(data_config.TEMP_TEMPLATES, TEMPLATES, '')
+        cp_and_log(srcfile, "/etc/systemconfig")
+        cp_and_log(data_config.MOUNTPOINT+"/etc/", "/tmp/etc/")
+        cp_and_log(data_config.MOUNTPOINT+"/var/lib/alsa/", "/tmp/alsa")
+        cp_and_log(data_config.MOUNTPOINT+"/var/lib/oss/", "/tmp/oss")
+        cp_and_log("/tmp/etc/mdadm.conf", "/etc/mdadm.conf")
+    else:
+        logging.info("Could not find systemconfig file %s", srcfile)
+        cp_and_log(data_config.MOUNTPOINT+"/etc/", "/tmp/etc/")
+        cp_and_log(data_config.MOUNTPOINT+"/var/lib/alsa/", "/tmp/alsa")
+        cp_and_log("/tmp/etc/mdadm.conf", "/etc")
+        timezone_to_db("/tmp/etc/timezone")
+    unmount_it()
+    logging.debug("End of find_upgrade")
+
+def upgrade_mount_search():
+    #Search for data/myth partition based on contents of fstab
+    logging.debug("______Start of upgrade_mount_search_____")
+    cmd = "umount %s%s"  %(data_config.MOUNTPOINT, data_config.DATAMOUNT)
+    runcmd(cmd)
+    fstab_list = []
+    fstab_data_mount = ''
+    try:
+        f = open("/tmp/etc/fstab",  'r')
+        oldfscontents = f.readlines()
+        f.close()
+        ##    ['UUID=',  '/myth',  'auto',  'defaults, noatime',  '0',  '1']
+        #for line in oldfscontents:
+            #mountdir=line.split()
+            #if mountdir[1] == (data_config.DATAMOUNT):
+                #fstablist.append(mountdir)
+    except:
+        logging.debug("    Couldn't open /tmp/etc/fstab")
+    for line in oldfscontents:
+        if line.startswith("#"):
+            continue
+        mountdir=line.split()
+        try:
+            if mountdir[1] == (data_config.DATAMOUNT):
+                fstablist.append(mountdir)
+        except:
+            continue
+    #search fstab for data/myth mountpoint
+    for i in fstab_list:
+        if i[1] == data_config.DATAMOUNT:
+            fstab_data_mount = i[0]
+            break
+
+    #start software raid support if needed
+    for i in fstab_list:
+        if i[0].startswith("/dev/md"):
+            logging.debug("    starting software raid support")
+            mdadm_assemble_all
+
+
+    if re.search("UUID", fstab_data_mount):
+        fstab_data_uuid = fstab_data_mount.split("=")[1]
+        cmd = "blkid -t UUID=%s" %fstab_data_uuid
+        retcode = call(cmd,  shell=True)
+        if retcode != 0:
+            logging.debug("    Couldn't find uuid %s,  starting md support", fstab_data_uuid)
+            mdadm_assemble_all
+        #hoping everything is up and running and data/myth will be available for mount
+        cmd = "mount -U %s %s" %(fstab_data_uuid, data_config.MOUNTPOINT)
+        runcmd(cmd)
+        cmd = "blkid -t UUID=%s|cut -d: -f1" %fstab_data_uuid
+        logging.debug(cmd)
+        datadisk = commands.getoutput(cmd)
+        cmd = "basename %s" %datadisk
+        datadisk = commands.getoutput(cmd)
+    else:
+        cmd = "mount  %s %s" %(fstab_data_mount, data_config.MOUNTPOINT)
+        runcmd(cmd)
+        cmd = "basename %s" %fstab_data_mount
+        datadisk = commands.getoutput(cmd)
+    time.sleep(3)
+#    hostoptions["backupfile"]=data_config.BACKUPPATH+data_config.BACKUPFILE
+    if not backup_sql_check():
+        newbackupfile = "/tmp/"+data_config.BACKUPFILE
+        if os.path.exists(newbackupfile):
+            logging.debug("Setting backup file to %s", newbackupfile)
+            cp_and_log(newbackupfile, data_config.MOUNTPOINT+newbackupfile)
+            hostoptions["backupfile"] = newbackupfile
+        else:
+            logging.info("Couldn't find any database to restore,  upgrade will continue with a new database")
+
+
+
+def upgrade(hostoptions):
+
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("MVROOT was not defined,  using the default value")
+        MVROOT = "/usr/MythVantage"
+    logging.info("______Start of upgrade______")
+    cmd = "touch /tmp/.this_is_upgrade"
+    runcmd(cmd)
+    if hostoptions["rootfs"] == "Do_not_format":
+        logging.info("Will not format root filesystem")
+    else:
+        statusmsg = "Preparing  %s"  %( hostoptions["rootdisk"])
+        update_status(statusmsg)
+        progress(2)
+        format_disk("upgrade")
+    #sys.exit(2)
+    statusmsg = "Mounting  %s"  %( hostoptions["rootdisk"])
+    update_status(statusmsg)
+    progress(3)
+    mount_it()
+    hostoptions["backupfile"] = data_config.BACKUPPATH+data_config.BACKUPFILE
+    statgrab( hostoptions["rootdisk"])
+    msg = "Upgrading %s" %(systemconfig["hostname"])
+    update_status(msg)
+    time.sleep(3)
+    copy_it("upgrade")
+    cmd = "rm -rf %s/etc.old" %data_config.MOUNTPOINT
+    runcmd(cmd)
+    cmd = "rm -rf %s/alsa.old" %data_config.MOUNTPOINT
+    runcmd(cmd)
+
+    cp_and_log("/tmp/etc/", data_config.MOUNTPOINT+"/etc.old/")
+    cp_and_log("/tmp/alsa/", data_config.MOUNTPOINT+"/alsa.old/")
+    cp_and_log("/tmp/oss", data_config.MOUNTPOINT+"/var/lib/oss.old")
+
+    srcfile = "%s/etc.old/ssh/" %(data_config.MOUNTPOINT)
+    destfile = "%s/etc/ssh/" %(data_config.MOUNTPOINT)
+    cp_and_log2(srcfile, destfile, '*.pub')
+    cp_and_log2(srcfile, destfile, '*.key')
+    cp_and_log2(srcfile, destfile, '*key')
+
+    mdfile = mdadm_find("/tmp")
+    cp_and_log("/tmp"+mdfile, data_config.MOUNTPOINT+"/etc")
+
+    srcfile = "%s/etc.old/asound.conf" %(data_config.MOUNTPOINT)
+    destfile = "%s/etc/asound.conf" %(data_config.MOUNTPOINT)
+    cp_and_log(srcfile, destfile)
+
+    # R5.5 -> R6
+    srcfile = "%s/alsa.old/asound.state" %(data_config.MOUNTPOINT)
+    destfile = "%s/etc/asound.state" %(data_config.MOUNTPOINT)
+    cp_and_log(srcfile, destfile)
+    # R6 -> R6
+    srcfile = "%s/etc.old/asound.state" %(data_config.MOUNTPOINT)
+    destfile = "%s/etc/asound.state" %(data_config.MOUNTPOINT)
+    cp_and_log(srcfile, destfile)
+
+    srcfile = "%s/etc.old/mplayer/mplayer.conf" %(data_config.MOUNTPOINT)
+    destfile = "%s/etc/mplayer/mplayer.conf" %(data_config.MOUNTPOINT)
+    cp_and_log(srcfile, destfile)
+
+    if not os.path.exists("/tmp/etc/KnoppMyth-version"):
+        logging.debug("    standard upgrade,  restoring auth files")
+        cp_and_log(data_config.MOUNTPOINT+"/etc.old/passwd", data_config.MOUNTPOINT+"/etc/passwd")
+        cp_and_log(data_config.MOUNTPOINT+"/etc.old/shadow", data_config.MOUNTPOINT+"/etc/shadow")
+        cp_and_log(data_config.MOUNTPOINT+"/etc.old/group", data_config.MOUNTPOINT+"/etc/group")
+    msg = "Configuring system"
+
+    update_status(msg)
+    progress(98)
+    logging.info("______Configuring system________")
+    cp_and_log("/etc/systemconfig", data_config.MOUNTPOINT+"/etc/systemconfig")
+    if not backup_sql_check():
+        upgrade_mount_search()
+    fstab_it("upgrade")
+    time.sleep(1)
+    grub_it()
+    time.sleep(1)
+    #needed to get around a bug with pacman
+    special_hardware_check()
+    cp_and_log("/root/xorg.conf.install", data_config.MOUNTPOINT+"/etc/X11/xorg.conf.install")
+    cp_and_log("/etc/mtab", data_config.MOUNTPOINT+"/etc/mtab")
+    if clean_upgrade() or os.path.exists("/tmp/etc/KnoppMyth-version"):
+        logging.debug("clean upgrade or knoppmyth upgrade detected,  running restore settings")
+        restore_default_settings()
+        if clean_upgrade():
+            file = "%s/%s/.kmupgrade" %(data_config.MOUNTPOINT, data_config.MYTHHOME)
+            cmd = "touch %s && chmod 777 %s" %(file, file)
+            runcmd(cmd)
+    copy_updates()
+    fix_permissions()
+    mount_bind_chroot()
+    logging.info("Running systemconfig in chroot")
+    #cmd = "  chroot %s %s/bin/systemconfig.sh misc, hostype, network, advanced, user, this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+    cmd = "chroot %s %s/bin/systemconfig.sh all,this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+    rc = runcmd(cmd)[0]
+    if rc != 0 :
+        error_out("Running systemconfig")
+    mysqldb("stop", "")
+    if ( systemconfig["SystemType"] == "Master_backend" or  systemconfig["SystemType"] == "Standalone" ):
+        if clean_upgrade() or not backup_sql_check():
+            logging.info("Installing new database")
+            cmd = "  chroot %s %s/bin/install_db_chroot.sh |tee /tmp/chrootdb.out" %(data_config.MOUNTPOINT, MVROOT)
+            runcmd(cmd)
+        else:
+            logging.info("Restoring database")
+            cmd = "  chroot %s %s/bin/restore_km_db_chroot.sh %s|tee /tmp/chrootdb.out" %(data_config.MOUNTPOINT, MVROOT, hostoptions["backupfile"])
+            runcmd(cmd)
+
+    if os.path.exists("/tmp/etc/KnoppMyth-version"):
+        cmd = "  chroot %s %s/bin/restore_default_settings.sh -c restore  -t hostsettings " %(data_config.MOUNTPOINT, MVROOT)
+        runcmd(cmd)
+        logging.debug("Correcting permissions because of km->linhes upgrade")
+        cmd = "  chown -R mythtv:mythtv  %s" %(data_config.MOUNTPOINT+data_config.DATAMOUNT)
+        runcmd(cmd)
+        cmd = "  chown -R root:root  %s" %(data_config.MOUNTPOINT+data_config.DATAMOUNT+"/backup")
+        runcmd(cmd)
+    else:
+        cmd = "  chroot %s %s/bin/restore_default_settings.sh -c restore  -t syssettings " %(data_config.MOUNTPOINT, MVROOT)
+        runcmd(cmd)
+
+    logging.info("Running systemconfig in chroot 2nd time")
+    #cmd = "  chroot %s %s/bin/systemconfig.sh misc, hostype, network, advanced, user, this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+    cmd = "chroot %s %s/bin/systemconfig.sh all,this_is_install" %(data_config.MOUNTPOINT, MVROOT)
+    rc = runcmd(cmd)[0]
+    if rc != 0 :
+        error_out("Running systemconfig")
+    #logging.info("Running systemconfig in chroot")
+    #cmd = "  chroot %s %s/bin/systemconfig.sh advanced" %(data_config.MOUNTPOINT, MVROOT)
+    #runcmd(cmd)
+    mysqldb("stop", 'chroot')
+    apply_new_auth()
+    kill_dhcp_chroot()
+    umount_bind_chroot()
+    cp_and_log("/tmp/mythvantage_install.log", data_config.MOUNTPOINT+"/var/log/mythvantage_install.log")
+    cp_and_log("/tmp/mv_debug.log", data_config.MOUNTPOINT+"/var/log/mv_debug.log")
+    unmount_it()
+    msg = "Done"
+    update_status(msg)
+    mysqldb("start", '')
+
+
+
+
+def main(argv):
+    global hostoptions
+    try:
+        opts,  args = getopt.getopt(argv,  'c:h',  ["help",  "rootdisk=",  "rootfs=",  "rootsize=",  "datafs=",  "datasize=",  "datadisk=",  "swapsize=",  "datapartition=" ] )
+    except getopt.GetoptError, why:
+        print why
+        usage()
+        sys.exit(2)
+    hostoptions = {"op": 'null'}
+    for opt,  arg in opts:
+        if opt in ("-h",  "--help"):
+            usage()
+            sys.exit(0)
+        elif opt in ( "--rootdisk"):
+            hostoptions["rootdisk"] = arg
+            hostoptions["rootpartition"] = arg+str(1)
+        elif opt in ("--rootfs"):
+            hostoptions["rootfs"] = arg
+        elif opt in ("--rootsize"):
+            hostoptions["rootsize"] = arg
+        elif opt in ("--datafs"):
+            hostoptions["datafs"] = arg
+        elif opt in ("--datasize"):
+            hostoptions["datasize"] = arg
+        elif opt in ("--datadisk"):
+            hostoptions["datadisk"] = arg
+        elif opt in ("--datapartition"):
+            hostoptions["datapartition"] = arg
+        elif opt in ("--swapsize"):
+            hostoptions["swapsize"]  = arg
+
+        elif opt in ("-c"):
+            validop = ["full_install", "upgrade", "netboot", "find_upgrade"]
+            if arg not in validop:
+                logging.critical("-c %s is not a valid option", arg)
+                sys.exit(2)
+            else:
+                hostoptions["op"]  = arg
+    try:
+        hostoptions["datadisk"]
+    except:
+        hostoptions["datadisk"] = hostoptions["rootdisk"]
+        hostoptions["datapartition"] = hostoptions["datadisk"]+str(3)
+    try:
+        hostoptions["datapartition"]
+    except:
+        hostoptions["datapartition"] = hostoptions["datadisk"]+str(3)
+    hostoptions["swappartition"]  =  hostoptions["rootdisk"] + str(2)
+
+
+    if ( hostoptions["op"]  == "full_install" ) :
+        full_install(hostoptions)
+    elif (hostoptions["op"]  == "upgrade" ) :
+        hostoptions["datafs"] = "no_format"
+        find_upgrade()
+        upgrade(hostoptions)
+    elif (hostoptions["op"]  == "find_upgrade" ) :
+        find_upgrade()
+    return hostoptions
+
+
+#____________________________________________setup the logging______________________________________________________
+LOG_FILENAME = '/tmp/mv_status.log'
+DEBUGLOG = '/tmp/mv_debug.log'
+logging.basicConfig(level=logging.DEBUG,
+                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
+                    datefmt='%m-%d %H:%M',
+                    filename=DEBUGLOG,
+                    filemode='a')
+# define a Handler which writes INFO messages or higher to the sys.stderr
+console = logging.StreamHandler()
+console.setLevel(logging.INFO)
+# set a format which is simpler for console use
+#formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
+formatter = logging.Formatter("%(message)s")
+# tell the handler to use this format
+console.setFormatter(formatter)
+# add the handler to the root logger
+logging.getLogger('').addHandler(console)
+
+#infoformatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
+infoformatter = logging.Formatter("%(message)s")
+infofile = logging.FileHandler(LOG_FILENAME, 'w')
+infofile.setFormatter(infoformatter)
+infofile.setLevel(logging.INFO)
+logging.getLogger('').addHandler(infofile)
+
+#Read in systemconfig
+global systemconfig
+systemconfig = {}
+file_name = "/etc/systemconfig"
+try:
+    config_file = open(file_name)
+except:
+    logging.debug("%s could not be opened", file_name)
+    config_file = ''
+
+for line in config_file:
+    line = line.strip()
+    if line and line[0] is not "#" and line[-1] is not "=":
+        var, val = line.rsplit("=", 1)
+        val = val.strip('"')
+        systemconfig[var.strip()] = val.strip()
+
+
+if __name__ == "__main__":
+    config_file = "mv_config"
+    data_config = __import__(config_file,  globals(),  locals(),  [])
+    logging.debug("___________START OF DEBUG_________________________")
+    cmdoptions = main(sys.argv[1:])
+    logging.debug("______cmd line options______")
+    for i in cmdoptions.items():
+        logging.debug (i)
+    logging.debug("______systemconfig______")
+    for i in systemconfig.items():
+        logging.debug(i)
+    logging.debug("______hostoptions______")
+    for i in hostoptions.items():
+        logging.debug(i)
+    pass
+
diff --git a/abs/mv-core/MythVantage-config/mv_ir.py b/abs/mv-core/MythVantage-config/mv_ir.py
new file mode 100755
index 0000000..bc1ae37
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_ir.py
@@ -0,0 +1,330 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+import os, re , glob
+from time import time, localtime, strftime
+import time
+import pwd
+
+def setup_lirc_links(mythhome):
+    logging.debug("    Creating links for lirc")
+    try:
+        mythuid = pwd.getpwnam('mythtv')[2]
+        mythgid = pwd.getpwnam('mythtv')[3]
+    except:
+        logging.critical("*    mythuid not found")
+        mythuid = '1000'
+        mythgid = '1000'
+    if not os.path.exists(mythhome+"/.mythtv"):
+        logging.debug("    Creating %s/.mythtv",mythhome)
+        try:
+            os.mkdir(mythhome+"/.mythtv")
+        except:
+            logging.debug("   Couldn't create .mythtv ")
+            return
+        try:
+            os.chown(mythhome+"/.mythtv", mythuid, mythgid)
+            logging.debug("*    Couldn't chown of %s", mythhome)
+        except:
+            cmd = ''' chown -R mythtv %s/.mythtv''' %mythhome
+            mv_common.runcmd(cmd)
+            cmd = ''' chgrp -R mythtv %s/.mythtv''' %mythhome
+            mv_common.runcmd(cmd)
+            pass
+
+    if os.path.exists("/etc/lircrc"):
+        if not os.path.exists(mythhome+"/.mythtv/lircrc"):
+            logging.debug("    Creating symlink for myth lircrc")
+            os.symlink("/etc/lircrc",mythhome+"/.mythtv/lircrc")
+        else:
+            logging.debug("    %s/lircrc already present",mythhome)
+
+        if not os.path.exists(mythhome+"/.lircrc"):
+            logging.debug("    Creating symlink for lircrc")
+            os.symlink("/etc/lircrc",mythhome+"/.lircrc")
+        else:
+            logging.debug("    %s/.lircrc already present",mythhome)
+    else:
+        logging.debug("    /etc/lircrc does not exisit, can not link it")
+
+def scrub_modules(filename,module):
+    logging.debug("    scrubbing %s from %s",module,filename)
+    cmd = '''sed -i -e '/.*#%s/d' %s''' %(module,filename)
+    mv_common.runcmd(cmd)
+
+def add_module(filename,module):
+    logging.debug("    adding  %s to %s",module,filename)
+    cmd = ''' echo "%s" >> %s ''' %(module,filename)
+    mv_common.runcmd(cmd)
+
+def unload_all_lirc():
+    logging.debug("    Unloading all lirc modules")
+    cmd = "sv stop lircd"
+    mv_common.runcmd(cmd)
+    cmd = "killall -9 lircd"
+    mv_common.runcmd(cmd)
+    cmd = '''modprobe -r $(lsmod |grep ^lirc |awk '{print $1}') '''
+    mv_common.runcmd(cmd)
+
+
+
+def include_file( incfile,filename):
+    logging.debug("     including %s within %s",filename,incfile)
+    try:
+        f = open( incfile, 'a')
+    except:
+        logging.debug("    Couldn't open %s for writing",incfile)
+        return
+    line = '''include "%s" ''' %filename
+    logging.debug("   %s",line)
+    f.write(line)
+    f.write("\n")
+    f.close()
+
+def setup_ir_remote(Remotetype,templates):
+    logging.debug("    Setup of remote type %s",Remotetype)
+    if Remotetype == "no_remote":
+        mv_common.remove_service("lircd")
+    elif Remotetype == "tinker":
+        pass
+    else:
+        currenttime = strftime("%b-%d-%Y-%H:%M:%S", localtime())
+        cmd = "mv /etc/lircd.conf /etc/lircd.conf-%s" %currenttime
+        mv_common.runcmd(cmd)
+        cmd = "mv /etc/lircrc /etc/lircrc-%s" %currenttime
+        mv_common.runcmd(cmd)
+        files = templates + "/remotes/" + Remotetype + "/lircd*"
+        logging.debug("    Using %s",files)
+        for filename in glob.glob(files):
+            # Ignore subfolders
+            if os.path.isdir (filename):
+                logging.debug("    %s is a dir, skipping",filename)
+                continue
+            include_file("/etc/lircd.conf",filename)
+        files = templates + "/remotes/" + Remotetype + "/lircrc*"
+        logging.debug("    Using %s",files)
+        for filename in glob.glob(files):
+            # Ignore subfolders
+            if os.path.isdir (filename):
+                logging.debug("    %s is a dir, skipping",filename)
+                continue
+            include_file("/etc/lircrc",filename)
+        cmd =  "chmod 755 /etc/lircrc"
+        mv_common.runcmd(cmd)
+        mv_common.add_service("lircd")
+
+
+def setup_ir_receiver(ReceiverType,TEMPLATES):
+    logging.info("    Configuring receiver %s", ReceiverType)
+    if ReceiverType == "Serial":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        add_module("/etc/modules.mythvantage","lirc_serial    #lirc")
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+        mv_common.remove_service("igdaemon")
+        mv_common.remove_service("tatir")
+
+    elif ReceiverType == "Usb-imon":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        add_module("/etc/modules.mythvantage","lirc_imon    #lirc")
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+        mv_common.remove_service("igdaemon")
+        mv_common.remove_service("tatir")
+
+    elif ReceiverType == "Hauppauge":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        add_module("/etc/modules.mythvantage","lirc_i2c    #lirc")
+        mv_common.cp_and_log(TEMPLATES+"/modules/lirc_i2c.conf" ,
+                             "/etc/modprobe.d/lirc_i2c.conf")
+        cmd = "rmmod lirc_i2c"
+        mv_common.runcmd(cmd)
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+        mv_common.remove_service("igdaemon")
+        mv_common.remove_service("tatir")
+    elif ReceiverType == "pvr150":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        add_module("/etc/modules.mythvantage","lirc_i2c    #lirc")
+        mv_common.cp_and_log(TEMPLATES+"/modules/lirc_i2c.conf" ,
+                             "/etc/modprobe.d/lirc_i2c.conf")
+        cmd = "rmmod lirc_i2c"
+        mv_common.runcmd(cmd)
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+        mv_common.remove_service("igdaemon")
+        mv_common.remove_service("tatir")
+    elif ReceiverType == "iguanaIR-usb":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        mv_common.add_service("igdaemon")
+        mv_common.remove_service("tatir")
+
+    elif ReceiverType == "tatir":
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        mv_common.add_service("tatir")
+        mv_common.remove_service("igdaemon")
+
+    else:
+        logging.debug("    didn't match receiver, using genric case")
+        scrub_modules("/etc/modules.mythvantage","lirc")
+        mv_common.remove_service("igdaemon")
+        mv_common.remove_service("tatir")
+
+def setup_blaster_proto(HostBlasterType,Hostnumblaster,TEMPLATES,systemconfig):
+    logging.debug("    Start of setup_blaster_proto")
+    logging.debug("    HostBlasterType: %s", HostBlasterType)
+    logging.debug("    Hostnumblaster: %s" , Hostnumblaster)
+    if not HostBlasterType == "pvr150" and not HostBlasterType == "None":
+        for i in range(int(Hostnumblaster)):
+            try:
+                proto = systemconfig["HostTransmitproto_"+str(i+1)]
+                logging.debug("    proto: %s",proto)
+            except:
+               logging.info("    unkown proto for %s",i+1)
+               continue
+            template=TEMPLATES+"/transmit/%s/lircd.conf" %proto
+            if os.path.exists(template):
+                logging.debug("    include blaster template: %s",proto)
+                include_file("/etc/lircd.conf",template)
+            else:
+                logging.debug("    template: %s is not present",template)
+    logging.info("------NEED TO SETUP CHANGE_CHANNEL------")
+
+
+def setup_blaster_transmiter(HostBlasterType):
+    logging.debug("    Start of setup_blaster_transmiter")
+    logging.info("    HostBlasterType : %s", HostBlasterType)
+
+    if  HostBlasterType == "Receiver":
+        logging.info("    Blaster is receiver, skipping module config for Blaster")
+        return
+
+    if HostBlasterType == "no blaster":
+        scrub_modules("/etc/modules.mythvantage","blaster")
+    elif HostBlasterType == "Serial":
+        scrub_modules("/etc/modules.mythvantage","blaster")
+        add_module("/etc/modules/.mythvantage","lirc_serial    #blaster")
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+    elif HostBlasterType == "pvr150":
+        scrub_modules("/etc/modules.mythvantage", "blaster")
+        scrub_modules("/etc/modules.mythvantage", "lirc")
+        add_module("/etc/modules.mythvantage", "lirc_pvr150    #blaster")
+        add_module("/etc/modules.mythvantage", "lirc_pvr150    #lirc")
+        cmd = "rmmod lirc_i2c"
+        mv_common.runcmd(cmd)
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+    else:
+        scrub_modules("/etc/modules.mythvantage","blaster")
+
+def setup_lcd(LCDtype, TEMPLATES, Remotetype):
+    logging.debug("____Start of setup_lcd____")
+    logging.debug("    LCDType: %s", LCDtype)
+    logging.debug("    Remotetype: %s", Remotetype)
+    if LCDtype == "tinker":
+        logging.info("   tinker mode detected")
+        return
+
+    if LCDtype == "no_lcd":
+        logging.info("    Disabling LCD support")
+        cmd = "sv stop lcdd"
+        mv_common.runcmd(cmd)
+        #sometimes it doesn't want to die
+        cmd = "killall -9 LCDd"
+        mv_common.runcmd(cmd)
+        cmd = "load-modules-mythvantage.sh  UNLOAD LCD"
+        mv_common.runcmd(cmd)
+        scrub_modules("/etc/modules.mythvantage", "LCD")
+        mv_common.remove_service("lcdd")
+    else:
+        lcdmodule="%s/LCD/%s/modules" %(TEMPLATES,LCDtype)
+        if os.path.exists(lcdmodule):
+            logging.debug("    Adding module for LCD")
+            scrub_modules("/etc/modules.mythvantage", "LCD")
+            cmd = "cat %s >> /etc/modules.mythvantage" %lcdmodule
+            mv_common.runcmd(cmd)
+        if Remotetype != "tinker":
+            lcdconf = "%s/LCD/%s/LCDd.conf" %(TEMPLATES,LCDtype)
+            lcdlirc = "%s/LCD/%s" %(TEMPLATES,LCDtype)
+            mv_common.pacinstall("lcdproc")
+            if os.path.exists(lcdconf):
+                logging.debug("    Copying in lcdconf template file: %s",lcdconf)
+                mv_common.cp_and_log(lcdconf, "/etc/LCDd.conf")
+            else:
+                logging.debug("    %s is not present, will not copy it")
+
+            if os.path.exists(lcdlirc+"/lircrc"):
+                logging.debug("    LCD seems to support lirc")
+                #setup the lirc aspect of the lcd
+                #copied from setup_ir_remote
+                files = lcdlirc+"/lircd*"
+                logging.debug("    Using %s",files)
+                for filename in glob.glob(files):
+                    # Ignore subfolders
+                    if os.path.isdir (filename):
+                        logging.debug("    %s is a dir, skipping",filename)
+                        continue
+                    include_file("/etc/lircd.conf",filename)
+                files = lcdlirc+"/lircrc*"
+                logging.debug("    Using %s",files)
+                for filename in glob.glob(files):
+                    # Ignore subfolders
+                    if os.path.isdir (filename):
+                        logging.debug("    %s is a dir, skipping",filename)
+                        continue
+                    include_file("/etc/lircrc",filename)
+                cmd =  "chmod 755 /etc/lircrc"
+                mv_common.runcmd(cmd)
+
+            mv_common.add_service("lcdd")
+            mv_common.restart_service("lcdd")
+    logging.debug("__End of setup_lcd")
+
+def setup_ir(systemconfig, data_config):
+    rc = False
+    logging.info("____Start of IR____")
+    if systemconfig["Remotetype"] == "tinker":
+        logging.info("    Tinker mode detected")
+    else:
+        if not systemconfig["HostBlasterType"]:
+            HostBlasterType = "unknown"
+            Hostnumblaster = "0"
+        else:
+            HostBlasterType = systemconfig["HostBlasterType"]
+            Hostnumblaster  = systemconfig["Hostnumblaster"]
+
+        if systemconfig["HostBlasterType"] == "pvr150":
+            remotetype = "hauppauge-blaster"
+            logging.debug("    pvr150 blaster selected, setting remote to hauppauge-blaster")
+        else:
+            remotetype = systemconfig["Remotetype"]
+
+        setup_ir_remote(remotetype,systemconfig["TEMPLATES"])
+        setup_lirc_links(data_config.MYTHHOME)
+
+        if systemconfig["ReceiverType"]:
+            setup_ir_receiver(systemconfig["ReceiverType"],
+                              systemconfig["TEMPLATES"])
+        else:
+            setup_ir_receiver("unknown", systemconfig["TEMPLATES"])
+        unload_all_lirc()
+        setup_blaster_proto(HostBlasterType,
+                            Hostnumblaster,
+                            systemconfig["TEMPLATES"],
+                            systemconfig)
+        setup_blaster_transmiter(HostBlasterType)
+        cmd = "load-modules-mythvantage.sh"
+        mv_common.runcmd(cmd)
+        time.sleep(2)
+        mv_common.udev_trigger()
+        cmd="sv start lircd"
+        mv_common.runcmd(cmd)
+        rc = [ True , True ]
+    if systemconfig["LCDtype"]:
+        setup_lcd(systemconfig["LCDtype"],
+                  systemconfig["TEMPLATES"],
+                  systemconfig["Remotetype"])
+    else:
+        logging.debug("    LCD not defined")
+    logging.info("__End IR\n")
+    return rc
\ No newline at end of file
diff --git a/abs/mv-core/MythVantage-config/mv_misc.py b/abs/mv-core/MythVantage-config/mv_misc.py
new file mode 100755
index 0000000..9ea9c95
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_misc.py
@@ -0,0 +1,180 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+import os, re
+from urllib2 import Request, urlopen, URLError, HTTPError
+
+config_file = "mv_config"
+data_config = __import__(config_file, globals(), locals(), [])
+
+def setup_zip(MVROOT,zipcode):
+    logging.debug("____Setting up the zipcode____")
+
+    if zipcode:
+        cmd="%s/bin/restore_default_settings.sh -c ZIP -c %s" %(MVROOT,zipcode)
+        mv_common.runcmd(cmd)
+        #Let's also speed things up for those in North America
+        cmd="mkdir /usr/bin/perlbin/vendor/tv_grabbers_non_na"
+        mv_common.runcmd(cmd)
+        cmd="mv  /usr/bin/perlbin/vendor/tv_grab_*  /usr/bin/perlbin/vendor/tv_grabbers_non_na"
+        mv_common.runcmd(cmd)
+        cmd="mv  /usr/bin/perlbin/vendor/tv_grabbers_non_na/tv_grab_na*  /usr/bin/perlbin/vendor/"
+        mv_common.runcmd(cmd)
+    else:
+        logging.debug("    Zipcode is not set")
+
+    logging.debug("__End of zipcode\n")
+
+def setup_tz(timezone,TEMPLATES):
+    logging.info("____Setting up the timezone____")
+
+    if not timezone:
+        timezone="unknown"
+    logging.info("    Setting timezone to %s",timezone)
+    mv_common.remove_file("/etc/localtime")
+    #try:
+        #logging.debug("    Removing /etc/localtime")
+        #os.remove("/etc/localtime")
+    #except:
+        #logging.debug("    Couldn't remove /etc/localtime")
+        #pass
+
+    srclink="/usr/share/zoneinfo/%s" %timezone
+    logging.debug("    symlinking %s to /etc/localtime",srclink)
+    try:
+        os.symlink(srclink,"/etc/localtime")
+    except:
+        logging.critical("    Couldn't make symlink for /etc/localtime")
+    cmd = '''sed -e "s/^TIMEZONE=.*$/TIMEZONE=\\"%s\\" /" /etc/rc.conf > $TEMPLATES/rc.conf''' %re.escape(timezone)
+    mv_common.runcmd(cmd)
+
+    if os.path.exists("/etc/php/php.ini"):
+        logging.info("    Changing timezone for php")
+        cmd = '''sed -i "s/^.*date.timezone.*$/date.timezone=%s/" ${BASE}/etc/php/php.ini''' %re.escape(timezone)
+        mv_common.runcmd(cmd)
+
+    mv_common.cp_and_log(TEMPLATES+"/rc.conf","/etc/rc.conf")
+    logging.info("__End of timezone\n")
+
+def setup_nfs(systemconfig):
+    nfslist=[]
+    logging.info("____Start of setup_nfs____")
+    scrubnfs(systemconfig["TEMPLATES"])
+
+    if systemconfig["HaveCentralNFS"] == "yes":
+        logging.debug("    Using a Central NFS server")
+        if systemconfig["NFSserver"] == "file:nfsmap":
+        #if it's a file check for it, failure results in downloading attempt from MBE
+            nfsmap_file=data_config.MYTHHOME+"/templates/nfsmap"
+            if not os.path.exists(nfsmap_file):
+                logging.debug("    Couldn't find local %s",nfsmap_file)
+                logging.info("    Trying to download nfsmap from MBE")
+                nfsmap_file = download_nfsmap(systemconfig["dbhost"])
+            nfslist = process_nfsmap_file(nfsmap_file)
+        # if it's an ip  parse ip and download file
+        elif re.search(systemconfig["NFSserver"],":nfsmap"):
+            ip=systemconfig["NFSserver"].split(":")[0]
+            nfsmap_file = download_nfsmap(ip)
+            nfslist = process_nfsmap_file(nfsmap_file)
+        #else treat it as a single mount point
+        else:
+            item = (systemconfig["NFSserver"] , systemconfig["NFSmount"])
+            nfslist.append(item)
+    else:
+        #if standalone or slave try to use MBE
+        if systemconfig["SystemType"] == "Frontend_only" or systemconfig["SystemType"] == "Slave_Backend":
+            item = (systemconfig["dbhost"] , data_config.DATAMOUNT)
+            nfslist.append(item)
+    setup_nfs_fstab(nfslist)
+    logging.info("__End of nfs\n")
+
+def setup_sleep(systemconfig):
+    logging.debug("____Setting up sleep____")
+    autoshutdown = systemconfig["AutoShutdown"]
+    stime1 = systemconfig["Shutdowntime"]
+    stime2 = systemconfig["Shutdowntime2"]
+    cstime1=''
+
+    if autoshutdown == "1" :
+        if  not stime1 == "-1" :
+            cstime1 = stime1
+            cshutdown = cstime1
+        if  not stime2 == "-1" :
+            if cstime1 :
+                cshutdown = "%s,%s" %(cstime1,stime2)
+            else:
+                cshutdown = stime2
+        logging.debug("    Shutdown time at %s",cshutdown)
+        cmd='''sed -e "s/HOUR/%s/g" %s/cron.template | crontab - -u mythtv''' %(cshutdown,systemconfig["TEMPLATES"])
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Shutdown not enabled")
+        cmd='''sed -e "/00 HOUR.*/d" %s/cron.template | crontab - -u mythtv''' %systemconfig["TEMPLATES"]
+        mv_common.runcmd(cmd)
+
+    logging.debug("__End of  sleep\n")
+
+
+def process_nfsmap_file(mapfile):
+    logging.debug("   processing nfsmap file %s",mapfile)
+    nfslist = []
+    try:
+        f = open(mapfile,"r")
+        for line in f.readlines():
+            if line.startswith("#"):
+                continue
+            item = line.split()
+            if len(item) <= 1 :
+                continue
+            logging.debug("    %s",item)
+            nfslist.append(item)
+    except :
+        logging.critical("Couldn't read file %s, or some other error",mapfile)
+    return nfslist
+
+def scrubnfs(templates):
+    logging.info("    Scrubbing nfs")
+    mv_common.cp_and_log("/etc/fstab",templates+"/fstab.conf.template")
+    #used this sed cmd because it's clean and took me forever to figure out =)
+    cmd='''sed '/^#STARTSCRUB.*$/,/^#ENDSCRUB.*$/d' %s/fstab.conf.template > /etc/fstab''' %templates
+    mv_common.runcmd(cmd)
+
+def download_nfsmap(ip):
+    nfsmap_file="/tmp/nfsmap"
+    myurl="http://%s:1337/templates/nfsmap" %ip
+    req = Request(myurl)
+    try:
+        f = urlopen(req)
+        logging.info("    downloading %s", myurl)
+        local_file = open(nfsmap_file, "w")
+        #Write to our local file
+        local_file.write(f.read())
+        local_file.close()
+    #handle errors
+    except HTTPError, e:
+        logging.info("    File download failed")
+        logging.debug("    %s", myurl)
+        logging.debug("   HTTP Error: %s", e.code)
+    except URLError, e:
+        logging.info("    File download failed")
+        logging.debug("   %s",myurl)
+        logging.debug("   URL Error: %s ", e.reason)
+
+    return nfsmap_file
+
+def setup_nfs_fstab(nfslist):
+    logging.info("    Adding nfs paths to fstab")
+    try:
+        f = open('/etc/fstab', 'a')
+        line = "#STARTSCRUB --------------anything in this block will be scrubbed\n"
+        f.write(line)
+        for s, m in nfslist:
+            line = "%s %s    nfs \n" %(s,m)
+            logging.debug("    %s",line)
+            f.write(line)
+        line = "#ENDSCRUB\n"
+        f.write(line)
+        f.close()
+    except:
+        logging.critical("    *Couldn't open /etc/fstab for writing")
+    logging.debug("   Done adding nfs paths to fstab")
+
diff --git a/abs/mv-core/MythVantage-config/mv_network.py b/abs/mv-core/MythVantage-config/mv_network.py
new file mode 100755
index 0000000..3f8de3b
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_network.py
@@ -0,0 +1,504 @@
+# -*- coding: utf-8 -*-
+import sys , os, commands , glob, time, re
+import logging
+import mv_common
+import socket, fcntl, struct, array
+import netifaces, iplib
+global etcnetdir
+etcnetdir = "/etc/net/ifaces"
+
+def setup_MYTH_DHCP(systemconfig):
+    default_interface = systemconfig["default_interface"]
+    try:
+        defaultdhcp = systemconfig["HostUSEDHCP"+default_interface]
+    except:
+        logging.critical("    *Error occured finding default dhcp")
+        defaultdhcp = "0"
+    logging.debug("    Using %s as dhcp value for %s",  defaultdhcp, default_interface)
+    return defaultdhcp
+
+def all_interfaces():
+    max_possible = 128  # arbitrary. raise if needed.
+    bytes = max_possible * 32
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    names = array.array('B', '\0' * bytes)
+    outbytes = struct.unpack('iL', fcntl.ioctl(
+        s.fileno(),
+        0x8912,  # SIOCGIFCONF
+        struct.pack('iL', bytes, names.buffer_info()[0])
+    ))[0]
+    namestr = names.tostring()
+    return [namestr[i:i+32].split('\0', 1)[0] for i in range(0, outbytes, 32)]
+
+def get_ip(ifname):
+    logging.debug("    Finding ip address for %s", ifname)
+    all_if = all_interfaces()
+    logging.debug("    found interfaces:%s", all_if)
+    if ifname in all_if :
+        logging.debug("    Found %s in all_interfaces", ifname)
+    else:
+        logging.critical("*     Couldn't find %s in list", ifname)
+        ifname = all_if[0]
+        logging.critical("*     Using %s for interface name", ifname)
+
+
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    return socket.inet_ntoa(fcntl.ioctl(
+        s.fileno(),
+        0x8915,  # SIOCGIFADDR
+        struct.pack('256s', ifname[:15])
+    )[20:24])
+
+def get_default_route(iface):
+    rcroute = "127.0.0.1" 
+    f = open ('/proc/net/route', 'r')
+    for line in f:
+        words = string.split (line)
+        netiface = words[0]
+        route =  words[2]
+        flags =  words[3]
+        try:
+            if ( netiface == iface ) and ( flags == "0003") :
+                route = iplib.IPv4Address(route, notation="hex")
+                t = str(route.get_dot())
+                s = t.split(".")
+                rcroute = s[3] + "." + s[2] + "." + s[1] + "." + s[0]
+                break
+        except ValueError:
+            pass
+    return rcroute
+
+def setup_MYTH_IP(systemconfig):
+    default_interface = systemconfig["default_interface"]
+    #check for dhcp in use
+    if setup_MYTH_DHCP(systemconfig) == "0":
+        logging.debug("   dhcp is in use, finding dhcp ip")
+        defaultip = get_ip(default_interface)
+    else:
+        try:
+            defaultip = systemconfig["Hostip"+default_interface]
+        except:
+            logging.debug("    Error occured finding the defaultip")
+            defaultip = "127.0.0.1"
+    logging.debug("    Using %s as default ip", defaultip)
+    return defaultip
+
+
+def setup_MYTH_GW(systemconfig):
+    default_interface = systemconfig["default_interface"]
+    #check for dhcp in use
+    if setup_MYTH_DHCP(systemconfig) == "0":
+        logging.debug("   dhcp is in use, finding dhcp ip")
+        defaultgw = get_default_route(default_interface)
+    else:
+        try:
+            defaultgw = systemconfig["Hostgw"+default_interface]
+        except:
+            logging.debug("    Error occured finding the defaultgw")
+            defaultgw = "127.0.0.1"
+    logging.debug("    Using %s as default gw", defaultgw)
+    return defaultgw
+
+
+def setup_MTYH_DNS():
+    returndns = "127.0.0.1"
+    try:
+      f = open ('/etc/resolv.conf', 'r')
+      for line in f:
+          if line.startswith("nameserver"):
+              print line
+              returndns = line.split()[1]  
+              break
+    except:
+      logging.debug("   Couldn't open /etc/resolv.conf for myth_dns")
+    logging.debug("   using %s for myth_dns", returndns)
+    return returndns
+
+
+
+
+
+def flush(netdev):
+    logging.debug("    Flushing %s",netdev)
+    cmd = '''ip address flush dev %s''' %netdev
+    mv_common.runcmd(cmd)
+
+def kill_dhcp(basedir):
+    logging.debug("    _Start of kill_dhcp")
+    logging.debug("    Killing off dhcpd")
+    stddir = os.getcwd()
+    piddir = ("%s/var/run/") %basedir
+    try:
+        os.chdir(piddir)
+        for FILE in glob.glob("dhcpcd-*.pid"):
+            f = open(FILE,'r')
+            pid = f.readline()
+            f.close
+            cmd = "kill -9 %s" %pid
+            mv_common.runcmd(cmd)
+            mv_common.remove_file(FILE)
+        os.chdir(stddir)
+    except:
+        pass
+
+def setup_nameserver(dns):
+    logging.info("    Adding %s for DNS", dns)
+    cmd = '''grep -q %s /etc/resolv.conf''' %dns
+    status = mv_common.runcmd(cmd)
+    if  not status == 0 :
+        cmd =  ''' echo "nameserver %s" >> /etc/resolv.conf ''' %dns
+        mv_common.runcmd(cmd)
+
+
+
+def setup_hostname(systemconfig):
+    logging.debug("   _Start of setup_hostname")
+    try:
+        hostname = systemconfig["hostname"]
+    except:
+        logging.critical("    *Hostname could not be set")
+        logging.info("    Using default value of me")
+        hostname = "me"
+    logging.info("    Setting the hostname to %s", hostname)
+    cmd = ''' echo %s > /etc/hostname ''' %hostname
+    mv_common.runcmd(cmd)
+    cmd = "cat /etc/hosts | grep -v 127.0.0.1 | grep -v %s > /tmp/hosts" %hostname
+    mv_common.runcmd(cmd)
+    if systemconfig["mythdhcp"] == "1" :
+        logging.debug("    not using dhcp")
+        cmd = ''' echo 127.0.0.1 localhost  > /etc/hosts '''
+        mv_common.runcmd(cmd)
+        cmd = ''' echo %s %s  > /etc/hosts ''' %(systemconfig["mythip"], systemconfig["hostname"])
+        mv_common.runcmd(cmd)
+    else:
+        cmd = ''' echo 127.0.0.1 %s localhost  > /etc/hosts ''' %systemconfig["hostname"]
+        mv_common.runcmd(cmd)
+    cmd = '''cat /tmp/hosts >> /etc/hosts '''
+    mv_common.runcmd(cmd)
+
+
+def write_wpafile(line,netdev):
+    logging.debug("    writing out wpa_supplicant.conf file")
+    logging.debug(line)
+    wpafile = etcnetdir+"/"+netdev+"/wpa_supplicant.conf"
+    try:
+        f = open(wpafile,'w')
+        f.write(line)
+        f.close()
+    except:
+        logging.debug("    Couldn't write to %s",wpafile)
+
+def setup_wpa(netinfo,netdev):
+    logging.info("    %s will use wpa for encryption",netdev)
+    line = '''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+    ssid="%s"
+    # Preshared key as an ASCII passphrase
+    psk="%s"
+    scan_ssid=1
+    key_mgmt=WPA-EAP WPA-PSK NONE
+    pairwise=CCMP TKIP
+    proto=WPA RSN
+}''' %(netinfo["ESSID"],netinfo["KEY"])
+    write_wpafile(line,netdev)
+
+def setup_wep(netinfo,netdev):
+    logging.info("    %s will use wep for encryption",netdev)
+    logging.debug("    When a packet comes along, you must wep it")
+    line='''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+        ssid="%s"
+        key_mgmt=NONE
+        wep_key0=%s
+        wep_tx_keyidx=0
+        scan_ssid=1
+        auth_alg=SHARED
+}
+''' %(netinfo["ESSID"],netinfo["KEY"])
+    write_wpafile(line,netdev)
+
+
+def setup_none(netinfo,netdev):
+    logging.info("    %s will not use encryption",netdev)
+    line = '''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+        ssid="%s"
+        key_mgmt=NONE
+}
+''' %netinfo["ESSID"]
+    write_wpafile(line,netdev)
+
+def setup_interface(netdev,systemconfig):
+    logging.debug("    _Start of setup_interface for %s",netdev)
+    nettrans = {'Hostip':'ip',
+                'Hostnetmask':'netmask',
+                'HostActive':'isactive',
+                'HostDNS':'dns',
+                'HostUSEDHCP':'UseDHCP',
+                'HostGW':'GW',
+                'HostMTU':'mtu',
+                'HOST_iswireless':"wireless",
+                'HostESSID':'ESSID',
+                'HostKey':'KEY',
+                'HostUseEncryption':'ENCRYPT'}
+    netinfo = {}
+    #populate the netinfo dict
+    for netitem in nettrans:
+        if systemconfig[netitem+netdev]:
+            netinfo[nettrans[netitem]] = systemconfig[netitem+netdev]
+        else:
+            netinfo[nettrans[netitem]] = False
+        logging.debug("     %s:%s",netitem,netinfo[nettrans[netitem]])
+    logging.info("    %s wireless: %s", netdev,netinfo["wireless"])
+    try:
+        os.makedirs(etcnetdir)
+    except:
+        logging.debug("   Could not create %s",etcnetdir)
+
+    optionfile=etcnetdir+"/"+netdev+"/options"
+    if not os.path.exists(optionfile):
+        os.makedirs(etcnetdir+"/"+netdev)
+        mv_common.cp_and_log(systemconfig["TEMPLATES"]+"/etcnet/eth/options", optionfile)
+
+    if netinfo["isactive"] == "1" :
+        change_iface_state(netdev,"enabled")
+    else:
+        change_iface_state(netdev,"disabled")
+
+    if netinfo["wireless"] == "1" :
+
+        logging.info("    Enabling wireless extensions")
+        cmd = ''' sed -i -e 's/^CONFIG_WIRELESS=.*$/CONFIG_WIRLESS=yes/g'  %s/%s/options''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+        if netinfo["ENCRYPT"] == "WEP":
+            setup_wep(netinfo,netdev)
+        elif netinfo["ENCRYPT"] == "WPA":
+            setup_wpa(netinfo,netdev)
+        elif netinfo["ENCRYPT"] == "none":
+            setup_none(netinfo,netdev)
+
+    else:
+        logging.info("    Disabling wireless extensions")
+        cmd = '''sed -i -e 's/^CONFIG_WIRLESS=.*$/CONFIG_WIRLESS=no/g' %s/%s/options''' %(etcnetdir, netdev)
+        mv_common.runcmd(cmd)
+        #try:
+        wpafile=etcnetdir+"/"+netdev+"/wpa_supplicant.conf"
+            #os.remove(wpafile)
+        mv_common.remove_file(wpafile)
+        #except:
+            #logging.debug("    Couldn't remove %s",wpafile)
+
+    if netinfo["UseDHCP"] == "0" :
+        logging.info("    Enabling DHCP support")
+        cmd = ''' sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=dhcp/g' %s/%s/options''' %(etcnetdir, netdev)
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Using static ip address of %s",netinfo["ip"])
+        cmd = ''' sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=static/g' %s/%s/options''' %(etcnetdir, netdev)
+        mv_common.runcmd(cmd)
+        cmd = '''echo "default via %s" > %s/%s/ipv4route''' %(netinfo["GW"], etcnetdir, netdev)
+        mv_common.runcmd(cmd)
+        cmd = '''echo "%s%s" > %s/%s/ipv4address ''' %(netinfo["ip"], netinfo["netmask"].split()[0], etcnetdir, netdev)
+        mv_common.runcmd(cmd)
+        setup_nameserver(netinfo["dns"])
+
+    if netinfo["mtu"] :
+        logging.info("    Setting mtu to %s", netinfo["mtu"])
+        cmd = '''sed -i '/^mtu.*$/d' %s/%s/iplink''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+        cmd = ''' echo "mtu %s" >> %s/%s/iplink''' %(netinfo["mtu"], etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Using default mtu value")
+        cmd = '''sed -i '/^mtu.*$/d' %s/%s/iplink''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+
+
+def change_iface_state(netdev, state):
+    if state == "enabled":
+        logging.info("    Activating %s", netdev)
+        cmd = '''sed -i -e 's/^ONBOOT=.*$/ONBOOT=yes/g' %s/%s/options''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+        cmd = '''sed -i -e 's/^DISABLED=.*$/DISABLED=no/g' %s/%s/options ''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Disabling %s", netdev)
+        cmd = '''sed -i -e 's/^ONBOOT=.*$/ONBOOT=no/g' %s/%s/options''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+        cmd = '''sed -i -e 's/^DISABLED=.*$/DISABLED=yes/g' %s/%s/options ''' %(etcnetdir,netdev)
+        mv_common.runcmd(cmd)
+        cmd = "/sbin/ifconfig %s down" %netdev
+        mv_common.runcmd(cmd)
+        cmd = "ip address flush %s" %netdev
+        mv_common.runcmd(cmd)
+
+def devcheck(netdev):
+    cmd = ''' /sbin/ifconfig %s''' %netdev
+    rc = mv_common.runcmd(cmd)
+    if rc == 0 :
+        return True
+    else:
+        return False
+
+def udev_rules(netdev):
+    filename = "/etc/udev/rules.d/net.rules"
+    if devcheck(netdev):
+        logging.info("    Finding macaddress for %s",netdev)
+        try:
+            macaddress = netifaces.ifaddresses(netdev)[netifaces.AF_LINK][0]['addr']
+            logging.debug("    Macaddress: %s",macaddress)
+        except:
+            logging.debug("    Couldn't find mac address for %s",netdev)
+            return
+        try:
+            f = open(filename,'a')
+        except:
+            logging.debug("    Couldn't open %s for writing", filename)
+            return
+        if netdev.startswith('eth'):
+            line = '''KERNEL=="eth*", SYSFS{address}=="%s", NAME="%s"''' % ( macaddress , netdev)
+        elif netdev.startswith('wlan'):
+            line = '''KERNEL=="wlan*", SYSFS{address}=="%s", NAME="%s"'''% ( macaddress , netdev)
+        elif netdev.startswith('ath'):
+            line = '''KERNEL=="ath*", SYSFS{address}=="%s", NAME="%s"''' % ( macaddress , netdev)
+        logging.debug("     adding to net.rules ")
+        logging.debug("    %s",line)
+        f.write(line)
+        f.write("\n")
+        f.close()
+
+def find_active(systemconfig,this_is_install):
+    interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1', 'ath0')
+    logging.debug("    _Start of find_active")
+
+    if systemconfig["mythdhcp"] == "1":
+        mv_common.remove_file("/etc/resolv.conf")
+        cmd = ''' echo search lan > /etc/resolv.conf '''
+        mv_common.runcmd(cmd)
+        cmd = ''' echo nameserver 127.0.0.1 >> /etc/resolv.conf '''
+        mv_common.runcmd(cmd)
+
+    for netdev in interfacelist:
+        if this_is_install:
+            udev_rules(netdev)
+        currentnet = "HostActive" + netdev
+        try:
+            systemconfig[currentnet]
+        except:
+            logging.debug("    %s is not defined",currentnet)
+            change_iface_state(netdev, "disabled")
+            continue
+        if systemconfig[currentnet] == "1" :
+            #check if device is present
+            if devcheck(netdev) :
+                setup_interface(netdev,systemconfig)
+            else:
+                logging.debug("    Interface %s not found in config", netdev)
+                #change_iface_state(netdev, "disabled")
+        else:
+            change_iface_state(netdev, "disabled")
+
+def vnc_netboot_check():
+    logging.debug("    Start of VNC/NETBOOT check")
+    vnc = False
+    netboot = False
+    try:
+        f = open('/proc/cmdline', 'r')
+        bootoptions = f.readlines()
+        f.close()
+    except:
+        logging.critical("    *Couldn't open /proc/cmdline")
+        logging.debug("    Assuming it's ok to fiddle with the network")
+        return True
+    bootoptions =  bootoptions[0]
+    if re.match("vnc",bootoptions) != None :
+        logging.debug("    Found VNC option")
+        vnc = True
+    if re.match("nfsroot",bootoptions) != None :
+        logging.debug("    Found netboot option")
+        netboot = True
+
+    return (vnc or netboot)
+
+def start_network():
+    if not vnc_netboot_check():
+        logging.info("    Restarting network")
+        cmd ="/etc/net/scripts/network.init reload"
+        mv_common.runcmd(cmd)
+        cmd ="/etc/net/scripts/network.init restart"
+        mv_common.runcmd(cmd)
+    else:
+        logging.info("    Will not restart network due to netboot/vnc")
+
+
+def stop_network():
+    if not vnc_netboot_check():
+        logging.info("    Stopping network")
+        cmd ="/etc/net/scripts/network.init stop"
+        mv_common.runcmd(cmd)
+        kill_dhcp("")
+        interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1', 'ath0')
+        for i in interfacelist:
+            flush(i)
+    else:
+        logging.info("    Will not stop network due to netboot/vnc")
+    pass
+
+def hostname_change_check(systemconfig):
+    restartfe = False
+    logging.debug("    _Start of hostname_change_check")
+    oldhostname = socket.gethostname()
+    #oldhostname = "crap"
+    newhostname = systemconfig["hostname"]
+    mv_root = systemconfig["MVROOT"]
+    logging.debug("    Old hostname: %s", oldhostname)
+    logging.debug("    New hostname: %s", newhostname)
+    if oldhostname != newhostname :
+        logging.info("    Changing hostname in database to match new hostname")
+        cmd ="%s/bin/restore_default_settings.sh -cuhostname -o -h%s" %(mv_root, oldhostname)
+        mv_common.runcmd(cmd)
+        logging.info("    Changing hostname to %s", newhostname)
+        cmd = "hostname %s" %newhostname
+        mv_common.runcmd(cmd)
+        if systemconfig["SystemType"] != "Frontend_only" :
+            logging.info("    Restarting backend")
+            mv_common.stop_service("mythbackend")
+            mv_common.start_service("mythbackend")
+            restartfe = True
+    else:
+        logging.debug("    old and new hostnames matched, leaving things along")
+    logging.debug("  __End of hostname_change_check")
+    return restartfe
+
+
+
+def setup_network (systemconfig,this_is_install):
+    logging.info("____Start of network____")
+    logging.info("    Setting up the network")
+    restartfe = hostname_change_check(systemconfig)
+    setup_hostname(systemconfig)
+    find_active(systemconfig,this_is_install)
+    start_network()
+    logging.info("__End of network\n")
+    return restartfe
+
+
+
+##this is used by the install process to start the network
+def install_network_setup(systemconfig):
+    logging.info("____Start of network_install____")
+    logging.info("    Setting up the network")
+    #setup_MYTH_vars
+    setup_hostname(systemconfig)
+    stop_network()
+    find_active(systemconfig)
+    start_network()
+    logging.info("__End of network install \n")
+
+
diff --git a/abs/mv-core/MythVantage-config/mv_screensaver.py b/abs/mv-core/MythVantage-config/mv_screensaver.py
new file mode 100755
index 0000000..2da970c
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_screensaver.py
@@ -0,0 +1,199 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+import re
+import os
+
+
+def mplayer_saver_check (cmd,templatefile):
+    logging.debug("    Checking for heartbeat command in mplayer.conf")
+    mplayerconf = "/etc/mplayer/mplayer.conf"
+    if not os.path.exists(mplayerconf):
+        logging.debug("    copying in mplayer template file")
+        mv_common.cp_and_log(templatefile, mplayerconf)
+
+    try:
+        f = open(mplayerconf, 'r')
+        mplayerconf_contents = f.readlines()
+        f.close()
+    except:
+        logging.debug("    Couldn't open %s for reading",mplayerconf)
+        mplayerconf_contents = "#\n"
+
+    try:
+        f = open(mplayerconf, 'w')
+    except:
+        logging.debug("    Couldn't open %s for writing",mplayerconf)
+        return
+
+    for line in mplayerconf_contents:
+        if re.match("^.*stop-xscreensaver",line):
+            continue
+        elif re.match("^.*heartbeat-cmd",line):
+            continue
+        else:
+            f.write(line)
+
+    f.write("stop-xscreensaver = 0\n")
+    line='''heartbeat-cmd="%s"\n''' %cmd
+    f.write(line)
+    f.close()
+
+
+def killxscreensaver():
+    logging.info("   Stopping xscreensaver")
+    cmd="xscreensaver-command --exit "
+    mv_common.runcmd(cmd)
+    cmd="killall xscreensaver "
+    mv_common.runcmd(cmd)
+
+def killgscreensaver():
+    logging.info("    Stopping gnome-screensaver")
+    cmd="gnome-screensaver-command --exit "
+    mv_common.runcmd(cmd)
+    cmd="killall gnome-screensaver "
+    mv_common.runcmd(cmd)
+
+
+def setup_x_screensaver(idle,theme,screenconfigfile,templatefile):
+    logging.info("    Configuring X screensaver")
+    killgscreensaver()
+    logging.debug("    Why can't xscreensaver have a nice configuration !")
+
+    if not os.path.exists(screenconfigfile):
+        logging.debug("   copying in new template file")
+        mv_common.cp_and_log(templatefile,screenconfigfile)
+
+    try:
+        f = open(screenconfigfile, 'r')
+        screenconfigcontents=f.readlines()
+        f.close()
+    except:
+        logging.info("Couldn't open %s for reading",screenconfigfile)
+        return
+    try:
+        f = open(screenconfigfile, 'w')
+    except:
+        logging.info("Couldn't open %s for writing",screenconfigfile)
+        return
+
+    startline=0
+    foundline=0
+
+    for k, line in enumerate(screenconfigcontents):
+        if re.match("programs:",line):
+            startline = k
+        if re.search(theme,line):
+            foundline = k
+    themenumber=foundline-startline-2
+
+    for line in screenconfigcontents:
+        if re.match("selected.*$",line):
+            continue
+
+        if re.match("timeout",line):
+            logging.info("    Setting idletime to %s",idle)
+            outline = "timeout:   0:%s:00 \n" %idle
+            f.write(outline)
+        elif re.match("mode",line):
+            if theme == "Random":
+                logging.info("    Setting theme to %s", "Random")
+                outline = "mode:    random \n"
+                f.write(outline)
+                outline = "selected:    -1 \n"
+                f.write(outline)
+                continue
+
+            elif theme == "Blank":
+                logging.info("    Setting theme to %s", "blank")
+                outline = "mode:    blank \n"
+                f.write(outline)
+                outline = "selected:    -1 \n"
+                f.write(outline)
+                continue
+
+            else:
+                logging.info("    Setting theme to %s", theme)
+                outline = "mode:    one\n"
+                f.write(outline)
+                logging.debug("    Theme number is %s",themenumber)
+                outline = "selected:    %s\n" %themenumber
+                f.write(outline)
+                continue
+
+        else:
+            outline = line
+            f.write(outline)
+    f.close()
+    logging.debug("__End of xscreensaver")
+
+def setup_gnome_screensaver(theme,idletime):
+    logging.info("    Configuring gnome screensaver")
+
+    logging.info("    Disabling lock screen")
+    cmd='''gconftool-2 --direct   --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory  --type bool   --set /apps/gnome-screensaver/lock_enabled false'''
+    mv_common.runcmd(cmd)
+
+    logging.info("    Setting idletime to %s",idletime)
+    cmd='''gconftool-2 --direct  --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory  --type int -s "/apps/gnome-screensaver/idle_delay" %s''' %idletime
+    mv_common.runcmd(cmd)
+
+    logging.info("    Setting mode to single")
+    cmd='''gconftool-2 --direct  --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory  --type string -s "/apps/gnome-screensaver/mode" single'''
+    mv_common.runcmd(cmd)
+
+    if theme == "Random":
+        logging.info("    setting theme to random")
+        cmd='''gconftool-2 --direct  --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory  --type string -s "/apps/gnome-screensaver/mode" random'''
+        mv_common.runcmd(cmd)
+
+    elif theme == "Blank":
+        logging.info("    setting theme to blank")
+        cmd='''gconftool-2 --direct  --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory  --type string -s "/apps/gnome-screensaver/themes" blank'''
+        mv_common.runcmd(cmd)
+
+    else:
+        logging.info("    setting theme to %s",theme)
+        cmd='''gconftool-2  --direct  --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --set --type list --list-type=string /apps/gnome-screensaver/themes [screensavers-%s]''' %theme
+        mv_common.runcmd(cmd)
+
+    killxscreensaver()
+    logging.info("__End gnome screensaver")
+
+
+
+
+def setup_screensaver (systemconfig,data_config):
+    logging.info("____Start of screensaver configuration____")
+    screensavertype = systemconfig["Screensavertype"]
+    theme = systemconfig["Screensavertheme"]
+    idletime = systemconfig["Screensaveridle"]
+    configfile = data_config.MYTHHOME+"/.xscreensaver"
+    templatefile = systemconfig["TEMPLATES"]+"/xscreensaver.template"
+    mtemplate = systemconfig["TEMPLATES"]+"/mplayer.conf.template"
+
+    if screensavertype == "xscreensaver":
+        mv_common.pacinstall("xscreensaver")
+        mv_common.pacremove("gnome-screensaver")
+        setup_x_screensaver(idletime, theme, configfile, templatefile)
+        mplayer_saver_check("/usr/bin/xscreensaver-command -deactivate &",mtemplate)
+
+    elif screensavertype == "gscreensaver":
+        mv_common.pacinstall("xscreensaver")
+        mv_common.pacinstall("gnome-screensaver")
+        setup_gnome_screensaver(theme,idletime)
+        mplayer_saver_check("/usr/bin/gnome-screensaver-command -p &",mtemplate)
+
+    elif screensavertype == "none":
+        mv_common.pacremove("xscreensaver")
+        mv_common.pacremove("gnome-screensaver")
+        killgscreensaver()
+        killxscreensaver()
+
+    elif screensavertype == "tinker" :
+        logging.debug("    screensaver tinker mode detected")
+    else:
+        logging.debug("   Unknown screensaver")
+    logging.info("__End of screensaver\n")
+
+
+
diff --git a/abs/mv-core/MythVantage-config/mv_smolt.py b/abs/mv-core/MythVantage-config/mv_smolt.py
new file mode 100755
index 0000000..5fd3722
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_smolt.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+import logging
+import mv_common
+
+def read_release(stype):
+    if stype == "LinHES":
+        rfile = "/etc/LinHES-release"
+    else:
+        rfile = "/etc/MythVantage-release"
+
+    try:
+        f= open(rfile,'r')
+        releasename = f.readlines()[0]
+        f.close()
+    except:
+        logging.debug("    Couldn't open %s",rfile)
+        releasename = "unknown"
+
+    return releasename
+
+
+def setup_smolt_type(SystemType,Remotetype,RunFrontend,mythhome,stype):
+    logging.debug("____Start of setup_smolt_type____")
+    releasename = read_release(stype)
+
+    if SystemType == "Standalone":
+        smoltsystem = 6
+        MVRELEASE="%s (Standalone)" %releasename
+    elif SystemType == "Master_backend":
+        if RunFrontend == "1":
+            smoltsystem = 2
+            MVRELEASE="%s (MBE with Frontend)" %releasename
+        else:
+            smoltsystem=1
+            MVRELEASE="%s (MBE)" %releasename
+    elif SystemType == "Slave_backend":
+        if RunFrontend == "1" :
+            smoltsystem = 4
+            MVRELEASE="%s (SLAVE  with Frontend)" %releasename
+        else:
+            smoltsystem = 5
+            MVRELEASE="%s (SLAVE)" %releasename
+    elif SystemType == "Frontend_only":
+        smoltsystem = 3
+        MVRELEASE="%s ( Frontend only)" %releasename
+
+    logging.debug("    smolt type is %s : %s", MVRELEASE,smoltsystem)
+    smoltfile = mythhome+"/.mythtv/smolt.info"
+    cmd = ''' echo  "%s" > /etc/os_myth_release ''' %MVRELEASE
+    mv_common.runcmd(cmd)
+
+    cmd = '''echo "systemtype=%s" > %s''' %(smoltsystem,smoltfile)
+    mv_common.runcmd(cmd)
+
+    cmd = '''echo "remote=%s" >> %s ''' %(Remotetype,smoltfile)
+    mv_common.runcmd(cmd)
+
+    logging.debug("__End of setup_smolt_type")
+
diff --git a/abs/mv-core/MythVantage-config/mv_software.py b/abs/mv-core/MythVantage-config/mv_software.py
new file mode 100755
index 0000000..e5b96b2
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_software.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+import os, re
+
+def setup_software(systemconfig, data_config):
+    logging.info("____Start of Software install____")
+    default_disabled = ("mythphone", "mytharchive", "mythbrowser", "mythnews",
+                        "mythgame", "mythflix", "mythweather",
+                        "mythappletrailers", "mythstream", "mythvodka")
+
+    default_installed=("mythcontrols", "mythgallery", "mythmovies",
+                        "mythmusic", "mythsmolt", "mythvideo")
+    other_pkg=("miro", "xe", "romdb", "xine", "dvdcss", "webmin" , "fuppes")
+
+    for pkg in default_disabled:
+        try:
+            if systemconfig[pkg] == "1":
+                mv_common.pacinstall(pkg)
+            else:
+                mv_common.pacremove(pkg)
+        except:
+            logging.debug("  ERROR-- %s is not defined", pkg)
+
+    for pkg in default_installed:
+        try:
+            if systemconfig[pkg] == "0":
+                mv_common.pacremove(pkg)
+            else:
+                mv_common.pacinstall(pkg)
+        except:
+            logging.debug("  ERROR-- %s is not defined", pkg)
+
+    for pkg in other_pkg:
+        try:
+            if systemconfig[pkg] == "1":
+                mv_common.pacinstall(pkg)
+            elif systemconfig[pkg] == "0":
+                mv_common.pacremove(pkg)
+        except:
+            logging.debug("   ERROR-- %s is not defined", pkg)
+    logging.info("__End Software\n ")
\ No newline at end of file
diff --git a/abs/mv-core/MythVantage-config/mv_webuser.py b/abs/mv-core/MythVantage-config/mv_webuser.py
new file mode 100755
index 0000000..a8517a8
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/mv_webuser.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+import logging, mv_common
+#import os
+
+def setup_web_auth(UseMythWEB_auth):
+    logging.info("____Start of setup_web_auth____")
+    if UseMythWEB_auth == str(1):
+        #enable auth
+        logging.info("    Enabling authorization for mythweb")
+        cmd='''sed -i "s/^.*include.*auth-inc.conf.*$/include \\"\/etc\/lighttpd\/auth-inc.conf\\"/g" /etc/lighttpd/lighttpd.conf'''
+        mv_common.runcmd(cmd)
+    else:
+        #disable auth
+        logging.info("    Disabling authorization for mythweb")
+        cmd='''sed -i "s/^.*include.*auth-inc.conf.*$/#include \\"\/etc\/lighttpd\/auth-inc.conf\\"/g" /etc/lighttpd/lighttpd.conf'''
+        mv_common.runcmd(cmd)
+    logging.debug("Restarting lighttpd")
+    cmd="sudo sv restart lighttpd"
+    mv_common.runcmd(cmd)
+    logging.info("__End of webauth\n")
+
diff --git a/abs/mv-core/MythVantage-config/myth_user_call.py b/abs/mv-core/MythVantage-config/myth_user_call.py
new file mode 100755
index 0000000..63915a4
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/myth_user_call.py
@@ -0,0 +1,159 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#Wrapper script to manage USERNAME accounts + web security
+# myth_USERNAME_all -c add -u USERNAME
+# myth_USERNAME_all -c delete -u USERNAME
+# myth_USERNAME_all -c pass  -u USERNAME -p pass
+# myth_USERNAME_all -c web  -u USERNAME -p pass
+
+import pexpect, sys, time
+import os, re, getopt
+import mv_common
+
+
+
+
+def chroot_check():
+    if  not INIT_CHECK :
+        return False
+    cmd = '''ps -p 1 -o comm='''
+    init = mv_common.runcmd_output(cmd).strip()
+    if init == "runit":
+        return False
+    else:
+        return True
+
+
+def store_commands(full_call):
+    file_name = "/root/myth_user_call.out"
+    try:
+        f = open(file_name,'a')
+    except:
+        print "%s could not be opened" % file_name
+        sys.exit(1)
+    f.write(full_call)
+    f.write("\n")
+    f.close()
+    try:
+        os.chmod(600,file_name)
+    except:
+        pass
+
+
+def add_user(username,full_call):
+    if chroot_check() :
+        print "calling myth_call_user in chroot to add user"
+        store_commands(full_call)
+    else:
+        print "Adding user %s" %username
+        cmd = '''useradd -m -s /bin/bash %s -G audio,video,optical,storage,users''' %username
+        mv_common.runcmd(cmd)
+        cmd = ''' usermod -a -G mythtv %s ''' %username
+
+
+def del_user(username,full_call):
+    if chroot_check() :
+        print "calling myth_call_user in chroot to del user"
+        store_commands(full_call)
+    else:
+        print "Removing  user %s" %username
+        cmd = '''userdel  %s ''' %username
+        mv_common.runcmd(cmd)
+
+
+def pass_change(username,password,full_call) :
+    if chroot_check() :
+        print "calling myth_call_user in chroot to change password"
+        store_commands(full_call)
+    else:
+        print "changing password for %s" %username
+        passwd = [REDACTED] %s" % username)
+
+        for repeat in (1, 2):
+                passwd.expect("password: ")
+                passwd.sendline(password)
+                time.sleep(0.1)
+
+def web_security(username,password) :
+    file_name = "/etc/lighttpd/lighttpd.user"
+    file_contents = ''
+    if  os.path.exists(file_name):
+        try:
+            f = open(file_name,'r')
+            file_contents = f.readlines()
+        except:
+            print " couldn't read %s" % file_name
+    try:
+        f = open(file_name,'w')
+    except:
+        print "%s could not be opened for writing" % file_name
+        return
+
+    for line in file_contents:
+        if not re.search(username, line):
+            f.write(line)
+    line = "%s:%s" %(username, password)
+    f.write(line)
+    f.write("\n")
+    f.close()
+
+
+def usage ():
+    print "Valid options are:"
+    print "  -c (add|delete|pass|web)"
+    print "  -u  USERNAME"
+    print "  -p  password"
+    sys.exit(0)
+
+def main(argv):
+    global INIT_CHECK
+    full_call = ""
+    INIT_CHECK = True
+    try:
+        opts,  args = getopt.getopt(argv,  'c:u:p:ih' )
+    except getopt.GetoptError, why:
+        print why
+        usage()
+        print "exception happened"
+        sys.exit(2)
+
+    for opt,  arg in opts:
+        if opt in ("-h",  "--help"):
+            usage()
+            sys.exit(0)
+        elif opt in ("-c") :
+            module = arg
+            full_call += ''' -c %s ''' %re.escape(arg)
+        elif opt in ("-u") :
+            username = arg
+            full_call += ''' -u %s ''' %re.escape(arg)
+        elif opt in ("-p") :
+            password = arg
+            full_call += ''' -p %s ''' %re.escape(arg)
+        elif opt in ("-i") :
+            INIT_CHECK = False
+            full_call += ''' -i '''
+    try:
+        username
+    except:
+        usage()
+
+    if module == "add":
+        add_user(username,full_call)
+    elif module == "delete":
+        del_user(username,full_call)
+    elif module == "pass":
+        try:
+            password
+        except:
+            print "needs a password"
+            usage()
+        pass_change(username,password,full_call)
+    elif module == "web":
+        web_security(username,password)
+    else:
+        usage()
+
+if __name__ == "__main__":
+   main(sys.argv[1:])
+
diff --git a/abs/mv-core/MythVantage-config/systemconfig.py b/abs/mv-core/MythVantage-config/systemconfig.py
new file mode 100755
index 0000000..c559e09
--- /dev/null
+++ b/abs/mv-core/MythVantage-config/systemconfig.py
@@ -0,0 +1,243 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+import sys,  os,  commands,  glob,  time
+import getopt,  re,  MySQLdb
+import logging
+import mv_common , mv_network
+import inspect
+#____________________________________________setup the logging______________________________________________________
+LOG_FILENAME = '/tmp/systemconfig.log'
+DEBUGLOG = '/tmp/systemconfig_debug.log'
+logging.basicConfig(level=logging.DEBUG,
+                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
+                    datefmt='%m-%d %H:%M',
+                    filename=DEBUGLOG,
+                    filemode='w')
+# define a Handler which writes INFO messages or higher to the sys.stderr
+console = logging.StreamHandler()
+console.setLevel(logging.INFO)
+# set a format which is simpler for console use
+#formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
+formatter = logging.Formatter("%(message)s")
+# tell the handler to use this format
+console.setFormatter(formatter)
+# add the handler to the root logger
+logging.getLogger('').addHandler(console)
+
+#infoformatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
+infoformatter = logging.Formatter("%(message)s")
+infofile = logging.FileHandler(LOG_FILENAME, 'w')
+infofile.setFormatter(infoformatter)
+infofile.setLevel(logging.INFO)
+logging.getLogger('').addHandler(infofile)
+
+
+def usage():
+    logging.info("tell people how to use this")
+
+def setup_x(systemconfig):
+    cmd = "%s/bin/xconfig.sh" %systemconfig["MVROOT"]
+    mv_common.runcmd(cmd)
+
+def main(argv):
+    try:
+        MVROOT = os.environ["MV_ROOT"]
+    except:
+        logging.debug("MVROOT was not defined, using the default value")
+        MVROOT = "/usr/MythVantage"
+
+    global cmdmodule
+    global systemconfig
+    systemconfig["MVROOT"]=MVROOT
+    restartlcd = False
+    cmdmodule={"misc":False , "sleep":False , "hostype":False , "hostypec":False , "advanced":False , "audio":False , "network":False , "advancedX":False , "webuser":False , "restartfe":False , "reloadfe":False , "ddns":False , "screensaver":False , "ir":False , "this_is_install":False , "user":False, "software":False, "plugins":False, "smolt":False, "all":False, "dhcp_request":False }
+    try:
+        opts,  args = getopt.getopt(argv,  'c:hm:d:',  ["help","modules" ] )
+    except getopt.GetoptError, why:
+        print why
+        usage()
+        print "exception happened"
+        sys.exit(2)
+    for opt,  arg in opts:
+        if opt in ("-h",  "--help"):
+            usage()
+            sys.exit(0)
+        elif opt in ("-m"):
+            for i in arg.split(","):
+                cmdmodule[i]=True
+        elif opt in ("-d"):
+            dhcp_dev = arg
+
+
+    if cmdmodule["this_is_install"] or cmdmodule["hostypec"]:
+        systemconfig["hostypec"] = True
+        cmdmodule["smolt"] = True
+
+    systemconfig["mythip"] = mv_network.setup_MYTH_IP(systemconfig)
+    systemconfig["mythdhcp"] = mv_network.setup_MYTH_DHCP(systemconfig)
+    systemconfig["mythgw"] = mv_network.setup_MYTH_DHCP(systemconfig)
+    systemconfig["mythdns"] = mv_network.setup_MYTH_DHCP(systemconfig)
+
+    if cmdmodule["all"]:
+        logging.info("***    WILL RUN ALL MODULES   ***")
+        cmdmodule["hostype"] = True
+        cmdmodule["ir"]= True
+        cmdmodule["network"] = True
+        cmdmodule["audio"] = True
+        cmdmodule["misc"] = True
+        cmdmodule["sleep"] = True
+        cmdmodule["webuser"] = True
+        cmdmodule["ddns"] = True
+        cmdmodule["screensaver"] = True
+        cmdmodule["advanced"] = True
+        cmdmodule["software"] = True
+        cmdmodule["advancedX"] = True
+        cmdmodule["smolt"] = True
+        cmdmodule["user"] = True
+
+
+    if cmdmodule["hostype"]:
+        import mv_hostype
+        cmdmodule["advancedX"] = True
+        setup_x(systemconfig)
+        cmdmodule["ir"] = True
+        mv_hostype.hostypeprint(systemconfig)
+        cmdmodule["smolt"] = True
+
+    if cmdmodule["network"]:
+        restartfe = mv_network.setup_network(systemconfig, cmdmodule["this_is_install"])
+        if restartfe == True :
+            logging.debug("    Setting the frontend to restart due to network change")
+            cmdmodule["restartfe"] = True
+
+
+
+    if cmdmodule["ir"] == True:
+        import mv_ir
+        restart = mv_ir.setup_ir(systemconfig,data_config)
+        restartfe = restart[0]
+        restartlcd = restart[1]
+        if restartfe == True :
+            logging.debug("    Setting the frontend to restart due to lirc change")
+            cmdmodule["restartfe"] = True
+        cmdmodule["smolt"] = True
+
+
+    if cmdmodule["audio"] == True:
+        logging.debug("______Start of Audio Configuration______")
+        if not systemconfig["Audiotype"] == "tinker":
+            cmd="%s/bin/soundconfig.sh -t real -i %s -d %s" %(MVROOT,systemconfig["Audiotype"],systemconfig["SoundDevice"])
+            mv_common.runcmd(cmd)
+        else:
+            logging.debug("    Tinker mode(audio), not changing configuration")
+        logging.debug("__End of audio")
+
+    if cmdmodule["misc"]:
+        import mv_misc
+        mv_misc.setup_zip(MVROOT,systemconfig["zipcode"])
+        mv_misc.setup_tz(systemconfig["timezone"],systemconfig["TEMPLATES"])
+        mv_misc.setup_nfs(systemconfig)
+
+    if cmdmodule["sleep"]:
+        import mv_misc
+        mv_misc.setup_sleep(systemconfig)
+
+    if cmdmodule["webuser"]:
+        import mv_webuser
+        mv_webuser.setup_web_auth(systemconfig["UseMythWEB_auth"])
+
+    if cmdmodule["ddns"]:
+        print " LOOK FOR DDNS"
+
+    if cmdmodule["screensaver"]:
+        import mv_screensaver
+        mv_screensaver.setup_screensaver(systemconfig, data_config)
+
+    if cmdmodule["advanced"]:
+        import mv_advanced
+        mv_advanced.setup_advanced(systemconfig, data_config)
+
+    if cmdmodule["software"] or cmdmodule["plugins"]:
+        import mv_software
+        mv_software.setup_software(systemconfig, data_config)
+
+    if cmdmodule["advancedX"]:
+        setup_x(systemconfig)
+
+    if cmdmodule["restartfe"]:
+        mv_common.restartfe(restartlcd)
+
+    if cmdmodule["reloadfe"]:
+        mv_common.reloadfe(systemconfig["dbhost"],restartlcd)
+
+    if cmdmodule["smolt"]:
+        import mv_smolt
+        mv_smolt.setup_smolt_type(systemconfig["SystemType"],
+                                  systemconfig["Remotetype"],
+                                  systemconfig["RunFrontend"],
+                                  data_config.MYTHHOME,
+                                  data_config.SYSTEMTYPE)
+
+    if cmdmodule["user"]:
+        logging.info("____Start of ssh user____")
+        if systemconfig["rootSSH"] == "1" :
+            logging.info("    Allowing ssh access for root")
+            cmd = '''sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin yes/" /etc/ssh/sshd_config'''
+            mv_common.runcmd(cmd)
+        else:
+            logging.info("    Removing ssh access for root")
+            cmd = '''sed -i "s/^.*PermitRootLogin.*$/PermitRootLogin no/" /etc/ssh/sshd_config'''
+            mv_common.runcmd(cmd)
+        logging.info("__End of ssh user\n")
+
+    if cmdmodule["dhcp_request"]:
+        cmd = '''dhcpcd -t4 -h' ' -Td %s > /tmp/mvnetwork.dhcpinfo ''' %dhcp_dev
+        mv_common.runcmd(cmd)
+
+
+if __name__ == "__main__":
+
+    config_file = "mv_config"
+    data_config = __import__(config_file,  globals(),  locals(),  [])
+    #Read in systemconfig
+    global systemconfig
+    systemconfig = {"hostypec":False}
+    file_name = "/etc/systemconfig"
+    try:
+        config_file = open(file_name)
+    except:
+        logging.critical("%s could not be opened", file_name)
+        sys.exit(1)
+
+    for line in config_file:
+        line = line.strip()
+        if line and line[0] is not "#" and line[-1] is not "=":
+            var, val = line.rsplit("=", 1)
+            val = val.strip('"')
+            systemconfig[var.strip()] = val.strip()
+    try:
+        systemconfig["TEMPLATES"] = os.environ["TEMPLATES"]
+    except:
+        logging.critical("    *TEMPLATES is not defined")
+        logging.critical("    *using default value")
+        systemconfig["TEMPLATES"] = "/usr/MythVantage/templates"
+
+    logging.debug("______START OF DEBUG______")
+    main(sys.argv[1:])
+    logging.debug("______cmd line options______")
+    for i in cmdmodule.items():
+        logging.debug (i)
+    logging.debug("______systemconfig______")
+    for i in systemconfig.items():
+        logging.debug(i)
+    #pass
+
+
+
+
+
+
+
+
+
+
diff --git a/abs/mv-core/MythVantage-config/systemconfig.sh b/abs/mv-core/MythVantage-config/systemconfig.sh
index a85d88e..218f705 100755
--- a/abs/mv-core/MythVantage-config/systemconfig.sh
+++ b/abs/mv-core/MythVantage-config/systemconfig.sh
@@ -4,1275 +4,16 @@
 #Any changes made to config files will be removed when systemconfig.sh is run
 #
 #JM
-###################################################################
-#set -x
-. /etc/profile
-MVRELEASE=`cat /etc/mythvantage-release  |cut -d" " -f -2`
-
 echo $@ >/tmp/systemconfig.call
 echo "----------------------start of systemconfig $@ ----------------------"
-BASE=""
-
-#TEMPLATES="/usr/share/templates"
 . /etc/profile
 . $MV_ROOT/bin/networkconfig.sh
-PACMAN="pacman --noconfirm"
-postfix=`cat ${BASE}/usr/share/mythtv/.releasetype`
-PKGBLACKLIST=$BASE/etc/blacklist.package
-
-if [ x$1 = x"Mysql_only" ]
-then
-    rm -f /tmp/mysql.txt
-    sed -e "s/^DBHostName=.*$/DBHostName=$2/" $TEMPLATES/mysql.txt > /tmp/mysql.txt
-    exit 0
-fi
-
-
-if [ -f /etc/systemconfig ]
-then
-    . /etc/systemconfig
-    setup_MYTH_vars
-    TEMPNET="Hostip"$default_interface
-    echo $TEMPNET
-    eval MYTHIP=\$${TEMPNET}
-else
-    echo "could not find /etc/systemconfig"
-    exit 1
-fi
-
-
-
-#-----------------------------------------------------
-
-
-function setupmysql  {
-#setup mysql.txt to find the database servers
-if [ $SystemType = "Master_backend" ]
-then
-    if [ $MYTHDHCP = 0 ]
-    then
-        #this grabs eth0, as that is all thats supported.
-        #                dbhost=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'|head -n1`
-        dbhost=`ifconfig  | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'`
-        sed -e "s/^dbhost=.*$/dbhost=\"$dbhost\"/" /etc/systemconfig >/tmp/systemconfig.old
-        cp /tmp/systemconfig.old ${BASE}/etc/systemconfig
-        ##logic to change master_serverip and backend_serverip  in db
-        ${BASE}${MV_ROOT}/bin/restore_default_settings.sh  -c BECONFIG -s master -a $dbhost
-    else
-
-        dbhost=$MYTHIP
-        sed -e "s/^dbhost=.*$/dbhost=\"$dbhost\"/" /etc/systemconfig >/tmp/systemconfig.old
-        cp /tmp/systemconfig.old ${BASE}/etc/systemconfig
-        #logic to change dbhost in db
-        ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s master -a $dbhost
-    fi
-fi
-
-if [ $SystemType = "Slave_backend" ]
-then
-    if [ $MYTHDHCP = 0 ]
-    then
-        #this grabs eth0, as that is all thats supported.
-        #slavehost=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'|head -n1`
-        slavehost=`ifconfig  | grep -C1 $default_interface| grep -v $default_interface | cut -d: -f2 | awk '{ print $1}'`
-        ##logic to change backend_serverip in db
-        ${BASE}${MV_ROOT}/bin/restore_default_settings.sh  -c BECONFIG -s slave  -a $slavehost
-    else
-        slavehost=$MYTHIP
-
-        #logic to change backend_serverif in db
-        ${BASE}${MV_ROOT}/bin/restore_default_settings.sh -c BECONFIG -s slave  -a $slavehost
-    fi
-fi
-
-MYSQLTXT=${BASE}/usr/share/mythtv/mysql.txt
-if [ $SystemType = "Standalone" ]
-then
-    sed -e "s/^DBHostName=.*$/DBHostName="localhost"/" $TEMPLATES/mysql.txt > $MYSQLTXT
-else
-    sed -e "s/^DBHostName=.*$/DBHostName=$dbhost/" $TEMPLATES/mysql.txt > $MYSQLTXT
-fi
-rm ${BASE}/data/home/mythtv/.mythtv/mysql.txt
-rm ${BASE}${MV_ROOT}/bin/mythtv/.mythtv/mysql.txt
-if [ -f ${BASE}/data/home/mythtv/templates/mysql.txt ]
-then
-    cp ${BASE}/data/home/mythtv/templates/mysql.txt $MYSQLTXT
-fi
-
-chmod 755 $MYSQLTXT
-chown mythtv $MYSQLTXT
-
-}
-
-function setupmysqlnetwork(){
-MFILE=etc/my.cnf
-grep "#skip-networking" $BASE/$MFILE
-status=$?
-
-
-
-if [ $SystemType = "Standalone" ]
-then
-    sed -ie "s/^#skip-networking/skip-networking/g" $BASE/$MFILE
-    if [ $status = 0 ]
-    then
-        sudo sv restart mysql
-        echo "restarting mysql with   no network"
-    fi
-
-fi
-
-if [ $SystemType = "Master_backend" ]
-then
-    sed -ie "s/^skip-networking/#skip-networking/g" $BASE/$MFILE
-    if [ $status = 1 ]
-    then
-        sudo sv restart mysql
-        echo "restarting mysql with network"
-    fi
-
-fi
-
-
-}
-
-
-function settimezone {
-#set the timezone
-if [  x"$timezone" = x ]
-then
-    timezone="unknown"
-fi
-rm ${BASE}/etc/localtime
-echo $timezone
-ln -s "/usr/share/zoneinfo/$timezone"  ${BASE}/etc/localtime
-sed -e "s~^TIMEZONE=.*$~TIMEZONE=\"${timezone}\"~" ${BASE}/etc/rc.conf > $TEMPLATES/rc.conf
-
-# echo CLOCK="UTC" > ${BASE}/etc/conf.dclock
-# echo CLOCK_SYSTOCH="yes" >> ${BASE}/etc/conf.d/clock
-# echo TIMEZONE="$timezone" >> ${BASE}/etc/conf.d/clock
-cp $TEMPLATES/rc.conf /etc/rc.conf
-
-}
-
-
-function setupreceiver {
-case $ReceiverType in
-    tinker) echo "do nothing"
-    ;;
-    Serial) echo "setup serial lirc"
-    sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage
-    echo "lirc_serial   #lirc" >> ${BASE}/etc/modules.mythvantage
-    /usr/bin/load-modules-mythvantage.sh
-    ;;
-    Usb-imon) echo "setup receiver-usb-imon"
-    sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage
-    echo "lirc_imon     #lirc" >> ${BASE}/etc/modules.mythvantage
-    /usr/bin/load-modules-mythvantage.sh
-    ;;
-    Hauppauge) echo "setup hauppauge reciever (lirc_i2c)"
-    sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage
-    echo "lirc_i2c   #lirc" >> ${BASE}/etc/modules.mythvantage
-    cp $TEMPLATES/modules/lirc_i2c.conf ${BASE}/etc/modprobe.d/lirc_i2c.conf
-    rmmod lirc_i2c 2>/dev/null
-    load-modules-mythvantage.sh
-    ;;
-
-    *)   sed -i -e '/.*#lirc/d' ${BASE}/etc/modules.mythvantage
-    ;;
-esac
-
-
-}
-
-function setupremote {
-case $Remotetype in
-    no_remote) echo "No remote selected"
-    daemon_remove="lircd $daemon_remove"
-    ;;
-    tinker) echo "Remote in tinker mode"
-    ;;
-    *)  echo "Setup remote"
-    mv ${BASE}/etc/lircd.conf ${BASE}/etc/lircd.conf.`date +%Y-%m-%d-%H-%M`
-    cd $TEMPLATES/remotes/$Remotetype
-    for i in lircd*
-    do
-        cat $i >> ${BASE}/etc/lircd.conf
-    done
-    cp lircrc ${BASE}/etc/lircrc
-    if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ]
-    then
-        cat $TEMPLATES/LCD/$LCDtype/lircrc >> /etc/lircrc
-        cat $TEMPLATES/LCD/$LCDtype/lircd.conf >> /etc/lircd.conf
-    fi
-    if [ -f $TEMPLATES/transmit/$Blastertype/lircd.conf ]
-    then
-        cat $TEMPLATES/transmit/$Blastertype/lircd.conf  >> ${BASE}/etc/lircd.conf
-    fi
-    chmod 755 /etc/lircrc
-    daemon_add="lircd $daemon_add"
-    sv hup lircd
-    ;;
-esac
-
-}
-
-function setupblaster {
-#cd $TEMPLATES/transmit/$Blastertype
-#for i in lircd*
-#do
-#       cat lircd.conf  >> ${BASE}/etc/lircd.conf
-#done
-#  REMOTE_NAME${BASE}/usr/bin/change_chan.sh=`grep name lircd.conf* |awk -F" " ' { print $2 } '`
-sed -e "s/^REMOTE_NAME=.*$/REMOTE_NAME=${Blastertype} /" $TEMPLATES/change_chan.sh > ${BASE}/usr/bin/change_chan.sh
-chmod 755 ${BASE}/usr/bin/change_chan.sh
-#channel change script change
-setupremote
-
-}
-
-function setupevrouter {
-if [  x$UseEvrouter  = x1 ]
-then
-    case x$EvrouterConfig in
-        xtinker )
-        echo "do nothing for evrouter"
-        ;;
-        x ) echo "empty evrouter"
-        ;;
-        * ) echo "setup evrouter for $EvrouterConfig "
-        cp $TEMPLATES/evrouter/$EvrouterConfig /etc/evrouter.cfg
-        daemon_add="evrouter Xvfb $daemon_remove"
-
-        ;;
-    esac
-else
-    # disable evrouter
-    daemon_remove="evrouter Xvfb $daemon_remove"
-fi
-
-
-
-
-}
-
-function setupLCD {
-case x$LCDtype in
-    xtinker) echo "do nothing"
-    ;;
-    xno_lcd) echo "disabling lcd"
-    sv down lcdd
-    /usr/bin/load-modules-mythvantage.sh  UNLOAD LCD
-    sed -i -e '/.*#LCD/d' ${BASE}/etc/modules.mythvantage
-    daemon_remove="lcdd $daemon_remove"
-    ;;
-    x) echo "empty lcd" ;;
-
-    *) echo "setup lcd"
-    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
-        cp -f $TEMPLATES/LCD/$LCDtype/LCDd.conf /etc
-        # install="lcdproc $install"
-        daemon_add="lcdd $daemon_add"
-        /usr/bin/load-modules-mythvantage.sh
-        RESTART_FE="true"
-        RESTART_LCD="true"
-    fi
-    #check if lirc capable,if so then call setupremote
-    if [ -f $TEMPLATES/LCD/$LCDtype/lircrc ]
-    then
-        setupremote
-    fi
-    ;;
-esac
-
-}
-
-
-
-function scrubnfs {
-cp /etc/fstab $TEMPLATES/fstab.conf.template
-grep -v nfs   $TEMPLATES/fstab.conf.template > ${BASE}/etc/fstab
-   }
-
-   function setupfstab () {
-   #    	setupfstab $NFSserver $NFSshare $NFSmount
-   echo "$1 $2  nfs" >> ${BASE}/etc/fstab
-   if [ ! -e "$2" ]
-   then
-       mkdir -p "$2"
-       chown mythtv:mythtv "$2"
-   fi
-   if [ x$DCONFIG = x  ]
-   then
-       mount $2 &
-   fi
-
-}
-
-function setupncidclient
-{
-    sed -e "s/^set Host.*$/set Host $dbhost /" $TEMPLATES/ncid.conf.template >${BASE}/etc/ncid/ncid.conf
-}
-
-function setupnciddaemon {
-cp -f /etc/ncid/ncidd.conf $TEMPLATES/ncidd.conf.template
-sed -e "s/.*set ttyport.*$/set ttyport =  \/dev\/$nciddSerialPort /" $TEMPLATES/ncidd.conf.template >${BASE}/etc/ncid/ncidd.conf
-
-}
-
-function setupntp () {
-cat > ${BASE}/etc/ntp.conf  << EOF
-# default restrictions
-restrict default noquery notrust nomodify
-# NTP drift file - used to keep track of your system clocks
-# time deviation
-driftfile /etc/ntp.drift
-
-# NTP log file
-logfile /var/log/ntp.log
-# override the default restrictions here, servers that can query
-restrict 192.168.0.0 mask 255.255.0.0 nomodify
-restrict 10.0.0.0 mask 255.0.00 nomodify
-
-#servers to sync with
-EOF
-#this is used for backend or standlone types
-if [ $1 = "1" ]
-then
-    echo "server ntp1.cs.wisc.edu" >> ${BASE}/etc/ntp.conf
-    echo "server ntp3.sf-bay.org"  >> ${BASE}/etc/ntp.conf
-    echo "restrict ntp1.cs.wisc.edu noquery nomodify" >> ${BASE}/etc/ntp.conf
-    echo "restrict ntp3.sf-bay.org noquery nomodify" >> ${BASE}/etc/ntp.conf
-
-else
-    echo "server $dbhost" >> ${BASE}/etc/ntp.conf
-    echo "restrict $dbhost noquery nomodify" >> ${BASE}/etc/ntp.conf
-fi
-
-
-}
-
-function setupplugins (){
-
-pkglistinstall=""
-pkglistremove=""
-#default enabled
-for i in mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo
-do
-    eval pkgvalue=\$${i}
-
-    if [ x$pkgvalue = x ]
-    then
-        pkglistinstall="$pkglistinstall $i$postfix"
-    else
-        if [ x$pkgvalue = x1 ]
-        then
-            pkglistinstall="$pkglistinstall $i$postfix"
-        else
-            pkglistremove="$pkglistremove $i$postfix"
-        fi
-    fi
-
-
-
-done
-
-
-
-#default disabled
-for i in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather
-do
-    eval pkgvalue=\$${i}
-
-    if [ x$pkgvalue = x ]
-    then
-        pkglistremove="$pkglistremove $i$postfix"
-    else
-        if [ x$pkgvalue = x1 ]
-        then
-            pkglistinstall="$pkglistinstall $i$postfix"
-        else
-            pkglistremove="$pkglistremove $i$postfix"
-        fi
-    fi
-done
-install="$pkglistinstall $install"
-remove="$pkglistremove $remove"
-
-}
-function LCDcheck () {
-case x$LCDtype in
-    xtinker) echo "do nothing lcd "
-    ;;
-    xno_lcd) echo "no  lcd "
-    ;;
-    xxosd) install="xosd lcdproc $install"
-    ;;
-    x) echo "lcd empty "
-    ;;
-    *)
-    install="lcdproc $install"
-    ;;
-esac
-}
-
-
-function packages () {
-#see which plugins need to be installed
-echo "  Starting to install Packages"
-setupplugins
-LCDcheck
-if [ ! -f $PKGBLACKLIST ]
-then
-    touch $PKGBLACKLIST
-fi
-for i in $remove
-do
-    echo "-----------$i --------------"
-    grep -q $i $PKGBLACKLIST
-    if [ $? = 1 ]
-    then
-        pacman -Q $i 2>/dev/null
-        #VAR=`pacman -Q $i  2>&1 `
-        if [ $? = 0 ]
-        then
-            if [ $i = "mythweb$postfix" ]
-            then
-                pacman --noconfirm -R mythweb$postfix
-                echo removed $i
-            else
-                pacman --noconfirm -Rs $i
-                echo removed $i
-            fi
-        fi
-    else
-        echo "$i is black listed"
-    fi
-done
-# fi
-
-for i in $install
-do
-    echo "-----------$i --------------"
-    grep -q $i $PKGBLACKLIST
-    if [ $? = 1 ]
-    then
-        pacman -Q $i 2>/dev/null
-        #VAR=`pacman -Q $i  2>&1 `
-        #            echo $VAR |grep -vq error:
-
-        if [ ! $? = 0 ]
-        then
-            pacman --noconfirm -Sf $i
-            echo installed $i
-        else
-            echo "$i already installed"
-        fi
-    else
-        echo "$i is black listed"
-    fi
-done
-}
-
-function daemons {
-echo "Daemons on boot"
-
-for i in $daemon_remove
-do
-    sv check $i 1>/dev/null
-    status=$?
-    if [ $status -eq 0 ]
-    then
-        sv down $i
-    fi
-    remove_service.sh $i
-done
-
-
-for i in $daemon_add
-do
-    sv check $i 1>/dev/null
-    status=$?
-    add_service.sh $i
-
-    if [ $status -eq 0 ]
-    then
-        case $i in
-            mysql*) sv hup $i
-            ;;
-            mythback*) sv hup $i
-            ;;
-            lirc* ) sv hup $i
-            ;;
-            frontend) sv check frontend 1>/dev/null
-            ;;
-
-            smbd ) sv hup $i
-            ;;
-            nmbd ) sv hup $i
-            ;;
-            evrouter) sv restart $i
-            ;;
-            *)     sv down $i
-            sleep 1
-            sv up $i
-            ;;
-        esac
-    fi
-
-done
-
-}
-
-
-function services
-{
-    ser_install=""
-    ser_daemon_add=""
-    ser_remove=""
-    ser_daemon_remove=""
-    if [ x$UseEvrouter = x1 ]
-    then
-        ser_daemon_add="evrouter Xvfb $ser_daemon_add"
-    else
-        ser_daemon_remove="evrouter Xvfb $ser_remove"
-    fi
-
-    if [ x$RunDHCP = x1 ]
-    then
-        ser_daemon_add="dnsmasq  $ser_daemon_add"
-        ser_install="dnsmasq mvpmc  $ser_install"
-
-    else
-        ser_daemon_remove="dnsmasq  $ser_daemon_remove"
-        ser_remove="dnsmasq mvpmc  $ser_remove"
-    fi
-
-    if [ x$RunFrontend = x1 ]
-    then
-        ser_daemon_add="frontend hal ghosd  $ser_daemon_add"
-        ser_install="ghosd $ser_install"
-        showX=true
-    else
-        ser_daemon_remove="frontend hal  $ser_daemon_remove"
-        ser_remove="$ser_remove"
-    fi
-
-    if [ x$UseMythWEB = x1 ]
-    then
-        ser_install="lighttpd  mythweb$postfix $ser_install"
-        ser_daemon_add="lighttpd $ser_daemon_add"
-    else
-        ser_remove="mythweb$postfix $ser_remove"
-        ser_daemon_remove="$ser_daemon_remove"
-    fi
-
-    #samba
-    if [ x$UseSamba = x1 ]
-    then
-        ser_install="samba $ser_install"
-        ser_daemon_add="nmbd smbd $ser_daemon_add "
-        if [ x$Samba_mediareadonly = x1 ]
-        then
-            smreadonly="no"
-        else
-            smreadonly="yes"
-        fi
-
-        if [ x$Samba_homereadonly = x1 ]
-        then
-            shreadonly="no"
-        else
-            shreadonly="yes"
-        fi
-
-        if [ ! -d ${BASE}/etc/samba ]
-        then
-            mkdir ${BASE}/etc/samba
-        fi
-
-        if [  -f ${BASE}/data/home/mythtv/templates/smb.conf  ]
-        then
-            install -D -m755  ${BASE}/data/home/mythtv/templates/smb.conf   ${BASE}/etc/samba/smb.conf
-        else
-            sed -e "s/^.*workgroup =.*$/ workgroup = $Samba_domain/g " \
-            -e "s/^.*server string = .*$/ server string = $hostname/g" $TEMPLATES/samba/smb.conf.template > ${BASE}/etc/samba/smb.conf
-
-            if [ x$Samba_media = "x1" ]
-            then
-                echo "include =  /etc/samba/smb.conf.media" >> ${BASE}/etc/samba/smb.conf
-                sed -e "s/^.*writeable.*$/writeable = $smreadonly/g" $TEMPLATES/samba/smb.conf.media > ${BASE}/etc/samba/smb.conf.media
-            fi
-
-            if [ x$Samba_home = "x1" ]
-            then
-                echo "include =  /etc/samba/smb.conf.home" >> ${BASE}/etc/samba/smb.conf
-                sed -e "s/^.*writeable.*$/writeable = $shreadonly/g" $TEMPLATES/samba/smb.conf.home > ${BASE}/etc/samba/smb.conf.home
-
-            fi
-
-        fi
-    else
-        ser_remove="samba $ser_remove"
-        ser_install="smbclient $ser_install"
-        ser_daemon_remove="smbd nmbd  $ser_daemon_remove"
-    fi
-
-
-    if [ x$UseNFS = x1 ]
-    then
-        ser_install="nfs-utils portmap $ser_install"
-        ser_daemon_add="nfsd nfslock portmap $ser_daemon_add"
-        sed -e "s/REPLACEME/*/g" $TEMPLATES/exports.template > ${BASE}/etc/exports
-
-    else
-        ser_remove="$ser_remove"
-        ser_daemon_remove="nfsd nfslock  $ser_daemon_remove"
-    fi
-
-    if [ x$Runncidd = x1 ]
-    then
-        ser_daemon_add="ncidd ncid $ser_daemon_add"
-        ser_install="ncid $ser_install"
-    else
-        ser_daemon_remove="ncidd ncid $ser_daemon_remove"
-        ser_remove="ncid $ser_remove"
-    fi
-    if [ x$UseEvrouter = x1 ]
-    then
-        ser_install="evrouter Xvfb $ser_install"
-    else
-        ser_remove="evrouter $ser_remove"
-    fi
-    #Setting the default, just to avoid the or statement..
-    if [ x$UseHobbit = x ]
-    then
-        UseHobbit=1
-    fi
-
-    if [ x$UseHobbit = x1 ]
-    then
-        case $SystemType in
-            Standalone|Master_backend )
-            ser_daemon_add="hobbit $ser_daemon_add"
-            ser_install="hobbitserver $ser_install"
-            ;;
-
-            *)   ser_daemon_add="hobbit-client $ser_daemon_add"
-            ser_install="hobbit-client $ser_install"
-            ;;
-        esac
-    else
-        ser_daemon_remove="hobbit hobbit-client $ser_daemon_remove"
-        ser_remove="hobbit-client hobbitserver $ser_remove"
-        rm -f /data/srv/httpd/htdocs/hobbit/index.html
-
-    fi
-
-
-
-}
-
-
-
-function setupsleep {
-if [ x$AutoShutdown = x1  ]
-then
-    cronshutdowntime=""
-    if  [ x$Shutdowntime != x-1 ]
-    then
-        cronshutdowntime=$Shutdowntime
-    fi
-    if [ x$Shutdowntime2 != x-1 ]
-    then
-        if [ x$cronshutdowntime = x ]
-        then
-            cronshutdowntime=$Shutdowntime2
-        else
-            cronshutdowntime="${cronshutdowntime},${Shutdowntime2}"
-        fi
-    fi
-
-    sed -e "s/HOUR/$cronshutdowntime/g" $TEMPLATES/cron.template | crontab - -u mythtv
-else
-    sed -e "/00 HOUR.*/d" $TEMPLATES/cron.template | crontab - -u mythtv
-fi
-
-}
-
-
-function setuppacman () {
-#setup link to httpd dir
-echo "Configuring pacman"
-if [ ! x$1 = x ]
-then
-    ln -s ${BASE}/data/var ${BASE}/data/srv/httpd/htdocs/repo
-    echo "creating the link for the pacman repo mirror"
-fi
-
-for i in mv-core mv-core-testing mv-extra mv-extra-testing
-do
-    echo "[$i]"  > ${BASE}/etc/pacman.d/$i
-    #add mirror if needed
-    if [ x$PKG_MIRROR = x1 ]
-    then
-        echo " Server = http://$dbhost/repo/$i " >> ${BASE}/etc/pacman.d/$i
-    fi
-    #add user templates
-    USERTEMPLATES="/data/home/mythtv/templates"
-    if [ -f $USERTEMPLATES/sources/$i ]
-    then
-        echo "Adding user  $i"
-        cat $USERTEMPLATES/sources/$i  >> ${BASE}/etc/pacman.d/$i
-    fi
-    cat $TEMPLATES/sources/$i  >> ${BASE}/etc/pacman.d/$i
-    echo "setting local mirror to $dbhost for $i "
-done
-
-#sed -e "s/REPLACEME/$dbhost/g"  $TEMPLATES/sources/svc_pkg > /etc/pacman.d/svc_pkg
-
-
-}
-
-
-function setupzipcode () {
-if [ ! x$zipcode = x ]
-then
-    ${MV_ROOT}/bin/restore_default_settings.sh -c ZIP  -z $zipcode
-fi
-}
-
-function process_nfsmap () {
-#first look for a local copy of nfsmap
-if [ $1 = noip ]
-then
-    if [ -f /data/home/mythtv/templates/nfsmap ]
-    then
-        NFSMAP="/data/home/mythtv/templates/nfsmap"
-    else
-        mv -f /tmp/nfsmap /tmp/nfsmap.old
-        wget -O /tmp/nfsmap http://$dbhost:1337/templates/nfsmap
-        if [ $? = 0 ]
-        then
-            NFSMAP="/tmp/nfsmap"
-        fi
-    fi
-else
-    mv -f /tmp/nfsmap /tmp/nfsmap.old
-    wget -O /tmp/nfsmap http://$1:1337/templates/nfsmap
-    if [ $? = 0 ]
-    then
-        NFSMAP="/tmp/nfsmap"
-    fi
-fi
-
-if [ -f $NFSMAP ]
-then
-    #read in file
-    while read line
-    do
-        NFSserver=`echo "$line"|cut -d" " -f1`
-        NFSmount=`echo "$line"|cut  -d" " -f2`
-        setupfstab $NFSserver $NFSmount
-    done <$NFSMAP
-else
-    echo "couldn't find nfsmap"
-
-fi
-}
-
-function setupcnfs () {
-scrubnfs
-if [ $HaveCentralNFS = "yes" ]
-then
-    case x$NFSserver in
-        xfile:nfsmap )
-        process_nfsmap noip
-        ;;
-        *:nfsmap )
-        nfsmapip=`echo "$NFSserver" | cut -d: -f1 `
-        process_nfsmap $nfsmapip
-        ;;
-        *)  setupfstab $NFSserver $NFSmount
-    esac
-
-    #if [ ! x"$NFSserver" = "xfile:nfsmap" ]
-    #then
-    #    setupfstab $NFSserver $NFSmount
-    #else
-    #    process_nfsmap
-    #fi
-else
-    echo "fe_nfs"
-    #if no central nfs found, then use the mbe.
-    if [ $SystemType = "Frontend_only" ]
-    then
-        setupfstab ${dbhost}:/data/media /data/media
-    fi
-fi
-
-}
-
-function setupbootsplash () {
-
-if  [ x$Usebootsplash = x1 ]
-then
-    COMMAND="%s/^default.*0/default 1/g"
-else
-    COMMAND="%s/^default.*1/default 0/g"
-fi
-
-ex ${BASE}/boot/grub/menu.lst <<EOF
-:$COMMAND
-:wq
-EOF
-
-}
-
-function setuphobbitclient () {
-COMMAND="%s/^BBDISP=.*$/BBDISP=$dbhost/g"
-
-
-ex ${BASE}/data/srv/hobbit/client/etc/hobbitclient.cfg <<EOF
-:$COMMAND
-:wq
-EOF
-
-}
-
-function setupSyslog () {
-COMMAND="%s/^destination d_remote.*$/destination d_remote \{tcp\(\"${dbhost}\" port\(514\)\) \;\} \;/"
-ex ${BASE}/etc/syslog-ng.conf <<EOF
-:$COMMAND
-:wq
-EOF
-
-
-
-
-}
-
-function setupfuncminion () {
-COMMAND="%s/^certmaster.*$/certmaster = ${dbhost}/"
-ex ${BASE}/etc/certmaster/minion.conf <<EOF
-:$COMMAND
-:wq
-EOF
-}
-
-function setupDNSMASQ(){
-if [ x$RunDHCP = x1   ]
-then
-    echo "DNSMASQ setup"
-
-    #set default route to my GW
-    COMMAND="%s/^dhcp-option=3.*$/dhcp-option=3,${route}/"
-    ex ${BASE}/etc/dnsmasq.conf <<EOF
-    :$COMMAND
-    :wq
-EOF
-
-    #setup dns to my ip
-    COMMAND="%s/^dhcp-option=6.*$/dhcp-option=6,${MYTHIP}/"
-    ex ${BASE}/etc/dnsmasq.conf <<EOF
-    :$COMMAND
-    :wq
-EOF
-
-
-    #change nfsroot to my ip
-    COMMAND="%s/nfsroot=.*:/nfsroot=${MYTHIP}:/"
-    ex ${BASE}/data/srv/tftp/pxelinux.cfg/default <<EOF
-    :$COMMAND
-    :wq
-EOF
-
-    #add 127.0.0.1 to /etc/resolv.conf
-    echo "search lan" > ${BASE}/etc/resolv.conf
-    echo "nameserver 127.0.0.1" >> ${BASE}/etc/resolv.conf
-    echo "nameserver $nameserver" >> ${BASE}/etc/resolv.conf
-fi
-
-#setup dongle.config
-COMMAND="%s/mvpmc -f .*/mvpmc -f \/etc\/helvR10.fon -s ${MYTHIP} \& /"
-ex ${BASE}/data/srv/tftp/dongle.bin.config <<EOF
-:$COMMAND
-:wq
-EOF
-}
-
-function reloadfe(){
-PID=`ps -ef |grep mythfrontend|grep -v grep |awk  '{print $2 }'`
-/usr/bin/backend_control.sh  clearcache  behost $dbhost
-if [ x$RESTART_LCD = xtrue ]
-then
-    killall -9 mythlcdserver
-fi
-kill -s USR1 $PID
-
-}
-
-
-function setup_db (){
-
-install="mysql avahli"
-daemon_add="mysql"
-packages
-daemons
-status=1
-mysqlstatus=1
-while [ ! $status = 0  ]
-do
-    sv stop mysql
-    sleep 1
-    sv  start mysql
-    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
-            if [ $SystemType = "Master_backend" ]
-            then
-                $MV_ROOT/bin/restore_default_settings.sh  -c  BECONFIG  -s master  -a $dbhost
-            fi
-            #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 ]
-            then
-                pacman --noconfirm -R webcalendar
-                pacman --noconfirm --nodeps  -S webcalendar
-                status=0
-            fi
-        fi
-    fi
-done
-}
-
-function setup_web_auth {
-    if [ x$UseMythWEB_auth = x1 ]
-    then
-        #enable auth
-        sed -ie "s/^.*include.*auth-inc.conf.*$/include \"\/etc\/lighttpd\/auth-inc.conf\"/g" /etc/lighttpd/lighttpd.conf
-    else
-         #disable auth
-        sed -ie "s/^.*include.*auth-inc.conf.*$/#include \"\/etc\/lighttpd\/auth-inc.conf\"/g" /etc/lighttpd/lighttpd.conf
-    fi
-    sudo sv restart lighttpd
-
-}
-
-#----------------------------------------------------MAIN PROGRAM-------------------------------------------
-#misc,sleep,hostype,advanced,audio
-eval LAST=\$$#
-LIST=`echo $LAST | tr , " " `
-
-hosttypechange="false"
-
-
-for i in  $LIST
-do
-    echo $i
-    case $i in
-        misc) showmisc="true"
-        ;;
-        sleep) showsleep="true"
-        ;;
-        hostype) showhost="true"
-        showX="true"
-        ;;
-        hostypec) hosttypechange="true"
-        ;;
-        advanced) showadvanced="true"
-        #showhost="true"
-        ;;
-        audio) showaudio="true"
-        ;;
-        network) shownetwork="true"
-        ;;
-        advancedX)  showX="true"
-        ;;
-	webuser)  setup_web_auth
-        ;;
-        restartfe)  killall -9 mythfrontend
-        killall -9 mythwelcome
-        exit 0
-        ;;
-        reloadfe)  reloadfe
-        ;;
-
-        this_is_install) MV_NEW_INSTALL="true"
-        ;;
-        NETINSTALL) RESTART_NETWORK="false"
-        NET_INSTALL="true"
-
-    esac
-done
-
-if [ x$MV_NEW_INSTALL = xtrue ]
-then
-    hosttypechange="false"
-fi
-
-
-
-#  exit 1
-
-#network
-if [ x"$shownetwork" = xtrue ]
-then
-    OLDHOSTNAME=`hostname`
-    NEWHOSTNAME=$hostname
-    if [ ! $OLDHOSTNAME = $NEWHOSTNAME ]
-    then
-        if [ ! x$NET_INSTALL = xtrue ]
-        then
-            ${MV_ROOT}/bin/restore_default_settings.sh  -cuhostname -o -h$OLDHOSTNAME
-            RESTART_FE="true"
-            hostname $NEWHOSTNAME
-            if [ $SystemType != "Frontend_only" ]
-            then
-                sv restart mythbackend
-            fi
-        fi
-    fi
-
-    setup_network
-    vnc_check
-    if [   x$USEVNC = x1  ]
-    then
-        echo "reloading network"
-        ${BASE}/etc/net/scripts/network.init reload
-        ${BASE}/etc/net/scripts/network.init restart
-    else
-        echo "netboot/vnc, will not restart network"
-    fi
-fi
-
-
-if [ x$showhost = "xtrue" ]
-then
-    case $SystemType in
-        Standalone)
-        setupntp 1
-        services
-        if [ x$hosttypechange = "xtrue" ]
-        then
-            setup_db
-        fi
-        if [ -f   ${BASE}/etc/avahi/services/mysql.service     ]
-        then
-            rm -f ${BASE}/etc/avahi/services/mysql.service
-            sudo sv restart avahi
-        fi
-
-        install="lighttpd mysql mythdb-initial  avahli  myth2ipod mythtv-status  portmap local-website webcalendar  php $ser_install"
-        remove="none $ser_remove"
-
-        daemon_add="lighttpd mysql  mythbackend  avahi portmap $ser_daemon_add"
-        daemon_remove="none $ser_daemon_remove"
-
-        ;;
-        Master_backend)
-        setupntp 1
-        services
-
-        if [  !  -f   ${BASE}/etc/avahi/services/mysql.service     ]
-        then
-            mkdir  ${BASE}/etc/avahi/services
-            cp $TEMPLATES/mysql.service  ${BASE}/etc/avahi/services/mysql.service
-            sudo sv restart  avahi
-        fi
-
-        install="lighttpd  local-website mysql  mythdb-initial webcalendar   php avahi portmap myth2ipod mythtv-status func $ser_install  "
-        remove="$ser_remove"
-
-        daemon_add="lighttpd mysql mythbackend  avahi   portmap certmaster $ser_daemon_add"
-        daemon_remove="$ser_daemon_remove"
-        ;;
-        Slave_backend)
-        setupntp 0
-        services
-        if [ x$hosttypechange = "xtrue" ]
-        then
-            setup_db
-        fi
-        if [    -f   ${BASE}/etc/avahi/services/mysql.service     ]
-        then
-            rm -f ${BASE}/etc/avahi/services/mysql.service
-            sudo sv restart  avahi
-        fi
-
-        #cp $TEMPLATES/mysql.service  ${BASE}/etc/avahi/services/mysql.service
-        install="mysql  avahi func $ser_install  "
-        remove=" $ser_remove"
-
-        daemon_add="mythbackend avahi portmap  mythtv-status  funcd $ser_daemon_add"
-        daemon_remove="$ser_daemon_remove"
-        ;;
-        Frontend_only)
-        #Add values for services
-        setupntp 0
-        services
-        if [  -f   ${BASE}/etc/avahi/services/mysql.service     ]
-        then
-            rm -f ${BASE}/etc/avahi/services/mysql.service
-            sudo sv restart  avahi
-        fi
-
-        install="libmysqlclient mysql-clients portmap avahi func  $ser_install"
-        remove="mysql local-website lighttpd php mythweb$postfix $ser_remove"
-
-        daemon_add="avahi portmap funcd $ser_daemon_add "
-        daemon_remove="mysql lighttpd  mythbackend  $ser_daemon_remove"
-        ;;
-
-
-    esac
-    setupSyslog
-    setupfuncminion
-fi
-
-#apply these to ALL types
-
-
-
-
-#systemtype
-
-if [ x$showhost = "xtrue" ]
-then
-    setupmysqlnetwork
-    setupmysql
-    setupremote
-    #grab the new dbhost key
-    /usr/bin/grabkey.py
-fi
-
-#audio
-
-if [ x$showaudio = "xtrue" ]
-then
-    #setupsoundtype
-    if [ ! x$Audiotype = xtinker  ]
-    then
-        ${MV_ROOT}/bin/soundconfig.sh -t real -i $Audiotype -d $SoundDevice
-    fi
-fi
-
-#should always run
-packages
-
-#misc
-
-if [ x$showmisc = "xtrue" ]
-then
-    setupzipcode
-    settimezone
-    setupcnfs
-fi
-
-#sleep
-if [ x$showsleep = "xtrue" ]
-then
-    setupsleep
-fi
-
-if [ x$showX = "xtrue" ]
-then
-    ${MV_ROOT}/bin/xconfig.sh
-fi
-
-#advanced
-if [ x$showadvanced = "xtrue" ]
-then
-    if [ ! x$showhost = "xtrue" ]
-    then
-        services
-        install="none $ser_install"
-        remove="none $ser_remove"
-        daemon_add=" none $ser_daemon_add"
-        daemon_remove="none $ser_daemon_remove"
-        packages
-
-
-        if [ x$SystemType = xMaster_backend ]
-        then
-            setuppacman link
-        else
-            setuppacman
-        fi
-    fi
-    setupncidclient
-    setupnciddaemon
-    setupbootsplash
-    setuphobbitclient
-    setupreceiver
-    setupevrouter
-    setupblaster
-    setupLCD
-    setupDNSMASQ
-
-fi
-
-
-
-daemons
-#add check for lcd, and restart if needed.
-
-if [ x$RESTART_FE = xtrue ]
-then
-    reloadfe
-fi
-
-
+postfix=`cat ${BASE}/usr/local/share/mythtv/.releasetype`
 
+systemconfig.py -m $@
+rc=$?
+echo "systemconfig.py exit code $rc"
+exit $rc
 
 
-case $SystemType in
-    Standalone)  smoltsystem=6
-    MVRELEASE="$MVRELEASE  (Standalone)"
-    ;;
-    Master_backend)
-    if [ x$RunFrontend = x1 ]
-    then
-        smoltsystem=2
-        MVRELEASE="$MVRELEASE  (MBE with Frontend)"
-    else
-        smoltsystem=1
-        MVRELEASE="$MVRELEASE  (MBE)"
-    fi
-    ;;
-    Slave_backend)
-    if [ x$RunFrontend = x1 ]
-    then
-        smoltsystem=5
-        MVRELEASE="$MVRELEASE  (SLAVE  with Frontend)"
-    else
-        smoltsystem=5
-        MVRELEASE="$MVRELEASE  (SLAVE)"
-    fi
-    ;;
-    Frontend_only)
-    smoltsystem=3
-    MVRELEASE="$MVRELEASE  ( Frontend only)"
-    ;;
-esac
-echo $MVRELEASE > /etc/os_myth_release
-echo "systemtype=$smoltsystem" > /data/home/mythtv/.mythtv/smolt.info 2>/dev/null
-echo "remote=$Remotetype" >> /data/home/mythtv/.mythtv/smolt.info 2>/dev/null
 
diff --git a/abs/mv-core/MythVantage-config/timezip.py b/abs/mv-core/MythVantage-config/timezip.py
index 18f338f..bf6b389 100755
--- a/abs/mv-core/MythVantage-config/timezip.py
+++ b/abs/mv-core/MythVantage-config/timezip.py
@@ -1,4 +1,5 @@
 #!/usr/bin/python
+# -*- coding: utf-8 -*-
 # import MySQL module
 #used to import the zipcode/timezone/nfs info fromMBE
 import MySQLdb
@@ -45,7 +46,10 @@ def selectvars():
     # execute SQL statement
     cursor.execute("select hostname from settings where value='BackendServerIP' and data=(%s)",(masterdb))
     result = cursor.fetchone()
-    BEhostname=result[0]
+    try:
+        BEhostname=result[0]
+    except TypeError:
+        BEhostname=""
 
     cursor.execute("select data from settings where value='HostZipcode' and hostname=(%s)",(BEhostname))
     result = cursor.fetchone()
@@ -87,7 +91,7 @@ def selectvars():
     try:
         tz_region=result[0]
     except TypeError:
-        tz=""
+        tz_region=""
     tempsubregion="HostTimeZoneRegion_" + tz_region
 
     cursor.execute("select data from settings where value=%s and hostname=(%s)",(tempsubregion,BEhostname))
diff --git a/abs/mv-core/MythVantage-config/xconfig.sh b/abs/mv-core/MythVantage-config/xconfig.sh
index eaa84b6..2fad821 100755
--- a/abs/mv-core/MythVantage-config/xconfig.sh
+++ b/abs/mv-core/MythVantage-config/xconfig.sh
@@ -1,51 +1,64 @@
 #!/bin/bash
+#SET DISPLAYCARD to force a cardtype
+#SET DISPLAYRES to force Xres, ENV takes precendent over cmdline
+#displayres=cmdline
 #NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel unichrome-dri xf86-video-unichrome xf86-video-mga xf86-video-savage xf86-video-trident"
-NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident"
+NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident unichrome-dri xf86-video-openchrome"
 BASE=""
 . /etc/profile
 NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt"
 #TEMPLATES="/usr/share/templates"
+MYTHHOME=$BASE/home/mythtv
 
 function Xvalues {
     CMDLINE=$(cat /proc/cmdline)
     echo "$CMDLINE" | grep -q forceXvesa
-    if [ $? = 0 ]
+    if [ $? = 0  ]
     then
         VGACARDTYPE=vesa
+        Xcardtype=$VGACARDTYPE
     else
         VGACARDTYPE=`lspci | grep -i vga | sort -r | head -n 1 | cut -d: -f3 | cut -d" " -f2`
         VGAPCIID=`lspci | grep -i vga | sort -r | head -n 1 | cut -d" " -f1`
         CARDID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f2`
         VENDORID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f1`
     fi
-    echo "$VGACARDTYPE"
+    #force VGACARDTYPE
+    if [ ! x$DISPLAYCARD = x ]
+    then
+        VGACARDTYPE=$DISPLAYCARD
+        Xcardtype=$VGACARDTYPE
+    fi
+    echo "Will use $VGACARDTYPE"
     currentmode=`cat "$BASE/etc/X11/xorg.conf" | grep Modes | awk -Fs '{ print $2 }'`
 }
 
 function presetupX {
-    if [ "$XUseAdvanced" = 1 ]
+    if [ -f /etc/sysconfig/IGNORE_X ]
     then
+        echo "Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X"
+        return 1
+    else
         if  [ "$XIgnoreConfig" = 1 ]
         then
             echo "Using User supplied X"
-            if [ -f "$BASE/data/home/mythtv/templates/xorg.user" ]
+            if [ -f "$MYTHHOME/templates/xorg.user" ]
             then
-                cp -f "$BASE/data/home/mythtv/templates/xorg.user" "$XORG_CONF"
+                cp -f "$MYTHHOME/templates/xorg.user" "$XORG_CONF"
             else
                 echo "Didn't find the file"
-                echo "Copy your config file to $BASE/data/home/mythtv/templates/xorg.use" >> "$XORG_CONF"
+                echo "Copy your config file to $MYTHHOME/templates/xorg.user" > "$XORG_CONF"
             fi
         else
-            setupAdvancedX
-        fi
-    else
-        if [ -f /etc/sysconfig/IGNORE_X ]
-        then
-            echo "Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X"
-        else
-            setupX
+            if [ "$XUseAdvanced" = 1 ]
+            then
+                setupAdvancedX
+            else
+                setupX
+            fi
         fi
     fi
+
 }
 
 function setupAdvancedX {
@@ -53,7 +66,7 @@ function setupAdvancedX {
     Xcategory=`echo "$Xresadvanced" | cut -d_ -f1`
     Xres=`echo "$Xresadvanced" | cut -d_ -f2`
     echo "$Xcategory"
-    if [ "$Xcategory" = "Nvidia" ]
+    if [ "$Xcategory" = "nVidia Modeline" ]
     then
         Xres=""
         if [ "$XnVidia1080p" = "1" ]
@@ -79,7 +92,7 @@ function setupAdvancedX {
     fi
 #    echo $ML
     case $Xcardtype in
-        NVIDIA|nVidia)
+        NVIDIA|nVidia|nvidia)
             case $Xconnection in
                 DVI)    ConnectedMonitor=DFP ;;
                 vga)    ConnectedMonitor=CRT;;
@@ -175,7 +188,12 @@ function setupX {
     then
         case $VGACARDTYPE in
             nVidia)
-                sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.nvidia" > "$XORG_CONF"
+                if [ ${Xres} = Auto ]
+                then
+                    sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.nvidia" > "$XORG_CONF"
+                else
+                    sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.nvidia" > "$XORG_CONF"
+                fi
                 if [ "$TESTMODE" != "test" ]
                 then
                     #nvidia check right here
@@ -184,11 +202,13 @@ function setupX {
                     then
                         #install 96xx drivers
                         echo "installing nvidia 96xx drivers"
+                        pacman --noconfirm  -Rd libgl > /dev/null 2>&1
                         pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                         pacman --noconfirm  -S nvidia-96xx nvidia-96xx-utils  > /dev/null 2>&1
                     else
                         #install latest drivers
                         echo "installing current nvidia drivers"
+                        pacman --noconfirm  -Rd libgl > /dev/null 2>&1
                         pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                         pacman --noconfirm  -S nvidia nvidia-utils > /dev/null 2>&1
                     fi
@@ -205,7 +225,12 @@ function setupX {
                 # xf86-video-openchrome
                 # xf86-video-unichrome
                 # There is also a seperate driver for the Unichrome Pro
-                sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.via" > "$XORG_CONF"
+                if [ ${Xres} = Auto ]
+                then
+                    sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.via" > "$XORG_CONF"
+                else
+                    sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.via" > "$XORG_CONF"
+                fi
                 if [ "$TESTMODE" != "test" ]
                 then
                     if [ "$OPENCHROME" = "1" ]
@@ -236,8 +261,13 @@ function setupX {
                 fi
                 ;;
 
-            Intel)
-                sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.intel" > "$XORG_CONF"
+            Intel|intel)
+               if [ ${Xres} = Auto ]
+                then
+                    sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.intel" > "$XORG_CONF"
+                else
+                    sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.intel" > "$XORG_CONF"
+                fi
                 if [ "$TESTMODE" != "test" ]
                 then
                     pacman --noconfirm -R nvidia-utils > /dev/null 2>&1
@@ -247,7 +277,12 @@ function setupX {
                 ;;
 
             vesa|InnoTek)
-                sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.vesa" > "$XORG_CONF"
+                if [ ${Xres} = Auto ]
+                then
+                    sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.vesa" > "$XORG_CONF"
+                else
+                    sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.vesa" > "$XORG_CONF"
+                fi
                 ;;
 
             *)
@@ -257,11 +292,21 @@ function setupX {
                 if [ -f "$XCONF" ]
                 then
                     echo "Using $XCONF"
-                    grep -v Modes "$XCONF" | sed -e "/Depth.*16/a Modes \"${Xres}\" " -e "/Depth.*24/a Modes \"${Xres}\""     -e 's/dev\/mouse/dev\/psaux/g'> "$XORG_CONF"
+                    if [ ${Xres} = Auto ]
+                    then
+                        grep -v Modes "$XCONF" | sed -e 's/dev\/mouse/dev\/psaux/g'> "$XORG_CONF"
+                    else
+                        grep -v Modes "$XCONF" | sed -e "/Depth.*16/a Modes \"${Xres}\" " -e "/Depth.*24/a Modes \"${Xres}\""     -e 's/dev\/mouse/dev\/psaux/g'> "$XORG_CONF"
+                    fi
                 elif [ -f "$XCONFB" ]
                 then
                     echo "Using $XCONFB"
-                    sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$XCONFB" > "$XORG_CONF"
+                    if [ ${Xres} = Auto ]
+                    then
+                        sed -e "/^.*Modes.*$/d" "$XCONFB" > "$XORG_CONF"
+                    else
+                        sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$XCONFB" > "$XORG_CONF"
+                    fi
                 else
                     echo "Xorg configuration failed"
                 fi
@@ -296,6 +341,22 @@ else
     else
         Xres="800x600"
     fi
+    CMDLINE=$(cat /proc/cmdline)
+    echo $CMDLINE | grep -q displayres
+    if [ $? = 0 ]
+    then
+        TEMPVAR=${CMDLINE#*displayres=}
+        DSR=${TEMPVAR%% *}
+    fi
+    if [ ! x$DSR = x ]
+    then
+        Xres=$DSR
+    fi
+    if [ ! x$DISPLAYRES = x ]
+    then
+        Xres=$DISPLAYRES
+    fi
+
     XORG_CONF="/etc/X11/xorg.conf"
     XVMC_CONFIG="/etc/X11/XvMCConfig"
 fi
diff --git a/abs/mv-core/hobbit-client/client/bin/bb b/abs/mv-core/hobbit-client/client/bin/bb
index 1202ab4..0fa4434 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/bb and b/abs/mv-core/hobbit-client/client/bin/bb differ
diff --git a/abs/mv-core/hobbit-client/client/bin/bbcmd b/abs/mv-core/hobbit-client/client/bin/bbcmd
index 3dd325b..a18e54c 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/bbcmd and b/abs/mv-core/hobbit-client/client/bin/bbcmd differ
diff --git a/abs/mv-core/hobbit-client/client/bin/bbdigest b/abs/mv-core/hobbit-client/client/bin/bbdigest
index 9f607e9..c073c01 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/bbdigest and b/abs/mv-core/hobbit-client/client/bin/bbdigest differ
diff --git a/abs/mv-core/hobbit-client/client/bin/bbhostgrep b/abs/mv-core/hobbit-client/client/bin/bbhostgrep
index e981aee..d46fd7b 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/bbhostgrep and b/abs/mv-core/hobbit-client/client/bin/bbhostgrep differ
diff --git a/abs/mv-core/hobbit-client/client/bin/bbhostshow b/abs/mv-core/hobbit-client/client/bin/bbhostshow
index 2157ccb..ea5633a 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/bbhostshow and b/abs/mv-core/hobbit-client/client/bin/bbhostshow differ
diff --git a/abs/mv-core/hobbit-client/client/bin/clientupdate b/abs/mv-core/hobbit-client/client/bin/clientupdate
index 9db22bd..761feae 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/clientupdate and b/abs/mv-core/hobbit-client/client/bin/clientupdate differ
diff --git a/abs/mv-core/hobbit-client/client/bin/hobbitlaunch b/abs/mv-core/hobbit-client/client/bin/hobbitlaunch
index 9104dda..ab2185c 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/hobbitlaunch and b/abs/mv-core/hobbit-client/client/bin/hobbitlaunch differ
diff --git a/abs/mv-core/hobbit-client/client/bin/logfetch b/abs/mv-core/hobbit-client/client/bin/logfetch
index 0b71938..40e36a0 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/logfetch and b/abs/mv-core/hobbit-client/client/bin/logfetch differ
diff --git a/abs/mv-core/hobbit-client/client/bin/msgcache b/abs/mv-core/hobbit-client/client/bin/msgcache
index 33daa51..3f8c57d 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/msgcache and b/abs/mv-core/hobbit-client/client/bin/msgcache differ
diff --git a/abs/mv-core/hobbit-client/client/bin/orcahobbit b/abs/mv-core/hobbit-client/client/bin/orcahobbit
index 9fcb227..05a359e 100755
Binary files a/abs/mv-core/hobbit-client/client/bin/orcahobbit and b/abs/mv-core/hobbit-client/client/bin/orcahobbit differ
diff --git a/abs/mv-core/mp_all.sh b/abs/mv-core/mp_all.sh
new file mode 100644
index 0000000..dd310fc
--- /dev/null
+++ b/abs/mv-core/mp_all.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+pkgver=21228
+pkgrel=1
+
+# NOTE: Make sure to build and install mythtv first BEFORE building anything else
+buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
+#buildlist=(mythtv-release-fixes Midnight-blue Midnight-wide MythVanage-mythmenu basic-amber basic-blue basic-green basic-purple basic-red  mytharchive mythbrowser mythcontrols mythflix mythgallery mythgame mythmovietime mythmusic mythnews mythphone mythsmolt mythtv-themes mythvideo mythweather mythweb syth-lacquer-clean syth-lacquer-wide)
+buildlist=(Midnight-blue Midnight-wide MythVanage-mythmenu basic-amber basic-blue basic-green basic-purple basic-red  mytharchive mythbrowser mythcontrols mythflix mythgallery mythgame mythmovietime mythmusic mythnews mythphone mythsmolt mythtv-themes mythvideo mythweather mythweb syth-lacquer-wide)
+buildlist=(MythVantage-config MythVantage-system certmaster confuse dnsmasq e16-myth-settings enlightenment evrouter func ghosd graphviz hobbit-client hobbitmon keylaunch lcdproc lighttpd local-website mediadirs mythdb-initial mythtv-status mythvantage-live ncid openssh runit-scripts-mv syslog-ng tilda webcal)
+# build and install
+for i in `echo ${buildlist[@]:0}`
+do
+	echo "---------- building $i ----------"
+	cd ./$i
+
+	# set svn version in the PKGBUILD
+#	sed -i s/^pkgver=.*/pkgver=$pkgver/ PKGBUILD
+#	sed -i s/^pkgrel=.*/pkgrel=$pkgrel/ PKGBUILD
+
+	# make the package
+	mp -sr --noconfirm  -f  --holdver || exit 1
+	pacman -Sy
+	# clean up afterwards
+	rm -rf pkg
+	rm -f *~
+
+	cd ..
+done
+
+echo ""
+echo "DONE!"
diff --git a/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD b/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD
deleted file mode 100755
index 7c09fcf..0000000
--- a/abs/mv-core/myth/release-fixes/Midnight-blue/PKGBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-pkgname=Midnight-blue
-pkgver=1
-pkgrel=23
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/Midnight-blue.tgz)
-arch=i686
-md5sums=()
-
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD b/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD
deleted file mode 100755
index 73fb965..0000000
--- a/abs/mv-core/myth/release-fixes/Midnight-wide/PKGBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-pkgname=Midnight-wide
-pkgver=1
-pkgrel=23
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/Midnight-wide.tgz)
-arch=i686
-md5sums=()
-
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
deleted file mode 100755
index c9b7e20..0000000
--- a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<mythmenu name="HOST_SETTINGS">
-
-   <button>
-       <type>MV_NETWORK_SETUP_MENU</type>
-      <text>Network Settings</text>
-      <action>EXEC  mythinstall -s network </action>
-   </button>
-
-   <button>
-       <type>MV_SYSTEM_SETUP_MENU</type>
-      <text>System type</text>
-        <action>EXEC  mythinstall -s hostype </action>
-   </button>
-
-   <button>
-       <type>MV_MISC_SETUP_MENU</type>
-      <text>Misc Settings</text>
-       <action>EXEC  mythinstall -s misc </action>
-   </button>
-
-   <button>
-       <type>MV_SOFTWARE_MENU</type>
-      <text>Software</text>
-       <action>EXEC  mythinstall -s  plugins </action>
-   </button>
-
-   <button>
-      <type>MV_SHUTDOWN_SETUP_MENU</type>
-      <text>Shutdown settings</text>
-        <action>EXEC  mythinstall -s sleep </action>
-   </button>
-
-
-<button>
-   <type>MV_ADVANCED_X_SETUP_MENU</type>
-    <text>Display</text>
-    <action>EXEC  mythinstall -s advancedX</action>
-</button>
-
-<button>
-   <type>MV_ADVANCED_SETUP_MENU</type>
-    <text>Advanced settings</text>
-    <action>EXEC  mythinstall -s advanced</action>
-</button>
-
-
-<button>
-       <type>MV_AUDIO_SETUP_MENU</type>
-       <text>Audio settings</text>
-        <action>EXEC  mythinstall -s sound </action>
-</button>
-
-
-<button>
-       <type>MV_ACCESS_SETUP_MENU</type>
-       <text>Access</text>
-       <action>EXEC  mythinstall -s accesscontrol </action>
-</button>
-   <!--
-   <button>
-       <type>SETUP_MENU</type>
-       <text>Settings profile manager</text>
-        <action>EXEC  mythinstall -t </action>
-
-   </button>
-   -->
-
-
-
-
-</mythmenu>
diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
deleted file mode 100644
index aeecbbb..0000000
--- a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<mythmenu name="UTIL">
-
-   <button>
-      <type>MUSIC_PLAYLIST</type>
-      <text>Music Tools</text>
-      <text lang="IT">Opzioni Musica</text>
-      <text lang="DE">Musik verwalten</text>
-      <text lang="IS">Tónlistartól</text>
-      <text lang="NL">Muziek Beheren</text>
-      <text lang="SV">Musikverktyg</text>
-      <text lang="FR">Gestion Musiques</text>
-      <text lang="JA">ミュージックツール</text>
-      <text lang="FI">Musiikkityökalut</text>
-      <text lang="ZH_TW">音樂工具</text>
-      <text lang="SI">Glasbena orodja</text>
-      <text lang="ET">Muusikatööriistad</text>
-      <text lang="NB">Musikkverktøy</text>
-      <text lang="DK">Musikværktøjer</text>
-      <text lang="ES">Gestionar Música</text>
-      <text lang="PT">Gerir Música</text>
-      <text lang="CZ">Hudební nástroje</text>
-      <text lang="RU">Работа с музыкой</text>
-      <text lang="PL">Narzędzia muzyczne</text>
-      <text lang="HE">כלי מוסיקה</text>
-      <action>PLUGIN mythmusic</action>
-      <depends>mythmusic</depends>	
-   </button>
-
-   <button>
-      <type>VIDEO_MANAGER</type>
-      <text>Video Manager</text>
-      <text lang="IT">Gestione Video</text>
-      <text lang="ES">Gestionar Videos</text>
-      <text lang="CA">Gestionar vÃ­deos</text>
-      <text lang="DK">Filmopsætning</text>
-      <text lang="DE">Videos verwalten</text>
-      <text lang="IS">Kvikmyndatól</text>
-      <text lang="PT">Gerir Filmes</text>
-      <text lang="SV">Filmhanterare</text>
-      <text lang="FR">Gestion Vidéos</text>
-      <text lang="NL">Films Beheren</text>
-      <text lang="JA">ビデオマネージャー</text>
-      <text lang="FI">Videonhallinta</text>
-      <text lang="ZH_TW">電影工具</text>
-      <text lang="SI">Video orodja</text>
-      <text lang="ET">Videohaldus</text>
-      <text lang="NB">Videobehandler</text>
-      <text lang="CZ">Manažer filmů</text>
-      <text lang="RU">Управление фильмами</text>
-      <text lang="PL">Zarządca Filmów</text>
-      <text lang="HE">מנהל וידאו</text>
-      <action>JUMP Video Manager</action>
-      <depends>mythvideo</depends>
-   </button>
-    
-   <button>
-      <type>SETUP_KEYS</type>
-      <text>Edit Keys</text>
-      <text lang="IT">Modifica Tasti</text>
-      <text lang="FR">Configurer les touches</text>
-      <text lang="IS">Stilla takka</text>
-      <text lang="DE">Tastenbelegung ändern</text>
-      <text lang="FI">Muokkaa Näppäimiä</text>
-      <text lang="DK">Redigér tasteindstillinger</text>
-      <text lang="SV">Ändra knappar</text>
-      <text lang="ES">Editar Teclas</text>
-      <text lang="PT">Configurar Teclas</text>
-      <text lang="ET">Klahvide muutmine</text>
-      <text lang="NL">Toetsen Aanpassen</text>
-      <text lang="CZ">Editovat klávesy</text>
-      <text lang="JA">キー設定</text>
-      <text lang="RU">Редактировать клавиши</text>
-      <text lang="SI">Urejanje tipk</text>
-      <text lang="PL">Edytuj klawisze</text>
-      <text lang="HE">עריכת מקשים</text>
-      <action>PLUGIN mythcontrols</action>
-      <depends>mythcontrols</depends>	
-   </button>
-      
-   <button>
-      <type>SETUP_MENU</type>
-      <text>Setup</text>
-      <text lang="IT">Impostazioni</text>
-      <text lang="ES">Configurar</text>
-      <text lang="CA">Configurar</text>
-      <text lang="FR">Paramètres</text>
-      <text lang="DE">Konfiguration</text>
-      <text lang="DK">Indstillinger</text>
-      <text lang="IS">Stillingar</text>
-      <text lang="NL">Configuratie</text>
-      <text lang="PT">Configurações</text>
-      <text lang="SV">Inställningar</text>
-      <text lang="JA">設定</text>
-      <text lang="FI">Asetukset</text>
-      <text lang="ZH_TW">設定</text>
-      <text lang="SI">Nastavitve</text>
-      <text lang="ET">Sätted</text>
-      <text lang="NB">Innstillinger</text>
-      <text lang="CZ">Nastavení</text>
-      <text lang="RU">Настройки</text>
-      <text lang="PL">Ustawienia</text>
-      <text lang="HE">הגדרה</text>
-      <action>MENU main_settings.xml</action>
-   </button>
-   <button>
-       <type>MV_SETUP_MENU</type>
-       <text>MythVantage Settings</text>
-       <action>MENU HOST_SETTINGS.xml</action>
-
-   </button>
-
-   <button>
-       <type>MV_TEMPLATE</type>
-       <text>Settings profile manager</text>
-        <action>EXEC  mythinstall -t </action>
-
-   </button>
-
-
-
-</mythmenu>
diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
deleted file mode 100755
index 4a94303..0000000
--- a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
+++ /dev/null
@@ -1,106 +0,0 @@
-<mythmenu name="UTIL">
-
-   <button>
-      <type>MUSIC_PLAYLIST</type>
-      <text>Music Tools</text>
-      <text lang="DE">Musik verwalten</text>
-      <text lang="IS">Tónlistartól</text>
-      <text lang="NL">Muziek Beheren</text>
-      <text lang="SV">Musikverktyg</text>
-      <text lang="FR">Musiques</text>
-      <text lang="JA">ミュージックツール</text>
-      <text lang="FI">Musiikkityökalut</text>
-      <text lang="ZH_TW">音樂工具</text>
-      <text lang="SI">Glasbena orodja</text>
-      <text lang="ET">Muusikatööriistad</text>
-      <text lang="NB">Musikkverktøy</text>
-      <text lang="DK">Musikværktøjer</text>
-      <text lang="ES">Gestionar Música</text>
-      <text lang="PT">Gerir Música</text>
-      <text lang="CZ">Hudební nástroje</text>
-      <text lang="RU">Работа с музыкой</text>
-      <action>PLUGIN mythmusic</action>
-      <depends>mythmusic</depends>	
-   </button>
-
-   <button>
-      <type>VIDEO_MANAGER</type>
-      <text>Video Manager</text>
-      <text lang="ES">Gestionar Videos</text>
-      <text lang="CA">Gestionar vÃ­deos</text>
-      <text lang="DK">Filmopsætning</text>
-      <text lang="DE">Videos verwalten</text>
-      <text lang="IS">Kvikmyndatól</text>
-      <text lang="PT">Gerir Filmes</text>
-      <text lang="SV">Filmhanterare</text>
-      <text lang="FR">Vidéos</text>
-      <text lang="NL">Films Beheren</text>
-      <text lang="JA">ビデオマネージャー</text>
-      <text lang="FI">Videonhallinta</text>
-      <text lang="ZH_TW">電影工具</text>
-      <text lang="SI">Video manager</text>
-      <text lang="ET">Videohaldus</text>
-      <text lang="NB">Videobehandler</text>
-      <text lang="CZ">Manažer filmů</text>
-      <text lang="RU">Управление фильмами</text>
-      <action>JUMP Video Manager</action>
-      <depends>mythvideo</depends>
-   </button>
-    
-   <button>
-      <type>SETUP_KEYS</type>
-      <text>Edit Keys</text>
-      <text lang="FR">Configurer les touches</text>
-      <text lang="IS">Stilla takka</text>
-      <text lang="DE">Tastenbelegung ändern</text>
-      <text lang="FI">Muokkaa Näppäimiä</text>
-      <text lang="DK">Redigér tasteindstillinger</text>
-      <text lang="SV">Ändra knappar</text>
-      <text lang="ES">Editar Teclas</text>
-      <text lang="PT">Configurar Teclas</text>
-      <text lang="ET">Klahvide muutmine</text>
-      <text lang="NL">Toetsen Aanpassen</text>
-      <text lang="CZ">Editovat klávesy</text>
-      <text lang="JA">キー設定</text>
-      <text lang="RU">Редактировать клавиши</text>
-      <action>PLUGIN mythcontrols</action>
-      <depends>mythcontrols</depends>	
-   </button>
-      
-   <button>
-      <type>SETUP_MENU</type>
-      <text>Setup</text>
-      <text lang="IT">Impostazioni</text>
-      <text lang="ES">Configurar</text>
-      <text lang="CA">Configurar</text>
-      <text lang="FR">Configuration</text>
-      <text lang="DE">Konfiguration</text>
-      <text lang="DK">Indstillinger</text>
-      <text lang="IS">Stillingar</text>
-      <text lang="NL">Configuratie</text>
-      <text lang="PT">Configurações</text>
-      <text lang="SV">Inställningar</text>
-      <text lang="JA">設定</text>
-      <text lang="FI">Asetukset</text>
-      <text lang="ZH_TW">設定</text>
-      <text lang="SI">Nastavitve</text>
-      <text lang="ET">Sätted</text>
-      <text lang="NB">Innstillinger</text>
-      <text lang="CZ">Nastavení</text>
-      <text lang="RU">Настройки</text>
-      <action>MENU main_settings.xml</action>
-   </button>
-   <button>
-       <type>MV_SETUP_MENU</type>
-       <text>MythVantage Settings</text>
-       <action>MENU HOST_SETTINGS.xml</action>
-
-   </button>
-
-   <button>
-       <type>MV_TEMPLATE</type>
-       <text>Settings profile manager</text>
-        <action>EXEC  mythinstall -t </action>
-
-   </button>
-</mythmenu>
diff --git a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD b/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD
deleted file mode 100755
index ed3a517..0000000
--- a/abs/mv-core/myth/release-fixes/MythVanage-mythmenu/PKGBUILD
+++ /dev/null
@@ -1,15 +0,0 @@
-pkgname=MythVantage-mythmenu
-pkgver=1.0
-pkgrel=7
-pkgdesc="Myth menu with MythVantage settings"
-#depends=( mythtv-svn )
-source=()
-arch=('i686')
-build() {
-        cd $startdir/src
-        rsync -a --exclude=.svn $startdir/MythVantage-menu .
-        mkdir -p  -m 755 $startdir/pkg/usr/share/mythtv/themes
-        cp -rp MythVantage-menu $startdir/pkg/usr/share/mythtv/themes
-
-}
-
diff --git a/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD
deleted file mode 100755
index 739486f..0000000
--- a/abs/mv-core/myth/release-fixes/basic-amber/PKGBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-pkgname=basic-amber
-pkgver=1
-pkgrel=8
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/basic-amber.tgz)
-md5sums=()
-arch=('i686')
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD
deleted file mode 100755
index 6e6d7d8..0000000
--- a/abs/mv-core/myth/release-fixes/basic-blue/PKGBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-pkgname=basic-blue
-pkgver=1
-pkgrel=8
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/basic-blue.tgz)
-md5sums=()
-arch=('i686')
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  #cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/
-  rsync -a --exclude=.svn $pkgname $startdir/pkg/usr/share/mythtv/themes/
-}
diff --git a/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD
deleted file mode 100755
index 6cca366..0000000
--- a/abs/mv-core/myth/release-fixes/basic-green/PKGBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-pkgname=basic-green
-pkgver=1
-pkgrel=7
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/basic-green.tgz)
-md5sums=()
-arch=('i686')
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD
deleted file mode 100755
index cc5baeb..0000000
--- a/abs/mv-core/myth/release-fixes/basic-purple/PKGBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-pkgname=basic-purple
-pkgver=1
-pkgrel=7
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/basic-purple.tgz)
-md5sums=()
-arch=('i686')
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD b/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD
deleted file mode 100755
index 1ff6569..0000000
--- a/abs/mv-core/myth/release-fixes/basic-red/PKGBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-pkgname=basic-red
-pkgver=1
-pkgrel=9
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-source=(http://www.mythvantage.com/src/basic-red.tgz)
-md5sums=()
-arch=('i686')
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/compile-plugins.sh b/abs/mv-core/myth/release-fixes/compile-plugins.sh
deleted file mode 100755
index 22d03d9..0000000
--- a/abs/mv-core/myth/release-fixes/compile-plugins.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-logdir=`pwd`
-rm fail.log
-for i in plugins/*
-do
-	if [ -d $i ]
-	then
-		mydir=`pwd`
-		
-		cd $i
-#		versionpkg -mf||exit 1
-		echo "starting $i"
-		mp -fsr || echo "$i failed" >> $logdir/fail.log
-		cd $mydir
-	fi
-done
-	
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch
deleted file mode 100755
index 912ce27..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/3466-v1.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-Index: libs/libmythtv/NuppelVideoPlayer.cpp
-===================================================================
---- libs/libmythtv/NuppelVideoPlayer.cpp	(revision 13535)
-+++ libs/libmythtv/NuppelVideoPlayer.cpp	(working copy)
-@@ -1475,6 +1475,12 @@
-     }
- }
- 
-+void NuppelVideoPlayer::DrawUnusedRects(bool sync)
-+{
-+    if (videoOutput)
-+        videoOutput->DrawUnusedRects(sync);
-+}
-+
- void NuppelVideoPlayer::ResetCaptions(uint mode_override)
- {
-     uint origMode   = textDisplayMode;
-Index: libs/libmythtv/guidegrid.h
-===================================================================
---- libs/libmythtv/guidegrid.h	(revision 13535)
-+++ libs/libmythtv/guidegrid.h	(working copy)
-@@ -86,8 +86,9 @@
-     void paintEvent(QPaintEvent *);
- 
-   private slots:
--    void timeout();
--    void jumpToChannelTimeout();
-+    void timeCheckTimeout(void);
-+    void repaintVideoTimeout(void);
-+    void jumpToChannelTimeout(void);
- 
-   private:
-     void keyPressEvent(QKeyEvent *e);
-@@ -174,6 +175,7 @@
-     QString currentTimeColor;
- 
-     QTimer *timeCheck;
-+    QTimer *videoRepaintTimer;
- 
-     bool keyDown;
- 
-Index: libs/libmythtv/tv_play.h
-===================================================================
---- libs/libmythtv/tv_play.h	(revision 13535)
-+++ libs/libmythtv/tv_play.h	(working copy)
-@@ -112,6 +112,7 @@
-     void StopEmbeddingOutput(void);
-     bool IsEmbedding(void);
-     void EPGChannelUpdate(uint chanid, QString channum);
-+    void DrawUnusedRects(bool sync);
-    
-     // Recording commands
-     int  PlayFromRecorder(int recordernum);
-Index: libs/libmythtv/guidegrid.cpp
-===================================================================
---- libs/libmythtv/guidegrid.cpp	(revision 13535)
-+++ libs/libmythtv/guidegrid.cpp	(working copy)
-@@ -261,9 +261,14 @@
- 
-     timeCheck = NULL;
-     timeCheck = new QTimer(this);
--    connect(timeCheck, SIGNAL(timeout()), SLOT(timeout()) );
-+    connect(timeCheck, SIGNAL(timeout()), SLOT(timeCheckTimeout()) );
-     timeCheck->start(200);
- 
-+    videoRepaintTimer = new QTimer(this);
-+    QObject::connect(videoRepaintTimer, SIGNAL(timeout()),
-+                     this,              SLOT(repaintVideoTimeout()));
-+    videoRepaintTimer->start(1000);
-+
-     selectState = false;
- 
-     updateBackground();
-@@ -281,18 +286,46 @@
-     for (int x = 0; x < MAX_DISPLAY_TIMES; x++)
-     {
-         if (m_timeInfos[x])
-+        {
-             delete m_timeInfos[x];
-+            m_timeInfos[x] = NULL;
-+        }
-     }
- 
-     for (int y = 0; y < MAX_DISPLAY_CHANS; y++)
-     {
-         if (m_programs[y])
-+        {
-             delete m_programs[y];
-+            m_programs[y] = NULL;
-+        }
-     }
- 
-     m_channelInfos.clear();
- 
--    delete theme;
-+    if (theme)
-+    {
-+        delete theme;
-+        theme = NULL;
-+    }
-+
-+    if (jumpToChannelTimer)
-+    {
-+        jumpToChannelTimer->deleteLater();
-+        jumpToChannelTimer = NULL;
-+    }
-+
-+    if (timeCheck)
-+    {
-+        timeCheck->deleteLater();
-+        timeCheck = NULL;
-+    }
-+
-+    if (videoRepaintTimer)
-+    {
-+        videoRepaintTimer->deleteLater();
-+        videoRepaintTimer = NULL;
-+    }
- }
- 
- void GuideGrid::keyPressEvent(QKeyEvent *e)
-@@ -533,7 +566,7 @@
-     return m_channelInfos[idx].chanid;
- }
- 
--void GuideGrid::timeout()
-+void GuideGrid::timeCheckTimeout(void)
- {
-     timeCheck->changeInterval((int)(60 * 1000));
-     QTime new_time = QTime::currentTime();
-@@ -561,6 +594,12 @@
-     repaint(curInfoRect, false);
- }
- 
-+void GuideGrid::repaintVideoTimeout(void)
-+{
-+    timeCheck->changeInterval(1000);
-+    update(videoRect);
-+}
-+
- void GuideGrid::fillChannelInfos(bool gotostartchannel)
- {
-     m_channelInfos.clear();
-@@ -974,6 +1013,7 @@
-     if (r.intersects(videoRect) && m_player)
-     {
-         timeCheck->changeInterval((int)(200));
-+        m_player->DrawUnusedRects(false);
-     }
- 
-     qApp->unlock();
-@@ -1794,7 +1834,10 @@
-     ChannelInfo info = m_channelInfos[idx];
- 
-     if (m_player)
-+    {
-         m_player->EPGChannelUpdate(info.chanid, info.chanstr);
-+        videoRepaintTimer->start(200);
-+    }
- }
- 
- //
-Index: libs/libmythtv/NuppelVideoPlayer.h
-===================================================================
---- libs/libmythtv/NuppelVideoPlayer.h	(revision 13535)
-+++ libs/libmythtv/NuppelVideoPlayer.h	(working copy)
-@@ -118,6 +118,7 @@
-     void StopEmbedding(void);
-     void ExposeEvent(void);
-     bool IsEmbedding(void);
-+    void DrawUnusedRects(bool sync);
- 
-     // Audio Sets
-     void SetNoAudio(void)                     { no_audio_out = true; }
-Index: libs/libmythtv/tv_play.cpp
-===================================================================
---- libs/libmythtv/tv_play.cpp	(revision 13535)
-+++ libs/libmythtv/tv_play.cpp	(working copy)
-@@ -5035,6 +5035,12 @@
-     return false;
- }
- 
-+void TV::DrawUnusedRects(bool sync)
-+{
-+    if (nvp)
-+        nvp->DrawUnusedRects(sync);
-+}
-+
- void TV::doEditSchedule(int editType)
- {
-     if (!playbackinfo)
-Index: libs/libmythtv/videoout_xv.cpp
-===================================================================
---- libs/libmythtv/videoout_xv.cpp	(revision 13535)
-+++ libs/libmythtv/videoout_xv.cpp	(working copy)
-@@ -2465,7 +2465,7 @@
-     }
- 
-     if ((needrepaint || xv_need_bobdeint_repaint) &&
--        (VideoOutputSubType() >= XVideo))
-+        (VideoOutputSubType() >= XVideo) && !embedding)
-     {
-         DrawUnusedRects(/* don't do a sync*/false);
-     }
-@@ -2480,12 +2480,6 @@
- 
- void VideoOutputXv::DrawUnusedRects(bool sync)
- {
--    // Unfortunately, this gets drawn in the wrong place on prebuffering
--    // pauses when embedding and this is rarely useful when embedding
--    // since the background is drawn in guidegrid so we bail here. -- dtk
--    if (embedding) 
--        return;
--
-     // boboff assumes the smallest interlaced resolution is 480 lines - 5%
-     bool use_bob   = (m_deinterlacing && m_deintfiltername == "bobdeint");
-     int boboff_raw = (int)round(((double)display_video_rect.height()) /
-@@ -2512,7 +2506,12 @@
- 
-     X11L;
- 
--    if (xv_draw_colorkey && needrepaint)
-+    // This is used to avoid drawing the colorkey when embedding and
-+    // not using overlay. This is needed because we don't paint this
-+    // in the vertical retrace period when calling this from the EPG.
-+    bool clrdraw = xv_colorkey || !embedding;
-+
-+    if (xv_draw_colorkey && needrepaint && clrdraw)
-     {
-         XSetForeground(XJ_disp, XJ_gc, xv_colorkey);
-         XFillRectangle(XJ_disp, XJ_curwin, XJ_gc,
-@@ -2521,7 +2520,7 @@
-                        display_visible_rect.width(),
-                        display_visible_rect.height() - 2 * boboff);
-     }
--    else if (xv_draw_colorkey && xv_need_bobdeint_repaint)
-+    else if (xv_draw_colorkey && xv_need_bobdeint_repaint && clrdraw)
-     {
-         // if this is only for deinterlacing mode switching, draw
-         // the border areas, presumably the main image is undamaged.
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD
deleted file mode 100755
index 6c57b51..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/PKGBUILD
+++ /dev/null
@@ -1,79 +0,0 @@
-pkgname=mythtv-release-fixes
-pkgver=20034
-pkgrel=1
-pkgdesc=".21  A personal video recorder for Linux"
-url="http://www.mythtv.org"
-license="GPL"
-depends=('lame' 'libmysqlclient' 'alsa-lib'  'wget' 'qt3' 'x-server' 'freetype2' 'libmpeg2' 'libxml2' 'libraw1394' 'lirc' 'perl-date-manip' 'libavc1394' 'libdc1394' 'libiec61883')
-makedepends=('subversion')
-conflicts=(mythtv-svn)
-replaces=()
-backup=()
-options=(!strip)
-MAKEFLAGS="-j6"
-
-install='mythtv.install'
-#source=(mythbackend myth.sh 3466-v1.patch reload.patch)
-source=(mythbackend myth.sh  myth.find_orphans.pl   dbconfig.patch myththemedmenu.cpp.patch myththemedmenu.h.patch screenshots2.diff screenshot_jump.patch pop_be_restart.h.patch pop_be_restart.cpp.patch jump_snapshot.patch smolt_jump.patch)
-arch=('i686')
-md5sums=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythtv
-#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
-_svnmod=mythtv
-
-build() {
- svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-        cd $startdir/src/mythtv
-	 patch -p0 < ../dbconfig.patch
-	 grep snapshot programs/mythfrontend/networkcontrol.cpp|grep -q  jumpMap
-	 status=$?
-
-	if [ $status != 0 ]
-	then
-		echo "patching for screenshot"
-		 patch -p0 < ../screenshots2.diff
-		 patch -p0 < ../screenshot_jump.patch
-	#	 patch -p0 < ../jump_snapshot.patch
-
-	else
-		echo "screenshot already patched"
-	fi
-	 patch -p0 < ../myththemedmenu.cpp.patch
-	 patch -p0 < ../myththemedmenu.h.patch
-	 patch -p0 < ../pop_be_restart.h.patch
-	 patch -p0 < ../pop_be_restart.cpp.patch
-	 patch -p0 < ../smolt_jump.patch
-  	sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
-         make distclean
-	 make clean
-	 ./configure --prefix=/usr --enable-opengl-vsync --enable-dvb --enable-firewire --compile-type=release --with-bindings=perl --disable-audio-arts --disable-xrandr  --disable-audio-jack   --disable-directfb --disable-xvmc  --disable-xvmcw --enable-xvmc-pro --enable-xvmc-opengl  
-
-. /etc/profile
-
-   make
-   make INSTALL_ROOT=$startdir/pkg install
-   mkdir -p $startdir/pkg/usr/share/mythtv/contrib
-   mkdir -p $startdir/pkg/etc/rc.d
-   mkdir -p $startdir/pkg/var/log/mythtv
-   mkdir -p $startdir/pkg/etc/profile.d
-   install -m0755 ../myth.sh $startdir/pkg/etc/profile.d/
-# install contrib
-   mkdir -p $startdir/pkg/usr/local/share/mythtv/contrib || return 1
-   #cp -rp contrib/* $startdir/pkg/usr/local/share/mythtv/contrib
-    rsync -a --exclude=.svn contrib/* $startdir/pkg/usr/local/share/mythtv/contrib
-   echo "-release-fixes"   >  $startdir/pkg/usr/local/share/mythtv/.releasetype
-   #install -m0755 themes/*.ttf $startdir/pkg/usr/local/share/mythtv/themes/
-   # set suid on mythfrontend
-#   chmod a+s  $startdir/pkg/usr/local/bin/mythfrontend
-
-#   mkdir -p $startdir/pkg/usr/lib/
-#   mv $startdir/pkg/usr/local/lib/perl5 $startdir/pkg/usr/lib/perl5
-    cd $startdir/src/mythtv/contrib
-    gcc -Wall -o firewire_tester firewire_tester.c -liec61883 -lraw1394
-    install -m0755 firewire_tester $startdir/pkg/usr/bin/firewire_tester
-#    install -m0755  $startdir/pkg/usr/share/mythtv/contrib/optimize_mythdb.pl  $startdir/pkg/usr/local/bin/optimize_mythdb.pl
-#    cp $startdir/src/myth.find_orphans.pl $startdir/pkg/usr/share/mythtv/contrib/myth.find_orphans.pl
-#    install -m0755  $startdir/pkg/usr/share/mythtv/contrib/myth.find_orphans.pl  $startdir/pkg/usr/bin/myth.find_orphans.pl
-
-
-}
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch
deleted file mode 100644
index 1d181ac..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/dbconfig.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- libs/libmyth/mythcontext.cpp	2007-10-04 00:20:28.000000000 -0500
-+++ libs/libmyth/mythcontext.cpp.new	2007-11-12 22:54:57.000000000 -0600
-@@ -852,14 +852,14 @@
-         cout << endl << error << endl << endl;
-         response = getResponse("Would you like to configure the database "
-                                "connection now?",
--                               "yes");
-+                               "no");
-         if (!response || response.left(1).lower() != "y")
-             return false;
-         
-         params.dbHostName = getResponse("Database host name:",
-                                         params.dbHostName);
-         response = getResponse("Should I test connectivity to this host "
--                               "using the ping command?", "yes");
-+                               "using the ping command?", "no");
-         params.dbHostPing = (!response || response.left(1).lower() != "y");
- 
-         params.dbPort     = intResponse("Database non-default port:",
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch
deleted file mode 100644
index b87b89f..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_uitypes.cpp.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- mythtv/libs/libmyth/uitypes.cpp.orig	2007-11-30 14:03:07.000000000 -0600
-+++ mythtv/libs/libmyth/uitypes.cpp	2007-11-30 14:04:09.000000000 -0600
-@@ -3831,15 +3831,15 @@
-     //
-     //  Debugging, draw edges around bins
-     //
--
--    /*
-+    if (m_debug == true)
-+    {
-     p->setPen(QColor(255,0,0));
-     CornerMap::Iterator it;
-     for ( it = bin_corners.begin(); it != bin_corners.end(); ++it )
-     {
-         p->drawRect(it.data());
-     }
--    */
-+    }
- 
- }
- 
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch
deleted file mode 100644
index f479bbe..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/debug_xmlparse.cpp.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- mythtv/libs/libmyth/xmlparse.cpp.orig	2007-11-30 14:03:00.000000000 -0600
-+++ mythtv/libs/libmyth/xmlparse.cpp	2007-11-30 14:06:22.000000000 -0600
-@@ -2618,6 +2618,11 @@
-                 area = parseRect(getFirstText(info));
-                 normalizeRect(area);
-             }
-+            if (info.tagName() == "debug")
-+            {
-+                if  (getFirstText(info) == "true")
-+                    container->SetDebug(true);
-+            }
-             else if (info.tagName() == "image")
-             {
-                 QString imgname = "";
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch
deleted file mode 100644
index 2d2c68b..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/jump_snapshot.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- libs/libmythui/mythmainwindow.cpp.orrig	2008-03-19 18:43:08.000000000 +0000
-+++ libs/libmythui/mythmainwindow.cpp	2008-03-19 18:43:51.000000000 +0000
-@@ -1132,7 +1132,9 @@
- 
- void MythMainWindow::JumpTo(const QString& destination, bool pop)
- {
--    if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL)
-+   if (destination == "ScreenShot") 
-+        screenShot(); 
-+   else if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL) 
-     {
-         d->exitingtomain = true;
-         d->popwindows = pop;
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl
deleted file mode 100755
index c258e1d..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.find_orphans.pl
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/perl
-
-# check for recording anomolies -
-#   based somewhat on greg froese's "myth.rebuilddatabase.pl"
-#   -- Lincoln Dale <ltd@interlink.com.au>, September 2006
-# 2007-03-11:  Added pretty print of unknown files vs. orphaned thumbnails. (Robert Kulagowski)
-
-#  The intent of this script is to be able to find orphaned rows in the 'recorded' table
-#  (entries which don't have matching media files) and orphaned media files (potentially
-#  taking up gigabytes of otherwise usable disk space) which have no matching row in
-#  the 'recorded' db table.
-#
-#  By default, running the script will simply return a list of problems it finds.
-#  Running with --dodbdelete will remove db recorded rows for which there is no matching
-#  media file.  Running with --dodelete will delete media files for which there is no
-#  matching db record.
-#
-#  This script may be useful to fix up some orphaned db entries (causes mythweb to run
-#  verrry slow) as well as reclaim some disk space from some orphaned media files.
-#  (in an ideal world, neither of these would ever happen, but i've seen both happen in reality).
-#  This script makes it easy to keep track of whether it has or hasn't happened, even if you
-#  have thousands of recordings and terabytes of stored media.
-#
-#  no warranties expressed or implied.  if you run this and it deletes all your recordings
-#  and sets mythtv to fill up all your disk space with The Home Shopping Network, its entirely
-#  your fault.
-
-my $progname = "myth.find_orphans.pl";
-my $revision = "0.20";
-
-use DBI;
-use Sys::Hostname;
-use Getopt::Long;
-
-#
-# options
-#
-
-my $opt_host =		hostname;
-my $opt_dbhost = 	"localhost";
-my $opt_database = 	"mythconverg";
-my $opt_user = 		"mythtv";
-my $opt_pass = 		"mythtv";
-my $opt_ext = 		"{nuv,mpg,mpeg,avi}";
-my $opt_dir =		"";
-my $opt_dodelete =	0;
-my $opt_dodbdelete =	0;
-my $debug =		0;
-my $opt_help =		0;
-
-GetOptions(
-        'host=s'	=> \$opt_host,
-        'dbhost=s'	=> \$opt_dbhost,
-        'database=s'	=> \$opt_database,
-        'user=s'	=> \$opt_user,
-        'pass=s'	=> \$opt_pass,
-	'dir=s'		=> \$opt_dir,
-	'dodelete'	=> \$opt_dodelete,
-	'dodbdelete'	=> \$opt_dodbdelete,
-        'debug+'	=> \$debug,
-        'help'		=> \$opt_help,
-        'h'		=> \$opt_help,
-        'v'		=> \$opt_help);
-
-if ($opt_help) {
-	print<<EOF
-$progname (rev $revision)
-(checks MythTV recording directories for orphaned files)
-
-options:
-	--host=(host)		MythTV backend host ($opt_host)
-	--dbhost=(host)		host where MySQL database for backend is ($opt_dbhost)
-	--database=(dbname)	MythTV database ($opt_database)
-	--user=(user)		MySQL MythTV database user ($opt_user)
-	--pass=(pass)		MySQL MythTV database password ($opt_pass)
-	--dir=directories	manually specify recording directories (otherwise setting is from database)
-	--debug			increase debug level
-	--dodbdelete		remove recorded db entries with no matching file (default: don't)
-	--dodelete		delete files with no record (default: don't)
-
-EOF
-;
-	exit(0);
-}
-
-#
-# go go go!
-#
-
-my $valid_recordings = 0;
-my $missing_recordings = 0;
-my $errors = 0;
-my $unknown_files = 0;
-my $known_files = 0;
-my $unknown_size = 0;
-my $known_size = 0;
-my $unknown_thumbnail = 0;
-
-if (!($dbh = DBI->connect("dbi:mysql:database=$opt_database:host=$opt_dbhost","$opt_user","$opt_pass"))) {
-	die "Cannot connect to database $opt_database on host $opt_dbhost: $!\n";
-}
-
-if ($opt_dir eq "") {
-	&dir_lookup("SELECT dirname FROM storagegroup WHERE hostname=(?)");
-	&dir_lookup("SELECT data FROM settings WHERE value='RecordFilePrefix' AND hostname=(?)");
-
-	printf STDERR "Recording directories ($opt_host): $opt_dir\n" if $debug;
-}
-
-if ($opt_dir eq "") {
-	printf "ERROR: no directory found or specified\n";
-	exit 1;
-}
-
-foreach $d (split(/,/,$opt_dir)) {
-	$d =~ s/\/$//g; # strip trailing /
-	$dirs{$d}++;
-}
-
-
-#
-# look in recorded table, make sure we can find every file ..
-#
-
-my $q = "SELECT title, subtitle, starttime, endtime, chanid, basename FROM recorded WHERE hostname=(?) ORDER BY starttime";
-$sth = $dbh->prepare($q);
-$sth->execute($opt_host) || die "Could not execute ($q): $!\n";
-
-while (my @row=$sth->fetchrow_array) {
-	($title, $subtitle, $starttime, $endtime, $channel, $basename) = @row;
-
-	# see if we can find it...
-	$loc = find_file($basename);
-	if ($loc eq "") {
-		printf "Missing media: %s (title:%s, start:%s)\n",$basename,$title,$starttime;
-		$missing_recordings++;
-
-		if ($opt_dodbdelete) {
-			my $sql = sprintf "DELETE FROM recorded WHERE basename LIKE \"%s\" LIMIT 1",$basename;
-			printf "performing database delete: %s\n",$sql;
-			$dbh->do($sql) || die "Could not execute $sql: $!\n";
-		}
-	} else {
-		$valid_recordings++;
-		$seen_basename{$basename}++;
-		$seen_basename{$basename.".png"}++; # thumbnail
-	}
-}
-
-#
-# look in recording directories, see if there are extra files not in database
-#
-
-foreach my $this_dir (keys %dirs) {
-	opendir(DIR, $this_dir) || die "cannot open directory $this_dir: $!\n";
-	foreach $this_file (readdir(DIR)) {
-		if (-f "$this_dir/$this_file") {
-
-			next if ($this_file eq "nfslockfile.lock");
-			next if ($this_file =~ m/^mythconv.*/);
-			next if ($this_dir eq "/data/database_backup");
-
-			my $this_filesize = -s "$this_dir/$this_file";
-			if ($seen_basename{$this_file} == 0) {
-				$sorted_filesizes{$this_filesize} .= sprintf "unknown file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file;
-				$unknown_size += $this_filesize;
-				if (substr($this_file,-4) eq ".png") {
-					$unknown_thumbnail++;
-				}
-				else {
-					$unknown_files++;
-				}
-				                                                                         
-				if ($opt_dodelete) {
-					printf STDERR "deleting  [%s]:  %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file;
-					unlink "$this_dir/$this_file";
-
-					if (-f "$this_dir/$this_file") {
-						$errors++;
-						printf "ERROR: could not delete $this_dir/$this_file\n";
-					}
-				}
-			} else {
-				$known_files++;
-				$known_size += $this_filesize;
-				printf "KNOWN file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file if $debug;
-			}
-		} else {
-			printf "NOT A FILE: %s/%s\n",$this_dir,$this_file if $debug;
-		}
-	}
-	closedir DIR;
-}
-
-
-#
-# finished, report results
-#
-
-foreach my $key (sort { $a <=> $b } keys %sorted_filesizes) {
-	printf $sorted_filesizes{$key};
-}
-
-printf "Summary:\n";
-printf "  Host: %s, Directories: %s\n", $opt_host, join(" ",keys %dirs);
-printf "  %d ERRORS ENCOUNTERED (see above for details)\n",$errors if ($errors > 0);
-printf "  %d valid recording%s, %d missing recording%s %s\n",
-	$valid_recordings, ($valid_recordings != 1 ? "s" : ""),
-	$missing_recordings, ($missing_recordings != 1 ? "s" : ""),
-	($missing_recordings > 0 ? ($opt_dodbdelete ? "were fixed" : "not fixed, check above is valid and use --dodbdelete to fix") : "");
-printf "  %d known media files using %s\n  %d orphaned thumbnails with no corresponding recording\n  %d unknown files using %s %s\n",
-	$known_files, pretty_filesize($known_size), 
-	$unknown_thumbnail,$unknown_files, pretty_filesize($unknown_size), 
-	($unknown_files > 0 ? ($opt_dodelete ? "were fixed" : "not fixed, check above and use --dodelete to clean up if the above output is accurate") : "");
-
-exit(0);
-
-###########################################################################
-# filesize bling
-
-sub pretty_filesize
-{
-	local($fsize) = @_;
-	return sprintf "%0.1fGB",($fsize / 1000000000) if ($fsize >= 1000000000);
-	return sprintf "%0.1fMB",($fsize / 1000000) if ($fsize >= 1000000);
-	return sprintf "%0.1fKB",($fsize / 1000) if ($fsize >= 1000);
-	return sprintf "%0.0fB",$fsize;
-}
-
-###########################################################################
-# find a file in directories without globbing
-
-sub find_file
-{
-	local($fname) = @_;
-
-	foreach my $d (keys %dirs) {
-		my $f = $d."/".$fname;
-		if (-e $f) {
-			return $f;
-		}
-	}
-	return;
-}
-
-###########################################################################
-
-sub dir_lookup
-{
-	my $query = shift;
-
-	$sth = $dbh->prepare($query);
-	$sth->execute($opt_host) || die "Could not execute ($dir_query)";
-	while (my @row = $sth->fetchrow_array) {
-		$opt_dir .= "," if ($opt_dir ne "");
-		$opt_dir .= $row[0];
-	}
-}
-
-###########################################################################
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh
deleted file mode 100755
index fb7122c..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myth.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-export PATH=$PATH:/usr/local/bin
-# set core file size to 0
-ulimit -c 0
-export MALLOC_CHECK_=0
\ No newline at end of file
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend
deleted file mode 100755
index f96c6b7..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/bin/mythbackend`
-case "$1" in
-  start)
-    stat_busy "Starting MythTV Backend"
-    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
-    [ -z "$PID" ] && /usr/local/bin/mythbackend -d -l /var/log/mythbackend.log -v quiet
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      echo $PID > /var/run/mythbackend.pid
-      add_daemon mythbackend
-      stat_done
-    fi
-    ;;
-  stop)
-    stat_busy "Stopping MythTV Backend"
-    [ ! -z "$PID" ]  && kill $PID &>/dev/null
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      rm_daemon mythbackend
-      stat_done
-    fi
-    ;;
-  restart)
-    $0 stop
-    $0 start
-    ;;
-  *)
-    echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh
deleted file mode 100755
index e7a7b70..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythbackend.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/bash
-#
-#	/etc/rc.d/init.d/mythbackend
-#
-# Starts the mythbackend as a daemon
-#
-# chkconfig: 345 90 10
-# description: Starts the mythbackend process as a daemon after the XWindows \
-#              system is started, in runlevel 5. This allows scheduled \
-#              recordings to occur without manual intervention.
-# processname: mythbackend
-
-# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
-# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
-#
-#  This program is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
-# Default values to use if none are supplied in the config file.
-# User who should start the mythbackend processes
-MBE_USER="root"
-# Directory holding the mythbackend binary
-MBE_LOCATION="/usr/local/bin/"
-# Name of mythbackend binary
-MBE_PROG="mythbackend"
-# Full path to mythbackend log file
-MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
-
-# Source function library.
-. /etc/init.d/functions
-
-# Source config file if available
-if [ -f "/etc/sysconfig/mythbackend" ]; then
-  . /etc/sysconfig/mythbackend
-fi
-
-test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
-
-RETVAL=0
-
-#
-#	See how we were called.
-#
-
-start() {
-	# Check if mythbackend is already running
-	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
-	    echo -n "Starting ${MBE_PROG}: "
-	    # /usr/local/bin/mythbackend -d -l /some/log/file
-	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
-	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
-	    RETVAL=$?
-	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
-	    echo
-	fi
-	return $RETVAL
-}
-
-stop() {
-	echo -n "Stopping ${MBE_PROG}: "
-	killproc ${MBE_LOCATION}${MBE_PROG}
-	RETVAL=$?
-	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
-	echo
-        return $RETVAL
-}
-
-
-restart() {
-	stop
-	start
-}	
-
-reload() {
-	restart
-}	
-
-status_at() {
- 	status ${MBE_LOCATION}${MBE_PROG}
-}
-
-case "$1" in
-start)
-	start
-	;;
-stop)
-	stop
-	;;
-reload|restart)
-	restart
-	;;
-condrestart)
-	if [ -f /var/lock/subsys/${MBE_PROG} ]; then
-	    restart
-	fi
-	;;
-status)
-	status_at
-	;;
-*)
-	echo "Usage: $0 {start|stop|restart|condrestart|status}"
-	exit 1
-esac
-
-exit $?
-exit $RETVAL
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch
deleted file mode 100644
index f5baccd..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.cpp.patch
+++ /dev/null
@@ -1,125 +0,0 @@
---- libs/libmythui/myththemedmenu.cpp.orig	2008-01-31 15:26:38.000000000 +0000
-+++ libs/libmythui/myththemedmenu.cpp	2008-02-07 22:24:27.000000000 +0000
-@@ -2102,6 +2102,10 @@
-             }
-             lastbutton = NULL;
-         }
-+        else if (action == "MENU")
-+        {
-+            parent->doMenu();
-+        }
-         else if (action == "EJECT")
-         {
-             myth_eject();
-@@ -2482,6 +2486,8 @@
- 
-     if (d->foundtheme)
-         d->parseMenu(menufile);
-+
-+    m_menuPopup = NULL;
- }
- 
- MythThemedMenu::~MythThemedMenu(void)
-@@ -2592,3 +2598,102 @@
-     MythScreenType::aboutToShow();
-     d->updateLCD();
- }
-+void MythThemedMenu::doMenu()
-+{
-+    int allowsd = gContext->GetNumSetting("AllowQuitShutdown");
-+    if (m_menuPopup)
-+        return;
-+    QString label = "System Menu";
-+    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
-+    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup");
-+    if (m_menuPopup->Create())
-+        mainStack->AddScreen(m_menuPopup);
-+
-+
-+    if ( allowsd != 0 && allowsd !=4  )
-+    {
-+        m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-+        m_menuPopup->AddButton("Shutdown");
-+        m_menuPopup->AddButton("Reboot");
-+        m_menuPopup->AddButton("About");
-+        m_menuPopup->AddButton("Cancel");
-+    }
-+    else
-+    {
-+        m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+        m_menuPopup->AddButton("About");
-+        m_menuPopup->AddButton("Cancel");
-+    }
-+}
-+
-+void MythThemedMenu::aboutScreen()
-+{
-+{
-+        extern const char *myth_source_version;
-+        extern const char *myth_source_path;
-+        QString distro_line;
-+        distro_line="";
-+
-+        QFile file("/etc/os_myth_release");
-+        if ( file.open(IO_ReadOnly | IO_Translate) )
-+        {
-+            QTextStream t( &file );        // use a text stream
-+            distro_line = t.readLine();
-+            file.close();
-+        }
-+
-+        QString label = "";
-+        label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line );
-+
-+        MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
-+        m_menuPopup = new MythDialogBox(label, mainStack, "About");
-+        if (m_menuPopup->Create())
-+            mainStack->AddScreen(m_menuPopup);
-+
-+        m_menuPopup->SetReturnEvent(this,"About");
-+        m_menuPopup->AddButton("OK!");
-+    }
-+}
-+
-+void MythThemedMenu::customEvent(QCustomEvent *event)
-+{
-+    if (event->type() == kMythDialogBoxCompletionEventType)
-+    {
-+        DialogCompletionEvent *dce =
-+                dynamic_cast<DialogCompletionEvent*>(event);
-+
-+        QString resultid= dce->GetId();
-+        int buttonnum  = dce->GetResult();
-+        if (resultid == "popmenu_exit")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                QString halt_cmd = gContext->GetSetting("HaltCommand",
-+                        "sudo /sbin/halt -p");
-+                if (!halt_cmd.isEmpty())
-+                    system(halt_cmd.ascii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                QString reboot_cmd = gContext->GetSetting("RebootCommand",
-+                        "sudo /sbin/reboot");
-+                if (!reboot_cmd.isEmpty())
-+                    system(reboot_cmd.ascii());
-+            }
-+
-+            if (buttonnum == 2)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        if (resultid == "popmenu_noexit")
-+        {
-+            if (buttonnum == 0)
-+                aboutScreen();
-+        }
-+
-+        m_menuPopup = NULL;
-+    }
-+}
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch
deleted file mode 100644
index 9744b11..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/myththemedmenu.h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- libs/libmythui/myththemedmenu.h.orig	2008-01-31 15:26:45.000000000 +0000
-+++ libs/libmythui/myththemedmenu.h	2008-02-07 21:00:22.000000000 +0000
-@@ -2,6 +2,7 @@
- #define MYTHTHEMEDMENU_H_
- 
- #include "mythscreentype.h"
-+#include "mythdialogbox.h"
- 
- class MythMainWindow;
- class MythThemedMenuPrivate;
-@@ -26,8 +27,14 @@
- 
-     void ReloadTheme(void);
-     void ReloadExitKey(void);
-+
-     virtual void aboutToShow(void);
- 
-+    void doMenu();
-+    void aboutScreen();
-+    MythDialogBox *m_menuPopup;
-+    void customEvent(QCustomEvent *event);
-+
-   protected:
-     virtual bool keyPressEvent(QKeyEvent *e);
-     virtual void gestureEvent(MythUIType *origtype, MythGestureEvent *ge);
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install
deleted file mode 100755
index 2c87aee..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/mythtv.install
+++ /dev/null
@@ -1,59 +0,0 @@
-
-# arg 1:  the new package version
-pre_install () {
-        echo "backing up the database"
-                dbver=`pacman -Q mythtv-release-fixes | awk  ' { print $2 } '`
-        if [ ! -e /data/databases_backup ]
-        then
-                mkdir -p /data/database_backup
-        fi
-        mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
-}
-
-post_install() {
-  	mkdir -p /data/home
-        /usr/sbin/useradd -G users,video,audio,optical  -m -d /data/home/mythtv mythtv
-        /usr/sbin/usermod -G users,video,audio,optical mythtv
-#        mkdir /var/log/mythtv
-#        chown -R mythtv:users /var/log/mythtv
-        dbver=`pacman -Q mythtv-release-fixes | awk  ' { print $2 } '`
-        if [ ! -e /data/database_backup ]
-        then
-                mkdir -p /data/database_backup
-        fi
-	chown mythtv:nobody /data/database_backup
-	chmod g+s  /data/database_backup
-        
-	mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
-	grep -q /usr/local/lib  /etc/ld.so.conf
-	if [ $? = 1 ]
-	then
-		echo "/usr/local/lib" >> /etc/ld.so.conf
-	fi
-
-}
-pre_upgrade () {
- pre_install
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  post_install
-
-  /bin/true
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-/bint/true
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch
deleted file mode 100644
index a7a5326..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.cpp.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- libs/libmythui/myththemedmenu.cpp.orig	2008-03-17 15:54:00.000000000 -0500
-+++ libs/libmythui/myththemedmenu.cpp	2008-03-17 15:54:09.000000000 -0500
-@@ -2615,12 +2615,14 @@
-         m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-         m_menuPopup->AddButton("Shutdown");
-         m_menuPopup->AddButton("Reboot");
-+        m_menuPopup->AddButton("MythBackend restart");
-         m_menuPopup->AddButton("About");
-         m_menuPopup->AddButton("Cancel");
-     }
-     else
-     {
-         m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+        m_menuPopup->AddButton("MythBackend restart");
-         m_menuPopup->AddButton("About");
-         m_menuPopup->AddButton("Cancel");
-     }
-@@ -2655,6 +2657,11 @@
-     }
- }
- 
-+void MythThemedMenu::Restartmythbackend()
-+{
-+    system("/usr/MythVantage/bin/mythbeselect -restart");
-+}
-+
- void MythThemedMenu::customEvent(QCustomEvent *event)
- {
-     if (event->type() == kMythDialogBoxCompletionEventType)
-@@ -2684,6 +2691,10 @@
- 
-             if (buttonnum == 2)
-             {
-+                Restartmythbackend();
-+            }
-+            if (buttonnum == 3)
-+            {
-                 aboutScreen();
-             }
-         }
-@@ -2691,6 +2702,10 @@
-         if (resultid == "popmenu_noexit")
-         {
-             if (buttonnum == 0)
-+            {
-+                Restartmythbackend();
-+            }
-+            if (buttonnum == 1)
-                 aboutScreen();
-         }
- 
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch
deleted file mode 100644
index 1fba435..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/pop_be_restart.h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- libs/libmythui/myththemedmenu.h.orig	2008-03-17 15:48:28.000000000 -0500
-+++ libs/libmythui/myththemedmenu.h	2008-03-17 15:48:30.000000000 -0500
-@@ -32,6 +32,7 @@
- 
-     void doMenu();
-     void aboutScreen();
-+    void Restartmythbackend();
-     MythDialogBox *m_menuPopup;
-     void customEvent(QCustomEvent *event);
- 
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch
deleted file mode 100644
index 9cc2044..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/reload.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- programs/mythfrontend/main.cpp	2007-11-13 15:34:40.000000000 +0000
-+++ programs/mythfrontend/main.cpp.new	2007-11-13 15:36:15.000000000 +0000
-@@ -72,6 +72,9 @@
-     RunProgramGuide(chanid, channum);
- }
- 
-+
-+
-+
- void startFinder(void)
- {
-     RunProgramFind();
-@@ -761,6 +764,7 @@
-     }
- }
- 
-+
- void InitJumpPoints(void)
- {
-     REG_JUMP("Reload Theme", "", "", reloadTheme);
-@@ -784,6 +788,17 @@
-     TV::SetEmbedPbbFunc(PlaybackBox::RunPlaybackBox);
- }
- 
-+
-+void signal_USR1_handler(int){
-+      VERBOSE(VB_GENERAL, "SIG USR1 received, reloading theme");	
-+      RemoteSendMessage("CLEAR_SETTINGS_CACHE");
-+      gContext->ActivateSettingsCache(false);
-+      qApp->processEvents();
-+      GetMythMainWindow()->JumpTo("Reload Theme");
-+      gContext->removeCurrentLocation();
-+      gContext->ActivateSettingsCache(true);
-+}
-+
- int internal_media_init() 
- {
-     REG_MEDIAPLAYER("Internal", "MythTV's native media player.", 
-@@ -1411,7 +1426,12 @@
- 
-         if (!RunMenu(themedir))
-             break;
--
-+         struct sigaction new_action, old_action;
-+        /* Set up the structure to specify the new action. */
-+        new_action.sa_handler = signal_USR1_handler;
-+        ::sigemptyset(&new_action.sa_mask);
-+        new_action.sa_flags = 0;
-+        ::sigaction (SIGUSR1, &new_action, &old_action);
-         qApp->setMainWidget(mainWindow);
-         qApp->exec();
-     } while (!(exitstatus = handleExit()));
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch
deleted file mode 100644
index 8a5dee4..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshot_jump.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- programs/mythfrontend/networkcontrol.cpp.orig	2008-03-16 23:31:05.000000000 +0000
-+++ programs/mythfrontend/networkcontrol.cpp	2008-03-16 23:32:01.000000000 +0000
-@@ -80,6 +80,7 @@
-     jumpMap["zoneminderconsole"]     = "ZoneMinder Console";
-     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
-     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
-+    jumpMap["snapshot"]              = "ScreenShot";
- 
-     // These jump point names match the (lowercased) locations from gContext
-     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff
deleted file mode 100644
index 2b5dabe..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots.diff
+++ /dev/null
@@ -1,458 +0,0 @@
-Index: libs/libmythui/mythmainwindow.cpp
-===================================================================
---- libs/libmythui/mythmainwindow.cpp	(revision 15827)
-+++ libs/libmythui/mythmainwindow.cpp	(working copy)
-@@ -504,6 +507,81 @@
-     d->repaintRegion = d->repaintRegion.unite(pe->region());
- }
- 
-+bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h)
-+{
-+    bool ret = false;
-+
-+    QString extension = fname.section('.', -1, -2);
-+
-+    if (extension == "jpg")
-+        extension = "JPEG";
-+    else 
-+        extension = "PNG";
-+
-+    VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8]")
-+		        .arg(QApplication::desktop()->winId())
-+			.arg(fname)
-+			.arg(w)
-+			.arg(h)
-+			.arg(x)
-+			.arg(y)
-+			.arg(x2)
-+			.arg(y2));
-+
-+    QPixmap p;
-+    p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2);
-+
-+    QImage img = p.convertToImage();
-+
-+    if ( w == 0 )
-+        w = img.width();
-+
-+    if ( h == 0 )
-+        h = img.height();
-+
-+    VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4")
-+		    .arg(w)
-+		    .arg(h)
-+		    .arg(img.width())
-+		    .arg(img.height()));
-+
-+    img = img.smoothScale( w, h , QImage::ScaleMin);
-+        
-+    if (img.save(fname ,extension))
-+    {
-+        VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded");
-+	ret = true;
-+    }
-+    else 
-+    {
-+	VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!");
-+	ret = false;
-+    }
-+
-+    return ret;
-+}
-+
-+bool MythMainWindow::screenShot(int x, int y, int x2, int y2)
-+{
-+    QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/");
-+    QString fName = QString("/%1/myth-screenshot-%2.png")
-+	            .arg(gContext->GetSetting("ScreenShotPath","/tmp/"))
-+	            .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz"));
-+
-+    return screenShot(fName, x, y, x2, y2, 0, 0);
-+}
-+
-+bool MythMainWindow::screenShot(QString fname, int w, int h)
-+{
-+    return screenShot(fname, 0, 0, -1, -1, w, h);
-+}
-+
-+
-+bool MythMainWindow::screenShot(void)
-+{
-+    return screenShot(0,0,-1,-1);
-+}
-+
- #ifdef USING_APPLEREMOTE
- // This may be possible via installEventFilter() instead?
- 
-Index: libs/libmythui/mythmainwindow.h
-===================================================================
---- libs/libmythui/mythmainwindow.h	(revision 15827)
-+++ libs/libmythui/mythmainwindow.h	(working copy)
-@@ -101,6 +101,11 @@
- 
-     MythPainter *GetCurrentPainter();
- 
-+    bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h);
-+    bool screenShot(int x, int y, int x2, int y2);
-+    bool screenShot(QString fname, int w, int h);
-+    bool screenShot(void);
-+
-     void AllowInput(bool allow);
- 
-     QRect GetUIScreenRect();
-Index: programs/mythfrontend/mediarenderer.cpp
-===================================================================
---- programs/mythfrontend/mediarenderer.cpp	(revision 15827)
-+++ programs/mythfrontend/mediarenderer.cpp	(working copy)
-@@ -9,6 +9,7 @@
- /////////////////////////////////////////////////////////////////////////////
- 
- #include "mediarenderer.h"
-+#include "mythfexml.h"
- #include "compat.h"
- 
- /////////////////////////////////////////////////////////////////////////////
-@@ -85,6 +86,11 @@
-                                  "http-get:*:video/mpeg:*,"
-                                  "http-get:*:video/nupplevideo:*,"
-                                  "http-get:*:video/x-ms-wmv:*";
-+        // ------------------------------------------------------------------
-+        // Register the MythFEXML protocol... 
-+        // ------------------------------------------------------------------
-+        VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." );
-+        m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() ));
- 
-         // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." ));
-         // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() ));
-Index: programs/mythfrontend/MFEXML_scpd.xml
-===================================================================
---- programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
-+++ programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
-@@ -0,0 +1,34 @@
-+<?xml version="1.0" encoding="utf-8"?>
-+<scpd xmlns="urn:schemas-upnp-org:service-1-0">
-+   <specVersion>
-+      <major>1</major>
-+      <minor>0</minor>
-+   </specVersion>
-+   <actionList>
-+      <action>
-+         <name>GetScreenShot</name>
-+         <argumentList>
-+            <argument>
-+               <name>Height</name>
-+               <direction>in</direction>
-+               <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
-+            </argument>
-+            <argument>
-+               <name>Width</name>
-+               <direction>in</direction>
-+               <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
-+            </argument>
-+         </argumentList>
-+      </action>
-+   </actionList>
-+   <serviceStateTable>
-+      <stateVariable sendEvents="no">
-+         <name>A_ARG_TYPE_Height</name>
-+         <dataType>i2</dataType>
-+      </stateVariable>
-+      <stateVariable sendEvents="no">
-+         <name>A_ARG_TYPE_Width</name>
-+         <dataType>i2</dataType>
-+      </stateVariable>
-+   </serviceStateTable>
-+</scpd>
-Index: programs/mythfrontend/globalsettings.cpp
-===================================================================
---- programs/mythfrontend/globalsettings.cpp	(revision 15827)
-+++ programs/mythfrontend/globalsettings.cpp	(working copy)
-@@ -2182,6 +2182,15 @@
-     return ge;
- }
- 
-+static HostLineEdit *ScreenShotPath()
-+{
-+    HostLineEdit *ge = new HostLineEdit("ScreenShotPath");
-+    ge->setLabel(QObject::tr("ScreenShotPath"));
-+    ge->setValue("");
-+    ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend"));
-+    return ge;
-+}
-+
- static HostCheckBox *UseArrowAccels()
- {
-     HostCheckBox *gc = new HostCheckBox("UseArrowAccels");
-@@ -4455,6 +4464,7 @@
-     MythMediaSettings *mediaMon = new MythMediaSettings();
- 
-     general->addChild(LircKeyPressedApp());
-+    general->addChild(ScreenShotPath());
-     general->addChild(row);
-     general->addChild(NetworkControlPort());
-     general->addChild(mediaMon);
-Index: programs/mythfrontend/mythfexml.h
-===================================================================
---- programs/mythfrontend/mythfexml.h	(revision 0)
-+++ programs/mythfrontend/mythfexml.h	(revision 0)
-@@ -0,0 +1,66 @@
-+//////////////////////////////////////////////////////////////////////////////
-+// Program Name: mythxml.h
-+//                                                                            
-+// Purpose - Myth Frontend XML protocol HttpServerExtension 
-+//                                                                            
-+//////////////////////////////////////////////////////////////////////////////
-+
-+#ifndef MYTHFEXML_H_
-+#define MYTHFEXML_H_
-+
-+#include <qdom.h>
-+#include <qdatetime.h> 
-+
-+#include "upnp.h"
-+#include "eventing.h"
-+#include "mythcontext.h"
-+
-+typedef enum 
-+{
-+    MFEXML_Unknown                =  0,
-+    MFEXML_GetScreenShot          =  1
-+
-+} MythFEXMLMethod;
-+
-+class MythFEXML : public Eventing
-+{
-+    private:
-+
-+        QString                      m_sControlUrl;
-+        QString                      m_sServiceDescFileName;
-+
-+    protected:
-+
-+        // Implement UPnpServiceImpl methods that we can
-+
-+        virtual QString GetServiceType      () { return "urn:schemas-mythtv-org:service:MythTv:1"; }
-+        virtual QString GetServiceId        () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; }
-+        virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); }
-+        virtual QString GetServiceDescURL   () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; }
-+
-+    private:
-+
-+        MythFEXMLMethod GetMethod( const QString &sURI );
-+
-+	void    GetScreenShot    ( HTTPRequest *pRequest );
-+
-+    public:
-+                 MythFEXML( UPnpDevice *pDevice );
-+        virtual ~MythFEXML();
-+
-+        bool     ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest );
-+
-+        // Static methods shared with HttpStatus
-+
-+};
-+
-+/////////////////////////////////////////////////////////////////////////////
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// 
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+/////////////////////////////////////////////////////////////////////////////
-+#endif
-+
-+
-Index: programs/mythfrontend/main.cpp
-===================================================================
---- programs/mythfrontend/main.cpp	(revision 15827)
-+++ programs/mythfrontend/main.cpp	(working copy)
-@@ -799,6 +799,11 @@
-     }
- }
- 
-+void getScreenShot(void)
-+{
-+    (void) gContext->GetMainWindow()->screenShot();
-+}
-+
- void InitJumpPoints(void)
- {
-     REG_JUMP("Reload Theme", "", "", reloadTheme);
-@@ -817,6 +822,8 @@
-     REG_JUMP("Status Screen", "", "", showStatus);
-     REG_JUMP("Previously Recorded", "", "", startPrevious);
- 
-+    REG_JUMPEX("ScreenShot","","",getScreenShot,false);
-+
-     REG_KEY("qt", "DELETE", "Delete", "D");
-     REG_KEY("qt", "EDIT", "Edit", "E");
- 
-Index: programs/mythfrontend/mythfrontend.pro
-===================================================================
---- programs/mythfrontend/mythfrontend.pro	(revision 15827)
-+++ programs/mythfrontend/mythfrontend.pro	(working copy)
-@@ -15,7 +15,7 @@
- setting.files += util_menu.xml info_settings.xml main_settings.xml
- setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml
- setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml
--setting.files += tv_settings.xml
-+setting.files += tv_settings.xml MFEXML_scpd.xml
- setting.extra = -ldconfig
- 
- INSTALLS += setting
-@@ -26,13 +26,13 @@
- HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h
- HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h
- HEADERS += statusbox.h networkcontrol.h custompriority.h
--HEADERS += mediarenderer.h
-+HEADERS += mediarenderer.h mythfexml.h
- HEADERS += mythappearance.h
- 
- SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp
- SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp 
- SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp
--SOURCES += mediarenderer.cpp
-+SOURCES += mediarenderer.cpp mythfexml.cpp
- SOURCES += custompriority.cpp
- SOURCES += mythappearance.cpp
- 
-Index: programs/mythfrontend/mythfexml.cpp
-===================================================================
---- programs/mythfrontend/mythfexml.cpp	(revision 0)
-+++ programs/mythfrontend/mythfexml.cpp	(revision 0)
-@@ -0,0 +1,135 @@
-+//////////////////////////////////////////////////////////////////////////////
-+// Program Name: MythXML.cpp
-+//                                                                            
-+// Purpose - Html & XML status HttpServerExtension
-+//                                                                            
-+// Created By  : David Blain                    Created On : Oct. 24, 2005
-+// Modified By : Daniel Kristjansson            Modified On: Oct. 31, 2007
-+//                                                                            
-+//////////////////////////////////////////////////////////////////////////////
-+
-+#include "mythfexml.h"
-+
-+#include "libmyth/mythcontext.h"
-+#include "libmyth/util.h"
-+#include "libmyth/mythdbcon.h"
-+
-+#include "mythmainwindow.h"
-+
-+#include <qtextstream.h>
-+#include <qdir.h>
-+#include <qfile.h>
-+#include <qregexp.h>
-+#include <qbuffer.h>
-+#include <math.h>
-+
-+#include "../../config.h"
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" )
-+{
-+
-+    QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath );
-+
-+    m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml";
-+    m_sControlUrl          = "/MythFE";
-+
-+    // Add our Service Definition to the device.
-+
-+    RegisterService( pDevice );
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXML::~MythFEXML()
-+{
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI )
-+{
-+    if (sURI == "GetScreenShot"        ) return MFEXML_GetScreenShot;
-+
-+    return( MFEXML_Unknown );
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest )
-+{
-+    try
-+    {
-+        if (pRequest)
-+        {
-+            if (pRequest->m_sBaseUrl != m_sControlUrl)
-+                return( false );
-+
-+            VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2")
-+			             .arg(pRequest->m_sMethod)
-+				     .arg(pRequest->m_sRawRequest));
-+
-+            switch( GetMethod( pRequest->m_sMethod ))
-+            {
-+		case MFEXML_GetScreenShot      : GetScreenShot    ( pRequest ); return true;
-+
-+
-+                default: 
-+                {
-+                    UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction );
-+
-+                    return true;
-+                }
-+            }
-+        }
-+    }
-+    catch( ... )
-+    {
-+        VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" );
-+    }
-+
-+    return( false );
-+}           
-+
-+// ==========================================================================
-+// Request handler Methods
-+// ==========================================================================
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+void MythFEXML::GetScreenShot( HTTPRequest *pRequest )
-+{
-+    bool bDefaultPixmap = false;
-+
-+    pRequest->m_eResponseType   = ResponseTypeFile;
-+
-+    // Optional Parameters
-+
-+    int     nWidth    = pRequest->m_mapParams[ "Width"     ].toInt();
-+    int     nHeight   = pRequest->m_mapParams[ "Height"    ].toInt();
-+
-+    // Read Icon file path from database
-+
-+    QString sFileName = "/tmp/moo.jpg";
-+
-+
-+    if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight))
-+    {
-+        VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting");
-+	return;
-+    }
-+
-+    pRequest->m_sFileName = sFileName;
-+}
-+
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff
deleted file mode 100644
index 64ce08c..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/screenshots2.diff
+++ /dev/null
@@ -1,467 +0,0 @@
-Index: libs/libmythui/mythmainwindow.cpp
-===================================================================
---- libs/libmythui/mythmainwindow.cpp	(revision 16103)
-+++ libs/libmythui/mythmainwindow.cpp	(working copy)
-@@ -8,6 +8,8 @@
- #include <qpaintdevicemetrics.h>
- #include <qdir.h>
- #include <qfile.h>
-+#include <math.h>
-+
- #ifdef QWS
- #include <qwindowsystem_qws.h>
- #endif
-@@ -504,6 +507,83 @@
-     d->repaintRegion = d->repaintRegion.unite(pe->region());
- }
- 
-+bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h)
-+{
-+    bool ret = false;
-+
-+    QString extension = fname.section('.', -1, -1);
-+    if (extension == "jpg")
-+        extension = "JPEG";
-+    else 
-+        extension = "PNG";
-+
-+    VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8] type %9")
-+		        .arg(QApplication::desktop()->winId())
-+			.arg(fname)
-+			.arg(w)
-+			.arg(h)
-+			.arg(x)
-+			.arg(y)
-+			.arg(x2)
-+			.arg(y2)
-+			.arg(extension));
-+
-+    QPixmap p;
-+    p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2);
-+
-+    QImage img = p.convertToImage();
-+
-+    if ( w == 0 )
-+        w = img.width();
-+
-+    if ( h == 0 )
-+        h = img.height();
-+
-+    VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4")
-+		    .arg(w)
-+		    .arg(h)
-+		    .arg(img.width())
-+		    .arg(img.height()));
-+
-+    img = img.smoothScale( w, h , QImage::ScaleMin);
-+        
-+    if (img.save(fname ,extension,100))
-+    {
-+        VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded");
-+	ret = true;
-+    }
-+    else 
-+    {
-+	VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!");
-+	ret = false;
-+    }
-+
-+    return ret;
-+}
-+
-+bool MythMainWindow::screenShot(int x, int y, int x2, int y2)
-+{
-+    QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/");
-+    QString fName = QString("/%1/myth-screenshot-%2.png")
-+	            .arg(fPath)
-+	            .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz"));
-+
-+    return screenShot(fName, x, y, x2, y2, 0, 0);
-+}
-+
-+bool MythMainWindow::screenShot(QString fname, int w, int h)
-+{
-+    QRect sLoc = qApp->mainWidget()->geometry();
-+    return screenShot(fname, sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height(), w, h);
-+}
-+
-+
-+bool MythMainWindow::screenShot(void)
-+{
-+    QRect sLoc = qApp->mainWidget()->geometry();
-+    return screenShot(sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height());
-+}
-+
- #ifdef USING_APPLEREMOTE
- // This may be possible via installEventFilter() instead?
- 
-Index: libs/libmythui/mythmainwindow.h
-===================================================================
---- libs/libmythui/mythmainwindow.h	(revision 16103)
-+++ libs/libmythui/mythmainwindow.h	(working copy)
-@@ -101,6 +101,11 @@
- 
-     MythPainter *GetCurrentPainter();
- 
-+    bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h);
-+    bool screenShot(int x, int y, int x2, int y2);
-+    bool screenShot(QString fname, int w, int h);
-+    bool screenShot(void);
-+
-     void AllowInput(bool allow);
- 
-     QRect GetUIScreenRect();
-Index: programs/mythfrontend/mediarenderer.cpp
-===================================================================
---- programs/mythfrontend/mediarenderer.cpp	(revision 16103)
-+++ programs/mythfrontend/mediarenderer.cpp	(working copy)
-@@ -9,6 +9,7 @@
- /////////////////////////////////////////////////////////////////////////////
- 
- #include "mediarenderer.h"
-+#include "mythfexml.h"
- #include "compat.h"
- 
- /////////////////////////////////////////////////////////////////////////////
-@@ -89,6 +90,11 @@
-                                  "http-get:*:video/mpeg:*,"
-                                  "http-get:*:video/nupplevideo:*,"
-                                  "http-get:*:video/x-ms-wmv:*";
-+        // ------------------------------------------------------------------
-+        // Register the MythFEXML protocol... 
-+        // ------------------------------------------------------------------
-+        VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." );
-+        m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() ));
- 
-         // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." ));
-         // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() ));
-Index: programs/mythfrontend/MFEXML_scpd.xml
-===================================================================
---- programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
-+++ programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
-@@ -0,0 +1,34 @@
-+<?xml version="1.0" encoding="utf-8"?>
-+<scpd xmlns="urn:schemas-upnp-org:service-1-0">
-+   <specVersion>
-+      <major>1</major>
-+      <minor>0</minor>
-+   </specVersion>
-+   <actionList>
-+      <action>
-+         <name>GetScreenShot</name>
-+         <argumentList>
-+            <argument>
-+               <name>Height</name>
-+               <direction>in</direction>
-+               <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
-+            </argument>
-+            <argument>
-+               <name>Width</name>
-+               <direction>in</direction>
-+               <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
-+            </argument>
-+         </argumentList>
-+      </action>
-+   </actionList>
-+   <serviceStateTable>
-+      <stateVariable sendEvents="no">
-+         <name>A_ARG_TYPE_Height</name>
-+         <dataType>i2</dataType>
-+      </stateVariable>
-+      <stateVariable sendEvents="no">
-+         <name>A_ARG_TYPE_Width</name>
-+         <dataType>i2</dataType>
-+      </stateVariable>
-+   </serviceStateTable>
-+</scpd>
-Index: programs/mythfrontend/globalsettings.cpp
-===================================================================
---- programs/mythfrontend/globalsettings.cpp	(revision 16103)
-+++ programs/mythfrontend/globalsettings.cpp	(working copy)
-@@ -2220,6 +2220,15 @@
-     return ge;
- }
- 
-+static HostLineEdit *ScreenShotPath()
-+{
-+    HostLineEdit *ge = new HostLineEdit("ScreenShotPath");
-+    ge->setLabel(QObject::tr("ScreenShotPath"));
-+    ge->setValue("/tmp/");
-+    ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend"));
-+    return ge;
-+}
-+
- static HostCheckBox *UseArrowAccels()
- {
-     HostCheckBox *gc = new HostCheckBox("UseArrowAccels");
-@@ -4502,6 +4511,7 @@
-     MythMediaSettings *mediaMon = new MythMediaSettings();
- 
-     general->addChild(LircKeyPressedApp());
-+    general->addChild(ScreenShotPath());
-     general->addChild(row);
-     general->addChild(NetworkControlPort());
-     general->addChild(mediaMon);
-Index: programs/mythfrontend/mythfexml.h
-===================================================================
---- programs/mythfrontend/mythfexml.h	(revision 0)
-+++ programs/mythfrontend/mythfexml.h	(revision 0)
-@@ -0,0 +1,66 @@
-+//////////////////////////////////////////////////////////////////////////////
-+// Program Name: mythxml.h
-+//                                                                            
-+// Purpose - Myth Frontend XML protocol HttpServerExtension 
-+//                                                                            
-+//////////////////////////////////////////////////////////////////////////////
-+
-+#ifndef MYTHFEXML_H_
-+#define MYTHFEXML_H_
-+
-+#include <qdom.h>
-+#include <qdatetime.h> 
-+
-+#include "upnp.h"
-+#include "eventing.h"
-+#include "mythcontext.h"
-+
-+typedef enum 
-+{
-+    MFEXML_Unknown                =  0,
-+    MFEXML_GetScreenShot          =  1
-+
-+} MythFEXMLMethod;
-+
-+class MythFEXML : public Eventing
-+{
-+    private:
-+
-+        QString                      m_sControlUrl;
-+        QString                      m_sServiceDescFileName;
-+
-+    protected:
-+
-+        // Implement UPnpServiceImpl methods that we can
-+
-+        virtual QString GetServiceType      () { return "urn:schemas-mythtv-org:service:MythTv:1"; }
-+        virtual QString GetServiceId        () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; }
-+        virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); }
-+        virtual QString GetServiceDescURL   () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; }
-+
-+    private:
-+
-+        MythFEXMLMethod GetMethod( const QString &sURI );
-+
-+	void    GetScreenShot    ( HTTPRequest *pRequest );
-+
-+    public:
-+                 MythFEXML( UPnpDevice *pDevice );
-+        virtual ~MythFEXML();
-+
-+        bool     ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest );
-+
-+        // Static methods shared with HttpStatus
-+
-+};
-+
-+/////////////////////////////////////////////////////////////////////////////
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// 
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+/////////////////////////////////////////////////////////////////////////////
-+#endif
-+
-+
-Index: programs/mythfrontend/main.cpp
-===================================================================
---- programs/mythfrontend/main.cpp	(revision 16103)
-+++ programs/mythfrontend/main.cpp	(working copy)
-@@ -800,6 +800,11 @@
-     }
- }
- 
-+void getScreenShot(void)
-+{
-+    (void) gContext->GetMainWindow()->screenShot();
-+}
-+
- void InitJumpPoints(void)
- {
-     REG_JUMP("Reload Theme", "", "", reloadTheme);
-@@ -818,6 +823,8 @@
-     REG_JUMP("Status Screen", "", "", showStatus);
-     REG_JUMP("Previously Recorded", "", "", startPrevious);
- 
-+    REG_JUMPEX("ScreenShot","","",getScreenShot,false);
-+
-     REG_KEY("qt", "DELETE", "Delete", "D");
-     REG_KEY("qt", "EDIT", "Edit", "E");
- 
-Index: programs/mythfrontend/mythfrontend.pro
-===================================================================
---- programs/mythfrontend/mythfrontend.pro	(revision 16103)
-+++ programs/mythfrontend/mythfrontend.pro	(working copy)
-@@ -15,7 +15,7 @@
- setting.files += util_menu.xml info_settings.xml main_settings.xml
- setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml
- setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml
--setting.files += tv_settings.xml
-+setting.files += tv_settings.xml MFEXML_scpd.xml
- setting.extra = -ldconfig
- 
- INSTALLS += setting
-@@ -26,13 +26,13 @@
- HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h
- HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h
- HEADERS += statusbox.h networkcontrol.h custompriority.h
--HEADERS += mediarenderer.h
-+HEADERS += mediarenderer.h mythfexml.h
- HEADERS += mythappearance.h
- 
- SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp
- SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp 
- SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp
--SOURCES += mediarenderer.cpp
-+SOURCES += mediarenderer.cpp mythfexml.cpp
- SOURCES += custompriority.cpp
- SOURCES += mythappearance.cpp
- 
-Index: programs/mythfrontend/mythfexml.cpp
-===================================================================
---- programs/mythfrontend/mythfexml.cpp	(revision 0)
-+++ programs/mythfrontend/mythfexml.cpp	(revision 0)
-@@ -0,0 +1,133 @@
-+//////////////////////////////////////////////////////////////////////////////
-+// Program Name: MythXML.cpp
-+//                                                                            
-+// Purpose - Html & XML status HttpServerExtension
-+//                                                                            
-+// Created By  : David Blain                    Created On : Oct. 24, 2005
-+// Modified By : Daniel Kristjansson            Modified On: Oct. 31, 2007
-+//                                                                            
-+//////////////////////////////////////////////////////////////////////////////
-+
-+#include "mythfexml.h"
-+
-+#include "libmyth/mythcontext.h"
-+#include "libmyth/util.h"
-+#include "libmyth/mythdbcon.h"
-+
-+#include "mythmainwindow.h"
-+
-+#include <qtextstream.h>
-+#include <qdir.h>
-+#include <qfile.h>
-+#include <qregexp.h>
-+#include <qbuffer.h>
-+#include <math.h>
-+
-+#include "../../config.h"
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" )
-+{
-+
-+    QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath );
-+
-+    m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml";
-+    m_sControlUrl          = "/MythFE";
-+
-+    // Add our Service Definition to the device.
-+
-+    RegisterService( pDevice );
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXML::~MythFEXML()
-+{
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI )
-+{
-+    if (sURI == "GetScreenShot"        ) return MFEXML_GetScreenShot;
-+
-+    return( MFEXML_Unknown );
-+}
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest )
-+{
-+    try
-+    {
-+        if (pRequest)
-+        {
-+            if (pRequest->m_sBaseUrl != m_sControlUrl)
-+                return( false );
-+
-+            VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2")
-+			             .arg(pRequest->m_sMethod)
-+				     .arg(pRequest->m_sRawRequest));
-+
-+            switch( GetMethod( pRequest->m_sMethod ))
-+            {
-+		case MFEXML_GetScreenShot      : GetScreenShot    ( pRequest ); return true;
-+
-+
-+                default: 
-+                {
-+                    UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction );
-+
-+                    return true;
-+                }
-+            }
-+        }
-+    }
-+    catch( ... )
-+    {
-+        VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" );
-+    }
-+
-+    return( false );
-+}           
-+
-+// ==========================================================================
-+// Request handler Methods
-+// ==========================================================================
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+/////////////////////////////////////////////////////////////////////////////
-+
-+void MythFEXML::GetScreenShot( HTTPRequest *pRequest )
-+{
-+    pRequest->m_eResponseType   = ResponseTypeFile;
-+
-+    // Optional Parameters
-+
-+    int     nWidth    = pRequest->m_mapParams[ "Width"     ].toInt();
-+    int     nHeight   = pRequest->m_mapParams[ "Height"    ].toInt();
-+
-+    // Read Icon file path from database
-+
-+    QString sFileName = QString("/%1/myth-screenshot-XML.jpg")
-+                    .arg(gContext->GetSetting("ScreenShotPath","/tmp/"));
-+
-+    if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight))
-+    {
-+        VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting");
-+	return;
-+    }
-+
-+    pRequest->m_sFileName = sFileName;
-+}
-+
diff --git a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch b/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch
deleted file mode 100644
index ca9bd08..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-release-fixes/smolt_jump.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- programs/mythfrontend/networkcontrol.cpp.orig	2008-03-23 23:00:25.000000000 +0000
-+++ programs/mythfrontend/networkcontrol.cpp	2008-03-23 23:01:33.000000000 +0000
-@@ -81,6 +81,7 @@
-     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
-     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
-     jumpMap["snapshot"]              = "ScreenShot";
-+    jumpMap["mythsmolt"]             = "MythSmolt";
- 
-     // These jump point names match the (lowercased) locations from gContext
-     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
diff --git a/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD b/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD
deleted file mode 100755
index 877b790..0000000
--- a/abs/mv-core/myth/release-fixes/mythtv-themes/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythtv-themes-release-fixes
-pkgver=15931                           
-pkgrel=7
-pkgdesc="themes for mythtv" 
-url="http://www.mythtv.org" 
-license="GPL" 
-depends=( ) 
-#makedepends=('sqlite3' 'sed') 
-conflicts=() 
-replaces=() 
-backup=() 
-#install='mythtv.install' 
-source=() 
-arch=('i686')
-md5sums=() 
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/myththemes
-_svnmod=myththemes
-
-build() { 
-echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-#svn co http://cvs.mythtv.org/svn/trunk/mythtv
-#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
-#svn co http://cvs.mythtv.org/svn/trunk/myththemes
-cd $startdir/src/myththemes
-   make distclean
-    ./configure --prefix=/usr 
-    #./configure --disable-all --enable-mythweather --enable-fftw --disable-aac  
-   make  || return 1
-   make INSTALL_ROOT=$startdir/pkg install
-#   cd $startdir/src/$pkgname
-#   cd mythmovietime
-#   make || return 1
-#   make INSTALL_ROOT=$startdir/pkg install
-
-}
diff --git a/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD
deleted file mode 100644
index ad6b8fb..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mytharchive/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-pkgname=mytharchive-release-fixes
-pkgver=17719
-pkgrel=6
-pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
-arch=('i686')
-url="http://www.mythtv.org"
-license=('GPL')
-depends=('mythtv-release-fixes' 'libxmu' 'mysql-python' 'pil' 'dvdauthor' 'cdrkit' 'dvd+rw-tools' 'mjpegtools' 'transcode' )
-source=()
-groups=('mythtv-all-plugins-release-fixes')
-#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-   	PLUGIN=mytharchive
-   	cd $startdir/src/
-   	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   	cd $startdir/src/mythplugins
-
-   	PLUGIN=mytharchive
-   	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg "appending program lib"
-	fi
-	msg "Correcting configure    kde3 to kde"
-	 sed -i 's#kde3#kde#' configure || return 1
-	make distclean
-   	./configure  --prefix=/usr --enable-opengl --disable-all   --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1
-	qmake mythplugins.pro || return 1
-	make qmake || return 1
-	msg "Correcting Makefile    kde3 to kde"
-	sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1
-   	make -j 2 || return 1
-	make INSTALL_ROOT=$startdir/pkg install
-}
-
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD
deleted file mode 100644
index adfe87a..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythbrowser/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-
-pkgname=mythbrowser-release-fixes
-pkgver=17284
-pkgrel=2
-pkgdesc="Mini web browser for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes' 'wget' 'libxvmc' 'kdelibs3')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-build() {
-   cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   cd $startdir/src/mythplugins
-   pwd
-   PLUGIN=mythbrowser
-   grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-   if [ $? != 0 ]
-   then
-	   	echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure --prefix=/usr  --enable-opengl --disable-all --enable-mythbrowser || return 1
- #  sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1
-   make || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD
deleted file mode 100644
index ea1109f..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythcontrols/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythcontrols-release-fixes
-pkgver=17719
-pkgrel=5
-pkgdesc="Experimental controls for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv'-release-fixes)
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythcontrols
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythcontrols --prefix=/usr
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD
deleted file mode 100644
index a3a48fe..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythflix/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythflix-release-fixes
-pkgver=17719
-pkgrel=2
-pkgdesc="Netflix access plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	PLUGIN=mythflix
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure --prefix=/usr  --disable-all --enable-opengl --enable-mythflix 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD
deleted file mode 100644
index a12e22c..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythgallery/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythgallery-release-fixes
-pkgver=17719
-pkgrel=3
-pkgdesc="Image gallery plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes' 'libexif' 'libtiff')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	export QMAKESPEC='linux-g++'
-	PLUGIN=mythgallery
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure  --prefix=/usr --disable-all --enable-opengl --enable-mythgallery --enable-exif
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD
deleted file mode 100644
index 8cf2f65..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythgame/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythgame-release-fixes
-pkgver=17719
-pkgrel=4
-pkgdesc="Emulation plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes' 'zlib')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythgame
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg	 "appending program lib"
-		fi
-	export QMAKESPEC='linux-g++'
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythgame --prefix=/usr
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD
deleted file mode 100644
index 5560410..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythmovietime/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-pkgname=mythmovietime-release-fixes
-pkgver=17284
-pkgrel=6
-pkgdesc="Emulation plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes' 'zlib')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythmovietime
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	export QMAKESPEC='linux-g++'
-	make distclean
-   ./configure  --prefix=/usr --disable-all --enable-mythmovies 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD
deleted file mode 100644
index bfb1de5..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythmusic/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-pkgname=mythmusic-release-fixes
-pkgver=17719
-pkgrel=9
-pkgdesc="Music playing plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686' 'x86_64')
-
-
-depends=("mythtv-release-fixes>=${pkgver}" 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
-         'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \
-	 	 'libvisual-plugins' 'libvisual-projectm')
-
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	make distclean
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins/mythmusic
-#	patch -p1 < ../../gcc4.3.patch
-	cd $startdir/src/mythplugins
-     ./configure  --disable-all --enable-mythmusic --enable-fftw --enable-sdl --disable-aac --enable-opengl --prefix=/usr
-	PLUGIN=mythmusic
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-	fi
-
-   make  || return 1
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch b/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch
deleted file mode 100644
index b152249..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythmusic/music_flac.patch
+++ /dev/null
@@ -1,293 +0,0 @@
---- flacdecoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.cpp	2007-03-11 18:15:34.000000000 -0400
-@@ -17,7 +17,7 @@
- 
- #include <qtimer.h>
- 
--static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
-+static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -26,27 +26,27 @@
- 
-     if (len == -1)
-     {
--        return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
-     }
-    
-     *bytes = len;
--    return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
-+    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
- }
- 
--static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
-+static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     if (!dflac->input()->isDirectAccess())
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- 
-     if (dflac->input()->at(absolute_byte_offset))
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
--    return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
-+    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- }
- 
--static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
-+static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
-@@ -54,20 +54,20 @@
-     long t = dflac->input()->at();
-     *absolute_byte_offset = t;
- 
--    return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
-+    return FLAC__STREAM_DECODER_TELL_STATUS_OK;
- }
- 
--static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
-+static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
- {
-     decoder = decoder;
- 
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     *stream_length = dflac->input()->size();
--    return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
-+    return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
- }
- 
--static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
-+static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -76,7 +76,7 @@
-     return dflac->input()->atEnd();
- }
- 
--static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
-+static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
- {
-     decoder = decoder;
- 
-@@ -132,7 +132,7 @@
-     }
- }
- 
--static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
-+static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -156,11 +156,11 @@
-     }
- }
- 
--static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
-+static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
- {
-     decoder = decoder;
- 
--    FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
-+    FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data;
- 
-     file_decoder = file_decoder;
-     status = status;
-@@ -262,17 +262,8 @@
-         }
-     }
- 
--    decoder = FLAC__seekable_stream_decoder_new();
--    FLAC__seekable_stream_decoder_set_md5_checking(decoder, false);
--    FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread);
--    FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek);
--    FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell);
--    FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength);
--    FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof);
--    FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite);
--    FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata);
--    FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror);
--    FLAC__seekable_stream_decoder_set_client_data(decoder, this);
-+    decoder = FLAC__stream_decoder_new();
-+    FLAC__stream_decoder_set_md5_checking(decoder, false);
- 
-     freq = 0;
-     bitrate = 0;
-@@ -281,8 +272,17 @@
-     totalTime = 0; 
-     totalTime = totalTime < 0 ? 0 : totalTime;
- 
--    FLAC__seekable_stream_decoder_init(decoder);
--    FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder);
-+    FLAC__stream_decoder_init_stream(decoder,
-+                                     flacread,
-+                                     flacseek,
-+                                     flactell,
-+                                     flaclength,
-+                                     flaceof,
-+                                     flacwrite,
-+                                     flacmetadata,
-+                                     flacerror,
-+                                     this);
-+    FLAC__stream_decoder_process_until_end_of_metadata(decoder);
- 
-     inited = TRUE;
-     return TRUE;
-@@ -295,8 +295,8 @@
- 
- void FlacDecoder::deinit()
- {
--    FLAC__seekable_stream_decoder_finish(decoder);
--    FLAC__seekable_stream_decoder_delete(decoder);
-+    FLAC__stream_decoder_finish(decoder);
-+    FLAC__stream_decoder_delete(decoder);
- 
-     if (input()->isOpen())
-         input()->close();
-@@ -330,7 +330,7 @@
-     }
- 
-     bool flacok = true;
--    FLAC__SeekableStreamDecoderState decoderstate;
-+    FLAC__StreamDecoderState decoderstate;
- 
-     while (! done && ! finish) {
-         lock();
-@@ -340,12 +340,12 @@
-             FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0);
-             if (sample > totalsamples - 50)
-                 sample = totalsamples - 50;
--            FLAC__seekable_stream_decoder_seek_absolute(decoder, sample);
-+            FLAC__stream_decoder_seek_absolute(decoder, sample);
-             seekTime = -1.0;
-         }
- 
--        flacok = FLAC__seekable_stream_decoder_process_single(decoder);
--        decoderstate = FLAC__seekable_stream_decoder_get_state(decoder);
-+        flacok = FLAC__stream_decoder_process_single(decoder);
-+        decoderstate = FLAC__stream_decoder_get_state(decoder);
- 
-         if (decoderstate == 0 || decoderstate == 1)
-         {
---- flacdecoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -35,7 +35,7 @@
-     char *output_buf;
-     ulong output_bytes, output_at;
- 
--    FLAC__SeekableStreamDecoder *decoder;
-+    FLAC__StreamDecoder *decoder;
- 
-     unsigned int bks;
-     bool done, finish;
---- flacencoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.cpp	2007-03-11 18:14:12.000000000 -0400
-@@ -9,7 +9,7 @@
- #include "flacencoder.h"
- #include "metaioflacvorbiscomment.h"
- 
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- #include <FLAC/assert.h>
- #include <mythtv/mythcontext.h>
- 
-@@ -29,32 +29,32 @@
-     int rice_parameter_search_dist = 0;
-     int max_lpc_order = 8;
- 
--    encoder = FLAC__file_encoder_new();
-+    encoder = FLAC__stream_encoder_new();
- 
--    FLAC__file_encoder_set_streamable_subset(encoder, true);
--    FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
--    FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
--    FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS);
--    FLAC__file_encoder_set_bits_per_sample(encoder, 16);
--    FLAC__file_encoder_set_sample_rate(encoder, 44100);
--    FLAC__file_encoder_set_blocksize(encoder, blocksize);
--    FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order);
--    FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
--    FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false);
--    FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding);
--    FLAC__file_encoder_set_do_exhaustive_model_search(encoder, 
-+    FLAC__stream_encoder_set_streamable_subset(encoder, true);
-+    FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
-+    FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
-+    FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS);
-+    FLAC__stream_encoder_set_bits_per_sample(encoder, 16);
-+    FLAC__stream_encoder_set_sample_rate(encoder, 44100);
-+    FLAC__stream_encoder_set_blocksize(encoder, blocksize);
-+    FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order);
-+    FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
-+    FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false);
-+    FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding);
-+    FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, 
-                                                     do_exhaustive_model_search);
--    FLAC__file_encoder_set_min_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_min_residual_partition_order(encoder, 
-                                                   min_residual_partition_order);
--    FLAC__file_encoder_set_max_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_max_residual_partition_order(encoder, 
-                                                   max_residual_partition_order);
--    FLAC__file_encoder_set_rice_parameter_search_dist(encoder, 
-+    FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 
-                                                     rice_parameter_search_dist);
- 
--    FLAC__file_encoder_set_filename(encoder, outfile.local8Bit());
-+    
- 
--    int ret = FLAC__file_encoder_init(encoder);
--    if (ret != FLAC__FILE_ENCODER_OK)
-+    int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL);
-+    if (ret != FLAC__STREAM_ENCODER_OK)
-     {
-         VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder."
-                                     " Got return code: %1").arg(ret));
-@@ -70,8 +70,8 @@
- 
-     if (encoder)
-     {
--        FLAC__file_encoder_finish(encoder);
--        FLAC__file_encoder_delete(encoder);
-+        FLAC__stream_encoder_finish(encoder);
-+        FLAC__stream_encoder_delete(encoder);
-     }
- 
-     if (metadata)
-@@ -102,7 +102,7 @@
- 
-         if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) 
-         {
--            if (!FLAC__file_encoder_process(encoder,
-+            if (!FLAC__stream_encoder_process(encoder,
-                                             (const FLAC__int32 * const *) input,
-                                             sampleindex))
-             {
---- flacencoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -4,7 +4,7 @@
- #include <qstring.h>
- 
- #define HAVE_INTTYPES_H
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- 
- #include "encoder.h"
- 
-@@ -21,7 +21,7 @@
-     int addSamples(int16_t *bytes, unsigned int len);
- 
-   private:
--    FLAC__FileEncoder *encoder;
-+    FLAC__StreamEncoder *encoder;
-     unsigned int sampleindex;
-     FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES];
-     FLAC__int32 *input[NUM_CHANNELS];
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD
deleted file mode 100644
index 90ae093..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythnews/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=mythnews-release-fixes
-pkgver=17719
-pkgrel=4
-pkgdesc="News checking plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	PLUGIN=mythnews
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure --disable-all --enable-mythnews --prefix=/usr
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD
deleted file mode 100644
index 7227958..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythphone/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-pkgname=mythphone-release-fixes
-pkgver=17719
-pkgrel=3
-pkgdesc="Plugin that allows phone calls to be made to MythTv"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	make distclean
-	PLUGIN=mythphone
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg  "appending program lib"
-	fi
-	
-	msg "Correcting configure    kde3 to kde"
-   	sed -i 's#kde3#kde#' configure || return 1
-   	./configure  --prefix=/usr --enable-opengl --disable-all --enable-mythphone || return 1
-	qmake mythplugins.pro || return 1
-	make qmake || return 1
-	
-	msg "Correcting Makefile    kde3 to kde"
- 	sed -i 's#kde3#kde#' ./mythphone/mythphone/Makefile || return 1
-   	
-	make -j 2 || return 1
-	make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD
deleted file mode 100644
index b8e421a..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythsmolt/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-pkgname=mythsmolt-release-fixes
-pkgver=0.21
-pkgrel=4
-pkgdesc="mythsmolt, a hardware profileing tool"
-arch=('i686' 'x86_64')
-url="http://www.mythvantage.com"
-license=('GPL')
-depends=("mythtv-release-fixes" urlgrabber hal)
-source=("http://www.mythvantage.com/request.php?4")
-
-groups=('mythtv-extras')
-
-build() {
-   cd $startdir/src/mythsmolt_src/mythsmolt
-   . /etc/profile.d/qt3.sh
-   
-   # use QT3 qmake
-   export PATH=$QTDIR/bin:$PATH
-   echo "INCLUDEPATH += /usr/include/mythtv" >> mythsmolt.pro.usr
-   qmake mythsmolt.pro.usr
-   make qmake || return 1
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
-
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD
deleted file mode 100644
index 2be63e3..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythvideo/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythvideo-release-fixes
-pkgver=17719
-pkgrel=2
-pkgdesc="Video playback and browsing plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes'  'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
-license="GPL"
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-
-source=()
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-  	make distclean 
-	PLUGIN=mythvideo
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-   ./configure --prefix=/usr  --disable-all --enable-mythvideo  --enable-transcode  
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD
deleted file mode 100644
index 2870928..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythweather/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-pkgname=mythweather-release-fixes
-pkgver=17719
-pkgrel=6
-pkgdesc="Weather checking plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-release-fixes' 'wget' 'perl-xml-sax' 'perl-soap-lite' 'perl-image-size'  'imagemagick')
-conflicts=('mythtv-plugins-release-fixes')
-groups=('mythtv-all-plugins-release-fixes')
-license="GPL"
-source=()
-#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	make distclean
-	PLUGIN=mythweather
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-   ./configure  --enable-opengl --disable-all --enable-mythweather --prefix=/usr
- 
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD b/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD
deleted file mode 100755
index 9bddf1c..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythweb/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=mythweb-release-fixes
-pkgver=17724
-pkgrel=21
-pkgdesc="mythweb" 
-url="http://www.mythtv.org" 
-license="GPL" 
-arch=('i686')
-depends=(php fcgi libmysqlclient ) 
-conflicts=('mythweb' 'mythweb-fixes') 
-replaces=() 
-backup=() 
-install='mythweb.install' 
-source=(mythweblighttpd.patch dblogininit.inc ) 
-md5sums=() 
-_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
-_svnmod=mythplugins
-build() { 
-echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-#svn co http://cvs.mythtv.org/svn/trunk/mythtv
-#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
-#svn co http://cvs.mythtv.org/svn/trunk/myththemes
-cd $startdir/src/mythplugins
-
-#take care of fing mythweb
-mkdir -p $startdir/pkg/data/srv/httpd/htdocs/
-cp -rp mythweb $startdir/pkg/data/srv/httpd/htdocs/
-cp -f $startdir/src/dblogininit.inc $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes/
-cd  $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes
-patch -p0 < $startdir/src/mythweblighttpd.patch
-
-chown -R nobody:nobody $startdir/pkg/data/srv/httpd/htdocs/mythweb
-chmod -R  775 $startdir/pkg/data/srv/httpd/htdocs/mythweb
-}
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc b/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc
deleted file mode 100755
index c5395c5..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythweb/dblogininit.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-<?
- $_SERVER["db_server"] = "localhost";
- $_SERVER["db_name"] = "mythconverg";
- $_SERVER["db_login"] = "mythtv";
- $_SERVER["db_password"] = "mythtv";
-?>
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install
deleted file mode 100755
index e135b6c..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweb.install
+++ /dev/null
@@ -1,37 +0,0 @@
-
-# arg 1:  the new package version
-pre_install () {
-/bin/true
-}
-
-post_install() {
-	#cp /etc/lighttpd/lighttpd.conf /tmp
-#	sed -e "s/# .*  \"mod_fastcgi\",/\"mod_fastcgi\"\,/g" /tmp/lighttpd.conf > /etc/lighttpd/lighttpd.conf
- /bin/true
-
-}
-pre_upgrade () {
- pre_install
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  post_install
-
-  /bin/true
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-/bint/true
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch b/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch
deleted file mode 100755
index 6403a88..0000000
--- a/abs/mv-core/myth/release-fixes/plugins/mythweb/mythweblighttpd.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- database.php.orig	2007-12-31 21:25:30.000000000 +0000
-+++ database.php	2007-12-31 21:25:50.000000000 +0000
-@@ -18,6 +18,10 @@
-         custom_error("Please install the MySQL libraries for PHP.\n"
-                     .'The package is usually called something like php-mysql.');
-     }
-+     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
-+	      require_once 'dblogininit.inc';
-+	      }
-+	
- 
- // No database connection info defined?
-     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
diff --git a/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD b/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD
deleted file mode 100755
index a40d639..0000000
--- a/abs/mv-core/myth/release-fixes/syth-lacquer-clean/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-pkgname=syth-lacquer-clean-wide
-pkgver=1
-pkgrel=10
-pkgdesc=""
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
- arch=('i686')
-#source=($pkgname.tar.bz2)
-source=(http://jmeyer.us/e107_files/downloads/SVN/$pkgname.tar.bz2)
-
-md5sums=()
-
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD b/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD
deleted file mode 100755
index 1aa8c77..0000000
--- a/abs/mv-core/myth/release-fixes/syth-lacquer-wide/PKGBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-pkgname=syth-lacquer-wide
-pkgver=4
-pkgrel=2
-pkgdesc="Syth for mythtv .21"
-url=""
-license=""
-depends=()
-makedepends=()
-conflicts=()
-replaces=()
-backup=()
-arch='i686'
-
-source=(http://www.mythvantage.com/src/syth-lacquer-wide.tgz)
-
-md5sums=()
-
-build() {
-  cd $startdir/src
-  mkdir -p $startdir/pkg/usr/share/mythtv/themes
-  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
-
-}
diff --git a/abs/mv-core/myth/stable/Midnight-blue/PKGBUILD b/abs/mv-core/myth/stable/Midnight-blue/PKGBUILD
new file mode 100755
index 0000000..d5fe664
--- /dev/null
+++ b/abs/mv-core/myth/stable/Midnight-blue/PKGBUILD
@@ -0,0 +1,21 @@
+pkgname=Midnight-blue
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/Midnight-blue.tgz)
+arch=i686
+md5sums=()
+
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/Midnight-wide/PKGBUILD b/abs/mv-core/myth/stable/Midnight-wide/PKGBUILD
new file mode 100755
index 0000000..13b0e6e
--- /dev/null
+++ b/abs/mv-core/myth/stable/Midnight-wide/PKGBUILD
@@ -0,0 +1,21 @@
+pkgname=Midnight-wide
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/Midnight-wide.tgz)
+arch=i686
+md5sums=()
+
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
new file mode 100755
index 0000000..c9b7e20
--- /dev/null
+++ b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/HOST_SETTINGS.xml
@@ -0,0 +1,71 @@
+<mythmenu name="HOST_SETTINGS">
+
+   <button>
+       <type>MV_NETWORK_SETUP_MENU</type>
+      <text>Network Settings</text>
+      <action>EXEC  mythinstall -s network </action>
+   </button>
+
+   <button>
+       <type>MV_SYSTEM_SETUP_MENU</type>
+      <text>System type</text>
+        <action>EXEC  mythinstall -s hostype </action>
+   </button>
+
+   <button>
+       <type>MV_MISC_SETUP_MENU</type>
+      <text>Misc Settings</text>
+       <action>EXEC  mythinstall -s misc </action>
+   </button>
+
+   <button>
+       <type>MV_SOFTWARE_MENU</type>
+      <text>Software</text>
+       <action>EXEC  mythinstall -s  plugins </action>
+   </button>
+
+   <button>
+      <type>MV_SHUTDOWN_SETUP_MENU</type>
+      <text>Shutdown settings</text>
+        <action>EXEC  mythinstall -s sleep </action>
+   </button>
+
+
+<button>
+   <type>MV_ADVANCED_X_SETUP_MENU</type>
+    <text>Display</text>
+    <action>EXEC  mythinstall -s advancedX</action>
+</button>
+
+<button>
+   <type>MV_ADVANCED_SETUP_MENU</type>
+    <text>Advanced settings</text>
+    <action>EXEC  mythinstall -s advanced</action>
+</button>
+
+
+<button>
+       <type>MV_AUDIO_SETUP_MENU</type>
+       <text>Audio settings</text>
+        <action>EXEC  mythinstall -s sound </action>
+</button>
+
+
+<button>
+       <type>MV_ACCESS_SETUP_MENU</type>
+       <text>Access</text>
+       <action>EXEC  mythinstall -s accesscontrol </action>
+</button>
+   <!--
+   <button>
+       <type>SETUP_MENU</type>
+       <text>Settings profile manager</text>
+        <action>EXEC  mythinstall -t </action>
+
+   </button>
+   -->
+
+
+
+
+</mythmenu>
diff --git a/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
new file mode 100644
index 0000000..aeecbbb
--- /dev/null
+++ b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml
@@ -0,0 +1,121 @@
+<mythmenu name="UTIL">
+
+   <button>
+      <type>MUSIC_PLAYLIST</type>
+      <text>Music Tools</text>
+      <text lang="IT">Opzioni Musica</text>
+      <text lang="DE">Musik verwalten</text>
+      <text lang="IS">Tónlistartól</text>
+      <text lang="NL">Muziek Beheren</text>
+      <text lang="SV">Musikverktyg</text>
+      <text lang="FR">Gestion Musiques</text>
+      <text lang="JA">ミュージックツール</text>
+      <text lang="FI">Musiikkityökalut</text>
+      <text lang="ZH_TW">音樂工具</text>
+      <text lang="SI">Glasbena orodja</text>
+      <text lang="ET">Muusikatööriistad</text>
+      <text lang="NB">Musikkverktøy</text>
+      <text lang="DK">Musikværktøjer</text>
+      <text lang="ES">Gestionar Música</text>
+      <text lang="PT">Gerir Música</text>
+      <text lang="CZ">Hudební nástroje</text>
+      <text lang="RU">Работа с музыкой</text>
+      <text lang="PL">Narzędzia muzyczne</text>
+      <text lang="HE">כלי מוסיקה</text>
+      <action>PLUGIN mythmusic</action>
+      <depends>mythmusic</depends>	
+   </button>
+
+   <button>
+      <type>VIDEO_MANAGER</type>
+      <text>Video Manager</text>
+      <text lang="IT">Gestione Video</text>
+      <text lang="ES">Gestionar Videos</text>
+      <text lang="CA">Gestionar vÃ­deos</text>
+      <text lang="DK">Filmopsætning</text>
+      <text lang="DE">Videos verwalten</text>
+      <text lang="IS">Kvikmyndatól</text>
+      <text lang="PT">Gerir Filmes</text>
+      <text lang="SV">Filmhanterare</text>
+      <text lang="FR">Gestion Vidéos</text>
+      <text lang="NL">Films Beheren</text>
+      <text lang="JA">ビデオマネージャー</text>
+      <text lang="FI">Videonhallinta</text>
+      <text lang="ZH_TW">電影工具</text>
+      <text lang="SI">Video orodja</text>
+      <text lang="ET">Videohaldus</text>
+      <text lang="NB">Videobehandler</text>
+      <text lang="CZ">Manažer filmů</text>
+      <text lang="RU">Управление фильмами</text>
+      <text lang="PL">Zarządca Filmów</text>
+      <text lang="HE">מנהל וידאו</text>
+      <action>JUMP Video Manager</action>
+      <depends>mythvideo</depends>
+   </button>
+    
+   <button>
+      <type>SETUP_KEYS</type>
+      <text>Edit Keys</text>
+      <text lang="IT">Modifica Tasti</text>
+      <text lang="FR">Configurer les touches</text>
+      <text lang="IS">Stilla takka</text>
+      <text lang="DE">Tastenbelegung ändern</text>
+      <text lang="FI">Muokkaa Näppäimiä</text>
+      <text lang="DK">Redigér tasteindstillinger</text>
+      <text lang="SV">Ändra knappar</text>
+      <text lang="ES">Editar Teclas</text>
+      <text lang="PT">Configurar Teclas</text>
+      <text lang="ET">Klahvide muutmine</text>
+      <text lang="NL">Toetsen Aanpassen</text>
+      <text lang="CZ">Editovat klávesy</text>
+      <text lang="JA">キー設定</text>
+      <text lang="RU">Редактировать клавиши</text>
+      <text lang="SI">Urejanje tipk</text>
+      <text lang="PL">Edytuj klawisze</text>
+      <text lang="HE">עריכת מקשים</text>
+      <action>PLUGIN mythcontrols</action>
+      <depends>mythcontrols</depends>	
+   </button>
+      
+   <button>
+      <type>SETUP_MENU</type>
+      <text>Setup</text>
+      <text lang="IT">Impostazioni</text>
+      <text lang="ES">Configurar</text>
+      <text lang="CA">Configurar</text>
+      <text lang="FR">Paramètres</text>
+      <text lang="DE">Konfiguration</text>
+      <text lang="DK">Indstillinger</text>
+      <text lang="IS">Stillingar</text>
+      <text lang="NL">Configuratie</text>
+      <text lang="PT">Configurações</text>
+      <text lang="SV">Inställningar</text>
+      <text lang="JA">設定</text>
+      <text lang="FI">Asetukset</text>
+      <text lang="ZH_TW">設定</text>
+      <text lang="SI">Nastavitve</text>
+      <text lang="ET">Sätted</text>
+      <text lang="NB">Innstillinger</text>
+      <text lang="CZ">Nastavení</text>
+      <text lang="RU">Настройки</text>
+      <text lang="PL">Ustawienia</text>
+      <text lang="HE">הגדרה</text>
+      <action>MENU main_settings.xml</action>
+   </button>
+   <button>
+       <type>MV_SETUP_MENU</type>
+       <text>MythVantage Settings</text>
+       <action>MENU HOST_SETTINGS.xml</action>
+
+   </button>
+
+   <button>
+       <type>MV_TEMPLATE</type>
+       <text>Settings profile manager</text>
+        <action>EXEC  mythinstall -t </action>
+
+   </button>
+
+
+
+</mythmenu>
diff --git a/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
new file mode 100755
index 0000000..4a94303
--- /dev/null
+++ b/abs/mv-core/myth/stable/MythVanage-mythmenu/MythVantage-menu/util_menu.xml.mv
@@ -0,0 +1,106 @@
+<mythmenu name="UTIL">
+
+   <button>
+      <type>MUSIC_PLAYLIST</type>
+      <text>Music Tools</text>
+      <text lang="DE">Musik verwalten</text>
+      <text lang="IS">Tónlistartól</text>
+      <text lang="NL">Muziek Beheren</text>
+      <text lang="SV">Musikverktyg</text>
+      <text lang="FR">Musiques</text>
+      <text lang="JA">ミュージックツール</text>
+      <text lang="FI">Musiikkityökalut</text>
+      <text lang="ZH_TW">音樂工具</text>
+      <text lang="SI">Glasbena orodja</text>
+      <text lang="ET">Muusikatööriistad</text>
+      <text lang="NB">Musikkverktøy</text>
+      <text lang="DK">Musikværktøjer</text>
+      <text lang="ES">Gestionar Música</text>
+      <text lang="PT">Gerir Música</text>
+      <text lang="CZ">Hudební nástroje</text>
+      <text lang="RU">Работа с музыкой</text>
+      <action>PLUGIN mythmusic</action>
+      <depends>mythmusic</depends>	
+   </button>
+
+   <button>
+      <type>VIDEO_MANAGER</type>
+      <text>Video Manager</text>
+      <text lang="ES">Gestionar Videos</text>
+      <text lang="CA">Gestionar vÃ­deos</text>
+      <text lang="DK">Filmopsætning</text>
+      <text lang="DE">Videos verwalten</text>
+      <text lang="IS">Kvikmyndatól</text>
+      <text lang="PT">Gerir Filmes</text>
+      <text lang="SV">Filmhanterare</text>
+      <text lang="FR">Vidéos</text>
+      <text lang="NL">Films Beheren</text>
+      <text lang="JA">ビデオマネージャー</text>
+      <text lang="FI">Videonhallinta</text>
+      <text lang="ZH_TW">電影工具</text>
+      <text lang="SI">Video manager</text>
+      <text lang="ET">Videohaldus</text>
+      <text lang="NB">Videobehandler</text>
+      <text lang="CZ">Manažer filmů</text>
+      <text lang="RU">Управление фильмами</text>
+      <action>JUMP Video Manager</action>
+      <depends>mythvideo</depends>
+   </button>
+    
+   <button>
+      <type>SETUP_KEYS</type>
+      <text>Edit Keys</text>
+      <text lang="FR">Configurer les touches</text>
+      <text lang="IS">Stilla takka</text>
+      <text lang="DE">Tastenbelegung ändern</text>
+      <text lang="FI">Muokkaa Näppäimiä</text>
+      <text lang="DK">Redigér tasteindstillinger</text>
+      <text lang="SV">Ändra knappar</text>
+      <text lang="ES">Editar Teclas</text>
+      <text lang="PT">Configurar Teclas</text>
+      <text lang="ET">Klahvide muutmine</text>
+      <text lang="NL">Toetsen Aanpassen</text>
+      <text lang="CZ">Editovat klávesy</text>
+      <text lang="JA">キー設定</text>
+      <text lang="RU">Редактировать клавиши</text>
+      <action>PLUGIN mythcontrols</action>
+      <depends>mythcontrols</depends>	
+   </button>
+      
+   <button>
+      <type>SETUP_MENU</type>
+      <text>Setup</text>
+      <text lang="IT">Impostazioni</text>
+      <text lang="ES">Configurar</text>
+      <text lang="CA">Configurar</text>
+      <text lang="FR">Configuration</text>
+      <text lang="DE">Konfiguration</text>
+      <text lang="DK">Indstillinger</text>
+      <text lang="IS">Stillingar</text>
+      <text lang="NL">Configuratie</text>
+      <text lang="PT">Configurações</text>
+      <text lang="SV">Inställningar</text>
+      <text lang="JA">設定</text>
+      <text lang="FI">Asetukset</text>
+      <text lang="ZH_TW">設定</text>
+      <text lang="SI">Nastavitve</text>
+      <text lang="ET">Sätted</text>
+      <text lang="NB">Innstillinger</text>
+      <text lang="CZ">Nastavení</text>
+      <text lang="RU">Настройки</text>
+      <action>MENU main_settings.xml</action>
+   </button>
+   <button>
+       <type>MV_SETUP_MENU</type>
+       <text>MythVantage Settings</text>
+       <action>MENU HOST_SETTINGS.xml</action>
+
+   </button>
+
+   <button>
+       <type>MV_TEMPLATE</type>
+       <text>Settings profile manager</text>
+        <action>EXEC  mythinstall -t </action>
+
+   </button>
+</mythmenu>
diff --git a/abs/mv-core/myth/stable/MythVanage-mythmenu/PKGBUILD b/abs/mv-core/myth/stable/MythVanage-mythmenu/PKGBUILD
new file mode 100755
index 0000000..e03f7a6
--- /dev/null
+++ b/abs/mv-core/myth/stable/MythVanage-mythmenu/PKGBUILD
@@ -0,0 +1,15 @@
+pkgname=MythVantage-mythmenu
+pkgver=21228
+pkgrel=1
+pkgdesc="Myth menu with MythVantage settings"
+#depends=( mythtv-svn )
+source=()
+arch=('i686')
+build() {
+        cd $startdir/src
+        rsync -a --exclude=.svn $startdir/MythVantage-menu .
+        mkdir -p  -m 755 $startdir/pkg/usr/share/mythtv/themes
+        cp -rp MythVantage-menu $startdir/pkg/usr/share/mythtv/themes
+
+}
+
diff --git a/abs/mv-core/myth/stable/basic-amber/PKGBUILD b/abs/mv-core/myth/stable/basic-amber/PKGBUILD
new file mode 100755
index 0000000..7568b16
--- /dev/null
+++ b/abs/mv-core/myth/stable/basic-amber/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=basic-amber
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/basic-amber.tgz)
+md5sums=()
+arch=('i686')
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/basic-blue/PKGBUILD b/abs/mv-core/myth/stable/basic-blue/PKGBUILD
new file mode 100755
index 0000000..0e1df75
--- /dev/null
+++ b/abs/mv-core/myth/stable/basic-blue/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=basic-blue
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/basic-blue.tgz)
+md5sums=()
+arch=('i686')
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  #cp -rp $pkgname $startdir/pkg/usr/local/share/mythtv/themes/
+  rsync -a --exclude=.svn $pkgname $startdir/pkg/usr/share/mythtv/themes/
+}
diff --git a/abs/mv-core/myth/stable/basic-green/PKGBUILD b/abs/mv-core/myth/stable/basic-green/PKGBUILD
new file mode 100755
index 0000000..e0867f5
--- /dev/null
+++ b/abs/mv-core/myth/stable/basic-green/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=basic-green
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/basic-green.tgz)
+md5sums=()
+arch=('i686')
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/basic-purple/PKGBUILD b/abs/mv-core/myth/stable/basic-purple/PKGBUILD
new file mode 100755
index 0000000..8c470d0
--- /dev/null
+++ b/abs/mv-core/myth/stable/basic-purple/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=basic-purple
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/basic-purple.tgz)
+md5sums=()
+arch=('i686')
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/basic-red/PKGBUILD b/abs/mv-core/myth/stable/basic-red/PKGBUILD
new file mode 100755
index 0000000..2815672
--- /dev/null
+++ b/abs/mv-core/myth/stable/basic-red/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=basic-red
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+source=(http://www.mythvantage.com/src/basic-red.tgz)
+md5sums=()
+arch=('i686')
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/mp_all.sh b/abs/mv-core/myth/stable/mp_all.sh
new file mode 100644
index 0000000..ef6aea8
--- /dev/null
+++ b/abs/mv-core/myth/stable/mp_all.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+pkgver=21228
+pkgrel=1
+
+# NOTE: Make sure to build and install mythtv first BEFORE building anything else
+buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
+#buildlist=(mythtv-release-fixes Midnight-blue Midnight-wide MythVanage-mythmenu basic-amber basic-blue basic-green basic-purple basic-red  mytharchive mythbrowser mythcontrols mythflix mythgallery mythgame mythmovietime mythmusic mythnews mythphone mythsmolt mythtv-themes mythvideo mythweather mythweb syth-lacquer-clean syth-lacquer-wide)
+buildlist=(Midnight-blue Midnight-wide MythVanage-mythmenu basic-amber basic-blue basic-green basic-purple basic-red  mytharchive mythbrowser mythcontrols mythflix mythgallery mythgame mythmovietime mythmusic mythnews mythphone mythsmolt mythtv-themes mythvideo mythweather mythweb syth-lacquer-wide)
+# build and install
+for i in `echo ${buildlist[@]:0}`
+do
+	echo "---------- building $i ----------"
+	cd ./$i
+
+	# set svn version in the PKGBUILD
+	sed -i s/^pkgver=.*/pkgver=$pkgver/ PKGBUILD
+	sed -i s/^pkgrel=.*/pkgrel=$pkgrel/ PKGBUILD
+
+	# make the package
+	mp -sr --noconfirm  -f -i --holdver || exit 1
+
+	# clean up afterwards
+	rm -rf pkg
+	rm -f *~
+
+	cd ..
+done
+
+echo ""
+echo "DONE!"
diff --git a/abs/mv-core/myth/stable/mytharchive/PKGBUILD b/abs/mv-core/myth/stable/mytharchive/PKGBUILD
new file mode 100644
index 0000000..16e4ce9
--- /dev/null
+++ b/abs/mv-core/myth/stable/mytharchive/PKGBUILD
@@ -0,0 +1,41 @@
+pkgname=mytharchive-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
+arch=('i686')
+url="http://www.mythtv.org"
+license=('GPL')
+depends=('mythtv-release-fixes' 'libxmu' 'mysql-python' 'pil' 'dvdauthor' 'cdrkit' 'dvd+rw-tools' 'mjpegtools' 'transcode' )
+source=()
+groups=('mythtv-all-plugins-release-fixes')
+#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+   	PLUGIN=mytharchive
+   	cd $startdir/src/
+   	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+   	cd $startdir/src/mythplugins
+
+   	PLUGIN=mytharchive
+   	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg "appending program lib"
+	fi
+	msg "Correcting configure    kde3 to kde"
+	 sed -i 's#kde3#kde#' configure || return 1
+	make distclean
+   	./configure  --prefix=/usr --enable-opengl --disable-all   --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1
+	qmake mythplugins.pro || return 1
+	make qmake || return 1
+	msg "Correcting Makefile    kde3 to kde"
+	sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1
+   	make -j 2 || return 1
+	make INSTALL_ROOT=$startdir/pkg install
+}
+
+
diff --git a/abs/mv-core/myth/stable/mythbrowser/PKGBUILD b/abs/mv-core/myth/stable/mythbrowser/PKGBUILD
new file mode 100644
index 0000000..674536e
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythbrowser/PKGBUILD
@@ -0,0 +1,34 @@
+
+pkgname=mythbrowser-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Mini web browser for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes' 'wget' 'libxvmc' 'kdelibs3')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+build() {
+   cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+   cd $startdir/src/mythplugins
+   pwd
+   PLUGIN=mythbrowser
+   grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+   if [ $? != 0 ]
+   then
+	   	echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	make distclean
+   ./configure --prefix=/usr  --enable-opengl --disable-all --enable-mythbrowser || return 1
+ #  sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1
+   make || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/mv-core/myth/stable/mythcontrols/PKGBUILD b/abs/mv-core/myth/stable/mythcontrols/PKGBUILD
new file mode 100644
index 0000000..5fe329b
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythcontrols/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythcontrols-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Experimental controls for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv'-release-fixes)
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythcontrols
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythcontrols --prefix=/usr
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/mv-core/myth/stable/mythflix/PKGBUILD b/abs/mv-core/myth/stable/mythflix/PKGBUILD
new file mode 100644
index 0000000..a417a28
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythflix/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythflix-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Netflix access plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	PLUGIN=mythflix
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure --prefix=/usr  --disable-all --enable-opengl --enable-mythflix 
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/mv-core/myth/stable/mythgallery/PKGBUILD b/abs/mv-core/myth/stable/mythgallery/PKGBUILD
new file mode 100644
index 0000000..9ca81ff
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythgallery/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythgallery-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Image gallery plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes' 'libexif' 'libtiff')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	export QMAKESPEC='linux-g++'
+	PLUGIN=mythgallery
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure  --prefix=/usr --disable-all --enable-opengl --enable-mythgallery --enable-exif
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/mv-core/myth/stable/mythgame/PKGBUILD b/abs/mv-core/myth/stable/mythgame/PKGBUILD
new file mode 100644
index 0000000..2dc412a
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythgame/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythgame-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Emulation plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes' 'zlib')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythgame
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg	 "appending program lib"
+		fi
+	export QMAKESPEC='linux-g++'
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythgame --prefix=/usr
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/mv-core/myth/stable/mythmovietime/PKGBUILD b/abs/mv-core/myth/stable/mythmovietime/PKGBUILD
new file mode 100644
index 0000000..6a5ae8f
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythmovietime/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=mythmovietime-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Emulation plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes' 'zlib')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythmovietime
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	export QMAKESPEC='linux-g++'
+	make distclean
+   ./configure  --prefix=/usr --disable-all --enable-mythmovies 
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/mv-core/myth/stable/mythmusic/PKGBUILD b/abs/mv-core/myth/stable/mythmusic/PKGBUILD
new file mode 100644
index 0000000..0617b0b
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythmusic/PKGBUILD
@@ -0,0 +1,39 @@
+pkgname=mythmusic-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Music playing plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686' 'x86_64')
+
+
+depends=("mythtv-release-fixes>=${pkgver}" 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
+         'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \
+	 	 'libvisual-plugins' 'libvisual-projectm')
+
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	make distclean
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins/mythmusic
+#	patch -p1 < ../../gcc4.3.patch
+	cd $startdir/src/mythplugins
+     ./configure  --disable-all --enable-mythmusic --enable-fftw --enable-sdl --disable-aac --enable-opengl --prefix=/usr
+	PLUGIN=mythmusic
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+	fi
+
+   make  || return 1
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/mv-core/myth/stable/mythmusic/music_flac.patch b/abs/mv-core/myth/stable/mythmusic/music_flac.patch
new file mode 100644
index 0000000..b152249
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythmusic/music_flac.patch
@@ -0,0 +1,293 @@
+--- flacdecoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
++++ flacdecoder.cpp	2007-03-11 18:15:34.000000000 -0400
+@@ -17,7 +17,7 @@
+ 
+ #include <qtimer.h>
+ 
+-static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
++static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -26,27 +26,27 @@
+ 
+     if (len == -1)
+     {
+-        return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
+     }
+    
+     *bytes = len;
+-    return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
++    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
+ }
+ 
+-static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
++static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
+ {
+     decoder = decoder;
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+ 
+     if (!dflac->input()->isDirectAccess())
+-        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
+ 
+     if (dflac->input()->at(absolute_byte_offset))
+-        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
+-    return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
++    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
+ }
+ 
+-static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
++static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
+ {
+     decoder = decoder;
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+@@ -54,20 +54,20 @@
+     long t = dflac->input()->at();
+     *absolute_byte_offset = t;
+ 
+-    return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
++    return FLAC__STREAM_DECODER_TELL_STATUS_OK;
+ }
+ 
+-static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
++static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
+ {
+     decoder = decoder;
+ 
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+ 
+     *stream_length = dflac->input()->size();
+-    return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
++    return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
+ }
+ 
+-static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
++static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -76,7 +76,7 @@
+     return dflac->input()->atEnd();
+ }
+ 
+-static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
++static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -132,7 +132,7 @@
+     }
+ }
+ 
+-static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
++static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -156,11 +156,11 @@
+     }
+ }
+ 
+-static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
++static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
+ {
+     decoder = decoder;
+ 
+-    FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
++    FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data;
+ 
+     file_decoder = file_decoder;
+     status = status;
+@@ -262,17 +262,8 @@
+         }
+     }
+ 
+-    decoder = FLAC__seekable_stream_decoder_new();
+-    FLAC__seekable_stream_decoder_set_md5_checking(decoder, false);
+-    FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread);
+-    FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek);
+-    FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell);
+-    FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength);
+-    FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof);
+-    FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite);
+-    FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata);
+-    FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror);
+-    FLAC__seekable_stream_decoder_set_client_data(decoder, this);
++    decoder = FLAC__stream_decoder_new();
++    FLAC__stream_decoder_set_md5_checking(decoder, false);
+ 
+     freq = 0;
+     bitrate = 0;
+@@ -281,8 +272,17 @@
+     totalTime = 0; 
+     totalTime = totalTime < 0 ? 0 : totalTime;
+ 
+-    FLAC__seekable_stream_decoder_init(decoder);
+-    FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder);
++    FLAC__stream_decoder_init_stream(decoder,
++                                     flacread,
++                                     flacseek,
++                                     flactell,
++                                     flaclength,
++                                     flaceof,
++                                     flacwrite,
++                                     flacmetadata,
++                                     flacerror,
++                                     this);
++    FLAC__stream_decoder_process_until_end_of_metadata(decoder);
+ 
+     inited = TRUE;
+     return TRUE;
+@@ -295,8 +295,8 @@
+ 
+ void FlacDecoder::deinit()
+ {
+-    FLAC__seekable_stream_decoder_finish(decoder);
+-    FLAC__seekable_stream_decoder_delete(decoder);
++    FLAC__stream_decoder_finish(decoder);
++    FLAC__stream_decoder_delete(decoder);
+ 
+     if (input()->isOpen())
+         input()->close();
+@@ -330,7 +330,7 @@
+     }
+ 
+     bool flacok = true;
+-    FLAC__SeekableStreamDecoderState decoderstate;
++    FLAC__StreamDecoderState decoderstate;
+ 
+     while (! done && ! finish) {
+         lock();
+@@ -340,12 +340,12 @@
+             FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0);
+             if (sample > totalsamples - 50)
+                 sample = totalsamples - 50;
+-            FLAC__seekable_stream_decoder_seek_absolute(decoder, sample);
++            FLAC__stream_decoder_seek_absolute(decoder, sample);
+             seekTime = -1.0;
+         }
+ 
+-        flacok = FLAC__seekable_stream_decoder_process_single(decoder);
+-        decoderstate = FLAC__seekable_stream_decoder_get_state(decoder);
++        flacok = FLAC__stream_decoder_process_single(decoder);
++        decoderstate = FLAC__stream_decoder_get_state(decoder);
+ 
+         if (decoderstate == 0 || decoderstate == 1)
+         {
+--- flacdecoder.h.old	2007-03-11 18:14:37.000000000 -0400
++++ flacdecoder.h	2007-03-11 18:14:12.000000000 -0400
+@@ -35,7 +35,7 @@
+     char *output_buf;
+     ulong output_bytes, output_at;
+ 
+-    FLAC__SeekableStreamDecoder *decoder;
++    FLAC__StreamDecoder *decoder;
+ 
+     unsigned int bks;
+     bool done, finish;
+--- flacencoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
++++ flacencoder.cpp	2007-03-11 18:14:12.000000000 -0400
+@@ -9,7 +9,7 @@
+ #include "flacencoder.h"
+ #include "metaioflacvorbiscomment.h"
+ 
+-#include <FLAC/file_encoder.h>
++#include <FLAC/stream_encoder.h>
+ #include <FLAC/assert.h>
+ #include <mythtv/mythcontext.h>
+ 
+@@ -29,32 +29,32 @@
+     int rice_parameter_search_dist = 0;
+     int max_lpc_order = 8;
+ 
+-    encoder = FLAC__file_encoder_new();
++    encoder = FLAC__stream_encoder_new();
+ 
+-    FLAC__file_encoder_set_streamable_subset(encoder, true);
+-    FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
+-    FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
+-    FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS);
+-    FLAC__file_encoder_set_bits_per_sample(encoder, 16);
+-    FLAC__file_encoder_set_sample_rate(encoder, 44100);
+-    FLAC__file_encoder_set_blocksize(encoder, blocksize);
+-    FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order);
+-    FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
+-    FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false);
+-    FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding);
+-    FLAC__file_encoder_set_do_exhaustive_model_search(encoder, 
++    FLAC__stream_encoder_set_streamable_subset(encoder, true);
++    FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
++    FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
++    FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS);
++    FLAC__stream_encoder_set_bits_per_sample(encoder, 16);
++    FLAC__stream_encoder_set_sample_rate(encoder, 44100);
++    FLAC__stream_encoder_set_blocksize(encoder, blocksize);
++    FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order);
++    FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
++    FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false);
++    FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding);
++    FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, 
+                                                     do_exhaustive_model_search);
+-    FLAC__file_encoder_set_min_residual_partition_order(encoder, 
++    FLAC__stream_encoder_set_min_residual_partition_order(encoder, 
+                                                   min_residual_partition_order);
+-    FLAC__file_encoder_set_max_residual_partition_order(encoder, 
++    FLAC__stream_encoder_set_max_residual_partition_order(encoder, 
+                                                   max_residual_partition_order);
+-    FLAC__file_encoder_set_rice_parameter_search_dist(encoder, 
++    FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 
+                                                     rice_parameter_search_dist);
+ 
+-    FLAC__file_encoder_set_filename(encoder, outfile.local8Bit());
++    
+ 
+-    int ret = FLAC__file_encoder_init(encoder);
+-    if (ret != FLAC__FILE_ENCODER_OK)
++    int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL);
++    if (ret != FLAC__STREAM_ENCODER_OK)
+     {
+         VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder."
+                                     " Got return code: %1").arg(ret));
+@@ -70,8 +70,8 @@
+ 
+     if (encoder)
+     {
+-        FLAC__file_encoder_finish(encoder);
+-        FLAC__file_encoder_delete(encoder);
++        FLAC__stream_encoder_finish(encoder);
++        FLAC__stream_encoder_delete(encoder);
+     }
+ 
+     if (metadata)
+@@ -102,7 +102,7 @@
+ 
+         if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) 
+         {
+-            if (!FLAC__file_encoder_process(encoder,
++            if (!FLAC__stream_encoder_process(encoder,
+                                             (const FLAC__int32 * const *) input,
+                                             sampleindex))
+             {
+--- flacencoder.h.old	2007-03-11 18:14:37.000000000 -0400
++++ flacencoder.h	2007-03-11 18:14:12.000000000 -0400
+@@ -4,7 +4,7 @@
+ #include <qstring.h>
+ 
+ #define HAVE_INTTYPES_H
+-#include <FLAC/file_encoder.h>
++#include <FLAC/stream_encoder.h>
+ 
+ #include "encoder.h"
+ 
+@@ -21,7 +21,7 @@
+     int addSamples(int16_t *bytes, unsigned int len);
+ 
+   private:
+-    FLAC__FileEncoder *encoder;
++    FLAC__StreamEncoder *encoder;
+     unsigned int sampleindex;
+     FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES];
+     FLAC__int32 *input[NUM_CHANNELS];
diff --git a/abs/mv-core/myth/stable/mythnews/PKGBUILD b/abs/mv-core/myth/stable/mythnews/PKGBUILD
new file mode 100644
index 0000000..a5fa26e
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythnews/PKGBUILD
@@ -0,0 +1,34 @@
+pkgname=mythnews-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="News checking plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	PLUGIN=mythnews
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure --disable-all --enable-mythnews --prefix=/usr
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/stable/mythphone/PKGBUILD b/abs/mv-core/myth/stable/mythphone/PKGBUILD
new file mode 100644
index 0000000..7fd3b46
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythphone/PKGBUILD
@@ -0,0 +1,42 @@
+pkgname=mythphone-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Plugin that allows phone calls to be made to MythTv"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	make distclean
+	PLUGIN=mythphone
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg  "appending program lib"
+	fi
+	
+	msg "Correcting configure    kde3 to kde"
+   	sed -i 's#kde3#kde#' configure || return 1
+   	./configure  --prefix=/usr --enable-opengl --disable-all --enable-mythphone || return 1
+	qmake mythplugins.pro || return 1
+	make qmake || return 1
+	
+	msg "Correcting Makefile    kde3 to kde"
+ 	sed -i 's#kde3#kde#' ./mythphone/mythphone/Makefile || return 1
+   	
+	make -j 2 || return 1
+	make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/mv-core/myth/stable/mythsmolt/PKGBUILD b/abs/mv-core/myth/stable/mythsmolt/PKGBUILD
new file mode 100644
index 0000000..db1b977
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythsmolt/PKGBUILD
@@ -0,0 +1,27 @@
+pkgname=mythsmolt-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="mythsmolt, a hardware profileing tool"
+arch=('i686' 'x86_64')
+url="http://www.mythvantage.com"
+license=('GPL')
+depends=("mythtv-release-fixes" urlgrabber hal)
+source=("http://www.mythvantage.com/request.php?4")
+
+groups=('mythtv-extras')
+
+build() {
+   cd $startdir/src/mythsmolt_src/mythsmolt
+   . /etc/profile.d/qt3.sh
+   
+   # use QT3 qmake
+   export PATH=$QTDIR/bin:$PATH
+   echo "INCLUDEPATH += /usr/include/mythtv" >> mythsmolt.pro.usr
+   qmake mythsmolt.pro.usr
+   make qmake || return 1
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
+
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/3466-v1.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/3466-v1.patch
new file mode 100755
index 0000000..912ce27
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/3466-v1.patch
@@ -0,0 +1,240 @@
+Index: libs/libmythtv/NuppelVideoPlayer.cpp
+===================================================================
+--- libs/libmythtv/NuppelVideoPlayer.cpp	(revision 13535)
++++ libs/libmythtv/NuppelVideoPlayer.cpp	(working copy)
+@@ -1475,6 +1475,12 @@
+     }
+ }
+ 
++void NuppelVideoPlayer::DrawUnusedRects(bool sync)
++{
++    if (videoOutput)
++        videoOutput->DrawUnusedRects(sync);
++}
++
+ void NuppelVideoPlayer::ResetCaptions(uint mode_override)
+ {
+     uint origMode   = textDisplayMode;
+Index: libs/libmythtv/guidegrid.h
+===================================================================
+--- libs/libmythtv/guidegrid.h	(revision 13535)
++++ libs/libmythtv/guidegrid.h	(working copy)
+@@ -86,8 +86,9 @@
+     void paintEvent(QPaintEvent *);
+ 
+   private slots:
+-    void timeout();
+-    void jumpToChannelTimeout();
++    void timeCheckTimeout(void);
++    void repaintVideoTimeout(void);
++    void jumpToChannelTimeout(void);
+ 
+   private:
+     void keyPressEvent(QKeyEvent *e);
+@@ -174,6 +175,7 @@
+     QString currentTimeColor;
+ 
+     QTimer *timeCheck;
++    QTimer *videoRepaintTimer;
+ 
+     bool keyDown;
+ 
+Index: libs/libmythtv/tv_play.h
+===================================================================
+--- libs/libmythtv/tv_play.h	(revision 13535)
++++ libs/libmythtv/tv_play.h	(working copy)
+@@ -112,6 +112,7 @@
+     void StopEmbeddingOutput(void);
+     bool IsEmbedding(void);
+     void EPGChannelUpdate(uint chanid, QString channum);
++    void DrawUnusedRects(bool sync);
+    
+     // Recording commands
+     int  PlayFromRecorder(int recordernum);
+Index: libs/libmythtv/guidegrid.cpp
+===================================================================
+--- libs/libmythtv/guidegrid.cpp	(revision 13535)
++++ libs/libmythtv/guidegrid.cpp	(working copy)
+@@ -261,9 +261,14 @@
+ 
+     timeCheck = NULL;
+     timeCheck = new QTimer(this);
+-    connect(timeCheck, SIGNAL(timeout()), SLOT(timeout()) );
++    connect(timeCheck, SIGNAL(timeout()), SLOT(timeCheckTimeout()) );
+     timeCheck->start(200);
+ 
++    videoRepaintTimer = new QTimer(this);
++    QObject::connect(videoRepaintTimer, SIGNAL(timeout()),
++                     this,              SLOT(repaintVideoTimeout()));
++    videoRepaintTimer->start(1000);
++
+     selectState = false;
+ 
+     updateBackground();
+@@ -281,18 +286,46 @@
+     for (int x = 0; x < MAX_DISPLAY_TIMES; x++)
+     {
+         if (m_timeInfos[x])
++        {
+             delete m_timeInfos[x];
++            m_timeInfos[x] = NULL;
++        }
+     }
+ 
+     for (int y = 0; y < MAX_DISPLAY_CHANS; y++)
+     {
+         if (m_programs[y])
++        {
+             delete m_programs[y];
++            m_programs[y] = NULL;
++        }
+     }
+ 
+     m_channelInfos.clear();
+ 
+-    delete theme;
++    if (theme)
++    {
++        delete theme;
++        theme = NULL;
++    }
++
++    if (jumpToChannelTimer)
++    {
++        jumpToChannelTimer->deleteLater();
++        jumpToChannelTimer = NULL;
++    }
++
++    if (timeCheck)
++    {
++        timeCheck->deleteLater();
++        timeCheck = NULL;
++    }
++
++    if (videoRepaintTimer)
++    {
++        videoRepaintTimer->deleteLater();
++        videoRepaintTimer = NULL;
++    }
+ }
+ 
+ void GuideGrid::keyPressEvent(QKeyEvent *e)
+@@ -533,7 +566,7 @@
+     return m_channelInfos[idx].chanid;
+ }
+ 
+-void GuideGrid::timeout()
++void GuideGrid::timeCheckTimeout(void)
+ {
+     timeCheck->changeInterval((int)(60 * 1000));
+     QTime new_time = QTime::currentTime();
+@@ -561,6 +594,12 @@
+     repaint(curInfoRect, false);
+ }
+ 
++void GuideGrid::repaintVideoTimeout(void)
++{
++    timeCheck->changeInterval(1000);
++    update(videoRect);
++}
++
+ void GuideGrid::fillChannelInfos(bool gotostartchannel)
+ {
+     m_channelInfos.clear();
+@@ -974,6 +1013,7 @@
+     if (r.intersects(videoRect) && m_player)
+     {
+         timeCheck->changeInterval((int)(200));
++        m_player->DrawUnusedRects(false);
+     }
+ 
+     qApp->unlock();
+@@ -1794,7 +1834,10 @@
+     ChannelInfo info = m_channelInfos[idx];
+ 
+     if (m_player)
++    {
+         m_player->EPGChannelUpdate(info.chanid, info.chanstr);
++        videoRepaintTimer->start(200);
++    }
+ }
+ 
+ //
+Index: libs/libmythtv/NuppelVideoPlayer.h
+===================================================================
+--- libs/libmythtv/NuppelVideoPlayer.h	(revision 13535)
++++ libs/libmythtv/NuppelVideoPlayer.h	(working copy)
+@@ -118,6 +118,7 @@
+     void StopEmbedding(void);
+     void ExposeEvent(void);
+     bool IsEmbedding(void);
++    void DrawUnusedRects(bool sync);
+ 
+     // Audio Sets
+     void SetNoAudio(void)                     { no_audio_out = true; }
+Index: libs/libmythtv/tv_play.cpp
+===================================================================
+--- libs/libmythtv/tv_play.cpp	(revision 13535)
++++ libs/libmythtv/tv_play.cpp	(working copy)
+@@ -5035,6 +5035,12 @@
+     return false;
+ }
+ 
++void TV::DrawUnusedRects(bool sync)
++{
++    if (nvp)
++        nvp->DrawUnusedRects(sync);
++}
++
+ void TV::doEditSchedule(int editType)
+ {
+     if (!playbackinfo)
+Index: libs/libmythtv/videoout_xv.cpp
+===================================================================
+--- libs/libmythtv/videoout_xv.cpp	(revision 13535)
++++ libs/libmythtv/videoout_xv.cpp	(working copy)
+@@ -2465,7 +2465,7 @@
+     }
+ 
+     if ((needrepaint || xv_need_bobdeint_repaint) &&
+-        (VideoOutputSubType() >= XVideo))
++        (VideoOutputSubType() >= XVideo) && !embedding)
+     {
+         DrawUnusedRects(/* don't do a sync*/false);
+     }
+@@ -2480,12 +2480,6 @@
+ 
+ void VideoOutputXv::DrawUnusedRects(bool sync)
+ {
+-    // Unfortunately, this gets drawn in the wrong place on prebuffering
+-    // pauses when embedding and this is rarely useful when embedding
+-    // since the background is drawn in guidegrid so we bail here. -- dtk
+-    if (embedding) 
+-        return;
+-
+     // boboff assumes the smallest interlaced resolution is 480 lines - 5%
+     bool use_bob   = (m_deinterlacing && m_deintfiltername == "bobdeint");
+     int boboff_raw = (int)round(((double)display_video_rect.height()) /
+@@ -2512,7 +2506,12 @@
+ 
+     X11L;
+ 
+-    if (xv_draw_colorkey && needrepaint)
++    // This is used to avoid drawing the colorkey when embedding and
++    // not using overlay. This is needed because we don't paint this
++    // in the vertical retrace period when calling this from the EPG.
++    bool clrdraw = xv_colorkey || !embedding;
++
++    if (xv_draw_colorkey && needrepaint && clrdraw)
+     {
+         XSetForeground(XJ_disp, XJ_gc, xv_colorkey);
+         XFillRectangle(XJ_disp, XJ_curwin, XJ_gc,
+@@ -2521,7 +2520,7 @@
+                        display_visible_rect.width(),
+                        display_visible_rect.height() - 2 * boboff);
+     }
+-    else if (xv_draw_colorkey && xv_need_bobdeint_repaint)
++    else if (xv_draw_colorkey && xv_need_bobdeint_repaint && clrdraw)
+     {
+         // if this is only for deinterlacing mode switching, draw
+         // the border areas, presumably the main image is undamaged.
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/PKGBUILD b/abs/mv-core/myth/stable/mythtv-release-fixes/PKGBUILD
new file mode 100755
index 0000000..a22451d
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/PKGBUILD
@@ -0,0 +1,79 @@
+pkgname=mythtv-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc=".21  A personal video recorder for Linux"
+url="http://www.mythtv.org"
+license="GPL"
+depends=('lame' 'libmysqlclient' 'alsa-lib'  'wget' 'qt3' 'x-server' 'freetype2' 'libmpeg2' 'libxml2' 'libraw1394' 'lirc' 'perl-date-manip' 'libavc1394' 'libdc1394' 'libiec61883')
+makedepends=('subversion')
+conflicts=(mythtv-svn)
+replaces=()
+backup=()
+options=(!strip)
+MAKEFLAGS="-j6"
+
+install='mythtv.install'
+#source=(mythbackend myth.sh 3466-v1.patch reload.patch)
+source=(mythbackend myth.sh  myth.find_orphans.pl   dbconfig.patch myththemedmenu.cpp.patch myththemedmenu.h.patch screenshots2.diff screenshot_jump.patch pop_be_restart.h.patch pop_be_restart.cpp.patch jump_snapshot.patch smolt_jump.patch)
+arch=('i686')
+md5sums=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythtv
+#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
+_svnmod=mythtv
+
+build() {
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+        cd $startdir/src/mythtv
+	 patch -p0 < ../dbconfig.patch
+	 grep snapshot programs/mythfrontend/networkcontrol.cpp|grep -q  jumpMap
+	 status=$?
+
+	if [ $status != 0 ]
+	then
+		echo "patching for screenshot"
+		 patch -p0 < ../screenshots2.diff
+		 patch -p0 < ../screenshot_jump.patch
+	#	 patch -p0 < ../jump_snapshot.patch
+
+	else
+		echo "screenshot already patched"
+	fi
+	 patch -p0 < ../myththemedmenu.cpp.patch
+	 patch -p0 < ../myththemedmenu.h.patch
+	 patch -p0 < ../pop_be_restart.h.patch
+	 patch -p0 < ../pop_be_restart.cpp.patch
+	 patch -p0 < ../smolt_jump.patch
+  	sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
+         make distclean
+	 make clean
+	 ./configure --prefix=/usr --enable-opengl-vsync --enable-dvb --enable-firewire --compile-type=release --with-bindings=perl --disable-audio-arts --disable-xrandr  --disable-audio-jack   --disable-directfb --disable-xvmc  --disable-xvmcw --enable-xvmc-pro --enable-xvmc-opengl  
+
+. /etc/profile
+
+   make
+   make INSTALL_ROOT=$startdir/pkg install
+   mkdir -p $startdir/pkg/usr/share/mythtv/contrib
+   mkdir -p $startdir/pkg/etc/rc.d
+   mkdir -p $startdir/pkg/var/log/mythtv
+   mkdir -p $startdir/pkg/etc/profile.d
+   install -m0755 ../myth.sh $startdir/pkg/etc/profile.d/
+# install contrib
+   mkdir -p $startdir/pkg/usr/local/share/mythtv/contrib || return 1
+   #cp -rp contrib/* $startdir/pkg/usr/local/share/mythtv/contrib
+    rsync -a --exclude=.svn contrib/* $startdir/pkg/usr/local/share/mythtv/contrib
+   echo "-release-fixes"   >  $startdir/pkg/usr/local/share/mythtv/.releasetype
+   #install -m0755 themes/*.ttf $startdir/pkg/usr/local/share/mythtv/themes/
+   # set suid on mythfrontend
+#   chmod a+s  $startdir/pkg/usr/local/bin/mythfrontend
+
+#   mkdir -p $startdir/pkg/usr/lib/
+#   mv $startdir/pkg/usr/local/lib/perl5 $startdir/pkg/usr/lib/perl5
+    cd $startdir/src/mythtv/contrib
+    gcc -Wall -o firewire_tester firewire_tester.c -liec61883 -lraw1394
+    install -m0755 firewire_tester $startdir/pkg/usr/bin/firewire_tester
+#    install -m0755  $startdir/pkg/usr/share/mythtv/contrib/optimize_mythdb.pl  $startdir/pkg/usr/local/bin/optimize_mythdb.pl
+#    cp $startdir/src/myth.find_orphans.pl $startdir/pkg/usr/share/mythtv/contrib/myth.find_orphans.pl
+#    install -m0755  $startdir/pkg/usr/share/mythtv/contrib/myth.find_orphans.pl  $startdir/pkg/usr/bin/myth.find_orphans.pl
+
+
+}
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/dbconfig.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/dbconfig.patch
new file mode 100644
index 0000000..1d181ac
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/dbconfig.patch
@@ -0,0 +1,19 @@
+--- libs/libmyth/mythcontext.cpp	2007-10-04 00:20:28.000000000 -0500
++++ libs/libmyth/mythcontext.cpp.new	2007-11-12 22:54:57.000000000 -0600
+@@ -852,14 +852,14 @@
+         cout << endl << error << endl << endl;
+         response = getResponse("Would you like to configure the database "
+                                "connection now?",
+-                               "yes");
++                               "no");
+         if (!response || response.left(1).lower() != "y")
+             return false;
+         
+         params.dbHostName = getResponse("Database host name:",
+                                         params.dbHostName);
+         response = getResponse("Should I test connectivity to this host "
+-                               "using the ping command?", "yes");
++                               "using the ping command?", "no");
+         params.dbHostPing = (!response || response.left(1).lower() != "y");
+ 
+         params.dbPort     = intResponse("Database non-default port:",
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/debug_uitypes.cpp.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/debug_uitypes.cpp.patch
new file mode 100644
index 0000000..b87b89f
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/debug_uitypes.cpp.patch
@@ -0,0 +1,21 @@
+--- mythtv/libs/libmyth/uitypes.cpp.orig	2007-11-30 14:03:07.000000000 -0600
++++ mythtv/libs/libmyth/uitypes.cpp	2007-11-30 14:04:09.000000000 -0600
+@@ -3831,15 +3831,15 @@
+     //
+     //  Debugging, draw edges around bins
+     //
+-
+-    /*
++    if (m_debug == true)
++    {
+     p->setPen(QColor(255,0,0));
+     CornerMap::Iterator it;
+     for ( it = bin_corners.begin(); it != bin_corners.end(); ++it )
+     {
+         p->drawRect(it.data());
+     }
+-    */
++    }
+ 
+ }
+ 
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/debug_xmlparse.cpp.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/debug_xmlparse.cpp.patch
new file mode 100644
index 0000000..f479bbe
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/debug_xmlparse.cpp.patch
@@ -0,0 +1,14 @@
+--- mythtv/libs/libmyth/xmlparse.cpp.orig	2007-11-30 14:03:00.000000000 -0600
++++ mythtv/libs/libmyth/xmlparse.cpp	2007-11-30 14:06:22.000000000 -0600
+@@ -2618,6 +2618,11 @@
+                 area = parseRect(getFirstText(info));
+                 normalizeRect(area);
+             }
++            if (info.tagName() == "debug")
++            {
++                if  (getFirstText(info) == "true")
++                    container->SetDebug(true);
++            }
+             else if (info.tagName() == "image")
+             {
+                 QString imgname = "";
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/jump_snapshot.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/jump_snapshot.patch
new file mode 100644
index 0000000..2d2c68b
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/jump_snapshot.patch
@@ -0,0 +1,13 @@
+--- libs/libmythui/mythmainwindow.cpp.orrig	2008-03-19 18:43:08.000000000 +0000
++++ libs/libmythui/mythmainwindow.cpp	2008-03-19 18:43:51.000000000 +0000
+@@ -1132,7 +1132,9 @@
+ 
+ void MythMainWindow::JumpTo(const QString& destination, bool pop)
+ {
+-    if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL)
++   if (destination == "ScreenShot") 
++        screenShot(); 
++   else if (d->destinationMap.count(destination) > 0 && d->exitmenucallback == NULL) 
+     {
+         d->exitingtomain = true;
+         d->popwindows = pop;
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/myth.find_orphans.pl b/abs/mv-core/myth/stable/mythtv-release-fixes/myth.find_orphans.pl
new file mode 100755
index 0000000..c258e1d
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/myth.find_orphans.pl
@@ -0,0 +1,260 @@
+#!/usr/bin/perl
+
+# check for recording anomolies -
+#   based somewhat on greg froese's "myth.rebuilddatabase.pl"
+#   -- Lincoln Dale <ltd@interlink.com.au>, September 2006
+# 2007-03-11:  Added pretty print of unknown files vs. orphaned thumbnails. (Robert Kulagowski)
+
+#  The intent of this script is to be able to find orphaned rows in the 'recorded' table
+#  (entries which don't have matching media files) and orphaned media files (potentially
+#  taking up gigabytes of otherwise usable disk space) which have no matching row in
+#  the 'recorded' db table.
+#
+#  By default, running the script will simply return a list of problems it finds.
+#  Running with --dodbdelete will remove db recorded rows for which there is no matching
+#  media file.  Running with --dodelete will delete media files for which there is no
+#  matching db record.
+#
+#  This script may be useful to fix up some orphaned db entries (causes mythweb to run
+#  verrry slow) as well as reclaim some disk space from some orphaned media files.
+#  (in an ideal world, neither of these would ever happen, but i've seen both happen in reality).
+#  This script makes it easy to keep track of whether it has or hasn't happened, even if you
+#  have thousands of recordings and terabytes of stored media.
+#
+#  no warranties expressed or implied.  if you run this and it deletes all your recordings
+#  and sets mythtv to fill up all your disk space with The Home Shopping Network, its entirely
+#  your fault.
+
+my $progname = "myth.find_orphans.pl";
+my $revision = "0.20";
+
+use DBI;
+use Sys::Hostname;
+use Getopt::Long;
+
+#
+# options
+#
+
+my $opt_host =		hostname;
+my $opt_dbhost = 	"localhost";
+my $opt_database = 	"mythconverg";
+my $opt_user = 		"mythtv";
+my $opt_pass = 		"mythtv";
+my $opt_ext = 		"{nuv,mpg,mpeg,avi}";
+my $opt_dir =		"";
+my $opt_dodelete =	0;
+my $opt_dodbdelete =	0;
+my $debug =		0;
+my $opt_help =		0;
+
+GetOptions(
+        'host=s'	=> \$opt_host,
+        'dbhost=s'	=> \$opt_dbhost,
+        'database=s'	=> \$opt_database,
+        'user=s'	=> \$opt_user,
+        'pass=s'	=> \$opt_pass,
+	'dir=s'		=> \$opt_dir,
+	'dodelete'	=> \$opt_dodelete,
+	'dodbdelete'	=> \$opt_dodbdelete,
+        'debug+'	=> \$debug,
+        'help'		=> \$opt_help,
+        'h'		=> \$opt_help,
+        'v'		=> \$opt_help);
+
+if ($opt_help) {
+	print<<EOF
+$progname (rev $revision)
+(checks MythTV recording directories for orphaned files)
+
+options:
+	--host=(host)		MythTV backend host ($opt_host)
+	--dbhost=(host)		host where MySQL database for backend is ($opt_dbhost)
+	--database=(dbname)	MythTV database ($opt_database)
+	--user=(user)		MySQL MythTV database user ($opt_user)
+	--pass=(pass)		MySQL MythTV database password ($opt_pass)
+	--dir=directories	manually specify recording directories (otherwise setting is from database)
+	--debug			increase debug level
+	--dodbdelete		remove recorded db entries with no matching file (default: don't)
+	--dodelete		delete files with no record (default: don't)
+
+EOF
+;
+	exit(0);
+}
+
+#
+# go go go!
+#
+
+my $valid_recordings = 0;
+my $missing_recordings = 0;
+my $errors = 0;
+my $unknown_files = 0;
+my $known_files = 0;
+my $unknown_size = 0;
+my $known_size = 0;
+my $unknown_thumbnail = 0;
+
+if (!($dbh = DBI->connect("dbi:mysql:database=$opt_database:host=$opt_dbhost","$opt_user","$opt_pass"))) {
+	die "Cannot connect to database $opt_database on host $opt_dbhost: $!\n";
+}
+
+if ($opt_dir eq "") {
+	&dir_lookup("SELECT dirname FROM storagegroup WHERE hostname=(?)");
+	&dir_lookup("SELECT data FROM settings WHERE value='RecordFilePrefix' AND hostname=(?)");
+
+	printf STDERR "Recording directories ($opt_host): $opt_dir\n" if $debug;
+}
+
+if ($opt_dir eq "") {
+	printf "ERROR: no directory found or specified\n";
+	exit 1;
+}
+
+foreach $d (split(/,/,$opt_dir)) {
+	$d =~ s/\/$//g; # strip trailing /
+	$dirs{$d}++;
+}
+
+
+#
+# look in recorded table, make sure we can find every file ..
+#
+
+my $q = "SELECT title, subtitle, starttime, endtime, chanid, basename FROM recorded WHERE hostname=(?) ORDER BY starttime";
+$sth = $dbh->prepare($q);
+$sth->execute($opt_host) || die "Could not execute ($q): $!\n";
+
+while (my @row=$sth->fetchrow_array) {
+	($title, $subtitle, $starttime, $endtime, $channel, $basename) = @row;
+
+	# see if we can find it...
+	$loc = find_file($basename);
+	if ($loc eq "") {
+		printf "Missing media: %s (title:%s, start:%s)\n",$basename,$title,$starttime;
+		$missing_recordings++;
+
+		if ($opt_dodbdelete) {
+			my $sql = sprintf "DELETE FROM recorded WHERE basename LIKE \"%s\" LIMIT 1",$basename;
+			printf "performing database delete: %s\n",$sql;
+			$dbh->do($sql) || die "Could not execute $sql: $!\n";
+		}
+	} else {
+		$valid_recordings++;
+		$seen_basename{$basename}++;
+		$seen_basename{$basename.".png"}++; # thumbnail
+	}
+}
+
+#
+# look in recording directories, see if there are extra files not in database
+#
+
+foreach my $this_dir (keys %dirs) {
+	opendir(DIR, $this_dir) || die "cannot open directory $this_dir: $!\n";
+	foreach $this_file (readdir(DIR)) {
+		if (-f "$this_dir/$this_file") {
+
+			next if ($this_file eq "nfslockfile.lock");
+			next if ($this_file =~ m/^mythconv.*/);
+			next if ($this_dir eq "/data/database_backup");
+
+			my $this_filesize = -s "$this_dir/$this_file";
+			if ($seen_basename{$this_file} == 0) {
+				$sorted_filesizes{$this_filesize} .= sprintf "unknown file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file;
+				$unknown_size += $this_filesize;
+				if (substr($this_file,-4) eq ".png") {
+					$unknown_thumbnail++;
+				}
+				else {
+					$unknown_files++;
+				}
+				                                                                         
+				if ($opt_dodelete) {
+					printf STDERR "deleting  [%s]:  %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file;
+					unlink "$this_dir/$this_file";
+
+					if (-f "$this_dir/$this_file") {
+						$errors++;
+						printf "ERROR: could not delete $this_dir/$this_file\n";
+					}
+				}
+			} else {
+				$known_files++;
+				$known_size += $this_filesize;
+				printf "KNOWN file [%s]: %s/%s\n",pretty_filesize($this_filesize),$this_dir,$this_file if $debug;
+			}
+		} else {
+			printf "NOT A FILE: %s/%s\n",$this_dir,$this_file if $debug;
+		}
+	}
+	closedir DIR;
+}
+
+
+#
+# finished, report results
+#
+
+foreach my $key (sort { $a <=> $b } keys %sorted_filesizes) {
+	printf $sorted_filesizes{$key};
+}
+
+printf "Summary:\n";
+printf "  Host: %s, Directories: %s\n", $opt_host, join(" ",keys %dirs);
+printf "  %d ERRORS ENCOUNTERED (see above for details)\n",$errors if ($errors > 0);
+printf "  %d valid recording%s, %d missing recording%s %s\n",
+	$valid_recordings, ($valid_recordings != 1 ? "s" : ""),
+	$missing_recordings, ($missing_recordings != 1 ? "s" : ""),
+	($missing_recordings > 0 ? ($opt_dodbdelete ? "were fixed" : "not fixed, check above is valid and use --dodbdelete to fix") : "");
+printf "  %d known media files using %s\n  %d orphaned thumbnails with no corresponding recording\n  %d unknown files using %s %s\n",
+	$known_files, pretty_filesize($known_size), 
+	$unknown_thumbnail,$unknown_files, pretty_filesize($unknown_size), 
+	($unknown_files > 0 ? ($opt_dodelete ? "were fixed" : "not fixed, check above and use --dodelete to clean up if the above output is accurate") : "");
+
+exit(0);
+
+###########################################################################
+# filesize bling
+
+sub pretty_filesize
+{
+	local($fsize) = @_;
+	return sprintf "%0.1fGB",($fsize / 1000000000) if ($fsize >= 1000000000);
+	return sprintf "%0.1fMB",($fsize / 1000000) if ($fsize >= 1000000);
+	return sprintf "%0.1fKB",($fsize / 1000) if ($fsize >= 1000);
+	return sprintf "%0.0fB",$fsize;
+}
+
+###########################################################################
+# find a file in directories without globbing
+
+sub find_file
+{
+	local($fname) = @_;
+
+	foreach my $d (keys %dirs) {
+		my $f = $d."/".$fname;
+		if (-e $f) {
+			return $f;
+		}
+	}
+	return;
+}
+
+###########################################################################
+
+sub dir_lookup
+{
+	my $query = shift;
+
+	$sth = $dbh->prepare($query);
+	$sth->execute($opt_host) || die "Could not execute ($dir_query)";
+	while (my @row = $sth->fetchrow_array) {
+		$opt_dir .= "," if ($opt_dir ne "");
+		$opt_dir .= $row[0];
+	}
+}
+
+###########################################################################
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/myth.sh b/abs/mv-core/myth/stable/mythtv-release-fixes/myth.sh
new file mode 100755
index 0000000..fb7122c
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/myth.sh
@@ -0,0 +1,4 @@
+export PATH=$PATH:/usr/local/bin
+# set core file size to 0
+ulimit -c 0
+export MALLOC_CHECK_=0
\ No newline at end of file
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend b/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend
new file mode 100755
index 0000000..f96c6b7
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mythbackend`
+case "$1" in
+  start)
+    stat_busy "Starting MythTV Backend"
+    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
+    [ -z "$PID" ] && /usr/local/bin/mythbackend -d -l /var/log/mythbackend.log -v quiet
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      echo $PID > /var/run/mythbackend.pid
+      add_daemon mythbackend
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping MythTV Backend"
+    [ ! -z "$PID" ]  && kill $PID &>/dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon mythbackend
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend.sh b/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend.sh
new file mode 100755
index 0000000..e7a7b70
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/mythbackend.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+#
+#	/etc/rc.d/init.d/mythbackend
+#
+# Starts the mythbackend as a daemon
+#
+# chkconfig: 345 90 10
+# description: Starts the mythbackend process as a daemon after the XWindows \
+#              system is started, in runlevel 5. This allows scheduled \
+#              recordings to occur without manual intervention.
+# processname: mythbackend
+
+# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
+# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+# Default values to use if none are supplied in the config file.
+# User who should start the mythbackend processes
+MBE_USER="root"
+# Directory holding the mythbackend binary
+MBE_LOCATION="/usr/local/bin/"
+# Name of mythbackend binary
+MBE_PROG="mythbackend"
+# Full path to mythbackend log file
+MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source config file if available
+if [ -f "/etc/sysconfig/mythbackend" ]; then
+  . /etc/sysconfig/mythbackend
+fi
+
+test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
+
+RETVAL=0
+
+#
+#	See how we were called.
+#
+
+start() {
+	# Check if mythbackend is already running
+	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
+	    echo -n "Starting ${MBE_PROG}: "
+	    # /usr/local/bin/mythbackend -d -l /some/log/file
+	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+	    RETVAL=$?
+	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
+	    echo
+	fi
+	return $RETVAL
+}
+
+stop() {
+	echo -n "Stopping ${MBE_PROG}: "
+	killproc ${MBE_LOCATION}${MBE_PROG}
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
+	echo
+        return $RETVAL
+}
+
+
+restart() {
+	stop
+	start
+}	
+
+reload() {
+	restart
+}	
+
+status_at() {
+ 	status ${MBE_LOCATION}${MBE_PROG}
+}
+
+case "$1" in
+start)
+	start
+	;;
+stop)
+	stop
+	;;
+reload|restart)
+	restart
+	;;
+condrestart)
+	if [ -f /var/lock/subsys/${MBE_PROG} ]; then
+	    restart
+	fi
+	;;
+status)
+	status_at
+	;;
+*)
+	echo "Usage: $0 {start|stop|restart|condrestart|status}"
+	exit 1
+esac
+
+exit $?
+exit $RETVAL
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.cpp.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.cpp.patch
new file mode 100644
index 0000000..f5baccd
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.cpp.patch
@@ -0,0 +1,125 @@
+--- libs/libmythui/myththemedmenu.cpp.orig	2008-01-31 15:26:38.000000000 +0000
++++ libs/libmythui/myththemedmenu.cpp	2008-02-07 22:24:27.000000000 +0000
+@@ -2102,6 +2102,10 @@
+             }
+             lastbutton = NULL;
+         }
++        else if (action == "MENU")
++        {
++            parent->doMenu();
++        }
+         else if (action == "EJECT")
+         {
+             myth_eject();
+@@ -2482,6 +2486,8 @@
+ 
+     if (d->foundtheme)
+         d->parseMenu(menufile);
++
++    m_menuPopup = NULL;
+ }
+ 
+ MythThemedMenu::~MythThemedMenu(void)
+@@ -2592,3 +2598,102 @@
+     MythScreenType::aboutToShow();
+     d->updateLCD();
+ }
++void MythThemedMenu::doMenu()
++{
++    int allowsd = gContext->GetNumSetting("AllowQuitShutdown");
++    if (m_menuPopup)
++        return;
++    QString label = "System Menu";
++    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
++    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup");
++    if (m_menuPopup->Create())
++        mainStack->AddScreen(m_menuPopup);
++
++
++    if ( allowsd != 0 && allowsd !=4  )
++    {
++        m_menuPopup->SetReturnEvent(this,"popmenu_exit");
++        m_menuPopup->AddButton("Shutdown");
++        m_menuPopup->AddButton("Reboot");
++        m_menuPopup->AddButton("About");
++        m_menuPopup->AddButton("Cancel");
++    }
++    else
++    {
++        m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
++        m_menuPopup->AddButton("About");
++        m_menuPopup->AddButton("Cancel");
++    }
++}
++
++void MythThemedMenu::aboutScreen()
++{
++{
++        extern const char *myth_source_version;
++        extern const char *myth_source_path;
++        QString distro_line;
++        distro_line="";
++
++        QFile file("/etc/os_myth_release");
++        if ( file.open(IO_ReadOnly | IO_Translate) )
++        {
++            QTextStream t( &file );        // use a text stream
++            distro_line = t.readLine();
++            file.close();
++        }
++
++        QString label = "";
++        label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line );
++
++        MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
++        m_menuPopup = new MythDialogBox(label, mainStack, "About");
++        if (m_menuPopup->Create())
++            mainStack->AddScreen(m_menuPopup);
++
++        m_menuPopup->SetReturnEvent(this,"About");
++        m_menuPopup->AddButton("OK!");
++    }
++}
++
++void MythThemedMenu::customEvent(QCustomEvent *event)
++{
++    if (event->type() == kMythDialogBoxCompletionEventType)
++    {
++        DialogCompletionEvent *dce =
++                dynamic_cast<DialogCompletionEvent*>(event);
++
++        QString resultid= dce->GetId();
++        int buttonnum  = dce->GetResult();
++        if (resultid == "popmenu_exit")
++        {
++            if (buttonnum == 0)
++            {
++                QString halt_cmd = gContext->GetSetting("HaltCommand",
++                        "sudo /sbin/halt -p");
++                if (!halt_cmd.isEmpty())
++                    system(halt_cmd.ascii());
++            }
++
++            if (buttonnum == 1)
++            {
++                QString reboot_cmd = gContext->GetSetting("RebootCommand",
++                        "sudo /sbin/reboot");
++                if (!reboot_cmd.isEmpty())
++                    system(reboot_cmd.ascii());
++            }
++
++            if (buttonnum == 2)
++            {
++                aboutScreen();
++            }
++        }
++
++        if (resultid == "popmenu_noexit")
++        {
++            if (buttonnum == 0)
++                aboutScreen();
++        }
++
++        m_menuPopup = NULL;
++    }
++}
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.h.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.h.patch
new file mode 100644
index 0000000..9744b11
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/myththemedmenu.h.patch
@@ -0,0 +1,25 @@
+--- libs/libmythui/myththemedmenu.h.orig	2008-01-31 15:26:45.000000000 +0000
++++ libs/libmythui/myththemedmenu.h	2008-02-07 21:00:22.000000000 +0000
+@@ -2,6 +2,7 @@
+ #define MYTHTHEMEDMENU_H_
+ 
+ #include "mythscreentype.h"
++#include "mythdialogbox.h"
+ 
+ class MythMainWindow;
+ class MythThemedMenuPrivate;
+@@ -26,8 +27,14 @@
+ 
+     void ReloadTheme(void);
+     void ReloadExitKey(void);
++
+     virtual void aboutToShow(void);
+ 
++    void doMenu();
++    void aboutScreen();
++    MythDialogBox *m_menuPopup;
++    void customEvent(QCustomEvent *event);
++
+   protected:
+     virtual bool keyPressEvent(QKeyEvent *e);
+     virtual void gestureEvent(MythUIType *origtype, MythGestureEvent *ge);
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/mythtv.install b/abs/mv-core/myth/stable/mythtv-release-fixes/mythtv.install
new file mode 100755
index 0000000..2c87aee
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/mythtv.install
@@ -0,0 +1,59 @@
+
+# arg 1:  the new package version
+pre_install () {
+        echo "backing up the database"
+                dbver=`pacman -Q mythtv-release-fixes | awk  ' { print $2 } '`
+        if [ ! -e /data/databases_backup ]
+        then
+                mkdir -p /data/database_backup
+        fi
+        mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
+}
+
+post_install() {
+  	mkdir -p /data/home
+        /usr/sbin/useradd -G users,video,audio,optical  -m -d /data/home/mythtv mythtv
+        /usr/sbin/usermod -G users,video,audio,optical mythtv
+#        mkdir /var/log/mythtv
+#        chown -R mythtv:users /var/log/mythtv
+        dbver=`pacman -Q mythtv-release-fixes | awk  ' { print $2 } '`
+        if [ ! -e /data/database_backup ]
+        then
+                mkdir -p /data/database_backup
+        fi
+	chown mythtv:nobody /data/database_backup
+	chmod g+s  /data/database_backup
+        
+	mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
+	grep -q /usr/local/lib  /etc/ld.so.conf
+	if [ $? = 1 ]
+	then
+		echo "/usr/local/lib" >> /etc/ld.so.conf
+	fi
+
+}
+pre_upgrade () {
+ pre_install
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install
+
+  /bin/true
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+/bint/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.cpp.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.cpp.patch
new file mode 100644
index 0000000..a7a5326
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.cpp.patch
@@ -0,0 +1,51 @@
+--- libs/libmythui/myththemedmenu.cpp.orig	2008-03-17 15:54:00.000000000 -0500
++++ libs/libmythui/myththemedmenu.cpp	2008-03-17 15:54:09.000000000 -0500
+@@ -2615,12 +2615,14 @@
+         m_menuPopup->SetReturnEvent(this,"popmenu_exit");
+         m_menuPopup->AddButton("Shutdown");
+         m_menuPopup->AddButton("Reboot");
++        m_menuPopup->AddButton("MythBackend restart");
+         m_menuPopup->AddButton("About");
+         m_menuPopup->AddButton("Cancel");
+     }
+     else
+     {
+         m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
++        m_menuPopup->AddButton("MythBackend restart");
+         m_menuPopup->AddButton("About");
+         m_menuPopup->AddButton("Cancel");
+     }
+@@ -2655,6 +2657,11 @@
+     }
+ }
+ 
++void MythThemedMenu::Restartmythbackend()
++{
++    system("/usr/MythVantage/bin/mythbeselect -restart");
++}
++
+ void MythThemedMenu::customEvent(QCustomEvent *event)
+ {
+     if (event->type() == kMythDialogBoxCompletionEventType)
+@@ -2684,6 +2691,10 @@
+ 
+             if (buttonnum == 2)
+             {
++                Restartmythbackend();
++            }
++            if (buttonnum == 3)
++            {
+                 aboutScreen();
+             }
+         }
+@@ -2691,6 +2702,10 @@
+         if (resultid == "popmenu_noexit")
+         {
+             if (buttonnum == 0)
++            {
++                Restartmythbackend();
++            }
++            if (buttonnum == 1)
+                 aboutScreen();
+         }
+ 
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.h.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.h.patch
new file mode 100644
index 0000000..1fba435
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/pop_be_restart.h.patch
@@ -0,0 +1,10 @@
+--- libs/libmythui/myththemedmenu.h.orig	2008-03-17 15:48:28.000000000 -0500
++++ libs/libmythui/myththemedmenu.h	2008-03-17 15:48:30.000000000 -0500
+@@ -32,6 +32,7 @@
+ 
+     void doMenu();
+     void aboutScreen();
++    void Restartmythbackend();
+     MythDialogBox *m_menuPopup;
+     void customEvent(QCustomEvent *event);
+ 
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/reload.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/reload.patch
new file mode 100644
index 0000000..9cc2044
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/reload.patch
@@ -0,0 +1,52 @@
+--- programs/mythfrontend/main.cpp	2007-11-13 15:34:40.000000000 +0000
++++ programs/mythfrontend/main.cpp.new	2007-11-13 15:36:15.000000000 +0000
+@@ -72,6 +72,9 @@
+     RunProgramGuide(chanid, channum);
+ }
+ 
++
++
++
+ void startFinder(void)
+ {
+     RunProgramFind();
+@@ -761,6 +764,7 @@
+     }
+ }
+ 
++
+ void InitJumpPoints(void)
+ {
+     REG_JUMP("Reload Theme", "", "", reloadTheme);
+@@ -784,6 +788,17 @@
+     TV::SetEmbedPbbFunc(PlaybackBox::RunPlaybackBox);
+ }
+ 
++
++void signal_USR1_handler(int){
++      VERBOSE(VB_GENERAL, "SIG USR1 received, reloading theme");	
++      RemoteSendMessage("CLEAR_SETTINGS_CACHE");
++      gContext->ActivateSettingsCache(false);
++      qApp->processEvents();
++      GetMythMainWindow()->JumpTo("Reload Theme");
++      gContext->removeCurrentLocation();
++      gContext->ActivateSettingsCache(true);
++}
++
+ int internal_media_init() 
+ {
+     REG_MEDIAPLAYER("Internal", "MythTV's native media player.", 
+@@ -1411,7 +1426,12 @@
+ 
+         if (!RunMenu(themedir))
+             break;
+-
++         struct sigaction new_action, old_action;
++        /* Set up the structure to specify the new action. */
++        new_action.sa_handler = signal_USR1_handler;
++        ::sigemptyset(&new_action.sa_mask);
++        new_action.sa_flags = 0;
++        ::sigaction (SIGUSR1, &new_action, &old_action);
+         qApp->setMainWidget(mainWindow);
+         qApp->exec();
+     } while (!(exitstatus = handleExit()));
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/screenshot_jump.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshot_jump.patch
new file mode 100644
index 0000000..8a5dee4
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshot_jump.patch
@@ -0,0 +1,10 @@
+--- programs/mythfrontend/networkcontrol.cpp.orig	2008-03-16 23:31:05.000000000 +0000
++++ programs/mythfrontend/networkcontrol.cpp	2008-03-16 23:32:01.000000000 +0000
+@@ -80,6 +80,7 @@
+     jumpMap["zoneminderconsole"]     = "ZoneMinder Console";
+     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
+     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
++    jumpMap["snapshot"]              = "ScreenShot";
+ 
+     // These jump point names match the (lowercased) locations from gContext
+     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots.diff b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots.diff
new file mode 100644
index 0000000..2b5dabe
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots.diff
@@ -0,0 +1,458 @@
+Index: libs/libmythui/mythmainwindow.cpp
+===================================================================
+--- libs/libmythui/mythmainwindow.cpp	(revision 15827)
++++ libs/libmythui/mythmainwindow.cpp	(working copy)
+@@ -504,6 +507,81 @@
+     d->repaintRegion = d->repaintRegion.unite(pe->region());
+ }
+ 
++bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h)
++{
++    bool ret = false;
++
++    QString extension = fname.section('.', -1, -2);
++
++    if (extension == "jpg")
++        extension = "JPEG";
++    else 
++        extension = "PNG";
++
++    VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8]")
++		        .arg(QApplication::desktop()->winId())
++			.arg(fname)
++			.arg(w)
++			.arg(h)
++			.arg(x)
++			.arg(y)
++			.arg(x2)
++			.arg(y2));
++
++    QPixmap p;
++    p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2);
++
++    QImage img = p.convertToImage();
++
++    if ( w == 0 )
++        w = img.width();
++
++    if ( h == 0 )
++        h = img.height();
++
++    VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4")
++		    .arg(w)
++		    .arg(h)
++		    .arg(img.width())
++		    .arg(img.height()));
++
++    img = img.smoothScale( w, h , QImage::ScaleMin);
++        
++    if (img.save(fname ,extension))
++    {
++        VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded");
++	ret = true;
++    }
++    else 
++    {
++	VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!");
++	ret = false;
++    }
++
++    return ret;
++}
++
++bool MythMainWindow::screenShot(int x, int y, int x2, int y2)
++{
++    QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/");
++    QString fName = QString("/%1/myth-screenshot-%2.png")
++	            .arg(gContext->GetSetting("ScreenShotPath","/tmp/"))
++	            .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz"));
++
++    return screenShot(fName, x, y, x2, y2, 0, 0);
++}
++
++bool MythMainWindow::screenShot(QString fname, int w, int h)
++{
++    return screenShot(fname, 0, 0, -1, -1, w, h);
++}
++
++
++bool MythMainWindow::screenShot(void)
++{
++    return screenShot(0,0,-1,-1);
++}
++
+ #ifdef USING_APPLEREMOTE
+ // This may be possible via installEventFilter() instead?
+ 
+Index: libs/libmythui/mythmainwindow.h
+===================================================================
+--- libs/libmythui/mythmainwindow.h	(revision 15827)
++++ libs/libmythui/mythmainwindow.h	(working copy)
+@@ -101,6 +101,11 @@
+ 
+     MythPainter *GetCurrentPainter();
+ 
++    bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h);
++    bool screenShot(int x, int y, int x2, int y2);
++    bool screenShot(QString fname, int w, int h);
++    bool screenShot(void);
++
+     void AllowInput(bool allow);
+ 
+     QRect GetUIScreenRect();
+Index: programs/mythfrontend/mediarenderer.cpp
+===================================================================
+--- programs/mythfrontend/mediarenderer.cpp	(revision 15827)
++++ programs/mythfrontend/mediarenderer.cpp	(working copy)
+@@ -9,6 +9,7 @@
+ /////////////////////////////////////////////////////////////////////////////
+ 
+ #include "mediarenderer.h"
++#include "mythfexml.h"
+ #include "compat.h"
+ 
+ /////////////////////////////////////////////////////////////////////////////
+@@ -85,6 +86,11 @@
+                                  "http-get:*:video/mpeg:*,"
+                                  "http-get:*:video/nupplevideo:*,"
+                                  "http-get:*:video/x-ms-wmv:*";
++        // ------------------------------------------------------------------
++        // Register the MythFEXML protocol... 
++        // ------------------------------------------------------------------
++        VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." );
++        m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() ));
+ 
+         // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." ));
+         // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() ));
+Index: programs/mythfrontend/MFEXML_scpd.xml
+===================================================================
+--- programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
++++ programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
+@@ -0,0 +1,34 @@
++<?xml version="1.0" encoding="utf-8"?>
++<scpd xmlns="urn:schemas-upnp-org:service-1-0">
++   <specVersion>
++      <major>1</major>
++      <minor>0</minor>
++   </specVersion>
++   <actionList>
++      <action>
++         <name>GetScreenShot</name>
++         <argumentList>
++            <argument>
++               <name>Height</name>
++               <direction>in</direction>
++               <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
++            </argument>
++            <argument>
++               <name>Width</name>
++               <direction>in</direction>
++               <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
++            </argument>
++         </argumentList>
++      </action>
++   </actionList>
++   <serviceStateTable>
++      <stateVariable sendEvents="no">
++         <name>A_ARG_TYPE_Height</name>
++         <dataType>i2</dataType>
++      </stateVariable>
++      <stateVariable sendEvents="no">
++         <name>A_ARG_TYPE_Width</name>
++         <dataType>i2</dataType>
++      </stateVariable>
++   </serviceStateTable>
++</scpd>
+Index: programs/mythfrontend/globalsettings.cpp
+===================================================================
+--- programs/mythfrontend/globalsettings.cpp	(revision 15827)
++++ programs/mythfrontend/globalsettings.cpp	(working copy)
+@@ -2182,6 +2182,15 @@
+     return ge;
+ }
+ 
++static HostLineEdit *ScreenShotPath()
++{
++    HostLineEdit *ge = new HostLineEdit("ScreenShotPath");
++    ge->setLabel(QObject::tr("ScreenShotPath"));
++    ge->setValue("");
++    ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend"));
++    return ge;
++}
++
+ static HostCheckBox *UseArrowAccels()
+ {
+     HostCheckBox *gc = new HostCheckBox("UseArrowAccels");
+@@ -4455,6 +4464,7 @@
+     MythMediaSettings *mediaMon = new MythMediaSettings();
+ 
+     general->addChild(LircKeyPressedApp());
++    general->addChild(ScreenShotPath());
+     general->addChild(row);
+     general->addChild(NetworkControlPort());
+     general->addChild(mediaMon);
+Index: programs/mythfrontend/mythfexml.h
+===================================================================
+--- programs/mythfrontend/mythfexml.h	(revision 0)
++++ programs/mythfrontend/mythfexml.h	(revision 0)
+@@ -0,0 +1,66 @@
++//////////////////////////////////////////////////////////////////////////////
++// Program Name: mythxml.h
++//                                                                            
++// Purpose - Myth Frontend XML protocol HttpServerExtension 
++//                                                                            
++//////////////////////////////////////////////////////////////////////////////
++
++#ifndef MYTHFEXML_H_
++#define MYTHFEXML_H_
++
++#include <qdom.h>
++#include <qdatetime.h> 
++
++#include "upnp.h"
++#include "eventing.h"
++#include "mythcontext.h"
++
++typedef enum 
++{
++    MFEXML_Unknown                =  0,
++    MFEXML_GetScreenShot          =  1
++
++} MythFEXMLMethod;
++
++class MythFEXML : public Eventing
++{
++    private:
++
++        QString                      m_sControlUrl;
++        QString                      m_sServiceDescFileName;
++
++    protected:
++
++        // Implement UPnpServiceImpl methods that we can
++
++        virtual QString GetServiceType      () { return "urn:schemas-mythtv-org:service:MythTv:1"; }
++        virtual QString GetServiceId        () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; }
++        virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); }
++        virtual QString GetServiceDescURL   () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; }
++
++    private:
++
++        MythFEXMLMethod GetMethod( const QString &sURI );
++
++	void    GetScreenShot    ( HTTPRequest *pRequest );
++
++    public:
++                 MythFEXML( UPnpDevice *pDevice );
++        virtual ~MythFEXML();
++
++        bool     ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest );
++
++        // Static methods shared with HttpStatus
++
++};
++
++/////////////////////////////////////////////////////////////////////////////
++/////////////////////////////////////////////////////////////////////////////
++//
++// 
++//
++/////////////////////////////////////////////////////////////////////////////
++/////////////////////////////////////////////////////////////////////////////
++#endif
++
++
+Index: programs/mythfrontend/main.cpp
+===================================================================
+--- programs/mythfrontend/main.cpp	(revision 15827)
++++ programs/mythfrontend/main.cpp	(working copy)
+@@ -799,6 +799,11 @@
+     }
+ }
+ 
++void getScreenShot(void)
++{
++    (void) gContext->GetMainWindow()->screenShot();
++}
++
+ void InitJumpPoints(void)
+ {
+     REG_JUMP("Reload Theme", "", "", reloadTheme);
+@@ -817,6 +822,8 @@
+     REG_JUMP("Status Screen", "", "", showStatus);
+     REG_JUMP("Previously Recorded", "", "", startPrevious);
+ 
++    REG_JUMPEX("ScreenShot","","",getScreenShot,false);
++
+     REG_KEY("qt", "DELETE", "Delete", "D");
+     REG_KEY("qt", "EDIT", "Edit", "E");
+ 
+Index: programs/mythfrontend/mythfrontend.pro
+===================================================================
+--- programs/mythfrontend/mythfrontend.pro	(revision 15827)
++++ programs/mythfrontend/mythfrontend.pro	(working copy)
+@@ -15,7 +15,7 @@
+ setting.files += util_menu.xml info_settings.xml main_settings.xml
+ setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml
+ setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml
+-setting.files += tv_settings.xml
++setting.files += tv_settings.xml MFEXML_scpd.xml
+ setting.extra = -ldconfig
+ 
+ INSTALLS += setting
+@@ -26,13 +26,13 @@
+ HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h
+ HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h
+ HEADERS += statusbox.h networkcontrol.h custompriority.h
+-HEADERS += mediarenderer.h
++HEADERS += mediarenderer.h mythfexml.h
+ HEADERS += mythappearance.h
+ 
+ SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp
+ SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp 
+ SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp
+-SOURCES += mediarenderer.cpp
++SOURCES += mediarenderer.cpp mythfexml.cpp
+ SOURCES += custompriority.cpp
+ SOURCES += mythappearance.cpp
+ 
+Index: programs/mythfrontend/mythfexml.cpp
+===================================================================
+--- programs/mythfrontend/mythfexml.cpp	(revision 0)
++++ programs/mythfrontend/mythfexml.cpp	(revision 0)
+@@ -0,0 +1,135 @@
++//////////////////////////////////////////////////////////////////////////////
++// Program Name: MythXML.cpp
++//                                                                            
++// Purpose - Html & XML status HttpServerExtension
++//                                                                            
++// Created By  : David Blain                    Created On : Oct. 24, 2005
++// Modified By : Daniel Kristjansson            Modified On: Oct. 31, 2007
++//                                                                            
++//////////////////////////////////////////////////////////////////////////////
++
++#include "mythfexml.h"
++
++#include "libmyth/mythcontext.h"
++#include "libmyth/util.h"
++#include "libmyth/mythdbcon.h"
++
++#include "mythmainwindow.h"
++
++#include <qtextstream.h>
++#include <qdir.h>
++#include <qfile.h>
++#include <qregexp.h>
++#include <qbuffer.h>
++#include <math.h>
++
++#include "../../config.h"
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" )
++{
++
++    QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath );
++
++    m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml";
++    m_sControlUrl          = "/MythFE";
++
++    // Add our Service Definition to the device.
++
++    RegisterService( pDevice );
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXML::~MythFEXML()
++{
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI )
++{
++    if (sURI == "GetScreenShot"        ) return MFEXML_GetScreenShot;
++
++    return( MFEXML_Unknown );
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest )
++{
++    try
++    {
++        if (pRequest)
++        {
++            if (pRequest->m_sBaseUrl != m_sControlUrl)
++                return( false );
++
++            VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2")
++			             .arg(pRequest->m_sMethod)
++				     .arg(pRequest->m_sRawRequest));
++
++            switch( GetMethod( pRequest->m_sMethod ))
++            {
++		case MFEXML_GetScreenShot      : GetScreenShot    ( pRequest ); return true;
++
++
++                default: 
++                {
++                    UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction );
++
++                    return true;
++                }
++            }
++        }
++    }
++    catch( ... )
++    {
++        VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" );
++    }
++
++    return( false );
++}           
++
++// ==========================================================================
++// Request handler Methods
++// ==========================================================================
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++void MythFEXML::GetScreenShot( HTTPRequest *pRequest )
++{
++    bool bDefaultPixmap = false;
++
++    pRequest->m_eResponseType   = ResponseTypeFile;
++
++    // Optional Parameters
++
++    int     nWidth    = pRequest->m_mapParams[ "Width"     ].toInt();
++    int     nHeight   = pRequest->m_mapParams[ "Height"    ].toInt();
++
++    // Read Icon file path from database
++
++    QString sFileName = "/tmp/moo.jpg";
++
++
++    if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight))
++    {
++        VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting");
++	return;
++    }
++
++    pRequest->m_sFileName = sFileName;
++}
++
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots2.diff b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots2.diff
new file mode 100644
index 0000000..64ce08c
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/screenshots2.diff
@@ -0,0 +1,467 @@
+Index: libs/libmythui/mythmainwindow.cpp
+===================================================================
+--- libs/libmythui/mythmainwindow.cpp	(revision 16103)
++++ libs/libmythui/mythmainwindow.cpp	(working copy)
+@@ -8,6 +8,8 @@
+ #include <qpaintdevicemetrics.h>
+ #include <qdir.h>
+ #include <qfile.h>
++#include <math.h>
++
+ #ifdef QWS
+ #include <qwindowsystem_qws.h>
+ #endif
+@@ -504,6 +507,83 @@
+     d->repaintRegion = d->repaintRegion.unite(pe->region());
+ }
+ 
++bool MythMainWindow::screenShot(QString fname, int x, int y, int x2, int y2, int w, int h)
++{
++    bool ret = false;
++
++    QString extension = fname.section('.', -1, -1);
++    if (extension == "jpg")
++        extension = "JPEG";
++    else 
++        extension = "PNG";
++
++    VERBOSE(VB_GENERAL, QString("MythMainWindow::screenShot saving winId %1 to %2 (%3 x %4) [ %5/%6 - %7/%8] type %9")
++		        .arg(QApplication::desktop()->winId())
++			.arg(fname)
++			.arg(w)
++			.arg(h)
++			.arg(x)
++			.arg(y)
++			.arg(x2)
++			.arg(y2)
++			.arg(extension));
++
++    QPixmap p;
++    p = QPixmap::grabWindow( QApplication::desktop()->winId(), x, y, x2, y2);
++
++    QImage img = p.convertToImage();
++
++    if ( w == 0 )
++        w = img.width();
++
++    if ( h == 0 )
++        h = img.height();
++
++    VERBOSE(VB_GENERAL, QString("Scaling to %1 x %2 from %3 x %4")
++		    .arg(w)
++		    .arg(h)
++		    .arg(img.width())
++		    .arg(img.height()));
++
++    img = img.smoothScale( w, h , QImage::ScaleMin);
++        
++    if (img.save(fname ,extension,100))
++    {
++        VERBOSE(VB_GENERAL, "MythMainWindow::screenShot succeeded");
++	ret = true;
++    }
++    else 
++    {
++	VERBOSE(VB_GENERAL, "MythMainWindow::screenShot Failed!");
++	ret = false;
++    }
++
++    return ret;
++}
++
++bool MythMainWindow::screenShot(int x, int y, int x2, int y2)
++{
++    QString fPath = gContext->GetSetting("ScreenShotPath","/tmp/");
++    QString fName = QString("/%1/myth-screenshot-%2.png")
++	            .arg(fPath)
++	            .arg(QDateTime::currentDateTime().toString("yyyy-mm-ddThh-mm-ss.zzz"));
++
++    return screenShot(fName, x, y, x2, y2, 0, 0);
++}
++
++bool MythMainWindow::screenShot(QString fname, int w, int h)
++{
++    QRect sLoc = qApp->mainWidget()->geometry();
++    return screenShot(fname, sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height(), w, h);
++}
++
++
++bool MythMainWindow::screenShot(void)
++{
++    QRect sLoc = qApp->mainWidget()->geometry();
++    return screenShot(sLoc.left(),sLoc.top(), sLoc.width(), sLoc.height());
++}
++
+ #ifdef USING_APPLEREMOTE
+ // This may be possible via installEventFilter() instead?
+ 
+Index: libs/libmythui/mythmainwindow.h
+===================================================================
+--- libs/libmythui/mythmainwindow.h	(revision 16103)
++++ libs/libmythui/mythmainwindow.h	(working copy)
+@@ -101,6 +101,11 @@
+ 
+     MythPainter *GetCurrentPainter();
+ 
++    bool screenShot(QString fname, int x, int y, int x2, int y2, int w, int h);
++    bool screenShot(int x, int y, int x2, int y2);
++    bool screenShot(QString fname, int w, int h);
++    bool screenShot(void);
++
+     void AllowInput(bool allow);
+ 
+     QRect GetUIScreenRect();
+Index: programs/mythfrontend/mediarenderer.cpp
+===================================================================
+--- programs/mythfrontend/mediarenderer.cpp	(revision 16103)
++++ programs/mythfrontend/mediarenderer.cpp	(working copy)
+@@ -9,6 +9,7 @@
+ /////////////////////////////////////////////////////////////////////////////
+ 
+ #include "mediarenderer.h"
++#include "mythfexml.h"
+ #include "compat.h"
+ 
+ /////////////////////////////////////////////////////////////////////////////
+@@ -89,6 +90,11 @@
+                                  "http-get:*:video/mpeg:*,"
+                                  "http-get:*:video/nupplevideo:*,"
+                                  "http-get:*:video/x-ms-wmv:*";
++        // ------------------------------------------------------------------
++        // Register the MythFEXML protocol... 
++        // ------------------------------------------------------------------
++        VERBOSE(VB_UPNP, "MediaRenderer::Registering MythFEXML Service." );
++        m_pHttpServer->RegisterExtension( new MythFEXML( RootDevice() ));
+ 
+         // VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering AVTransport Service." ));
+         // m_pHttpServer->RegisterExtension( m_pUPnpAVT = new UPnpAVTransport( RootDevice() ));
+Index: programs/mythfrontend/MFEXML_scpd.xml
+===================================================================
+--- programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
++++ programs/mythfrontend/MFEXML_scpd.xml	(revision 0)
+@@ -0,0 +1,34 @@
++<?xml version="1.0" encoding="utf-8"?>
++<scpd xmlns="urn:schemas-upnp-org:service-1-0">
++   <specVersion>
++      <major>1</major>
++      <minor>0</minor>
++   </specVersion>
++   <actionList>
++      <action>
++         <name>GetScreenShot</name>
++         <argumentList>
++            <argument>
++               <name>Height</name>
++               <direction>in</direction>
++               <relatedStateVariable>A_ARG_TYPE_Height</relatedStateVariable>
++            </argument>
++            <argument>
++               <name>Width</name>
++               <direction>in</direction>
++               <relatedStateVariable>A_ARG_TYPE_Width</relatedStateVariable>
++            </argument>
++         </argumentList>
++      </action>
++   </actionList>
++   <serviceStateTable>
++      <stateVariable sendEvents="no">
++         <name>A_ARG_TYPE_Height</name>
++         <dataType>i2</dataType>
++      </stateVariable>
++      <stateVariable sendEvents="no">
++         <name>A_ARG_TYPE_Width</name>
++         <dataType>i2</dataType>
++      </stateVariable>
++   </serviceStateTable>
++</scpd>
+Index: programs/mythfrontend/globalsettings.cpp
+===================================================================
+--- programs/mythfrontend/globalsettings.cpp	(revision 16103)
++++ programs/mythfrontend/globalsettings.cpp	(working copy)
+@@ -2220,6 +2220,15 @@
+     return ge;
+ }
+ 
++static HostLineEdit *ScreenShotPath()
++{
++    HostLineEdit *ge = new HostLineEdit("ScreenShotPath");
++    ge->setLabel(QObject::tr("ScreenShotPath"));
++    ge->setValue("/tmp/");
++    ge->setHelpText(QObject::tr("Path to screenshot storage location. Should be writable by the frontend"));
++    return ge;
++}
++
+ static HostCheckBox *UseArrowAccels()
+ {
+     HostCheckBox *gc = new HostCheckBox("UseArrowAccels");
+@@ -4502,6 +4511,7 @@
+     MythMediaSettings *mediaMon = new MythMediaSettings();
+ 
+     general->addChild(LircKeyPressedApp());
++    general->addChild(ScreenShotPath());
+     general->addChild(row);
+     general->addChild(NetworkControlPort());
+     general->addChild(mediaMon);
+Index: programs/mythfrontend/mythfexml.h
+===================================================================
+--- programs/mythfrontend/mythfexml.h	(revision 0)
++++ programs/mythfrontend/mythfexml.h	(revision 0)
+@@ -0,0 +1,66 @@
++//////////////////////////////////////////////////////////////////////////////
++// Program Name: mythxml.h
++//                                                                            
++// Purpose - Myth Frontend XML protocol HttpServerExtension 
++//                                                                            
++//////////////////////////////////////////////////////////////////////////////
++
++#ifndef MYTHFEXML_H_
++#define MYTHFEXML_H_
++
++#include <qdom.h>
++#include <qdatetime.h> 
++
++#include "upnp.h"
++#include "eventing.h"
++#include "mythcontext.h"
++
++typedef enum 
++{
++    MFEXML_Unknown                =  0,
++    MFEXML_GetScreenShot          =  1
++
++} MythFEXMLMethod;
++
++class MythFEXML : public Eventing
++{
++    private:
++
++        QString                      m_sControlUrl;
++        QString                      m_sServiceDescFileName;
++
++    protected:
++
++        // Implement UPnpServiceImpl methods that we can
++
++        virtual QString GetServiceType      () { return "urn:schemas-mythtv-org:service:MythTv:1"; }
++        virtual QString GetServiceId        () { return "urn:mythtv-org:serviceId:MYTHTV_1-0"; }
++        virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); }
++        virtual QString GetServiceDescURL   () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; }
++
++    private:
++
++        MythFEXMLMethod GetMethod( const QString &sURI );
++
++	void    GetScreenShot    ( HTTPRequest *pRequest );
++
++    public:
++                 MythFEXML( UPnpDevice *pDevice );
++        virtual ~MythFEXML();
++
++        bool     ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest );
++
++        // Static methods shared with HttpStatus
++
++};
++
++/////////////////////////////////////////////////////////////////////////////
++/////////////////////////////////////////////////////////////////////////////
++//
++// 
++//
++/////////////////////////////////////////////////////////////////////////////
++/////////////////////////////////////////////////////////////////////////////
++#endif
++
++
+Index: programs/mythfrontend/main.cpp
+===================================================================
+--- programs/mythfrontend/main.cpp	(revision 16103)
++++ programs/mythfrontend/main.cpp	(working copy)
+@@ -800,6 +800,11 @@
+     }
+ }
+ 
++void getScreenShot(void)
++{
++    (void) gContext->GetMainWindow()->screenShot();
++}
++
+ void InitJumpPoints(void)
+ {
+     REG_JUMP("Reload Theme", "", "", reloadTheme);
+@@ -818,6 +823,8 @@
+     REG_JUMP("Status Screen", "", "", showStatus);
+     REG_JUMP("Previously Recorded", "", "", startPrevious);
+ 
++    REG_JUMPEX("ScreenShot","","",getScreenShot,false);
++
+     REG_KEY("qt", "DELETE", "Delete", "D");
+     REG_KEY("qt", "EDIT", "Edit", "E");
+ 
+Index: programs/mythfrontend/mythfrontend.pro
+===================================================================
+--- programs/mythfrontend/mythfrontend.pro	(revision 16103)
++++ programs/mythfrontend/mythfrontend.pro	(working copy)
+@@ -15,7 +15,7 @@
+ setting.files += util_menu.xml info_settings.xml main_settings.xml
+ setting.files += recpriorities_settings.xml tv_search.xml tv_lists.xml
+ setting.files += library.xml manage_recordings.xml optical_menu.xml tvmenu.xml
+-setting.files += tv_settings.xml
++setting.files += tv_settings.xml MFEXML_scpd.xml
+ setting.extra = -ldconfig
+ 
+ INSTALLS += setting
+@@ -26,13 +26,13 @@
+ HEADERS += manualbox.h playbackbox.h viewscheduled.h globalsettings.h
+ HEADERS += manualschedule.h programrecpriority.h channelrecpriority.h
+ HEADERS += statusbox.h networkcontrol.h custompriority.h
+-HEADERS += mediarenderer.h
++HEADERS += mediarenderer.h mythfexml.h
+ HEADERS += mythappearance.h
+ 
+ SOURCES += main.cpp manualbox.cpp playbackbox.cpp viewscheduled.cpp
+ SOURCES += globalsettings.cpp manualschedule.cpp programrecpriority.cpp 
+ SOURCES += channelrecpriority.cpp statusbox.cpp networkcontrol.cpp
+-SOURCES += mediarenderer.cpp
++SOURCES += mediarenderer.cpp mythfexml.cpp
+ SOURCES += custompriority.cpp
+ SOURCES += mythappearance.cpp
+ 
+Index: programs/mythfrontend/mythfexml.cpp
+===================================================================
+--- programs/mythfrontend/mythfexml.cpp	(revision 0)
++++ programs/mythfrontend/mythfexml.cpp	(revision 0)
+@@ -0,0 +1,133 @@
++//////////////////////////////////////////////////////////////////////////////
++// Program Name: MythXML.cpp
++//                                                                            
++// Purpose - Html & XML status HttpServerExtension
++//                                                                            
++// Created By  : David Blain                    Created On : Oct. 24, 2005
++// Modified By : Daniel Kristjansson            Modified On: Oct. 31, 2007
++//                                                                            
++//////////////////////////////////////////////////////////////////////////////
++
++#include "mythfexml.h"
++
++#include "libmyth/mythcontext.h"
++#include "libmyth/util.h"
++#include "libmyth/mythdbcon.h"
++
++#include "mythmainwindow.h"
++
++#include <qtextstream.h>
++#include <qdir.h>
++#include <qfile.h>
++#include <qregexp.h>
++#include <qbuffer.h>
++#include <math.h>
++
++#include "../../config.h"
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXML::MythFEXML( UPnpDevice *pDevice ) : Eventing( "MythFEXML", "MYTHTV_Event" )
++{
++
++    QString sUPnpDescPath = UPnp::g_pConfig->GetValue( "UPnP/DescXmlPath", m_sSharePath );
++
++    m_sServiceDescFileName = sUPnpDescPath + "MFEXML_scpd.xml";
++    m_sControlUrl          = "/MythFE";
++
++    // Add our Service Definition to the device.
++
++    RegisterService( pDevice );
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXML::~MythFEXML()
++{
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++MythFEXMLMethod MythFEXML::GetMethod( const QString &sURI )
++{
++    if (sURI == "GetScreenShot"        ) return MFEXML_GetScreenShot;
++
++    return( MFEXML_Unknown );
++}
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++bool MythFEXML::ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest )
++{
++    try
++    {
++        if (pRequest)
++        {
++            if (pRequest->m_sBaseUrl != m_sControlUrl)
++                return( false );
++
++            VERBOSE(VB_UPNP, QString("MythFEXML::ProcessRequest: %1 : %2")
++			             .arg(pRequest->m_sMethod)
++				     .arg(pRequest->m_sRawRequest));
++
++            switch( GetMethod( pRequest->m_sMethod ))
++            {
++		case MFEXML_GetScreenShot      : GetScreenShot    ( pRequest ); return true;
++
++
++                default: 
++                {
++                    UPnp::FormatErrorResponse( pRequest, UPnPResult_InvalidAction );
++
++                    return true;
++                }
++            }
++        }
++    }
++    catch( ... )
++    {
++        VERBOSE( VB_IMPORTANT, "MythFEXML::ProcessRequest() - Unexpected Exception" );
++    }
++
++    return( false );
++}           
++
++// ==========================================================================
++// Request handler Methods
++// ==========================================================================
++
++/////////////////////////////////////////////////////////////////////////////
++//
++/////////////////////////////////////////////////////////////////////////////
++
++void MythFEXML::GetScreenShot( HTTPRequest *pRequest )
++{
++    pRequest->m_eResponseType   = ResponseTypeFile;
++
++    // Optional Parameters
++
++    int     nWidth    = pRequest->m_mapParams[ "Width"     ].toInt();
++    int     nHeight   = pRequest->m_mapParams[ "Height"    ].toInt();
++
++    // Read Icon file path from database
++
++    QString sFileName = QString("/%1/myth-screenshot-XML.jpg")
++                    .arg(gContext->GetSetting("ScreenShotPath","/tmp/"));
++
++    if (!gContext->GetMainWindow()->screenShot(sFileName,nWidth, nHeight))
++    {
++        VERBOSE(VB_GENERAL, "MythFEXML: Failed to take screenshot. Aborting");
++	return;
++    }
++
++    pRequest->m_sFileName = sFileName;
++}
++
diff --git a/abs/mv-core/myth/stable/mythtv-release-fixes/smolt_jump.patch b/abs/mv-core/myth/stable/mythtv-release-fixes/smolt_jump.patch
new file mode 100644
index 0000000..ca9bd08
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-release-fixes/smolt_jump.patch
@@ -0,0 +1,10 @@
+--- programs/mythfrontend/networkcontrol.cpp.orig	2008-03-23 23:00:25.000000000 +0000
++++ programs/mythfrontend/networkcontrol.cpp	2008-03-23 23:01:33.000000000 +0000
+@@ -81,6 +81,7 @@
+     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
+     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
+     jumpMap["snapshot"]              = "ScreenShot";
++    jumpMap["mythsmolt"]             = "MythSmolt";
+ 
+     // These jump point names match the (lowercased) locations from gContext
+     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
diff --git a/abs/mv-core/myth/stable/mythtv-themes/PKGBUILD b/abs/mv-core/myth/stable/mythtv-themes/PKGBUILD
new file mode 100755
index 0000000..379f2d9
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythtv-themes/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythtv-themes-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="themes for mythtv" 
+url="http://www.mythtv.org" 
+license="GPL" 
+depends=( ) 
+#makedepends=('sqlite3' 'sed') 
+conflicts=() 
+replaces=() 
+backup=() 
+#install='mythtv.install' 
+source=() 
+arch=('i686')
+md5sums=() 
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/myththemes
+_svnmod=myththemes
+
+build() { 
+echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#svn co http://cvs.mythtv.org/svn/trunk/mythtv
+#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
+#svn co http://cvs.mythtv.org/svn/trunk/myththemes
+cd $startdir/src/myththemes
+   make distclean
+    ./configure --prefix=/usr 
+    #./configure --disable-all --enable-mythweather --enable-fftw --disable-aac  
+   make  || return 1
+   make INSTALL_ROOT=$startdir/pkg install
+#   cd $startdir/src/$pkgname
+#   cd mythmovietime
+#   make || return 1
+#   make INSTALL_ROOT=$startdir/pkg install
+
+}
diff --git a/abs/mv-core/myth/stable/mythvideo/PKGBUILD b/abs/mv-core/myth/stable/mythvideo/PKGBUILD
new file mode 100644
index 0000000..5afee6a
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythvideo/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythvideo-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Video playback and browsing plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes'  'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
+license="GPL"
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+
+source=()
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+  	make distclean 
+	PLUGIN=mythvideo
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+   ./configure --prefix=/usr  --disable-all --enable-mythvideo  --enable-transcode  
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/stable/mythweather/PKGBUILD b/abs/mv-core/myth/stable/mythweather/PKGBUILD
new file mode 100644
index 0000000..dae89df
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythweather/PKGBUILD
@@ -0,0 +1,37 @@
+pkgname=mythweather-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="Weather checking plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-release-fixes' 'wget' 'perl-xml-sax' 'perl-soap-lite' 'perl-image-size'  'imagemagick')
+conflicts=('mythtv-plugins-release-fixes')
+groups=('mythtv-all-plugins-release-fixes')
+license="GPL"
+source=()
+#_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	make distclean
+	PLUGIN=mythweather
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+   ./configure  --enable-opengl --disable-all --enable-mythweather --prefix=/usr
+ 
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/mv-core/myth/stable/mythweb/PKGBUILD b/abs/mv-core/myth/stable/mythweb/PKGBUILD
new file mode 100755
index 0000000..52341a4
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythweb/PKGBUILD
@@ -0,0 +1,34 @@
+pkgname=mythweb-release-fixes
+pkgver=21228
+pkgrel=1
+pkgdesc="mythweb" 
+url="http://www.mythtv.org" 
+license="GPL" 
+arch=('i686')
+depends=(php fcgi libmysqlclient ) 
+conflicts=('mythweb' 'mythweb-fixes') 
+replaces=() 
+backup=() 
+install='mythweb.install' 
+source=(mythweblighttpd.patch dblogininit.inc ) 
+md5sums=() 
+_svntrunk=http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythplugins
+_svnmod=mythplugins
+build() { 
+echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#svn co http://cvs.mythtv.org/svn/trunk/mythtv
+#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
+#svn co http://cvs.mythtv.org/svn/trunk/myththemes
+cd $startdir/src/mythplugins
+
+#take care of fing mythweb
+mkdir -p $startdir/pkg/data/srv/httpd/htdocs/
+cp -rp mythweb $startdir/pkg/data/srv/httpd/htdocs/
+cp -f $startdir/src/dblogininit.inc $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes/
+cd  $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes
+patch -p0 < $startdir/src/mythweblighttpd.patch
+
+chown -R nobody:nobody $startdir/pkg/data/srv/httpd/htdocs/mythweb
+chmod -R  775 $startdir/pkg/data/srv/httpd/htdocs/mythweb
+}
diff --git a/abs/mv-core/myth/stable/mythweb/dblogininit.inc b/abs/mv-core/myth/stable/mythweb/dblogininit.inc
new file mode 100755
index 0000000..c5395c5
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythweb/dblogininit.inc
@@ -0,0 +1,6 @@
+<?
+ $_SERVER["db_server"] = "localhost";
+ $_SERVER["db_name"] = "mythconverg";
+ $_SERVER["db_login"] = "mythtv";
+ $_SERVER["db_password"] = "mythtv";
+?>
diff --git a/abs/mv-core/myth/stable/mythweb/mythweb.install b/abs/mv-core/myth/stable/mythweb/mythweb.install
new file mode 100755
index 0000000..e135b6c
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythweb/mythweb.install
@@ -0,0 +1,37 @@
+
+# arg 1:  the new package version
+pre_install () {
+/bin/true
+}
+
+post_install() {
+	#cp /etc/lighttpd/lighttpd.conf /tmp
+#	sed -e "s/# .*  \"mod_fastcgi\",/\"mod_fastcgi\"\,/g" /tmp/lighttpd.conf > /etc/lighttpd/lighttpd.conf
+ /bin/true
+
+}
+pre_upgrade () {
+ pre_install
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install
+
+  /bin/true
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+/bint/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/mv-core/myth/stable/mythweb/mythweblighttpd.patch b/abs/mv-core/myth/stable/mythweb/mythweblighttpd.patch
new file mode 100755
index 0000000..6403a88
--- /dev/null
+++ b/abs/mv-core/myth/stable/mythweb/mythweblighttpd.patch
@@ -0,0 +1,13 @@
+--- database.php.orig	2007-12-31 21:25:30.000000000 +0000
++++ database.php	2007-12-31 21:25:50.000000000 +0000
+@@ -18,6 +18,10 @@
+         custom_error("Please install the MySQL libraries for PHP.\n"
+                     .'The package is usually called something like php-mysql.');
+     }
++     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
++	      require_once 'dblogininit.inc';
++	      }
++	
+ 
+ // No database connection info defined?
+     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
diff --git a/abs/mv-core/myth/stable/syth-lacquer-clean/PKGBUILD b/abs/mv-core/myth/stable/syth-lacquer-clean/PKGBUILD
new file mode 100755
index 0000000..92e37d6
--- /dev/null
+++ b/abs/mv-core/myth/stable/syth-lacquer-clean/PKGBUILD
@@ -0,0 +1,23 @@
+pkgname=syth-lacquer-clean-wide
+pkgver=21228
+pkgrel=1
+pkgdesc=""
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+ arch=('i686')
+#source=($pkgname.tar.bz2)
+source=(http://jmeyer.us/e107_files/downloads/SVN/$pkgname.tar.bz2)
+
+md5sums=()
+
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/myth/stable/syth-lacquer-wide/PKGBUILD b/abs/mv-core/myth/stable/syth-lacquer-wide/PKGBUILD
new file mode 100755
index 0000000..edf4357
--- /dev/null
+++ b/abs/mv-core/myth/stable/syth-lacquer-wide/PKGBUILD
@@ -0,0 +1,23 @@
+pkgname=syth-lacquer-wide
+pkgver=21228
+pkgrel=1
+pkgdesc="Syth for mythtv .21"
+url=""
+license=""
+depends=()
+makedepends=()
+conflicts=()
+replaces=()
+backup=()
+arch='i686'
+
+source=(http://www.mythvantage.com/src/syth-lacquer-wide.tgz)
+
+md5sums=()
+
+build() {
+  cd $startdir/src
+  mkdir -p $startdir/pkg/usr/share/mythtv/themes
+  cp -rp $pkgname $startdir/pkg/usr/share/mythtv/themes/
+
+}
diff --git a/abs/mv-core/mythvantage-live/PKGBUILD b/abs/mv-core/mythvantage-live/PKGBUILD
index 6f3a02d..d23d8e7 100644
--- a/abs/mv-core/mythvantage-live/PKGBUILD
+++ b/abs/mv-core/mythvantage-live/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythvantage-live
 pkgver=5.3.3
-pkgrel=7
+pkgrel=8
 provides="linhes-live"
 pkgdesc="components for the Live System."
 
diff --git a/abs/mv-core/openssh/PKGBUILD b/abs/mv-core/openssh/PKGBUILD
deleted file mode 100644
index 0c3c4a2..0000000
--- a/abs/mv-core/openssh/PKGBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: PKGBUILD 23216 2009-01-06 05:04:12Z eric $
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
-# Contributor: judd <jvinet@zeroflux.org>
-
-pkgname=openssh
-pkgver=5.1p1
-pkgrel=2
-#_gsskexver=20080404
-pkgdesc='A Secure SHell server/client'
-arch=(i686 x86_64)
-license=('custom')
-url="http://www.openssh.org/portable.html"
-backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd')
-depends=('openssl>=0.9.8g' 'zlib' 'pam' 'tcp_wrappers' 'heimdal>=1.2-1')
-source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$pkgname-$pkgver.tar.gz
-        sshd sshd.confd sshd.pam)
-        #http://www.sxw.org.uk/computing/patches/$pkgname-$pkgver-gsskex-$_gsskexver.patch
-md5sums=('03f2d0c1b5ec60d4ac9997a146d2faec' 'd9ee5e0a0d143689b3d6f11454a2a892'
-         'e2cea70ac13af7e63d40eb04415eacd5' '1c7c2ea8734ec7e3ca58d820634dc73a')
-
-build() {
-  cd $startdir/src/$pkgname-$pkgver
-  #patch -up0 < $startdir/src/$pkgname-$pkgver-gsskex-$_gsskexver.patch
-
-  #NOTE we disable-strip so that makepkg can decide whether to strip or not
-  ./configure --prefix=/usr --libexecdir=/usr/lib/ssh \
-    --sysconfdir=/etc/ssh --with-tcp-wrappers --with-privsep-user=nobody \
-    --with-md5-passwords --with-pam --with-mantype=man --mandir=/usr/man \
-    --with-xauth=/usr/bin/xauth --with-kerberos5=/usr --disable-strip
-  make || return 1
-  make DESTDIR=$startdir/pkg install
-
-  #What is this for? Is it needed?
-  mkdir -p $startdir/pkg/var/empty
-
-  install -D -m755 $startdir/src/sshd $startdir/pkg/etc/rc.d/sshd
-
-  install -D -m644 LICENCE $startdir/pkg/usr/share/licenses/$pkgname/LICENCE
-  install -D -m644 $startdir/src/sshd.pam $startdir/pkg/etc/pam.d/sshd
-  install -D -m644 $startdir/src/sshd.confd $startdir/pkg/etc/conf.d/sshd
-
-  rm $startdir/pkg/usr/man/man1/slogin.1
-  ln -sf ssh.1.gz $startdir/pkg/usr/man/man1/slogin.1.gz
-
-  #additional contrib scripts that we like
-  install -D -m755 contrib/findssl.sh $startdir/pkg/usr/bin/findssl.sh
-  install -D -m755 contrib/ssh-copy-id $startdir/pkg/usr/bin/ssh-copy-id
-  install -D -m644 contrib/ssh-copy-id.1  $startdir/pkg/usr/man/man1/ssh-copy-id.1
-
-  # sshd_config
-  sed -i \
-    -e 's|^#ListenAddress 0.0.0.0|ListenAddress 0.0.0.0|g' \
-    -e 's|^#UsePAM no|UsePAM yes|g' \
-    -e 's|^#ChallengeResponseAuthentication yes|ChallengeResponseAuthentication no|g' \
-    $startdir/pkg/etc/ssh/sshd_config
-  echo "HashKnownHosts yes" >>  $startdir/pkg/etc/ssh/ssh_config
-  echo "StrictHostKeyChecking ask" >>  $startdir/pkg/etc/ssh/ssh_config
-
-  #ssh_config
-  sed -i \
-    -e 's|^# Host \*|Host *|g' \
-    $startdir/pkg/etc/ssh/ssh_config
-}
diff --git a/abs/mv-core/openssh/sshd b/abs/mv-core/openssh/sshd
deleted file mode 100755
index 875028a..0000000
--- a/abs/mv-core/openssh/sshd
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/sshd
-
-PID=`cat /var/run/sshd.pid 2>/dev/null`
-case "$1" in
-  start)
-    stat_busy "Starting Secure Shell Daemon"
-    [ -f /etc/ssh/ssh_host_key ] || { /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key >/dev/null; }
-    [ -f /etc/ssh/ssh_host_rsa_key ] || { /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key >/dev/null; }
-    [ -f /etc/ssh/ssh_host_dsa_key ] || { /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key >/dev/null; }
-    [ -z "$PID" ] && /usr/sbin/sshd $SSHD_ARGS
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      add_daemon sshd
-      stat_done
-    fi
-    ;;
-  stop)
-    stat_busy "Stopping Secure Shell Daemon"
-    [ ! -z "$PID" ]  && kill $PID &> /dev/null
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      rm_daemon sshd
-      stat_done
-    fi
-    ;;
-  restart)
-    $0 stop
-    sleep 1
-    $0 start
-    ;;
-  *)
-    echo "usage: $0 {start|stop|restart}"  
-esac
-exit 0
diff --git a/abs/mv-core/openssh/sshd.confd b/abs/mv-core/openssh/sshd.confd
deleted file mode 100644
index 5ce7c00..0000000
--- a/abs/mv-core/openssh/sshd.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Parameters to be passed to sshd
-#
-SSHD_ARGS=""
diff --git a/abs/mv-core/openssh/sshd.pam b/abs/mv-core/openssh/sshd.pam
deleted file mode 100644
index dc70815..0000000
--- a/abs/mv-core/openssh/sshd.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-#auth		required	pam_securetty.so	#Disable remote root
-auth		required	pam_unix.so
-auth		required	pam_nologin.so
-auth		required	pam_env.so
-account		required	pam_unix.so
-account		required	pam_time.so
-password	required	pam_unix.so
-session		required	pam_unix_session.so
-session		required	pam_limits.so
diff --git a/abs/mv-core/syslog-ng/PKGBUILD b/abs/mv-core/syslog-ng/PKGBUILD
index a9efeee..9a30df6 100644
--- a/abs/mv-core/syslog-ng/PKGBUILD
+++ b/abs/mv-core/syslog-ng/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=syslog-ng
-pkgver=2.0.9
-pkgrel=4
+pkgver=2.0.10
+pkgrel=1
 pkgdesc="A portable syslogd replacement with enhanced, flexible configuration scheme."
 arch=(i686 x86_64)
 license=('GPL')
@@ -10,7 +10,7 @@ depends=('tcp_wrappers' 'logrotate')
 install=('syslog.install')
 provides=('logger')
 backup=('etc/syslog-ng.conf')
-source=(http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/$pkgname-$pkgver.tar.gz \
+source=(http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/$pkgver/source/${pkgname}_$pkgver.tar.gz \
 	syslog-ng.conf syslog-ng.logrotate syslog-ng log_care.sh)
 
 build() {
-- 
cgit v0.12


From 0426c30ca0ecb48631068e3ea6f143253a75c25e Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Mon, 17 Aug 2009 13:26:15 -0500
Subject: linhes-config: use lists as intended.

---
 abs/core-testing/LinHES-config/mv_hostype.py | 20 ++++++++++----------
 abs/mv-core/MythVantage-config/PKGBUILD      |  2 +-
 abs/mv-core/MythVantage-config/mv_hostype.py | 18 +++++++++---------
 3 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/abs/core-testing/LinHES-config/mv_hostype.py b/abs/core-testing/LinHES-config/mv_hostype.py
index b3899ff..5d033fa 100755
--- a/abs/core-testing/LinHES-config/mv_hostype.py
+++ b/abs/core-testing/LinHES-config/mv_hostype.py
@@ -138,15 +138,15 @@ def hostypeprint(systemconfig):
         run_mysqlnetwork = True
         if systemconfig["hostypec"]:
             setup_db()
-        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
 
     elif systemconfig["SystemType"] == "Master_backend":
         logging.info("Master backend system being configured")
         setup_ntp(False,"null")
         setup_avahi(systemconfig["TEMPLATES"])
-        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
         EnableNetwork = True
         run_mysqlnetwork = True
         if data_config.SYSTEMTYPE == "MythVantage":
@@ -160,8 +160,8 @@ def hostypeprint(systemconfig):
         remove_avahi_service()
         if systemconfig["hostypec"]:
             setup_db()
-        install_list=("portmap", "nfs-utils", "local-website", "avahi", 'libmysqlclient')
-        daemon_list=("mythbackend", "portmap", "nfs-utils", "netfs", "lighttpd", "avahi")
+        install_list = ["portmap", "nfs-utils", "local-website", "avahi", "libmysqlclient" ]
+        daemon_list = ["mythbackend", "portmap", "nfs-utils", "netfs", "lighttpd", "avahi" ]
         daemon_remove_list=('mysql')
         if data_config.SYSTEMTYPE == "MythVantage":
             install_list.remove("local-website")
@@ -175,9 +175,9 @@ def hostypeprint(systemconfig):
         logging.info("Frontend only system being configured")
         setup_ntp(True,systemconfig["dbhost"])
         remove_avahi_service()
-        install_list=("mysql-clients", "libmysqlclient",  "avahi", "portmap", "nfs-utils", "local-website")
-        remove_list=("mysql")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql-clients", "libmysqlclient",  "avahi", "portmap", "nfs-utils", "local-website"]
+        remove_list=["mysql"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
         daemon_remove_list=("mysql", "mythbackend")
         if data_config.SYSTEMTYPE == "MythVantage":
             install_list.remove("local-website")
@@ -213,7 +213,7 @@ def hostypeprint(systemconfig):
 
     setup_mysql_connection(systemconfig)
     if data_config.SYSTEMTYPE == "MythVantage":
-        setup_func_minion(dbhost)
+        setup_func_minion(systemconfig["dbhost"])
         setup_func_key()
         setup_syslog(systemconfig["dbhost"])
     logging.info("__End of hostype config\n")
diff --git a/abs/mv-core/MythVantage-config/PKGBUILD b/abs/mv-core/MythVantage-config/PKGBUILD
index 60c3dca..8d6766e 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=162
+pkgrel=163
 pkgdesc="The Gui-installer"
 
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted 
diff --git a/abs/mv-core/MythVantage-config/mv_hostype.py b/abs/mv-core/MythVantage-config/mv_hostype.py
index e7e14cb..5d033fa 100755
--- a/abs/mv-core/MythVantage-config/mv_hostype.py
+++ b/abs/mv-core/MythVantage-config/mv_hostype.py
@@ -138,15 +138,15 @@ def hostypeprint(systemconfig):
         run_mysqlnetwork = True
         if systemconfig["hostypec"]:
             setup_db()
-        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
 
     elif systemconfig["SystemType"] == "Master_backend":
         logging.info("Master backend system being configured")
         setup_ntp(False,"null")
         setup_avahi(systemconfig["TEMPLATES"])
-        install_list=("mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql", "mythdb-initial", "avahi", "portmap", "nfs-utils", "local-website", "myth2ipod", "mythtv-status"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
         EnableNetwork = True
         run_mysqlnetwork = True
         if data_config.SYSTEMTYPE == "MythVantage":
@@ -160,8 +160,8 @@ def hostypeprint(systemconfig):
         remove_avahi_service()
         if systemconfig["hostypec"]:
             setup_db()
-        install_list=("portmap", "nfs-utils", "local-website", "avahi", 'libmysqlclient')
-        daemon_list=("mythbackend", "portmap", "nfs-utils", "netfs", "lighttpd", "avahi")
+        install_list = ["portmap", "nfs-utils", "local-website", "avahi", "libmysqlclient" ]
+        daemon_list = ["mythbackend", "portmap", "nfs-utils", "netfs", "lighttpd", "avahi" ]
         daemon_remove_list=('mysql')
         if data_config.SYSTEMTYPE == "MythVantage":
             install_list.remove("local-website")
@@ -175,9 +175,9 @@ def hostypeprint(systemconfig):
         logging.info("Frontend only system being configured")
         setup_ntp(True,systemconfig["dbhost"])
         remove_avahi_service()
-        install_list=("mysql-clients", "libmysqlclient",  "avahi", "portmap", "nfs-utils", "local-website")
-        remove_list=("mysql")
-        daemon_list=("mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd")
+        install_list=["mysql-clients", "libmysqlclient",  "avahi", "portmap", "nfs-utils", "local-website"]
+        remove_list=["mysql"]
+        daemon_list=["mysql", "mythbackend", "avahi", "portmap", "nfs-utils", "netfs", "lighttpd"]
         daemon_remove_list=("mysql", "mythbackend")
         if data_config.SYSTEMTYPE == "MythVantage":
             install_list.remove("local-website")
-- 
cgit v0.12


From 2f5d04a604af2cdcf0df9d264ae7f7e7705a99ff Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Mon, 17 Aug 2009 16:59:07 -0400
Subject: v4l-dvb: rebuilt using new kernel

---
 abs/core-testing/v4l-dvb/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/v4l-dvb/PKGBUILD b/abs/core-testing/v4l-dvb/PKGBUILD
index 21c82e4..64286d7 100644
--- a/abs/core-testing/v4l-dvb/PKGBUILD
+++ b/abs/core-testing/v4l-dvb/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=v4l-dvb
 _kernver=2.6.28-LinHES
 pkgver=1
-pkgrel=10
+pkgrel=12
 pkgdesc="V4L-DVB drivers from mercurial"
 arch=('i686' 'x86_64')
 license=('GPL2')
-- 
cgit v0.12


From 9800bb0789a9b3655a679e996841bdb51a609d22 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Mon, 17 Aug 2009 16:59:48 -0400
Subject: mythtv-svn: bumped to svn 21333

---
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD  |   2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh            |   2 +-
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD |   2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD |   2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD    |   2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD |   2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD    |   2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD  |   2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD   |   2 +-
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD    |   2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD  |   2 +-
 .../trunk/mythtv/H264Parser-fixes-v1.1.patch       | 368 ---------------------
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD      |   7 +-
 .../mythtv/trunk/mythtv/hdpvr-signalmonitor.patch  | 292 ----------------
 .../mythtv/trunk/mythtv/myththemedmenu.cpp.patch   | 183 ----------
 .../mythtv/trunk/mythtv/myththemedmenu.h.patch     |  24 --
 .../mythtv/trunk/mythtv/ringbuffer_reset_v2.diff   |  91 -----
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD   |   2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD |   2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD     |   2 +-
 .../mythtv/trunk/mythzoneminder/PKGBUILD           |   2 +-
 21 files changed, 17 insertions(+), 978 deletions(-)
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff

diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index a440786..a3c5e9f 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index d8666ed..4f7042a 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-pkgver=21228
+pkgver=21333
 pkgrel=1
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 16ca0a5..d0a2419 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index 57480ea..b9d97fc 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 6295977..6f37e1f 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index b5ac00f..f731055 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 19417e3..4dfdde0 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index 952cf42..4ea24ea 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 3d5b91b..cb0d2d5 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index ca36734..28ee7be 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index ca716a3..ab6a93c 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch b/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch
deleted file mode 100644
index f8e2100..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-Index: libs/libmythtv/mpeg/H264Parser.cpp
-===================================================================
---- libs/libmythtv/mpeg/H264Parser.cpp.orig
-+++ libs/libmythtv/mpeg/H264Parser.cpp
-@@ -3,7 +3,9 @@
- 
- extern "C" {
- // from libavcodec
--    extern const uint8_t *ff_find_start_code(const uint8_t * p, const uint8_t *end, uint32_t * state);
-+    extern const uint8_t *ff_find_start_code(const uint8_t * p,
-+                                             const uint8_t *end,
-+                                             uint32_t * state);
- #include "avcodec.h"
- }
- 
-@@ -88,19 +90,18 @@ static const float eps = 1E-5;
- H264Parser::H264Parser(void)
- {
-     Reset();
-+    I_is_keyframe = false;
- }
- 
- void H264Parser::Reset(void)
- {
-     state_changed = false;
--    seen_sps = seen_IDR = false;
-+    seen_sps = false;
-+    is_keyframe = false;
- 
-     sync_accumulator = 0xffffffff;
--    find_AU = false;
-     AU_pending = false;
- 
--    NAL_type = UNKNOWN;
--
-     frame_num = prev_frame_num = -1;
-     slice_type = SLICE_UNDEF;
-     prev_pic_parameter_set_id = pic_parameter_set_id = -1;
-@@ -112,7 +113,7 @@ void H264Parser::Reset(void)
-     prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom = 0;
-     prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0] = 0;
-     prev_delta_pic_order_cnt[1] = delta_pic_order_cnt[1] = 0;
--    prev_nal_unit_type = nal_unit_type = 0;
-+    prev_nal_unit_type = nal_unit_type = UNKNOWN;
-     prev_idr_pic_id = idr_pic_id = 0;
- 
-     log2_max_frame_num = log2_max_pic_order_cnt_lsb = 0;
-@@ -136,8 +137,6 @@ void H264Parser::Reset(void)
- 
-     AU_offset = frame_start_offset = keyframe_start_offset = 0;
-     on_frame = on_key_frame = false;
--
--    wait_for_IDR = false;
- }
- 
- 
-@@ -214,13 +213,7 @@ bool H264Parser::new_AU(void)
-     {
-         // Need previous slice information for comparison
- 
--        if (NAL_type == AU_DELIMITER ||
--            NAL_type == SPS ||
--            NAL_type == PPS ||
--            NAL_type == SEI ||
--            (NAL_type > SPS_EXT && NAL_type < AUXILIARY_SLICE))
--            result = true;
--        else if (NAL_type != SLICE_IDR && frame_num != prev_frame_num)
-+        if (nal_unit_type != SLICE_IDR && frame_num != prev_frame_num)
-             result = true;
-         else if (prev_pic_parameter_set_id != -1 &&
-                  pic_parameter_set_id != prev_pic_parameter_set_id)
-@@ -230,9 +223,6 @@ bool H264Parser::new_AU(void)
-         else if ((bottom_field_flag != -1 && prev_bottom_field_flag != -1) &&
-                  bottom_field_flag != prev_bottom_field_flag)
-             result = true;
--        else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) &&
--                 nal_ref_idc != prev_nal_ref_idc)
--            result = true;
-         else if ((pic_order_cnt_type == 0 && prev_pic_order_cnt_type == 0) &&
-                  (pic_order_cnt_lsb != prev_pic_order_cnt_lsb ||
-                   delta_pic_order_cnt_bottom !=
-@@ -256,7 +246,6 @@ bool H264Parser::new_AU(void)
-     prev_pic_parameter_set_id = pic_parameter_set_id;
-     prev_field_pic_flag = field_pic_flag;
-     prev_bottom_field_flag = bottom_field_flag;
--    prev_nal_ref_idc = nal_ref_idc;
-     prev_pic_order_cnt_lsb = pic_order_cnt_lsb;
-     prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom;
-     prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0];
-@@ -273,7 +262,7 @@ uint32_t H264Parser::addBytes(const uint
- {
-     const uint8_t *byteP = bytes;
-     const uint8_t *endP = bytes + byte_count;
--
-+    const uint8_t *nalP;
-     uint8_t        first_byte;
- 
-     state_changed = false;
-@@ -305,10 +294,11 @@ uint32_t H264Parser::addBytes(const uint
-   11 End of stream end_of_stream_rbsp( )
- */
-             first_byte = *(byteP - 1);
--            NAL_type = first_byte & 0x1f;
-+            nal_unit_type = first_byte & 0x1f;
-             nal_ref_idc = (first_byte >> 5) & 0x3;
- 
--            if (NALisSlice(NAL_type) || NAL_type == SPS || NAL_type == PPS)
-+            if (nal_unit_type == SPS || nal_unit_type == PPS ||
-+                nal_unit_type == SEI || NALisSlice(nal_unit_type))
-             {
-                 /*
-                   bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE
-@@ -318,27 +308,51 @@ uint32_t H264Parser::addBytes(const uint
-                 {
-                     init_get_bits(&gb, byteP, 8 * (endP - byteP));
- 
--                    if (NAL_type == SPS)
-+                    if (nal_unit_type == SEI)
-+                    {
-+                        nalP = ff_find_start_code(byteP+1, endP,
-+                                                  &sync_accumulator) - 8;
-+                        decode_SEI(&gb, (nalP - byteP) * 8);
-+                        set_AU_pending(stream_offset);
-+                    }
-+                    else if (nal_unit_type == SPS)
-+                    {
-                         decode_SPS(&gb);
--                    else if (NAL_type == PPS)
-+                        set_AU_pending(stream_offset);
-+                    }
-+                    else if (nal_unit_type == PPS)
-+                    {
-                         decode_PPS(&gb);
-+                        set_AU_pending(stream_offset);
-+                    }
-                     else
--                        find_AU = decode_Header(&gb);
-+                    {
-+                        decode_Header(&gb);
-+                        if (new_AU())
-+                            set_AU_pending(stream_offset);
-+                    }
- 
-                     byteP += (get_bits_count(&gb) / 8);
-                 }
-             }
--
--            if (find_AU && new_AU())
-+            else if (!AU_pending)
-             {
--                /* After finding a new AU, don't look for another one
--                   until we decode a SLICE */
--                find_AU = false;
--                AU_pending = true;
--                AU_offset = stream_offset;
-+                if (nal_unit_type == AU_DELIMITER ||
-+                    (nal_unit_type > SPS_EXT &&
-+                     nal_unit_type < AUXILIARY_SLICE))
-+                {
-+                    AU_pending = true;
-+                    AU_offset = stream_offset;
-+                }
-+                else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) &&
-+                         nal_ref_idc != prev_nal_ref_idc)
-+                {
-+                    AU_pending = true;
-+                    AU_offset = stream_offset;
-+                }
-             }
--            
--            if (AU_pending && NALisSlice(NAL_type))
-+
-+            if (AU_pending && NALisSlice(nal_unit_type))
-             {
-                 /* Once we know the slice type of a new AU, we can
-                  * determine if it is a keyframe or just a frame */
-@@ -349,10 +363,11 @@ uint32_t H264Parser::addBytes(const uint
-                 on_frame = true;
-                 frame_start_offset = AU_offset;
- 
--                if (isKeySlice(slice_type) && (!wait_for_IDR || seen_IDR))
-+                if (is_keyframe)
-                 {
-                     on_key_frame = true;
-                     keyframe_start_offset = AU_offset;
-+                    is_keyframe = false;
-                 }
-                 else
-                     on_key_frame = false;
-@@ -360,6 +375,8 @@ uint32_t H264Parser::addBytes(const uint
-             else
-                 on_frame = on_key_frame = false;
- 
-+            prev_nal_ref_idc = nal_ref_idc;
-+
-             return byteP - bytes;
-         }
-     }
-@@ -440,8 +457,6 @@ bool H264Parser::decode_Header(GetBitCon
-     */
- 
-     frame_num = get_bits(gb, log2_max_frame_num);
--    if (NAL_type == SLICE_IDR || frame_num == 0)
--        seen_IDR = true;
- 
-     /*
-       field_pic_flag equal to 1 specifies that the slice is a slice of a
-@@ -475,8 +490,14 @@ bool H264Parser::decode_Header(GetBitCon
-       second such IDR access unit. The value of idr_pic_id shall be in
-       the range of 0 to 65535, inclusive.
-      */
-+
-     if (nal_unit_type == SLICE_IDR)
-+    {
-+        is_keyframe = true;
-         idr_pic_id = get_ue_golomb(gb);
-+    }
-+    else
-+        is_keyframe |= (I_is_keyframe && isKeySlice(slice_type));
- 
-     /*
-       pic_order_cnt_lsb specifies the picture order count modulo
-@@ -806,6 +827,44 @@ void H264Parser::decode_PPS(GetBitContex
- #endif
- }
- 
-+void H264Parser::decode_SEI(GetBitContext * gb, int bitlen)
-+{
-+    int   recovery_frame_cnt = -1;
-+    bool  exact_match_flag = false;
-+    bool  broken_link_flag = false;
-+    int   changing_group_slice_idc = -1;
-+
-+    while (get_bits_count(gb) < bitlen)
-+    {
-+        int type = 0, size = 0;
-+
-+        do {
-+            type += show_bits(gb, 8);
-+        } while (get_bits(gb, 8) == 255);
-+
-+        do {
-+            size += show_bits(gb, 8);
-+        } while (get_bits(gb, 8) == 255);
-+
-+        switch (type)
-+        {
-+          case SEI_TYPE_RECOVERY_POINT:
-+            recovery_frame_cnt = get_ue_golomb(gb);
-+            exact_match_flag = get_bits1(gb);
-+            broken_link_flag = get_bits1(gb);
-+            changing_group_slice_idc = get_bits(gb, 2);
-+            is_keyframe |= (recovery_frame_cnt >= 0);
-+            return;
-+
-+          default:
-+            skip_bits(gb, size * 8);
-+            break;
-+        }
-+
-+        align_get_bits(gb);
-+    }
-+}
-+
- void H264Parser::vui_parameters(GetBitContext * gb)
- {
-     /*
-Index: libs/libmythtv/mpeg/H264Parser.h
-===================================================================
---- libs/libmythtv/mpeg/H264Parser.h.orig
-+++ libs/libmythtv/mpeg/H264Parser.h
-@@ -53,6 +53,12 @@ class H264Parser {
-         AUXILIARY_SLICE = 19
-     };
- 
-+    enum SEI_type {
-+        SEI_TYPE_PIC_TIMING             = 1,
-+        SEI_TYPE_USER_DATA_UNREGISTERED = 5,
-+        SEI_TYPE_RECOVERY_POINT         = 6
-+    };
-+
-     /*
-       slice_type values in the range 5..9 specify, in addition to the
-       coding type of the current slice, that all other slices of the
-@@ -90,9 +96,7 @@ class H264Parser {
- 
-     bool stateChanged(void) const { return state_changed; }
- 
--    // seenIDR implies that a SPS has also been seen
--    bool seenIDR(void) const { return seen_IDR; }
--    uint8_t lastNALtype(void) const { return NAL_type; }
-+    uint8_t lastNALtype(void) const { return nal_unit_type; }
- 
-     frame_type FieldType(void) const
-         {
-@@ -130,29 +134,36 @@ class H264Parser {
-                     nal_type == SLICE_IDR);
-         }
- 
--    void waitForIDR(bool wait) { wait_for_IDR = wait; }
-+    void use_I_forKeyframes(bool val) { I_is_keyframe = val; }
- 
-   private:
-     enum constants {EXTENDED_SAR = 255};
- 
--    bool is_first_VCL_NAL_unit(void);
-+    inline void set_AU_pending(const uint64_t & stream_offset)
-+        {
-+            if (!AU_pending)
-+            {
-+                AU_pending = true;
-+                AU_offset = stream_offset;
-+            }
-+        }
-+
-     bool new_AU(void);
-     bool decode_Header(GetBitContext *gb);
-     void decode_SPS(GetBitContext *gb);
-     void decode_PPS(GetBitContext * gb);
-+    void decode_SEI(GetBitContext * gb, int len);
-     void vui_parameters(GetBitContext * gb);
- 
--    bool       find_AU;
-     bool       AU_pending;
-     bool       state_changed;
-     bool       seen_sps;
--    bool       seen_IDR;
-+    bool       is_keyframe;
-+    bool       I_is_keyframe;
- 
-     uint32_t   sync_accumulator;
-     GetBitContext gb;
- 
--    uint8_t    NAL_type;
--
-     int        prev_frame_num, frame_num;
-     uint       slice_type;
-     int        prev_pic_parameter_set_id, pic_parameter_set_id;
-@@ -188,8 +199,6 @@ class H264Parser {
- 
-     uint64_t   AU_offset, frame_start_offset, keyframe_start_offset;
-     bool       on_frame, on_key_frame;
--
--    bool       wait_for_IDR;
- };
- 
- #endif /* H264PARSER_H */
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp.orig
-+++ libs/libmythtv/mpegrecorder.cpp
-@@ -423,6 +423,7 @@ bool MpegRecorder::OpenV4L2DeviceAsInput
-             bzero(_stream_id,  sizeof(_stream_id));
-             bzero(_pid_status, sizeof(_pid_status));
-             memset(_continuity_counter, 0xff, sizeof(_continuity_counter));
-+            m_h264_parser.use_I_forKeyframes(true);
-         }
-         else
-         {
-@@ -1373,8 +1374,6 @@ void MpegRecorder::ResetForNewFile(void)
-     bzero(_stream_id,  sizeof(_stream_id));
-     bzero(_pid_status, sizeof(_pid_status));
-     memset(_continuity_counter, 0xff, sizeof(_continuity_counter));
--
--    m_h264_parser.waitForIDR(true);
- }
- 
- void MpegRecorder::Reset(void)
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index 4aad5af..df4afb8 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
@@ -17,10 +17,7 @@ groups=('pvr')
 install='mythtv.install'
 
 patchs=()
-#patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch' )
-#	'H264Parser-fixes-v1.1.patch' \
-#	'hdpvr-signalmonitor.patch' 'ringbuffer_reset_v2.diff' )
-#patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch')
+#patchs=('smolt_jump.patch')
 source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty')
 arch=('i686' 'x86_64')
 #md5sums=()
diff --git a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch
deleted file mode 100644
index 2465cfe..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-Index: libs/libmythtv/analogsignalmonitor.cpp
-===================================================================
---- libs/libmythtv/analogsignalmonitor.cpp.orig
-+++ libs/libmythtv/analogsignalmonitor.cpp
-@@ -4,23 +4,92 @@
- #include <cerrno>
- #include <unistd.h>
- #include <sys/ioctl.h>
-+#include <poll.h>
- 
- #include "videodev_myth.h"
- #include "mythcontext.h"
- #include "analogsignalmonitor.h"
- #include "v4lchannel.h"
- 
--#define LOC QString("AnalogSM: ").arg(channel->GetDevice())
--#define LOC_ERR QString("AnalogSM, Error: ").arg(channel->GetDevice())
-+#define LOC QString("AnalogSM: %1 ").arg(channel->GetDevice())
-+#define LOC_ERR QString("AnalogSM, Error: %1 ").arg(channel->GetDevice())
- 
--AnalogSignalMonitor::AnalogSignalMonitor(
--    int db_cardnum, V4LChannel *_channel, uint64_t _flags) :
-+AnalogSignalMonitor::AnalogSignalMonitor(int db_cardnum, V4LChannel *_channel,
-+                                         uint64_t _flags) :
-     SignalMonitor(db_cardnum, _channel, _flags),
--    usingv4l2(false)
-+    m_usingv4l2(false),
-+    m_stage(0)
- {
-     int videofd = channel->GetFd();
-     if (videofd >= 0)
--        usingv4l2 = CardUtil::hasV4L2(videofd);
-+    {
-+        m_usingv4l2 = CardUtil::hasV4L2(videofd);
-+        CardUtil::GetV4LInfo(videofd, m_card, m_driver, m_version);
-+        VERBOSE(VB_RECORD, LOC + QString("card '%1' driver '%2' version '%3'")
-+                .arg(m_card).arg(m_driver).arg(m_version));
-+    }
-+}
-+
-+bool AnalogSignalMonitor::handleHDPVR(int videofd)
-+{
-+    struct v4l2_encoder_cmd command;
-+    struct pollfd polls;
-+    int    idx;
-+
-+    if (m_stage == 0)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "hd-pvr start encoding");
-+        // Tell it to start encoding, then wait for it to actually feed us
-+        // some data.
-+        memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-+        command.cmd = V4L2_ENC_CMD_START;
-+        if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            m_stage = 1;
-+        else
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Start encoding failed" + ENO);
-+    }
-+
-+    if (m_stage == 1)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "hd-pvr wait for data");
-+
-+        polls.fd      = videofd;
-+        polls.events  = POLLIN;
-+        polls.revents = 0;
-+
-+        if (poll(&polls, 1, 1500) > 0)
-+            m_stage = 2;
-+        else
-+        {
-+            VERBOSE(VB_RECORD, LOC + "Poll timed-out.  Resetting");
-+            memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-+            command.cmd = V4L2_ENC_CMD_STOP;
-+            ioctl(videofd, VIDIOC_ENCODER_CMD, &command);
-+            m_stage = 0;
-+        }
-+    }
-+
-+    if (m_stage == 2)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "hd-pvr data ready.  Stop encoding");
-+
-+        command.cmd = V4L2_ENC_CMD_STOP;
-+        if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            m_stage = 3;
-+    }
-+
-+    if (m_stage == 3)
-+    {
-+        struct v4l2_format vfmt;
-+        memset(&vfmt, 0, sizeof(vfmt));
-+        vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+            
-+        VERBOSE(VB_RECORD, LOC + "hd-pvr waiting for valid resolution");
-+        if ((ioctl(videofd, VIDIOC_G_FMT, &vfmt) == 0) && vfmt.fmt.pix.width)
-+            m_stage = 4;
-+    }
-+
-+    return (m_stage == 4);
- }
- 
- void AnalogSignalMonitor::UpdateValues(void)
-@@ -33,19 +102,24 @@ void AnalogSignalMonitor::UpdateValues(v
-         return;
- 
-     bool isLocked = false;
--    if (usingv4l2)
-+    if (m_usingv4l2)
-     {
--        struct v4l2_tuner tuner;
--        bzero(&tuner, sizeof(tuner));
--
--        if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0)
--        {
--            VERBOSE(VB_IMPORTANT,
--                    LOC_ERR + "Failed to probe signal (v4l2)" + ENO);
--        }
-+        if (m_driver == "hdpvr")
-+            isLocked = handleHDPVR(videofd);
-         else
-         {
--            isLocked = tuner.signal;
-+            struct v4l2_tuner tuner;
-+            bzero(&tuner, sizeof(tuner));
-+
-+            if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0)
-+            {
-+                VERBOSE(VB_IMPORTANT,
-+                        LOC_ERR + "Failed to probe signal (v4l2)" + ENO);
-+            }
-+            else
-+            {
-+                isLocked = tuner.signal;
-+            }
-         }
-     }
-     else 
-Index: libs/libmythtv/analogsignalmonitor.h
-===================================================================
---- libs/libmythtv/analogsignalmonitor.h.orig
-+++ libs/libmythtv/analogsignalmonitor.h
-@@ -19,7 +19,13 @@ class AnalogSignalMonitor : public Signa
-     virtual void UpdateValues(void);
- 
-   private:
--    bool usingv4l2;
-+    bool handleHDPVR(int videofd);
-+
-+    bool     m_usingv4l2;
-+    QString  m_card;
-+    QString  m_driver;
-+    uint32_t m_version;
-+    int      m_stage;
- };
- 
- #endif // _ANALOG_SIGNAL_MONITOR_H_
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp.orig
-+++ libs/libmythtv/mpegrecorder.cpp
-@@ -1041,14 +1041,6 @@ void MpegRecorder::StartRecording(void)
- 
-     if (driver == "hdpvr")
-     {
--        if (curRecording->recgroup == "LiveTV")
--        {
--            // Don't bother checking resolution, always use best bitrate
--            int maxbitrate = std::max(high_mpeg4peakbitrate,
--                                      high_mpeg4avgbitrate);
--            SetBitrate(high_mpeg4avgbitrate, maxbitrate, "LiveTV");
--        }
--
-         int progNum = 1;
-         MPEGStreamData *sd = new MPEGStreamData(progNum, true);
-         sd->SetRecordingType(_recording_type);
-@@ -1492,7 +1484,7 @@ bool MpegRecorder::StartEncoding(int fd)
-     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-     command.cmd = V4L2_ENC_CMD_START;
- 
--    if (driver == "hdpvr" && curRecording->recgroup != "LiveTV")
-+    if (driver == "hdpvr")
-         HandleResolutionChanges();
- 
-     VERBOSE(VB_RECORD, LOC + "StartEncoding");
-@@ -1615,64 +1607,6 @@ void MpegRecorder::HandleSingleProgramPM
-         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
- }
- 
--/// After a resolution change, it can take the HD-PVR a few
--/// seconds before it is usable again.
--bool MpegRecorder::WaitFor_HDPVR(void)
--{
--    struct v4l2_encoder_cmd command;
--    struct v4l2_format vfmt;
--    struct pollfd polls;
--    int    idx;
--
--    // Tell it to start encoding, then wait for it to actually feed us
--    // some data.
--    QMutexLocker locker(&start_stop_encoding_lock);
--
--    // Sleep any less than 1.5 seconds, and the HD-PVR will
--    // return the old resolution, when the resolution is changing.
--    usleep(1500 * 1000);
--
--    memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
--    command.cmd = V4L2_ENC_CMD_START;
--
--    for (idx = 0; idx < 20; ++idx)
--    {
--        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
--            break;
--        usleep(100 * 1000);
--    }
--
--    if (idx == 20)
--        return false;
--
--    polls.fd      = readfd;
--    polls.events  = POLLIN;
--    polls.revents = 0;
--
--    if (poll(&polls, 1, 5000) <= 0)
--        return false;
--
--    // HD-PVR should now be "ready"
--    command.cmd = V4L2_ENC_CMD_STOP;
--
--    if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) < 0)
--        return false;
--
--    memset(&vfmt, 0, sizeof(vfmt));
--    vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
--
--    for (idx = 0; idx < 20; ++idx)
--    {
--        if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
--            return true;
--        // Typically takes 0.9 seconds after a resolution change
--        usleep(100 * 1000);
--    }
--
--    VERBOSE(VB_RECORD, LOC + "WaitForHDPVR failed");
--    return false;
--}
--
- void MpegRecorder::SetBitrate(int bitrate, int maxbitrate,
-                               const QString & reason)
- {
-@@ -1710,9 +1644,6 @@ void MpegRecorder::HandleResolutionChang
-     memset(&vfmt, 0, sizeof(vfmt));
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-             
--    if (driver == "hdpvr")
--        WaitFor_HDPVR();
--
-     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
-     {
-         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h.orig
-+++ libs/libmythtv/mpegrecorder.h
-@@ -86,7 +86,6 @@ class MpegRecorder : public DTVRecorder,
- 
-     void ResetForNewFile(void);
- 
--    bool WaitFor_HDPVR(void);
-     void SetBitrate(int bitrate, int maxbitrate, const QString & reason);
-     void HandleResolutionChanges(void);
- 
-Index: libs/libmythtv/signalmonitor.h
-===================================================================
---- libs/libmythtv/signalmonitor.h.orig
-+++ libs/libmythtv/signalmonitor.h
-@@ -287,6 +287,7 @@ inline bool SignalMonitor::IsRequired(co
-     return (CardUtil::IsDVBCardType(cardtype) ||
-             (cardtype.toUpper() == "HDTV")      ||
-             (cardtype.toUpper() == "HDHOMERUN") ||
-+            (cardtype.toUpper() == "HDPVR") ||
-             (cardtype.toUpper() == "FIREWIRE")  ||
-             (cardtype.toUpper() == "FREEBOX"));
- }
-@@ -295,6 +296,7 @@ inline bool SignalMonitor::IsSupported(c
- {
-     return (IsRequired(cardtype)        ||
-             (cardtype.toUpper() == "V4L") ||
-+            (cardtype.toUpper() == "HDPVR") ||
-             (cardtype.toUpper() == "MPEG"));
- }
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch
deleted file mode 100644
index fbb85c3..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-Index: libs/libmythui/myththemedmenu.cpp
-===================================================================
---- libs/libmythui/myththemedmenu.cpp	(revision 20249)
-+++ libs/libmythui/myththemedmenu.cpp	(working copy)
-@@ -88,6 +88,8 @@
-       m_state(state), m_allocedstate(false), m_foundtheme(false),
-       m_exitModifier(-1), m_ignorekeys(false), m_wantpop(false)
- {
-+    m_menuPopup = NULL;
-+
-     if (!m_state)
-     {
-         m_state = new MythThemedMenuState(parent, "themedmenustate");
-@@ -269,6 +271,10 @@
-                 }
-             }
-         }
-+        else if (action == "MENU")
-+        {
-+            doMenu();
-+        }
-         else
-             handled = false;
-     }
-@@ -290,6 +296,158 @@
-     updateLCD();
- }
- 
-+void MythThemedMenu::doMenu()
-+{
-+    if( m_menuPopup != NULL )
-+        return;
-+
-+    int allowsd =  GetMythDB()->GetNumSetting("AllowQuitShutdown");
-+    int override_menu = GetMythDB()->GetNumSetting("OverRideExitMenu");
-+    QString label = "System Menu";
-+    MythScreenStack* mainStack = GetMythMainWindow()->GetMainStack();
-+    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup");
-+
-+    if (m_menuPopup->Create())
-+        mainStack->AddScreen(m_menuPopup);
-+
-+    if (override_menu == 0)
-+    {
-+        if ( (allowsd != 0) && (allowsd != 4)  )
-+        {
-+            m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-+            m_menuPopup->AddButton("Shutdown");
-+            m_menuPopup->AddButton("Reboot");
-+        }
-+        else
-+        {
-+            m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+        }
-+    }
-+    if (override_menu == 5)
-+    { // reboot
-+        m_menuPopup->SetReturnEvent(this,"popmenu_reboot");
-+        m_menuPopup->AddButton("Reboot");
-+    }
-+    else if (override_menu == 2 || override_menu == 4)
-+    { // shutdown
-+            m_menuPopup->SetReturnEvent(this,"popmenu_shutdown");
-+            m_menuPopup->AddButton("Shutdown");
-+    }
-+    else if (override_menu == 3 || override_menu == 6)
-+    { //    both
-+        m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-+        m_menuPopup->AddButton("Shutdown");
-+        m_menuPopup->AddButton("Reboot");
-+    }
-+    else
-+    {
-+        m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+    }
-+
-+    m_menuPopup->AddButton("About");
-+    m_menuPopup->AddButton("Cancel");
-+
-+}
-+
-+void MythThemedMenu::aboutScreen()
-+{
-+
-+    extern const char* myth_source_version;
-+    extern const char* myth_source_path;
-+    QString distro_line;
-+    distro_line = "";
-+
-+    QFile file("/etc/os_myth_release");
-+    if (file.open(QFile::ReadOnly))
-+    {
-+        QTextStream t( &file );        // use a text stream
-+        distro_line = t.readLine();
-+        file.close();
-+    }
-+
-+    QString label = "";
-+    label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line );
-+
-+    MythScreenStack* mainStack = GetMythMainWindow()->GetMainStack();
-+    m_menuPopup = new MythDialogBox(label, mainStack, "About");
-+    if (m_menuPopup->Create())
-+        mainStack->AddScreen(m_menuPopup);
-+
-+    m_menuPopup->SetReturnEvent(this, "About");
-+    m_menuPopup->AddButton("OK!");
-+
-+}
-+
-+void MythThemedMenu::customEvent(QEvent *event)
-+{
-+    if (event->type() == kMythDialogBoxCompletionEventType)
-+    {
-+        DialogCompletionEvent *dce =
-+                dynamic_cast<DialogCompletionEvent*>(event);
-+
-+        QString resultid = dce->GetId();
-+        int buttonnum = dce->GetResult();
-+        QString halt_cmd = GetMythDB()->GetSetting("HaltCommand");
-+        QString reboot_cmd = GetMythDB()->GetSetting("RebootCommand");
-+
-+        if (resultid == "popmenu_exit")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!halt_cmd.isEmpty())
-+                    system(halt_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                if (!reboot_cmd.isEmpty())
-+                    system(reboot_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 2)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        if (resultid == "popmenu_noexit")
-+        {
-+            if (buttonnum == 0)
-+                aboutScreen();
-+        }
-+
-+        if (resultid == "popmenu_reboot")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!reboot_cmd.isEmpty())
-+                    system(reboot_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        if (resultid == "popmenu_shutdown")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!halt_cmd.isEmpty())
-+                    system(halt_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        m_menuPopup = NULL;
-+    }
-+}
-+
- /** \brief Parses the element's tags and set the ThemeButton's type,
-  *         text, depends, and action, then adds the button.
-  *
diff --git a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch b/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch
deleted file mode 100644
index 688e99c..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: libs/libmythui/myththemedmenu.h
-===================================================================
---- libs/libmythui/myththemedmenu.h	(revision 20249)
-+++ libs/libmythui/myththemedmenu.h	(working copy)
-@@ -2,6 +2,7 @@
- #define MYTHTHEMEDMENU_H_
- 
- #include "mythscreentype.h"
-+#include "mythdialogbox.h"
- #include "mythuistatetype.h"
- #include "mythuibuttonlist.h"
- #include "xmlparsebase.h"
-@@ -79,6 +80,11 @@
-     void ReloadExitKey(void);
-     virtual void aboutToShow(void);
- 
-+    void doMenu();
-+    void aboutScreen();
-+    MythDialogBox* m_menuPopup;
-+    void customEvent(QEvent *event);
-+
-   protected:
-     virtual bool keyPressEvent(QKeyEvent *e);
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff b/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff
deleted file mode 100644
index 7876a2e..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff
+++ /dev/null
@@ -1,91 +0,0 @@
-Index: libs/libmythtv/recorderbase.cpp
-===================================================================
---- libs/libmythtv/recorderbase.cpp	(revision 20635)
-+++ libs/libmythtv/recorderbase.cpp	(working copy)
-@@ -241,6 +241,8 @@
-         rb_changed = true;
- 
-         StartNewFile();
-+
-+        ResetStreamParser();
-     }
-     nextRingBufferLock.unlock();
- 
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h	(revision 20635)
-+++ libs/libmythtv/mpegrecorder.h	(working copy)
-@@ -63,6 +63,9 @@
-     // ReaderPausedCB
-     virtual void ReaderPaused(int fd) { pauseWait.wakeAll(); }
- 
-+    // Reset stream parsers when necessary
-+    virtual void ResetStreamParser(void);
-+
-   private:
-     void SetIntOption(RecordingProfile *profile, const QString &name);
-     void SetStrOption(RecordingProfile *profile, const QString &name);
-Index: libs/libmythtv/recorderbase.h
-===================================================================
---- libs/libmythtv/recorderbase.h	(revision 20635)
-+++ libs/libmythtv/recorderbase.h	(working copy)
-@@ -212,6 +212,11 @@
-      */
-     virtual void CheckForRingBufferSwitch(void);
- 
-+    /** \brief Inherited method for the stream parser to be reset after
-+               a ringbuffer change. Used mainly in mpegrecorder for H264Parser.
-+     */
-+    virtual void ResetStreamParser(void) { };
-+
-     /** \brief Save the seektable to the DB
-      */
-     void SavePositionMap(bool force = false);
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp	(revision 20635)
-+++ libs/libmythtv/mpegrecorder.cpp	(working copy)
-@@ -1430,12 +1430,7 @@
-     {
-         VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
- 
--        if (driver == "hdpvr")
--        {
--            m_h264_parser.Reset();
--            _wait_for_keyframe_option = true;
--            _seen_sps = false;
--        }
-+        ResetStreamParser();
- 
-         // Some drivers require streaming to be disabled before
-         // an input switch and other channel format setting.
-@@ -1500,12 +1495,7 @@
- 
-     if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-     {
--        if (driver == "hdpvr")
--        {
--            m_h264_parser.Reset();
--            _wait_for_keyframe_option = true;
--            _seen_sps = false;
--        }
-+        ResetStreamParser();
- 
-         VERBOSE(VB_RECORD, LOC + "Encoding started");
-         return true;
-@@ -1762,3 +1752,15 @@
-         SetBitrate(bitrate, maxbitrate, "New");
-     }
- }
-+
-+void MpegRecorder::ResetStreamParser(void)               
-+{        
-+    if (driver == "hdpvr")      
-+    {
-+        m_h264_parser.Reset();
-+        _wait_for_keyframe_option = true;
-+        _seen_sps = false;
-+    }
-+
-+    RecorderBase::ResetStreamParser();
-+}
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index f229240..bd8ed74 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index c1de969..d98973e 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index 2e3269d..48236c8 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index eee2306..abd7902 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=21228
+pkgver=21333
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12

