]> www.vanbest.org Git - sasc-ng.git/commitdiff
Enable kernel 3.2.0-4 (from Debian squeeze), add ifdefs in sasc-ng patch debian/620-13
authorJan-Pascal van Best <janpascal@vanbest.org>
Tue, 20 Aug 2013 20:41:00 +0000 (22:41 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Tue, 20 Aug 2013 10:22:27 +0000 (12:22 +0200)
debian/changelog
debian/patches/update-for-linux-3.10-procfs-changes
debian/rules
debian/rules.defs

index 8c8da2f61493d415bcb35a5c0d1ddc0dc7b5adf0..fb5eab5113289c5b30a54e80971f5882943c397f 100644 (file)
@@ -1,8 +1,14 @@
-sasc-ng (620-12) local; urgency=low
+sasc-ng (620-13) unstable; urgency=low
+
+  * Enable kernel 3.2 for Wheezy users
+
+ -- Jan-Pascal van Best <janpascal@vanbest.org>  Tue, 20 Aug 2013 22:18:31 +0200
+
+sasc-ng (620-12) unstable; urgency=low
 
   * Updates for kernel 3.10, lower kernels not supported for now
 
- -- Jan-Pascal van Best <janpascal@vanbest.org>  Mon, 19 Aug 2013 10:07:09 +0200
+ -- Jan-Pascal van Best <janpascal@vanbest.org>  Mon, 19 Aug 2013 21:07:09 +0200
 
 sasc-ng (620-11) local; urgency=low
 
index 98c4c118ed3a4afa1330f3766a2ff04789a929ac..8884d2c932424d6f45d429f5ef2d55d5076cd54f 100644 (file)
@@ -1,5 +1,3 @@
-diff --git a/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c b/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c
-index 5299dbe..a8500dd 100644
 --- a/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c
 +++ b/contrib/sasc-ng/dvbloopback/module/dvb_loopback.c
 @@ -49,6 +49,7 @@
@@ -10,11 +8,9 @@ index 5299dbe..a8500dd 100644
  #include <linux/dvb/ca.h>
  #include <linux/dvb/frontend.h>
  #include <linux/dvb/version.h>
-diff --git a/contrib/sasc-ng/dvbloopback/module/dvblb_proc.c b/contrib/sasc-ng/dvbloopback/module/dvblb_proc.c
-index c78aa33..2c3637f 100644
 --- a/contrib/sasc-ng/dvbloopback/module/dvblb_proc.c
 +++ b/contrib/sasc-ng/dvbloopback/module/dvblb_proc.c
-@@ -23,14 +23,16 @@
+@@ -23,14 +23,17 @@
   */
  #include <linux/version.h>      /* >= 2.6.14 LINUX_VERSION_CODE */
  #include <linux/errno.h>
@@ -27,17 +23,16 @@ index c78aa33..2c3637f 100644
  #include "dvblb_internal.h"
  
  static struct proc_dir_entry *procdir;
--
-+/*
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
  static int dvblb_procfs_read(char *page, char **start, off_t off, int count,
                               int *eof, void *data)
  {
-@@ -41,7 +43,18 @@ static int dvblb_procfs_read(char *page, char **start, off_t off, int count,
+@@ -41,13 +44,36 @@
        val = (lbdev->forward_dev) ? 1 : 0;
        return sprintf(page, "%03d", val);
  }
--
-+*/
++#else
 +static int dvblb_procfs_read(struct seq_file *s, void* v)
 +{
 +      struct dvblb_devinfo *lbdev = s->private;
@@ -48,82 +43,41 @@ index c78aa33..2c3637f 100644
 +      seq_printf(s, "%03d", val);
 +        return 0;
 +}
-+/*
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
  static int dvblb_procfs_write(struct file *file, const char *buffer,
                                unsigned long count, void *data)
  {
-@@ -95,7 +108,64 @@ static int dvblb_procfs_write(struct file *file, const char *buffer,
-       }
-       return count;
- }
--
-+*/
+       char str[10];
+       int val, v1, v2, v3, fm;
+       struct dvblb_devinfo *lbdev = (struct dvblb_devinfo *)data;
++#else
 +static ssize_t dvblb_procfs_write(struct file *file, const char *buffer,
 +                              size_t count, loff_t *pos)
 +{
 +        // TODO: maybe update *pos at end???
 +      char str[10];
 +      int val, v1, v2, v3, fm;
-+      //struct dvblb_devinfo *lbdev = (struct dvblb_devinfo *)data;
 +        struct seq_file *s = file->private_data;
 +        struct dvblb_devinfo* lbdev = s->private;
-+      if (lbdev == NULL)
-+              return count;
-+      if (lbdev->parent->link == -1)
-+              return count;
-+      if (count > 10)
-+              count = 10;
-+      if (copy_from_user(str, buffer, count)) {
-+              return -EFAULT;
-+      }
-+      val = simple_strtoul(str, NULL, 0);
-+      v1 = val /100;
-+      v2 = (val - v1*100) / 10;
-+      v3 = val - v1*100 - v2*10;
-+      if (v1 < 0 || v1 > 2) 
-+              return -EFAULT;
-+      if((fm = inuse_filemap(lbdev))) {
-+              int type = lbdev->lb_dev->type;
-+              printk("dvbloopback: Can't change forward on adapter%d."
-+                     " Device %s still has %d users!\n",
-+                     lbdev->parent->adapter.num, dnames[type], fm);
-+              return count;
-+      }
-+      if (v3 == 1) {
-+              struct list_head *entry;
-+              list_for_each (entry, lbdev->parent->adapter_ll) {
-+                      struct dvb_adapter *adap;
-+                      adap = list_entry (entry, struct dvb_adapter,
-+                                         list_head);
-+                      if (adap->num == lbdev->parent->link) {
-+                              struct list_head *entry0;
-+                              list_for_each (entry0,
-+                                             &adap->device_list) {
-+                                      struct dvb_device *dev;
-+                                      dev = list_entry (entry0,
-+                                             struct dvb_device, list_head);
-+                                      if (dev->type == lbdev->lb_dev->type) {
-+                                              lbdev->forward_dev = dev;
-+                                              return count;
-+                                      }
-+                              }
-+                      }
-+              }
-+      } else if (v3 == 0) {
-+              lbdev->forward_dev = NULL;
-+      }
-+      return count;
-+}
-+/*
++#endif
+       if (lbdev == NULL)
+               return count;
+       if (lbdev->parent->link == -1)
+@@ -96,6 +122,7 @@
+       return count;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
  static int dvblb_procfs_adapter_read(char *page, char **start, off_t off,
                                       int count, int *eof, void *data)
  {
-@@ -104,7 +174,16 @@ static int dvblb_procfs_adapter_read(char *page, char **start, off_t off,
+@@ -104,13 +131,34 @@
                return 0;
        return sprintf(page, "%d", dvblb->link);
  }
--
-+*/
++#else
 +static int dvblb_procfs_adapter_read(struct seq_file *s, void* v)
 +{
 +      struct dvblb *dvblb = s->private;
@@ -132,44 +86,16 @@ index c78aa33..2c3637f 100644
 +      seq_printf(s, "%d", dvblb->link);
 +        return 0;
 +}
-+/*
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
  static int dvblb_procfs_adapter_write(struct file *file, const char *buffer,
                                        unsigned long count, void *data)
  {
-@@ -121,6 +200,54 @@ static int dvblb_procfs_adapter_write(struct file *file, const char *buffer,
-       val = simple_strtol(str, NULL, 0);
-       if(val == -999) {
-+              //This is a debug case.  Try to force close all open fds
-+              //This is known not to be very reliable, but better than
-+              //nothing
-+              
-+              for(i = 0; i < DVBLB_NUM_DEVS; i++) {
-+                      while((fm = inuse_filemap(&dvbdev->devinfo[i]))) {
-+                              filp_close(dvbdev->devinfo[i].dbgfilemap[fm],
-+                                         NULL);
-+                              dvbdev->devinfo[i].filemap[fm] = NULL;
-+                      }
-+              }
-+              return count;
-+      }
-+      for(i = 0; i < DVBLB_NUM_DEVS; i++) {
-+              if(dvbdev->devinfo[i].forward_dev == NULL)
-+                      continue;
-+              if((fm = inuse_filemap(&dvbdev->devinfo[i]))) {
-+                      int type = dvbdev->devinfo[i].lb_dev->type;
-+                      printk("dvbloopback: Can't change forward on adapter%d."
-+                             " Device %s still has %d users!\n",
-+                             dvbdev->adapter.num, dnames[type], fm);
-+                      return count;
-+              }
-+      }
-+      for(i = 0; i < DVBLB_NUM_DEVS; i++)
-+              dvbdev->devinfo[i].forward_dev = NULL;
-+      dvbdev->link = val;
-+      return count;
-+}
-+*/
+       char str[10];
+       int val, i, fm;
+       struct dvblb *dvbdev = (struct dvblb *)data;
++#else
 +static ssize_t dvblb_procfs_adapter_write(struct file *file, const char *buffer,
 +                              size_t count, loff_t *pos)
 +{
@@ -178,37 +104,32 @@ index c78aa33..2c3637f 100644
 +      int val, i, fm;
 +        struct seq_file *s = file->private_data;
 +        struct dvblb* dvbdev = s->private;
-+      if (dvbdev == NULL)
-+              return count;
-+      if (count > 10)
-+              count = 10;
-+      if (copy_from_user(str, buffer, count)) {
-+              return -EFAULT;
-+      }
-+      val = simple_strtol(str, NULL, 0);
-+
-+      if(val == -999) {
-               /*This is a debug case.  Try to force close all open fds
-                 This is known not to be very reliable, but better than
-                 nothing
-@@ -154,31 +281,47 @@ static int dvblb_procfs_adapter_write(struct file *file, const char *buffer,
++#endif
+       if (dvbdev == NULL)
+               return count;
+       if (count > 10)
+@@ -154,31 +202,71 @@
  int dvblb_remove_procfs(struct proc_dir_entry *pdir,
                          struct proc_dir_entry *parent)
  {
--      char name[20];
--      memcpy(name, pdir->name, pdir->namelen);
--      name[pdir->namelen] = '\0';
--      // printk("Removing proc: %s\n", name);
--      remove_proc_entry(name, parent);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+       char name[20];
+       memcpy(name, pdir->name, pdir->namelen);
+       name[pdir->namelen] = '\0';
+       // printk("Removing proc: %s\n", name);
+       remove_proc_entry(name, parent);
++#else
 +      proc_remove(pdir);
++#endif
        return 0;
  }
  EXPORT_SYMBOL(dvblb_remove_procfs);
  
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
 +static int dvblb_procfs_open(struct inode *inode, struct file *filep)
 +{
-+    return single_open(filep, dvblb_procfs_read, PDE_DATA(inode)); 
-+} 
++    return single_open(filep, dvblb_procfs_read, PDE_DATA(inode));
++}
 +
 +static const struct file_operations dvblb_procfs_fops = {
 +    .owner      = THIS_MODULE,
@@ -217,32 +138,39 @@ index c78aa33..2c3637f 100644
 +    .write      = dvblb_procfs_write,
 +    .release    = single_release,
 +};
++#endif
 +
  int dvblb_init_procfs_device(struct dvblb *dvblb, struct dvblb_devinfo *lbdev)
  {
 -      int type = lbdev->lb_dev->type;
--      lbdev->procfile = create_proc_entry(dnames[type], 0644, dvblb->procdir);
++        int type = lbdev->lb_dev->type;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+       lbdev->procfile = create_proc_entry(dnames[type], 0644, dvblb->procdir);
 -      if (lbdev->procfile == NULL)
 -              return -ENOMEM;
--      lbdev->procfile->data = lbdev;
--      lbdev->procfile->read_proc = dvblb_procfs_read;
--      lbdev->procfile->write_proc = dvblb_procfs_write;
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
--      lbdev->procfile->owner = THIS_MODULE;
--#endif
--      return 0;
-+        int type = lbdev->lb_dev->type;
++#else
 +        lbdev->procfile = proc_create_data(dnames[type], 0644, dvblb->procdir, &dvblb_procfs_fops, lbdev);
++#endif
 +        if (lbdev->procfile == NULL)
 +                return -ENOMEM;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+       lbdev->procfile->data = lbdev;
+       lbdev->procfile->read_proc = dvblb_procfs_read;
+       lbdev->procfile->write_proc = dvblb_procfs_write;
++#endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+       lbdev->procfile->owner = THIS_MODULE;
+ #endif
+-      return 0;
 +        return 0;
  }
  EXPORT_SYMBOL(dvblb_init_procfs_device);
  
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
 +static int dvblb_procfs_adapter_open(struct inode *inode, struct file *filep)
 +{
-+    return single_open(filep, dvblb_procfs_adapter_read, PDE_DATA(inode)); 
-+} 
++    return single_open(filep, dvblb_procfs_adapter_read, PDE_DATA(inode));
++}
 +
 +static const struct file_operations dvblb_procfs_adapter_fops = {
 +    .owner      = THIS_MODULE,
@@ -251,30 +179,29 @@ index c78aa33..2c3637f 100644
 +    .write      = dvblb_procfs_adapter_write,
 +    .release    = single_release,
 +};
++#endif
 +
  int dvblb_init_procfs_adapter(struct dvblb *dvblb)
  {
        char name[10];
-@@ -186,20 +329,12 @@ int dvblb_init_procfs_adapter(struct dvblb *dvblb)
-       dvblb->procdir = proc_mkdir(name, procdir);
-       if (dvblb->procdir == NULL)
-               return -ENOMEM;
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
--      dvblb->procdir->owner = THIS_MODULE;
--#endif
--      dvblb->procfile = create_proc_entry("adapter", 0644, dvblb->procdir);
-+      //dvblb->procfile = create_proc_entry("adapter", 0644, dvblb->procdir);
+@@ -189,14 +277,20 @@
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+       dvblb->procdir->owner = THIS_MODULE;
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+       dvblb->procfile = create_proc_entry("adapter", 0644, dvblb->procdir);
++#else
 +        dvblb->procfile = proc_create_data("adapter", 0644, dvblb->procdir, &dvblb_procfs_adapter_fops, dvblb);
++#endif
        if (dvblb->procfile == NULL) {
                dvblb_remove_procfs(dvblb->procdir, procdir);
                return -ENOMEM;
        }
--      dvblb->procfile->data = dvblb;
--      dvblb->procfile->read_proc = dvblb_procfs_adapter_read;
--      dvblb->procfile->write_proc = dvblb_procfs_adapter_write;
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
--      dvblb->procfile->owner = THIS_MODULE;
--#endif
-       dvblb->init |= DVBLB_STATUS_PROC;
-       return 0;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+       dvblb->procfile->data = dvblb;
+       dvblb->procfile->read_proc = dvblb_procfs_adapter_read;
+       dvblb->procfile->write_proc = dvblb_procfs_adapter_write;
++#endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+       dvblb->procfile->owner = THIS_MODULE;
+ #endif
index b91e5bbe026b15519e671e9823752242051751be..fe85f376841dc1aa522ab7f98d566841ad07a017 100755 (executable)
@@ -67,13 +67,21 @@ build_sasc_%:
 build_kernel_%:
        VERSION="$*"; \
        KERNEL=$${VERSION#*_}; \
-       SHORT_KERNEL=$$( echo $${KERNEL} | grep -o '[[:digit:]]\+\.[[:digit:]]\+' ); \
-       KERNEL_TARBALL=/usr/src/linux-source-$${SHORT_KERNEL}.tar.xz; \
-       BUILD_DIR=/lib/modules/$${KERNEL}/build; \
        echo "Building patched dvb-core module for kernel $${KERNEL}"; \
+       BUILD_DIR=/lib/modules/$${KERNEL}/build; \
+       SHORT_KERNEL=$$( echo $${KERNEL} | grep -o '[[:digit:]]\+\.[[:digit:]]\+' ); \
        tmpdir=$(CURDIR)/debian/tmp-$${SHORT_KERNEL}; \
        mkdir -p $$tmpdir; \
+       FIRST_KERNEL_DIGIT=$$(echo $${SHORT_KERNEL} | grep -o '^[[:digit:]]\+'); \
+       SECOND_KERNEL_DIGIT=$$(echo $${SHORT_KERNEL} | grep -o '[[:digit:]]\+$$'); \
+       XZ_KERNEL=$$(($${FIRST_KERNEL_DIGIT}>=3 && $${SECOND_KERNEL_DIGIT}>=10)); \
+        if [ $${XZ_KERNEL} -eq 1 ]; then \
+       KERNEL_TARBALL=/usr/src/linux-source-$${SHORT_KERNEL}.tar.xz; \
        tar xJf $${KERNEL_TARBALL} -C $${tmpdir} --strip-components 4 linux-source-$${SHORT_KERNEL}/drivers/media/dvb-core/; \
+        else \
+       KERNEL_TARBALL=/usr/src/linux-source-$${SHORT_KERNEL}.tar.bz2; \
+       tar xjf $${KERNEL_TARBALL} -C $${tmpdir} --strip-components 5 linux-source-$${SHORT_KERNEL}/drivers/media/dvb/dvb-core/; \
+        fi; \
        patch -p4 -d $${tmpdir} < $(CURDIR)/debian/linux-3.7.1-dvb-mutex.patch; \
        make -C $${BUILD_DIR} M=$${tmpdir} modules; \
        mkdir -p $(CURDIR)/debian/tmp/$$KERNEL/module-updates; \
index bd4a10e27d4aae424218fe43a41690935cffda57..78a422b4e73a50c28ab209fa8ddff2f1264eb017 100644 (file)
@@ -1,4 +1,5 @@
-KERNELS = 3.10-2-amd64
+KERNELS = 3.2.0-4-amd64 3.10-2-amd64
+KERNEL_VERSION_3.2.0-4-amd64 = 3.2.46-1
 KERNEL_VERSION_3.10-2-amd64 = 3.10.7-1
 
 FFDECSA_FLAVORS = core2 athlon64 atom corei5