[dev-python/python-poppler] fix with poppler 0.18.1, bug 2956

This commit is contained in:
Sławomir Nizio
2012-01-13 19:38:29 +01:00
parent 37c7f4665c
commit 7403ef772d
7 changed files with 381 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
AUX python-poppler-0.12.1-75_74.diff 1814 RMD160 17a29ecc170b9e5677eb4effc7fd6848803bb771 SHA1 923484b9d95efbf10f594345d1f0d2017048363f SHA256 3df92cfdbc3f3b3868d9d52a44074e6d970aed84cbb6cdab88ab499cce61142f
AUX python-poppler-0.12.1-76_75.diff 2456 RMD160 5a511fe99ccabf070fc3bbd08e8041c4768b1966 SHA1 1f65d08f3fdbfeec81e0a91db6e248efe370b6d7 SHA256 08c01dff77985881ef1d9b90946d3c04e204688d6267154f5ca28ab2e4527bfb
AUX python-poppler-0.12.1-79_78.diff 1434 RMD160 2a4fd081808e8e749b458413af485d61c6d8a09c SHA1 da7244a5bb68bd47933f781721a9a35193fec9ef SHA256 d95a50df3f46d3a86f1ac2e60a179b336e0523435fa92180abfa7966dde8eb9a
AUX python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch 1667 RMD160 d91e79d3096cab1a3977745832f359a196a26b32 SHA1 7a5c8cbb9d8c0ed0d5b8a60ea46d0db5c70d985b SHA256 e2c60e30eb65d11c01c68ec31e6c1642c9297938cf642228ddc8be423388d40e
AUX python-poppler-0.12.1-poppler0.15.0-changes.patch 1415 RMD160 77c4b4c650b3f6e3cb2e3814c6b56c833d0a2cad SHA1 6b9e5274282e2e4eaf55ad1f61dab30097a0e7b6 SHA256 e216bf0dc6edba4e414ace0b1911e3e07d06bea5711ecd4378ec2df062b7d532
DIST pypoppler-0.12.1.tar.gz 318142 RMD160 d6c196d6bbbaa9ef96c2ea3a38eb6a89308bab15 SHA1 a8a92039911a7c4bbd995a46f88a1877bf88ab5c SHA256 322f183d24798a056f3005d1ab8e3ac27d8cfbbf0982725b323bbfec1bab5355
EBUILD python-poppler-0.12.1-r2.ebuild 1347 RMD160 2eb28848f0ddc01166905d103505495805112362 SHA1 838bda64fad72465b354df1fd999ef02c7cd6ece SHA256 ead9e92164ba98d14dde9de7e06c9423786d514c3cf223f14bc7c8f2da49138d
@@ -0,0 +1,73 @@
--- poppler.defs
+++ poppler.defs
@@ -1642,6 +1642,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_pixbuf")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("int" "src_x")
'("int" "src_y")
@@ -1657,6 +1658,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_pixbuf_for_printing")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("int" "src_x")
'("int" "src_y")
@@ -1672,12 +1674,14 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_thumbnail_pixbuf")
(return-type "GdkPixbuf*")
+ (unblock-threads #t)
)
(define-method render_selection_to_pixbuf
(of-object "PopplerPage")
(c-name "poppler_page_render_selection_to_pixbuf")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("gdouble" "scale")
'("int" "rotation")
@@ -1694,6 +1698,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
)
@@ -1703,6 +1708,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_for_printing")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
)
@@ -1712,12 +1718,14 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_thumbnail")
(return-type "cairo_surface_t*")
+ (unblock-threads #t)
)
(define-method render_selection
(of-object "PopplerPage")
(c-name "poppler_page_render_selection")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("cairo_t*" "cairo")
'("PopplerRectangle*" "selection")
@@ -1779,6 +1787,7 @@
(of-object "PopplerPage")
(c-name "poppler_page_render_to_ps")
(return-type "none")
+ (unblock-threads #t)
(parameters
'("PopplerPSFile*" "ps_file")
)
@@ -0,0 +1,66 @@
--- poppler.override
+++ poppler.override
@@ -600,3 +600,62 @@
return PycairoSurface_FromSurface(surface, NULL, NULL);
#endif
}
+%%
+override poppler_page_render_to_pixbuf kwargs
+static PyObject *
+_wrap_poppler_page_render_to_pixbuf(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "src_x", "src_y", "src_width",
+ "src_height", "scale", "rotation", NULL };
+ int src_x, src_y, src_width, src_height, rotation;
+ double scale;
+ GdkPixbuf *pixbuf = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iiiidi:Poppler.Page.render_to_pixbuf",
+ kwlist, &src_x, &src_y, &src_width,
+ &src_height, &scale, &rotation))
+ return NULL;
+
+ pyg_begin_allow_threads;
+
+ poppler_page_render_to_pixbuf(POPPLER_PAGE(self->obj), src_x, src_y,
+ src_width, src_height, scale,
+ rotation, pixbuf);
+
+ pyg_end_allow_threads;
+
+ return pygobject_new((GObject *)pixbuf);
+}
+%%
+override poppler_page_render_to_pixbuf_for_printing kwargs
+static PyObject *
+_wrap_poppler_page_render_to_pixbuf_for_printing(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "src_x", "src_y", "src_width",
+ "src_height", "scale", "rotation", NULL };
+ int src_x, src_y, src_width, src_height, rotation;
+ double scale;
+ GdkPixbuf *pixbuf = NULL;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "iiiidi:Poppler.Page.render_to_pixbuf_for_printing",
+ kwlist, &src_x, &src_y, &src_width,
+ &src_height, &scale, &rotation))
+ return NULL;
+
+ pyg_begin_allow_threads;
+
+ poppler_page_render_to_pixbuf_for_printing(POPPLER_PAGE(self->obj),
+ src_x, src_y, src_width,
+ src_height, scale,
+ rotation, pixbuf);
+
+ pyg_end_allow_threads;
+
+ return pygobject_new((GObject *)pixbuf);
+}
@@ -0,0 +1,52 @@
--- poppler.override
+++ poppler.override
@@ -266,6 +266,12 @@
import gobject.GObject as PyGObject_Type
import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
%%
+ignore
+poppler_page_free_link_mapping
+poppler_page_free_image_mapping
+poppler_page_free_form_field_mapping
+poppler_page_free_annot_mapping
+%%
ignore-glob
*_get_type
_*
@@ -359,7 +365,7 @@
item_list = poppler_page_get_link_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_LINK_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_link_mapping(item_list);
return ret;
}
%%
@@ -372,7 +378,7 @@
item_list = poppler_page_get_image_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_IMAGE_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_image_mapping(item_list);
return ret;
}
%%
@@ -385,7 +391,7 @@
item_list = poppler_page_get_form_field_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_FORM_FIELD_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_form_field_mapping(item_list);
return ret;
}
%%
@@ -398,7 +404,7 @@
item_list = poppler_page_get_annot_mapping(POPPLER_PAGE(self->obj));
ret = _glist_to_pylist_boxed(item_list, POPPLER_TYPE_ANNOT_MAPPING);
- g_list_free(item_list);
+ poppler_page_free_annot_mapping(item_list);
return ret;
}
%%
@@ -0,0 +1,65 @@
--- pypoppler-0.12.1/poppler.defs 2011-10-24 11:57:35.000000000 +0200
+++ pypoppler-0.12.1/poppler.defs 2011-10-24 12:01:28.000000000 +0200
@@ -1646,62 +1646,6 @@
(return-type "GType")
)
-(define-method render_to_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_render_to_pixbuf")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("int" "src_x")
- '("int" "src_y")
- '("int" "src_width")
- '("int" "src_height")
- '("double" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
-(define-method render_to_pixbuf_for_printing
- (of-object "PopplerPage")
- (c-name "poppler_page_render_to_pixbuf_for_printing")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("int" "src_x")
- '("int" "src_y")
- '("int" "src_width")
- '("int" "src_height")
- '("double" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- )
-)
-
-(define-method get_thumbnail_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_get_thumbnail_pixbuf")
- (return-type "GdkPixbuf*")
- (unblock-threads #t)
-)
-
-(define-method render_selection_to_pixbuf
- (of-object "PopplerPage")
- (c-name "poppler_page_render_selection_to_pixbuf")
- (return-type "none")
- (unblock-threads #t)
- (parameters
- '("gdouble" "scale")
- '("int" "rotation")
- '("GdkPixbuf*" "pixbuf")
- '("PopplerRectangle*" "selection")
- '("PopplerRectangle*" "old_selection")
- '("PopplerSelectionStyle" "style")
- '("GdkColor*" "glyph_color")
- '("GdkColor*" "background_color")
- )
-)
-
(define-method render
(of-object "PopplerPage")
(c-name "poppler_page_render")
@@ -0,0 +1,66 @@
--- poppler.defs
+++ poppler.defs
@@ -1760,6 +1760,12 @@
(return-type "int")
)
+(define-method get_label
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_label")
+ (return-type "gchar*")
+)
+
(define-method get_duration
(of-object "PopplerPage")
(c-name "poppler_page_get_duration")
@@ -1805,9 +1811,15 @@
(of-object "PopplerPage")
(c-name "poppler_page_get_text")
(return-type "char*")
+)
+
+(define-method get_selected_text
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_selected_text")
+ (return-type "char*")
(parameters
'("PopplerSelectionStyle" "style")
- '("PopplerRectangle*" "rect")
+ '("PopplerRectangle*" "selection")
)
)
@@ -1895,6 +1907,16 @@
)
)
+(define-function poppler_page_add_annot
+ (of-object "PopplerPage")
+ (c-name "poppler_page_add_annot")
+ (return-type "none")
+ (parameters
+ '("PopplerAnnot*" "annot")
+ '("GList*" "list")
+ )
+)
+
(define-method get_crop_box
(of-object "PopplerPage")
(c-name "poppler_page_get_crop_box")
@@ -1904,6 +1926,16 @@
)
)
+(define-method get_text_layout
+ (of-object "PopplerPage")
+ (c-name "poppler_page_get_text_layout")
+ (return-type "gboolean")
+ (parameters
+ '("PopplerRectangle**" "rectangles")
+ '("guint*" "n_rectangles")
+ )
+)
+
(define-function poppler_rectangle_get_type
(c-name "poppler_rectangle_get_type")
(return-type "GType")
@@ -0,0 +1,52 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-python/python-poppler/python-poppler-0.12.1-r2.ebuild,v 1.1 2011/12/14 18:52:33 neurogeek Exp $
EAPI="3"
PYTHON_DEPEND="2:2.6"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="2.4 2.5 3.* *-jython"
PYTHON_EXPORT_PHASE_FUNCTIONS="1"
inherit eutils libtool python
DESCRIPTION="Python bindings to the Poppler PDF library"
HOMEPAGE="http://launchpad.net/poppler-python"
SRC_URI="http://launchpad.net/poppler-python/trunk/development/+download/pypoppler-${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~x86-fbsd"
IUSE="examples"
S=${WORKDIR}/pypoppler-${PV}
RDEPEND=">=app-text/poppler-0.18.0[cairo]
>=dev-python/pycairo-1.8.4
dev-python/pygobject:2
dev-python/pygtk:2"
DEPEND="${RDEPEND}"
src_prepare() {
# http://pkgs.fedoraproject.org/gitweb/?p=pypoppler.git;a=tree
epatch \
"${FILESDIR}"/${P}-75_74.diff \
"${FILESDIR}"/${P}-79_78.diff \
"${FILESDIR}"/${P}-poppler0.15.0-changes.patch \
"${FILESDIR}"/${P}-poppler-0.18.0-minimal-fix.patch
elibtoolize
python_copy_sources
}
src_install() {
python_src_install
python_clean_installation_image
dodoc NEWS || die
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins demo/demo-poppler.py || die
fi
}