Author: arekm Date: Sun Nov 13 13:30:05 2011 GMT Module: packages Tag: HEAD ---- Log message: - rel 4; fix build with poppler >= 0.17 (from fc)
---- Files affected: packages/xournal: xournal.spec (1.17 -> 1.18) , xournal-poppler-api.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/xournal/xournal.spec diff -u packages/xournal/xournal.spec:1.17 packages/xournal/xournal.spec:1.18 --- packages/xournal/xournal.spec:1.17 Sun Nov 13 11:57:49 2011 +++ packages/xournal/xournal.spec Sun Nov 13 14:30:00 2011 @@ -3,12 +3,13 @@ Summary(pl.UTF-8): Xournal - aplikacja do tworzenia notatek, szkicowania i prowadzenia dziennika pisakiem Name: xournal Version: 0.4.5 -Release: 3 +Release: 4 License: GPL Group: X11/Applications Source0: http://downloads.sourceforge.net/xournal/%{name}-%{version}.tar.gz # Source0-md5: 795e4396ded2b67766eb2926be1fb4a9 Patch0: %{name}-zlib.patch +Patch1: %{name}-poppler-api.patch URL: http://xournal.sourceforge.net/ BuildRequires: autoconf BuildRequires: automake @@ -33,6 +34,7 @@ %prep %setup -q %patch0 -p0 +%patch1 -p0 %build %{__aclocal} @@ -70,6 +72,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.18 2011/11/13 13:30:00 arekm +- rel 4; fix build with poppler >= 0.17 (from fc) + Revision 1.17 2011/11/13 10:57:49 arekm - release 3 ================================================================ Index: packages/xournal/xournal-poppler-api.patch diff -u /dev/null packages/xournal/xournal-poppler-api.patch:1.1 --- /dev/null Sun Nov 13 14:30:05 2011 +++ packages/xournal/xournal-poppler-api.patch Sun Nov 13 14:30:00 2011 @@ -0,0 +1,156 @@ +--- src/xo-file.c.org 2009-09-28 17:36:05.000000000 -0600 ++++ src/xo-file.c 2011-07-19 09:56:00.264352741 -0600 +@@ -975,6 +975,140 @@ + g_free(req); + } + ++/* ++ * Copied from http://cgit.freedesktop.org/poppler/poppler/tree/glib/poppler-page.cc?h=poppler-0.16#n617 ++ * as a temporary workaround to poppler removing depreciated functions while we wait for ++ * upstream to rewrite against cairo ++ */ ++static void ++copy_cairo_surface_to_pixbuf (cairo_surface_t *surface, GdkPixbuf *pixbuf) ++{ ++ int cairo_width, cairo_height, cairo_rowstride; ++ unsigned char *pixbuf_data, *dst, *cairo_data; ++ int pixbuf_rowstride, pixbuf_n_channels; ++ unsigned int *src; ++ int x, y; ++ ++ cairo_width = cairo_image_surface_get_width (surface); ++ cairo_height = cairo_image_surface_get_height (surface); ++ cairo_rowstride = cairo_image_surface_get_stride (surface); ++ cairo_data = cairo_image_surface_get_data (surface); ++ ++ pixbuf_data = gdk_pixbuf_get_pixels (pixbuf); ++ pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf); ++ pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf); ++ ++ if (cairo_width > gdk_pixbuf_get_width (pixbuf)) ++ cairo_width = gdk_pixbuf_get_width (pixbuf); ++ if (cairo_height > gdk_pixbuf_get_height (pixbuf)) ++ cairo_height = gdk_pixbuf_get_height (pixbuf); ++ for (y = 0; y < cairo_height; y++) ++ { ++ src = (unsigned int *) (cairo_data + y * cairo_rowstride); ++ dst = pixbuf_data + y * pixbuf_rowstride; ++ for (x = 0; x < cairo_width; x++) ++ { ++ dst[0] = (*src >> 16) & 0xff; ++ dst[1] = (*src >> 8) & 0xff; ++ dst[2] = (*src >> 0) & 0xff; ++ if (pixbuf_n_channels == 4) ++ dst[3] = (*src >> 24) & 0xff; ++ dst += pixbuf_n_channels; ++ src++; ++ } ++ } ++} ++ ++static void ++_poppler_page_render_to_pixbuf (PopplerPage *page, ++ int src_x, int src_y, ++ int src_width, int src_height, ++ double scale, ++ int rotation, ++ gboolean printing, ++ GdkPixbuf *pixbuf) ++{ ++ cairo_t *cr; ++ cairo_surface_t *surface; ++ ++ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, ++ src_width, src_height); ++ cr = cairo_create (surface); ++ cairo_save (cr); ++ switch (rotation) { ++ case 90: ++ cairo_translate (cr, src_x + src_width, -src_y); ++ break; ++ case 180: ++ cairo_translate (cr, src_x + src_width, src_y + src_height); ++ break; ++ case 270: ++ cairo_translate (cr, -src_x, src_y + src_height); ++ break; ++ default: ++ cairo_translate (cr, -src_x, -src_y); ++ } ++ ++ if (scale != 1.0) ++ cairo_scale (cr, scale, scale); ++ ++ if (rotation != 0) ++ cairo_rotate (cr, rotation * G_PI / 180.0); ++ ++ if (printing) ++ poppler_page_render_for_printing (page, cr); ++ else ++ poppler_page_render (page, cr); ++ cairo_restore (cr); ++ ++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); ++ cairo_set_source_rgb (cr, 1., 1., 1.); ++ cairo_paint (cr); ++ ++ cairo_destroy (cr); ++ ++ copy_cairo_surface_to_pixbuf (surface, pixbuf); ++ cairo_surface_destroy (surface); ++} ++ ++/** ++ * poppler_page_render_to_pixbuf: ++ * @page: the page to render from ++ * @src_x: x coordinate of upper left corner ++ * @src_y: y coordinate of upper left corner ++ * @src_width: width of rectangle to render ++ * @src_height: height of rectangle to render ++ * @scale: scale specified as pixels per point ++ * @rotation: rotate the document by the specified degree ++ * @pixbuf: pixbuf to render into ++ * ++ * First scale the document to match the specified pixels per point, ++ * then render the rectangle given by the upper left corner at ++ * (src_x, src_y) and src_width and src_height. ++ * This function is for rendering a page that will be displayed. ++ * If you want to render a page that will be printed use ++ * poppler_page_render_to_pixbuf_for_printing() instead ++ * ++ * Deprecated: 0.16 ++ **/ ++void ++poppler_page_render_to_pixbuf (PopplerPage *page, ++ int src_x, int src_y, ++ int src_width, int src_height, ++ double scale, ++ int rotation, ++ GdkPixbuf *pixbuf) ++{ ++ g_return_if_fail (POPPLER_IS_PAGE (page)); ++ g_return_if_fail (scale > 0.0); ++ g_return_if_fail (pixbuf != NULL); ++ ++ _poppler_page_render_to_pixbuf (page, src_x, src_y, ++ src_width, src_height, ++ scale, rotation, ++ FALSE, ++ pixbuf); ++} + /* process a bg PDF request from the queue, and recurse */ + + gboolean bgpdf_scheduler_callback(gpointer data) +--- src/xo-file.h.org 2009-09-27 16:45:53.000000000 -0600 ++++ src/xo-file.h 2011-07-19 09:54:00.557465100 -0600 +@@ -36,3 +36,10 @@ + void init_config_default(void); + void load_config_from_file(void); + void save_config_to_file(void); ++ ++void poppler_page_render_to_pixbuf (PopplerPage *page, ++ int src_x, int src_y, ++ int src_width, int src_height, ++ double scale, ++ int rotation, ++ GdkPixbuf *pixbuf); ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xournal/xournal.spec?r1=1.17&r2=1.18&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
