summaryrefslogtreecommitdiff
path: root/comms/mgetty+sendfax
diff options
context:
space:
mode:
authortron <tron>1998-11-15 18:04:25 +0000
committertron <tron>1998-11-15 18:04:25 +0000
commit96e96b860bbd8210c6361e931b5153bd4f3a31cb (patch)
treef6df80579d063558e8b4e00a92d6b5e6c585f56d /comms/mgetty+sendfax
parente66b2c5aa72247b6f97aacae35d2fb2cf1e3295f (diff)
downloadpkgsrc-96e96b860bbd8210c6361e931b5153bd4f3a31cb.tar.gz
Initial import of FreeBSD "mgetty+sendfax" port:
Handle external logins, send and receive faxes.
Diffstat (limited to 'comms/mgetty+sendfax')
-rw-r--r--comms/mgetty+sendfax/Makefile32
-rw-r--r--comms/mgetty+sendfax/files/md51
-rw-r--r--comms/mgetty+sendfax/patches/patch-aa17
-rw-r--r--comms/mgetty+sendfax/patches/patch-ab104
-rw-r--r--comms/mgetty+sendfax/patches/patch-ac19
-rw-r--r--comms/mgetty+sendfax/patches/patch-ad11
-rw-r--r--comms/mgetty+sendfax/pkg/COMMENT1
-rw-r--r--comms/mgetty+sendfax/pkg/DEINSTALL19
-rw-r--r--comms/mgetty+sendfax/pkg/DESCR14
-rwxr-xr-xcomms/mgetty+sendfax/pkg/INSTALL615
-rw-r--r--comms/mgetty+sendfax/pkg/PLIST54
-rw-r--r--comms/mgetty+sendfax/scripts/configure30
12 files changed, 917 insertions, 0 deletions
diff --git a/comms/mgetty+sendfax/Makefile b/comms/mgetty+sendfax/Makefile
new file mode 100644
index 00000000000..dd309497459
--- /dev/null
+++ b/comms/mgetty+sendfax/Makefile
@@ -0,0 +1,32 @@
+# New ports collection makefile for: mgetty+sendfax
+# Version required: 1.1.16
+# Date created: 20 April 1998
+# Whom: rkw
+#
+# Id: Makefile,v 1.25 1998/07/16 06:44:37 vanilla Exp
+#
+
+DISTNAME= mgetty1.1.16-Jul05
+PKGNAME= mgetty-1.1.16
+CATEGORIES= comms
+MASTER_SITES= ftp://ftp.leo.org/pub/comp/os/unix/networking/mgetty/
+
+MAINTAINER= jmz@FreeBSD.org
+
+WRKSRC= ${WRKDIR}/mgetty-1.1.16
+MAKE_FLAGS= prefix=${PREFIX} -f
+MAN1= coverpg.1 fax.1 faxq.1 faxrm.1 faxrunq.1 faxspool.1 \
+ g3cat.1 g32pbm.1 pbm2g3.1 pvf.1 zplay.1
+MAN4= mgettydefs.4
+MAN5= faxqueue.5
+MAN8= sendfax.8 mgetty.8 callback.8 faxrunqd.8
+
+pre-install:
+ @(cd ${WRKSRC}/doc; ${MAKE} manpages)
+
+.if !defined(BATCH)
+post-install:
+ @(cd ${PKGDIR}; export PKG_PREFIX=${PREFIX}; /usr/bin/perl INSTALL _ POST-INSTALL)
+.endif
+
+.include <bsd.port.mk>
diff --git a/comms/mgetty+sendfax/files/md5 b/comms/mgetty+sendfax/files/md5
new file mode 100644
index 00000000000..7b99ddd2f98
--- /dev/null
+++ b/comms/mgetty+sendfax/files/md5
@@ -0,0 +1 @@
+MD5 (mgetty1.1.16-Jul05.tar.gz) = 6d2999cd3e73b739b0c51c7a4484061f
diff --git a/comms/mgetty+sendfax/patches/patch-aa b/comms/mgetty+sendfax/patches/patch-aa
new file mode 100644
index 00000000000..089b30176af
--- /dev/null
+++ b/comms/mgetty+sendfax/patches/patch-aa
@@ -0,0 +1,17 @@
+--- fax/faxspool.in.orig Fri Aug 8 21:43:55 1997
++++ fax/faxspool.in Mon Dec 29 22:31:59 1997
+@@ -299,11 +299,11 @@
+ # user name (for authentification)
+ ##########
+
+-if user=`logname 2>/dev/null`
+-then :
++if [ `id -u` = 0 ]; then
++ user=root
+ else
+ id=`id`
+- user=`expr "$id" : "[^( ]*(\([^)]*\)"`
++ user=`logname`
+ fi
+ test -z "$user" && user=$LOGNAME
+ test -z "$user" && user=$USER
diff --git a/comms/mgetty+sendfax/patches/patch-ab b/comms/mgetty+sendfax/patches/patch-ab
new file mode 100644
index 00000000000..eb725772d96
--- /dev/null
+++ b/comms/mgetty+sendfax/patches/patch-ab
@@ -0,0 +1,104 @@
+--- Makefile.orig Mon Jul 6 05:24:36 1998
++++ Makefile Thu Jul 16 14:04:54 1998
+@@ -4,8 +4,8 @@
+ #
+ # this is the C compiler to use (on SunOS, the standard "cc" does not
+ # grok my code, so please use gcc there. On ISC 4.0, use "icc".).
+-CC=gcc
+-#CC=cc
++#CC=gcc
++CC=cc
+ #
+ #### C Compiler Flags ####
+ #
+@@ -107,7 +107,7 @@
+ # prompt first. Don't forget to activate the /AutoPPP/ line in login.config!
+ #
+ #CFLAGS=-Wall -O2 -pipe -DSECUREWARE -DUSE_POLL
+-CFLAGS=-O2 -Wall -pipe
++CFLAGS+=-DAUTO_PPP
+ #CFLAGS=-O -DSVR4
+ #CFLAGS=-O -DSVR4 -DSVR42
+ #CFLAGS=-O -DUSE_POLL
+@@ -149,7 +149,7 @@
+ # For Linux, add "-lutil" if the linker complains about "updwtmp".
+ #
+ LDFLAGS=
+-LIBS=
++LIBS=-lutil
+ #LIBS=-lprot -lsocket # SCO Unix
+ #LIBS=-lsocket
+ #LIBS=-lbsd # OSF/1
+@@ -247,7 +247,7 @@
+ # If you have Perl with TK extentions, define it here. This may be the
+ # same as PERL=... above, or different, if you have TkPerl statically
+ # linked.
+-TKPERL=/usr/bin/tkperl
++#TKPERL=/usr/bin/tkperl
+ #
+ #
+ # An echo program that understands escapes like "\n" for newline or
+@@ -259,9 +259,9 @@
+ # please use the "mg.echo" program provided in the compat/ subdirectory.
+ # Set ECHO="mg.echo" and INSTALL_MECHO to mg.echo
+ #
+-ECHO="echo"
++ECHO="mg.echo"
+ #
+-# INSTALL_MECHO=mg.echo
++INSTALL_MECHO=mg.echo
+
+ #
+ # for mgetty, that's it. If you want to use the voice
+@@ -269,7 +269,7 @@
+
+ # To maintain security, I recommend creating a new group for
+ # users who are allowed to manipulate the recorded voice messages.
+-PHONE_GROUP=phone
++PHONE_GROUP=uucp
+ PHONE_PERMS=770
+
+ # Add -DNO_STRSTR to CFLAGS if you don't have strstr().
+@@ -301,7 +301,7 @@
+
+ all: bin-all doc-all
+
+-bin-all: mgetty sendfax newslock subdirs call-back
++bin-all: mgetty sendfax newslock subdirs call-back vgetty
+
+ # a few C files need extra compiler arguments
+
+@@ -560,15 +560,15 @@
+ cd bindist; gtar cvvfz mgetty$(MR).$(SR)-bin.tgz *
+
+
+-install: install.bin install.doc
++install: install.bin install.doc install-vgetty
+
+ install.bin: mgetty sendfax newslock \
+- login.config mgetty.config sendfax.config
++ login.config #mgetty.config sendfax.config
+ #
+ # binaries
+ #
+ -test -d $(BINDIR) || ( ./mkidirs $(BINDIR) ; chmod 755 $(BINDIR) )
+- $(INSTALL) -m 755 newslock $(BINDIR)
++ $(INSTALL) -s -m 755 newslock $(BINDIR)
+
+ -test -d $(SBINDIR) || ( ./mkidirs $(SBINDIR) ; chmod 755 $(SBINDIR) )
+ -mv -f $(SBINDIR)/mgetty $(SBINDIR)/mgetty.old
+@@ -584,10 +584,10 @@
+ ( ./mkidirs $(CONFDIR); chmod 755 $(CONFDIR))
+ test -f $(CONFDIR)/login.config || \
+ $(INSTALL) -o root -m 600 login.config $(CONFDIR)/
+- test -f $(CONFDIR)/mgetty.config || \
+- $(INSTALL) -o root -m 600 mgetty.config $(CONFDIR)/
+- test -f $(CONFDIR)/sendfax.config || \
+- $(INSTALL) -o root -m 644 sendfax.config $(CONFDIR)/
++# test -f $(CONFDIR)/mgetty.config || \
++# $(INSTALL) -o root -m 600 mgetty.config $(CONFDIR)/
++# test -f $(CONFDIR)/sendfax.config || \
++# $(INSTALL) -o root -m 644 sendfax.config $(CONFDIR)/
+ test -f $(CONFDIR)/dialin.config || \
+ $(INSTALL) -o root -m 600 dialin.config $(CONFDIR)/
+ test -f $(CONFDIR)/faxrunq.config || \
diff --git a/comms/mgetty+sendfax/patches/patch-ac b/comms/mgetty+sendfax/patches/patch-ac
new file mode 100644
index 00000000000..7890b81826b
--- /dev/null
+++ b/comms/mgetty+sendfax/patches/patch-ac
@@ -0,0 +1,19 @@
+--- voice/Makefile.orig Mon Dec 29 23:06:36 1997
++++ voice/Makefile Mon Dec 29 23:07:18 1997
+@@ -89,11 +89,11 @@
+ done
+ $(INSTALL) -m 644 man/man1/zplay.1 $(MAN1DIR)
+ $(INSTALL) -m 644 man/man1/pvf.1 $(MAN1DIR)
+- cd $(MAN1DIR); \
+- for i in $(PVFTOOLS); \
+- do \
+- $(RM) -f $$i.1; $(LN) -s pvf.1 $$i.1; \
+- done
++# cd $(MAN1DIR); \
++# for i in $(PVFTOOLS); \
++# do \
++# $(RM) -f $$i.1; $(LN) -s pvf.1 $$i.1; \
++# done
+ # [ -d $(VOICE_DIR) ] || mkdir $(VOICE_DIR)
+ # [ -d $(VOICE_DIR)/incoming ] || mkdir $(VOICE_DIR)/incoming
+ # chown 0 $(VOICE_DIR)/incoming
diff --git a/comms/mgetty+sendfax/patches/patch-ad b/comms/mgetty+sendfax/patches/patch-ad
new file mode 100644
index 00000000000..24ded4ca74e
--- /dev/null
+++ b/comms/mgetty+sendfax/patches/patch-ad
@@ -0,0 +1,11 @@
+--- doc/Makefile.orig Fri Nov 28 04:33:26 1997
++++ doc/Makefile Mon Dec 29 22:31:59 1997
+@@ -26,7 +26,7 @@
+
+ all:
+
+-doc-all: mgetty.asc mgetty.info mgetty.dvi mgetty.ps fmt-manpages $(MANSRC)
++doc-all: mgetty.asc mgetty.info fmt-manpages $(MANSRC)
+
+ manpages: $(MANSRC)
+
diff --git a/comms/mgetty+sendfax/pkg/COMMENT b/comms/mgetty+sendfax/pkg/COMMENT
new file mode 100644
index 00000000000..2d177c8289f
--- /dev/null
+++ b/comms/mgetty+sendfax/pkg/COMMENT
@@ -0,0 +1 @@
+Handle external logins, send and receive faxes.
diff --git a/comms/mgetty+sendfax/pkg/DEINSTALL b/comms/mgetty+sendfax/pkg/DEINSTALL
new file mode 100644
index 00000000000..d3584709d23
--- /dev/null
+++ b/comms/mgetty+sendfax/pkg/DEINSTALL
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+prefix=/usr/local
+
+cat << END
+
+Deinstalling mgetty+sendfax will remove your configuration files (usually
+mgetty.config and sendfax.config in $prefix/etc/mgetty+sendfax/). If you
+want to reinstall the port later, you must make a backup of those files
+now.
+
+END
+
+echo -n "do you want to deinstall the package ? [y] "
+read answ; if [ "$answ" = "" ]; then answ=y; fi
+case $answ in
+ y*|Y*) exit 0;;
+ *) exit 1;;
+esac
diff --git a/comms/mgetty+sendfax/pkg/DESCR b/comms/mgetty+sendfax/pkg/DESCR
new file mode 100644
index 00000000000..3f10643b2cf
--- /dev/null
+++ b/comms/mgetty+sendfax/pkg/DESCR
@@ -0,0 +1,14 @@
+Mgetty is a ``smart'' getty replacement, designed to be used with Hayes
+compatible data and data/fax modems.
+
+Mgetty knows about modem initialization, manual modem answering (so your
+modem doesn't answer if the machine isn't ready), UUCP locking (so you can
+use the same device for dial-in and dial-out).
+
+Mgetty provides very extensive logging facilities.
+
+Sendfax sends the named g3 fax files to the fax machine at "phone number".
+The g3 files can be created with pbmtog3(1) or GNU's GhostScript with the
+"digifax" driver.
+
+http://www.webforum.de/mgetty-faq.html
diff --git a/comms/mgetty+sendfax/pkg/INSTALL b/comms/mgetty+sendfax/pkg/INSTALL
new file mode 100755
index 00000000000..45d1529fe92
--- /dev/null
+++ b/comms/mgetty+sendfax/pkg/INSTALL
@@ -0,0 +1,615 @@
+#!/usr/bin/perl
+
+exit 0 if $ARGV[1] ne "POST-INSTALL";
+
+print STDERR "\n\n\n =========== mgetty+sendfax configuration ================\n\n";
+$prefix = $ENV{'PKG_PREFIX'};
+$sep = "~";
+
+&read_config ("$prefix/etc/mgetty+sendfax/mgetty.config");
+foreach (keys(%var)) {
+ $var_m{$_} = $var{$_};
+ delete $var{$_};
+}
+&read_config ("$prefix/etc/mgetty+sendfax/sendfax.config");
+foreach (keys(%var)) {
+ $var_f{$_} = $var{$_};
+}
+
+$a = 1;
+$devices = $var{'ports'} ? $var{'ports'} : "cuaa1";
+while ($a) {
+ $devices = &ask ("list of devices", $devices);
+
+ $_ = $devices;
+ $w = 0;
+ foreach (split) {
+ if (! -c "/dev/$_" ) {
+ print STDERR "warning: device file /dev/$_ does not exist!\n";
+ $w++;
+ }
+ }
+ if ($w) {
+ $a = 0 if (&yesno ("are you sure?" , "n") eq "y");
+ } else {
+ $a = 0;
+ }
+}
+
+open (TMP1, ">/tmp/mgetty.config.$$") || die "$!\n";
+open (TMP2, ">/tmp/sendfax.config.$$") || die "$!\n";
+$_ = join (":", $devices);
+print TMP2 "fax-devices $_\n\n";
+
+$_ = $devices;
+
+foreach $port (split) {
+ print STDERR "\n\n *** Configuring for port $port ***\n\n";
+ print TMP1 "\nport $port\n";
+ print TMP2 "\nport $port\n";
+ &setdef ($port);
+again:
+ &inq_m;
+ $settings_m = $settings;
+ &inq_f;
+ $settings_f = "fax-id modem-type switchbd $settings";
+ goto again if (&confirm ($port) ne "y");
+ &write_tmp;
+}
+
+close (TMP1);
+close (TMP2);
+if ( -e "$prefix/etc/mgetty+sendfax/mgetty.config") {
+ system ("mv -f $prefix/etc/mgetty+sendfax/mgetty.config $prefix/etc/mgetty+sendfax/mgetty.config.old");
+ system ("rm -f $prefix/etc/mgetty+sendfax/mgetty.config");
+}
+if ( -e "$prefix/etc/mgetty+sendfax/sendfax.config") {
+ system ("mv -f $prefix/etc/mgetty+sendfax/sendfax.config $prefix/etc/mgetty+sendfax/sendfax.config.old");
+ system ("rm -f $prefix/etc/mgetty+sendfax/sendfax.config");
+}
+system ("mv -f /tmp/mgetty.config.$$ $prefix/etc/mgetty+sendfax/mgetty.config");
+system ("mv -f /tmp/sendfax.config.$$ $prefix/etc/mgetty+sendfax/sendfax.config");
+
+open (F, ">$prefix/etc/mgetty+sendfax/faxheader");
+print F "\n FAX FROM: **not configured** $def{fax-id} TO: \@T\@ PAGE: \@P\@ OF \@M\@ \n";
+close (F);
+
+
+print STDERR "\n\nediting /etc/ttys...\n";
+
+open (F, "/etc/ttys");
+@ttys = <F>;
+close (F);
+
+foreach $tty (@ttys) {
+ $_ = $devices;
+ foreach $port (split) {
+ if ($tty =~ /^\s*$port/) {
+ print STDERR "replacing line $tty";
+ $tty = "$port\t\"$prefix/sbin/mgetty\"\tunknown on insecure\n";
+ $replaced{$port} = 1;
+ }
+ }
+}
+$_ = $devices;
+foreach $port (split) {
+ if (!$replaced{$port}) {
+ print STDERR "adding port $port\n";
+ push (@ttys, "$port\t\"$prefix/sbin/mgetty\"\tunknown on insecure\n");
+ }
+}
+system ("mv -f /etc/ttys /etc/ttys.old");
+open (F, ">/etc/ttys");
+print F @ttys;
+close (F);
+
+
+exit 0;
+
+sub confirm {
+ $_ = shift;
+ print STDERR "\n\n\tSettings for port $_\n\t------------------------\n";
+ $_ = $settings_m;
+ foreach (split) {
+ print STDERR "\t$_ $def{$_}\n" if ($def{$_});
+ }
+ $_ = $settings_f;
+ foreach (split) {
+ print STDERR "\t$_ $def_f{$_}\n" if ($def_f{$_});
+ }
+ return &yesno ("OK?", "y");
+}
+
+sub write_tmp {
+ $_ = $settings_m;
+ foreach (split) {
+ print TMP1 "$_ $def{$_}\n" if ($def{$_});
+ }
+ $_ = $settings_f;
+ foreach (split) {
+ print TMP2 "$_ $def_f{$_}\n" if ($def_f{$_});
+ }
+}
+
+sub inq_m {
+ $settings = "debug";
+ $def{'debug'} = 4 if !$def{'debug'};
+ $def{'debug'} = &ask (" - `debug (mgetty)'
+ This sets the amount of logging `mgetty' will do. A good value is
+ 4, more details are seen with `5', and `9' is really noisy. Try
+ it! The log data is written to the file `/tmp/log_mg.cuaxx'.",
+ $def{'debug'});
+
+ $settings .= " fax-id";
+ $def{'fax-id'} = "00 00 000000" if ! $def{'fax-id'};
+ $def{'fax-id'} = &ask (" - `fax-id'
+ This sets the fax station ID used in fax mode to identify your
+ site to the caller (usually this is simply your fax phone number).
+ ", $def{'fax-id'}) ;
+ $def_f{'fax-id'} = $def{'fax-id'} ;
+
+ $settings .= " speed";
+ $def{'speed'} = 38400 if !$def{'speed'};
+ $def{'speed'} = &ask (" - `speed'
+ Specify, as integer value, the port speed to use. Default is
+ 38400. If the given speed is not valid, `mgetty' complains loudly
+ and exits.", $def{'speed'});
+
+ $settings .= " switchbd";
+ $def{'switchbd'} = 0 if !$def{'switchbd'};
+ $def{'switchbd'} = &ask (" - `switchbd'
+ Some modems, mainly Rockwell chipsets, switch to 19200 bps when
+ entering fax mode. Others may need other speed switches (but I
+ know none). If your modem is Rockwell based, try `switchbd 19200'
+ if fax reception doesn't work. (*Warning:* if this is set wrongly,
+ fax reception will definitely fail. For most sane modems, you do
+ *not need* this.). Set speed or `0'", $def{'switchbd'});
+ $def_f{'switchbd'} = $def{'switchbd'};
+
+ $settings .= " direct";
+ $def{'direct'} = "NO" if !$def{'direct'};
+ $def{'direct'} = &ask (" - `direct'
+ Tells mgetty that it is running on a direct line. Mgetty won't try
+ to initialize any modem, nor will it wait for `RING'. It will just
+ wait for any character, and then output the issue file and login
+ prompt. This option is used if you want to connect to machines via
+ nullmodem cable.", $def{'direct'});
+
+ $settings .= " blocking";
+ $def{'blocking'} = "NO" if !$def{'blocking'};
+ $def{'blocking'} = &ask (" - `blocking'
+ Tells mgetty to open the device in `blocking' mode, that is, the
+ `open()' system call won't succeed until carrier detect is set.
+ This is set if `mgetty' is called as `getty'. I'm not sure whether
+ it's very useful, but I include it for completeness", $def{'blocking'});
+
+ $settings .= " port-owner";
+ $def{'port-owner'} = "uucp" if !$def{'port-owner'};
+ $def{'port-owner'} = &ask (" - `port-owner'
+ If set, mgetty will `chown' the tty line to the given username (you
+ can specify a string or an integer uid, but the integer must be
+ valid). This is highly recommended for security purposes: only
+ give port access to those users you trust not to misuse your modem
+ lines!", $def{'port-owner'});
+
+ $settings .= " port-group";
+ $def{'port-group'} = "uucp" if !$def{'port-group'};
+ $def{'port-group'} = &ask (" - `port-group'
+ If set, mgetty will `chgrp' the tty line to this group id (which
+ can be given as group name, or as integer gid). If it's not given,
+ or not valid, the primary group id of `port-owner'
+ will be used.", $def{'port-group'});
+
+ $settings .= " port-mode";
+ $def{'port-mode'} = "0660" if !$def{'port-mode'};
+ $def{'port-mode'} = &ask (" - `port-mode'
+ Specifies the permissions to `chmod' the device to.
+ *Never* make a modem device world-accessible, better use `0660'
+ or even `0600'.", $def{'port-mode'} );
+
+ $settings .= " toggle-dtr";
+ $def{'toggle-dtr'} = "YES" if !$def{'toggle-dtr'};
+ $def{'toggle-dtr'} = &ask (" - `toggle-dtr'
+ Tells mgetty whether it should lower the DTR line upon startup to
+ reset modem. Default is `yes', but some (few) modems react
+ allergic to that and crash.", $def{'toggle-dtr'});
+
+ $settings .= " toggle-dtr-waittime";
+ $def{'toggle-dtr-waittime'} = 500 if !$def{'toggle-dtr-waittime'};
+ $def{'toggle-dtr-waittime'} = &ask (" - `toggle-dtr-waittime'
+ Specifies the time (in ms) to hold the DTR line low.", $def{'toggle-dtr-waittime'} );
+
+ $settings .= " data-only";
+ $def{'data-only'} = "NO" if !$def{'data-only'};
+ $def{'data-only'} =&ask (" - `data-only'
+ Tells `mgetty' to forget about faxing and only use the data part of
+ the modem. Default is `false'. You need this if your modem can't
+ distinguish incoming fax and data calls.", $def{'data-only'} );
+
+ $settings .= " fax-only";
+ $def{'fax-only'} = "NO" if !$def{'fax-only'};
+ $def{'fax-only'} = &ask (" - `fax-only'
+ Tells `mgetty' to put the modem in fax-only mode. You need this if
+ your modem can't distinguish incoming fax and data calls, but you
+ need fax more important than data; and you need it if you want to
+ disable data calls for security reasons (this could be achieved
+ via `login.config' as well)", $def{'fax-only'});
+
+ $settings .= " modem-type";
+ $def{'modem-type'} = "auto" if ! $def{'modem-type'};
+ $def{'modem-type'} = &ask (" - `modem-type'
+ Specifies the kind of modem connected to the port. Valid options are:
+ * auto
+ Mgetty will detect the modem type itself (which may occasionally
+ be not desirable, or it may fail on old modem equipment).
+ * c2.0
+ Modem is a CLASS 2.0 fax mode. Works better than class 2, if
+ both are available, because its better standardized. Known to
+ work with USR and ZyXEL.
+ * cls2
+ Modem is a CLASS 2 fax modem, mgetty will not try class 2.0.
+ * data
+ Do not try fax initialization
+ There is no way (yet) to tell mgetty to use *only* fax mode and
+ refuse data calls with this option, use the `fax-only true'
+ statement for that.", $def{'modem-type'});
+ $def_f{'modem-type'} = $def{'modem-type'};
+
+ $settings .= " init-chat";
+ $def{'init-chat'} = '"" ATS0=0Q0&D3&C1 OK' if ! $def{'init-chat'};
+ $def{'init-chat'} = &ask (" - `init-chat'
+ Tells mgetty the chat sequence to use for initializing the modem.
+ *Warning*: the sequence starts with *expect*, which will in most
+ cases be `\"\"' (nothing). This ordering was chosen because UUCP
+ does it this way, and I wanted to avoid confusion here.
+
+ Example:
+
+ \"\" \\d\\d\\d+++\\d\\d\\dATQ0E1V1H0 OK ATL0M0S0=0 OK AT&K3 OK
+ init sequence", $def{'init-chat'});
+
+ $settings .= " force-init-chat";
+ $def{'force-init-chat'} = "" if !$def{'force-init-chat'};
+ $def{'force-init-chat'} = &ask (" - `force-init-chat'
+ In some cases, the modem can get stuck in a mode where it won't
+ react to a simple `AT' command. Usually this happens because the
+ modem is set to ignore a DTR drop and still has a data connection
+ to the other side. If you use a voice modem, it could be stuck in
+ voice mode.
+
+ In these situations, the normal `init-chat' will time out, because
+ the modem won't send the proper responses back.
+
+ To get the modem back into a sane state, you can use the
+ `force-init-chat' chat sequence. The default setup will send the
+ DLE ETX characters, to get voice modems back to life, and then the
+ `(pause)+++(pause)ATH0' sequence to get the modem back from data
+ mode to command mode.
+
+ You could prepend this sequence to `init-chat' (it wouldn't harm),
+ but especially the pauses around the +++ sequence makes this
+ undesirable slow.", $def{'force-init-chat'});
+
+ $settings .= " modem-check-time";
+ $def{'modem-check-time'} = 3600 if ! $def{'modem-check-time'};
+ $def{'modem-check-time'} = &ask (" - `modem-check-time'
+ Some modems have the nasty tendency to crash silently. With this
+ option, you tell `mgetty' to check every SECONDS seconds with a
+ simple `AT...OK' sequence whether the modem still reacts. If not,
+ `mgetty' will restart itself and do a full modem reset.", $def{'modem-check-time'});
+
+ $settings .= " rings";
+ $def{'rings'} = 1 if !$def{'rings'};
+ $def{'rings'} = &ask (" - `rings'
+ Sets the number of `RING' messages to wait for, before mgetty
+ picks up the phone. *Warning:* if your modem auto-answers, for
+ whatever reason, set this to something *different* than the
+ value set with `ATS0=mmm', otherwise the modems autoanswer and
+ mgettys manual answer will collide (most modems hang up if a
+ command is received during auto-answer)", $def{'rings'});
+
+
+ $settings .= " answer-chat";
+ $def{'answer-chat'} = '"" ATA CONNECT \c \r' if !$def{'answer-chat'};
+ $def{'answer-chat'} =&ask (" - `answer-chat'
+ This is the command sequence that is used to answer a phone call.
+ Usually you can leave it at the default ` \"\" ATA CONNECT \\c \\r ',
+ but for some modems you need `ATS0=1' in place of `ATA' (ATA not
+ allowed). The extra `\\r' expect string is needed that the code can
+ grab the full CONNECT XYZ\\R string. It will work without the \\r,
+ but then the logging information will be less detailed. *Right now,
+ \\r won't work at all, it's not implemented yet. Don't use it.*
+ ", $def{'answer-chat'} );
+
+ $settings .= " answer-chat-timeout";
+ $def{'answer-chat-timeout'} = 80 if !$def{'answer-chat-timeout'};
+ $def{'answer-chat-timeout'} = &ask (" - `answer-chat-timeout'
+ During the ANSWER-CHAT, each \"expect\" string must be seen in the
+ time specified here. Default is 80 seconds. This time should be at
+ least some 5 seconds longer than the time set with the `ATS7=...'
+ modem setup command.", $def{'answer-chat-timeout'});
+
+ $settings .= " autobauding";
+ $def{'autobauding'} = "NO" if !$def{'autobauding'};
+ $def{'autobauding'} = &ask (" - `autobauding'
+ Some modems switch their DTE line speed to the communication line
+ speed after connecting, e.g., after sending `CONNECT 2400', the
+ modem switches to 2400 bps. Newer modems usually have a switch to
+ \"lock\" a DTE baud rate, which is strongly recommended. If your
+ modem insists on doing this speed switch, setting `autobauding' to
+ YES will make mgetty behave accordingly.", $def{'autobauding'});
+
+ $settings .= " ringback";
+ $def{'ringback'} = "NO" if !$def{'ringback'} ;
+ $def{'ringback'} = &ask (" - `ringback'
+ If you have to put your modem and your telephone on the same phone
+ line, you can switch on \"ringback\" or \"ring-twice\". This means,
+ mgetty won't answer the phone on the first call, but remember the
+ call, and pick up on the second call (if it comes in the time
+ specified by `ringback-time').", $def{'ringback'} );
+
+ $settings .= " ringback-time";
+ $def{'ringback-time'} = "30" if !$def{'ringback-time'} ;
+ $def{'ringback-time'} = &ask (" - `ringback-time'
+ This setting specifies how much time may pass between the first
+ and the second call if \"ringback\" is active.", $def{'ringback-time'});
+
+ $settings .= " ignore-carrier";
+ $def{'ignore-carrier'} = "false" if !$def{'ignore-carrier'} ;
+ $def{'ignore-carrier'} = &ask (" - `ignore-carrier'
+
+ If your Modem does not assert the DCD (carrier detect) line, or the
+ serial port or cable or serial driver is broken, it is possible
+ that `mgetty' or `login' will block after a successful CONNECT
+ (that means: everything seems to work, but suddenly nothing is sent
+ to the port anymore. Depending on the operating system used, this
+ can be before printing the `/etc/issue' file or not before printing
+ the `password:' prompt.
+
+ To work around this, you can switch off the carrier detection in
+ software: set `ignore-carrier true'. Default is `false'.
+
+ *WARNING:* If you use this, your system won't be able to detect
+ when a caller just hangs up instead of cleanly logging out. This
+ may result in hanging modems, etc.", $def{'ignore-carrier'});
+
+ $settings .= " issue-file";
+ $def{'issue-file'} = "/etc/issue" if !$def{'issue-file'} ;
+ $def{'issue-file'} = &ask (" - `issue-file'
+ This is the file printed before the login prompt.", $def{'issue-file'});
+
+ $settings .= " prompt-waittime";
+ $def{'prompt-waittime'} = "500" if !$def{'prompt-waittime'} ;
+ $def{'prompt-waittime'} = &ask (" - `prompt-waittime'
+ This specifies how long `mgetty' will wait for modem and line to
+ settle down (in ms) before printing issue file and login prompt",
+ $def{'prompt-waittime'});
+
+ $settings .= " login-prompt";
+ $def{'login-prompt'} = "@!login: " if !$def{'login-prompt'} ;
+ $def{'login-prompt'} = &ask(" - `login-prompt'
+ This specifies the login prompt that mgetty will output. Some
+ special characters in this string (and in the issue file, btw) are
+ recognized and replaced by something else:
+ * @ system name
+ * \\n newline
+ * \\r carriage return
+ * \\g bell
+ * \\b backspace (ascii 010)
+ * \\f form feed (ascii 013)
+ * \\t TAB
+ * \\P (and \\L) port name (e.g. ttyS0)
+ * \\C date and time, in \"ctime()\" format
+ * \\I Connection string (e.g. 2400/REL)
+ * \\N (and \\U) number of users currently logged in
+ * \\S Port speed (e.g. 38400)
+ * \\D current date in dd/mm/yy format
+ * \\T current time in hh:mm:ss format
+ * \\DIGIT character with the specified octal code
+
+ The maximum lenght of the login prompt is limited to 140
+ characters (after expansion).", $def{'login-prompt'});
+
+ $settings .= " login-time";
+ $def{'login-time'} = 240 if !$def{'login-time'};
+ $def{'login-time'} = &ask (" - `login-time'
+ This specifies the maximum time the user can take to log in. If no
+ login has occured after that time, `mgetty' will hang up.",
+ $def{'login-time'});
+
+ $settings .= " fax-server-file";
+ $def{'fax-server-file'} = &ask (" - `fax-server-file'
+ Specifies the fax file(s) that is to be sent if someone else calls
+ your modem in *fax polling mode*, that is, the caller *receives* a
+ document.
+
+ Normally, the file given is a text file, containing the list of G3
+ files to send to the calling machine, one file per line. Comment
+ lines (starting with \"#\") are ignored. For backward compatibility,
+ `mgetty' does check whether the named file is a G3 file itself, in
+ which case this file is sent directly (but then, you can only send
+ one page).
+
+ Not all modems support fax poll *server* mode, I know that the
+ ZyXEL and MultiTech do.", $def{'fax-server-file'});
+
+ $settings .= " diskspace";
+ $def{'diskspace'} = 1024 if !$def{'diskspace'};
+ $def{'diskspace'} = &ask (" - `diskspace'
+ This setting tells mgetty the minimum amount of disk space (in KB) that
+ has to be available in the fax spool directory for fax reception
+ to be allowed.", $def{'diskspace'});
+
+ $settings .= " notify";
+ $def{'notify'} = "faxadmin" if !$def{'notify'};
+ $def{'notify'} = &ask (" - `notify'
+ This is the address that will get mails if a fax is received. Not
+ fully tested.", $def{'notify'});
+
+ $settings .= " fax-owner";
+ $def{'fax-owner'} = "uucp" if !$def{'fax-owner'};
+ $def{'fax-owner'} = &ask (" - `fax-owner'
+ If set, mgetty will `chown' the received files to the given username
+ (you can specify a string or an integer uid, but the integer must be
+ valid).", $def{'fax-owner'});
+
+ $settings .= " fax-group";
+ $def{'fax-group'} = "modem" if !$def{'fax-group'};
+ $def{'fax-group'} = &ask (" - `fax-group'
+ If set, mgetty will `chgrp' the received files to this group id
+ (which can be given as group name, or as integer gid).", $def{'fax-group'});
+
+ $settings .= " fax-mode";
+ $def{'fax-mode'} = "0660" if !$def{'fax-mode'};
+ $def{'fax-mode'} = &ask (" - `fax-mode'
+ Specifies the permissions to `chmod' the received files.", $def{'fax-mode'});
+}
+sub inq_f {
+ $settings = "debug";
+ $def_f{'debug'} = 4 if !$def_f{'debug'};
+ $def_f{'debug'} = &ask (" - `debug (sendfax)'
+ controls the amount of information written into the fax log file.
+ `0' means \"totally silent\" (not even errors are written), `9'
+ is really noisy. I usually use `3' or `4' in normal use, and `6'
+ for debugging.", $def_f{'debug'});
+
+ $settings .= " modem-init";
+ $def{'modem-init'} = &ask (" - `modem-init'
+ Specifies an `AT...' command that is to be sent to the modem right
+ at the *beginning* of all modem talk (even before setting the modem
+ into fax mode, so this could be an `ATZ' if you want to reset the
+ modem).", "");
+
+ $settings .= " modem-handshake";
+ $def_f{'modem-handshake'} = "AT&H3" if !$def_f{'modem-handshake'};
+ $def_f{'modem-handshake'} = &ask (" - `modem-handshake'
+ Specifies an `AT...' command that will be sent to the modem at the
+ *end* of the modem initialization, right before dialing. *Do not
+ use ATZ or such here*, since resetting the modem will switch off
+ fax mode.", $def_f{'modem-handshake'});
+
+ $settings .= " max-tries";
+ $def_f{'max-tries'} = 3 if !$def_f{'max-tries'};
+ $def_f{'max-tries'} = &ask (" - `max-tries'
+ Specify the maximum number of tries per page if the receiving end
+ reports reception errors. If NNN tries do not suffice to
+ successfully transmit a page, `sendfax' will give up or simply go
+ on, depending on the setting of `max-tries-continue' (see below).
+ If this is set to `0', `sendfax' will ignore retransmission
+ requests and simply go on.", $def_f{'max-tries'});
+
+ $settings .= " max-tries-continue";
+ $def_f{'max-tries-continue'} = "YES" if !$def_f{'max-tries-continue'};
+ $def_f{'max-tries-continue'} = &ask (" - `max-tries-continue'
+ After the maximum number of tries for one page are reached,
+ `sendfax' can report an error and abort (`max-tries-continue NO'),
+ or go on with the next page (YES).
+
+ For \"mission critical\" faxes, I'd set it to NO, but since the page
+ quality is most often quite good even if reported as \"page bad\",
+ the default is YES.", $def_f{'max-tries-continue'});
+
+ $settings .= " speed (fax)";
+ $def_f{'speed'} = 38000 if ! $def_f{'speed'};
+ $def_f{'speed'} = &ask (" - `speed'
+ Set the port speed to use for fax send operations. Usually,
+ `38400' is a good choice, but a few dumb modems (for example, some
+ based on rockwell chipsets) need `19200' or even `9600'. A few
+ modems can go higher, but `sendfax' may not support it, and it may
+ not always work.", $def_f{'speed'});
+
+ $settings .= " dial-prefix";
+ $def_f{'dial-prefix'} = "ATD" if !$def_f{'dial-prefix'};
+ $def_f{'dial-prefix'} = &ask (" - `dial-prefix'
+ This is the command used for dialing out. Usually this will be
+ something simple, as `ATD' or `ATDP', but if you have an unusual
+ setup, it could also be something like `ATX0DP0;X4DT' (meaning:
+ switch off dial-tone detection, pulse-dial `0', back to command
+ mode, switch on dial-tone detection, and go ahead dialing with
+ touch tones). The phone number will be sent right after the
+ `dial-prefix'.", $def_f{'dial-prefix'});
+
+ $settings .= " poll-dir";
+ $def_f{'poll-dir'} = "./" if !$def_f{'poll-dir'};
+ $def_f{'poll-dir'} = &ask (" - `poll-dir'
+ This is used to specify a directory where polled faxes (wheather
+ maps and such) are to be saved into. Default is the current
+ directory.", $def_f{'poll-dir'});
+
+ $settings .= " normal-res";
+ $def_f{'normal-res'} = "NO" if !$def_f{'normal-res'};
+ $def_f{'normal-res'} = &ask (" - `normal-res'
+ If set to `yes' or `true' (boolean), `sendfax' won't attempt to
+ make a fax connection in \"fine resolution\" mode. Normally you
+ won't need to use that option, since `faxrunq' will set the `-n'
+ switch if needed.", $def_f{'normal-res'});
+
+ $settings .= " verbose";
+ $def_f{'verbose'} = "NO" if !$def_f{'verbose'};
+ $def_f{'verbose'} = &ask (" - `verbose'
+ If set to `yes' or `true', `sendfax' will output progress reports
+ on stdout, if set to `no', `sendfax' will only print error and
+ warning messages.", $def_f{'verbose'});
+}
+sub setdef {
+ local ($p, $l);
+ $p = shift;
+ $l = length ($p) + 1;
+ foreach (keys(%var_m)) {
+ $def{$_} = substr ($var_m{$_}, $l) if ($var_m{$_} =~ /^$p/);
+ }
+ foreach (keys(%var_m)) {
+ $def{$_} = substr ($var_m{$_}, 1) if (!$def{$_} && $var_m{$_} =~ /^$sep/);
+ }
+ foreach (keys(%var_f)) {
+ $def_f{$_} = substr ($var_f{$_}, $l) if ($var_f{$_} =~ /^$p/);
+ }
+ foreach (keys(%var_m)) {
+ $def_f{$_} = substr ($var_f{$_}, 1) if (!$def_f{$_} && $var_f{$_} =~ /^$sep/);
+ }
+}
+sub ask {
+ ($info, $default, $x) = @_;
+ print STDERR "\n$info: ";
+ print STDERR "[$default] " if ($default);
+ $_ = <STDIN>;
+ s/^\s*//;
+ chop;
+ if ($_ eq "") {
+ return $default;
+ }
+ return $_;
+}
+sub read_config {
+ local ($conf, $port, $a, $b);
+
+ $conf = shift;
+ $port = $sep;
+ if ( -f $conf) {
+ open (F, $conf) || die "$!\n";
+ while (<F>) {
+ chop;
+ s/^\s*//;
+ next if /^#/;
+ next if /^$/;
+ ($a, $b) = split (/[ \t\n]+/, $_, 2);
+ if ($a eq "port") {
+ $port = $b;
+ $var{'ports'} .= "$port ";
+ } else {
+ $var{$a} = "$port $b";
+ }
+ }
+ close F;
+ }
+}
+
+sub yesno {
+ print STDERR "$_[0]: ";
+ print STDERR "[$_[1]] " if ($_[1]);
+ $_ = <STDIN>;
+ chop;
+ $_ = $_[1] if ! $_;
+ return "y" if /^[Yy].*/;
+ return "n";
+}
diff --git a/comms/mgetty+sendfax/pkg/PLIST b/comms/mgetty+sendfax/pkg/PLIST
new file mode 100644
index 00000000000..eac026cf6d8
--- /dev/null
+++ b/comms/mgetty+sendfax/pkg/PLIST
@@ -0,0 +1,54 @@
+bin/autopvf
+bin/basictopvf
+bin/faxspool
+bin/faxq
+bin/faxrm
+bin/faxrunq
+bin/g3cat
+bin/g32pbm
+bin/g3topbm
+bin/newslock
+bin/lintopvf
+bin/mg.echo
+bin/pbm2g3
+bin/pvfamp
+bin/pvfcut
+bin/pvfecho
+bin/pvffft
+bin/pvffile
+bin/pvfmix
+bin/pvfreverse
+bin/pvfsine
+bin/pvfspeed
+bin/pvftoau
+bin/pvftobasic
+bin/pvftolin
+bin/pvftormd
+bin/pvftovoc
+bin/pvftowav
+bin/rmdfile
+bin/rmdtopvf
+bin/vm
+bin/voctopvf
+bin/wavtopvf
+etc/mgetty+sendfax/dialin.config
+etc/mgetty+sendfax/faxheader
+etc/mgetty+sendfax/faxrunq.config
+etc/mgetty+sendfax/login.config
+@unexec rm -f %D/etc/mgetty+sendfax/faxheader %D/etc/mgetty+sendfax/mgetty.config* %D/etc/mgetty+sendfax/sendfax.config*
+@unexec install-info --delete %D/info/mgetty.info %D/info/dir
+info/mgetty.info
+info/mgetty.info-1
+info/mgetty.info-2
+info/mgetty.info-3
+info/mgetty.info-4
+@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/mgetty.info %D/info/dir
+lib/mgetty+sendfax/cour25.pbm
+lib/mgetty+sendfax/cour25n.pbm
+sbin/faxrunqd
+sbin/mgetty
+sbin/sendfax
+sbin/vgetty
+@dirrm etc/mgetty+sendfax
+@dirrm lib/mgetty+sendfax
diff --git a/comms/mgetty+sendfax/scripts/configure b/comms/mgetty+sendfax/scripts/configure
new file mode 100644
index 00000000000..b0683330b4a
--- /dev/null
+++ b/comms/mgetty+sendfax/scripts/configure
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+cd $WRKSRC || exit 1
+cp policy.h-dist policy.h
+
+cat >> policy.h <<END
+
+#undef DEFAULT_LOGIN_PROGRAM
+#define DEFAULT_LOGIN_PROGRAM "/usr/bin/login"
+
+#define CNDFILE "dialin.config"
+
+#undef MGETTY_PID_FILE
+#define MGETTY_PID_FILE "/var/run/mg-pid.%s"
+
+#undef LOCK
+#define LOCK "/var/spool/lock/LCK..%s"
+
+#undef FAX_LOG
+#define FAX_LOG "/var/spool/fax/Faxlog"
+
+#undef MAILER
+#define MAILER "/usr/sbin/sendmail"
+
+#undef DEVICE_GROUP
+#define DEVICE_GROUP "uucp"
+
+END
+
+exit 0