Bug 76731 - [PATCH] make cups-pstoraster GHOSTSCRIPT_PORT aware
Summary: [PATCH] make cups-pstoraster GHOSTSCRIPT_PORT aware
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Simon Barner
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-26 22:20 UTC by Jose M Rodriguez
Modified: 2005-06-23 10:58 UTC (History)
0 users

See Also:


Attachments
patch-ghostscript-gnu (1.21 KB, text/plain)
2005-01-26 22:20 UTC, Jose M Rodriguez
no flags Details
patch-ghostscript-afpl (49.06 KB, text/plain)
2005-01-26 22:20 UTC, Jose M Rodriguez
no flags Details
file.diff (4.10 KB, patch)
2005-01-26 22:20 UTC, Jose M Rodriguez
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jose M Rodriguez 2005-01-26 22:20:16 UTC
	Make cups-pstoraster from cups sources
	Make cups-pstoraster GHOSTSCRIPT_PORT aware
	Merge patches from cups for lib/gs_init.ps
	Merge patches from cups for lib/gs_setpd.ps
	use ${WRKDIR}/ghostscript as ${WRKSRC} in gs ports

	Affected ports:
		print/cups-pstoraster
		print/ghostscript-gnu
		print/ghostscript-gpl
		print/ghostscript-afpl

Fix: remove files:
		print/cups-pstoraster/distinfo
		print/cups-pstoraster/patch-*

diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/Makefile print/ghostscript-gpl/Makefile
--- /usr/HEAD/ports/print/ghostscript-gpl/Makefile	Sat Oct 16 09:28:33 2004
+++ print/ghostscript-gpl/Makefile	Wed Jan 26 22:42:06 2005
@@ -114,6 +114,9 @@
 GS_SRCS=	${DISTNAME}${EXTRACT_SUFX}
 CIDFONTDIR=	${PREFIX}/share/ghostscript/${GS_VERSION}/Resource
 
+# normalize WRKSRC so things like cups-pstoraster may work
+WRKSRC=		${WRKDIR}/ghostscript
+
 # Additional Drivers:
 
 # HP8XX - additional driver for HP DeskJet 812C/815C/832C/880C/882C/895C
@@ -223,6 +226,8 @@
 
 post-extract:
 	${ECHO_MSG} ">>> in post-extract ..."
+# normazile WRKSRC so things like cups-pstoraster may work
+	${MV} ${WRKDIR}/${DISTNAME} ${WRKDIR}/ghostscript
 # ** 3rd party driver **
 # Note: don't forget to add those devices in scripts/configure,
 # which update unix-gcc.mak to build gs with these new devices!
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/Makefile.inc print/ghostscript-gpl/Makefile.inc
--- /usr/HEAD/ports/print/ghostscript-gpl/Makefile.inc	Sat Oct 16 09:28:33 2004
+++ print/ghostscript-gpl/Makefile.inc	Wed Jan 26 20:47:40 2005
@@ -1,5 +1,5 @@
 # $FreeBSD: ports/print/ghostscript-gpl/Makefile.inc,v 1.13 2004/10/16 07:28:33 krion Exp $
 
 GS_VERSION=	8.15
-GS_REVISION=	0
+GS_REVISION=	1
 GS_EPOCH=	0
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps print/ghostscript-gpl/files/patch-lib:gs_init.ps
--- /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps	Wed Apr  3 04:59:13 2002
+++ print/ghostscript-gpl/files/patch-lib:gs_init.ps	Wed Jan 26 20:34:51 2005
@@ -1,6 +1,14 @@
---- lib/gs_init.ps.orig	Fri Feb  1 12:25:45 2002
-+++ lib/gs_init.ps	Sat Feb  9 01:42:10 2002
-@@ -1274,7 +1274,7 @@
+--- lib/gs_init.ps.orig	Wed Jan 26 20:32:16 2005
++++ lib/gs_init.ps	Wed Jan 26 20:31:34 2005
+@@ -140,6 +140,7 @@
+ currentdict /NOFONTPATH known   /NOFONTPATH exch def
+ currentdict /NOGC known   /NOGC exch def
+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+ currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
+ currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
+ currentdict /NOPAUSE known   /NOPAUSE exch def
+@@ -1420,7 +1421,7 @@
  % Set the default screen and BG/UCR.
  /.setdefaultbgucr {
    systemdict /setblackgeneration known {
@@ -9,11 +17,14 @@
    } if
  } bind def
  /.useloresscreen {	% - .useloresscreen <bool>
-@@ -1874,3 +1874,7 @@
- userdict /AGM_preserve_spots false put
+@@ -2018,6 +2019,10 @@
+ % Set up GridFitTT :
  
- % The interpreter will run the initial procedure (start).
+ /GridFitTT where {
 +
 +% unofficial patch:
 +% make it possible to print from within acroread pdf viewer
 +/Default currenthalftone /Halftone defineresource pop
+   mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
+   /GridFitTT undef
+ } if
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps print/ghostscript-gpl/files/patch-lib:gs_setpd.ps
--- /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	Thu Jan  1 01:00:00 1970
+++ print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	Wed Jan 26 20:35:50 2005
@@ -0,0 +1,98 @@
+--- lib/gs_setpd.ps.orig	Tue Sep 14 00:32:19 2004
++++ lib/gs_setpd.ps	Wed Jan 26 20:31:34 2005
+@@ -377,21 +377,42 @@
+   /MediaPosition { dup //null ne { pop //null } if } bind
+ .dicttomark readonly def
+ 
+-% Define the keys used in input attribute matching.
+-/.inputattrkeys [
+-  /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
+-	% The following are documented in Adobe's supplement for v2017.
+-  /LeadingEdge /MediaClass
+-] readonly def
+-% Define other keys used in media selection.
+-/.inputselectionkeys [
+-  /MediaPosition /Orientation
+-] readonly def
+-
+-% Define the keys used in output attribute matching.
+-/.outputattrkeys [
+-  /OutputType
+-] readonly def
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
++% selection policies for setpagedevice.  This is used by CUPS to support
++% the standard Adobe media attributes.
++NOMEDIAATTRS {
++  % Define only PageSize for input attribute matching.
++  /.inputattrkeys [
++    /PageSize
++  ] readonly def
++  % Define no other keys used in media selection.
++  /.inputselectionkeys [
++    /noInputSelectionsKeys
++  ] readonly def
++
++  % Define no keys used in output attribute matching.
++  /.outputattrkeys [
++    /noOutputAttrKeys
++  ] readonly def
++} {
++  % Define the keys used in input attribute matching.
++  /.inputattrkeys [
++    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
++	  % The following are documented in Adobe's supplement for v2017.
++    /LeadingEdge /MediaClass
++  ] readonly def
++  % Define other keys used in media selection.
++  /.inputselectionkeys [
++    /MediaPosition /Orientation
++  ] readonly def
++
++  % Define the keys used in output attribute matching.
++  /.outputattrkeys [
++    /OutputType
++  ] readonly def
++} ifelse
+ 
+ % Define all the parameters that should always be copied to the merged
+ % dictionary.
+@@ -420,7 +441,13 @@
+   /PageSize //false		% obsolete alias for .MediaSize
+   /InputAttributes //false
+   .inputattrkeys
+-    { dup /PageSize eq
++    % M. Sweet, Easy Software Products:
++    %
++    % Treat LeadingEdge like PageSize so that a common Ghostscript driver
++    % doesn't need the NOMEDIAATTRS definition.
++    %
++    % { dup /PageSize eq
++    { dup dup /PageSize eq exch /LeadingEdge eq or
+        { pop }
+        { { 2 index /InputAttributes .knownget { //null eq } { //true } ifelse } }
+       ifelse
+@@ -501,11 +528,22 @@
+ % They are expected to consume the top 2 operands.
+ % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
+ % the same as 0, i.e., we signal an error.
++%
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
++% selection policies for setpagedevice.  This is used by CUPS to support
++% the standard Adobe media attributes.
+   0 {		% Set errorinfo and signal a configurationerror.
++      NOMEDIAATTRS {
++        % NOMEDIAATTRS means that the default policy is 7...
++        pop 2 index exch 7 put
++      } {
+ 	pop dup 4 index exch get 2 array astore
+ 	$error /errorinfo 3 -1 roll put
+ 	cleartomark
+ 	/setpagedevice load /configurationerror signalerror
++      } ifelse
+   } bind
+   1 {		% Roll back the failed request to its previous status.
+ SETPDDEBUG { (Rolling back.) = pstack flush } if
--- patch-ghostscript-gpl ends here ---
How-To-Repeat: 	Please, test with care before import
	Not sure of corner cases
Comment 1 tkato432 2005-01-27 10:12:16 UTC
Though looks pretty good in general, there are a few things
to repair.

Here is a reworked patchset.


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	print_cups-pstoraster.diff
#	print_ghostscript-afpl.diff
#	print_ghostscript-gnu.diff
#	print_ghostscript-gpl.diff
#
echo x - print_cups-pstoraster.diff
sed 's/^X//' >print_cups-pstoraster.diff << 'END-of-print_cups-pstoraster.diff'
Xdiff -urN /usr/ports/print/cups-pstoraster/Makefile print/cups-pstoraster/Makefile
X--- /usr/ports/print/cups-pstoraster/Makefile	Fri Dec 17 13:57:42 2004
X+++ print/cups-pstoraster/Makefile	Thu Jan 27 19:05:36 2005
X@@ -6,27 +6,26 @@
X #
X 
X PORTNAME=	cups-pstoraster
X-PORTVERSION=	7.07
X-PORTREVISION=	3
X+PORTVERSION=	${CUPS_PORTVER}
X+PORTREVISION=	${CUPS_PORTREV}
X+PORTEPOCH=	1
X CATEGORIES=	print
X-MASTER_SITES=	${MASTER_SITE_SOURCEFORGE} \
X-		ftp://ftp.easysw.com/pub/ghostscript/
X-MASTER_SITE_SUBDIR=	ghostscript espgs
X-DISTFILES=	ghostscript-${PORTVERSION}${EXTRACT_SUFX} \
X-		espgs-${ESPGS_VER}-source${EXTRACT_SUFX}
X-DIST_SUBDIR=	ghostscript
X+MASTER_SITES=	${CUPS_MASTER_SITES}
X 
X MAINTAINER=	ports@FreeBSD.org
X-COMMENT=	GNU Postscript interpreter for CUPS printing to non-PS printers
X+COMMENT=	Postscript interpreter for CUPS printing to non-PS printers
X 
X+PATCH_DEPENDS=	${NONEXISTENT}:${PORTSDIR}/${GHOSTSCRIPT_PORT}:patch
X LIB_DEPENDS=	cups.2:${PORTSDIR}/print/cups-base
X-RUN_DEPENDS=	${LOCALBASE}/share/ghostscript/${PORTVERSION}/lib/gs_init.ps:${PORTSDIR}/print/ghostscript-gnu
X 
X-ESPGS_VER=	7.07.1
X-ESPGS_WRKSRC=	${WRKDIR}/espgs-${ESPGS_VER}/pstoraster
X-WRKSRC=		${WRKDIR}/ghostscript-${PORTVERSION}
X+EXTRACT_AFTER_ARGS=	| ${TAR} -xf - cups-${CUPS_VERSION}/pstoraster
X+
X+MD5_FILE=	${.CURDIR}/../../print/cups/distinfo
X+ESPGS_WRKSRC=	${WRKDIR}/cups-${CUPS_VERSION}/pstoraster
X+WRKSRC=		${WRKDIRPREFIX}${PORTSDIR}/${GHOSTSCRIPT_PORT}/work/ghostscript
X 
X USE_BZIP2=	yes
X+USE_GHOTSCRIPT_RUN=	yes
X USE_REINPLACE=	yes
X USE_GMAKE=	yes
X GNU_CONFIGURE=	yes
X@@ -71,5 +70,12 @@
X .endfor
X 
X .include "${.CURDIR}/../../print/cups/Makefile.common"
X+
X+.if ${CUPS_REVISION} < 1
X+DISTNAME=	cups-${CUPS_VERSION}-source
X+.else
X+DISTNAME=	cups-${CUPS_VERSION}-${CUPS_REVISION}-source
X+.endif
X+
X .include <bsd.port.pre.mk>
X .include <bsd.port.post.mk>
Xdiff -urN /usr/ports/print/cups-pstoraster/distinfo print/cups-pstoraster/distinfo
X--- /usr/ports/print/cups-pstoraster/distinfo	Mon Nov 15 14:25:11 2004
X+++ print/cups-pstoraster/distinfo	Thu Jan  1 09:00:00 1970
X@@ -1,4 +0,0 @@
X-MD5 (ghostscript/ghostscript-7.07.tar.bz2) = 85fd16cdc8232e5e3679a3a7e30a3359
X-SIZE (ghostscript/ghostscript-7.07.tar.bz2) = 4138372
X-MD5 (ghostscript/espgs-7.07.1-source.tar.bz2) = d30bf5c09f2c7caa8291f6305cf03044
X-SIZE (ghostscript/espgs-7.07.1-source.tar.bz2) = 5400198
Xdiff -urN /usr/ports/print/cups-pstoraster/files/patch-src:genarch.c print/cups-pstoraster/files/patch-src:genarch.c
X--- /usr/ports/print/cups-pstoraster/files/patch-src:genarch.c	Thu Jul 25 12:00:17 2002
X+++ print/cups-pstoraster/files/patch-src:genarch.c	Thu Jan  1 09:00:00 1970
X@@ -1,34 +0,0 @@
X---- src/genarch.c.orig	Tue Jun  5 15:38:57 2001
X-+++ src/genarch.c	Wed Jun 20 04:17:42 2001
X-@@ -41,6 +41,7 @@
X-     fprintf(f, "\n\t /* ---------------- %s ---------------- */\n\n", str);
X- }
X- 
X-+#ifndef __FreeBSD__
X- private clock_t
X- time_clear(char *buf, int bsize, int nreps)
X- {
X-@@ -51,6 +52,7 @@
X- 	memset(buf, 0, bsize);
X-     return clock() - t;
X- }
X-+#endif /* __FreeBSD__ */
X- 
X- private void
X- define(FILE *f, const char *str)
X-@@ -181,6 +183,7 @@
X-     fprintf(f, "((unsigned long)~0L + (unsigned long)0)\n");
X- #undef PRINT_MAX
X- 
X-+#ifndef __FreeBSD__
X-     section(f, "Cache sizes");
X- 
X-     /*
X-@@ -241,6 +244,7 @@
X- 	}
X- 	define_int(f, "ARCH_CACHE2_SIZE", bsize >> 1);
X-     }
X-+#endif /* __FreeBSD__ */
X- 
X-     section(f, "Miscellaneous");
X- 
Xdiff -urN /usr/ports/print/cups-pstoraster/files/patch-src:gxobj.h print/cups-pstoraster/files/patch-src:gxobj.h
X--- /usr/ports/print/cups-pstoraster/files/patch-src:gxobj.h	Sat Nov 27 15:18:02 2004
X+++ print/cups-pstoraster/files/patch-src:gxobj.h	Thu Jan  1 09:00:00 1970
X@@ -1,17 +0,0 @@
X---- src/gxobj.h.orig	Fri Feb 22 19:45:59 2002
X-+++ src/gxobj.h	Thu Dec 19 00:16:57 2002
X-@@ -99,10 +99,14 @@
X-  * The final | is because back pointer values are divided by obj_back_scale,
X-  * so objects must be aligned at least 0 mod obj_back_scale.
X-  */
X-+#if !defined(__ia64__) && !defined(__amd64__)
X- #define obj_align_mod\
X-   (((arch_align_long_mod - 1) | (arch_align_ptr_mod - 1) |\
X-     (arch_align_double_mod - 1) | (align_bitmap_mod - 1) |\
X-     (obj_back_scale - 1)) + 1)
X-+#else
X-+#define obj_align_mod	16
X-+#endif
X- /* The only possible values for obj_align_mod are 4, 8, or 16.... */
X- #if obj_align_mod == 4
X- #  define log2_obj_align_mod 2
Xdiff -urN /usr/ports/print/cups-pstoraster/pkg-descr print/cups-pstoraster/pkg-descr
X--- /usr/ports/print/cups-pstoraster/pkg-descr	Thu Jul 25 12:00:14 2002
X+++ print/cups-pstoraster/pkg-descr	Thu Jan 27 18:00:45 2005
X@@ -1,12 +1,4 @@
X-Ghostscript is the well-known PostScript interpreter which is available for
X-all common and most esoteric platforms and supports many different printers
X-and some displays.
X+This package provides the pstoraster facility, which allows CUPS to convert
X+PostScript data into CUPS raster data.
X 
X-Versions entitled "GNU Ghostscript" are distributed with the GNU General
X-Public License, which allows free use, and free copying and redistribution
X-under certain conditions (including, in some cases, commercial distribution).
X-
X-This distribution is based on GNU Ghostscript and provides the "driver" for
X-CUPS that supports non-PostScript printer drivers within CUPS.
X-
X-WWW: http://www.cups.org/ghostscript.html
X+WWW: http://www.cups.org/
END-of-print_cups-pstoraster.diff
echo x - print_ghostscript-afpl.diff
sed 's/^X//' >print_ghostscript-afpl.diff << 'END-of-print_ghostscript-afpl.diff'
Xdiff -urN /usr/ports/print/ghostscript-afpl/Makefile print/ghostscript-afpl/Makefile
X--- /usr/ports/print/ghostscript-afpl/Makefile	Sat Jan  1 05:28:12 2005
X+++ print/ghostscript-afpl/Makefile	Thu Jan 27 17:37:18 2005
X@@ -55,6 +55,9 @@
X 
X NO_CDROM=	"Can only be distributed for free"
X 
X+# normalize WRKSRC so things like cups-pstoraster may work
X+WRKSRC=		${WRKDIR}/${PORTNAME}
X+
X CONFLICTS=	ghostscript-gnu* ghostscript-gpl*
X USE_BZIP2=	yes
X USE_REINPLACE=	yes
X@@ -227,6 +230,8 @@
X 
X post-extract:
X 	${ECHO_MSG} ">>> in post-extract ..."
X+# normazile WRKSRC so things like cups-pstoraster may work
X+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
X # ** 3rd party driver **
X # Note: don't forget to add those devices in scripts/configure,
X # which update unix-gcc.mak to build gs with these new devices!
Xdiff -urN /usr/ports/print/ghostscript-afpl/Makefile.inc print/ghostscript-afpl/Makefile.inc
X--- /usr/ports/print/ghostscript-afpl/Makefile.inc	Sat Jan  1 05:28:12 2005
X+++ print/ghostscript-afpl/Makefile.inc	Thu Jan 27 17:34:34 2005
X@@ -1,5 +1,5 @@
X # $FreeBSD: ports/print/ghostscript-afpl/Makefile.inc,v 1.15 2004/12/31 13:32:24 krion Exp $
X 
X GS_VERSION=	8.50
X-GS_REVISION=	0
X+GS_REVISION=	1
X GS_EPOCH=	1
Xdiff -urN /usr/ports/print/ghostscript-afpl/files/patch-lib:gs_init.ps print/ghostscript-afpl/files/patch-lib:gs_init.ps
X--- /usr/ports/print/ghostscript-afpl/files/patch-lib:gs_init.ps	Wed Apr  3 11:59:13 2002
X+++ print/ghostscript-afpl/files/patch-lib:gs_init.ps	Thu Jan 27 18:36:59 2005
X@@ -1,6 +1,14 @@
X---- lib/gs_init.ps.orig	Fri Feb  1 12:25:45 2002
X-+++ lib/gs_init.ps	Sat Feb  9 01:42:10 2002
X-@@ -1274,7 +1274,7 @@
X+--- lib/gs_init.ps.orig	Sat Dec 11 08:22:44 2004
X++++ lib/gs_init.ps	Thu Jan 27 18:36:46 2005
X+@@ -146,6 +146,7 @@
X+ currentdict /NOGC known   /NOGC exch def
X+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
X+ currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
X++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
X+ currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
X+ currentdict /NOPAUSE known   /NOPAUSE exch def
X+ currentdict /NOPLATFONTS known   /NOPLATFONTS exch def
X+@@ -1425,7 +1426,7 @@
X  % Set the default screen and BG/UCR.
X  /.setdefaultbgucr {
X    systemdict /setblackgeneration known {
X@@ -9,11 +17,14 @@
X    } if
X  } bind def
X  /.useloresscreen {	% - .useloresscreen <bool>
X-@@ -1874,3 +1874,7 @@
X- userdict /AGM_preserve_spots false put
X+@@ -2023,6 +2024,10 @@
X+ % Set up GridFitTT :
X  
X- % The interpreter will run the initial procedure (start).
X+ /GridFitTT where {
X +
X +% unofficial patch:
X +% make it possible to print from within acroread pdf viewer
X +/Default currenthalftone /Halftone defineresource pop
X+   mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
X+   /GridFitTT undef
X+ } if
Xdiff -urN /usr/ports/print/ghostscript-afpl/files/patch-lib:gs_setpd.ps print/ghostscript-afpl/files/patch-lib:gs_setpd.ps
X--- /usr/ports/print/ghostscript-afpl/files/patch-lib:gs_setpd.ps	Thu Jan  1 09:00:00 1970
X+++ print/ghostscript-afpl/files/patch-lib:gs_setpd.ps	Thu Jan 27 18:37:44 2005
X@@ -0,0 +1,98 @@
X+--- lib/gs_setpd.ps.orig	Tue Sep 14 07:32:19 2004
X++++ lib/gs_setpd.ps	Thu Jan 27 18:33:39 2005
X+@@ -377,21 +377,42 @@
X+   /MediaPosition { dup //null ne { pop //null } if } bind
X+ .dicttomark readonly def
X+ 
X+-% Define the keys used in input attribute matching.
X+-/.inputattrkeys [
X+-  /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
X+-	% The following are documented in Adobe's supplement for v2017.
X+-  /LeadingEdge /MediaClass
X+-] readonly def
X+-% Define other keys used in media selection.
X+-/.inputselectionkeys [
X+-  /MediaPosition /Orientation
X+-] readonly def
X+-
X+-% Define the keys used in output attribute matching.
X+-/.outputattrkeys [
X+-  /OutputType
X+-] readonly def
X++% M. Sweet, Easy Software Products:
X++%
X++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
X++% selection policies for setpagedevice.  This is used by CUPS to support
X++% the standard Adobe media attributes.
X++NOMEDIAATTRS {
X++  % Define only PageSize for input attribute matching.
X++  /.inputattrkeys [
X++    /PageSize
X++  ] readonly def
X++  % Define no other keys used in media selection.
X++  /.inputselectionkeys [
X++    /noInputSelectionsKeys
X++  ] readonly def
X++
X++  % Define no keys used in output attribute matching.
X++  /.outputattrkeys [
X++    /noOutputAttrKeys
X++  ] readonly def
X++} {
X++  % Define the keys used in input attribute matching.
X++  /.inputattrkeys [
X++    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
X++	  % The following are documented in Adobe's supplement for v2017.
X++    /LeadingEdge /MediaClass
X++  ] readonly def
X++  % Define other keys used in media selection.
X++  /.inputselectionkeys [
X++    /MediaPosition /Orientation
X++  ] readonly def
X++
X++  % Define the keys used in output attribute matching.
X++  /.outputattrkeys [
X++    /OutputType
X++  ] readonly def
X++} ifelse
X+ 
X+ % Define all the parameters that should always be copied to the merged
X+ % dictionary.
X+@@ -420,7 +441,13 @@
X+   /PageSize //false		% obsolete alias for .MediaSize
X+   /InputAttributes //false
X+   .inputattrkeys
X+-    { dup /PageSize eq
X++    % M. Sweet, Easy Software Products:
X++    %
X++    % Treat LeadingEdge like PageSize so that a common Ghostscript driver
X++    % doesn't need the NOMEDIAATTRS definition.
X++    %
X++    % { dup /PageSize eq
X++    { dup dup /PageSize eq exch /LeadingEdge eq or
X+        { pop }
X+        { { 2 index /InputAttributes .knownget { //null eq } { //true } ifelse } }
X+       ifelse
X+@@ -501,11 +528,22 @@
X+ % They are expected to consume the top 2 operands.
X+ % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
X+ % the same as 0, i.e., we signal an error.
X++%
X++% M. Sweet, Easy Software Products:
X++%
X++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
X++% selection policies for setpagedevice.  This is used by CUPS to support
X++% the standard Adobe media attributes.
X+   0 {		% Set errorinfo and signal a configurationerror.
X++      NOMEDIAATTRS {
X++        % NOMEDIAATTRS means that the default policy is 7...
X++        pop 2 index exch 7 put
X++      } {
X+ 	pop dup 4 index exch get 2 array astore
X+ 	$error /errorinfo 3 -1 roll put
X+ 	cleartomark
X+ 	/setpagedevice load /configurationerror signalerror
X++      } ifelse
X+   } bind
X+   1 {		% Roll back the failed request to its previous status.
X+ SETPDDEBUG { (Rolling back.) = pstack flush } if
END-of-print_ghostscript-afpl.diff
echo x - print_ghostscript-gnu.diff
sed 's/^X//' >print_ghostscript-gnu.diff << 'END-of-print_ghostscript-gnu.diff'
Xdiff -urN /usr/ports/print/ghostscript-gnu/Makefile print/ghostscript-gnu/Makefile
X--- /usr/ports/print/ghostscript-gnu/Makefile	Tue Jan 25 14:41:55 2005
X+++ print/ghostscript-gnu/Makefile	Thu Jan 27 17:39:29 2005
X@@ -59,6 +59,9 @@
X 		png.5:${PORTSDIR}/graphics/png
X RUN_DEPENDS=	${LOCALBASE}/share/ghostscript/fonts/a010013l.pfb:${PORTSDIR}/print/gsfonts
X 
X+# normazile WRKSRC so things like cups-pstoraster may work
X+WRKSRC=		${WRKDIR}/${PORTNAME}
X+
X CONFLICTS=	ghostscript-afpl* ghostscript-gpl*
X USE_BZIP2=	yes
X USE_REINPLACE=	yes
X@@ -263,6 +266,8 @@
X 
X post-extract:
X 	${ECHO_MSG} ">>> in post-extract ..."
X+# normazile WRKSRC so things like cups-pstoraster may work
X+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
X # ** 3rd party driver **
X # Note: don't forget to add those devices in scripts/configure,
X # which update unix-gcc.mak to build gs with these new devices!
END-of-print_ghostscript-gnu.diff
echo x - print_ghostscript-gpl.diff
sed 's/^X//' >print_ghostscript-gpl.diff << 'END-of-print_ghostscript-gpl.diff'
Xdiff -urN /usr/ports/print/ghostscript-gpl/Makefile print/ghostscript-gpl/Makefile
X--- /usr/ports/print/ghostscript-gpl/Makefile	Sat Oct 16 16:28:33 2004
X+++ print/ghostscript-gpl/Makefile	Thu Jan 27 17:38:19 2005
X@@ -53,6 +53,9 @@
X 		png.5:${PORTSDIR}/graphics/png
X RUN_DEPENDS=	${LOCALBASE}/share/ghostscript/fonts/a010013l.pfb:${PORTSDIR}/print/gsfonts
X 
X+# normalize WRKSRC so things like cups-pstoraster may work
X+WRKSRC=		${WRKDIR}/${PORTNAME}
X+
X CONFLICTS=	ghostscript-afpl* ghostscript-gnu*
X USE_BZIP2=	yes
X USE_REINPLACE=	yes
X@@ -223,6 +226,8 @@
X 
X post-extract:
X 	${ECHO_MSG} ">>> in post-extract ..."
X+# normazile WRKSRC so things like cups-pstoraster may work
X+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
X # ** 3rd party driver **
X # Note: don't forget to add those devices in scripts/configure,
X # which update unix-gcc.mak to build gs with these new devices!
Xdiff -urN /usr/ports/print/ghostscript-gpl/Makefile.inc print/ghostscript-gpl/Makefile.inc
X--- /usr/ports/print/ghostscript-gpl/Makefile.inc	Sat Oct 16 16:28:33 2004
X+++ print/ghostscript-gpl/Makefile.inc	Thu Jan 27 17:34:42 2005
X@@ -1,5 +1,5 @@
X # $FreeBSD: ports/print/ghostscript-gpl/Makefile.inc,v 1.13 2004/10/16 07:28:33 krion Exp $
X 
X GS_VERSION=	8.15
X-GS_REVISION=	0
X+GS_REVISION=	1
X GS_EPOCH=	0
Xdiff -urN /usr/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps print/ghostscript-gpl/files/patch-lib:gs_init.ps
X--- /usr/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps	Wed Apr  3 11:59:13 2002
X+++ print/ghostscript-gpl/files/patch-lib:gs_init.ps	Thu Jan 27 18:31:37 2005
X@@ -1,6 +1,14 @@
X---- lib/gs_init.ps.orig	Fri Feb  1 12:25:45 2002
X-+++ lib/gs_init.ps	Sat Feb  9 01:42:10 2002
X-@@ -1274,7 +1274,7 @@
X+--- lib/gs_init.ps.orig	Tue Sep  7 00:40:52 2004
X++++ lib/gs_init.ps	Thu Jan 27 18:31:25 2005
X+@@ -140,6 +140,7 @@
X+ currentdict /NOFONTPATH known   /NOFONTPATH exch def
X+ currentdict /NOGC known   /NOGC exch def
X+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
X++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
X+ currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
X+ currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
X+ currentdict /NOPAUSE known   /NOPAUSE exch def
X+@@ -1420,7 +1421,7 @@
X  % Set the default screen and BG/UCR.
X  /.setdefaultbgucr {
X    systemdict /setblackgeneration known {
X@@ -9,11 +17,14 @@
X    } if
X  } bind def
X  /.useloresscreen {	% - .useloresscreen <bool>
X-@@ -1874,3 +1874,7 @@
X- userdict /AGM_preserve_spots false put
X+@@ -2018,6 +2019,10 @@
X+ % Set up GridFitTT :
X  
X- % The interpreter will run the initial procedure (start).
X+ /GridFitTT where {
X +
X +% unofficial patch:
X +% make it possible to print from within acroread pdf viewer
X +/Default currenthalftone /Halftone defineresource pop
X+   mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
X+   /GridFitTT undef
X+ } if
Xdiff -urN /usr/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps print/ghostscript-gpl/files/patch-lib:gs_setpd.ps
X--- /usr/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	Thu Jan  1 09:00:00 1970
X+++ print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	Thu Jan 27 18:34:03 2005
X@@ -0,0 +1,98 @@
X+--- lib/gs_setpd.ps.orig	Tue Sep 14 07:32:19 2004
X++++ lib/gs_setpd.ps	Thu Jan 27 18:33:39 2005
X+@@ -377,21 +377,42 @@
X+   /MediaPosition { dup //null ne { pop //null } if } bind
X+ .dicttomark readonly def
X+ 
X+-% Define the keys used in input attribute matching.
X+-/.inputattrkeys [
X+-  /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
X+-	% The following are documented in Adobe's supplement for v2017.
X+-  /LeadingEdge /MediaClass
X+-] readonly def
X+-% Define other keys used in media selection.
X+-/.inputselectionkeys [
X+-  /MediaPosition /Orientation
X+-] readonly def
X+-
X+-% Define the keys used in output attribute matching.
X+-/.outputattrkeys [
X+-  /OutputType
X+-] readonly def
X++% M. Sweet, Easy Software Products:
X++%
X++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
X++% selection policies for setpagedevice.  This is used by CUPS to support
X++% the standard Adobe media attributes.
X++NOMEDIAATTRS {
X++  % Define only PageSize for input attribute matching.
X++  /.inputattrkeys [
X++    /PageSize
X++  ] readonly def
X++  % Define no other keys used in media selection.
X++  /.inputselectionkeys [
X++    /noInputSelectionsKeys
X++  ] readonly def
X++
X++  % Define no keys used in output attribute matching.
X++  /.outputattrkeys [
X++    /noOutputAttrKeys
X++  ] readonly def
X++} {
X++  % Define the keys used in input attribute matching.
X++  /.inputattrkeys [
X++    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
X++	  % The following are documented in Adobe's supplement for v2017.
X++    /LeadingEdge /MediaClass
X++  ] readonly def
X++  % Define other keys used in media selection.
X++  /.inputselectionkeys [
X++    /MediaPosition /Orientation
X++  ] readonly def
X++
X++  % Define the keys used in output attribute matching.
X++  /.outputattrkeys [
X++    /OutputType
X++  ] readonly def
X++} ifelse
X+ 
X+ % Define all the parameters that should always be copied to the merged
X+ % dictionary.
X+@@ -420,7 +441,13 @@
X+   /PageSize //false		% obsolete alias for .MediaSize
X+   /InputAttributes //false
X+   .inputattrkeys
X+-    { dup /PageSize eq
X++    % M. Sweet, Easy Software Products:
X++    %
X++    % Treat LeadingEdge like PageSize so that a common Ghostscript driver
X++    % doesn't need the NOMEDIAATTRS definition.
X++    %
X++    % { dup /PageSize eq
X++    { dup dup /PageSize eq exch /LeadingEdge eq or
X+        { pop }
X+        { { 2 index /InputAttributes .knownget { //null eq } { //true } ifelse } }
X+       ifelse
X+@@ -501,11 +528,22 @@
X+ % They are expected to consume the top 2 operands.
X+ % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
X+ % the same as 0, i.e., we signal an error.
X++%
X++% M. Sweet, Easy Software Products:
X++%
X++% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
X++% selection policies for setpagedevice.  This is used by CUPS to support
X++% the standard Adobe media attributes.
X+   0 {		% Set errorinfo and signal a configurationerror.
X++      NOMEDIAATTRS {
X++        % NOMEDIAATTRS means that the default policy is 7...
X++        pop 2 index exch 7 put
X++      } {
X+ 	pop dup 4 index exch get 2 array astore
X+ 	$error /errorinfo 3 -1 roll put
X+ 	cleartomark
X+ 	/setpagedevice load /configurationerror signalerror
X++      } ifelse
X+   } bind
X+   1 {		% Roll back the failed request to its previous status.
X+ SETPDDEBUG { (Rolling back.) = pstack flush } if
END-of-print_ghostscript-gpl.diff
exit
Comment 2 Jose M Rodriguez 2005-03-20 16:11:13 UTC
Well
I just finish and do a preliminary test of this patchset

This must be ready to test on the build cluster, if taking this before 
5.4 is desired.

This include things from KATO Tsuguru rework, fixes from latest espgs 
(8.15rc2) and the pcl3 driver in gs-gpl

This also include the minimal changes to bsd.port.mk making gs-gpl the 
default gs and adding a WITH_GHOSTSCRIPT_GNU knob, so must be approved 
by port manager

Thanks in advance,
--
  josemi

--- patch-gs begins here ---
--- /usr/ports/Mk/bsd.port.mk	Fri Mar 18 09:16:19 2005
+++ Mk/bsd.port.mk	Sun Mar 20 12:02:50 2005
@@ -1786,23 +1786,19 @@
 # compatible functionality.
 .if !defined(WITHOUT_X11)
 .if defined(WITH_GHOSTSCRIPT_AFPL)
-.if ${WITH_GHOSTSCRIPT_AFPL} == yes
 GHOSTSCRIPT_PORT?=	print/ghostscript-afpl
-.else
+.elif defined(WITH_GHOSTSCRIPT_GNU)
 GHOSTSCRIPT_PORT?=	print/ghostscript-gnu
-.endif
 .else
-GHOSTSCRIPT_PORT?=	print/ghostscript-gnu
+GHOSTSCRIPT_PORT?=	print/ghostscript-gpl
 .endif
 .else
 .if defined(WITH_GHOSTSCRIPT_AFPL)
-.if ${WITH_GHOSTSCRIPT_AFPL} == yes
 GHOSTSCRIPT_PORT?=	print/ghostscript-afpl-nox11
-.else
+.elif defined(WITH_GHOSTSCRIPT_GNU)
 GHOSTSCRIPT_PORT?=	print/ghostscript-gnu-nox11
-.endif
 .else
-GHOSTSCRIPT_PORT?=	print/ghostscript-gnu-nox11
+GHOSTSCRIPT_PORT?=	print/ghostscript-gpl-nox11
 .endif
 .endif
 
diff -Nru /usr/HEAD/ports/print/ghostscript-gnu/Makefile 
print/ghostscript-gnu/Makefile
--- /usr/HEAD/ports/print/ghostscript-gnu/Makefile	Mon Jan 24 21:21:14 
2005
+++ print/ghostscript-gnu/Makefile	Sun Mar 20 12:36:53 2005
@@ -114,6 +114,9 @@
 
 GS_SRCS=	${DISTNAME}${EXTRACT_SUFX}
 
+# normalize WRKSRC so things like cups-pstoraster may work
+WRKSRC=		${WRKDIR}/ghostscript
+
 # Additional Drivers:
 
 # HP8XX - additional driver for HP DeskJet 
812C/815C/832C/880C/882C/895C
@@ -263,6 +266,8 @@
 
 post-extract:
 	${ECHO_MSG} ">>> in post-extract ..."
+# normazile WRKSRC so things like cups-pstoraster may work
+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
 # ** 3rd party driver **
 # Note: don't forget to add those devices in scripts/configure,
 # which update unix-gcc.mak to build gs with these new devices!
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/Makefile 
print/ghostscript-gpl/Makefile
--- /usr/HEAD/ports/print/ghostscript-gpl/Makefile	Sat Oct 16 09:28:33 
2004
+++ print/ghostscript-gpl/Makefile	Sun Mar 20 12:38:52 2005
@@ -12,6 +12,7 @@
 CATEGORIES=	print
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:S/$/:gs_srcs,bjc250/} \
 		http://www.gelhaus.net/hp880c/1.4beta/:hp8xx \
+		http://home.t-online.de/home/Martin.Lottermoser/pcl3dist/:pcl3 \
 		http://www.harsch.net/Download/:dj970 \
 		http://plaza26.mbn.or.jp/~higamasa/gdevmd2k/:md2k \
 		${MASTER_SITE_PORTS_JP:S/$/:ports_jp,ports_jp_gs/} \
@@ -29,6 +30,7 @@
 PKGNAMESUFFIX=	-gpl
 DISTFILES=	${GS_SRCS}:gs_srcs \
 		${HP8XX_SRCS}:hp8xx \
+		${PCL3_SRCS}:pcl3 \
 		${DJ970_SRCS}:dj970 \
 		${MD2K_SRCS}:md2k \
 		${ALPS_SRCS}:ports_jp_gs \
@@ -59,6 +61,9 @@
 USE_GMAKE=	yes
 MAKE_ENV=	CC="${CC}" CXX="${CXX}" CFLAGS_STANDARD="${CFLAGS}" \
 		XCFLAGS="${XCFLAGS}"
+ALL_TARGET=	all
+INSTALL_TARGET= install
+
 PLIST_SUB=	GS_VERSION="${GS_VERSION}" \
 		CIDFONTDIR=${CIDFONTDIR}
 
@@ -114,6 +119,9 @@
 GS_SRCS=	${DISTNAME}${EXTRACT_SUFX}
 CIDFONTDIR=	${PREFIX}/share/ghostscript/${GS_VERSION}/Resource
 
+# normalize WRKSRC so things like cups-pstoraster may work
+WRKSRC=		${WRKDIR}/ghostscript
+
 # Additional Drivers:
 
 # HP8XX - additional driver for HP DeskJet 
812C/815C/832C/880C/882C/895C
@@ -121,6 +129,19 @@
 HP8XX=		cdj880
 HP8XX_SRCS=	gdevcd8.tar.gz
 
+# PCL3 (hpdj successor now in RELEASE quality)
+# additional driver for HP PCL3 printers, by Martin Lottermoser
+# http://home.t-online.de/home/Martin.Lottermoser/pcl3.html
+ALL_TARGET+=	pcl3opts
+INSTALL_TARGET+=	pcl3-install
+PCL3=		pcl3
+PCL3_VERS=	3.3
+PCL3_NAME=	${PCL3}-${PCL3_VERS}
+PCL3_SRCS=	${PCL3_NAME}.tar.gz
+PCL3_MAN1=	gs-pcl3.1 pcl3opts.1
+MAN1+=		${PCL3_MAN1}
+
+#
 # DJ970 - additional driver for HP DeskJet 970, supports duplex 
printing
 # http://www.harsch.net/Ghostscript/ghostscript.html
 DJ970=		gdevdj9
@@ -223,6 +244,8 @@
 
 post-extract:
 	${ECHO_MSG} ">>> in post-extract ..."
+# normazile WRKSRC so things like cups-pstoraster may work
+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
 # ** 3rd party driver **
 # Note: don't forget to add those devices in scripts/configure,
 # which update unix-gcc.mak to build gs with these new devices!
@@ -230,6 +253,12 @@
 # for HP8XX driver
 	${ECHO_MSG} ">>>   extracting ${HP8XX_SRCS} ..."
 	${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${DIST_SUBDIR}/${HP8XX_SRCS}
+# for PCL3 driver
+	${ECHO_MSG} ">>>   extracting ${PCL3_SRCS} ..."
+	${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${DIST_SUBDIR}/${PCL3_SRCS}
+	${LN} -sf ${PCL3_NAME} ${WRKSRC}/${PCL3}
+	${TAR} -C ${WRKSRC}/${PCL3_NAME} -xf \
+		${WRKSRC}/${PCL3_NAME}/${PCL3}.tar
 # for DJ970 driver
 	${ECHO_MSG} ">>>   extracting ${DJ970_SRCS} ..."
 	${CP} ${DISTDIR}/${DIST_SUBDIR}/${DJ970_SRCS} ${WRKSRC}/src
@@ -301,6 +330,10 @@
 	${ECHO_MSG} ">>>   adding ${HP8XX} driver to contrib.mak ..."
 	${CAT} ${FILESDIR}/cdj850.contrib.mak \
 		>> ${WRKSRC}/src/contrib.mak
+# for PCL3 driver
+	${ECHO_MSG} ">>>   adding ${PCL3} driver to contrib.mak ..."
+	${CAT} ${WRKSRC}/${PCL3_NAME}/src/contrib.mak-7.00.add \
+		>> ${WRKSRC}/src/contrib.mak
 # for DJ970 driver
 	${ECHO_MSG} ">>>   adding ${DJ970} driver to contrib.mak ..."
 	${CAT} ${FILESDIR}/dj970.contrib.mak \
@@ -447,6 +480,18 @@
 .else
 	${STRIP_CMD} ${PREFIX}/bin/gs
 .endif
+# for PCL3 driver, stuff which might be interesting for runtime
+	${ECHO_MSG} ">>>   creating ${PCL3} destdir ..."
+	${MKDIR} ${DATADIR}/${GS_VERSION}/${PCL3}
+	${ECHO_MSG} ">>>   installing files in ${PCL3} destdir ..."
+.for i in NEWS BUGS README lib/example.mcf lib/if-pcl3 ps/calign.ps \
+	ps/dumppdd.ps ps/levels-test.ps ps/margins-A4.ps \
+	ps/margins-A4Rotated.ps ps/margins-Env10Rotated.ps \
+	ps/margins-EnvDLRotated.ps ps/margins-Letter.ps \
+	ps/margins-LetterRotated.ps
+	${INSTALL_DATA} ${WRKSRC}/${PCL3_NAME}/${i} \
+		${DATADIR}/${GS_VERSION}/${PCL3}
+.endfor
 # for EPAG driver
 	${ECHO_MSG} ">>>   installing ${EPAG} utility in bindir ..."
 	${INSTALL_PROGRAM} ${WRKSRC}/${EPAG_NAME}/ert ${PREFIX}/bin
@@ -462,6 +507,13 @@
 .if !defined(NOPORTDOCS)
 	${ECHO_MSG} ">>> installing PORTDOC stuff ..."
 	${MKDIR} ${DOCSDIR}/${GS_VERSION}
+# for PCL3 driver
+	${ECHO_MSG} ">>>   installing ${PCL3} docs ..."
+	${MKDIR} ${DOCSDIR}/${GS_VERSION}/${PCL3}
+.for i in NEWS doc/how-to-report.txt
+	${INSTALL_DATA} ${WRKSRC}/${PCL3_NAME}/${i} \
+		${DOCSDIR}/${GS_VERSION}/${PCL3}
+.endfor
 # for MD2K driver
 	${ECHO_MSG} ">>>   installing ${MD2K} docs ..."
 	${MKDIR} ${DOCSDIR}/${GS_VERSION}/${MD2K}
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/Makefile.inc 
print/ghostscript-gpl/Makefile.inc
--- /usr/HEAD/ports/print/ghostscript-gpl/Makefile.inc	Sat Oct 16 
09:28:33 2004
+++ print/ghostscript-gpl/Makefile.inc	Sun Mar 20 11:03:38 2005
@@ -1,5 +1,5 @@
 # $FreeBSD: ports/print/ghostscript-gpl/Makefile.inc,v 1.13 2004/10/16 
07:28:33 krion Exp $
 
 GS_VERSION=	8.15
-GS_REVISION=	0
+GS_REVISION=	1
 GS_EPOCH=	0
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/distinfo 
print/ghostscript-gpl/distinfo
--- /usr/HEAD/ports/print/ghostscript-gpl/distinfo	Sat Oct 16 09:28:33 
2004
+++ print/ghostscript-gpl/distinfo	Sun Mar 20 12:30:17 2005
@@ -2,6 +2,8 @@
 SIZE (ghostscript/ghostscript-8.15.tar.bz2) = 6931694
 MD5 (ghostscript/gdevcd8.tar.gz) = 5ce48bff6082a023199c8ede4aae63a0
 SIZE (ghostscript/gdevcd8.tar.gz) = 24803
+MD5 (ghostscript/pcl3-3.3.tar.gz) = 34e664c2a98b847598f8441f8cac7ab6
+SIZE (ghostscript/pcl3-3.3.tar.gz) = 301470
 MD5 (ghostscript/gdevdj9.c.gz) = 3a9c20c34b79ffab434abfbcc31d1c27
 SIZE (ghostscript/gdevdj9.c.gz) = 20139
 MD5 (ghostscript/gdevmd2k-0.2a.tar.gz) = 
5ed2b4218b8f77cb411f3d2e4509ed24
diff 
-Nru /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps 
print/ghostscript-gpl/files/patch-lib:gs_init.ps
--- /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_init.ps	Wed 
Apr  3 04:59:13 2002
+++ print/ghostscript-gpl/files/patch-lib:gs_init.ps	Sun Mar 20 11:03:38 
2005
@@ -1,6 +1,14 @@
---- lib/gs_init.ps.orig	Fri Feb  1 12:25:45 2002
-+++ lib/gs_init.ps	Sat Feb  9 01:42:10 2002
-@@ -1274,7 +1274,7 @@
+--- lib/gs_init.ps.orig	Wed Jan 26 20:32:16 2005
++++ lib/gs_init.ps	Wed Jan 26 20:31:34 2005
+@@ -140,6 +140,7 @@
+ currentdict /NOFONTPATH known   /NOFONTPATH exch def
+ currentdict /NOGC known   /NOGC exch def
+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+ currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
+ currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
+ currentdict /NOPAUSE known   /NOPAUSE exch def
+@@ -1420,7 +1421,7 @@
  % Set the default screen and BG/UCR.
  /.setdefaultbgucr {
    systemdict /setblackgeneration known {
@@ -9,11 +17,14 @@
    } if
  } bind def
  /.useloresscreen {	% - .useloresscreen <bool>
-@@ -1874,3 +1874,7 @@
- userdict /AGM_preserve_spots false put
+@@ -2018,6 +2019,10 @@
+ % Set up GridFitTT :
  
- % The interpreter will run the initial procedure (start).
+ /GridFitTT where {
 +
 +% unofficial patch:
 +% make it possible to print from within acroread pdf viewer
 +/Default currenthalftone /Halftone defineresource pop
+   mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
+   /GridFitTT undef
+ } if
diff 
-Nru /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps 
print/ghostscript-gpl/files/patch-lib:gs_setpd.ps
--- /usr/HEAD/ports/print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	
Thu Jan  1 01:00:00 1970
+++ print/ghostscript-gpl/files/patch-lib:gs_setpd.ps	Sun Mar 20 
11:03:38 2005
@@ -0,0 +1,98 @@
+--- lib/gs_setpd.ps.orig	Tue Sep 14 00:32:19 2004
++++ lib/gs_setpd.ps	Wed Jan 26 20:31:34 2005
+@@ -377,21 +377,42 @@
+   /MediaPosition { dup //null ne { pop //null } if } bind
+ .dicttomark readonly def
+ 
+-% Define the keys used in input attribute matching.
+-/.inputattrkeys [
+-  /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
+-	% The following are documented in Adobe's supplement for v2017.
+-  /LeadingEdge /MediaClass
+-] readonly def
+-% Define other keys used in media selection.
+-/.inputselectionkeys [
+-  /MediaPosition /Orientation
+-] readonly def
+-
+-% Define the keys used in output attribute matching.
+-/.outputattrkeys [
+-  /OutputType
+-] readonly def
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) 
media
++% selection policies for setpagedevice.  This is used by CUPS to 
support
++% the standard Adobe media attributes.
++NOMEDIAATTRS {
++  % Define only PageSize for input attribute matching.
++  /.inputattrkeys [
++    /PageSize
++  ] readonly def
++  % Define no other keys used in media selection.
++  /.inputselectionkeys [
++    /noInputSelectionsKeys
++  ] readonly def
++
++  % Define no keys used in output attribute matching.
++  /.outputattrkeys [
++    /noOutputAttrKeys
++  ] readonly def
++} {
++  % Define the keys used in input attribute matching.
++  /.inputattrkeys [
++    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
++	  % The following are documented in Adobe's supplement for v2017.
++    /LeadingEdge /MediaClass
++  ] readonly def
++  % Define other keys used in media selection.
++  /.inputselectionkeys [
++    /MediaPosition /Orientation
++  ] readonly def
++
++  % Define the keys used in output attribute matching.
++  /.outputattrkeys [
++    /OutputType
++  ] readonly def
++} ifelse
+ 
+ % Define all the parameters that should always be copied to the merged
+ % dictionary.
+@@ -420,7 +441,13 @@
+   /PageSize //false		% obsolete alias for .MediaSize
+   /InputAttributes //false
+   .inputattrkeys
+-    { dup /PageSize eq
++    % M. Sweet, Easy Software Products:
++    %
++    % Treat LeadingEdge like PageSize so that a common Ghostscript 
driver
++    % doesn't need the NOMEDIAATTRS definition.
++    %
++    % { dup /PageSize eq
++    { dup dup /PageSize eq exch /LeadingEdge eq or
+        { pop }
+        { { 2 index /InputAttributes .knownget { //null eq } { //true } 
ifelse } }
+       ifelse
+@@ -501,11 +528,22 @@
+ % They are expected to consume the top 2 operands.
+ % NOTE: we currently treat all values other than 0, 1, or 7 (for 
PageSize)
+ % the same as 0, i.e., we signal an error.
++%
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) 
media
++% selection policies for setpagedevice.  This is used by CUPS to 
support
++% the standard Adobe media attributes.
+   0 {		% Set errorinfo and signal a configurationerror.
++      NOMEDIAATTRS {
++        % NOMEDIAATTRS means that the default policy is 7...
++        pop 2 index exch 7 put
++      } {
+ 	pop dup 4 index exch get 2 array astore
+ 	$error /errorinfo 3 -1 roll put
+ 	cleartomark
+ 	/setpagedevice load /configurationerror signalerror
++      } ifelse
+   } bind
+   1 {		% Roll back the failed request to its previous status.
+ SETPDDEBUG { (Rolling back.) = pstack flush } if
diff 
-Nru /usr/HEAD/ports/print/ghostscript-gpl/files/patch-pcl3:eprn:eprnrend.c 
print/ghostscript-gpl/files/patch-pcl3:eprn:eprnrend.c
--- /usr/HEAD/ports/print/ghostscript-gpl/files/patch-pcl3:eprn:eprnrend.c	
Thu Jan  1 01:00:00 1970
+++ print/ghostscript-gpl/files/patch-pcl3:eprn:eprnrend.c	Sun Mar 20 
15:38:22 2005
@@ -0,0 +1,170 @@
+--- pcl3/eprn/eprnrend.c.orig	Wed Aug  1 07:12:56 2001
++++ pcl3/eprn/eprnrend.c	Sun Mar 20 15:36:38 2005
+@@ -161,8 +161,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_RGB(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   static const gx_color_value half = gx_max_color_value/2;
+   gx_color_index value = 0;
+   const eprn_Device *dev = (eprn_Device *)device;
+@@ -197,8 +199,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_CMY_or_K(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   static const gx_color_value half = gx_max_color_value/2;
+   gx_color_index value = (CYAN_BIT | MAGENTA_BIT | YELLOW_BIT);
+   const eprn_Device *dev = (eprn_Device *)device;
+@@ -240,8 +244,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_RGB_flex(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   gx_color_index value = 0;
+   gx_color_value step;
+   unsigned int level;
+@@ -284,8 +290,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_CMY_or_K_flex(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   const eprn_Device *dev = (eprn_Device *)device;
+ 
+ #ifdef EPRN_TRACE
+@@ -298,11 +306,18 @@
+   /* Treat pure grey levels differently if we have black. This implies 
that for
+      CMY+K only "true" grey shades will be printed with black ink, all 
others
+      will be mixed from CMY. */
+-  if (dev->eprn.colour_model != eprn_DeviceCMY && red == green && 
green == blue)
+-    return eprn_map_cmyk_color_flex(device, 0, 0, 0, 
gx_max_color_value - red);
++  gx_color_value tmpcv[4];
++  if (dev->eprn.colour_model != eprn_DeviceCMY && red == green && 
green == blue) {
++    tmpcv[0] = 0; tmpcv[1] = 0; tmpcv[2] = 0;
++    tmpcv[3] = gx_max_color_value - red;
++    return eprn_map_cmyk_color_flex(device, tmpcv);
+ 
+-  return eprn_map_cmyk_color_flex(device, gx_max_color_value - red,
+-    gx_max_color_value - green, gx_max_color_value - blue, 0);
++  }
++  tmpcv[0] = gx_max_color_value - red; 
++  tmpcv[1] = gx_max_color_value - green; 
++  tmpcv[2] = gx_max_color_value - blue; 
++  tmpcv[3] = 0;
++  return eprn_map_cmyk_color_flex(device, tmpcv);
+ }
+ 
+ /******************************************************************************
+@@ -315,8 +330,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_RGB_max(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   gx_color_index value;
+ 
+ #ifdef EPRN_TRACE
+@@ -345,8 +362,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_rgb_color_for_CMY_or_K_max(gx_device *device,
+-  gx_color_value red, gx_color_value green, gx_color_value blue)
++  const gx_color_value cv[])
+ {
++  gx_color_value red, green, blue;
++  red = cv[0]; green = cv[1]; blue = cv[2];
+   const eprn_Device *dev = (eprn_Device *)device;
+ 
+ #ifdef EPRN_TRACE
+@@ -356,13 +375,19 @@
+     red, green, blue);
+ #endif
+ 
+-  if (dev->eprn.colour_model == eprn_DeviceGray)
+-    return eprn_map_cmyk_color_max(device, 0, 0, 0, gx_max_color_value 
- red);
+-
++  gx_color_value tmpcv[4];
++  if (dev->eprn.colour_model == eprn_DeviceGray) {
++    tmpcv[0] = 0; tmpcv[1] = 0; tmpcv[2] = 0;
++    tmpcv[3] = gx_max_color_value - red;
++    return eprn_map_cmyk_color_max(device, tmpcv);
++  }
+   /* Note that the conversion from composite black to true black for 
CMY+K can
+      only happen at the output pixel level, not here. */
+-  return eprn_map_cmyk_color_max(device, gx_max_color_value - red,
+-    gx_max_color_value - green, gx_max_color_value - blue, 0);
++  tmpcv[0] = gx_max_color_value - red; 
++  tmpcv[1] = gx_max_color_value - green; 
++  tmpcv[2] = gx_max_color_value - blue; 
++  tmpcv[3] = 0;
++  return eprn_map_cmyk_color_max(device, tmpcv);
+ }
+ 
+ /******************************************************************************
+@@ -389,7 +414,7 @@
+ 
******************************************************************************/
+ 
+ int eprn_map_color_rgb(gx_device *device, gx_color_index color,
+-  gx_color_value rgb[3])
++  gx_color_value rgb[])
+ {
+ #ifdef EPRN_TRACE
+   if_debug1(EPRN_TRACE_CHAR,
+@@ -415,9 +440,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_cmyk_color(gx_device *device,
+-  gx_color_value cyan, gx_color_value magenta, gx_color_value yellow,
+-  gx_color_value black)
++  const gx_color_value cv[])
+ {
++  gx_color_value cyan, magenta, yellow, black;
++  cyan = cv[0]; magenta = cv[1]; yellow = cv[2]; black = cv[3];
+   gx_color_index value = 0;
+   static const gx_color_value threshold = gx_max_color_value/2;
+ 
+@@ -449,9 +475,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_cmyk_color_flex(gx_device *device,
+-  gx_color_value cyan, gx_color_value magenta, gx_color_value yellow,
+-  gx_color_value black)
++  const gx_color_value cv[])
+ {
++  gx_color_value cyan, magenta, yellow, black;
++  cyan = cv[0]; magenta = cv[1]; yellow = cv[2]; black = cv[3];
+   gx_color_index value = 0;
+   gx_color_value step;
+   unsigned int level;
+@@ -530,9 +557,10 @@
+ 
******************************************************************************/
+ 
+ gx_color_index eprn_map_cmyk_color_max(gx_device *device,
+-  gx_color_value cyan, gx_color_value magenta, gx_color_value yellow,
+-  gx_color_value black)
++  const gx_color_value cv[])
+ {
++  gx_color_value cyan, magenta, yellow, black;
++  cyan = cv[0]; magenta = cv[1]; yellow = cv[2]; black = cv[3];
+   gx_color_index value;
+ 
+ #ifdef EPRN_TRACE
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/pkg-descr 
print/ghostscript-gpl/pkg-descr
--- /usr/HEAD/ports/print/ghostscript-gpl/pkg-descr	Sat Oct 16 09:28:33 
2004
+++ print/ghostscript-gpl/pkg-descr	Sun Mar 20 12:30:17 2005
@@ -7,6 +7,8 @@
 under certain conditions (including, in some cases, commercial 
distribution).
 
 This port includes add-on packages (not part of the official gs 
release)
+	o PCL driver for HP DeskJet printers
+	  - http://home.t-online.de/home/Martin.Lottermoser/pcl3.html
 	o HP2200 driver for HP DeskJet 8xx and Business Inkjet 2200
 	  - http://hp.sourceforge.net/gs-hp2200.php
 	o DJ970 driver for HP DeskJet 970CXi
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/pkg-plist 
print/ghostscript-gpl/pkg-plist
--- /usr/HEAD/ports/print/ghostscript-gpl/pkg-plist	Sat Oct 16 09:28:33 
2004
+++ print/ghostscript-gpl/pkg-plist	Sun Mar 20 12:30:17 2005
@@ -15,6 +15,7 @@
 bin/gsnd
 %%SHLIB%%bin/gsx
 bin/lprsetup.sh
+bin/pcl3opts
 bin/pdf2dsc
 bin/pdf2ps
 bin/pdfopt
@@ -34,25 +35,6 @@
 bin/wftopfa
 %%SHLIB%%lib/libgs.so
 %%SHLIB%%lib/libgs.so.%%SHLIB_VER%%
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/alps/README.gdevalps
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/bj10v/gdev10v.jis
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/ChangeLog
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/ert.txt
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/gdevepag.txt
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/gsepagif.sh
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/psprint
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/eplaser/readme-eplaser-705.euc
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/gdi/README
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lips/Gdevlips.htm
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/README
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/RELEASE_NOTES
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/Z12-Z31-QuickSetup
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/md2k/README.jis
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/MJ700V2C.FAQ
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.mjc
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.mje
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.noz
-%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/cpem.doc
 %%DATADIR%%/%%GS_VERSION%%/Resource/CMap/78-EUC-H
 %%DATADIR%%/%%GS_VERSION%%/Resource/CMap/78-EUC-V
 %%DATADIR%%/%%GS_VERSION%%/Resource/CMap/78-H
@@ -238,6 +220,8 @@
 %%DATADIR%%/%%GS_VERSION%%/doc/Use.htm
 %%DATADIR%%/%%GS_VERSION%%/doc/Xfonts.htm
 %%DATADIR%%/%%GS_VERSION%%/doc/gs.css
+%%DATADIR%%/%%GS_VERSION%%/doc/gs-pcl3.html
+%%DATADIR%%/%%GS_VERSION%%/doc/pcl3opts.html
 %%DATADIR%%/%%GS_VERSION%%/doc/index.html
 %%DATADIR%%/%%GS_VERSION%%/examples/alphabet.ps
 %%DATADIR%%/%%GS_VERSION%%/examples/chess.ps
@@ -481,6 +465,21 @@
 %%DATADIR%%/%%GS_VERSION%%/lib/wrfont.ps
 %%DATADIR%%/%%GS_VERSION%%/lib/xlatmap
 %%DATADIR%%/%%GS_VERSION%%/lib/zeroline.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/BUGS
+%%DATADIR%%/%%GS_VERSION%%/pcl3/NEWS
+%%DATADIR%%/%%GS_VERSION%%/pcl3/README
+%%DATADIR%%/%%GS_VERSION%%/pcl3/calign.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/dumppdd.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/example.mcf
+%%DATADIR%%/%%GS_VERSION%%/pcl3/if-pcl3
+%%DATADIR%%/%%GS_VERSION%%/pcl3/levels-test.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-A4.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-A4Rotated.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-Env10Rotated.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-EnvDLRotated.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-Letter.ps
+%%DATADIR%%/%%GS_VERSION%%/pcl3/margins-LetterRotated.ps
+@dirrm %%DATADIR%%/%%GS_VERSION%%/pcl3
 @exec ln -s -f %D/share/fonts/CIDFont %%CIDFONTDIR%%/CIDFont
 @unexec rm -f %%CIDFONTDIR%%/CIDFont
 @dirrm %%DATADIR%%/%%GS_VERSION%%/lib
@@ -492,6 +491,28 @@
 @dirrm %%DATADIR%%/%%GS_VERSION%%/Resource
 @unexec rmdir %D/%%DATADIR%%/%%GS_VERSION%% 2>/dev/null || true
 @unexec rmdir %D/%%DATADIR%% 2>/dev/null || true
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/alps/README.gdevalps
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/bj10v/gdev10v.jis
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/ChangeLog
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/ert.txt
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/gdevepag.txt
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/gsepagif.sh
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/epag/psprint
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/eplaser/readme-eplaser-705.euc
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/gdi/README
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lips/Gdevlips.htm
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/README
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/RELEASE_NOTES
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/lxm3200/Z12-Z31-QuickSetup
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/md2k/README.jis
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/MJ700V2C.FAQ
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.mjc
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.mje
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/README.noz
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/mjc/cpem.doc
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/pcl3/NEWS
+%%PORTDOCS%%%%DOCSDIR%%/%%GS_VERSION%%/pcl3/how-to-report.txt
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/%%GS_VERSION%%/pcl3
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/%%GS_VERSION%%/mjc
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/%%GS_VERSION%%/md2k
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/%%GS_VERSION%%/lxm3200
diff -Nru /usr/HEAD/ports/print/ghostscript-gpl/scripts/configure 
print/ghostscript-gpl/scripts/configure
--- /usr/HEAD/ports/print/ghostscript-gpl/scripts/configure	Mon Nov 22 
17:27:50 2004
+++ print/ghostscript-gpl/scripts/configure	Sun Mar 20 12:30:17 2005
@@ -50,6 +50,7 @@
 		laserjet ljetplus ljet2p ljet3 ljet3d ljet4 ljet4d lj4dith \
 		cljet5 cljet5c cljet5pr lj5mono lj5gray \
 		pj pjetxl pjxl paintjet \
+		pcl3 \
 		pjxl300 pxlmono pxlcolor \
 		ijs ibmpro jetp3852 imagen fs600 lxm5700m \
 		lxm3200 lx5000 lex2050 lex3200 lex5700 lex7000 \
@@ -240,6 +241,7 @@
   "pjxl"     "HP PaintJet XL color printer" "$status_pjxl" \
   "paintjet" "HP PaintJet color printer (alternate)" "$status_paintjet" 
\
   "pjxl300"  "HP PaintJet XL300, DeskJet 1200C color printer, HP 
CopyJet" "$status_pjxl300" \
+  "pcl3"     "HP PCL 3 (generic) [PCL3]" "$status_pcl3" \
   "pxlmono"  "HP PCL XL black-and-white printers (LaserJet 5 and 6 
family)" "$status_pxlmono" \
   "pxlcolor" "HP PCL XL color printers (Color LaserJet 4500/5000)" 
"$status_pxlcolor" \
   "ijs"      "HP Inkjet and other raster devices" "$status_ijs" \
diff -Nru /usr/HEAD/ports/print/ghostscript-afpl/Makefile 
print/ghostscript-afpl/Makefile
--- /usr/HEAD/ports/print/ghostscript-afpl/Makefile	Fri Dec 31 14:32:24 
2004
+++ print/ghostscript-afpl/Makefile	Sun Mar 20 12:40:19 2005
@@ -116,6 +116,9 @@
 GS_SRCS=	${DISTNAME}${EXTRACT_SUFX}
 CIDFONTDIR=	${PREFIX}/share/ghostscript/${GS_VERSION}/Resource
 
+# normalize WRKSRC so things like cups-pstoraster may work
+WRKSRC=		${WRKDIR}/ghostscript
+
 # Additional Drivers:
 
 # HP8XX - additional driver for HP DeskJet 
812C/815C/832C/880C/882C/895C
@@ -227,6 +230,8 @@
 
 post-extract:
 	${ECHO_MSG} ">>> in post-extract ..."
+# normazile WRKSRC so things like cups-pstoraster may work
+	${LN} -sf ${WRKDIR}/${DISTNAME} ${WRKDIR}/${PORTNAME}
 # ** 3rd party driver **
 # Note: don't forget to add those devices in scripts/configure,
 # which update unix-gcc.mak to build gs with these new devices!
diff -Nru /usr/HEAD/ports/print/ghostscript-afpl/Makefile.inc 
print/ghostscript-afpl/Makefile.inc
--- /usr/HEAD/ports/print/ghostscript-afpl/Makefile.inc	Fri Dec 31 
14:32:24 2004
+++ print/ghostscript-afpl/Makefile.inc	Sun Mar 20 11:03:38 2005
@@ -1,5 +1,5 @@
 # $FreeBSD: ports/print/ghostscript-afpl/Makefile.inc,v 1.15 2004/12/31 
13:32:24 krion Exp $
 
 GS_VERSION=	8.50
-GS_REVISION=	0
+GS_REVISION=	1
 GS_EPOCH=	1
diff 
-Nru /usr/HEAD/ports/print/ghostscript-afpl/files/patch-lib:gs_init.ps 
print/ghostscript-afpl/files/patch-lib:gs_init.ps
--- /usr/HEAD/ports/print/ghostscript-afpl/files/patch-lib:gs_init.ps	
Wed Apr  3 04:59:13 2002
+++ print/ghostscript-afpl/files/patch-lib:gs_init.ps	Sun Mar 20 
11:03:38 2005
@@ -1,6 +1,14 @@
---- lib/gs_init.ps.orig	Fri Feb  1 12:25:45 2002
-+++ lib/gs_init.ps	Sat Feb  9 01:42:10 2002
-@@ -1274,7 +1274,7 @@
+--- lib/gs_init.ps.orig	Wed Jan 26 20:44:07 2005
++++ lib/gs_init.ps	Wed Jan 26 20:43:38 2005
+@@ -145,6 +145,7 @@
+ currentdict /NOFONTPATH known   /NOFONTPATH exch def
+ currentdict /NOGC known   /NOGC exch def
+ currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
++currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+ currentdict /NOOUTERSAVE known   /NOOUTERSAVE exch def
+ currentdict /NOPAGEPROMPT known   /NOPAGEPROMPT exch def
+ currentdict /NOPAUSE known   /NOPAUSE exch def
+@@ -1425,7 +1426,7 @@
  % Set the default screen and BG/UCR.
  /.setdefaultbgucr {
    systemdict /setblackgeneration known {
@@ -9,11 +17,14 @@
    } if
  } bind def
  /.useloresscreen {	% - .useloresscreen <bool>
-@@ -1874,3 +1874,7 @@
- userdict /AGM_preserve_spots false put
+@@ -2023,6 +2024,10 @@
+ % Set up GridFitTT :
  
- % The interpreter will run the initial procedure (start).
+ /GridFitTT where {
 +
 +% unofficial patch:
 +% make it possible to print from within acroread pdf viewer
 +/Default currenthalftone /Halftone defineresource pop
+   mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
+   /GridFitTT undef
+ } if
diff 
-Nru /usr/HEAD/ports/print/ghostscript-afpl/files/patch-lib:gs_setpd.ps 
print/ghostscript-afpl/files/patch-lib:gs_setpd.ps
--- /usr/HEAD/ports/print/ghostscript-afpl/files/patch-lib:gs_setpd.ps	
Thu Jan  1 01:00:00 1970
+++ print/ghostscript-afpl/files/patch-lib:gs_setpd.ps	Sun Mar 20 
11:03:38 2005
@@ -0,0 +1,98 @@
+--- lib/gs_setpd.ps.orig	Tue Sep 14 00:33:15 2004
++++ lib/gs_setpd.ps	Wed Jan 26 20:43:38 2005
+@@ -377,21 +377,42 @@
+   /MediaPosition { dup //null ne { pop //null } if } bind
+ .dicttomark readonly def
+ 
+-% Define the keys used in input attribute matching.
+-/.inputattrkeys [
+-  /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
+-	% The following are documented in Adobe's supplement for v2017.
+-  /LeadingEdge /MediaClass
+-] readonly def
+-% Define other keys used in media selection.
+-/.inputselectionkeys [
+-  /MediaPosition /Orientation
+-] readonly def
+-
+-% Define the keys used in output attribute matching.
+-/.outputattrkeys [
+-  /OutputType
+-] readonly def
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) 
media
++% selection policies for setpagedevice.  This is used by CUPS to 
support
++% the standard Adobe media attributes.
++NOMEDIAATTRS {
++  % Define only PageSize for input attribute matching.
++  /.inputattrkeys [
++    /PageSize
++  ] readonly def
++  % Define no other keys used in media selection.
++  /.inputselectionkeys [
++    /noInputSelectionsKeys
++  ] readonly def
++
++  % Define no keys used in output attribute matching.
++  /.outputattrkeys [
++    /noOutputAttrKeys
++  ] readonly def
++} {
++  % Define the keys used in input attribute matching.
++  /.inputattrkeys [
++    /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
++	  % The following are documented in Adobe's supplement for v2017.
++    /LeadingEdge /MediaClass
++  ] readonly def
++  % Define other keys used in media selection.
++  /.inputselectionkeys [
++    /MediaPosition /Orientation
++  ] readonly def
++
++  % Define the keys used in output attribute matching.
++  /.outputattrkeys [
++    /OutputType
++  ] readonly def
++} ifelse
+ 
+ % Define all the parameters that should always be copied to the merged
+ % dictionary.
+@@ -420,7 +441,13 @@
+   /PageSize //false		% obsolete alias for .MediaSize
+   /InputAttributes //false
+   .inputattrkeys
+-    { dup /PageSize eq
++    % M. Sweet, Easy Software Products:
++    %
++    % Treat LeadingEdge like PageSize so that a common Ghostscript 
driver
++    % doesn't need the NOMEDIAATTRS definition.
++    %
++    % { dup /PageSize eq
++    { dup dup /PageSize eq exch /LeadingEdge eq or
+        { pop }
+        { { 2 index /InputAttributes .knownget { //null eq } { //true } 
ifelse } }
+       ifelse
+@@ -501,11 +528,22 @@
+ % They are expected to consume the top 2 operands.
+ % NOTE: we currently treat all values other than 0, 1, or 7 (for 
PageSize)
+ % the same as 0, i.e., we signal an error.
++%
++% M. Sweet, Easy Software Products:
++%
++% Define NOMEDIAATTRS to turn off the default (but unimplementable) 
media
++% selection policies for setpagedevice.  This is used by CUPS to 
support
++% the standard Adobe media attributes.
+   0 {		% Set errorinfo and signal a configurationerror.
++      NOMEDIAATTRS {
++        % NOMEDIAATTRS means that the default policy is 7...
++        pop 2 index exch 7 put
++      } {
+ 	pop dup 4 index exch get 2 array astore
+ 	$error /errorinfo 3 -1 roll put
+ 	cleartomark
+ 	/setpagedevice load /configurationerror signalerror
++      } ifelse
+   } bind
+   1 {		% Roll back the failed request to its previous status.
+ SETPDDEBUG { (Rolling back.) = pstack flush } if
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/Makefile 
print/cups-pstoraster/Makefile
--- /usr/HEAD/ports/print/cups-pstoraster/Makefile	Thu Dec 16 20:18:02 
2004
+++ print/cups-pstoraster/Makefile	Sun Mar 20 16:36:19 2005
@@ -6,27 +6,28 @@
 #
 
 PORTNAME=	cups-pstoraster
-PORTVERSION=	7.07
-PORTREVISION=	3
+PORTVERSION=	${CUPS_PORTVER}
+PORTREVISION=	${CUPS_PORTREV}
+PORTEPOCH=	1
 CATEGORIES=	print
-MASTER_SITES=	${MASTER_SITE_SOURCEFORGE} \
-		ftp://ftp.easysw.com/pub/ghostscript/
-MASTER_SITE_SUBDIR=	ghostscript espgs
-DISTFILES=	ghostscript-${PORTVERSION}${EXTRACT_SUFX} \
-		espgs-${ESPGS_VER}-source${EXTRACT_SUFX}
-DIST_SUBDIR=	ghostscript
+MASTER_SITES=	${CUPS_MASTER_SITES}
+DISTFILES=	${DISTNAME}.tar.bz2
 
 MAINTAINER=	ports@FreeBSD.org
-COMMENT=	GNU Postscript interpreter for CUPS printing to non-PS 
printers
+COMMENT=	Postscript interpreter for CUPS printing to non-PS printers
 
+PATCH_DEPENDS=	${NONEXISTENT}:${PORTSDIR}/${GHOSTSCRIPT_PORT}:patch
 LIB_DEPENDS=	cups.2:${PORTSDIR}/print/cups-base
-RUN_DEPENDS=	
${LOCALBASE}/share/ghostscript/${PORTVERSION}/lib/gs_init.ps:
${PORTSDIR}/print/ghostscript-gnu
 
-ESPGS_VER=	7.07.1
-ESPGS_WRKSRC=	${WRKDIR}/espgs-${ESPGS_VER}/pstoraster
-WRKSRC=		${WRKDIR}/ghostscript-${PORTVERSION}
+EXTRACT_AFTER_ARGS=	| ${TAR} -xf - cups-${CUPS_VERSION}/pstoraster
+
+MD5_FILE=	${.CURDIR}/../../print/cups/distinfo
+ESPGS_WRKSRC=	${WRKDIR}/cups-${CUPS_VERSION}/pstoraster
+WRKSRC=		
${WRKDIRPREFIX}${PORTSDIR}/${GHOSTSCRIPT_PORT}/work/ghostscript
+PATCH_WRKSRC=	${ESPGS_WRKSRC}
 
 USE_BZIP2=	yes
+USE_GHOSTSCRIPT_RUN=	true
 USE_REINPLACE=	yes
 USE_GMAKE=	yes
 GNU_CONFIGURE=	yes
@@ -37,7 +38,6 @@
 		--with-gs=espgs
 MAKE_ARGS=	CFLAGS_STANDARD="${CFLAGS} -DUPD_SIGNAL=0" \
 		DEVICE_DEVS="\$$(DD)cups.dev \$$(DD)pxlcolor.dev \$$(DD)pxlmono.dev"
-
 PLIST_FILES=	bin/espgs etc/cups/pstoraster.convs \
 		libexec/cups/filter/pstopxl libexec/cups/filter/pstoraster \
 		share/cups/model/pxlcolor.ppd share/cups/model/pxlmono.ppd
@@ -49,6 +49,7 @@
 	${SED} -e 's:@prefix@:${PREFIX}:g ; \
 		 s:@exec_prefix@:${PREFIX}:g ; \
 		 s:@bindir@:${PREFIX}/bin:g ; \
+		 s:%%LOCALBASE%%:${LOCALBASE}:g ; \
 		 s:@GS@:espgs:g' \
 		${ESPGS_WRKSRC}/${file}.in > ${ESPGS_WRKSRC}/${file}
 .endfor
@@ -71,5 +72,10 @@
 .endfor
 
 .include "${.CURDIR}/../../print/cups/Makefile.common"
+.if ${CUPS_REVISION} < 1
+DISTNAME=	cups-${CUPS_VERSION}-source
+.else
+DISTNAME=	cups-${CUPS_VERSION}-${CUPS_REVISION}-source
+.endif
 .include <bsd.port.pre.mk>
 .include <bsd.port.post.mk>
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/distinfo 
print/cups-pstoraster/distinfo
--- /usr/HEAD/ports/print/cups-pstoraster/distinfo	Mon Nov 15 05:19:05 
2004
+++ print/cups-pstoraster/distinfo	Thu Jan  1 01:00:00 1970
@@ -1,4 +0,0 @@
-MD5 (ghostscript/ghostscript-7.07.tar.bz2) = 
85fd16cdc8232e5e3679a3a7e30a3359
-SIZE (ghostscript/ghostscript-7.07.tar.bz2) = 4138372
-MD5 (ghostscript/espgs-7.07.1-source.tar.bz2) = 
d30bf5c09f2c7caa8291f6305cf03044
-SIZE (ghostscript/espgs-7.07.1-source.tar.bz2) = 5400198
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-gdevcups.c 
print/cups-pstoraster/files/patch-gdevcups.c
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-gdevcups.c	Thu Jan  
1 01:00:00 1970
+++ print/cups-pstoraster/files/patch-gdevcups.c	Sun Mar 20 16:07:02 
2005
@@ -0,0 +1,50 @@
+--- gdevcups.c.orig	Sun Mar 20 15:53:55 2005
++++ gdevcups.c	Sun Mar 20 16:04:55 2005
+@@ -2612,6 +2612,7 @@
+   float			floatval;	/* Floating point value */
+   gs_param_string	stringval;	/* String value */
+   gs_param_float_array	arrayval;	/* Float array value */
++  int			margins_set;	/* Were the margins set? */
+   int			size_set;	/* Was the size set? */
+   int			color_set;	/* Were the color attrs set? */
+   gdev_prn_space_params	sp;		/* Space parameter data */
+@@ -2693,10 +2694,11 @@
+       cups->header.name[i] = (unsigned)arrayval.data[i]; \
+   }
+ 
+-  size_set  = param_read_float_array(plist, ".MediaSize", &arrayval) 
== 0 ||
+-              param_read_float_array(plist, "PageSize", &arrayval) == 
0;
+-  color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 ||
+-              param_read_int(plist, "cupsBitsPerColor", &intval) == 0;
++  size_set    = param_read_float_array(plist, ".MediaSize", &arrayval) 
== 0 ||
++                param_read_float_array(plist, "PageSize", &arrayval) 
== 0;
++  margins_set = param_read_float_array(plist, "Margins", &arrayval) == 
0;
++  color_set   = param_read_int(plist, "cupsColorSpace", &intval) == 0 
||
++                param_read_int(plist, "cupsBitsPerColor", &intval) == 
0;
+ 
+   stringoption(MediaClass, "MediaClass")
+   stringoption(MediaColor, "MediaColor")
+@@ -2804,7 +2806,10 @@
+            i > 0;
+            i --, size ++)
+ 	if (fabs(cups->MediaSize[1] - size->length) < 5.0 &&
+-            fabs(cups->MediaSize[0] - size->width) < 5.0)
++            fabs(cups->MediaSize[0] - size->width) < 5.0 &&
++           (!margins_set ||
++            (fabs(cups->HWMargins[0] - size->left) < 1.0 &&
++             fabs(cups->HWMargins[1] - size->bottom) < 1.0)))
+ 	  break;
+ 
+       if (i > 0)
+@@ -2833,7 +2838,10 @@
+              i > 0;
+              i --, size ++)
+ 	  if (fabs(cups->MediaSize[0] - size->length) < 5.0 &&
+-              fabs(cups->MediaSize[1] - size->width) < 5.0)
++              fabs(cups->MediaSize[1] - size->width) < 5.0 &&
++             (!margins_set ||
++              (fabs(cups->HWMargins[0] - size->left) < 1.0 &&
++               fabs(cups->HWMargins[1] - size->bottom) < 1.0)))
+ 	    break;
+ 
+ 	if (i > 0)
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-pstopxl.in 
print/cups-pstoraster/files/patch-pstopxl.in
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-pstopxl.in	Thu Jan  
1 01:00:00 1970
+++ print/cups-pstoraster/files/patch-pstopxl.in	Sun Mar 20 16:33:56 
2005
@@ -0,0 +1,25 @@
+--- pstopxl.in.orig	Sun Mar 20 16:19:45 2005
++++ pstopxl.in	Sun Mar 20 16:29:08 2005
+@@ -27,7 +27,7 @@
+ bindir=@bindir@
+ 
+ # Set the library/font path...
+-GS_LIB="${CUPS_FONTPATH:=/usr/share/cups/fonts}"
++GS_LIB="${CUPS_FONTPATH:=%%LOCALBASE%%/share/cups/fonts}"
+ export GS_LIB
+ 
+ # Determine the PCL XL/PCL 6 driver to use...
+@@ -56,11 +56,11 @@
+ 	ifile="$6"
+ fi
+ 
+-echo INFO: Starting ESP Ghostscript 7.07.1... 1>&2
++echo INFO: Starting GNU/GPL Ghostscript... 1>&2
+ echo DEBUG: Running $bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" 
"$ifile" 1>&2
+ 
+ # Now run Ghostscript...
+-$bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" "$ifile"
++exec $bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" "$ifile"
+ 
+ #
+ # End of "$Id: pstopxl.in,v 1.3 2005/01/03 19:29:59 mike Exp $".
diff 
-Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-pstoraster.in 
print/cups-pstoraster/files/patch-pstoraster.in
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-pstoraster.in	Thu 
Jan  1 01:00:00 1970
+++ print/cups-pstoraster/files/patch-pstoraster.in	Sun Mar 20 16:34:38 
2005
@@ -0,0 +1,25 @@
+--- pstoraster.in.orig	Sun Mar 20 16:25:56 2005
++++ pstoraster.in	Sun Mar 20 16:28:42 2005
+@@ -27,7 +27,7 @@
+ bindir=@bindir@
+ 
+ # Set the library/font path...
+-GS_LIB="${CUPS_FONTPATH:=/usr/share/cups/fonts}"
++GS_LIB="${CUPS_FONTPATH:=%%LOCALBASE%%/share/cups/fonts}"
+ export GS_LIB
+ 
+ # Options we use with Ghostscript...
+@@ -51,11 +51,11 @@
+ 	ifile="$6"
+ fi
+ 
+-echo INFO: Starting ESP Ghostscript 7.07.1... 1>&2
++echo INFO: Starting GPL/GNU Ghostscript ... 1>&2
+ echo DEBUG: Running $bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" 
-c"$profile" "$ifile" 1>&2
+ 
+ # Now run Ghostscript...
+-$bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile"
++exec $bindir/@GS@ $gsopts -sOUTPUTFILE="%stdout" -c"$profile" "$ifile"
+ 
+ #
+ # End of "$Id: pstoraster.in,v 1.7 2005/01/03 19:29:59 mike Exp $".
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-pxlcolor.ppd 
print/cups-pstoraster/files/patch-pxlcolor.ppd
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-pxlcolor.ppd	Thu 
Jan  1 01:00:00 1970
+++ print/cups-pstoraster/files/patch-pxlcolor.ppd	Sun Mar 20 16:42:59 
2005
@@ -0,0 +1,68 @@
+--- pxlcolor.ppd.orig	Mon Jan  3 20:29:59 2005
++++ pxlcolor.ppd	Sun Mar 20 16:41:43 2005
+@@ -27,16 +27,16 @@
+ *FileVersion:	"1.1"
+ *LanguageVersion: English 
+ *LanguageEncoding: ISOLatin1
+-*PCFileName:	"PCLCOLOR.PPD"
++*PCFileName:	"PXLCOLOR.PPD"
+ *Manufacturer:	"ESP"
+-*Product:	"(CUPS v1.1)"
++*Product:	"(ESP Ghostscript)"
+ *cupsVersion:	1.1
+ *cupsManualCopies: False
+ *cupsFilter:	"application/vnd.cups-postscript 0 pstopxl"
+ *ModelName:     "HP Color LaserJet Series PCL 6"
+ *ShortNickName: "HP Color LaserJet Series PCL 6"
+-*NickName:      "HP Color LaserJet Series PCL 6 CUPS v1.1"
+-*PSVersion:	"(3010.000) 707"
++*NickName:      "HP Color LaserJet Series PCL 6 CUPS"
++*PSVersion:	"(3010.000) 81500"
+ *LanguageLevel:	"3"
+ *ColorDevice:	True
+ *DefaultColorSpace: RGB
+@@ -53,7 +53,7 @@
+ *UIConstraints: *PageSize A4 *InputSlot Envelope
+ *UIConstraints: *PageSize A5 *InputSlot Envelope
+ *UIConstraints: *PageSize B5 *InputSlot Envelope
+-*UIConstraints:	*Duplex *Option1 False
++*UIConstraints:	*Duplex *OptionDuplex False
+ 
+ *OpenUI *PageSize/Media Size: PickOne
+ *OrderDependency: 10 AnySetup *PageSize
+@@ -125,12 +125,13 @@
+ *OrderDependency: 10 AnySetup *InputSlot
+ *DefaultInputSlot: Default
+ *InputSlot Default/Default: "<</MediaPosition 0>>setpagedevice"
+-*InputSlot Tray1/Tray 1: "<</MediaPosition 8>>setpagedevice"
+-*InputSlot Tray2/Tray 2: "<</MediaPosition 1>>setpagedevice"
+-*InputSlot Tray3/Tray 3: "<</MediaPosition 4>>setpagedevice"
+-*InputSlot Tray4/Tray 4: "<</MediaPosition 5>>setpagedevice"
++*InputSlot Auto/Automatically Select: "<</MediaPosition 
1>>setpagedevice"
++*InputSlot MultiPurpose/Tray 1: "<</MediaPosition 3>>setpagedevice"
++*InputSlot Upper/Tray 2: "<</MediaPosition 4>>setpagedevice"
++*InputSlot Lower/Tray 3: "<</MediaPosition 5>>setpagedevice"
++*InputSlot LargeCapacity/Tray 4: "<</MediaPosition 7>>setpagedevice"
+ *InputSlot Manual/Manual Feed: "<</MediaPosition 2>>setpagedevice"
+-*InputSlot Envelope/Envelope Feed: "<</MediaPosition 3>>setpagedevice"
++*InputSlot Envelope/Envelope Feed: "<</MediaPosition 6>>setpagedevice"
+ *CloseUI: *InputSlot
+ 
+ *OpenUI *ColorModel/Output Mode: PickOne
+@@ -157,11 +158,11 @@
+ *CloseUI:	*Duplex
+ 
+ *OpenGroup: InstallableOptions
+-*OpenUI *Option1/Duplexer: Boolean
+-*DefaultOption1: False
+-*Option1 True/Installed:	""
+-*Option1 False/Not Installed:	""
+-*CloseUI: *Option1
++*OpenUI *OptionDuplex/Duplexer: Boolean
++*DefaultOptionDuplex: False
++*OptionDuplex True/Installed:	""
++*OptionDuplex False/Not Installed:	""
++*CloseUI: *OptionDuplex
+ *CloseGroup: InstallableOptions
+ 
+ *DefaultFont: Courier
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-pxlmono.ppd 
print/cups-pstoraster/files/patch-pxlmono.ppd
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-pxlmono.ppd	Thu 
Jan  1 01:00:00 1970
+++ print/cups-pstoraster/files/patch-pxlmono.ppd	Sun Mar 20 16:43:31 
2005
@@ -0,0 +1,68 @@
+--- pxlmono.ppd.orig	Mon Jan  3 20:29:59 2005
++++ pxlmono.ppd	Sun Mar 20 16:41:43 2005
+@@ -27,16 +27,16 @@
+ *FileVersion:	"1.1"
+ *LanguageVersion: English 
+ *LanguageEncoding: ISOLatin1
+-*PCFileName:	"PCLMONO.PPD"
++*PCFileName:	"PXLMONO.PPD"
+ *Manufacturer:	"ESP"
+-*Product:	"(CUPS v1.1)"
++*Product:	"(ESP Ghostscript)"
+ *cupsVersion:	1.1
+ *cupsManualCopies: False
+ *cupsFilter:	"application/vnd.cups-postscript 0 pstopxl"
+ *ModelName:     "HP LaserJet Series PCL 6"
+ *ShortNickName: "HP LaserJet Series PCL 6"
+-*NickName:      "HP LaserJet Series PCL 6 CUPS v1.1"
+-*PSVersion:	"(3010.000) 707"
++*NickName:      "HP LaserJet Series PCL 6 CUPS"
++*PSVersion:	"(3010.000) 81500"
+ *LanguageLevel:	"3"
+ *ColorDevice:	False
+ *DefaultColorSpace: Gray
+@@ -53,7 +53,7 @@
+ *UIConstraints: *PageSize A4 *InputSlot Envelope
+ *UIConstraints: *PageSize A5 *InputSlot Envelope
+ *UIConstraints: *PageSize B5 *InputSlot Envelope
+-*UIConstraints:	*Duplex *Option1 False
++*UIConstraints:	*Duplex *OptionDuplex False
+ 
+ *OpenUI *PageSize/Media Size: PickOne
+ *OrderDependency: 10 AnySetup *PageSize
+@@ -125,12 +125,13 @@
+ *OrderDependency: 10 AnySetup *InputSlot
+ *DefaultInputSlot: Default
+ *InputSlot Default/Default: "<</MediaPosition 0>>setpagedevice"
+-*InputSlot Tray1/Tray 1: "<</MediaPosition 8>>setpagedevice"
+-*InputSlot Tray2/Tray 2: "<</MediaPosition 1>>setpagedevice"
+-*InputSlot Tray3/Tray 3: "<</MediaPosition 4>>setpagedevice"
+-*InputSlot Tray4/Tray 4: "<</MediaPosition 5>>setpagedevice"
++*InputSlot Auto/Automatically Select: "<</MediaPosition 
1>>setpagedevice"
++*InputSlot MultiPurpose/Tray 1: "<</MediaPosition 3>>setpagedevice"
++*InputSlot Upper/Tray 2: "<</MediaPosition 4>>setpagedevice"
++*InputSlot Lower/Tray 3: "<</MediaPosition 5>>setpagedevice"
++*InputSlot LargeCapacity/Tray 4: "<</MediaPosition 7>>setpagedevice"
+ *InputSlot Manual/Manual Feed: "<</MediaPosition 2>>setpagedevice"
+-*InputSlot Envelope/Envelope Feed: "<</MediaPosition 3>>setpagedevice"
++*InputSlot Envelope/Envelope Feed: "<</MediaPosition 6>>setpagedevice"
+ *CloseUI: *InputSlot
+ 
+ *OpenUI *Resolution/Output Resolution: PickOne
+@@ -151,11 +152,11 @@
+ *CloseUI:	*Duplex
+ 
+ *OpenGroup: InstallableOptions
+-*OpenUI *Option1/Duplexer: Boolean
+-*DefaultOption1: False
+-*Option1 True/Installed:	""
+-*Option1 False/Not Installed:	""
+-*CloseUI: *Option1
++*OpenUI *OptionDuplex/Duplexer: Boolean
++*DefaultOptionDuplex: False
++*OptionDuplex True/Installed:	""
++*OptionDuplex False/Not Installed:	""
++*CloseUI: *OptionDuplex
+ *CloseGroup: InstallableOptions
+ 
+ *DefaultFont: Courier
diff 
-Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-src:genarch.c 
print/cups-pstoraster/files/patch-src:genarch.c
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-src:genarch.c	Thu 
Jul 25 05:00:17 2002
+++ print/cups-pstoraster/files/patch-src:genarch.c	Thu Jan  1 01:00:00 
1970
@@ -1,34 +0,0 @@
---- src/genarch.c.orig	Tue Jun  5 15:38:57 2001
-+++ src/genarch.c	Wed Jun 20 04:17:42 2001
-@@ -41,6 +41,7 @@
-     fprintf(f, "\n\t /* ---------------- %s ---------------- */\n\n", 
str);
- }
- 
-+#ifndef __FreeBSD__
- private clock_t
- time_clear(char *buf, int bsize, int nreps)
- {
-@@ -51,6 +52,7 @@
- 	memset(buf, 0, bsize);
-     return clock() - t;
- }
-+#endif /* __FreeBSD__ */
- 
- private void
- define(FILE *f, const char *str)
-@@ -181,6 +183,7 @@
-     fprintf(f, "((unsigned long)~0L + (unsigned long)0)\n");
- #undef PRINT_MAX
- 
-+#ifndef __FreeBSD__
-     section(f, "Cache sizes");
- 
-     /*
-@@ -241,6 +244,7 @@
- 	}
- 	define_int(f, "ARCH_CACHE2_SIZE", bsize >> 1);
-     }
-+#endif /* __FreeBSD__ */
- 
-     section(f, "Miscellaneous");
- 
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/files/patch-src:gxobj.h 
print/cups-pstoraster/files/patch-src:gxobj.h
--- /usr/HEAD/ports/print/cups-pstoraster/files/patch-src:gxobj.h	Fri 
Nov 26 22:05:46 2004
+++ print/cups-pstoraster/files/patch-src:gxobj.h	Thu Jan  1 01:00:00 
1970
@@ -1,17 +0,0 @@
---- src/gxobj.h.orig	Fri Feb 22 19:45:59 2002
-+++ src/gxobj.h	Thu Dec 19 00:16:57 2002
-@@ -99,10 +99,14 @@
-  * The final | is because back pointer values are divided by 
obj_back_scale,
-  * so objects must be aligned at least 0 mod obj_back_scale.
-  */
-+#if !defined(__ia64__) && !defined(__amd64__)
- #define obj_align_mod\
-   (((arch_align_long_mod - 1) | (arch_align_ptr_mod - 1) |\
-     (arch_align_double_mod - 1) | (align_bitmap_mod - 1) |\
-     (obj_back_scale - 1)) + 1)
-+#else
-+#define obj_align_mod	16
-+#endif
- /* The only possible values for obj_align_mod are 4, 8, or 16.... */
- #if obj_align_mod == 4
- #  define log2_obj_align_mod 2
diff -Nru /usr/HEAD/ports/print/cups-pstoraster/pkg-descr 
print/cups-pstoraster/pkg-descr
--- /usr/HEAD/ports/print/cups-pstoraster/pkg-descr	Thu Jul 25 05:00:14 
2002
+++ print/cups-pstoraster/pkg-descr	Sun Mar 20 14:13:45 2005
@@ -1,12 +1,6 @@
-Ghostscript is the well-known PostScript interpreter which is available 
for
-all common and most esoteric platforms and supports many different 
printers
-and some displays.
+This port provides the pstoraster facility, which allows CUPS to 
convert
+PostScript data into CUPS raster data, with the aids of Ghostscript.
 
-Versions entitled "GNU Ghostscript" are distributed with the GNU 
General
-Public License, which allows free use, and free copying and 
redistribution
-under certain conditions (including, in some cases, commercial 
distribution).
+It will work with GNU/GPL versions of the ghostscript interpreter.
 
-This distribution is based on GNU Ghostscript and provides the "driver" 
for
-CUPS that supports non-PostScript printer drivers within CUPS.
-
-WWW: http://www.cups.org/ghostscript.html
+WWW: http://www.cups.org
--- patch-gs ends here ---
Comment 3 Simon Barner freebsd_committer 2005-06-06 17:23:44 UTC
Responsible Changed
From-To: freebsd-ports-bugs->barner

I guess I am handling it, so let's make it formal :-)
Comment 4 Simon Barner freebsd_committer 2005-06-23 10:57:33 UTC
State Changed
From-To: open->closed

After serveral iterations, finally comitted. Thanks a lot for your work!