Andreas Klemm on Thu, 8 Feb 2001 09:15:49 +0100 (CET)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: AFPL GS 6.5 adn printer driver changes


On Wed, Feb 07, 2001 at 02:52:19PM +0100, Michael Loßin wrote:
> Oliver Schurr schrieb:
> > 
> > Now there may have to be a few changes made in APSFILTER, I think.
> > 
> > 1) the older GS driver for dj670, dj9xx etc, which still are listen in
> > APSFILTER have to be removed, UNLESS some of those are also contained in
> > the 'cdj550' driver in GS 6.5. That one is still included.
> 
> Gotta check that...
> 
> > 2) the new PCL3 driver and/or all the supported 'subdevices' (as they are
> > called in PCL3) need to be included in APSFILTER in the list of those 3rd
> > party printer drivers.
> 
> The CVS version already have these included...
> Andreas, how about a new release? :)

At the weekend hope I get time. But shouldn't be that problem.

Could you perhaps prepare update to ANNOUNCE
and patch to merge between -current and -stable ?

That would be a big help.

> > I know that's a very long list of subdevices but that's what is it may
> > take to get it to work in the currect version of AFPL GS.
> 
> As long as the new pcl3 printer models are the same as the old hpdj ones,
> there shouldn't be any problem.
> 
> > What do you guys think?
> 
> Been there, done that :-D

Device list on FreeBSD, FreeBSDs gs 6.50 contains both, pcl3 and hpdj
devices. As well as 2 additional drivers, see Makefile of the port.

Would be fine if SETUP would contain all of these add on drivers.
Michael, do you have time to check ? Currently I'm much on the
road with a collegue for security consulting...

AFPL Ghostscript 6.50 (2000-12-02)
Copyright (C) 2000 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
Available devices:
   x11 bbox x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 x11gray4
   x11mono x11rg16x x11rg32x atx23 atx24 atx38 deskjet djet500 fs600
   laserjet ljetplus ljet2p ljet3 ljet3d ljet4 ljet4d lp2563 oce9050 lj5mono
   lj5gray epswrite pswrite pdfwrite pxlmono pxlcolor bit bitrgb bitcmyk
   bmpmono bmpgray bmpsep1 bmpsep8 bmp16 bmp256 bmp16m bmp32b cgmmono cgm8
   cgm24 jpeg jpeggray miff24 pcxmono pcxgray pcx16 pcx256 pcx24b pcxcmyk
   pcx2up pbm pbmraw pgm pgmraw pgnm pgnmraw ppm ppmraw pnm pnmraw pkm
   pkmraw pksm pksmraw plan9bm pngmono pnggray png16 png256 png16m psmono
   psgray psrgb faxg3 faxg32d faxg4 tiffcrle tiffg3 tiffg32d tiffg4 tifflzw
   tiffpack tiff12nc tiff24nc appledmp iwhi iwlo iwlq bj10e bj200 ccr
   cdeskjet cdjcolor cdjmono cdj500 cdj550 declj250 dnj650c lj4dith pj pjxl
   pjxl300 bjc600 bjc800 escp djet500c cljet5 cljet5pr cljet5c lj3100sw
   coslw2p coslwxl cp50 epson eps9mid eps9high ibmpro epsonc ap3250 st800
   stcolor uniprint lj250 paintjet pjetxl hl7x0 imagen jetp3852 lbp8 lips3
   lp8000 m8510 necp6 lq850 lxm5700m oki182 okiibm photoex sj48 t4693d2
   t4693d4 t4693d8 tek4696 cfax dfaxlow dfaxhigh cif inferno mgrmono
   mgrgray2 mgrgray4 mgrgray8 mgr4 mgr8 sgirgb sunhmono hpdj pcl3 hpdjplus
   hpdjportable hpdj310 hpdj320 hpdj340 hpdj400 hpdj500 hpdj500c hpdj510
   hpdj520 hpdj540 hpdj550c hpdj560c hpdj600 hpdj660c hpdj670c hpdj680c
   hpdj690c hpdj850c hpdj855c hpdj870c hpdj890c hpdj1120c cdj970 stp
   nullpage
Search path:
   . : /usr/local/share/ghostscript/6.50/lib :
   /usr/local/share/ghostscript/fonts
For more information, see /usr/local/share/ghostscript/6.50/doc/Use.htm.
Report bugs to bug-gs@aladdin.com, using the form in Bug-form.htm.




	Andreas ///

-- 
Andreas Klemm
Apsfilter Homepage                  http://www.apsfilter.org
Support over mailing-lists (only!)  http://www.apsfilter.org/support
Mailing-list archive                http://www.apsfilter.org/Lists-Archives
# New ports collection makefile for:	ghostscript
# Date created:		Tue Jun 10 21:58:54 CEST 1997
# Whom:			Andreas Klemm <andreas@klemm.gtn.com>
#
# $FreeBSD: ports/print/ghostscript6/Makefile,v 1.62 2001/01/19 19:01:31 andreas Exp $
#

PORTNAME=	ghostscript
PORTVERSION=	6.50
PORTREVISION=	2
CATEGORIES=	print
MASTER_SITES=	ftp://ftp.fh-koblenz.de/pub/Ghostscript/aladdin/gs650/ \
	ftp://ftp.fh-koblenz.de/pub/Ghostscript/aladdin/fonts/ \
	http://www.gelhaus.net/hp880c/1.4beta/ \
	http://home.t-online.de/home/Martin.Lottermoser/pcl3dist/ \
	http://www.harsch.net/Download/ \
	http://www.ozemail.com.au/~geoffk/pdfencrypt/ \
	ftp://download.sourceforge.net/pub/sourceforge/gimp-print/ \
	http://download.sourceforge.net/ghostscript/ \
	ftp://ftp.cs.wisc.edu/ghost/aladdin/fonts/ \
	ftp://ftp.mirror.ac.uk/sites/ftp.cs.wisc.edu/ghost/aladdin/gs650/ \
	ftp://ftp.mirror.ac.uk/sites/ftp.cs.wisc.edu/ghost/aladdin/fonts/ \
	ftp://ftp.medasys-digital-systems.fr/pub/unix/ghostscript/aladdin/gs650/ \
	ftp://ftp.medasys-digital-systems.fr/pub/unix/ghostscript/aladdin/fonts/ \
	ftp://munnari.oz.au/ghost/aladdin/gs650/ \
	ftp://munnari.oz.au/ghost/aladdin/fonts/ \
	ftp://sunsite.cnlab-switch.ch/mirror/ghost/aladdin/gs650/ \
	ftp://sunsite.cnlab-switch.ch/mirror/ghost/aladdin/fonts/
# note: russian mirror isn't up to date
DISTFILES=	${GS_SOURCES} ${GS_FONTS_STD} ${GS_FONTS_OTHER} \
		${DECRYPT_PDF} ${HP8XX_DRV} ${HPDJ_SRC} ${PCL3_SRC} \
		${HP970_DRV} ${GPRINT_SRC}
EXTRACT_ONLY=	${GS_SOURCES}

MAINTAINER=	andreas@FreeBSD.org

BUILD_DEPENDS=	${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract
LIB_DEPENDS=	png.4:${PORTSDIR}/graphics/png

WRKSRC=		${WRKDIR}/gs${PORTVERSION}
ALL_TARGET=	all pcl3opts escputil
USE_XLIB=	yes
USE_GMAKE=	yes
MAKEFILE=	src/unix-gcc.mak
PLIST_SUB=	GS_VERSION=${PORTVERSION}
# Note: the order that the manpages are listed here matters because
# some of them are symbolic links
MAN1=		gs.1 dvipdf.1 font2c.1 eps2eps.1 gsbj.1 gsdj.1 gsdj500.1 \
		gslj.1 gslp.1 gsnd.1 pdf2dsc.1 pdfopt.1 pdf2ps.1 pf2afm.1 \
		pfbtopfa.1 printafm.1 ps2ascii.1 ps2epsi.1 ps2pdf12.1 \
		ps2pdf13.1 ps2pdf.1 ps2pdfwr.1 ps2ps.1 wftopfa.1 \
		gs-hpdj.1 gs-pcl3.1 pcl3opts.1 escputil.1

GS_SOURCES=	ghostscript-${PORTVERSION}.tar.gz
#  Note: the following two are real files that have symlinks with
#  later version numbers pointing to them.  To avoid unnecessarily
#  downloading distfiles, do not change these when upgrading the port
#  unless the files really change.
GS_FONTS_STD=	ghostscript-fonts-std-6.0.tar.gz
GS_FONTS_OTHER=	ghostscript-fonts-other-6.0.tar.gz

# Additional Drivers:

# Ghostscript Driver for HP DeskJet 812C/815C/832C/880C/882C/895C
# http://www.gelhaus.net/hp880c/
# driver names:	cdj880
HP8XX_DRV=	gdevcd8.tar.gz

# HPDJ, additional driver for HP PCL3 Printers, by Martin Lottermoser
# ftp://ftp.sbs.de/pub/graphics/ghostscript/pcl3/pcl3.html
HPDJ=		hpdj
HPDJ_VERS=	2.6
HPDJ_NAME=	${HPDJ}-${HPDJ_VERS}
HPDJ_SRC=	${HPDJ_NAME}.tar.gz
HPDJ_MAN1=	gs-hpdj.1

# PCL3 (hpdj successor in BETA state)
# additional driver for HP PCL3 Printers, by Martin Lottermoser
# http://home.t-online.de/home/Martin.Lottermoser/pcl3.html
PCL3=		pcl3
PCL3_VERS=	3.0.2
PCL3_NAME=	${PCL3}-${PCL3_VERS}
PCL3_SRC=	${PCL3_NAME}.tar.gz
PCL3_MAN1=	gs-pcl3.1 pcl3opts.1

# additional driver for HP DeskJet 970, supports duplex printing
HP970_DRV=	gdevdj9.c.gz

# gimp-print - very high quality driver for Epson, HPs,...
# http://sourceforge.net/projects/gimp-print/
GPRINT=		print
GPRINT_DESC=	gimp-${GPRINT}
GPRINT_VERS=	4.0.4
GPRINT_NAME=	${GPRINT}-${GPRINT_VERS}
GPRINT_SRC=	${GPRINT_NAME}.tar.gz
GPRINT_MAN1=	escputil.1

# contributed uniprint profiles
CONTRIB_UPP=	lqx70ch.upp lqx70cl.upp lqx70cm.upp \
		stc740ih.upp stc740p.upp stc740pl.upp

# replacement for pdf_sec.ps, that allows you to read encrypted PDF files
DECRYPT_PDF=	pdf_sec.ps

.if defined(A4)
CFLAGS+=	-DA4
.endif

pre-fetch:
.if !defined(A4)
	@${ECHO_MSG} "Type \"make A4=yes\" if you want -DA4 for compilation."
.else
	@${ECHO_MSG} "Using -DA4 for compilation."
.endif

post-extract:
	@${ECHO} ">>> in post-extract ..."
	@${LN} -s ${WRKDIRPREFIX}${.CURDIR}/../../graphics/jpeg/work/jpeg-6b \
		${WRKSRC}/jpeg
# ** 3rd party driver **
# Note: don't forget to add those devices in scripts/configure and
# configure.batch, which update unix-gcc.mak to build gs with these
# new devices !
#
# for HP8XX driver
	@${ECHO} ">>>   extracting ${HP8XX_DRV} ..."
	@${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${HP8XX_DRV}
# for HPDJ driver
	@${ECHO} ">>>   extracting ${HPDJ_SRC} ..."
	@${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${HPDJ_SRC}
	@${TAR} -C ${WRKSRC}/src -xf ${WRKSRC}/${HPDJ_NAME}/${HPDJ}.tar
# for PCL3 driver
	@${ECHO} ">>>   extracting ${PCL3_SRC} ..."
	@${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${PCL3_SRC}
	@${LN} -s ${PCL3_NAME} ${WRKSRC}/pcl3
	@${TAR} -C ${WRKSRC}/${PCL3_NAME} -xf \
		${WRKSRC}/${PCL3_NAME}/${PCL3}.tar
# for HP DeskJet 970 driver
	@${ECHO} ">>>   extracting ${HP970_DRV} ..."
	@${CP} ${DISTDIR}/${HP970_DRV} ${WRKSRC}/src
	@${GUNZIP_CMD} ${WRKSRC}/src/${HP970_DRV}
# for gimp-print
	@${ECHO} ">>>   extracting ${GPRINT_SRC} ..."
	@${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${GPRINT_SRC}

# here we apply unofficial patches from 3rd party drivers
post-patch:
# from PCL3 driver
	@${ECHO} ">>> in post-patch ..."
	@${ECHO} ">>>   applying patches from ${PCL3} ..."
	@${PATCH} -d ${WRKSRC}/src --forward --quiet -E \
		< ${WRKSRC}/${PCL3_NAME}/src/zmedia2.c-6.01.diff

# here we apply the modifications necessary to build the 3rd party drivers
# advantage: you see unmodified makefiles after a pure make extract
pre-configure:
	@${ECHO} ">>> in pre-configure ..."
# for HPDJ driver
	@${ECHO} ">>>   adding ${HPDJ} driver to contrib.mak ..."
	@${CAT} ${WRKSRC}/src/contrib.mak-5.94.add \
		>> ${WRKSRC}/src/contrib.mak
# for PCL3 driver
	@${ECHO} ">>>   adding ${PCL3} driver to contrib.mak ..."
	@${CAT} ${WRKSRC}/${PCL3_NAME}/src/contrib.mak-6.01.add \
		>> ${WRKSRC}/src/contrib.mak
# for HP DeskJet 970 driver
	@${ECHO} ">>>   adding DJ970 driver to contrib.mak ..."
	@${CAT} ${FILESDIR}/dj970.contrib.mak \
		>> ${WRKSRC}/src/contrib.mak
# for gimp-print
	@${ECHO} ">>>   creating symlinks for ${GPRINT_DESC} ..."
	@${LN} -s ${WRKSRC}/${GPRINT_NAME}/Ghost/*.[ch] \
		${WRKSRC}/src
	@${ECHO} ">>>   adding ${GPRINT_DESC} driver to contrib.mak ..."
	@${CAT} ${WRKSRC}/${GPRINT_NAME}/Ghost/contrib.mak.addon \
		>> ${WRKSRC}/src/contrib.mak
	@${ECHO} ">>>   adding make rules for escputil to contrib.mak ..."
	@${CAT} ${FILESDIR}/escputil.contrib.mak \
		>> ${WRKSRC}/src/contrib.mak

do-configure:
	@${ECHO} ">>> in do-configure ..."
.if defined(BATCH)
	@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.batch
.else
	# XXX diable dialog based configure, needs some rework later...
	#@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure
	@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.batch
.endif

pre-build:
	@${ECHO} ">>> in pre-build ..."
	@${ECHO} ">>>   creating directories for compilation ..."
	@${MKDIR} ${WRKSRC}/obj
	@${MKDIR} ${WRKSRC}/bin

pre-install:
	@${ECHO} ">>> in pre-install ..."
	@${ECHO} ">>>   creating ghostscript destdir ..."
	@${MKDIR} ${PREFIX}/share/ghostscript
	@${ECHO} ">>>   extracting ghostscript fonts..."
	@${TAR} -C ${PREFIX}/share/ghostscript -xzf ${DISTDIR}/${GS_FONTS_STD}
	@${TAR} -C ${PREFIX}/share/ghostscript -xzf ${DISTDIR}/${GS_FONTS_OTHER}

post-install:
	@${ECHO} ">>> in post-install ..."
	@${ECHO} ">>>   stripping gs ..."
	@strip ${PREFIX}/bin/gs
	@${ECHO} ">>>   installing additional scripts ..."
	@${INSTALL_SCRIPT} ${WRKSRC}/lib/unix-lpr.sh ${PREFIX}/bin
	@${INSTALL_SCRIPT} ${WRKSRC}/lib/lprsetup.sh ${PREFIX}/bin
# for HPDJ driver
	@${ECHO} ">>>   installing ${HPDJ} manpages ..."
.for i in ${HPDJ_MAN1}
	@${INSTALL_MAN} ${WRKSRC}/src/${i} ${PREFIX}/man/man1
.endfor
	@${ECHO} ">>>   creating ${HPDJ} destdir ..."
	@${MKDIR} ${PREFIX}/share/ghostscript/${PORTVERSION}/hpdj
	@${ECHO} ">>>   installing files in ${HPDJ} destdir ..."
.for i in README.hpdj example.mdf margins-A4.ps margins-A4Rotated.ps \
	margins-Letter.ps margins-LetterRotated.ps
	@${INSTALL_DATA} ${WRKSRC}/src/${i} \
		${PREFIX}/share/ghostscript/${PORTVERSION}/hpdj
.endfor
# for PCL3 driver
	@${ECHO} ">>> installing ${PCL3} manpages ..."
.for i in ${PCL3_MAN1}
	@${INSTALL_MAN} ${WRKSRC}/${PCL3_NAME}/doc/${i} ${PREFIX}/man/man1
.endfor
# other pcl3 stuff, which might be interesting for runtime
	@${ECHO} ">>>   creating ${PCL3} destdir ..."
	@${MKDIR} ${PREFIX}/share/ghostscript/${PORTVERSION}/pcl3
	@${ECHO} ">>>   installing files in ${PCL3} destdir ..."
.for i in BETA 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} \
		${PREFIX}/share/ghostscript/${PORTVERSION}/pcl3
.endfor
# for gimp-print driver
	@${ECHO} ">>>   installing ${GPRINT_DESC} escputil in bindir ..."
	@${INSTALL_PROGRAM} ${WRKSRC}/src/escputil ${PREFIX}/bin
	@${ECHO} ">>>   stripping ${GPRINT_DESC} escputil ..."
	@strip ${PREFIX}/bin/escputil
	@${ECHO} ">>>   installing ${GPRINT_DESC} manpages ..."
.for i in ${GPRINT_MAN1}
	@${INSTALL_MAN} ${WRKSRC}/${GPRINT_NAME}/Ghost/${i} \
		${PREFIX}/man/man1
.endfor
	@${ECHO} ">>>   creating ${GPRINT_DESC} destdir ..."
	@${MKDIR} ${PREFIX}/share/ghostscript/${PORTVERSION}/gimp-print
	@${ECHO} ">>>   installing files in gimp-print destdir ..."
.for i in README
	@${INSTALL_DATA} ${WRKSRC}/${GPRINT_NAME}/Ghost/${i} \
		${PREFIX}/share/ghostscript/${PORTVERSION}/gimp-print
.endfor
# contributed UPP driver
	@${ECHO} ">>> installing contributed UPP profiles ..."
.for i in ${CONTRIB_UPP}
	@${INSTALL_DATA} ${FILESDIR}/${i} \
		${PREFIX}/share/ghostscript/${PORTVERSION}/lib
.endfor
# for reading encrypted PDFs
	@${ECHO} ">>> installing support for encrypted PDF files ..."
	@${INSTALL_DATA} ${DISTDIR}/${DECRYPT_PDF} \
		${PREFIX}/share/ghostscript/${PORTVERSION}/lib
#
# now NOPORTDOCS dependend stuff
#
.if !defined(NOPORTDOCS)
	@${ECHO} ">>> installing PORTDOC stuff ..."
# install hpdj docu, not necessary for runtime
# note: old hpdj driver has its files in ${WRKSRC}/src
	@${ECHO} ">>>   creating ${HPDJ} docu destdir ..."
	@${MKDIR} ${PREFIX}/share/doc/ghostscript/${PORTVERSION}/hpdj
	@${ECHO} ">>>   installing files in ${HPDJ} docu destdir ..."
.for i in LGPL.txt NEWS hpdj.html
	@${INSTALL_DATA} ${WRKSRC}/src/${i} \
		${PREFIX}/share/doc/ghostscript/${PORTVERSION}/hpdj
.endfor
# install pcl3 docu, not necessary for runtime
# note: new pcl3 driver has a subdir of its own
	@${ECHO} ">>>   creating ${PCL3} docu destdir ..."
	@${MKDIR} ${PREFIX}/share/doc/ghostscript/${PORTVERSION}/pcl3
	@${ECHO} ">>>   installing files in ${PCL3} docu destdir ..."
.for i in LGPL NEWS doc/gs-pcl3.html doc/how-to-report.txt doc/pcl3opts.html
	@${INSTALL_DATA} ${WRKSRC}/${PCL3_NAME}/${i} \
		${PREFIX}/share/doc/ghostscript/${PORTVERSION}/pcl3
.endfor
.endif
	@${ECHO} "> post-installation tasks completed."

.include <bsd.port.mk>

PGP signature