reenable directfb, also adopting the recent changes done to

libcairo2-dev's way of installing directfb-related files
This commit is contained in:
Gustavo Noronha
2008-11-05 00:06:21 +00:00
parent fbcaa4828d
commit c34c8604f1
7 changed files with 337 additions and 17 deletions

9
debian/changelog vendored
View File

@ -9,6 +9,9 @@ gtk+2.0 (2.14.4-1) UNRELEASED; urgency=low
debian/patches/020_immodules-files-d.patch,
debian/patches/021_loader-files-d.patch,
- update borrowed from Ubuntu's package
* debian/patches/071_correct_directfb_declarations.patch,
debian/patches/072_workaround_directfb_build.patch:
- borrowed from ubuntu
* debian/patches/033_treeview_resizing.patch,
debian/patches/095_gtk-im-module-setting.patch:
- removed; fixed upstream
@ -21,8 +24,10 @@ gtk+2.0 (2.14.4-1) UNRELEASED; urgency=low
- new patch, to fix build problem in print test
* debian/patches/071_jasper_link_fix.patch:
- make gdk-pixbuf-csource link correctly with libjasper
* debian/rules:
- FIXME: do not build directfb for now; we need a newer libdirectfb-dev
* debian/rules, debian/control:
- newer libcairo2-dev contains everything needed to build the directfb
target, so disable building with the dummy libcairo-directfb2-dev
- this makes us have to build depend on libcairo2-dev >= 1.6.4-6.1
[ Loic Minier ]
* Let libgtk2.0-dev recommend debhelper for dh_gtkmodules.

8
debian/control vendored
View File

@ -22,8 +22,7 @@ Build-Depends: debhelper (>= 5.0.22),
libxkbfile-dev,
libxinerama-dev (>= 1:1.0.1-4.1),
libxfixes-dev (>= 1:3.0.0-3),
libcairo2-dev (>= 1.6.0),
libcairo-directfb2-dev (>= 1.2.4-4),
libcairo2-dev (>= 1.6.4-6.1),
libtiff4-dev,
libjpeg62-dev,
libjasper-dev,
@ -191,7 +190,7 @@ Depends: libgtk2.0-0 (= ${binary:Version}),
libglib2.0-dev (>= 2.12.0),
libpango1.0-dev (>= 1.10.0-2),
libatk1.0-dev (>= 1.6.1-2),
libcairo2-dev,
libcairo2-dev (>= 1.6.4-6.1),
libx11-dev (>= 2:1.0.0-6),
libxext-dev (>= 1:1.0.1-2),
libxinerama-dev (>= 1:1.0.1-4.1),
@ -225,8 +224,7 @@ Depends: libgtk-directfb-2.0-0 (= ${binary:Version}),
${misc:Depends},
libgtk2.0-dev (= ${binary:Version}),
libgtk2.0-common,
libcairo-directfb2-dev,
libcairo2-dev (>= 1.2.0)
libcairo2-dev (>= 1.6.4-6.1)
Conflicts: libgtk+2.0-directfb-dev
Description: Development files for the GTK+ library - DirectFB version
The GTK+ is a multi-platform toolkit for creating graphical user

8
debian/control.in vendored
View File

@ -22,8 +22,7 @@ Build-Depends: debhelper (>= 5.0.22),
libxkbfile-dev,
libxinerama-dev (>= 1:1.0.1-4.1),
libxfixes-dev (>= 1:3.0.0-3),
libcairo2-dev (>= 1.6.0),
libcairo-directfb2-dev (>= 1.2.4-4),
libcairo2-dev (>= 1.6.4-6.1),
libtiff4-dev,
libjpeg62-dev,
libjasper-dev,
@ -191,7 +190,7 @@ Depends: @SHARED_PKG@ (= ${binary:Version}),
libglib2.0-dev (>= 2.12.0),
libpango1.0-dev (>= 1.10.0-2),
libatk1.0-dev (>= 1.6.1-2),
libcairo2-dev,
libcairo2-dev (>= 1.6.4-6.1),
libx11-dev (>= 2:1.0.0-6),
libxext-dev (>= 1:1.0.1-2),
libxinerama-dev (>= 1:1.0.1-4.1),
@ -225,8 +224,7 @@ Depends: @DIRECTFB_PKG@ (= ${binary:Version}),
${misc:Depends},
@DEV_PKG@ (= ${binary:Version}),
@COMMON_PKG@,
libcairo-directfb2-dev,
libcairo2-dev (>= 1.2.0)
libcairo2-dev (>= 1.6.4-6.1)
Conflicts: libgtk+2.0-directfb-dev
Description: Development files for the GTK+ library - DirectFB version
The GTK+ is a multi-platform toolkit for creating graphical user

View File

@ -0,0 +1,300 @@
Index: gtk+2.0-2.14.0/gdk/directfb/gdkgeometry-directfb.c
===================================================================
--- gtk+2.0-2.14.0.orig/gdk/directfb/gdkgeometry-directfb.c 2008-09-04 06:36:10.000000000 +0200
+++ gtk+2.0-2.14.0/gdk/directfb/gdkgeometry-directfb.c 2008-09-05 00:36:42.000000000 +0200
@@ -69,7 +69,7 @@
* brings in from offscreen areas are invalidated.
**/
void
-gdk_window_scroll (GdkWindow *window,
+_gdk_directfb_window_scroll (GdkWindow *window,
gint dx,
gint dy)
{
@@ -161,7 +161,7 @@
* Since: 2.8
**/
void
-gdk_window_move_region (GdkWindow *window,
+_gdk_directfb_window_move_region (GdkWindow *window,
const GdkRegion *region,
gint dx,
gint dy)
Index: gtk+2.0-2.14.0/gdk/directfb/gdkwindow-directfb.c
===================================================================
--- gtk+2.0-2.14.0.orig/gdk/directfb/gdkwindow-directfb.c 2008-09-04 06:36:10.000000000 +0200
+++ gtk+2.0-2.14.0/gdk/directfb/gdkwindow-directfb.c 2008-09-05 00:36:42.000000000 +0200
@@ -33,6 +33,7 @@
#include "config.h"
#include "gdk.h"
+#include "gdkwindowimpl.h"
#include "gdkwindow.h"
#include "gdkdirectfb.h"
@@ -67,6 +68,8 @@
static void gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass);
static void gdk_window_impl_directfb_finalize (GObject *object);
+static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
+
typedef struct
{
GdkWindowChildChanged changed;
@@ -220,6 +223,13 @@
NULL
};
+ const GInterfaceInfo window_impl_info =
+ {
+ (GInterfaceInitFunc) gdk_window_impl_iface_init,
+ NULL,
+ NULL
+ };
+
object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
"GdkWindowImplDirectFB",
&object_info, 0);
@@ -227,6 +237,9 @@
GDK_TYPE_PAINTABLE,
&paintable_info);
+ g_type_add_interface_static (object_type,
+ GDK_TYPE_WINDOW_IMPL,
+ &window_impl_info);
}
return object_type;
@@ -406,6 +419,7 @@
_gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL);
private = GDK_WINDOW_OBJECT (_gdk_parent_root);
+ private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
private->window_type = GDK_WINDOW_ROOT;
@@ -1231,7 +1245,7 @@
}
void
-gdk_window_show_unraised (GdkWindow *window)
+gdk_directfb_window_show_unraised (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1241,7 +1255,7 @@
}
void
-gdk_window_show (GdkWindow *window)
+gdk_directfb_window_show (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1251,7 +1265,7 @@
}
void
-gdk_window_hide (GdkWindow *window)
+gdk_directfb_window_hide (GdkWindow *window)
{
GdkWindowObject *private;
GdkWindowImplDirectFB *impl;
@@ -1300,7 +1314,7 @@
}
void
-gdk_window_withdraw (GdkWindow *window)
+gdk_directfb_window_withdraw (GdkWindow *window)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1309,7 +1323,7 @@
}
void
-gdk_window_move (GdkWindow *window,
+gdk_directfb_window_move (GdkWindow *window,
gint x,
gint y)
{
@@ -1354,7 +1368,7 @@
}
void
-gdk_window_resize (GdkWindow *window,
+gdk_directfb_window_resize (GdkWindow *window,
gint width,
gint height)
{
@@ -1440,7 +1454,7 @@
}
void
-gdk_window_move_resize (GdkWindow *window,
+gdk_directfb_window_move_resize (GdkWindow *window,
gint x,
gint y,
gint width,
@@ -1511,7 +1525,7 @@
}
void
-_gdk_window_reparent (GdkWindow *window,
+gdk_directfb_window_reparent (GdkWindow *window,
GdkWindow *new_parent,
gint x,
gint y)
@@ -1744,7 +1758,7 @@
}
void
-gdk_window_raise (GdkWindow *window)
+gdk_window_directfb_raise (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1775,7 +1789,7 @@
}
void
-gdk_window_lower (GdkWindow *window)
+gdk_window_directfb_lower (GdkWindow *window)
{
GdkWindowImplDirectFB *impl;
@@ -1908,7 +1922,7 @@
}
void
-gdk_window_set_background (GdkWindow *window,
+gdk_directfb_window_set_background (GdkWindow *window,
const GdkColor *color)
{
GdkWindowObject *private;
@@ -1931,7 +1945,7 @@
}
void
-gdk_window_set_back_pixmap (GdkWindow *window,
+gdk_directfb_window_set_back_pixmap (GdkWindow *window,
GdkPixmap *pixmap,
gint parent_relative)
{
@@ -1973,7 +1987,7 @@
}
void
-gdk_window_set_cursor (GdkWindow *window,
+gdk_directfb_window_set_cursor (GdkWindow *window,
GdkCursor *cursor)
{
GdkWindowImplDirectFB *impl;
@@ -2012,7 +2026,7 @@
}
void
-gdk_window_get_geometry (GdkWindow *window,
+gdk_directfb_window_get_geometry (GdkWindow *window,
gint *x,
gint *y,
gint *width,
@@ -2079,7 +2093,7 @@
}
gboolean
-gdk_window_get_origin (GdkWindow *window,
+gdk_directfb_window_get_origin (GdkWindow *window,
gint *x,
gint *y)
{
@@ -2216,7 +2230,7 @@
}
GdkEventMask
-gdk_window_get_events (GdkWindow *window)
+gdk_directfb_window_get_events (GdkWindow *window)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
@@ -2227,7 +2241,7 @@
}
void
-gdk_window_set_events (GdkWindow *window,
+gdk_directfb_window_set_events (GdkWindow *window,
GdkEventMask event_mask)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -2241,7 +2255,7 @@
}
void
-gdk_window_shape_combine_mask (GdkWindow *window,
+gdk_directfb_window_shape_combine_mask (GdkWindow *window,
GdkBitmap *mask,
gint x,
gint y)
@@ -2257,7 +2271,7 @@
}
void
-gdk_window_shape_combine_region (GdkWindow *window,
+gdk_directfb_window_shape_combine_region (GdkWindow *window,
const GdkRegion *shape_region,
gint offset_x,
gint offset_y)
@@ -2585,12 +2599,12 @@
}
void
-gdk_window_set_child_shapes (GdkWindow *window)
+gdk_directfb_window_set_child_shapes (GdkWindow *window)
{
}
void
-gdk_window_merge_child_shapes (GdkWindow *window)
+gdk_directfb_window_merge_child_shapes (GdkWindow *window)
{
}
@@ -2605,7 +2619,7 @@
}
gboolean
-gdk_window_set_static_gravities (GdkWindow *window,
+gdk_directfb_window_set_static_gravities (GdkWindow *window,
gboolean use_static)
{
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
@@ -3281,6 +3295,29 @@
{
}
+static void
+gdk_window_impl_iface_init (GdkWindowImplIface *iface)
+{
+ iface->show = gdk_directfb_window_show;
+ iface->hide = gdk_directfb_window_hide;
+ iface->withdraw = gdk_directfb_window_withdraw;
+ iface->set_events = gdk_directfb_window_set_events;
+ iface->get_events = gdk_directfb_window_get_events;
+ iface->raise = gdk_window_directfb_raise;
+ iface->lower = gdk_window_directfb_lower;
+ iface->move_resize = gdk_directfb_window_move_resize;
+ iface->set_background = gdk_directfb_window_set_background;
+ iface->set_back_pixmap = gdk_directfb_window_set_back_pixmap;
+ iface->reparent = gdk_directfb_window_reparent;
+ iface->set_cursor = gdk_directfb_window_set_cursor;
+ iface->get_geometry = gdk_directfb_window_get_geometry;
+ iface->get_origin = gdk_directfb_window_get_origin;
+ iface->shape_combine_mask = gdk_directfb_window_shape_combine_mask;
+ iface->shape_combine_region = gdk_directfb_window_shape_combine_region;
+ iface->set_child_shapes = gdk_directfb_window_set_child_shapes;
+ iface->merge_child_shapes = gdk_directfb_window_merge_child_shapes;
+ iface->set_static_gravities = gdk_directfb_window_set_static_gravities;
+}
#define __GDK_WINDOW_X11_C__
#include "gdkaliasdef.c"

View File

@ -0,0 +1,20 @@
Index: gtk+2.0-2.14.0/gdk/directfb/gdktestutils-directfb.c
===================================================================
--- gtk+2.0-2.14.0.orig/gdk/directfb/gdktestutils-directfb.c 2008-09-04 06:36:10.000000000 +0200
+++ gtk+2.0-2.14.0/gdk/directfb/gdktestutils-directfb.c 2008-09-05 00:36:44.000000000 +0200
@@ -175,7 +175,6 @@
evt.clazz = DFEC_WINDOW;
evt.type = (key_pressrelease == GDK_KEY_PRESS) ? DWET_KEYDOWN : DWET_KEYUP;
- evt.flags = DWEF_NONE;
evt.window_id = impl->dfb_id;
evt.x = MAX(x, 0);
evt.y = MAX(y, 0);
@@ -241,7 +240,6 @@
evt.clazz = DFEC_WINDOW;
evt.type = (button_pressrelease == GDK_BUTTON_PRESS) ? DWET_BUTTONDOWN : DWET_BUTTONUP;
- evt.flags = DWEF_NONE;
evt.window_id = impl->dfb_id;
evt.x = MAX(x, 0);
evt.y = MAX(y, 0);

View File

@ -19,5 +19,7 @@
060_ignore-random-icons.patch
070_mandatory-relibtoolize.patch
071_jasper_link_fix.patch
071_correct_directfb_declarations.patch
072_workaround_directfb_build.patch
091_workaround_no_gtk_init_incorrect_display.patch
092_fix_printtest_include.patch

7
debian/rules vendored
View File

@ -75,9 +75,7 @@ ALL_PKGS := $(BINARY_INDEP_PKGS) $(BINARY_ARCH_PKGS)
# list of flavors we build; each gets a builddir, a configure pass (configure
# args are defined below), a build pass, and an install pass (in two steps)
# Note: the shared flavor is required
# FIXME: readd directfb as soon as libdirectfb-dev is updated to the 1.2.x
# series
FLAVORS := shared static
FLAVORS := directfb shared static
# list of flavors to run the test suite on
# don't run the directfb testsuite on kfreebsd as it hangs; see #431477
@ -342,8 +340,7 @@ binary-arch: build $(maybe_check) install $(call dh_subst_files,$(BINARY_ARCH_PK
cat debian/*/DEBIAN/shlibs | \
sed -n -r -e 's/(([^ ]+: )?([^ ]+) ([^ ]+)) .*/\1/p' \
> debian/shlibs.local
dh_shlibdeps -s -N$(UDEB_PKG)
dh_shlibdeps -p$(UDEB_PKG) -l/$(LIBDIR)/libcairo-directfb/lib/
dh_shlibdeps
-rm -f debian/shlibs.local
dh_gencontrol -s
dh_md5sums -s