diff options
Diffstat (limited to 'print/psutils')
-rw-r--r-- | print/psutils/Makefile | 30 | ||||
-rw-r--r-- | print/psutils/distinfo | 2 | ||||
-rw-r--r-- | print/psutils/files/patch-Makefile.unix | 103 | ||||
-rw-r--r-- | print/psutils/files/patch-b4 | 15 | ||||
-rw-r--r-- | print/psutils/files/patch-epsffit.c | 22 | ||||
-rw-r--r-- | print/psutils/files/patch-getafm.sh | 34 | ||||
-rw-r--r-- | print/psutils/files/patch-psbook.c | 18 | ||||
-rw-r--r-- | print/psutils/files/patch-pserror.c | 11 | ||||
-rw-r--r-- | print/psutils/files/patch-psnup.c | 63 | ||||
-rw-r--r-- | print/psutils/files/patch-psresize.c | 56 | ||||
-rw-r--r-- | print/psutils/files/patch-psselect.c | 18 | ||||
-rw-r--r-- | print/psutils/files/patch-pstops.c | 53 | ||||
-rw-r--r-- | print/psutils/files/patch-psutil.c | 58 | ||||
-rw-r--r-- | print/psutils/pkg-descr | 23 | ||||
-rw-r--r-- | print/psutils/pkg-plist | 25 |
15 files changed, 531 insertions, 0 deletions
diff --git a/print/psutils/Makefile b/print/psutils/Makefile new file mode 100644 index 000000000000..1cbeb9304305 --- /dev/null +++ b/print/psutils/Makefile @@ -0,0 +1,30 @@ +# Created by: Jean-Marc Zucconi <jmz@FreeBSD.org> and David O'Brien <obrien@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= psutils +PORTVERSION= 1.17 +PORTREVISION= 3 +CATEGORIES= print +MASTER_SITES= ftp://ftp.dcs.ed.ac.uk/pub/ajcd/ \ + ftp://ftp.knackered.org/pub/psutils/ \ + ${MASTER_SITE_TEX_CTAN} +MASTER_SITE_SUBDIR= support/psutils +DISTNAME= psutils-p17 + +MAINTAINER= hrs@FreeBSD.org +COMMENT= Utilities for manipulating PostScript documents + +LIB_DEPENDS= paper:${PORTSDIR}/print/libpaper + +USE_PERL5_BUILD=yes +WRKSRC= ${WRKDIR}/${PORTNAME} +MAKEFILE= Makefile.unix +MAKE_ENV+= DATADIR="${DATADIR}" PERL="${PERL5}" CHMOD="${CHMOD}" +MAN1= psbook.1 psselect.1 pstops.1 epsffit.1 psnup.1 psresize.1 \ + getafm.1 fixdlsrps.1 fixfmps.1 fixmacps.1 fixpsditps.1 \ + fixpspps.1 fixtpps.1 fixwfwps.1 fixwpps.1 fixwwps.1 \ + extractres.1 includeres.1 fixscribeps.1 psmerge.1 +SCRIPTS_ENV+= PERL5=${PERL5} CC=${CC} DATADIR=${DATADIR} \ + MANPREFIX=${MANPREFIX} PAPER=dummy + +.include <bsd.port.mk> diff --git a/print/psutils/distinfo b/print/psutils/distinfo new file mode 100644 index 000000000000..0dc0e5961cc8 --- /dev/null +++ b/print/psutils/distinfo @@ -0,0 +1,2 @@ +SHA256 (psutils-p17.tar.gz) = 3853eb79584ba8fbe27a815425b65a9f7f15b258e0d43a05a856bdb75d588ae4 +SIZE (psutils-p17.tar.gz) = 62039 diff --git a/print/psutils/files/patch-Makefile.unix b/print/psutils/files/patch-Makefile.unix new file mode 100644 index 000000000000..ae83cde73d95 --- /dev/null +++ b/print/psutils/files/patch-Makefile.unix @@ -0,0 +1,103 @@ +--- Makefile.unix.orig 1997-03-12 07:52:59.000000000 +0900 ++++ Makefile.unix 2013-04-23 16:36:38.000000000 +0900 +@@ -25,21 +25,22 @@ + + OS = UNIX + +-BINDIR = /usr/local/bin ++BINDIR ?= $(PREFIX)/bin + SCRIPTDIR = $(BINDIR) +-INCLUDEDIR = /usr/local/share/psutils +-PERL = /usr/local/bin/perl ++INCLUDEDIR ?= $(DATADIR) ++PERL ?= $(PERL5) + +-BINMODE = 0755 +-MANMODE = 0644 +-CHMOD = chmod ++BINMODE ?= 0755 ++MANMODE ?= 0644 ++CHMOD ?= chmod + INSTALL = install -c -m $(BINMODE) + INSTALLMAN = install -c -m $(MANMODE) + MANEXT = 1 +-MANDIR = /usr/local/share/man/man$(MANEXT) ++MANDIR ?= $(MANPREFIX)/man/man$(MANEXT) + +-CC = gcc +-CFLAGS = -DPAPER=\"$(PAPER)\" -DUNIX -O -Wall ++CC ?= gcc ++CFLAGS += -DLIBPAPER -DPAPER=\"$(PAPER)\" -I${LOCALBASE}/include -DUNIX -Wall ++LDFLAGS+= -L${LOCALBASE}/lib -lm -lpaper + + BIN = psbook psselect pstops epsffit psnup \ + psresize +@@ -65,30 +66,30 @@ + epsffit.o: epsffit.c pserror.h patchlev.h + + epsffit: epsffit.o pserror.o +- $(CC) $(CCFLAGS) -o epsffit pserror.o epsffit.o ++ $(CC) $(LDFLAGS) -o epsffit pserror.o epsffit.o + + psnup: psnup.o psutil.o psspec.o pserror.o +- $(CC) $(CCFLAGS) -o psnup psutil.o psspec.o pserror.o psnup.o ++ $(CC) $(LDFLAGS) -o psnup psutil.o psspec.o pserror.o psnup.o + + psnup.o: psutil.h patchlev.h psspec.h pserror.h psnup.c + + psresize: psresize.o psutil.o pserror.o psspec.o +- $(CC) $(CCFLAGS) -o psresize psutil.o psspec.o pserror.o psresize.o ++ $(CC) $(LDFLAGS) -o psresize psutil.o psspec.o pserror.o psresize.o + + psresize.o: psutil.h patchlev.h psspec.h pserror.h psresize.c + + psbook: psbook.o psutil.o pserror.o +- $(CC) $(CCFLAGS) -o psbook psutil.o pserror.o psbook.o ++ $(CC) $(LDFLAGS) -o psbook psutil.o pserror.o psbook.o + + psbook.o: psutil.h patchlev.h pserror.h psbook.c + + psselect: psselect.o psutil.o pserror.o +- $(CC) $(CCFLAGS) -o psselect psutil.o pserror.o psselect.o ++ $(CC) $(LDFLAGS) -o psselect psutil.o pserror.o psselect.o + + psselect.o: psutil.h patchlev.h pserror.h psselect.c + + pstops: pstops.o psutil.o psspec.o pserror.o +- $(CC) $(CCFLAGS) -o pstops psutil.o psspec.o pserror.o pstops.o ++ $(CC) $(LDFLAGS) -o pstops psutil.o psspec.o pserror.o pstops.o + + pstops.o: psutil.h patchlev.h psspec.h pserror.h pstops.c + +@@ -222,27 +223,27 @@ + -mkdir $(BINDIR) + @for i in $(BIN); do \ + echo Installing $$i; \ +- $(INSTALL) $$i $(BINDIR); \ ++ $(BSD_INSTALL_PROGRAM) $$i $(BINDIR); \ + done + + install.script: $(PERLSCRIPTS) $(SHELLSCRIPTS) + -mkdir $(SCRIPTDIR) + @for i in $(PERLSCRIPTS) $(SHELLSCRIPTS); do \ + echo Installing $$i; \ +- $(INSTALL) $$i $(SCRIPTDIR); \ ++ $(BSD_INSTALL_SCRIPT) $$i $(SCRIPTDIR); \ + done + + install.include: $(INCLUDES) + -mkdir $(INCLUDEDIR) + @for i in $(INCLUDES); do \ + echo Installing $$i; \ +- $(INSTALLMAN) $$i $(INCLUDEDIR); \ ++ $(BSD_INSTALL_DATA) $$i $(INCLUDEDIR); \ + done + + install.man: $(MANPAGES) + -mkdir $(MANDIR) + @for i in $(MANPAGES); do \ + echo Installing manual page for $$i; \ +- $(INSTALLMAN) $$i $(MANDIR)/$$i; \ ++ $(BSD_INSTALL_DATA) $$i $(MANDIR)/$$i; \ + done + diff --git a/print/psutils/files/patch-b4 b/print/psutils/files/patch-b4 new file mode 100644 index 000000000000..58918fc7a976 --- /dev/null +++ b/print/psutils/files/patch-b4 @@ -0,0 +1,15 @@ +--- psutil.c.bak Thu Oct 5 10:17:44 2000 ++++ psutil.c Thu Oct 5 10:17:44 2000 +@@ -48,10 +48,12 @@ + { "a4", 595, 842 }, /* 21cm * 29.7cm */ + { "a5", 421, 595 }, /* 14.85cm * 21cm */ + { "b5", 516, 729 }, /* 18.2cm * 25.72cm */ ++ { "b4", 729, 1032 }, /* 25.72cm * 36.4cm */ + { "A3", 842, 1191 }, /* 29.7cm * 42cm */ + { "A4", 595, 842 }, /* 21cm * 29.7cm */ + { "A5", 421, 595 }, /* 14.85cm * 21cm */ + { "B5", 516, 729 }, /* 18.2cm * 25.72cm */ ++ { "B4", 729, 1032 }, /* 25.72cm * 36.4cm */ + { "letter", 612, 792 }, /* 8.5in * 11in */ + { "legal", 612, 1008 }, /* 8.5in * 14in */ + { "ledger", 1224, 792 }, /* 17in * 11in */ diff --git a/print/psutils/files/patch-epsffit.c b/print/psutils/files/patch-epsffit.c new file mode 100644 index 000000000000..3cfb954d1e97 --- /dev/null +++ b/print/psutils/files/patch-epsffit.c @@ -0,0 +1,22 @@ +--- epsffit.c.orig 1997-03-12 07:52:52.000000000 +0900 ++++ epsffit.c 2012-03-03 02:46:20.000000000 +0900 +@@ -39,10 +39,10 @@ + exit(1); + } + +-void main(int argc, char **argv) ++int main(int argc, char **argv) + { + int bbfound = 0; /* %%BoundingBox: found */ +- int urx, ury, llx, lly; ++ int urx = 0, ury = 0, llx = 0, lly = 0; + int furx, fury, fllx, flly; + int showpage = 0, centre = 0, rotate = 0, aspect = 0, maximise = 0; + char buf[BUFSIZ]; +@@ -185,5 +185,5 @@ + } else + message(FATAL, "no %%%%BoundingBox:\n"); + +- exit(0); ++ return (0); + } diff --git a/print/psutils/files/patch-getafm.sh b/print/psutils/files/patch-getafm.sh new file mode 100644 index 000000000000..40215f0da11b --- /dev/null +++ b/print/psutils/files/patch-getafm.sh @@ -0,0 +1,34 @@ +--- getafm.sh.orig 2013-04-23 16:38:17.000000000 +0900 ++++ getafm.sh 2013-04-23 16:38:24.000000000 +0900 +@@ -1,7 +1,7 @@ + #!/bin/sh + + if [ $# -ne 1 ]; then +- echo "usage: $0 font-name | gsnd - >font-name.afm" >&2 ++ echo "usage: $0 font-name | gsnd -q - >font-name.afm" >&2 + exit 1 + fi + +@@ -13,6 +13,11 @@ + % getafm 1.00 (c) AJCD + % and getafm.ps by an unknown author, + % modified by J. Daniel Smith <dsmith@mailhost.aa.cad.slb.com> ++% ++% modified by Joachim H. Kaiser <jhk@cmpnetmail.com>: ++% - suggest a quiet gs run in usage ++% - get font version info (from 'version', not 'Version') ++% - add copyright field to output + + % Metrics dictionary code added by AJCD, 7/6/93 + +@@ -66,8 +71,9 @@ + (isFixedPitch)(IsFixedPitch) prany + (UnderlinePosition)dup prany + (UnderlineThickness)dup prany +- (Version)(version) prany ++ (version)(Version) prany + (Notice)dup prany ++ (Copyright)dup prany + pop + } + { diff --git a/print/psutils/files/patch-psbook.c b/print/psutils/files/patch-psbook.c new file mode 100644 index 000000000000..b19ce81deeac --- /dev/null +++ b/print/psutils/files/patch-psbook.c @@ -0,0 +1,18 @@ +--- psbook.c.orig 2011-06-21 04:19:12.000000000 +0900 ++++ psbook.c 2011-06-21 04:19:36.000000000 +0900 +@@ -32,7 +32,7 @@ + } + + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { + int signature = 0; + int currentpg, maxpage; +@@ -107,5 +107,5 @@ + } + writetrailer(); + +- exit(0); ++ return (0); + } diff --git a/print/psutils/files/patch-pserror.c b/print/psutils/files/patch-pserror.c new file mode 100644 index 000000000000..a758c5408984 --- /dev/null +++ b/print/psutils/files/patch-pserror.c @@ -0,0 +1,11 @@ +--- pserror.c.orig 2011-06-21 04:20:14.000000000 +0900 ++++ pserror.c 2011-06-21 04:20:31.000000000 +0900 +@@ -24,7 +24,7 @@ + void message(int flags, char *format, ...) + { + va_list args ; +- static column = 0 ; /* current screen column for message wrap */ ++ static int column = 0 ; /* current screen column for message wrap */ + char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */ + char *bufptr = msgbuf ; /* message buffer pointer */ + diff --git a/print/psutils/files/patch-psnup.c b/print/psutils/files/patch-psnup.c new file mode 100644 index 000000000000..f12624d4ad71 --- /dev/null +++ b/print/psutils/files/patch-psnup.c @@ -0,0 +1,63 @@ +--- psnup.c.orig 1997-03-12 07:53:02.000000000 +0900 ++++ psnup.c 2012-03-03 03:03:01.000000000 +0900 +@@ -28,6 +28,10 @@ + #include "pserror.h" + #include "patchlev.h" + ++#if defined(LIBPAPER) ++#include <paper.h> ++#endif ++ + char *program ; + int pages ; + int verbose ; +@@ -66,12 +70,12 @@ + return (0); + } + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { +- int horiz, vert, rotate, column, flip, leftright, topbottom; ++ int horiz = 0, vert = 0, rotate = 0, column, flip, leftright, topbottom; + int nup = 1; + double draw = 0; /* draw page borders */ +- double scale; /* page scale */ ++ double scale = 0; /* page scale */ + double uscale = 0; /* user supplied scale */ + double ppwid, pphgt; /* paper dimensions */ + double margin, border; /* paper & page margins */ +@@ -79,13 +83,21 @@ + double iwidth, iheight ; /* input paper size */ + double tolerance = 100000; /* layout tolerance */ + Paper *paper; ++ char *name; + ++#if defined(LIBPAPER) ++ name = (char *)systempapername(); ++ if (name == NULL) ++ name = (char *)defaultpapername(); ++#else + #ifdef PAPER +- if ( (paper = findpaper(PAPER)) != (Paper *)0 ) { +- width = (double)PaperWidth(paper); +- height = (double)PaperHeight(paper); +- } ++ name = PAPER; + #endif ++#endif ++ if ((paper = findpaper(name)) != NULL) { ++ width = (double)PaperWidth(paper); ++ height = (double)PaperHeight(paper); ++ } + + margin = border = vshift = hshift = column = flip = 0; + leftright = topbottom = 1; +@@ -331,6 +343,6 @@ + pstops(nup, 1, 0, specs, draw); /* do page rearrangement */ + } + +- exit(0); ++ return (0); + } + diff --git a/print/psutils/files/patch-psresize.c b/print/psutils/files/patch-psresize.c new file mode 100644 index 000000000000..7c7eeb37f248 --- /dev/null +++ b/print/psutils/files/patch-psresize.c @@ -0,0 +1,56 @@ +--- psresize.c.orig 1997-03-12 07:53:03.000000000 +0900 ++++ psresize.c 2012-03-03 03:02:24.000000000 +0900 +@@ -20,6 +20,10 @@ + #include "pserror.h" + #include "patchlev.h" + ++#if defined(LIBPAPER) ++#include <paper.h> ++#endif ++ + char *program ; + int pages ; + int verbose ; +@@ -46,7 +50,7 @@ + #define MIN(x,y) ((x) > (y) ? (y) : (x)) + #define MAX(x,y) ((x) > (y) ? (x) : (y)) + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { + double scale, rscale; /* page scale */ + double waste, rwaste; /* amount wasted */ +@@ -56,13 +60,21 @@ + double inheight = -1; + Paper *paper; + PageSpec *specs; ++ char *name = NULL; + ++#if defined(LIBPAPER) ++ name = (char *)systempapername(); ++ if (name == NULL) ++ name = (char *)defaultpapername(); ++#else + #ifdef PAPER +- if ( (paper = findpaper(PAPER)) != (Paper *)0 ) { +- inwidth = width = (double)PaperWidth(paper); +- inheight = height = (double)PaperHeight(paper); +- } ++ name = PAPER; ++#endif + #endif ++ if ((paper = findpaper(name)) != NULL) { ++ inwidth = width = (double)PaperWidth(paper); ++ inheight = height = (double)PaperHeight(paper); ++ } + + vshift = hshift = 0; + rotate = 0; +@@ -175,6 +187,6 @@ + + pstops(1, 1, 0, specs, 0.0); /* do page rearrangement */ + +- exit(0); ++ return (0); + } + diff --git a/print/psutils/files/patch-psselect.c b/print/psutils/files/patch-psselect.c new file mode 100644 index 000000000000..85cb97ccf773 --- /dev/null +++ b/print/psutils/files/patch-psselect.c @@ -0,0 +1,18 @@ +--- psselect.c.orig 2011-06-21 04:20:51.000000000 +0900 ++++ psselect.c 2011-06-21 04:21:08.000000000 +0900 +@@ -91,7 +91,7 @@ + } + + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { + int currentpg, maxpage = 0; + int even = 0, odd = 0, reverse = 0; +@@ -235,5 +235,5 @@ + } + writetrailer(); + +- exit(0); ++ return (0); + } diff --git a/print/psutils/files/patch-pstops.c b/print/psutils/files/patch-pstops.c new file mode 100644 index 000000000000..d21fab8774eb --- /dev/null +++ b/print/psutils/files/patch-pstops.c @@ -0,0 +1,53 @@ +--- pstops.c.orig 1997-03-12 07:53:04.000000000 +0900 ++++ pstops.c 2012-03-03 03:04:32.000000000 +0900 +@@ -13,6 +13,10 @@ + #include "pserror.h" + #include "patchlev.h" + ++#if defined(LIBPAPER) ++#include <paper.h> ++#endif ++ + char *program ; + int pages ; + int verbose ; +@@ -112,19 +116,27 @@ + return (head); + } + +-void main(int argc, char *argv[]) ++int main(int argc, char *argv[]) + { + PageSpec *specs = NULL; + int nobinding = 0; + double draw = 0; + Paper *paper; ++ char *name; + ++#if defined(LIBPAPER) ++ name = (char *)systempapername(); ++ if (name == NULL) ++ name = (char *)defaultpapername(); ++#else + #ifdef PAPER +- if ( (paper = findpaper(PAPER)) != (Paper *)0 ) { +- width = (double)PaperWidth(paper); +- height = (double)PaperHeight(paper); +- } ++ name = PAPER; ++#endif + #endif ++ if ((paper = findpaper(name)) != NULL) { ++ width = (double)PaperWidth(paper); ++ height = (double)PaperHeight(paper); ++ } + + infile = stdin; + outfile = stdout; +@@ -194,5 +206,5 @@ + + pstops(modulo, pagesperspec, nobinding, specs, draw); + +- exit(0); ++ return (0); + } diff --git a/print/psutils/files/patch-psutil.c b/print/psutils/files/patch-psutil.c new file mode 100644 index 000000000000..b9529c3323f6 --- /dev/null +++ b/print/psutils/files/patch-psutil.c @@ -0,0 +1,58 @@ +--- psutil.c.orig 2012-03-03 03:13:21.000000000 +0900 ++++ psutil.c 2012-03-03 03:20:46.000000000 +0900 +@@ -21,6 +21,11 @@ + #include <sys/types.h> + #include <sys/stat.h> + ++#if defined(LIBPAPER) ++#include <math.h> ++#include <paper.h> ++#endif ++ + #define iscomment(x,y) (strncmp(x,y,strlen(y)) == 0) + + extern char *program ; +@@ -42,6 +47,7 @@ + static int maxpages = 100; + static long *pageptr; + ++#if !defined(LIBPAPER) + /* list of paper sizes supported */ + static Paper papersizes[] = { + { "a3", 842, 1191 }, /* 29.7cm * 42cm */ +@@ -70,6 +76,7 @@ + Paper* findpaper(char *name) + { + Paper *pp; ++ + for (pp = papersizes; PaperName(pp); pp++) { + if (strcmp(PaperName(pp), name) == 0) { + return pp; +@@ -77,6 +84,27 @@ + } + return (Paper *)NULL; + } ++#else ++static Paper pspec; ++ ++Paper *findpaper(char *name) ++{ ++ const struct paper *pp; ++ ++ paperinit(); ++ for (pp = paperfirst(); pp; pp = papernext(pp)) { ++ if (strcmp(name, papername(pp)) == 0) { ++ pspec.name = strdup(name); ++ pspec.width = round(paperpswidth(pp)); ++ pspec.height = round(paperpsheight(pp)); ++ return (&pspec); ++ } ++ } ++ return (NULL); ++} ++#endif ++ ++ + + /* Make a file seekable, using temporary files if necessary */ + FILE *seekable(FILE *fp) diff --git a/print/psutils/pkg-descr b/print/psutils/pkg-descr new file mode 100644 index 000000000000..8455799b7335 --- /dev/null +++ b/print/psutils/pkg-descr @@ -0,0 +1,23 @@ +psbook rearranges pages into signatures +psselect selects pages and page ranges +pstops performs general page rearrangement and selection +psnup put multiple pages per physical sheet of paper +psresize alter document paper size +epsffit fits an EPSF file to a given bounding box +getafm (sh) outputs PostScript to retrieve AFM file from printer +showchar (sh) outputs PostScript to draw a character with metric info +fixdlsrps (perl) filter to fix DviLaser/PS output so that PSUtils works +fixfmps (perl) filter to fix framemaker documents so that psselect etc. work +fixmacps (perl) filter to fix Macintosh documents with saner version of md +fixpsditps (perl) filter to fix Transcript psdit documents to work with PSUtils +fixpspps (perl) filter to fix PSPrint PostScript so that psselect etc. work +fixscribeps (perl) filter to fix Scribe PostScript so that psselect etc. work +fixtpps (perl) filter to fix Troff Tpscript documents +fixwfwps (perl) filter to fix Word for Windows documents for PSUtils +fixwpps (perl) filter to fix WordPerfect documents for PSUtils +fixwwps (perl) filter to fix Windows Write documents for PSUtils +extractres (perl) filter to extract resources from PostScript files +includeres (perl) filter to include resources into PostScript files +psmerge (perl) hack script to merge multiple PostScript files + +WWW: http://gershwin.ens.fr/vdaniel/Doc-Locale/Outils-Gnu-Linux/PsUtils/ diff --git a/print/psutils/pkg-plist b/print/psutils/pkg-plist new file mode 100644 index 000000000000..9ce00d19f2ef --- /dev/null +++ b/print/psutils/pkg-plist @@ -0,0 +1,25 @@ +@comment $FreeBSD$ +bin/psbook +bin/psselect +bin/pstops +bin/epsffit +bin/psnup +bin/psresize +bin/getafm +bin/fixfmps +bin/fixmacps +bin/fixpsditps +bin/fixpspps +bin/fixtpps +bin/fixwfwps +bin/fixwpps +bin/fixscribeps +bin/fixwwps +bin/fixdlsrps +bin/extractres +bin/includeres +bin/psmerge +bin/showchar +%%DATADIR%%/md68_0.ps +%%DATADIR%%/md71_0.ps +@dirrm %%DATADIR%% |