[PATCH] graphics/evince: segfault on showing properties of some pdf
files
Hiroto Kagotani
hiroto.kagotani at gmail.com
Tue Nov 22 15:57:51 UTC 2011
>Submitter-Id: current-users
>Originator: Hiroto Kagotani
>Organization:
>Confidential: no
>Synopsis: [PATCH] graphics/evince: segfault on showing properties of some pdf files
>Severity: non-critical
>Priority: low
>Category: ports
>Class: change-request
>Release: FreeBSD 8.1-RELEASE-p5 i386
>Environment:
System: FreeBSD myhost.mydomain 8.1-RELEASE-p5 FreeBSD 8.1-RELEASE-p5 #0: Tue Sep 27 16:18:26 UTC 2011
>Description:
poppler has changed its API for getting PDF properties since 0.15.1
after the release of evince-2.32.0.
>From ChangeLog of poppler:
> commit d4a6c17255821925906c17b79b88eebed9edfee1
> Author: Carlos Garcia Campos <carlosgc at gnome.org>
> Date: Fri Sep 17 13:04:33 2010 +0200
>
> [glib] Add accessor for all PopplerDocument properties
>
> PopplerDocument:linearized is now a boolean value rather than string,
> so this commit breaks the API again.
This change causes evince segfault when showing properties of
some PDF files. To avoid this, evince must handle ``linearized''
property as boolean.
Added file(s):
- files/patch-backend__pdf__ev-poppler.cc
Port maintainer (gnome at FreeBSD.org) is cc'd.
Generated with FreeBSD Port Tools 0.99
>How-To-Repeat:
Download a PDF file from
http://www.opm.gov/forms/pdf_fill/of0306.pdf
and open it with evince.
Choose Properties from File menu.
>Fix:
This fix is borrowed from
http://osdir.com/ml/general/2010-09/msg30460.html
Since poppler in FreeBSD is now 0.18.0, #ifdef's are not required.
This fix should be removed when evince is updated to 3.x.
--- evince-2.32.0_6.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/graphics/evince.orig/files/patch-backend__pdf__ev-poppler.cc /usr/ports/graphics/evince/files/patch-backend__pdf__ev-poppler.cc
--- /usr/ports/graphics/evince.orig/files/patch-backend__pdf__ev-poppler.cc 1970-01-01 09:00:00.000000000 +0900
+++ /usr/ports/graphics/evince/files/patch-backend__pdf__ev-poppler.cc 2011-11-22 23:57:55.000000000 +0900
@@ -0,0 +1,28 @@
+--- ./backend/pdf/ev-poppler.cc.orig 2010-09-28 01:54:34.000000000 +0900
++++ ./backend/pdf/ev-poppler.cc 2011-11-22 20:11:28.000000000 +0900
+@@ -640,6 +640,7 @@
+ PopplerPermissions permissions;
+ EvPage *page;
+ char *metadata;
++ gboolean linearized;
+
+ info = g_new0 (EvDocumentInfo, 1);
+
+@@ -676,7 +677,7 @@
+ "producer", &(info->producer),
+ "creation-date", &(info->creation_date),
+ "mod-date", &(info->modified_date),
+- "linearized", &(info->linearized),
++ "linearized", &linearized,
+ "metadata", &metadata,
+ NULL);
+
+@@ -782,6 +783,8 @@
+ info->security = g_strdup (_("No"));
+ }
+
++ info->linearized = linearized ? g_strdup (_("Yes")) : g_strdup (_("No"));
++
+ return info;
+ }
+
--- evince-2.32.0_6.patch ends here ---
More information about the freebsd-gnome
mailing list