From b9500b42325ae3e8b8f323fd571162aa686e1870 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Jun 23 2011 06:43:32 +0000 Subject: Removed V4L support because V4L has been deprecated from the Linux kernel as of 2.6.38 --- diff --git a/pygame-remove-v4l.patch b/pygame-remove-v4l.patch new file mode 100644 index 0000000..4870dd5 --- /dev/null +++ b/pygame-remove-v4l.patch @@ -0,0 +1,165 @@ +diff --git a/Setup.in b/Setup.in +index c90174f..2ad0252 100644 +--- a/Setup.in ++++ b/Setup.in +@@ -34,7 +34,7 @@ _numericsurfarray src/_numericsurfarray.c $(SDL) $(DEBUG) + _numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG) + movie src/movie.c $(SDL) $(SMPEG) $(DEBUG) + scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG) +-_camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG) ++_camera src/_camera.c src/camera_v4l2.c $(SDL) $(DEBUG) + pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG) + + GFX = src/SDL_gfx/SDL_gfxPrimitives.c +diff --git a/src/_camera.c b/src/_camera.c +index d25cf63..f354fab 100644 +--- a/src/_camera.c ++++ b/src/_camera.c +@@ -22,7 +22,7 @@ + * Author: Nirav Patel + * + * This module allows for use of v4l2 webcams in pygame. The code is written +- * such that adding support for v4l or vfw cameras should be possible without ++ * such that adding support for vfw cameras should be possible without + * much modification of existing functions. v4l2 functions are kept seperate + * from functions available to pygame users and generic functions like + * colorspace conversion. +@@ -160,20 +160,8 @@ PyObject* camera_start (PyCameraObject* self) + { + #if defined(__unix__) + if (v4l2_open_device(self) == 0) { +- if (v4l_open_device(self) == 0) { +- v4l2_close_device(self); +- return NULL; +- } else { +- self->camera_type = CAM_V4L; +- if (v4l_init_device(self) == 0) { +- v4l2_close_device(self); +- return NULL; +- } +- if (v4l_start_capturing(self) == 0) { +- v4l2_close_device(self); +- return NULL; +- } +- } ++ v4l2_close_device(self); ++ return NULL; + } else { + self->camera_type = CAM_V4L2; + if (v4l2_init_device(self) == 0) { +diff --git a/src/camera.h b/src/camera.h +index 921ad96..f528ad8 100644 +--- a/src/camera.h ++++ b/src/camera.h +@@ -39,7 +39,6 @@ + + #include /* for videodev2.h */ + +- #include + #include + #endif + +@@ -51,7 +50,7 @@ + #define RGB_OUT 1 + #define YUV_OUT 2 + #define HSV_OUT 4 +-#define CAM_V4L 1 ++#define CAM_V4L 1 /* deprecated. the incomplete support in pygame was removed */ + #define CAM_V4L2 2 + + struct buffer +@@ -111,8 +110,4 @@ int v4l2_init_device (PyCameraObject* self); + int v4l2_close_device (PyCameraObject* self); + int v4l2_open_device (PyCameraObject* self); + +-/* internal functions specific to v4l */ +-int v4l_open_device (PyCameraObject* self); +-int v4l_init_device(PyCameraObject* self); +-int v4l_start_capturing(PyCameraObject* self); + #endif +diff --git a/src/camera_v4l.c b/src/camera_v4l.c +index 674bfc6..e69de29 100644 +--- a/src/camera_v4l.c ++++ b/src/camera_v4l.c +@@ -1,81 +0,0 @@ +-/* +- pygame - Python Game Library +- +- This library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Library General Public +- License as published by the Free Software Foundation; either +- version 2 of the License, or (at your option) any later version. +- +- This library 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 +- Library General Public License for more details. +- +- You should have received a copy of the GNU Library General Public +- License along with this library; if not, write to the Free +- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- +-*/ +-#if defined(__unix__) +-#include "camera.h" +- +-/* +- * V4L functions +- */ +- +-int v4l_open_device (PyCameraObject* self) +-{ +- struct stat st; +- struct video_capability cap; +- struct video_mbuf buf; +- +- if (-1 == stat (self->device_name, &st)) { +- PyErr_Format(PyExc_SystemError, "Cannot identify '%s': %d, %s", +- self->device_name, errno, strerror (errno)); +- return 0; +- } +- +- if (!S_ISCHR (st.st_mode)) { +- PyErr_Format(PyExc_SystemError, "%s is no device",self->device_name); +- return 0; +- } +- +- self->fd = open (self->device_name, O_RDWR /* required | O_NONBLOCK */, 0); +- +- if (-1 == self->fd) { +- PyErr_Format(PyExc_SystemError, "Cannot open '%s': %d, %s", +- self->device_name, errno, strerror (errno)); +- return 0; +- } +- +- if(ioctl(self->fd, VIDIOCGCAP, cap) == -1) { +- PyErr_Format(PyExc_SystemError, "%s is not a V4L device", +- self->device_name); +- return 0; +- } +- +- if(!(cap.type & VID_TYPE_CAPTURE)) { +- PyErr_Format(PyExc_SystemError, "%s is not a video capture device", +- self->device_name); +- return 0; +- } +- +- if( ioctl(self->fd , VIDIOCGMBUF , buf ) == -1 ) { +- PyErr_Format(PyExc_SystemError, "%s does not support streaming i/o", +- self->device_name); +- return 0; +- } +- +- return 1; +-} +- +-int v4l_init_device(PyCameraObject* self) +-{ +- return 0; +-} +- +-int v4l_start_capturing(PyCameraObject* self) +-{ +- return 0; +-} +-#endif diff --git a/pygame.spec b/pygame.spec index 0fc5193..beb1c94 100644 --- a/pygame.spec +++ b/pygame.spec @@ -2,7 +2,7 @@ Name: pygame Version: 1.9.1 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Python modules for writing games Group: Development/Languages @@ -13,6 +13,9 @@ Patch0: %{name}-1.9.1-config.patch # porttime is part of libportmidi.so, there's no libporttime in Fedora Patch1: pygame-1.9.1-porttime.patch Patch2: pygame-1.9.1-no-test-install.patch +# patch backported from upstream repository, V4L has been remove in linux-2.6.38 +# http://svn.seul.org/viewcvs/viewvc.cgi?view=rev&root=PyGame&revision=3077 +Patch3: pygame-remove-v4l.patch Source0: http://pygame.org/ftp/%{name}-%{version}release.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -48,6 +51,7 @@ pygame. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 # rpmlint fixes find examples/ -type f -print0 | xargs -0 chmod -x @@ -101,6 +105,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Jun 23 2011 Jan Kaluza - 1.9.1-6 +- Removed V4L support because V4L has been deprecated from the Linux + kernel as of 2.6.38 + * Tue Feb 08 2011 Fedora Release Engineering - 1.9.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild