rpms/directfb/F-10 DirectFB-1.2.7-libv4l2.patch, NONE, 1.1 directfb.spec, 1.20, 1.21
Chauvet Nicolas
kwizart at fedoraproject.org
Fri Feb 13 01:01:30 UTC 2009
Author: kwizart
Update of /cvs/pkgs/rpms/directfb/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4769
Modified Files:
directfb.spec
Added Files:
DirectFB-1.2.7-libv4l2.patch
Log Message:
Update to 1.2.7
DirectFB-1.2.7-libv4l2.patch:
--- NEW FILE DirectFB-1.2.7-libv4l2.patch ---
diff -up DirectFB-1.2.7/configure.in.libv4l2 DirectFB-1.2.7/configure.in
--- DirectFB-1.2.7/configure.in.libv4l2 2009-01-20 13:50:58.000000000 +0100
+++ DirectFB-1.2.7/configure.in 2009-01-21 14:03:39.000000000 +0100
@@ -150,7 +150,7 @@ fi
AM_CONDITIONAL(X11_CORE, test "$enable_x11" = "yes")
-AC_CHECK_HEADERS(linux/compiler.h linux/unistd.h asm/page.h)
+AC_CHECK_HEADERS(linux/compiler.h linux/unistd.h asm/page.h linux/videodev.h linux/videodev2.h)
dnl Clear default CFLAGS
@@ -847,6 +847,19 @@ if test "$V4L" = "yes"; then
fi
fi
+dnl
+dnl libv4l2 support for video4linux.
+dnl
+AC_ARG_ENABLE( libv4l2,
+ [ --enable-libv4l2 Libv4l2 Video4Linux2 support (default enabled)])
+if test "${enable_libv4l2}" = "yes" -a "${enable_v4l2}" != "no"
+then
+ PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
+ AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
+ AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
+ )
+fi
+
dnl check which gfxdrivers to build
ati128=no
@@ -1654,7 +1667,8 @@ Building Image Provider Modules:
Building Video Provider Modules:
GIF $enable_gif
- Video4Linux $V4L (v2: $V4L2)
+ Video4Linux $V4L
+ Video4Linux2 $V4L2 LIBV4L2: $LIBV4L2_CFLAGS $LIBV4L2_LIBS
Building Font Modules:
FreeType2 $FREETYPE $FREETYPE_CFLAGS $FREETYPE_LIBS
diff -up DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_v4l.c.libv4l2 DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_v4l.c
--- DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_v4l.c.libv4l2 2009-01-20 13:50:58.000000000 +0100
+++ DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_v4l.c 2009-01-21 14:02:26.000000000 +0100
@@ -49,7 +49,11 @@
#ifdef HAVE_LINUX_COMPILER_H
#include <linux/compiler.h>
#endif
+#ifdef HAVE_LINUX_VIDEODEV_H
+#include <linux/videodev.h>
+#else
#include "videodev.h"
+#endif
#include <directfb.h>
@@ -78,8 +82,21 @@
#include <direct/util.h>
#ifdef DFB_HAVE_V4L2
+#ifdef HAVE_LINUX_VIDEODEV2_H
+#include <linux/videodev2.h>
+#else
#include "videodev2.h"
#endif
+#ifdef HAVE_LIBV4L2
+# include <libv4l2.h>
+#else
+# define v4l2_fd_open(fd, flags) (fd)
+# define v4l2_close close
+# define v4l2_ioctl ioctl
+# define v4l2_mmap mmap
+# define v4l2_munmap munmap
+#endif
+#endif
static DFBResult
Probe( IDirectFBVideoProvider_ProbeContext *ctx );
@@ -211,28 +228,28 @@ IDirectFBVideoProvider_V4L_GetCapabiliti
*caps = 0;
data->saturation.id = V4L2_CID_SATURATION;
- if (ioctl( data->fd, VIDIOC_G_CTRL, &data->saturation )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->saturation )) {
*caps |= DVCAPS_SATURATION;
}
else {
data->saturation.id = 0;
}
data->brightness.id = V4L2_CID_BRIGHTNESS;
- if (ioctl( data->fd, VIDIOC_G_CTRL, &data->brightness )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->brightness )) {
*caps |= DVCAPS_BRIGHTNESS;
}
else {
data->brightness.id = 0;
}
data->contrast.id = V4L2_CID_CONTRAST;
- if (ioctl( data->fd, VIDIOC_G_CTRL, &data->contrast )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->contrast )) {
*caps |= DVCAPS_CONTRAST;
}
else {
data->contrast.id = 0;
}
data->hue.id = V4L2_CID_HUE;
- if (ioctl( data->fd, VIDIOC_G_CTRL, &data->hue )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->hue )) {
*caps |= DVCAPS_HUE;
}
else {
@@ -471,28 +488,28 @@ IDirectFBVideoProvider_V4L_GetColorAdjus
if (data->brightness.id) {
ctrl.id = data->brightness.id;
- if (!ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
+ if (!v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
adj->flags |= DCAF_BRIGHTNESS;
adj->brightness = 0xffff * ctrl.value / (data->brightness.maximum - data->brightness.minimum);
}
}
if (data->contrast.id) {
ctrl.id = data->contrast.id;
- if (!ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
+ if (!v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
adj->flags |= DCAF_CONTRAST;
adj->contrast = 0xffff * ctrl.value / (data->contrast.maximum - data->contrast.minimum);
}
}
if (data->hue.id) {
ctrl.id = data->hue.id;
- if (!ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
+ if (!v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
adj->flags |= DCAF_HUE;
adj->hue = 0xffff * ctrl.value / (data->hue.maximum - data->hue.minimum);
}
}
if (data->saturation.id) {
ctrl.id = data->saturation.id;
- if (!ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
+ if (!v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &ctrl )) {
adj->flags |= DCAF_SATURATION;
adj->saturation = 0xffff * ctrl.value / (data->saturation.maximum - data->saturation.minimum);
}
@@ -501,7 +518,7 @@ IDirectFBVideoProvider_V4L_GetColorAdjus
else
#endif
{
- ioctl( data->fd, VIDIOCGPICT, &pic );
+ v4l2_ioctl( data->fd, VIDIOCGPICT, &pic );
adj->flags = DCAF_BRIGHTNESS | DCAF_CONTRAST | DCAF_HUE | DCAF_SATURATION;
@@ -533,28 +550,28 @@ IDirectFBVideoProvider_V4L_SetColorAdjus
if ((adj->flags & DCAF_BRIGHTNESS) && data->brightness.id) {
ctrl.id = data->brightness.id;
ctrl.value = (adj->brightness * (data->brightness.maximum - data->brightness.minimum)) / 0xfff;
- ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
+ v4l2_ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
}
if ((adj->flags & DCAF_CONTRAST) && data->contrast.id) {
ctrl.id = data->contrast.id;
ctrl.value = (adj->contrast * (data->contrast.maximum - data->contrast.minimum)) / 0xfff;
- ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
+ v4l2_ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
}
if ((adj->flags & DCAF_HUE) && data->hue.id) {
ctrl.id = data->hue.id;
ctrl.value = (adj->hue * (data->hue.maximum - data->hue.minimum)) / 0xfff;
- ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
+ v4l2_ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
}
if ((adj->flags & DCAF_SATURATION) && data->saturation.id) {
ctrl.id = data->saturation.id;
ctrl.value = (adj->saturation * (data->saturation.maximum - data->saturation.minimum)) / 0xfff;
- ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
+ v4l2_ioctl( data->fd, VIDIOC_S_CTRL, &ctrl );
}
}
else
#endif
{
- if (ioctl( data->fd, VIDIOCGPICT, &pic ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCGPICT, &pic ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCGPICT failed!\n" );
@@ -567,7 +584,7 @@ IDirectFBVideoProvider_V4L_SetColorAdjus
if (adj->flags & DCAF_HUE) pic.hue = adj->hue;
if (adj->flags & DCAF_SATURATION) pic.colour = adj->saturation;
- if (ioctl( data->fd, VIDIOCSPICT, &pic ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCSPICT, &pic ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCSPICT failed!\n" );
@@ -627,11 +644,11 @@ Construct( IDirectFBVideoProvider *thiz,
buffer_data = (IDirectFBDataBuffer_data*) buffer->priv;
- fd = open( buffer_data->filename, O_RDWR );
+ fd = v4l2_open( buffer_data->filename, O_RDWR );
if (fd < 0) {
DFBResult ret = errno2result( errno );
- D_PERROR( "DirectFB/Video4Linux: Cannot open `%s'!\n",
+ D_PERROR( "DirectFB/Video4Linux: Cannot v4l2_open `%s'!\n",
buffer_data->filename );
DIRECT_DEALLOCATE_INTERFACE( thiz );
@@ -644,7 +661,7 @@ Construct( IDirectFBVideoProvider *thiz,
data->is_v4l2 = 0;
/* look if the device is a v4l2 device */
- if (!ioctl( fd, VIDIOC_QUERYCAP, &data->caps )) {
+ if (!v4l2_ioctl( fd, VIDIOC_QUERYCAP, &data->caps )) {
D_INFO( "DirectFB/Video4Linux: This is a Video4Linux-2 device.\n" );
data->is_v4l2 = 1;
}
@@ -657,12 +674,12 @@ Construct( IDirectFBVideoProvider *thiz,
{
D_INFO( "DirectFB/Video4Linux: This is a Video4Linux-1 device.\n" );
- ioctl( fd, VIDIOCGCAP, &data->vcap );
- ioctl( fd, VIDIOCCAPTURE, &zero );
+ v4l2_ioctl( fd, VIDIOCGCAP, &data->vcap );
+ v4l2_ioctl( fd, VIDIOCCAPTURE, &zero );
- ioctl( fd, VIDIOCGMBUF, &data->vmbuf );
+ v4l2_ioctl( fd, VIDIOCGMBUF, &data->vmbuf );
- data->buffer = mmap( NULL, data->vmbuf.size,
+ data->buffer = v4l2_mmap( NULL, data->vmbuf.size,
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
}
@@ -745,7 +762,7 @@ GrabThread( DirectThread *thread, void *
while (frame < data->vmbuf.frames) {
data->vmmap.frame = frame;
- ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap );
+ v4l2_ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap );
frame++;
}
@@ -756,7 +773,7 @@ GrabThread( DirectThread *thread, void *
frame = 0;
while (data->running) {
- ioctl( data->fd, VIDIOCSYNC, &frame );
+ v4l2_ioctl( data->fd, VIDIOCSYNC, &frame );
if (!data->running)
break;
@@ -800,7 +817,7 @@ GrabThread( DirectThread *thread, void *
dfb_surface_unlock_buffer( surface, &data->destinationlock );
data->vmmap.frame = frame;
- ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap );
+ v4l2_ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap );
if (!data->running)
break;
@@ -943,7 +960,7 @@ v4l_to_surface_overlay( CoreSurface *sur
b.depth = bpp;
b.bytesperline = lock->pitch;
- if (ioctl( data->fd, VIDIOCSFBUF, &b ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCSFBUF, &b ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCSFBUF failed, must run being root!\n" );
@@ -954,7 +971,7 @@ v4l_to_surface_overlay( CoreSurface *sur
{
struct video_picture p;
- if (ioctl( data->fd, VIDIOCGPICT, &p ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCGPICT, &p ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCGPICT failed!\n" );
@@ -965,7 +982,7 @@ v4l_to_surface_overlay( CoreSurface *sur
p.depth = bpp;
p.palette = palette;
- if (ioctl( data->fd, VIDIOCSPICT, &p ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCSPICT, &p ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCSPICT failed!\n" );
@@ -985,7 +1002,7 @@ v4l_to_surface_overlay( CoreSurface *sur
win.clipcount = 0;
win.chromakey = 0;
- if (ioctl( data->fd, VIDIOCSWIN, &win ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCSWIN, &win ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: VIDIOCSWIN failed!\n" );
@@ -997,7 +1014,7 @@ v4l_to_surface_overlay( CoreSurface *sur
if (!data->cleanup)
data->cleanup = dfb_core_cleanup_add( NULL, v4l_cleanup, data, true );
- if (ioctl( data->fd, VIDIOCCAPTURE, &one ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCCAPTURE, &one ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: Could not start capturing (VIDIOCCAPTURE failed)!\n" );
@@ -1062,7 +1079,7 @@ v4l_to_surface_grab( CoreSurface *surfac
data->vmmap.height = surface->config.size.h;
data->vmmap.format = palette;
data->vmmap.frame = 0;
- if (ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOCMCAPTURE, &data->vmmap ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux: Could not start capturing (VIDIOCMCAPTURE failed)!\n" );
@@ -1110,7 +1127,7 @@ v4l_stop( IDirectFBVideoProvider_V4L_dat
if (data->is_v4l2) {
/* turn off streaming */
int type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- int err = ioctl( data->fd, VIDIOC_STREAMOFF, &type );
+ int err = v4l2_ioctl( data->fd, VIDIOC_STREAMOFF, &type );
if (err) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_STREAMOFF.\n" );
/* don't quit here */
@@ -1120,7 +1137,7 @@ v4l_stop( IDirectFBVideoProvider_V4L_dat
#endif
{
if (!data->grab_mode) {
- if (ioctl( data->fd, VIDIOCCAPTURE, &zero ) < 0)
+ if (v4l2_ioctl( data->fd, VIDIOCCAPTURE, &zero ) < 0)
D_PERROR( "DirectFB/Video4Linux: "
"Could not stop capturing (VIDIOCCAPTURE failed)!\n" );
}
@@ -1141,8 +1158,8 @@ v4l_stop( IDirectFBVideoProvider_V4L_dat
for (i = 0; i < data->req.count; i++) {
struct v4l2_buffer *vidbuf = &data->vidbuf[i];
D_DEBUG( "DirectFB/Video4Linux2: %d => 0x%08x, len:%d\n", i, (u32) data->ptr[i], vidbuf->length );
- if (munmap( data->ptr[i], vidbuf->length )) {
- D_PERROR( "DirectFB/Video4Linux2: munmap().\n" );
+ if (v4l2_munmap( data->ptr[i], vidbuf->length )) {
+ D_PERROR( "DirectFB/Video4Linux2: v4l2_munmap().\n" );
}
}
}
@@ -1177,8 +1194,8 @@ v4l_deinit( IDirectFBVideoProvider_V4L_d
v4l_stop( data, true );
- munmap( data->buffer, data->vmbuf.size );
- close( data->fd );
+ v4l2_munmap( data->buffer, data->vmbuf.size );
+ v4l2_close( data->fd );
data->fd = -1;
}
@@ -1223,7 +1240,7 @@ wait_for_buffer( int vid, struct v4l2_bu
return -1; /* fixme */
}
else if (FD_ISSET( vid, &rdset )) {
- err = ioctl( vid, VIDIOC_DQBUF, cur );
+ err = v4l2_ioctl( vid, VIDIOC_DQBUF, cur );
if (err) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_DQBUF.\n" );
return -1; /* fixme */
@@ -1255,7 +1272,7 @@ V4L2_Thread( DirectThread *thread, void
vidbuf->m.offset = data->destinationlock.offset;
}
- err = ioctl( data->fd, VIDIOC_QBUF, vidbuf );
+ err = v4l2_ioctl( data->fd, VIDIOC_QBUF, vidbuf );
if (err) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_QBUF.\n" );
return NULL;
@@ -1263,7 +1280,7 @@ V4L2_Thread( DirectThread *thread, void
}
/* start streaming */
- if (ioctl( data->fd, VIDIOC_STREAMON, &type )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_STREAMON, &type )) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_STREAMON.\n" );
return NULL; /* fixme */
}
@@ -1334,7 +1351,7 @@ V4L2_Thread( DirectThread *thread, void
if (data->callback)
data->callback( data->ctx );
- if (ioctl( data->fd, VIDIOC_QBUF, &cur )) {
+ if (v4l2_ioctl( data->fd, VIDIOC_QBUF, &cur )) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_QBUF.\n" );
return NULL;
}
@@ -1406,7 +1423,7 @@ v4l2_playto( CoreSurface *surface, DFBRe
D_DEBUG( "DirectFB/Video4Linux2: surface->config.size.w:%d, surface->config.size.h:%d.\n", surface->config.size.w, surface->config.size.h );
- err = ioctl( data->fd, VIDIOC_S_FMT, &data->fmt );
+ err = v4l2_ioctl( data->fd, VIDIOC_S_FMT, &data->fmt );
if (err) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_S_FMT.\n" );
dfb_surface_unlock_buffer( surface, &data->destinationlock );
@@ -1420,16 +1437,16 @@ v4l2_playto( CoreSurface *surface, DFBRe
}
if (data->brightness.id) {
- ioctl( data->fd, VIDIOC_G_CTRL, &data->brightness );
+ v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->brightness );
}
if (data->contrast.id) {
- ioctl( data->fd, VIDIOC_G_CTRL, &data->contrast );
+ v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->contrast );
}
if (data->saturation.id) {
- ioctl( data->fd, VIDIOC_G_CTRL, &data->saturation );
+ v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->saturation );
}
if (data->hue.id) {
- ioctl( data->fd, VIDIOC_G_CTRL, &data->hue );
+ v4l2_ioctl( data->fd, VIDIOC_G_CTRL, &data->hue );
}
if (surface->config.caps & DSCAPS_SYSTEMONLY) {
@@ -1451,7 +1468,7 @@ v4l2_playto( CoreSurface *surface, DFBRe
D_DEBUG( "w:%d, h:%d, bpl:%d, base:0x%08lx\n",
fb.fmt.width, fb.fmt.height, fb.fmt.bytesperline, (unsigned long)fb.base );
- if (ioctl( data->fd, VIDIOC_S_FBUF, &fb ) < 0) {
+ if (v4l2_ioctl( data->fd, VIDIOC_S_FBUF, &fb ) < 0) {
DFBResult ret = errno2result( errno );
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_S_FBUF failed, must run being root!\n" );
@@ -1464,7 +1481,7 @@ v4l2_playto( CoreSurface *surface, DFBRe
/* Ask Video Device for Buffers */
data->req.count = NUMBER_OF_BUFFERS;
data->req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- err = ioctl( data->fd, VIDIOC_REQBUFS, &data->req );
+ err = v4l2_ioctl( data->fd, VIDIOC_REQBUFS, &data->req );
if (err < 0 || data->req.count < NUMBER_OF_BUFFERS) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_REQBUFS: %d, %d.\n", err, data->req.count );
if (!data->framebuffer_or_system)
@@ -1479,7 +1496,7 @@ v4l2_playto( CoreSurface *surface, DFBRe
vidbuf->index = i;
vidbuf->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- err = ioctl( data->fd, VIDIOC_QUERYBUF, vidbuf );
+ err = v4l2_ioctl( data->fd, VIDIOC_QUERYBUF, vidbuf );
if (err < 0) {
D_PERROR( "DirectFB/Video4Linux2: VIDIOC_QUERYBUF.\n" );
if (!data->framebuffer_or_system)
@@ -1494,9 +1511,9 @@ v4l2_playto( CoreSurface *surface, DFBRe
}
*/
if (data->framebuffer_or_system) {
- data->ptr[i] = mmap( 0, vidbuf->length, PROT_READ | PROT_WRITE, MAP_SHARED, data->fd, vidbuf->m.offset );
+ data->ptr[i] = v4l2_mmap( 0, vidbuf->length, PROT_READ | PROT_WRITE, MAP_SHARED, data->fd, vidbuf->m.offset );
if (data->ptr[i] == MAP_FAILED) {
- D_PERROR( "DirectFB/Video4Linux2: mmap().\n" );
+ D_PERROR( "DirectFB/Video4Linux2: v4l2_mmap().\n" );
if (!data->framebuffer_or_system)
dfb_surface_unlock_buffer( surface, &data->destinationlock );
return err;
diff -up DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/Makefile.am.libv4l2 DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/Makefile.am
--- DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/Makefile.am.libv4l2 2009-01-20 13:50:58.000000000 +0100
+++ DirectFB-1.2.7/interfaces/IDirectFBVideoProvider/Makefile.am 2009-01-21 13:39:45.000000000 +0100
@@ -22,7 +22,8 @@ INCLUDES = \
-I$(top_builddir)/lib \
-I$(top_srcdir)/lib \
-I$(top_srcdir)/src \
- -DDATADIR=\"${RUNTIME_SYSROOT}@DATADIR@\"
+ -DDATADIR=\"${RUNTIME_SYSROOT}@DATADIR@\" \
+ $(LIBV4L2_CFLAGS)
idirectfbvideoprovider_LTLIBRARIES = \
@@ -41,7 +42,8 @@ libidirectfbvideoprovider_v4l_la_LDFLAGS
libidirectfbvideoprovider_v4l_la_LIBADD = \
$(top_builddir)/lib/direct/libdirect.la \
$(top_builddir)/lib/fusion/libfusion.la \
- $(top_builddir)/src/libdirectfb.la
+ $(top_builddir)/src/libdirectfb.la \
+ $(LIBV4L2_LIBS)
libidirectfbvideoprovider_gif_la_SOURCES = idirectfbvideoprovider_gif.c
Index: directfb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/directfb/F-10/directfb.spec,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- directfb.spec 23 Oct 2008 11:14:39 -0000 1.20
+++ directfb.spec 13 Feb 2009 01:01:00 -0000 1.21
@@ -1,21 +1,26 @@
Summary: Graphics abstraction library for the Linux Framebuffer Device
Name: directfb
-Version: 1.2.6
-Release: 3%{?dist}
+Version: 1.2.7
+Release: 1%{?dist}
Group: System Environment/Libraries
License: LGPLv2+
URL: http://www.directfb.org/
-Source: http://www.directfb.org/downloads/Core/DirectFB-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+Source0: http://www.directfb.org/downloads/Core/DirectFB-%{version}.tar.gz
+Patch0: DirectFB-1.2.7-libv4l2.patch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: libtool
+
BuildRequires: libpng-devel
BuildRequires: zlib-devel
BuildRequires: libjpeg-devel
BuildRequires: freetype-devel
BuildRequires: SDL-devel
BuildRequires: libsysfs-devel
+BuildRequires: libv4l-devel
BuildRequires: libvncserver-devel
-%{?_with_linux-fusion:BuildRequires: linux-fusion-devel}
-%{?_with_linux-fusion:Requires: linux-fusion}
+%{?_with_fusion:BuildRequires: linux-fusion-devel}
+%{?_with_fusion:Requires: linux-fusion}
%description
@@ -30,7 +35,7 @@
for graphics under Linux.
Non-default rpmbuild options:
---with linux-fusion: Enable linux-fusion support
+--with fusion: Enable linux-fusion support
%package devel
@@ -40,7 +45,7 @@
Requires: pkgconfig
Requires: zlib-devel
Requires: libsysfs-devel
-%{?_with_linux-fusion:Requires: linux-fusion-devel}
+%{?_with_fusion:Requires: linux-fusion-devel}
%description devel
Development files for DirectFB.
@@ -48,21 +53,34 @@
%prep
%setup -q -n DirectFB-%{version}
+%patch0 -p1 -b .libv4l2
#Disable ppc asm since compilation fails (and it seems better to use glibc)
sed -i.noppcasm -e 's/want_ppcasm=yes/want_ppcasm=no/'g configure.in configure
-# Remove executable bit from sources
-find . \( -name '*.c' -o -name '*.h' \) -a -perm 755 -exec chmod -x {} \;
+# Fix file-not-utf8
+for i in ChangeLog README NEWS AUTHORS ; do
+cp -pr $i $i.not-utf8
+iconv -f ISO_8859-1 -t UTF8 $i.not-utf8 > $i
+touch -r $i.not-utf8 $i
+rm $i.not-utf8
+done
+
+#Remove old headers
+rm interfaces/IDirectFBVideoProvider/{videodev.h,videodev2.h}
+
+autoreconf -i -f
%build
%configure \
--enable-sdl \
--enable-zlib \
-%{?_with_linux-fusion: --enable-multi } \
+%{?_with_fusion:--enable-multi} \
--enable-unique \
- --enable-video4linux2
+ --enable-video4linux2 \
+ --enable-libv4l2 \
+ --with-tests
# Remove rpath for 64bit
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
@@ -76,11 +94,18 @@
%{__make} DESTDIR=%{buildroot} install INSTALL="install -p"
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+#Fix some relative fonts for dfbinspector.c
+ln -s ../fonts/dejavu/DejaVuSans.ttf %{buildroot}%{_datadir}/%{name}-%{version}/decker.ttf
+
+
+%check
+make check
%clean
%{__rm} -rf %{buildroot}
+
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@@ -134,6 +159,12 @@
%changelog
+* Tue Jan 20 2009 kwizart < kwizart at gmail.com > - 1.2.7-1
+- Update to 1.2.7
+- Fix decker.ttf path
+- Add libv4l2 support
+- Fix doc encoding
+
* Wed Oct 22 2008 kwizart < kwizart at gmail.com > - 1.2.6-3
- Disable the sorelease downgrade
- Exclude directfb-config - Fix multiarch conflicts #341011.
More information about the fedora-extras-commits
mailing list