Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 132647 - DirectFB-extra (any version) won't compile against DirectFB-0.9.25.1
Summary: DirectFB-extra (any version) won't compile against DirectFB-0.9.25.1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-08 00:57 UTC by Thomas S. Howard
Modified: 2006-05-25 22:11 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas S. Howard 2006-05-08 00:57:16 UTC
They've changed the API, and the current DirectFB-extra sources use the old API.
For DirectFB-extra-0.9.23 it comes down to one function call in 
<path in var>/interfaces/IDirectFBVideoProvider/video_out_dfb/video_out_dfb.c:

--- video_out_dfb.c
+++ video_out_dfb.c 
@@ -1881,7 +1881,7 @@
      }
 #endif

-     dfb_state_init( &this->state );
+     dfb_state_init( &this->state, NULL );

      this->mixer.b   =  0;
      this->mixer.c   = +128;

However, other changes to DirectFB-extra have been made, so I can't say if patching the current sources in portage is even a fix or a valid workaround. For one, it only works against DirectFB-extra-0.9.23. With 0.9.22, there are missing struct members in video_out_dfb.c, as well as the above difference:

video_out_dfb.c: In function 'vo_dfb_set_palette':
video_out_dfb.c:992: error: 'vo_overlay_t' has no member named 'clip_rgb_clut'
video_out_dfb.c:993: error: 'vo_overlay_t' has no member named 'clip_color'
video_out_dfb.c:994: error: 'vo_overlay_t' has no member named 'clip_color'
video_out_dfb.c:995: error: 'vo_overlay_t' has no member named 'clip_trans'
video_out_dfb.c:1038: error: 'vo_overlay_t' has no member named 'clip_rgb_clut'
video_out_dfb.c: In function 'vo_dfb_overlay_blend':
video_out_dfb.c:1114: error: 'vo_overlay_t' has no member named 'clip_rgb_clut'
video_out_dfb.c:1125: error: 'vo_overlay_t' has no member named 'clip_left'
video_out_dfb.c:1126: error: 'vo_overlay_t' has no member named 'clip_top'
video_out_dfb.c:1127: error: 'vo_overlay_t' has no member named 'clip_right'
video_out_dfb.c:1128: error: 'vo_overlay_t' has no member named 'clip_bottom'
video_out_dfb.c:1170: error: 'vo_overlay_t' has no member named 'clip_color'
video_out_dfb.c:1259: error: 'vo_overlay_t' has no member named 'clip_color'

A diff against the current CVS and 0.9.23 for just that one file gives this:

--- video_out_dfb.c (0.9.23)  
+++ video_out_dfb.c (CVS)
@@ -1452,6 +1452,8 @@
                this->output_ratio = 2.0;
                break;
           default:
+               this->output_ratio = (double)(ratio >> 16) /
+                                    (double)(ratio & 0xffff);
                break;
      }
 }
@@ -1474,13 +1476,11 @@
                break;

           case VO_PROP_ASPECT_RATIO:
-               if (value >= 0 && value <= 4) {
-                    xprintf( this->xine, XINE_VERBOSITY_DEBUG,
-                             "video_out_dfb: setting aspect ratio to %i\n",
-                             value );
-                    vo_dfb_set_output_ratio( this, value );
-                    this->aspect_ratio = value;
-               }
+               xprintf( this->xine, XINE_VERBOSITY_DEBUG,
+                        "video_out_dfb: setting aspect ratio to %i\n",
+                        value );
+               vo_dfb_set_output_ratio( this, value );
+               this->aspect_ratio = value;
                break;

           case VO_PROP_BRIGHTNESS:
@@ -1545,7 +1545,7 @@

           case VO_PROP_ASPECT_RATIO:
                *min =  0;
-               *max = +4;
+               *max = +0xffffffff;
                break;

           case VO_PROP_BRIGHTNESS:
@@ -1881,7 +1881,7 @@
      }
 #endif

-     dfb_state_init( &this->state );
+     dfb_state_init( &this->state, NULL );

      this->mixer.b   =  0;
      this->mixer.c   = +128;

The differences between CVS and 0.9.22 are even greater.
Comment 1 Alexandre Hannud Abdo 2006-05-08 02:17:26 UTC
Hi!

I also noticed it breaks not only DirectFB-extra, but also all of SDL, since the SDL ebuilds in portage do not use the new API yet.

This is quite serious I think, since so many apps depend on SDL.

So, IMHO, this ebuild should be masked until an updated or patched versions of (at least) SDL and DirectFB-extra enter portage.

Hugs,
ale
Comment 2 Alexandre Hannud Abdo 2006-05-08 02:28:18 UTC
Ooops,

a correction... it probably only breaks SDL if you have the "directfb" useflag enabled (duh!), so it's not that bad, maybe it's preferred to let people who enable that useflag package.mask DirectFB-0.9.25.1 .

unless use of this useflag is very frequent, but I have no idea...

thanks (and sorry),
ale
Comment 3 Thomas S. Howard 2006-05-08 03:05:28 UTC
That's odd.  I had no problem with libsdl.
Comment 4 SpanKY gentoo-dev 2006-05-08 19:26:06 UTC
if this is broken in upstream cvs, it should be fixed there and then ask them for a new release to go with 0.9.25.1+
Comment 5 Thomas S. Howard 2006-05-09 14:12:39 UTC
(In reply to comment #4)
> if this is broken in upstream cvs, it should be fixed there and then ask them
> for a new release to go with 0.9.25.1+
> 

It's not that it's broken. DirectFB-extra works fine, as long as you don't use DirectFB-0.9.25+.  The problem is, they haven't bothered to put a new tarball together for DirectFB-extra, one that reflects the changes to the API. Until they do, DirectFB-0.9.25+ should probably be hard masked, since it's basically guaranteed to break stuff.
Comment 6 SpanKY gentoo-dev 2006-05-12 19:40:14 UTC
> It's not that it's broken. DirectFB-extra works fine, as long as you don't use
> DirectFB-0.9.25+.

then it's broken

ask them to release a new version
Comment 7 Thomas S. Howard 2006-05-19 07:42:12 UTC
(In reply to comment #6)
> > It's not that it's broken. DirectFB-extra works fine, as long as you don't use
> > DirectFB-0.9.25+.
> 
> then it's broken
> 
> ask them to release a new version
> 

No, it's broken when it's supposed to work with something and doesn't. It's not supposed to work with DirectFB-0.9.25+, therefore it behaves as it should: it doesn't work. BTW, they already know about this upstream. It's been discussed on the devel list.
Comment 8 Håvard Wall 2006-05-20 01:05:08 UTC
DirectFB-extra-0.9.25 is now released
Comment 9 Howard B. Golden 2006-05-20 10:31:31 UTC
(In reply to comment #8)
> DirectFB-extra-0.9.25 is now released

... And it compiles fine using the DirectFB-extra-0.9.23 ebuild renamed to 0.9.25
Comment 10 SpanKY gentoo-dev 2006-05-25 18:01:32 UTC
broken/dated/use whatever stupid semantic wording you prefer ... the point is we're not going to patch old versions

ive done the correct thing and version bumped it, thanks for the heads up H
Comment 11 SpanKY gentoo-dev 2006-05-25 18:01:32 UTC
broken/dated/use whatever stupid semantic wording you prefer ... the point is we're not going to patch old versions

ive done the correct thing and version bumped it, thanks for the heads up Håvard
Comment 12 Thomas S. Howard 2006-05-25 22:11:20 UTC
(In reply to comment #10)
> broken/dated/use whatever stupid semantic wording you prefer ... the point is
> we're not going to patch old versions
> 
> ive done the correct thing and version bumped it, thanks for the heads up
> H
Comment 13 Thomas S. Howard 2006-05-25 22:11:20 UTC
(In reply to comment #10)
> broken/dated/use whatever stupid semantic wording you prefer ... the point is
> we're not going to patch old versions
> 
> ive done the correct thing and version bumped it, thanks for the heads up
> Håvard
> 

Who said anything about patching old versions? I only put the diff up to show how *different* things were. If I'd been interested in patching it, I'd have submitted a patch. Sure, you could've compiled it, and I did, but my point was that it probably wasn't a good idea.