From c1ea4a228045c51c23d7692c80b0e92b83ad9748 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Nov 25 2010 16:03:30 +0000 Subject: - Fix importing of eps files (#657290) --- diff --git a/xfig-3.2.5b-fix-eps-reading.patch b/xfig-3.2.5b-fix-eps-reading.patch new file mode 100644 index 0000000..7601d20 --- /dev/null +++ b/xfig-3.2.5b-fix-eps-reading.patch @@ -0,0 +1,46 @@ +diff -ur xfig.3.2.5b/f_readeps.c xfig.3.2.5b.new/f_readeps.c +--- xfig.3.2.5b/f_readeps.c 2009-03-30 17:52:18.000000000 +0200 ++++ xfig.3.2.5b.new/f_readeps.c 2010-11-25 16:53:54.328247928 +0100 +@@ -252,12 +252,13 @@ + { + char buf[300]; + FILE *tmpfp, *pixfile, *gsfile; +- char *psnam, *driver; ++ char *driver; + int status, wid, ht, nbitmap, fd; + char tmpfile[PATH_MAX], + pixnam[PATH_MAX], + errnam[PATH_MAX], +- gscom[2 * PATH_MAX]; ++ gscom[2 * PATH_MAX], ++ psnam[PATH_MAX]; + + wid = urx - llx; + ht = ury - lly; +@@ -307,19 +308,14 @@ + /* for color, use pcx */ + driver = "pcx256"; + } +- /* avoid absolute paths (for Cygwin with gswin32) by changing directory */ +- if (tmpfile[0] == '/') { +- psnam = strrchr(tmpfile, '/'); +- *psnam = 0; +- sprintf(gscom, "cd \"%s/\";", tmpfile); +- *psnam++ = '/'; /* Restore name for unlink() below */ +- } else { +- psnam = tmpfile; +- gscom[0] = '\0'; ++ /* Canonicalize the eps file filename, needed to "defeat" -dSAFER */ ++ if (!realpath(tmpfile, psnam)) { ++ file_msg("Cannot canonicalize %s: %s\n", tmpfile, strerror(errno)); ++ return False; + } +- sprintf(&gscom[strlen(gscom)], +- "%s -r72x72 -dSAFER -sDEVICE=%s -g%dx%d -sOutputFile=%s -q - > %s 2>&1", +- appres.ghostscript, driver, wid, ht, pixnam, errnam); ++ sprintf(gscom, ++ "%s -r72x72 -sDEVICE=%s -g%dx%d -sOutputFile=%s -dDELAYSAFER -c '<< /PermitFileReading [ (%s)] >> setuserparams .locksafe' -dSAFER -q - > %s 2>&1", ++ appres.ghostscript, driver, wid, ht, pixnam, psnam, errnam); + if (appres.DEBUG) + fprintf(stderr,"calling: %s\n",gscom); + if ((gsfile = popen(gscom, "w")) == 0) { diff --git a/xfig.spec b/xfig.spec index a044659..b23766b 100644 --- a/xfig.spec +++ b/xfig.spec @@ -3,7 +3,7 @@ Summary: An X Window System tool for drawing basic vector graphics Name: xfig Version: 3.2.5 -Release: 23.b%{?dist} +Release: 24.b%{?dist} License: MIT Group: Applications/Multimedia URL: http://www.xfig.org/ @@ -19,6 +19,7 @@ Patch9: xfig.3.2.5-Xaw3d.patch Patch10: xfig-3.2.5-enable-Xaw3d.patch Patch13: xfig-3.2.5-urwfonts.patch Patch19: xfig-3.2.5-debian.patch +Patch20: xfig-3.2.5b-fix-eps-reading.patch BuildRequires: libjpeg-devel BuildRequires: libpng-devel @@ -92,6 +93,7 @@ Files common to both the plain Xaw and the Xaw3d version of xfig. %patch10 -p1 -b .no-Xaw3d %patch13 -p1 -b .urw %patch19 -p1 +%patch20 -p1 iconv -f ISO-8859-1 -t UTF8 CHANGES > tmp; touch -r CHANGES tmp; mv tmp CHANGES rm Doc/html/images/sav1a0.tmp chmod -x `find -type f` @@ -184,6 +186,9 @@ fi %changelog +* Thu Nov 25 2010 Hans de Goede 3.2.5-24.b +- Fix importing of eps files (#657290) + * Wed Sep 30 2009 Hans de Goede 3.2.5-23.b - New upstream 3.2.5b release - Drop many merged patches