From 545c23dc3b92d2c84bd90c2497c29ee6464fdcb7 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 17 Jan 2012 10:52:49 -0600
Subject: udisks * libatasmart: included because they are needed by
 add_storage.py refs # 796

---
 abs/core/libatasmart/PKGBUILD | 28 ++++++++++++++++++++++++++++
 abs/core/udisks/PKGBUILD      | 30 ++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 abs/core/libatasmart/PKGBUILD
 create mode 100644 abs/core/udisks/PKGBUILD

diff --git a/abs/core/libatasmart/PKGBUILD b/abs/core/libatasmart/PKGBUILD
new file mode 100644
index 0000000..470b933
--- /dev/null
+++ b/abs/core/libatasmart/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 141499 2011-10-31 03:19:13Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libatasmart
+pkgver=0.18
+pkgrel=1
+pkgdesc="ATA S.M.A.R.T. Reading and Parsing Library"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('udev>=171')
+url="http://0pointer.de/blog/projects/being-smart.html"
+options=('!libtool')
+source=("http://0pointer.de/public/${pkgname}-${pkgver}.tar.gz")
+md5sums=('dc22b7acda1c2230f55ae98737e8b159')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --localstatedir=/var \
+    --disable-static
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/abs/core/udisks/PKGBUILD b/abs/core/udisks/PKGBUILD
new file mode 100644
index 0000000..68017ee
--- /dev/null
+++ b/abs/core/udisks/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 136339 2011-08-26 17:03:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=udisks
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Disk Management Service"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/udisks"
+license=('GPL')
+depends=('udev' 'sg3_utils' 'glib2' 'dbus-glib' 'polkit' 'parted' 'device-mapper' 'libatasmart' 'lsof' 'eject')
+makedepends=('intltool' 'docbook-xsl')
+options=(!libtool)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('854b89368733b9c3a577101b761ad5397ae75a05110c8698ac5b29de9a8bf8f5')
+
+build() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+      --libexecdir=/usr/lib/udisks --disable-static
+  #fix location for bash_completion helper
+  sed -i -e 's|profile.d|bash_completion.d|' tools/Makefile
+
+  make
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+}
-- 
cgit v0.12


From 35ecc7e685dcd9c484c3ac1c398631f56e9d30f7 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 17 Jan 2012 10:56:29 -0600
Subject: linhes-system: include add_storage.py. This program is used to detect
 and autoadd storage to mythtv storage groups. Currently it's not hooked up to
 anything, but hopefully in the near future it will be an automated process.

add_storage will only prompt for new disks, it will skip the following:
- optical disks
- disks that are in fstab
- disks that are mounted (but may not be in fstab)
- disks smaller then 5mb

refs #796
---
 abs/core/LinHES-system/PKGBUILD       |   8 +-
 abs/core/LinHES-system/add_storage.py | 426 ++++++++++++++++++++++++++++++++++
 2 files changed, 431 insertions(+), 3 deletions(-)
 create mode 100644 abs/core/LinHES-system/add_storage.py

diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index ef5b2e8..0640a39 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,12 +1,12 @@
 pkgname=LinHES-system
 pkgver=2
-pkgrel=22
+pkgrel=24
 arch=('i686')
 MVDIR=$startdir/pkg/usr/LH
 BINDIR=$startdir/pkg/usr/bin
 install=LinHES.install
 pkgdesc="scripts and things related to having an  automated system"
-depends=(linhes-sounds xdotool fluxbox tilda keylaunch python_aosd 'linhes-scripts>=7-24' 'runit-scripts>=2.1.1-43')
+depends=(linhes-sounds xdotool fluxbox tilda keylaunch python_aosd 'linhes-scripts>=7-24' 'runit-scripts>=2.1.1-43','udisks')
 backup=(etc/modprobe.d/alsa-base)
 binfiles="LinHES-start optimize_mythdb.py
  myth_mtc.py myth_mtc.sh LinHES-run
@@ -18,7 +18,8 @@ binfiles="LinHES-start optimize_mythdb.py
  lh_system_backup_job
  lh_system_restore_job
  lh_system_host_update
- lh_system_all_host_update"
+ lh_system_all_host_update
+ add_storage.py"
 
 source=(LinHES-session LinHES-profile.sh $binfiles alsa-base myth_mtc.lr)
 
@@ -69,5 +70,6 @@ md5sums=('71a1fc9b01476b0b2c30596107eeff75'
          '9c2294ccfd5359583497a6b03d918a27'
          '859a80ddb4c234506379c605114c1343'
          '47e093e8cfe4b5b96602358e1f540832'
+         'a69c93ee6c927d5c08172cc9515d8f32'
          'eb879fee9603a05d5420d4ce8ed9e450'
          'f1870a9522c79e6b248fcbf81dec3280')
diff --git a/abs/core/LinHES-system/add_storage.py b/abs/core/LinHES-system/add_storage.py
new file mode 100644
index 0000000..9b20546
--- /dev/null
+++ b/abs/core/LinHES-system/add_storage.py
@@ -0,0 +1,426 @@
+#!/usr/bin/python2
+#Program used to auto_add new storage to mythtv storage groups
+#If it's a new disk it will erase the entire disk and reformat
+#
+#Drives that are mount, in fstab, size < 5000 bytes, optical or have already been seen will not be presented as an option.
+#
+
+
+import dbus
+import pickle
+import commands
+import sys,os
+import random, string
+from MythTV import MythDB, MythBE, Recorded, MythError
+from socket import timeout, gethostname
+
+
+
+pickle_file="/usr/LH/etc/storage.pkl"
+
+
+
+SG_MAP={ 'Default'    :'tv',
+  'LiveTV'     :'live_tv',
+  'Videos'     :'video',
+  'Trailers'   :'video/trailers',
+  'Coverart'   :'video/converart',
+  'Fanart'     :'video/fanart',
+  'Banners'    :'video/banners',
+  'Screenshots':'video/screenshots',
+  'DB Backups' :'db_backups'}
+FS_LIST=[]
+for key in SG_MAP.keys():
+    FS_LIST.append(SG_MAP[key])
+
+
+
+class disk_device:
+    def  __init__(self,device):
+        device_obj = bus.get_object("org.freedesktop.UDisks", device)
+        device_props = dbus.Interface(device_obj, dbus.PROPERTIES_IFACE)
+        self.fs_map = self.get_fsmap()
+        self.is_device = self.get_is_device(device_props)
+        self.vendor = self.get_vendor(device_props)
+        self.model = self.get_model(device_props)
+
+        self.mount_path = self.get_mounts(device_props)
+        self.is_mounted = self.get_is_mounted(device_props)
+
+        self.parition_size = self.get_partition_size(device_props)
+        self.device_size = self.get_device_size(device_props)
+        self.serial_number = self.get_serial_number(device_props)
+        self.read_only = self.get_is_readonly(device_props)
+        self.is_optical = self.get_is_optical_disc(device_props)
+        self.connection = self.get_connections(device_props)
+        self.block_path = self.get_device_file(device_props)
+        self.device_file_path = self.get_device_file_path(device_props)
+        self.block_partition="%s1" %self.block_path
+        self.in_use = self.get_in_use()
+
+
+    def get_is_device(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsDrive")
+
+    def get_vendor(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DriveVendor")
+
+    def get_model(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DriveModel")
+
+    def get_mounts(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DeviceMountPaths")
+
+    def get_is_mounted(self,device_props):
+       return device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsMounted")
+
+    def get_in_use(self):
+        in_use = False
+        for i in self.fs_map:
+            if i.startswith("["):
+                split_line=i.split()
+                device_path = split_line[5]
+                if self.block_path in device_path:
+                    in_use = True
+                    break
+        return in_use
+
+
+    def get_partition_size(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "PartitionSize")
+
+    def get_device_size(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DeviceSize")
+
+
+    def get_serial_number(self,device_props):
+        serial_number = device_props.Get('org.freedesktop.UDisks.Device', "DriveSerial")
+        random_string = os.urandom(5)
+        if serial_number == '':
+            serial_number = "".join( [random.choice(string.letters) for i in xrange(6)] )
+            serial_number = "NSW%s" %serial_number
+        return serial_number
+
+    def get_is_readonly(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsReadOnly")
+
+    def get_is_optical_disc(self,device_props):
+        return device_props.Get('org.freedesktop.UDisks.Device', "DeviceIsOpticalDisc")
+
+    def get_connections(self,device_props):
+       return device_props.Get('org.freedesktop.UDisks.Device', "DriveConnectionInterface")
+
+    def get_device_file(self,device_props):
+       return  device_props.Get('org.freedesktop.UDisks.Device', "DeviceFile")
+
+    def get_device_file_path(self,device_props):
+        path = device_props.Get('org.freedesktop.UDisks.Device', "DeviceFileByPath")
+        try:
+            path = path[0]
+        except:
+            path = "None"
+
+        return path
+
+
+    def partition_disk(self):
+        print "    Creating new partiton table"
+        cmd = "parted -s -a optimal %s mklabel gpt" %self.block_path
+        runcmd(cmd)
+        cmd = "parted -s -a optimal %s mkpart primary \" 1 -1\"" %self.block_path
+        runcmd(cmd)
+        return
+
+    def get_fsmap(self):
+        cmd = "/sbin/fsck -N"
+        fs_map = runcmd(cmd)[1]
+        fs_map = fs_map.split("\n")
+        return fs_map
+
+    def find_fstype(self,moutpoint):
+        fstype="ext3"
+        mp=['/myth', '/data/media']
+        for i in self.fs_map:
+            if i.startswith("["):
+                split_line=i.split()
+                #find mount_p and remove the last char
+                mount_p = split_line[3][:-1]
+                if mount_p in  mp:
+                    fstype = split_line[4].split(".")[1]
+                    break
+        return fstype
+
+
+    def format_disk(self):
+        fstab = self.read_fstab()
+        #lookup format
+        current_media_mount = self.find_options_type(fstab)[1]
+        new_fstype = self.find_fstype(current_media_mount)
+
+        #do format
+        cmd = "mkfs -t %s %s " %(new_fstype,self.block_partition)
+        print "    Formating %s with %s" %(self.block_partition,new_fstype)
+        runcmd(cmd)
+        return
+
+    def find_uuid(self,partition):
+        #logging.info("Finding the UUID for %s...", partition)
+        cmd = "blkid -s UUID %s" %partition
+        tmpuuid = runcmd(cmd)[1]
+        splituuid = tmpuuid.partition("=")
+        uuid = splituuid[2].replace('"', "")
+       # logging.info("The uuid is %s", uuid)
+        if uuid == '':
+            print "Could not find a UUID for device: %s" %partition
+            sys.exit(1)
+
+        return uuid.strip()
+
+    def read_fstab(self):
+        f = open('/etc/fstab', 'r')
+        fstab=f.readlines()
+        f.close()
+        return fstab
+
+    def find_options_type(self,fstab):
+        mp=['/myth', '/data/media']
+        for i in fstab:
+            split_line=i.split()
+            try:
+                if split_line[1] in mp:
+                    options = split_line[3]
+                    break
+                else:
+                    options = "defaults"
+                    mount_point = i
+            except:
+                options = "defaults"
+        return options,i
+
+
+    def add_fstab(self):
+        new_fstab_list=['UUID=', 'mount_point', 'auto', 'defaults', '0', '1']
+        fstab=self.read_fstab()
+
+        #determine mount_path
+        self.new_mount_point="/data/media/%s_%s" %(self.model.replace(' ',''),self.serial_number.replace(' ',''))
+
+        #determine options
+        new_options = self.find_options_type(fstab)[0]
+
+        #find blkid
+        self.block_partition="%s1" %self.block_path
+        uuid=self.find_uuid(self.block_partition)
+
+        #construct new line
+        new_fstab_list[0]="UUID=%s" %uuid
+        new_fstab_list[1]=self.new_mount_point
+        new_fstab_list[3]=new_options
+
+        new_fstab_line='\t'.join(new_fstab_list)
+        new_fstab_line="%s\n" %new_fstab_line
+        fstab.append(new_fstab_line)
+
+        #add line to fstab
+        f = open('/etc/fstab', 'w')
+        #f = open('/tmp/fstab', 'w')
+        for i in fstab:
+            f.write(i)
+            #f.write("\n")
+        f.close()
+        return
+
+    def mount_disk(self):
+        try:
+            os.stat(self.new_mount_point)
+        except:
+            os.makedirs(self.new_mount_point)
+        cmd = "mount %s" %self.new_mount_point
+        runcmd(cmd)
+        return
+
+    def mkdirs(self,FS_LIST):
+        print "    Creating Directory stucture"
+        for y in FS_LIST:
+            new_dir="%s/%s" %(self.new_mount_point,y)
+            try:
+                os.stat(new_dir)
+            except:
+                os.makedirs(new_dir)
+                cmd="chown -R mythtv:mythtv /%s" %self.new_mount_point
+                runcmd(cmd)
+                cmd="chmod -R 775 /%s" %self.new_mount_point
+                runcmd(cmd)
+
+    def add_sg(self,DB,host,SG_MAP):
+        print "    Adding to storage groups"
+        for key in SG_MAP.iterkeys():
+            #print key," : ", SG_MAP[key]
+            #try:
+                gn=key
+                hn=host
+                dn="%s/%s" %(self.new_mount_point,SG_MAP[key])
+                #print dn
+                #print gn
+                #print hn
+                with DB as c:
+                    try:
+                        c.execute("""insert into storagegroup (groupname,hostname,dirname) values (%s,%s,%s)""",(gn,hn,dn))
+                        print "        Adding  location: %s  to storagegroup %s" %(dn,gn)
+                    except:
+                        print "        Error inserting %s into storage groups" %dn
+        return
+
+
+
+def runcmd(cmd):
+    if True :
+        pass
+    else:
+        cmd = "echo "+cmd
+    #print cmd
+    cmdout = commands.getstatusoutput(cmd)
+    #logging.debug("    %s", cmdout)
+    return cmdout
+
+
+
+
+def scan_system():
+
+    ud_manager_obj = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks")
+    ud_manager = dbus.Interface(ud_manager_obj, 'org.freedesktop.UDisks')
+    current_drive_list=[]
+    for dev in ud_manager.EnumerateDevices():
+        drive = disk_device(dev)
+
+        if drive.is_device and drive.device_size > 5000 and not drive.is_optical :
+            current_drive_list.append(drive)
+    return current_drive_list
+
+def read_known_list():
+    #reading pickle file
+    known_drive_list=[]
+    try:
+        pkl_file = open(pickle_file, 'rb')
+        known_drive_list = pickle.load(pkl_file)
+        pkl_file.close()
+    except:
+        pass
+    return known_drive_list
+
+
+def write_known_drive_list(known_drive_list):
+    output = open(pickle_file, 'wb')
+    pickle.dump(known_drive_list, output, -1)
+    output.close()
+
+
+def search_for_match(system_drive,known_drive_list):
+    match_drive=False
+    for y in known_drive_list:
+        if system_drive.serial_number.startswith("NSW"):
+            #print "Match_test: hash"
+            system_drive_hash = "%s_%s_%s" %(system_drive.model,system_drive.parition_size,system_drive.device_file_path)
+            y_drive_hash = "%s_%s_%s" %(y.model,y.parition_size,y.device_file_path)
+            if system_drive_hash == y_drive_hash :
+                match_drive = True
+                print "No serial number was found, matched using hash method: %s" %system_drive.model
+                break
+
+        elif y.serial_number == system_drive.serial_number:
+            #print "Match_test: serial number"
+            match_drive=True
+            break
+
+    return match_drive
+
+
+def prompt_to_add(current_drive):
+    loop = True
+    while loop:
+        str1 = raw_input("     Adding the drive will remove all contents on the drive. \n\nDo you wish enable this drive for MythTV storage(Y/N)?:")
+
+        if str1 in ['Y','N','y','n']:
+            loop = False
+            break
+        print "\n"
+    if str1 == 'Y' or str1 == 'y':
+        rc = True
+    else:
+        rc = False
+    return rc
+
+def remove_pickle():
+    try:
+        print "Resetting list of known drives."
+
+        os.remove(pickle_file)
+    except:
+        pass
+
+
+#--------------------------------------------
+
+def main():
+    global bus
+    bus = dbus.SystemBus()
+
+    system_drive_list = scan_system()
+    known_drive_list=[]
+    known_drive_list = read_known_list()
+    process_list=[]
+
+
+
+    for i in system_drive_list:
+        #print i.mount_path
+        #print i.is_mounted
+        #print i.in_use
+        #print "--"
+
+        if search_for_match(i,known_drive_list) or i.in_use :
+            #print "Drive matched"
+            #print i.model
+            continue
+        else:
+            print "\n"
+            print "-------------------------------------------------------------"
+            print "Found new hard drive: %s location: %s size: %s \n" %(i.model,i.block_path,i.device_size)
+
+            if prompt_to_add(i) :
+                print "\nDisk will be added to the storage pool!"
+                process_list.append(i)
+
+    if len(process_list) > 0:
+        DB = MythDB()
+        host=gethostname()
+    else:
+        print "\nDid not find any new storage to add.\n"
+            #BE = MythBE(db=DB)
+
+            #save new list to disk_device
+           # write_known_drive_list(system_drive_list)
+
+    for i in process_list:
+        i.partition_disk()
+        i.format_disk()
+        i.add_fstab()
+        i.mount_disk()
+        i.mkdirs(FS_LIST)
+        i.add_sg(DB,host,SG_MAP)
+
+
+
+
+if __name__ == "__main__":
+    if not os.geteuid()==0:
+        sys.exit("\nRoot access is required to run this program\n")
+
+    if "--new_init" in sys.argv :
+        remove_pickle()
+    main()
+
+
+
+
-- 
cgit v0.12


From d65974a2ec73e40e6dd1b25564719b336e4e6abb Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 17 Jan 2012 10:57:12 -0600
Subject: merge

---
 abs/core/lirc/PKGBUILD                             |   2 +-
 abs/core/lirc/lirc.install                         |   2 +-
 abs/core/mythtv/stable-0.24/mythplugins/PKGBUILD   |  10 +-
 .../stable-0.24/mythplugins/mythburn.py.patch      |   2 +-
 abs/core/mythtv/stable-0.24/mythtv/PKGBUILD        |   8 +-
 abs/core/perl_modules/perl-json/PKGBUILD           |  28 ++
 abs/core/runit-scripts/PKGBUILD                    |   2 +-
 .../runit-scripts/runitscripts/services/lircd/run  |   4 +-
 abs/core/v4l-dvb/PKGBUILD                          |  35 +-
 abs/core/v4l-dvb/config                            | 506 ---------------------
 10 files changed, 60 insertions(+), 539 deletions(-)
 create mode 100644 abs/core/perl_modules/perl-json/PKGBUILD
 delete mode 100644 abs/core/v4l-dvb/config

diff --git a/abs/core/lirc/PKGBUILD b/abs/core/lirc/PKGBUILD
index 205f231..0ce8b69 100644
--- a/abs/core/lirc/PKGBUILD
+++ b/abs/core/lirc/PKGBUILD
@@ -4,7 +4,7 @@
 pkgbase=lirc
 pkgname=('lirc' 'lirc-utils')
 pkgver=0.9.0
-pkgrel=9
+pkgrel=10
 #epoch=1
 _kernver=2.6.39-LinHES
 arch=('i686' 'x86_64')
diff --git a/abs/core/lirc/lirc.install b/abs/core/lirc/lirc.install
index 1f8fd7c..ba2c957 100644
--- a/abs/core/lirc/lirc.install
+++ b/abs/core/lirc/lirc.install
@@ -16,7 +16,7 @@ post_upgrade() {
          "SELECT data FROM settings WHERE value = 'LircSocket' AND hostname = '${hostname}';"`
     if [ "${SOCKET}" != "/var/run/lirc/lircd" ]; then
       mysql -u mythtv -pmythtv -B --skip-column-names -h "${dbhost}" -D mythconverg -e \
-      "UPDATE settings SET data = '/var/run/lirc/lircd' WHERE hostname = '${hostname}';"
+      "UPDATE settings SET data = '/var/run/lirc/lircd' WHERE value = 'LircSocket' AND hostname = '${hostname}';"
     else
       echo ">>>"
       echo ">>> ATTENTION! ATTENTION! ATTENTION!"
diff --git a/abs/core/mythtv/stable-0.24/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.24/mythplugins/PKGBUILD
index 83168af..e1e23a2 100644
--- a/abs/core/mythtv/stable-0.24/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.24/mythplugins/PKGBUILD
@@ -13,14 +13,14 @@ pkgname=('mytharchive'
          'mythweather'
          'mythzoneminder')
 pkgver=0.24
-pkgrel=18
+pkgrel=19
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 conflicts=('mythmovies')
-makedepends=("mythtv>=${pkgver}" 'mplayer' 'fftw' 'dvdauthor' 'libexif'
+makedepends=("mythtv>=${pkgver}" 'mplayer' 'fftw2' 'dvdauthor' 'libexif'
              'python-imaging' 'libcdaudio' 'taglib' 'perl-xml-simple' 'dcraw'
-             'libvisual' 'perl-xml-xpath' 'perl-image-size'
+             'libvisual' 'perl-xml-xpath' 'perl-image-size' 'perl-json'
              'perl-class-inspector' 'perl-datetime-format-iso8601'
              'flac' 'libvorbis' 'python2' 'python-pycurl' 'python-oauth')
 source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2
@@ -111,7 +111,7 @@ package_mythweather() {
   pkgdesc="Weather checking plugin for MythTV"
   depends=("mythtv>=${pkgver}" 'perl-xml-xpath' 'perl-image-size'
            'perl-class-inspector' 'perl-datetime-format-iso8601'
-           'perl-date-manip')
+           'perl-date-manip' 'perl-json')
 #  replaces=('mythweather')
   cd "${srcdir}/${_gitname}/${pkgbase}/mythweather"
   make INSTALL_ROOT="${pkgdir}" install || return 1
@@ -126,4 +126,4 @@ package_mythzoneminder() {
   make INSTALL_ROOT="${pkgdir}" install || return 1
 }
 md5sums=('91488a6b1b05d14c5c5c601908b699e5'
-         'adce485c4765e8d49b91b3ce9c9963ac')
+         'cc7e6887acda167fcc5336af33f29411')
diff --git a/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch b/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
index 770119a..abac7df 100644
--- a/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
+++ b/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
@@ -161,7 +161,7 @@
 +                else:
 +                    videoheight = 576
 +        
-+                croppixels = videoheight - int(videores.split("x")[1])
++                croppixels = videoheight - (720 / float(videoAR))
 +                write("CropPixels Total: %s" % croppixels)
 +                value = "720x%d -vf pad=720:%d:0:%d:black" % (videoheight - croppixels, videoheight, croppixels / 2)
  
diff --git a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
index 3bbadc9..933936c 100755
--- a/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.24/mythtv/PKGBUILD
@@ -6,7 +6,7 @@
 
 pkgname=mythtv
 pkgver=0.24
-pkgrel=27
+pkgrel=28
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org/"
@@ -29,7 +29,7 @@ optdepends=('xmltv: to download tv listings')
 #conflicts=('mythtv-contrib')
 source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2
 	'mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty'
-	'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_ver007.patch')
+	'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_ver008.patch')
 _gitroot="https://github.com/MythTV/mythtv.git"
 _gitname="${pkgname}"
 build() {
@@ -48,7 +48,7 @@ build() {
                 patch -Np0  -i ${startdir}/src/$i  || return 1
         done
 	echo Applying patch for Ceton InfinTV4
-	patch -p2 < ${startdir}/src//ceton_ver007.patch
+	patch -p2 < ${startdir}/src//ceton_ver008.patch
         echo "--------------------------done applying patches-----------------------------------------------"
 
         sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
@@ -106,4 +106,4 @@ md5sums=('91488a6b1b05d14c5c5c601908b699e5'
          'f735805a80b0d1180dee01f9df1b7004'
          'f407d6af23e74a49540755420f84fa58'
          '5469d9921b726db750b991c87d226158'
-         'f4abf567356a1f99a0177ac914829bb8')
+         '8837b2305030a2326b22f4330968e29a')
diff --git a/abs/core/perl_modules/perl-json/PKGBUILD b/abs/core/perl_modules/perl-json/PKGBUILD
new file mode 100644
index 0000000..88aade8
--- /dev/null
+++ b/abs/core/perl_modules/perl-json/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-json
+pkgver=2.53
+pkgrel=1
+pkgdesc="JSON (JavaScript Object Notation) encoder/decoder"
+arch=('any')
+url="http://search.cpan.org/dist/JSON"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/M/MA/MAKAMAKA/JSON-$pkgver.tar.gz)
+md5sums=('7db1be00d44414c4962eeac222395a76')
+
+build() {
+  cd  $srcdir/JSON-$pkgver
+  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+  make
+}
+
+package() {
+  cd  $srcdir/JSON-$pkgver
+  make install DESTDIR=$pkgdir
+  find $pkgdir -name '.packlist' -delete
+  find $pkgdir -name '*.pod' -delete
+}
diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index 2e0f57c..6ef0e51 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=2.1.1
-pkgrel=43
+pkgrel=44
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/run b/abs/core/runit-scripts/runitscripts/services/lircd/run
index 480a884..3993795 100755
--- a/abs/core/runit-scripts/runitscripts/services/lircd/run
+++ b/abs/core/runit-scripts/runitscripts/services/lircd/run
@@ -43,7 +43,7 @@ else
     [ -e /var/run/lirc ] || mkdir -p /var/run/lirc
 
     function dvico_detect {
-        if [ x$Remotetype = "xdvico" ] || [ x$Remotetype = "xDvico-Dual-Digital4-rev2" ]
+        if [[ x$Remotetype = xdvico* ]] || [ x$Remotetype = "xDvico-Dual-Digital4-rev2" ]
         then
             RunDvico=true
         else
@@ -127,7 +127,7 @@ else
 
         if [ $RunDvico = "true" ]
         then
-            if [ x$Remotetype = "xdvico" ]
+            if [[ x$Remotetype = xdvico* ]]
             then
                 LCMD="/usr/sbin/lircd -r -n -d /dev/usb/dvicoIR --driver=dvico  --output /var/run/lirc/lircd"
             else
diff --git a/abs/core/v4l-dvb/PKGBUILD b/abs/core/v4l-dvb/PKGBUILD
index 58e9013..b853b24 100644
--- a/abs/core/v4l-dvb/PKGBUILD
+++ b/abs/core/v4l-dvb/PKGBUILD
@@ -1,26 +1,27 @@
-# Maintainer: Nicky726 (Nicky726 <at> gmail <dot> com)
+# Maintainer: Cecil Watson<knoppmyth@gmail.com>
 
 pkgname=v4l-dvb
-pkgver=20111110
+_kernver=`uname -r`
+pkgver=20120113
 pkgrel=1
-pkgdesc="V4L-DVB device drivers git version"
+pkgdesc="V4L-DVB device drivers (newer than those included in kernel)"
 arch=('i686' 'x86_64')
 url="http://linuxtv.org/"
-license=('GPL')
+license=('GPL2')
 depends=('kernel26')
-makedepends=('git' 'linux-api-headers' 'perl-proc-processtable' 'patchutils')
+makedepends=('git' 'kernel26-headers' 'perl-proc-processtable' 'patchutils')
 options=(!makeflags)
 install=v4l-dvb.install
 _gitroot="git://linuxtv.org/media_build.git"
 _gitname="media_build"
-source=(config)
+
 
 build() {
   cd "${srcdir}"
   msg "Connecting to GIT server...."
 
   if [ -d "${srcdir}/${_gitname}" ] ; then
-    cd ${_gitname} && git pull --rebase
+    cd ${_gitname} && git checkout -- . && git pull --rebase
   else
     git clone ${_gitroot}
   fi
@@ -31,20 +32,18 @@ build() {
   cd "${srcdir}/${_gitname}/linux"
   make download untar
   cd ..
-  # Build with 3.0-ARCH kernel
-  _kernver=`uname -r`
-  sed -i -e "s/KERNELRELEASE\ :=/KERNELRELEASE\ :=\ ${_kernver}/" \
-    -e "s/\$(KERNELRELEASE)/${_kernver}/" \
-    "${srcdir}/${_gitname}"/v4l/Makefile{,.sound}
-  # Use alternate config, because cx23885 module won't build
-#  cp "${srcdir}/config" "${srcdir}/${_gitname}/v4l/.config"
+
+#  Build with 3.0-ARCH kernel
+#  sed -i -e "s/KERNELRELEASE\ :=/KERNELRELEASE\ :=\ ${_kernver}/" \
+#    -e "s/\$(KERNELRELEASE)/${_kernver}/" \
+#    "${srcdir}/${_gitname}"/v4l/Makefile{,.sound}
+
   make
 }
 
 package() {
-  install -dm755 "${srcdir}/lib/modules/$(uname -r)/updates"
   cd "${srcdir}/${_gitname}"
-  make DESTDIR="${pkgdir}/lib/modules/$(uname -r)/updates" install
+  make DESTDIR="${pkgdir}" install
+  rm -fr ${pkgdir}/lib/modules/$_kernver/modules*
 }
-
-md5sums=('927cc1fcddc2a71a7fde97322237c7a8')
+md5sums=()
diff --git a/abs/core/v4l-dvb/config b/abs/core/v4l-dvb/config
deleted file mode 100644
index 0fe71ec..0000000
--- a/abs/core/v4l-dvb/config
+++ /dev/null
@@ -1,506 +0,0 @@
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_MMP_CAMERA is not set
-# CONFIG_VIDEO_TM6000_ALSA is not set
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_IR_MCEUSB=m
-# CONFIG_LIRC_ZILOG is not set
-CONFIG_USB_DSBR=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_DVB_USB=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_IR_NUVOTON=m
-CONFIG_DVB_DUMMY_FE=m
-CONFIG_USB_GSPCA_OV534=m
-# CONFIG_VIDEO_OMAP1 is not set
-CONFIG_USB_STKWEBCAM=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_CX22700=m
-CONFIG_SOC_CAMERA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_MEDIA_TUNER=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_VIDEO_VPX3220=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_USB_GSPCA_OV534_9=m
-# CONFIG_LIRC_TTUSBIR is not set
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_STV06XX=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_VIDEO_SAA7110=m
-# CONFIG_VIDEO_SH_VOU is not set
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_BT8XX=m
-CONFIG_VIDEO_SAA7127=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_VIDEO_UPD64083=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_IR_REDRAT3=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_DVB_CX22702=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_RADIO_AZTECH is not set
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_VIDEO_MEM2MEM_TESTDEV=m
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_VIVI=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_I2C_SI4713=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_DVB_TDA10071=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_VIDEO_MT9T001=m
-# CONFIG_LIRC_SIR is not set
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_VIDEO_MT9P031=m
-# CONFIG_RADIO_SF16FMI is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-CONFIG_DVB_ISL6405=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_DEBUG=y
-CONFIG_VIDEO_TIMBERDALE=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_VIDEO_M5MOLS=m
-CONFIG_VIDEO_BT856=m
-# CONFIG_RADIO_CADET is not set
-CONFIG_USB_M5602=m
-CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
-CONFIG_RC_LOOPBACK=m
-# CONFIG_STAGING_BROKEN is not set
-CONFIG_DVB_MANTIS=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_VP27SMPX=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_VIDEO_SAMSUNG_S5P_HDMIPHY is not set
-CONFIG_VIDEO_TVP5150=m
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_DVB_OR51211=m
-# CONFIG_VIDEO_VIU is not set
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_SMS_SIANO_MDTV=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_VIDEO_OV7670=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_W9966=m
-CONFIG_DVB_S5H1411=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_VIDEO_TCM825X=m
-CONFIG_USB_S2255=m
-# CONFIG_VIDEO_ATMEL_ISI is not set
-# CONFIG_RADIO_ZOLTRIX is not set
-CONFIG_DVB_PLL=m
-CONFIG_DVB_LGDT330X=m
-# CONFIG_VIDEO_GO7007_TW2804 is not set
-CONFIG_VIDEO_ADP1653=m
-CONFIG_DVB_STB0899=m
-CONFIG_RC_MAP=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_VIDEO_MT9V011=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-# CONFIG_VIDEO_TM6000 is not set
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_USB_GSPCA_SONIXB=m
-# CONFIG_STAGING is not set
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_DVB_USB_IT913X=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_DVB_USB_CINERGY_T2=m
-# CONFIG_RADIO_TERRATEC is not set
-CONFIG_VIDEO_KS0127=m
-CONFIG_RADIO_WL1273=m
-CONFIG_MX1_VIDEO=y
-CONFIG_VIDEO_TVP7002=m
-CONFIG_DVB_VES1820=m
-CONFIG_VIDEO_PVRUSB2_DVB=y
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_SAA717X=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_DVB_BUDGET=m
-# CONFIG_CAPTURE_DAVINCI_DM646X_EVM is not set
-CONFIG_DVB_VES1X93=m
-CONFIG_VIDEO_MT9V032=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_VIDEO_CS5345=m
-# CONFIG_RADIO_GEMTEK_PROBE is not set
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_DVB_ISL6421=m
-# CONFIG_VIDEO_VPSS_SYSTEM is not set
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_TTUSB_DEC=m
-# CONFIG_SND_FM801_TEA575X is not set
-CONFIG_SMS_USB_DRV=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_DIB9000=m
-CONFIG_IR_FINTEK=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_DVB_TDA10048=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-# CONFIG_LIRC_IMON is not set
-# CONFIG_VIDEO_VPBE_DISPLAY is not set
-CONFIG_VIDEO_TDA7432=m
-CONFIG_DVB_EC100=m
-CONFIG_VIDEO_CX18=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEO_ADV7180=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_VIDEO_MXB=m
-# CONFIG_LIRC_SERIAL_TRANSMITTER is not set
-CONFIG_DVB_STV6110=m
-CONFIG_VIDEO_ADV7170=m
-# CONFIG_VIDEO_S5P_MIPI_CSIS is not set
-CONFIG_DVB_DYNAMIC_MINORS=y
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_VIDEO_TDA9840=m
-# CONFIG_VIDEO_PXA27x is not set
-CONFIG_DVB_TDA10023=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_USB_GSPCA_SQ905C=m
-# CONFIG_VIDEO_SAMSUNG_S5P_TV is not set
-CONFIG_DVB_S5H1409=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_IR_I2C=m
-# CONFIG_ALTERA_STAPL is not set
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_B2C2_FLEXCOP_DEBUG=y
-CONFIG_DVB_A8293=m
-# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
-CONFIG_MX3_VIDEO=y
-# CONFIG_VIDEO_SAMSUNG_S5P_MIXER is not set
-CONFIG_VIDEO_SAA6588=m
-# CONFIG_VIDEO_MX3 is not set
-CONFIG_DVB_DS3000=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_CAPTURE_DRIVERS=y
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_DVB_MT352=m
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_DVB_USB_DIGITV=m
-# CONFIG_VIDEO_DM355_CCDC is not set
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_USB_SN9C102=m
-CONFIG_SMS_SDIO_DRV=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_DVB_USB_FRIIO=m
-# CONFIG_VIDEO_TM6000_DVB is not set
-CONFIG_VIDEO_AK881X=m
-CONFIG_DVB_DIB3000MB=m
-# CONFIG_RADIO_GEMTEK is not set
-CONFIG_VIDEO_CQCAM=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_DRXK=m
-# CONFIG_RADIO_RTRACK2 is not set
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_RADIO_TEF6862=m
-# CONFIG_VIDEO_PMS is not set
-CONFIG_DVB_FE_CUSTOMISE=y
-# CONFIG_DISPLAY_DAVINCI_DM646X_EVM is not set
-CONFIG_VIDEOBUF_DMA_CONTIG=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_AF9013=m
-CONFIG_VIDEO_ADV_DEBUG=y
-CONFIG_VIDEO_SAA711X=m
-CONFIG_DVB_MT312=m
-CONFIG_VIDEO_CX88_ALSA=m
-# CONFIG_VIDEO_OMAP3_DEBUG is not set
-# CONFIG_VIDEO_OMAP2 is not set
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_SND_BT87X=m
-CONFIG_VIDEO_MEDIA=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_IR_LIRC_CODEC=m
-# CONFIG_LIRC_IGORPLUGUSB is not set
-CONFIG_USB_GL860=m
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VIDEO_BT866=m
-CONFIG_DVB_FIREDTV=m
-CONFIG_USB_GSPCA_T613=m
-# CONFIG_VIDEO_GO7007_USB is not set
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_LIRC=m
-# CONFIG_VIDEO_VPFE_CAPTURE is not set
-CONFIG_USB_SI470X=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_DVB_OR51132=m
-# CONFIG_VIDEO_GO7007_SAA7115 is not set
-CONFIG_VIDEO_CX88_DVB=m
-# CONFIG_VIDEO_CX25821_ALSA is not set
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA505=m
-# CONFIG_VIDEO_GO7007_SAA7113 is not set
-# CONFIG_LIRC_BT829 is not set
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_MEDIA_SUPPORT=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_DVB_AU8522=m
-# CONFIG_RADIO_TYPHOON is not set
-CONFIG_DVB_ISL6423=m
-# CONFIG_VIDEO_SAMSUNG_S5P_MIXER_DEBUG is not set
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_SOC_CAMERA_MT9T031=m
-# CONFIG_LIRC_PARALLEL is not set
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_CX24110=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_DVB_MB86A20S=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_PT1=m
-CONFIG_VIDEO_EM28XX_RC=y
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_DVB_TDA8261=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_TDA8083=m
-CONFIG_VIDEO_CX2341X=m
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-CONFIG_DVB_CORE=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_DVB_HOPPER=m
-CONFIG_USB_GSPCA_SQ905=m
-# CONFIG_VIDEO_OMAP2_VOUT is not set
-CONFIG_MEDIA_TUNER_XC4000=m
-# CONFIG_VIDEO_SAMSUNG_S5P_SDO is not set
-# CONFIG_VIDEO_GO7007_OV7640 is not set
-CONFIG_RADIO_SI4713=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_TUNER_CX24113=m
-# CONFIG_LIRC_SASEM is not set
-CONFIG_IR_ENE=m
-CONFIG_DVB_STB6100=m
-# CONFIG_MEDIA_ALTERA_CI is not set
-CONFIG_DVB_AV7110=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_DVB_STV0299=m
-CONFIG_MEDIA_TUNER_QT1010=m
-# CONFIG_VIDEO_M32R_AR is not set
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_DVB_MB86A16=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_TVP514X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_VIDEO_CAFE_CCIC=m
-# CONFIG_VIDEO_GO7007_SONY_TUNER is not set
-CONFIG_USB_PWC_DEBUG=y
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_TTPCI_EEPROM=m
-CONFIG_VIDEO_THS7303=m
-CONFIG_DVB_NXT200X=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_DVB_S5H1432=m
-# CONFIG_VIDEO_DAVINCI_VPIF is not set
-CONFIG_RADIO_WL128X=m
-CONFIG_DVB_STV0297=m
-# CONFIG_RADIO_SF16FMR2 is not set
-CONFIG_USB_ZR364XX=m
-# CONFIG_VIDEO_GO7007_TW9903 is not set
-# CONFIG_LIRC_STAGING is not set
-CONFIG_VIDEOBUF_VMALLOC=m
-# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_USB_PWC=m
-CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_DVB_DM1105=m
-# CONFIG_RADIO_TEA5764_XTAL is not set
-CONFIG_IR_RC5_DECODER=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_DVB_ATBM8830=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-# CONFIG_VIDEO_MX2 is not set
-CONFIG_VIDEO_ZORAN_LML33R10=m
-# CONFIG_I2C_SI470X is not set
-CONFIG_DVB_TDA10021=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_VIDEO_SAA7191=m
-CONFIG_MEDIA_ATTACH=y
-CONFIG_DVB_USB_GL861=m
-# CONFIG_RADIO_TRUST is not set
-CONFIG_RADIO_TIMBERDALE=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEO_FB_IVTV=m
-# CONFIG_RADIO_MIROPCM20 is not set
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-# CONFIG_VIDEO_SAMSUNG_S5P_HDMI is not set
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_DVB_IT913X_FE=m
-CONFIG_DVB_S921=m
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_ISIF is not set
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_USB_GSPCA_CPIA1=m
-# CONFIG_DVB_CXD2099 is not set
-CONFIG_DVB_CX24123=m
-# CONFIG_VIDEO_SAMSUNG_S5P_HDMI_DEBUG is not set
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
-CONFIG_DVB_TUNER_DIB0090=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_IR_IMON=m
-CONFIG_USB_MR800=m
-# CONFIG_RADIO_RTRACK is not set
-CONFIG_MEDIA_TUNER_MT2131=m
-# CONFIG_VIDEO_DM6446_CCDC is not set
-CONFIG_IR_MCE_KBD_DECODER=m
-# CONFIG_VIDEO_CX25821 is not set
-CONFIG_DVB_STV0288=m
-# CONFIG_VIDEO_MX1 is not set
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_M52790=m
-# CONFIG_VIDEO_DM644X_VPBE is not set
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_DVB_DRXD=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_MX2_HOSTSUPPORT=y
-CONFIG_VIDEO_TLG2300=m
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_SND_BT87X_OVERCLOCK=y
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_TDA826X=m
-# CONFIG_VIDEO_GO7007_UDA1342 is not set
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_RC_CORE=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-# CONFIG_VIDEO_VINO is not set
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_DDBRIDGE=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_ET61X251=m
-CONFIG_VIDEO_HDPVR=m
-CONFIG_IR_JVC_DECODER=m
-# CONFIG_VIDEO_M32R_AR_M64278 is not set
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-# CONFIG_VIDEO_OMAP3 is not set
-CONFIG_VIDEO_AU0828=m
-# CONFIG_LIRC_SERIAL is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_NET=y
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_DVB_MAX_ADAPTERS=8
-
-- 
cgit v0.12