summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmmv <jmmv@pkgsrc.org>2005-09-05 14:42:42 +0000
committerjmmv <jmmv@pkgsrc.org>2005-09-05 14:42:42 +0000
commit35f75cc2e993496060cbb9652babf21bb2a11590 (patch)
tree0e754c1e03eb1465f0139ad0394c637f145403c8
parent994773a956b783affe3c7623f1f348ef3006cbdc (diff)
downloadpkgsrc-35f75cc2e993496060cbb9652babf21bb2a11590.tar.gz
Apply patch to fix CAN-2005-2097; taken from the Gentoo package, which in
turn took the patch from Red Hat. Bump PKGREVISION to 1.
-rw-r--r--print/gpdf/Makefile3
-rw-r--r--print/gpdf/distinfo3
-rw-r--r--print/gpdf/patches/patch-ab68
3 files changed, 72 insertions, 2 deletions
diff --git a/print/gpdf/Makefile b/print/gpdf/Makefile
index 8d6f0cd54a2..e1a32318386 100644
--- a/print/gpdf/Makefile
+++ b/print/gpdf/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.28 2005/08/10 20:56:23 jlam Exp $
+# $NetBSD: Makefile,v 1.29 2005/09/05 14:42:42 jmmv Exp $
#
DISTNAME= gpdf-2.10.0
+PKGREVISION= 1
CATEGORIES= print
MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gpdf/2.10/}
EXTRACT_SUFX= .tar.bz2
diff --git a/print/gpdf/distinfo b/print/gpdf/distinfo
index 0a941f8ed0b..2bfe02b6d3c 100644
--- a/print/gpdf/distinfo
+++ b/print/gpdf/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.11 2005/03/22 16:32:56 jmmv Exp $
+$NetBSD: distinfo,v 1.12 2005/09/05 14:42:42 jmmv Exp $
SHA1 (gpdf-2.10.0.tar.bz2) = f9b925ed5b15deb90968e834fd63fc7628688808
RMD160 (gpdf-2.10.0.tar.bz2) = 16cb9413e012c2c5268082d8322d1468e5c30907
Size (gpdf-2.10.0.tar.bz2) = 1079944 bytes
SHA1 (patch-aa) = 8985b54bad962a31a6ee315747c0297419b8e291
+SHA1 (patch-ab) = 4601088604b8c5a52546e689bfdccc2aa18ea1e6
diff --git a/print/gpdf/patches/patch-ab b/print/gpdf/patches/patch-ab
new file mode 100644
index 00000000000..d74e0404212
--- /dev/null
+++ b/print/gpdf/patches/patch-ab
@@ -0,0 +1,68 @@
+$NetBSD: patch-ab,v 1.1 2005/09/05 14:42:42 jmmv Exp $
+
+Patch to fix CAN-2005-2097. The patch in #163920 doesn't apply to
+gpdf, since gpdf uses the gnome print api for rendering. The crux of
+that patch is to avoid using the FoFi (font file) classes for fixing
+up the embedded truetype font, but instead pass the font to freetype
+directly. This patch does the same thing for the gpdf rendering code.
+
+Kristian Høgsberg <krh@redhat.com>
+
+--- xpdf/GPOutputDev.cc.krh 2005-08-01 11:44:43.000000000 -0400
++++ xpdf/GPOutputDev.cc 2005-08-01 11:45:32.000000000 -0400
+@@ -258,9 +258,6 @@
+ }
+ case fontTrueType: {
+ FoFiTrueType *ff;
+- gint fd;
+- gchar *temp_name;
+- FILE *f;
+ gushort *code_to_gid;
+
+ ff = FoFiTrueType::make((char *)contents, length);
+@@ -269,16 +266,7 @@
+
+ code_to_gid = ((Gfx8BitFont *)font)->getCodeToGIDMap(ff); // this is g(oo)malloc'd
+
+- fd = g_file_open_tmp("gpdf-ttf-XXXXXX", &temp_name, NULL);
+- f = fdopen(fd, "wb");
+- ff->writeTTF(&fileWrite, f);
+ delete ff;
+- g_free(contents);
+- fclose(f);
+-
+- g_file_get_contents(temp_name, (gchar **)&contents, &length, NULL);
+- unlink(temp_name);
+- g_free(temp_name);
+
+ gff = gpdf_font_face_download((const guchar *)font_name,
+ (const guchar *)"",
+@@ -324,28 +312,8 @@
+ break;
+ }
+ case fontCIDType2: {
+- FoFiTrueType *ff;
+- gint fd;
+- gchar *temp_name;
+- FILE *f;
+ gint n_cids;
+ gushort *code_to_gid;
+-
+- ff = FoFiTrueType::make((char *)contents, length);
+- if (!ff)
+- return getFontFaceFallback(font);
+-
+- fd = g_file_open_tmp("gpdf-ttf-XXXXXX", &temp_name, NULL);
+- f = fdopen(fd, "wb");
+- ff->writeTTF(&fileWrite, f);
+- delete ff;
+- g_free(contents);
+- fclose(f);
+-
+- g_file_get_contents(temp_name, (gchar **)&contents, &length, NULL);
+- unlink(temp_name);
+- g_free(temp_name);
+-
+ gff = gpdf_font_face_download((const guchar *)font_name,
+ (const guchar *)"",
+ GNOME_FONT_REGULAR, FALSE,