Package: linuxtv-dvb-apps
Version: 1.1.1+rev1355-1
Followup-For: Bug #621964
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu oneiric ubuntu-patch

In Ubuntu, the attached patch was applied to achieve the following:

  * Remove legacy test app as per upstream hg changeset 1424 to resolve
    FTBFS. (Closes: #621964) (LP: #756224)

The previous patch for videodev2.h that I submitted is bunk; please
ignore it. Sorry for the hassle.

Thanks for considering the patch.


-- System Information:
Debian Release: wheezy/sid
  APT prefers oneiric-updates
  APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500, 
'oneiric-proposed'), (500, 'oneiric')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-9-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -u linuxtv-dvb-apps-1.1.1+rev1355/debian/patches/00list linuxtv-dvb-apps-1.1.1+rev1355/debian/patches/00list
--- linuxtv-dvb-apps-1.1.1+rev1355/debian/patches/00list
+++ linuxtv-dvb-apps-1.1.1+rev1355/debian/patches/00list
@@ -3,0 +4 @@
+17_ftbfs_gcc4.6
only in patch2:
unchanged:
--- linuxtv-dvb-apps-1.1.1+rev1355.orig/debian/patches/17_ftbfs_gcc4.6
+++ linuxtv-dvb-apps-1.1.1+rev1355/debian/patches/17_ftbfs_gcc4.6
@@ -0,0 +1,205 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 17_ftbfs_gcc4.6 by Daniel T Chen <crim...@ubuntu.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Upstream removed the legacy test app in hg changeset 1424.
+## DP: Follow suit to fix FTBFS (Closes: #621964)
+
+@DPATCH@
+diff -r 3c14666ebdcc -r e5745959ca83 test/Makefile
+--- a/test/Makefile	Sun Apr 03 10:57:58 2011 -0300
++++ b/test/Makefile	Sun Apr 03 11:05:32 2011 -0300
+@@ -20,7 +20,6 @@
+            test_vevent     \
+            test_video      \
+ 	   evtest	   \
+-	   video	   \
+ 	   szap2
+ 
+ .PHONY: all
+diff -r 3c14666ebdcc -r e5745959ca83 test/video.c
+--- a/test/video.c	Sun Apr 03 10:57:58 2011 -0300
++++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+@@ -1,182 +0,0 @@
+-#define USAGE \
+-"\n" \
+-"\n A tiny video watching application, just starts capturing /dev/video" \
+-"\n into /dev/fb0." \
+-"\n Be shure to have >8Bit/pixel color resolution and r/w access for " \
+-"\n /dev/video0, /dev/fb0 and /dev/tty0 to let this work..." \
+-"\n" \
+-"\n  compile with" \
+-"\n" \
+-"\n  $ gcc -g -Wall -O2 -o video video.c -I../../ost/include" \
+-"\n"
+-
+-#include <sys/mman.h>
+-#include <sys/ioctl.h>
+-#include <sys/types.h>
+-#include <sys/time.h>
+-#include <unistd.h>
+-#include <fcntl.h>
+-#include <signal.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include <linux/fb.h>
+-#include <linux/videodev.h>
+-
+-#define VIDEO_DEV "/dev/video0"
+-#define FB_DEV "/dev/fb0"
+-#define VT_DEV "/dev/tty0"
+-
+-static char *video_devname = VIDEO_DEV;
+-
+-#define min(a,b)	(a) < (b) ? (a) : (b)
+-
+-static int zero = 0;
+-static int one = 1;
+-
+-static struct fb_var_screeninfo fb_var;
+-static struct fb_fix_screeninfo fb_fix;
+-
+-
+-int init_fb (void)
+-{
+-	const char blankoff_str[] = "\033[9;0]";
+-	int fd, vt_fd;
+-
+-	fd = open (FB_DEV, O_RDWR);
+-	if (fd < 0) {
+-		perror("Could not open " FB_DEV ", please check permissions\n");
+-		return 1;
+-	}
+-
+-	if ((vt_fd = open( VT_DEV, O_RDWR )) < 0) {
+-		perror("Could not open " VT_DEV ", please check permissions\n");
+-		return 1;
+-	}
+-
+-	write( vt_fd, blankoff_str, strlen(blankoff_str) );
+-
+-	if (ioctl (fd, FBIOGET_VSCREENINFO, &fb_var) < 0) {
+-		perror("Could not get variable screen information (fb_var)\n");
+-		return 1;
+-	}
+-
+-	if (ioctl (fd, FBIOGET_FSCREENINFO, &fb_fix) < 0) {
+-		perror("Could not get fixed screen information (fb_fix)\n");
+-		return 1;
+-	}
+-
+-	close (fd);
+-	return 0;
+-}
+-
+-
+-int init_video (int stop)
+-{
+-	int fd;
+-	struct video_capability vcap;
+-
+-	if ((fd = open (video_devname, O_RDWR)) < 0) {
+-		fprintf (stderr,
+-			 "%s: Could not open %s, please check permissions\n",
+-			 __FUNCTION__, video_devname);
+-		return -1;
+-	}
+-
+-	ioctl(fd, VIDIOCGCAP, &vcap);
+-
+-	if (ioctl(fd, VIDIOCCAPTURE, &zero) < 0) {
+-		perror("Could not stop capturing (VIDIOCCAPTURE failed)\n");
+-		return -2;
+-	}
+-
+-	if (stop)
+-		return 0;
+-
+-	{
+-		struct video_buffer b;
+-		b.base = (void*) fb_fix.smem_start;
+-		b.width = fb_var.xres;
+-		b.height = fb_var.yres;
+-		b.depth = fb_var.bits_per_pixel;
+-		b.bytesperline = fb_var.xres*((fb_var.bits_per_pixel+7)/8);
+-		if (ioctl(fd, VIDIOCSFBUF, &b) < 0) {
+-			fprintf(stderr, "VIDIOCSFBUF failed, must run as root?\n");
+-			return -3;
+-		}
+-	}
+-
+-	{
+-		struct video_picture p;
+-		if (ioctl(fd, VIDIOCGPICT, &p) < 0) {
+-			perror("VIDIOCGPICT failed\n");
+-			return -4;
+-		}
+-		p.depth = fb_var.bits_per_pixel;
+-		switch (fb_var.bits_per_pixel) {
+-			case 16:
+-				p.palette = VIDEO_PALETTE_RGB565;
+-				break;
+-			case 24:
+-				p.palette = VIDEO_PALETTE_RGB24;
+-				break;
+-			case 32:
+-				p.palette = VIDEO_PALETTE_RGB32;
+-				break;
+-		}
+-		//p.contrast = 0x8000;
+-		//p.colour = 0x6000;
+-		if (ioctl(fd, VIDIOCSPICT, &p) < 0) {
+-			perror("VIDIOCSPICT failed\n");
+-			return -5;
+-		}
+-	}
+-
+-	{
+-		struct video_window win;
+-		win.width = min((__u32) vcap.maxwidth, fb_var.xres);
+-		win.height = min((__u32) vcap.maxheight, fb_var.yres);
+-		win.x = 0;
+-		win.y = 0;
+-		win.flags = 0;
+-		win.clips = NULL;
+-		win.clipcount = 0;
+-		win.chromakey = 0;
+-		if (ioctl(fd, VIDIOCSWIN, &win) < 0) {
+-			perror("VIDIOCSWIN failed\n");
+-			return -6;
+-		}
+-	}
+-
+-	if (ioctl(fd, VIDIOCCAPTURE, &one) < 0) {
+-		perror("Could not start capturing (VIDIOCCAPTURE failed)\n");
+-		return -7;
+-	}
+-
+-	close (fd);
+-
+-	return 0;
+-}
+-
+-int main (int argc, char **argv)
+-{
+-	int err = 0, stop = 0;
+-
+-	if ((err = init_fb()))
+-		return err;
+-
+-	if ((argc == 2 && strcmp(argv[1], "stop") == 0) ||
+-	    (argc == 3 && strcmp(argv[2], "stop") == 0))
+-		stop = 1;
+-
+-	if ((argc == 2 && !stop) || argc == 3)
+-		video_devname = argv[1];
+-
+-	if (argc != 1 && argc != 2 && !(argc == 3 && stop)) {
+-		fprintf(stderr, "usage: %s <devname> <stop>\n" USAGE, argv[0]);
+-		exit (-1);
+-	}
+-
+-	return init_video (stop);
+-}

Reply via email to