<pre style='margin:0'>
Kurt Hindenburg (kurthindenburg) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e391289debf2db18ab2b5d222cb3d279bf85e2d2">https://github.com/macports/macports-ports/commit/e391289debf2db18ab2b5d222cb3d279bf85e2d2</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e391289  pstotext: remove port; use ps2ascii instead
</span>e391289 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e391289debf2db18ab2b5d222cb3d279bf85e2d2
</span>Author: Kurt Hindenburg <kurt.hindenburg@gmail.com>
AuthorDate: Sun May 26 12:36:31 2019 -0400

<span style='display:block; white-space:pre;color:#404040;'>    pstotext: remove port; use ps2ascii instead
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Last release was over 10 years and no offical site still exist.  It
</span><span style='display:block; white-space:pre;color:#404040;'>    does not appear to work for any pdf without an error:
</span><span style='display:block; white-space:pre;color:#404040;'>    Unrecoverable error, exit code 1
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Use ps2ascii from the ghostscript port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    closes https://trac.macports.org/ticket/58449
</span>---
 textproc/pstotext/Portfile                        |  47 --------
 textproc/pstotext/files/patch-security-popen.diff | 141 ----------------------
 2 files changed, 188 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/textproc/pstotext/Portfile b/textproc/pstotext/Portfile
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 17e7e5f..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/textproc/pstotext/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,47 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=portfile:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortSystem      1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name            pstotext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version         1.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision        1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-categories      textproc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-license         Restrictive/Distributable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers     nomaintainer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-description     Extract ASCII text from a PostScript or PDF file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pstotext reads one or more PostScript or PDF files,\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    and writes to standard output (or a file) a\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    representation of the plain text that would be\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    displayed if the PostScript/PDF file were printed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage        https://web.archive.org/web/20180727020803/http://pages.cs.wisc.edu/~ghost/doc/pstotext.htm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites    debian:p/${name}/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles       ${name}_${version}.orig${extract.suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles      patch-security-popen.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms       darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums       rmd160  16dc199d19df64280184d11ccbced7a32770ddad \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                sha256  cfe0a251d0d43982a7d3bdf1d1670c854432739d00cb593c9beaca4b2cc36c27 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                size    37461
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run bin:gs:ghostscript
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_configure   no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.args      CC="${configure.cc} [get_canonical_archflags cc]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|@PREFIX@|${prefix}|g" ${worksrcpath}/main.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 755 ${worksrcpath}/pstotext ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${worksrcpath}/pstotext.1 ${destroot}${prefix}/share/man/man1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set docdir ${destroot}${prefix}/share/doc/${name}-${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -d ${docdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${worksrcpath}/pstotext.txt ${docdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/textproc/pstotext/files/patch-security-popen.diff b/textproc/pstotext/files/patch-security-popen.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b48d220..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/textproc/pstotext/files/patch-security-popen.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,141 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: Security fix, arbitratry code execution via bad popen(3) call
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Bug-Debian: http://bugs.debian.org/356988
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author: J.H.M. Dassen (Ray) <jdassen@debian.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Author: Martin Ehmsen <ehmsen@gentoo.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Last-Update: 2010-07-10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- main.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ main.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -126,12 +126,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int cleanup(void) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   int gsstatus, status = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pstotextExit(instance);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (gs!=NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef VMS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (gs!=NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gsstatus = fclose(gs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    gsstatus = pclose(gs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  waitpid(-1, &gsstatus, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (gsstatus) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (WIFEXITED(gsstatus)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       if (WEXITSTATUS(gsstatus)!=0) status = 3;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       else if (WIFSIGNALED(gsstatus)) status = 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -166,8 +168,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int do_it(char *path) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /* If "path" is NULL, then "stdin" should be processed. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  char *gs_cmdline;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  char *input;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  char *gs_argv[32];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  int gs_argc=0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef DEBUG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  int i;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  int fd[2];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  pid_t p;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   int status;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   char norotate[] = "";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   FILE *fileout;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -201,47 +208,31 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (path==NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    input = (char*)malloc(2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (input == NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      fprintf(stderr,"No memory available\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      cleanup();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    strcpy(input, "-");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    input = (char*)malloc(strlen(path) + 6);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (input == NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      fprintf(stderr,"No memory available\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      cleanup();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    strcpy(input, "-- '"); strcat(input, path); strcat(input, "'");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "gs";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-r72";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dNODISPLAY";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dFIXEDMEDIA";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dDELAYBIND";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dWRITESYSTEMDICT";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (!debug) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = "-q";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dNOPAUSE";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = "-dSAFER";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (rotate_path && strcmp(rotate_path, "")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = rotate_path;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (ocr_path && strcmp(ocr_path, "")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = ocr_path;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (path == NULL ) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = "-";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = "--";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_argv[gs_argc++] = path;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  gs_cmdline = (char*)malloc(strlen(gs_cmd)+strlen(rotate_path)+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  strlen(ocr_path) + strlen(input) + 128);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (gs_cmdline == NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    fprintf(stderr, "No memory available\n");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    cleanup();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  sprintf(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    gs_cmdline,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef VMS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    "%s -r72 \"-dNODISPLAY\" \"-dFIXEDMEDIA\" \"-dDELAYBIND\" \"-dWRITESYSTEMDICT\" %s \"-dNOPAUSE\" %s %s %s",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    "%s -r72 -dNODISPLAY -dFIXEDMEDIA -dDELAYBIND -dWRITESYSTEMDICT %s -dNOPAUSE %s %s %s",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    gs_cmd,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    (debug ? "" : "-q"),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    rotate_path,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    ocr_path,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    input
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (debug) fprintf(stderr, "%s\n", gs_cmdline);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gs_argv[gs_argc++] = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef VMS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   cmdfile = tempnam("SYS$SCRATCH:","PS2TGS");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   gsoutfile = tempnam("SYS$SCRATCH:","GSRES");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -259,8 +250,25 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  gs = popen(gs_cmdline, "r");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (gs==0) {perror(cmd); exit(1);}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (pipe(fd)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  perror("pipe failed: "); exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  p = fork();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (p == -1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  perror("fork failed: "); exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (p == 0) { /* child */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    close(fd[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    dup2(fd[1], 1); /* Redirect stdout into pipe to parent */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    execvp("@PREFIX@/bin/gs", gs_argv);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    perror("execvp: "); status=cleanup(); exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } else { /* parent */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    close(fd[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs = fdopen(fd[0], "r");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (gs == NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      perror("fdopen: "); status=cleanup(); exit(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   status = pstotextInit(&instance);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (status!=0) {
</span></pre><pre style='margin:0'>

</pre>