<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>