diff options
authorJulian Stacey <jhs@FreeBSD.org>1995-05-21 22:37:50 +0000
committerJulian Stacey <jhs@FreeBSD.org>1995-05-21 22:37:50 +0000
commit5915f2992df180e4b3ee5f64e59c5bf1d8366f12 (patch)
parent0c0a4b01bf321b30dcec085ed65d96cf17dfa357 (diff)
Reviewed by: Earlier draft reviewed by Satoshi (Thanks)
A new import based on Sam Leffler's Hylafax V3.0pl0. Flexfax is now obsolete. Import includes & applies the base patch Sam posted on the flexfax mail list (mail list is still called flexfax, though the package is called Hylafax). Sam declared our ports/comms/flexfax to be obsolete (over a year old). Sometime after the CD release, I will post a proposal to remove ports/comms/flexfax. I will maintain ports/comms/hylafax as I need fax capability. Thanks to Asami Satoshi for suggested improvements, I leave him to `bless' this port by adding the final comms/Makefile: SUBDIR += hylafax Until he does that, any mistakes I may have made shouldnt break any makes :-) I've undoubtedly screwed something up, somewhere, its a big port (30M inc bins),please test, Oh... and "Share & Enjoy" :-) --- Julian Stacey <jhs@freebsd.org> Tel. +49 89 268616. Fax Modem: 2608126 http://www.regent.e-technik.tu-muenchen.de/people/jhs.html
Notes: svn path=/head/; revision=1791
7 files changed, 644 insertions, 0 deletions
diff --git a/comms/hylafax/Makefile b/comms/hylafax/Makefile
new file mode 100644
index 000000000000..ee21b428e586
--- /dev/null
+++ b/comms/hylafax/Makefile
@@ -0,0 +1,162 @@
+# ports collection makefile for: hylafax
+# Version required: v3.0pl0
+# Date created: 16 May 1995
+# Whom: Julian Stacey <jhs@freebsd.org>
+# To Replace: flexfax v2.3beta038special
+# Name changed from flexfax to hylafax by author of both: Sam Leffler.
+MAINTAINER= jhs@FreeBSD.org
+DISTNAME= hylafax-v3.0pl0
+PKGNAME= hylafax-3.0.0
+MASTER_SITES= ftp://ftp.sgi.com:sgi/fax/source/
+KEYWORDS+= "fax modem"
+KEYWORDS+= facsimile
+KEYWORDS+= fax2ps
+KEYWORDS+= faxalter
+KEYWORDS+= faxcover
+KEYWORDS+= faxd
+KEYWORDS+= faxgetty
+KEYWORDS+= faxmail
+KEYWORDS+= faxrm
+KEYWORDS+= faxstat
+KEYWORDS+= sendfax
+INSTALL= "sh port/install.sh"
+# By default, FreeBSD make of ports sets INSTALL=install,
+# <bsd.port.mk> says make wont allow variables to be unset.
+# Hylafax ${WRKSRC}/configure needs a special (supplied) install
+# (To quote ${WRKSRC}/config.site:
+# Beware of changing the INSTALL definition; you *must* have an
+# install script that emulates the Silicon Graphics install program!
+# ) which it assumes you dont want if you set INSTALL.
+# I would prefer to unset the INSTALL from the FreeBSD ports mechanism,
+# but instead I reset it to what Hylafax wants.
+# As this is still insufficient, See also patches/patch-ad.
+.if !exists(patches/patch-ab)
+# patches/patch-ab makes this BATCH compilable,
+# ( If you need interactive config, mv patch-ab patch-ab.mv )
+# EXEC_DEPENDS?= ghostview:${PORTSDIR}/print/ghostview
+# For viewing faxes, not essential for compiling.
+EXEC_DEPENDS+= gs:${PORTSDIR}/print/ghostscript
+# ghostscript is called by faxcover & sendfax.
+# FreeBSD ports does not come with ghostscript-3 (the license is
+# restrictive), FreeBSD ports comes with ghostscript-2.6.2, which
+# is what I'm currently using. Sam Leffler wrote:
+# Ghostscript versions since 3.12 have had a working tiffg32d
+# driver, but beware of versions before 3.12 that have a
+# tiffg32d driver; those drivers generate invalid 2D-encoded data.
+# Someone with more time & less space than me can investigate merging these.
+# LIB_DEPENDS= something:${PORTSDIR}/graphics/tiff
+# ./libtiff has 2M, & may be duplicates of what is in ${PORTSDIR}/graphics/tiff
+# LIB_DEPENDS= something:${PORTSDIR}/print/afm
+# ./afm/ has 536K of fonts, that perhaps could be merged.
+FAXCOVER?= /etc/faxcover.ps
+# Default location to check for an optional over-riding host specific
+# customised faxcover that will be installed in these sources,
+# & end up where Hylafax installs all its stuff by default:
+# /var/spool/fax/etc/....
+# Note dont make FAXCOVER use a variable (such as ${PREFIX}),
+# as that wont work in `exists' below.
+# ------------------------------------------------------------------------------
+ @# Ref. ${DISTNAME} ...
+ @echo "Warning - Original distribution is:"
+ @echo " ftp://ftp.sgi.com/sgi/fax/source/hylafax-v3.0pl0-tar.gz"
+ @echo "but /usr/share/mk/bsd.port*mk expects something.tar.gz, and "
+ @echo "will not allow something-tar.gz, "
+ @# Perhaps asami@freebsd.org can be persuaded to investigate ?
+ @echo -n "so until someone enhances"
+ @echo "FreeBSD make macros, do this:"
+ @echo -n " cd /usr/ports/distfiles ; "
+ @echo "ln -s hylafax-v3.0pl0-tar.gz hylafax-v3.0pl0.tar.gz"
+.if exists(${FAXCOVER})
+ @echo I see you have ${FAXCOVER},
+ @echo which I will use to install a system default from.
+ @# When I suggested to Sam (in the flexfax mailing list) merging
+ @# in the distribution util/cover.templ & faxcover/faxcover.ps
+ @# ( as they are virtually identical) Sam said they're for
+ @# different things, & wouldn't do it. I don't know what the
+ @# different purposes are, & I Do succesfully use the same file.
+ -cd ${WRKSRC} ; mv faxcover/faxcover.ps faxcover/faxcover.ps.mv
+ -cd ${WRKSRC} ; mv util/cover.templ util/cover.templ.mv
+ -cd ${WRKSRC} ; ln -s ../cover.ps faxcover/faxcover.ps
+ -cd ${WRKSRC} ; ln -s ../cover.ps util/cover.templ
+ -cd ${WRKSRC} ; ln -s ${FAXCOVER} cover.ps
+.if exists(patches/patch-ab)
+ @echo "patches/patch-ab has supressed interactive configuration."
+ @# If you need interactive config, mv patch-ab patch-ab.mv
+ cd ${PREFIX}/bin ; strip \
+ fax2ps faxalter faxcover faxmail faxrm faxstat sendfax sendpage
+ cd ${PREFIX}/sbin ; strip faxd.recv faxgetty faxq
+ @echo "Hylafax by default only does this sete[gu]id 0 stuff:"
+ @echo " -u uucp -m 4755 faxq faxgetty"
+ @echo "If you, like I, think it needs more, run 'make suid'"
+ @echo "Now consider running faxaddmodem"
+SUID_EXES= /usr/local/sbin/faxgetty
+SUID_EXES+= /usr/local/sbin/faxq
+SUID_EXES+= /usr/local/bin/faxrm
+SUID_EXES+= /usr/local/bin/faxalter
+ @# This does too much, & may perhaps cause security loopholes,
+ @# but default Hylafax doesnt do enough, eg faxrm wont work,
+ @# & even worse, I have received a faxes that then silent failed
+ @# to write to recvq.
+ @# Only fax modem users who test their hypotheses may change this !
+ @# (Imagine losing an important incoming fax, if recvq is unwritable.)
+ chown uucp ${SUID_EXES}
+ chgrp dialer ${SUID_EXES}
+ chmod 6555 ${SUID_EXES}
+ find /var/spool/fax -print | xargs chown uucp
+ find /var/spool/fax -print | xargs chgrp dialer
+ find /var/spool/fax -print | xargs chmod g+w
+ find /var/spool/fax -print | xargs chmod g+r
+ find /var/spool/fax -type d -print | xargs chmod g+x
+ # now remove some x bits that get set by mistake.
+ -cd /var/spool/fax ; chmod g-x FIFO* log/* status/* recvq/* sendq/*
+ @echo "Now nonsider doing somethink like this:"
+ @echo " sh"
+ @echo " n=1"
+ @echo ' all="ttyd$$n ttyid$$n ttyld$$n cua0$$n cuai0$$n cual0$$n"'
+ @echo ' chown uucp $$all; chgrp dialer $$all; chmod 660 $$all'
+ rm -f \
+ fax2ps/fax2ps \
+ faxalter/faxalter \
+ faxcover/faxcover \
+ faxd/faxd \
+ faxgetty/faxgetty \
+ faxmail/faxmail \
+ faxq/faxq \
+ faxrm/faxrm \
+ faxstat/faxstat \
+ recvfax/recvfax \
+ sendfax/sendfax \
+ sendpage/sendpage \
+ sgi2fax/sgi2fax
+ @# Sam Leffler (author of Hylafax) has a non standard view of
+ @# `make clean': he leaves binaries intact - deliberately !
+ @# One cannot use /usr/share/mk/bsd.port.mk re-clean: to invoke
+ @# `make clobber' before `make clean'
+ @# as it results in `"rules", ... Could not find Makedepend'
+.include <bsd.port.mk>
diff --git a/comms/hylafax/distinfo b/comms/hylafax/distinfo
new file mode 100644
index 000000000000..303f30dc6454
--- /dev/null
+++ b/comms/hylafax/distinfo
@@ -0,0 +1 @@
+MD5 (hylafax-v3.0pl0.tar.gz) = ab3bdeee68a6cd64c270e09dffe928e7
diff --git a/comms/hylafax/files/README b/comms/hylafax/files/README
new file mode 100644
index 000000000000..a979996b61d8
--- /dev/null
+++ b/comms/hylafax/files/README
@@ -0,0 +1,225 @@
+ NOTES ON HYLAFAX IN FREEBSD (/usr/ports/comms/hylafax)
+ By Julian Stacey <jhs@freebsd.org> May 1995
+This port replaces flexfax (which is over a year old).
+Thanks to Sam Leffler of SGI for writing & releasing Hylafax :-)
+I <jhs@freebsd.org> wrote the FreeBSD ports/comm/hylafax/* files,
+Copyright Julian Stacey 1995:
+ Please preserve & comply with Sam Leffler's & SGI's legal stuff
+ I hereby release my work in this area for public use, & disclaim
+ all liability !
+ Leave my name intact please, I'm a freelance, publicity can be useful.
+ - On Line Manuals: man hylafax.
+ - World Wide Web site: (http://www.vix.com/flexfax/
+ - Source tree: Local copies of web in html & html/FAQ etc.
+Mailing List for Support, Development etc:
+ Don't mail me your fax or modem problems, nor post Hylafax
+ software bugs & fax modem problems to a Freebsd mail list.
+ The correct mail list: flexfax@sgi.com
+ Bug reports, accompanied by diff -c patches, will be reviewed &
+ commited to FreeBSD/ports).
+ Syntax etc examples are in: config.jhs config.ttyd1.jhs etc.ttys.jhs
+My Test Environment:
+ SupraFax V32bis + FreeBSD-2-current (May 1995)
+ I'm not sure if the lock file scheme is OK
+ (It may be, I just used the default).
+ Some of the permissions are not right,
+ (sometimes I get many email acknowledgements for each fax
+ sent (but fax is only sent once, no horrendous phone bill
+ ... yet ;-)
+ My faxgetty will not answer as a normal modem (maybe its the modem,
+ or maybe my config file is wrong).
+Julian Stacey <jhs@freebsd.org> Tel. +49 89 268616. Fax Modem: 2608126
+ http://www.regent.e-technik.tu-muenchen.de/people/jhs.html
+Vector Systems Ltd: an Internet, Unix & C consultancy in Munich Germany
+Appended are some example Config files:
+ttyd1 "/usr/local/sbin/faxgetty" vt100 on unsecure
+LogFacility: daemon
+CountryCode: 49
+AreaCode: 89
+LongDistancePrefix: 0
+InternationalPrefix: 00
+DialStringRules: etc/dialrules.europe
+ServerTracing: 1
+MaxSendPages: 20
+# /var/spool/fax/etc/config.ttyd1 by jhs@freebsd.org
+# from $Header: /usr/people/sam/fax/config/RCS/rockwell,v 1.25 1995/03/10 23:36:02 sam Exp $
+# this file documented in man config
+# Sam says:
+# {
+# If you stop faxq then faxd.recv will remove the job itself;
+# otherwise if it sees faxq is running it passes the remove request on and
+# assumes the task was completed (there is no acknowledgement).
+# ServerTracing so that tracing messages are not sent out (listed in the
+# TODO file, a fix is welcome). If you think this might be happening, try
+# echo "CServerTracing: 0x201">/var/spool/fax/FIFO
+# to force faxq to reset the current value for ServerTracing.
+# }
+# Configuration for a Rockwell-based Class 2 modem.
+# Boca M1440E firmware V1.270 or newer
+# Dallas Fax (throw it away!)
+# Hayes Optima 24+Fax96 firmware TR00-J260-001 XXX or newer
+# SupraFAX v.32bis firmware V1.200-C or newer
+# Twincom 144/DF firmware revision V1.200 or newer
+# Dynalink 1414VE
+# (and others)
+# This configuration file sets up the modem to run at 19.2 for
+# sending and for receiving. XON/XOFF flow control is used on
+# the tty port. RTS/CTS can be used by switching the flow control
+# setup, but beware of modems that do not support it during
+# facsimile operations. Also beware that the adaptive-answer
+# facility, when supported, is usually unreliable.
+# AdaptiveAnswer boolean No enable adaptive answer of inbound calls
+AdaptiveAnswer Yes
+# AnswerRotary string Any alternatives for answering calls
+# AnswerRotary "fax data"
+# DestControls jhs set later see man destctrls
+MaxDials 3 # max calls to transmit a job (presumably doing succesive pages)
+# Wrong numbers cost me 23pf per fail, & earache to whoever answers the phone !
+# MaxTries 3 # max attempts to transmit a job (3 default)
+NoCarrierRetrys 0 # default 1 # number of times to retry dialing on ``NO CARRIER''
+# JobReqBusy integer 300 requeue interval for BUSY dial result
+MaxSendPages 20 # max pages to permit in a send
+# jhs later QualifyTSI file of TSI patterns for qualifying senders
+CountryCode: 49
+AreaCode: 89
+FAXNumber: +49.89.2608126 # also used to name session log file
+LocalIdentifier: "+49 89 2608126"
+LongDistancePrefix: 0
+InternationalPrefix: 00
+DialStringRules: etc/dialrules.europe
+ServerTracing: 1
+SessionTracing: 11
+RecvFileMode: 0644 # if you have nosey users, consider 0600
+LogFileMode: 0644 # make it 0600 if calling card access codes are logged
+DeviceMode: 0600
+RingsBeforeAnswer: 2
+SpeakerVolume: medium
+# Any appearance of ``%l'' is replaced with the tty name and any
+# appearance of ``%s'' is replaced with the serial port speed (in decimal).
+GettyArgs: "std.%s -" # "std.%s ttyd1" # default is "-h %l dx_%s"
+# FreeBSD man getty says: getty [type [tty]]
+# FreeBSD man login says: -h specifies host from which the connection received.
+# kew@timesink.spk.wa.us (FreeBSD 2.1.0) uses "std.%s -".
+TagLineFont: etc/lutRS18.pcf
+# pre jhs default was TagLineFormat: "From %%l|%c|Page %%p of %%t"
+# %c gives American-only date format, which is confusing in Britain or Germany
+# so I use international accountancy date format: (19)95 08 01 (ie 1st Aug)
+# I use no words in my tag line, as fax may be in German or English.
+# allow at least 4 spaces before VSL as PCS fax chops left margin
+# dont actually use space char, as entabbing this file will lose it all
+# dont put too much in any one field or will overprint
+# %%l takes LocalIdentifier
+# %%n sender fax ie +49.89.2608126
+# %%d target fax ie +498968004525, from sendfax -d gary@68004.525
+# %%p page number inc. cover sheet
+# %%t total pages inc. cover sheet
+# jhs created `pages' symbol (\241 dec161 xa1) in lutRS18.pcf
+# jhs created `phone' symbol (\244 dec164 xa4) in lutRS18.pcf
+# `phone' & `pages' are inspired by symbols that pcs fax machine prints
+# PCS FAX is "Canon Fax 280" Model H11232, + H11 2325 + HA2 1324, REN=3
+TagLineFormat: "Fax %%n|Tel \244 +49 89 268616|\241 %%p/%%t %Y:%m:%d %H:%M"
+# MaxRecvPages: unlimited
+# Modem-related stuff: should reflect modem command interface
+# and hardware connection/cabling (e.g. flow control).
+ModemType: Class2 # use class 2 interface
+ModemRate: 19200 # fax send&recv is locked at 19.2
+ModemFlowControl: xonxoff # default
+ModemResetCmds: AT&F2 # what you want for a Supra # JJ I have not checked operation since enabling this
+ModemNoFlowCmd: AT&K # disable flow control cmd
+ModemHardFlowCmd: AT&K3 # hardware flow control cmd
+ModemSoftFlowCmd: AT&K4 # software flow control cmd
+ModemSetupDTRCmd: AT&D3 # DTR off causes modem to reset
+#ModemSetupDTRCmd: AT&D2S25=1S38=0 # Dynalink 1414VE needs this
+ModemSetupDCDCmd: AT&C1 # DCD follows carrier
+ModemSetupAACmd: AT+FAA=1+FCLASS=0 # enable in current class
+# FAQ says: AT+FAA=1 Auto answer as facsimile or data depending on call
+ModemSendFillOrder: LSB2MSB # as expected
+ModemRecvFillOrder: MSB2LSB # opposite of what makes sense
+ModemDialCmd: ATDT%s@ # T for tone dialing, @ for silence
+# Caller ID configuration setup for Supra.
+# QualifyCID: etc/cid (off by default) CID access control list file
+CIDNumber: "NMBR = " # pattern string for phone number info # JJ I have not checked operation since enabling this
+CIDName: "NAME = " # pattern string for identity info # JJ I have not checked operation since enabling this
+# ModemAnswerFaxCmd string ATA command for answering fax call
+# ModemAnswerDataCmd string ATA command for answering data call
+# Class1RecvIdentTimer
+# The time, in milliseconds, to wait for an initial
+# DCS when receiving a facsimile. CCITT recommenda-
+# tion T.30 specifies this as the value of the T1
+# timer. However, adaptive answering schemes such as
+# that described above under the AdaptiveAnswer
+# parameter may require that this timer be shortened.
+# Class1RecvIdentTimer 35000 Class 1: max wait (ms) for initial ident frame
+Class1RecvIdentTimer 12000
+# Supra default wait for carrier is 50/10th sec, change with ats7=255
+# Datatronic default wait for carrier is 45/10th sec.
+# matthias says: config.ttyd1
+# FaxT1Timer
+# should not be changed without full understanding of the ... server.
+# The value of the T1 timer in milliseconds. This
+# timer is used to time out the initial session con-
+# tact; i.e. receipt of DIS/DCS.
+# FaxT1Timer 35000 CCITT T.30 T1 timer (ms)
+# AdaptiveAnswer:
+# Class1RecvIdentTimer should be set to a value that
+# is shorter than FaxT1Timer.
+# yet defaults for both are exactly the same: 35000 / 1000 sec.
+UUCPLockDir /var/spool/lock # jhs added this after seeing where kermit created a lock.
+UUCPLockType ascii # jhs added this after seeing what kermit created
+# Note kermit -l /dev/supra created /var/spool/lock/LCK..supra
+# (supra is a link to cua01, so the lock wont really work, as I'm running
+# gettyfax on ttyd1.
diff --git a/comms/hylafax/files/patch-ab b/comms/hylafax/files/patch-ab
new file mode 100644
index 000000000000..03446a5f38db
--- /dev/null
+++ b/comms/hylafax/files/patch-ab
@@ -0,0 +1,32 @@
+This patch prepared by Julian Stacey <jhs@FreeBSD.Org
+Make this a BATCH compilable port, instead of IS_INTERACTIVE
+Warning before removing or renaming this patch,
+consult this code segment in ../Makefile:
+ .if !exists(patches/patch-aa)
+ .endif
+*** configure Sat May 20 16:30:29 1995
+--- configure Sat May 20 16:58:58 1995
+*** 2889,2895 ****
+ fi
+ checkForExecutable $PATH_SENDMAIL
+ checkForExecutable $PATH_GETTY
+! printConfig; prompt "Are these ok [yes]?"; read ok
+ test -z "$ok" && ok=yes
+ case "$ok" in
+ [1-9]|1[0-7]) promptForParameter $ok;;
+--- 2889,2898 ----
+ fi
+ checkForExecutable $PATH_SENDMAIL
+ checkForExecutable $PATH_GETTY
+! printConfig
+! ok=yes
+! echo "If you do not like this config, uncomment next prompt line in configure."
+! # prompt "Are these ok [yes]?"; read ok
+ test -z "$ok" && ok=yes
+ case "$ok" in
+ [1-9]|1[0-7]) promptForParameter $ok;;
diff --git a/comms/hylafax/pkg-comment b/comms/hylafax/pkg-comment
new file mode 100644
index 000000000000..fcea4c154853
--- /dev/null
+++ b/comms/hylafax/pkg-comment
@@ -0,0 +1 @@
+hylafax-v3.0pl0 - version 3.0pl0 of the fax software package duplicates tiff code
diff --git a/comms/hylafax/pkg-descr b/comms/hylafax/pkg-descr
new file mode 100644
index 000000000000..3ddc577a466a
--- /dev/null
+++ b/comms/hylafax/pkg-descr
@@ -0,0 +1,14 @@
+HylaFAX is a facsimile system for UNIXtm systems. Among
+the features of HylaFAX are:
+- HylaFAX runs as a network service; this means a fax
+ modem may be effectively shared by a large number of users.
+- HylaFAX can be configured to work with a wide variety
+ of fax modems on a wide variety of systems.
+- Access to the system can be restricted by the adminis-
+ trator to selected hosts and/or users.
+- Transmission requests may be processed immediately (default) or queued
+ for processing at a later time, in the manner of the at(1) command.
+- Remote facsimile machines may be polled to retrieve
+ publicly available documents.
+ Julian Stacey <jhs@freebsd.org>
diff --git a/comms/hylafax/pkg-plist b/comms/hylafax/pkg-plist
new file mode 100644
index 000000000000..deaf21dc39b4
--- /dev/null
+++ b/comms/hylafax/pkg-plist
@@ -0,0 +1,209 @@
+@comment PLIST by Julian Stacey <JHS@FreeBSD.Org>
+@name hylafax
+@pkgdep ghostscript
+@comment Ghostscript versions since 3.12 have had a working tiffg32d
+@cwd /usr/local
+@dirrm /var/spool/fax
+@dirrm /usr/local/lib/fax
+@comment theres no example of good @mtree syntax in ports yet
+@comment when such example appears, it will be worth converting this
+@comment so that mtree can do the mkdir work:
+@comment @cwd
+@comment @owner bin
+@comment @group bin
+@comment @mode 755
+@comment /usr/local/bin
+@comment /usr/local/lib/fax
+@comment /usr/local/sbin
+@comment @owner uucp
+@comment @group dialer
+@comment @mode 755
+@comment /var/spool/fax
+@comment /var/spool/fax/bin
+@comment /var/spool/fax/config
+@comment /var/spool/fax/etc
+@comment /var/spool/fax/recvq
+@comment /var/spool/fax/info (No pkg file here, but need dir
+@comment /var/spool/fax/log (No pkg file here, but need dir
+@comment /var/spool/fax/status (No pkg file here, but need dir
+@comment @owner uucp
+@comment @group dialer
+@comment @mode 700
+@comment /var/spool/fax/sendq
+@comment /var/spool/fax/docq
+@comment /var/spool/fax/tmp
+@cwd /var/spool/fax
+@mode 600
+@comment fifo
+@mode 444
+@cwd /var/spool/fax/bin
+@mode 444
+@mode 555
+@cwd /var/spool/fax/config
+@mode 444
+@cwd /var/spool/fax/etc
+@mode 444
+@mode 644
+@cwd /usr/local/bin
+@mode 555
+@cwd /usr/local/sbin
+@owner uucp
+@group dialer
+@mode 6555
+@owner uucp
+@group dialer
+@mode 555
+@cwd /usr/local/lib/fax
+@mode 444
+@cwd /usr/local/man/man1
+@mode 444
+@cwd /usr/local/man/man5
+@cwd /usr/local/man/man8
+@comment end