diff --git a/ruby-gnome2-all-0.16.0-newpoppler.patch b/ruby-gnome2-all-0.16.0-newpoppler.patch new file mode 100644 index 0000000..09488eb --- /dev/null +++ b/ruby-gnome2-all-0.16.0-newpoppler.patch @@ -0,0 +1,100 @@ +--- ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c.newpoppler 2006-12-29 22:17:28.000000000 +0900 ++++ ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c 2007-08-04 02:33:31.000000000 +0900 +@@ -136,7 +136,7 @@ + static VALUE + page_render_selection(VALUE self, VALUE cairo, + VALUE selection, VALUE rb_old_selection, +- VALUE glyph_color, VALUE background_color) ++ VALUE style, VALUE glyph_color, VALUE background_color) + { + PopplerRectangle *old_selection = NULL; + +@@ -145,6 +145,7 @@ + poppler_page_render_selection(RVAL2GOBJ(self), RVAL2CRCONTEXT(cairo), + RVAL2RECT(selection), + old_selection, ++ RVAL2SELSTYLE(style), + RVAL2COLOR(glyph_color), + RVAL2COLOR(background_color)); + return Qnil; +@@ -159,17 +160,23 @@ + page_render_selection_to_pixbuf(VALUE self, VALUE scale, VALUE rotation, + VALUE pixbuf, VALUE selection, + VALUE rb_old_selection, ++#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF ++ VALUE style, ++#endif + VALUE glyph_color, VALUE background_color) + { + PopplerRectangle *old_selection = NULL; + + if (!NIL_P(rb_old_selection)) + old_selection = RVAL2RECT(rb_old_selection); +- poppler_page_render_selection_to_pixbuf(RVAL2GOBJ(self), NUM2DBL(scale), ++ poppler_page_render_selection_to_pixbuf(SELF(self), NUM2DBL(scale), + NUM2INT(rotation), + RVAL2GOBJ(pixbuf), + RVAL2RECT(selection), + old_selection, ++#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF ++ RVAL2SELSTYLE(style), ++#endif + RVAL2COLOR(glyph_color), + RVAL2COLOR(background_color)); + return Qnil; +@@ -178,21 +185,34 @@ + static VALUE + page_render_selection_generic(int argc, VALUE *argv, VALUE self) + { +- if (argc == 5) { ++ if (argc == 6) { + #if defined(RB_POPPLER_CAIRO_AVAILABLE) && \ + defined(HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF) + return page_render_selection(self, argv[0], argv[1], argv[2], +- argv[3], argv[4]); ++ argv[3], argv[4], argv[5]); + #else + rb_raise(rb_eArgError, "cairo is not available"); + #endif ++#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF ++ } else if (argc == 8) { ++ return page_render_selection_to_pixbuf(self, argv[0], argv[1], ++ argv[2], argv[3], argv[4], ++ argv[5], argv[6], argv[7]); ++#else + } else if (argc == 7) { + return page_render_selection_to_pixbuf(self, argv[0], argv[1], + argv[2], argv[3], argv[4], + argv[5], argv[6]); ++#endif + } else { + rb_raise(rb_eArgError, +- "wrong number of arguments (%d for 5 or 7)", argc); ++ "wrong number of arguments (%d for 5 or %d)", argc, ++#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF ++ 8 ++#else ++ 7 ++#endif ++ ); + } + } + +--- ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h.newpoppler 2006-12-29 22:17:28.000000000 +0900 ++++ ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h 2007-08-04 02:29:57.000000000 +0900 +@@ -33,6 +33,7 @@ + # include + #endif + ++#define SELF(self) (POPPLER_PAGE(RVAL2GOBJ(self))) + #define RECT2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_RECTANGLE)) + #define RVAL2RECT(obj) ((PopplerRectangle *)RVAL2BOXED(obj, POPPLER_TYPE_RECTANGLE)) + #define REGION2RVAL(obj) (BOXED2RVAL(obj, GDK_TYPE_REGION)) +@@ -41,6 +42,7 @@ + #define DESTTYPE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_DEST_TYPE)) + #define ACTIONTYPE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_ACTION_TYPE)) + #define RVAL2ACTIONTYPE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_ACTION_TYPE)) ++#define RVAL2SELSTYLE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_SELECTION_STYLE)) + #define RVAL2COLOR(obj) ((GdkColor *)RVAL2BOXED(obj, GDK_TYPE_COLOR)) + + #define ACTION2RVAL(obj) (rb_poppler_ruby_object_from_action(obj)) diff --git a/ruby-gnome2-all-0.16.0-typedef.patch b/ruby-gnome2-all-0.16.0-typedef.patch new file mode 100644 index 0000000..3899c4c --- /dev/null +++ b/ruby-gnome2-all-0.16.0-typedef.patch @@ -0,0 +1,23 @@ +--- ruby-gnome2-all-0.16.0/glib/src/rbgobj_boxed.c.typedef 2006-12-29 22:17:28.000000000 +0900 ++++ ruby-gnome2-all-0.16.0/glib/src/rbgobj_boxed.c 2007-08-04 02:13:43.000000000 +0900 +@@ -145,7 +145,8 @@ + + gpointer + rbgobj_boxed_get(obj, gtype) +- VALUE obj, gtype; ++ VALUE obj; ++ GType gtype; + { + boxed_holder* holder; + Data_Get_Struct(obj, boxed_holder, holder); +--- ruby-gnome2-all-0.16.0/gtk/src/rbgtk.h.typedef 2006-12-29 22:17:28.000000000 +0900 ++++ ruby-gnome2-all-0.16.0/gtk/src/rbgtk.h 2007-08-04 02:17:36.000000000 +0900 +@@ -115,7 +115,7 @@ + */ + typedef void (*rbgtkiter_set_value_func)(void *model, GtkTreeIter *iter, + gint column, GValue *value); +-extern void rbgtk_register_treeiter_set_value_func(VALUE klass, rbgtkiter_set_value_func); ++extern void rbgtk_register_treeiter_set_value_func(GType klass, rbgtkiter_set_value_func); + + /* + * Gtk::SelectionData diff --git a/ruby-gnome2.spec b/ruby-gnome2.spec index c4a6cc8..4e420b8 100644 --- a/ruby-gnome2.spec +++ b/ruby-gnome2.spec @@ -3,7 +3,7 @@ Name: ruby-gnome2 Version: 0.16.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Ruby binding of libgnome/libgnomeui-2.x Group: System Environment/Libraries @@ -12,6 +12,8 @@ License: LGPL URL: http://ruby-gnome2.sourceforge.jp/ Source0: http://downloads.sourceforge.net/%{name}/%{name}-all-%{version}.tar.gz Patch0: ruby-gnome2-script.patch +Patch10: ruby-gnome2-all-0.16.0-typedef.patch +Patch11: ruby-gnome2-all-0.16.0-newpoppler.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ruby ruby-devel gtk2-devel libgnome-devel libgnomeui-devel @@ -417,6 +419,8 @@ Ruby/VTE is a Ruby binding of VTE. %prep %setup -q -n %{name}-all-%{version} %patch0 -p1 +%patch10 -p1 -b .typedef +%patch11 -p1 -b .newpoppler #Because of an error in upstream packaging there is a second ruby-gnome2 dir inside so we delete it #%{__rm} -rf %{name} @@ -610,6 +614,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Aug 4 2007 Mamoru Tasaka 0.16.0-8 +- Apply patch extracted from CVS to build glib gtk poppler + * Fri Jul 20 2007 Jesse Keating 0.16.0-7 - Rebuild against new firefox