diff options
author | 2009-11-14 14:17:04 +0000 | |
---|---|---|
committer | 2009-11-14 14:17:04 +0000 | |
commit | 18c64cbddf888bbcd2a72e39d49a293a4683ddea (patch) | |
tree | a6e87057f3bd9e454e6a13d2bbbc1eafba7cc1d3 /app-text/xournal | |
parent | Commit the partial cleanup of p.mask i did so far. (diff) | |
download | gentoo-2-18c64cbddf888bbcd2a72e39d49a293a4683ddea.tar.gz gentoo-2-18c64cbddf888bbcd2a72e39d49a293a4683ddea.tar.bz2 gentoo-2-18c64cbddf888bbcd2a72e39d49a293a4683ddea.zip |
Fix alignment bug that causes out of memory aborts at PDF export. Bug #287701.
(Portage version: 2.1.7.1/cvs/Linux x86_64)
Diffstat (limited to 'app-text/xournal')
-rw-r--r-- | app-text/xournal/ChangeLog | 9 | ||||
-rw-r--r-- | app-text/xournal/files/xournal-0.4.5-xoprint-len.patch | 88 | ||||
-rw-r--r-- | app-text/xournal/xournal-0.4.5-r1.ebuild (renamed from app-text/xournal/xournal-0.4.2.1.ebuild) | 23 |
3 files changed, 109 insertions, 11 deletions
diff --git a/app-text/xournal/ChangeLog b/app-text/xournal/ChangeLog index 158f01f18d8b..8a17551df4e5 100644 --- a/app-text/xournal/ChangeLog +++ b/app-text/xournal/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for app-text/xournal # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-text/xournal/ChangeLog,v 1.10 2009/11/01 17:48:37 rbu Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-text/xournal/ChangeLog,v 1.11 2009/11/14 14:17:04 rbu Exp $ + +*xournal-0.4.5-r1 (14 Nov 2009) + + 14 Nov 2009; Robert Buchholz <rbu@gentoo.org> -xournal-0.4.2.1.ebuild, + +xournal-0.4.5-r1.ebuild, +files/xournal-0.4.5-xoprint-len.patch: + Fix alignment bug that causes out of memory aborts at PDF export. + Bug #287701. 01 Nov 2009; Robert Buchholz <rbu@gentoo.org> xournal-0.4.5.ebuild: Override src_configure of the gnome2 eclass because of a QA warning diff --git a/app-text/xournal/files/xournal-0.4.5-xoprint-len.patch b/app-text/xournal/files/xournal-0.4.5-xoprint-len.patch new file mode 100644 index 000000000000..56105af6cf4b --- /dev/null +++ b/app-text/xournal/files/xournal-0.4.5-xoprint-len.patch @@ -0,0 +1,88 @@ +--- a/src/xo-print.c ++++ b/src/xo-print.c +@@ -761,7 +761,7 @@ int pdf_draw_bitmap_background(struct Page *pg, GString *str, + + make_xref(xref, xref->last+1, pdfbuf->len); + g_string_append_printf(pdfbuf, +- "%d 0 obj\n<< /Length %d /Filter /FlateDecode /Type /Xobject " ++ "%d 0 obj\n<< /Length %zu /Filter /FlateDecode /Type /Xobject " + "/Subtype /Image /Width %d /Height %d /ColorSpace /DeviceRGB " + "/BitsPerComponent 8 >> stream\n", + xref->last, zpix->len, width, height); +@@ -840,8 +840,10 @@ void embed_pdffont(GString *pdfbuf, struct XrefTable *xref, struct PdfFont *font + gboolean fallback, is_binary; + guchar encoding[256]; + gushort glyphs[256]; +- int i, j, num, len1, len2; +- gsize len; ++ int i, j, num; ++ guint32 len1, len2; ++ guint32 tt_len; ++ gsize t1_len; + TrueTypeFont *ttfnt; + char *seg1, *seg2; + char *fontdata, *p; +@@ -862,14 +864,14 @@ void embed_pdffont(GString *pdfbuf, struct XrefTable *xref, struct PdfFont *font + } + font->num_glyphs_used = num-1; + if (OpenTTFont(font->filename, 0, &ttfnt) == SF_OK) { +- if (CreateTTFromTTGlyphs_tomemory(ttfnt, (guint8**)&fontdata, &len, glyphs, encoding, num, ++ if (CreateTTFromTTGlyphs_tomemory(ttfnt, (guint8**)&fontdata, &tt_len, glyphs, encoding, num, + 0, NULL, TTCF_AutoName | TTCF_IncludeOS2) == SF_OK) { + make_xref(xref, xref->last+1, pdfbuf->len); + nobj_fontprog = xref->last; + g_string_append_printf(pdfbuf, +- "%d 0 obj\n<< /Length %d /Length1 %d >> stream\n", +- nobj_fontprog, (int)len, (int)len); +- g_string_append_len(pdfbuf, fontdata, len); ++ "%d 0 obj\n<< /Length %u /Length1 %u >> stream\n", ++ nobj_fontprog, tt_len, tt_len); ++ g_string_append_len(pdfbuf, fontdata, tt_len); + g_string_append(pdfbuf, "endstream\nendobj\n"); + g_free(fontdata); + } +@@ -879,7 +881,7 @@ void embed_pdffont(GString *pdfbuf, struct XrefTable *xref, struct PdfFont *font + else fallback = TRUE; + } else { + // embed the font file: Type1 case +- if (g_file_get_contents(font->filename, &fontdata, &len, NULL) && len>=8) { ++ if (g_file_get_contents(font->filename, &fontdata, &t1_len, NULL) && t1_len>=8) { + if (fontdata[0]==(char)0x80 && fontdata[1]==(char)0x01) { + is_binary = TRUE; + len1 = pfb_get_length((unsigned char *)fontdata+2); +@@ -898,7 +900,7 @@ void embed_pdffont(GString *pdfbuf, struct XrefTable *xref, struct PdfFont *font + if (*p=='\n' || *p=='\r') p++; + if (*p=='\n' || *p=='\r') p++; + len1 = p-fontdata; +- p = g_strrstr_len(fontdata, len, T1_SEGMENT_3_END); ++ p = g_strrstr_len(fontdata, t1_len, T1_SEGMENT_3_END); + if (p==NULL) fallback = TRUE; + else { + // rewind 512 zeros +@@ -936,7 +938,7 @@ void embed_pdffont(GString *pdfbuf, struct XrefTable *xref, struct PdfFont *font + make_xref(xref, xref->last+1, pdfbuf->len); + nobj_fontprog = xref->last; + g_string_append_printf(pdfbuf, +- "%d 0 obj\n<< /Length %d /Length1 %d /Length2 %d /Length3 0 >> stream\n", ++ "%d 0 obj\n<< /Length %u /Length1 %u /Length2 %u /Length3 0 >> stream\n", + nobj_fontprog, len1+len2, len1, len2); + g_string_append_len(pdfbuf, seg1, len1); + g_string_append_len(pdfbuf, seg2, len2); +@@ -1258,7 +1260,7 @@ gboolean print_to_pdf(char *filename) + tmpstr = make_pdfprefix(pdfinfo.pages+(pg->bg->file_page_seq-1), + pg->width, pg->height); + g_string_append_printf(pdfbuf, +- "%d 0 obj\n<< /Length %d >> stream\n%s\nendstream\nendobj\n", ++ "%d 0 obj\n<< /Length %zu >> stream\n%s\nendstream\nendobj\n", + n_obj_prefix, tmpstr->len, tmpstr->str); + g_string_free(tmpstr, TRUE); + g_string_prepend(pgstrm, "Q Q Q "); +@@ -1276,7 +1278,7 @@ gboolean print_to_pdf(char *filename) + + make_xref(&xref, xref.last+1, pdfbuf->len); + g_string_append_printf(pdfbuf, +- "%d 0 obj\n<< /Length %d /Filter /FlateDecode>> stream\n", ++ "%d 0 obj\n<< /Length %zu /Filter /FlateDecode>> stream\n", + xref.last, zpgstrm->len); + g_string_append_len(pdfbuf, zpgstrm->str, zpgstrm->len); + g_string_free(zpgstrm, TRUE); diff --git a/app-text/xournal/xournal-0.4.2.1.ebuild b/app-text/xournal/xournal-0.4.5-r1.ebuild index f77767735da4..fff4467e68b8 100644 --- a/app-text/xournal/xournal-0.4.2.1.ebuild +++ b/app-text/xournal/xournal-0.4.5-r1.ebuild @@ -1,8 +1,10 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-text/xournal/xournal-0.4.2.1.ebuild,v 1.5 2009/03/30 02:11:18 loki_val Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-text/xournal/xournal-0.4.5-r1.ebuild,v 1.1 2009/11/14 14:17:04 rbu Exp $ + +EAPI=2 +inherit gnome2 eutils -inherit gnome2 autotools DESCRIPTION="Xournal is an application for notetaking, sketching, and keeping a journal using a stylus." HOMEPAGE="http://xournal.sourceforge.net/" @@ -10,24 +12,25 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 x86" +KEYWORDS="~amd64 ~x86" IUSE="pdf doc" -DEPEND="${DEPEND} - >=x11-libs/gtk+-2.6 +DEPEND=">=x11-libs/gtk+-2.10 >=gnome-base/libgnomecanvas-2.4 >=gnome-base/libgnomeprint-2.2 - >=gnome-base/libgnomeprintui-2.2" + >=gnome-base/libgnomeprintui-2.2 + >=virtual/poppler-glib-0.5.4" RDEPEND="${DEPEND} pdf? ( virtual/poppler-utils virtual/ghostscript )" DEPEND="${DEPEND} dev-util/pkgconfig" -src_unpack() { - unpack ${A} - cd "${S}" +src_prepare() { + epatch "${FILESDIR}"/${P}-xoprint-len.patch #bug 287701 +} - eautoreconf +src_configure() { + default } src_install() { |