diff --git a/dev-python/python-poppler/Manifest b/dev-python/python-poppler/Manifest new file mode 100644 index 000000000..a7d467142 --- /dev/null +++ b/dev-python/python-poppler/Manifest @@ -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 diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff new file mode 100644 index 000000000..47b7a678e --- /dev/null +++ b/dev-python/python-poppler/files/python-poppler-0.12.1-75_74.diff @@ -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") + ) + diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff new file mode 100644 index 000000000..94f4543e8 --- /dev/null +++ b/dev-python/python-poppler/files/python-poppler-0.12.1-76_75.diff @@ -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); ++} + diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff b/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff new file mode 100644 index 000000000..161ec588e --- /dev/null +++ b/dev-python/python-poppler/files/python-poppler-0.12.1-79_78.diff @@ -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; + } + %% + diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch new file mode 100644 index 000000000..2099e0af1 --- /dev/null +++ b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler-0.18.0-minimal-fix.patch @@ -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") diff --git a/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch new file mode 100644 index 000000000..a480cfa43 --- /dev/null +++ b/dev-python/python-poppler/files/python-poppler-0.12.1-poppler0.15.0-changes.patch @@ -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") diff --git a/dev-python/python-poppler/python-poppler-0.12.1-r2.ebuild b/dev-python/python-poppler/python-poppler-0.12.1-r2.ebuild new file mode 100644 index 000000000..839f11172 --- /dev/null +++ b/dev-python/python-poppler/python-poppler-0.12.1-r2.ebuild @@ -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 +}