diff options
author | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
---|---|---|
committer | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
commit | f96441b9faf769c9ecdd4d338b605ea3d0cc4010 (patch) | |
tree | edb17ec2c4ea13c5acb1c7350957a249a820e28d /mgetty | |
parent | b6588aa6851fb220cedc387d21c51513ef8d67f4 (diff) |
Disable bk EOLN_NATIVE conversions on all files in packages FILESPATHs, to prevent it screwing up patches.
BKrev: 4190111fA4MuVozAqwE7xOSL9fr-TA
Diffstat (limited to 'mgetty')
32 files changed, 3343 insertions, 0 deletions
diff --git a/mgetty/mgetty-1.1.30/00-g3_Makefile b/mgetty/mgetty-1.1.30/00-g3_Makefile index e69de29bb2..d12ead44b4 100644 --- a/mgetty/mgetty-1.1.30/00-g3_Makefile +++ b/mgetty/mgetty-1.1.30/00-g3_Makefile @@ -0,0 +1,11 @@ +--- mgetty-1.1.27.orig/g3/Makefile ++++ mgetty-1.1.27/g3/Makefile +@@ -5,7 +5,7 @@ + # + + CC=gcc +-CFLAGS=-O2 -I.. -g ++CFLAGS=-O2 -I.. #-g + + G3_PROGRAMS=pbm2g3 g3cat g32pbm + diff --git a/mgetty/mgetty-1.1.30/01-adjust-path b/mgetty/mgetty-1.1.30/01-adjust-path index e69de29bb2..9ea223f6d3 100644 --- a/mgetty/mgetty-1.1.30/01-adjust-path +++ b/mgetty/mgetty-1.1.30/01-adjust-path @@ -0,0 +1,113 @@ +--- mgetty-1.1.27.orig/frontends/winword2/WinFaxServ.pl ++++ mgetty-1.1.27/frontends/winword2/WinFaxServ.pl +@@ -11,8 +11,8 @@ + # notice if redistributing. + # + +-$MAILER="/usr/lib/sendmail"; +-$DIR="/usr/spool/fax/winword"; ++$MAILER="/usr/sbin/sendmail"; ++$DIR="/var/spool/fax/winword"; + + open(LOG, ">>/usr/adm/errors"); + select LOG; $| = 1;select STDOUT; +--- mgetty-1.1.27.orig/voice/scripts/new_voice.craig_southern ++++ mgetty-1.1.27/voice/scripts/new_voice.craig_southern +@@ -43,7 +43,7 @@ + outputfn=$fn.$extension + + # convert file into correct format +-/usr/local/bin/rmdtopvf $fn | /usr/local/bin/pvftowav 2>/dev/null > $outputfn ++/usr/bin/rmdtopvf $fn | /usr/bin/pvftowav 2>/dev/null > $outputfn + + echo --$seperator >> $tempfn + echo Content-Type: $contenttype\; name=\"$pagefn\" >> $tempfn +--- mgetty-1.1.27.orig/samples/new_fax.all/new_fax ++++ mgetty-1.1.27/samples/new_fax.all/new_fax +@@ -1,4 +1,4 @@ +-#!/bin/ksh ++#!/bin/sh + # + # Written 1996 by Darko Krizic + # +@@ -6,10 +6,11 @@ + # mgetty from Gert Doering. See the README file for more information. + + # Do the settings here +-home=/usr/local/newfax # The home directory +-config=$home/faxlist # The configuration file +-from="Fax Subsystem <faxadmin@xplor.ipf.de>" # From this user +-log=/var/log/faxlog # logfile ++home=/etc/mgetty/newfax.d/ # The home directory ++config=/etc/mgetty/faxlist # The configuration file ++this_host=`hostname` ++from="Fax Subsystem <faxmaster@$this_host>" # From this user ++log=/var/log/mgetty/faxlog # logfile + + # Usually nothing to configure beyond this line + PATH=/usr/bin:/bin:/usr/local/bin:/usr/bin/X11 +--- mgetty-1.1.27.orig/login.cfg.in ++++ mgetty-1.1.27/login.cfg.in +@@ -30,7 +30,7 @@ + # (Big advantage: tuucp can use the same passwd file for serial dial-in + # and tcp dial-in [uucico running as in.uucpd]). Works from 1.05 up. + # +-#U* uucp @ /usr/lib/uucp/uucico -l -u @ ++#U* uucp @ /usr/sbin/uucico -l -u @ + + # + # Use this one for fido calls (login name /FIDO/ is handled specially) +@@ -39,7 +39,7 @@ + # mgetty has to be compiled with "-DFIDO", otherwise a fido call won't + # be detected. + # +-#/FIDO/ uucp fido /usr/local/lib/fnet/ifcico @ ++#/FIDO/ uucp fido /usr/lib/fnet/ifcico @ + + # + # Automatic PPP startup on receipt of LCP configure request (AutoPPP). +@@ -57,7 +57,7 @@ + # + # NOTE4: max. 9 arguments allowed. + # +-#/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug ++/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug + + # + # +--- mgetty-1.1.30.old/faxrunq.config 1998-11-12 10:26:00.000000000 -0500 ++++ mgetty-1.1.30/faxrunq.config 2003-07-01 19:14:55.000000000 -0400 +@@ -42,7 +42,7 @@ + #delete-sent-jobs y + + # accounting log file (default: see beginning of faxrunq/faxrunqd script) +-#acct-log /var/log/acct.log ++#acct-log /var/log/mgetty/fax/acct.log + + # The following options are for faxrunqd only: + +@@ -51,11 +51,11 @@ + #fax-devices ttyS0:ttyS1 + + # log file for faxrunqd (default: see beginning of faxrunqd script) +-#faxrunqd-log /var/log/faxrunqd.log ++#faxrunqd-log /var/log/mgetty/fax/faxrunqd.log + + # number of logfiles to keep around when rolling (default: 3) + #faxrunqd-keep-logs 5 + + # configuration file for policy routing, see faxrunqd man page for + # details (default: none, i.e. don't use policy routing) +-#policy-config /usr/local/lib/mgetty+sendfax/policy.config ++#policy-config /etc/mgetty/policy.config +--- mgetty-1.1.27.orig/callback/README ++++ mgetty-1.1.27/callback/README +@@ -5,7 +5,7 @@ + # + # callback experiments + # +-cback-gert - - /usr/local/sbin/callback -S 11223344 ++cback-gert - - /usr/sbin/callback -S 11223344 + + to call you back on "11223344" upon entering of a login name of + "cback-gert". If you don't specify a number on the command line, diff --git a/mgetty/mgetty-1.1.30/02-pending-fix-includes b/mgetty/mgetty-1.1.30/02-pending-fix-includes index e69de29bb2..8b27dddcd0 100644 --- a/mgetty/mgetty-1.1.30/02-pending-fix-includes +++ b/mgetty/mgetty-1.1.30/02-pending-fix-includes @@ -0,0 +1,49 @@ +--- mgetty-1.1.27.orig/g3/g3cat.c ++++ mgetty-1.1.27/g3/g3cat.c +@@ -21,6 +21,7 @@ + #endif + #include <unistd.h> + #include <fcntl.h> ++#include <string.h> + + extern int optind; + extern char * optarg; +--- mgetty-1.1.27.orig/compat/newslock.c ++++ mgetty-1.1.27/compat/newslock.c +@@ -6,6 +6,7 @@ + * TAKEN UNMODIFIED FROM C-NEWS BY Geoffrey Collyer AND Henry Spencer + */ + #include <stdio.h> ++#include <stdlib.h> + #include <unistd.h> + + int +--- mgetty-1.1.27.orig/voice/libmgsm/code.c ++++ mgetty-1.1.27/voice/libmgsm/code.c +@@ -8,13 +8,14 @@ + + #include "config.h" + +- + #ifdef HAS_STDLIB_H + #include <stdlib.h> + #else + # include "proto.h" + extern char * memcpy P((char *, char *, int)); + #endif ++ ++#include <string.h> + + #include "private.h" + #include "gsm.h" +--- mgetty-1.1.27.orig/voice/libutil/test_wildmat.c ++++ mgetty-1.1.27/voice/libutil/test_wildmat.c +@@ -3,6 +3,8 @@ + */ + + #include <stdio.h> ++#include <stdlib.h> ++#include <string.h> + + extern int wildmat(char *text, char *p, int length); + diff --git a/mgetty/mgetty-1.1.30/03-callback_Makefile b/mgetty/mgetty-1.1.30/03-callback_Makefile index e69de29bb2..4ef5e088f2 100644 --- a/mgetty/mgetty-1.1.30/03-callback_Makefile +++ b/mgetty/mgetty-1.1.30/03-callback_Makefile @@ -0,0 +1,20 @@ +--- mgetty-1.1.27.orig/callback/Makefile ++++ mgetty-1.1.27/callback/Makefile +@@ -5,7 +5,7 @@ + # + + CC=gcc +-CFLAGS=-O2 -I.. -g ++CFLAGS=-O2 -I.. + + zigzag: + cd .. ; $(MAKE) call-back +@@ -40,7 +40,7 @@ + # install programs + # + install: all +- $(INSTALL) -s -m 700 -o root callback $(SBINDIR) ++ $(INSTALL) -s -m 755 -o root callback $(SBINDIR) + $(INSTALL) -s -m 4711 -o root ct $(BINDIR) + + # source modules diff --git a/mgetty/mgetty-1.1.30/04-new_fax.pbm b/mgetty/mgetty-1.1.30/04-new_fax.pbm index e69de29bb2..a3642482b9 100644 --- a/mgetty/mgetty-1.1.30/04-new_fax.pbm +++ b/mgetty/mgetty-1.1.30/04-new_fax.pbm @@ -0,0 +1,8 @@ +--- mgetty-1.1.30.orig/samples/new_fax.pbm Thu Jan 2 15:40:12 1997 ++++ mgetty-1.1.30/samples/new_fax.pbm Sun Sep 28 16:46:09 2003 +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + # From: michael@hal6000.thp.uni-duisburg.de (Michael Staats) + # Subject: Re: Fax notify without in/output redirection? + # To: mgetty@greenie.muc.de diff --git a/mgetty/mgetty-1.1.30/06-pending-contrib_g3tolj.c b/mgetty/mgetty-1.1.30/06-pending-contrib_g3tolj.c index e69de29bb2..d0ab83fe84 100644 --- a/mgetty/mgetty-1.1.30/06-pending-contrib_g3tolj.c +++ b/mgetty/mgetty-1.1.30/06-pending-contrib_g3tolj.c @@ -0,0 +1,49 @@ +--- mgetty-1.1.27.orig/contrib/g3tolj.c ++++ mgetty-1.1.27/contrib/g3tolj.c +@@ -57,6 +57,7 @@ + #include <sys/types.h> + #include <ctype.h> + #include <stdio.h> ++#include <stdlib.h> + + typedef unsigned char bit; + +@@ -303,6 +304,8 @@ + + #endif /* _G3_H_ */ + ++void skiptoeol (void); ++ + FILE * + pm_openr (name) + char *name; +@@ -552,7 +555,7 @@ + return (0); + } + +-skiptoeol () ++void skiptoeol () + { + while (rawzeros < 11) + (void) rawgetbit (); +@@ -707,9 +710,9 @@ + newpage (fd); + }; + +-void main (argc, argv) +- int argc; +- char *argv[]; ++int main (argc, argv) ++ int argc; ++ char *argv[]; + { + int argn, rows, wrows, cols, wcols, row, wrow, col, wcol, i; + int vval, hval; +@@ -864,5 +867,6 @@ + break; + } + putrest (); +- exit (0); ++ ++ return 0; + } diff --git a/mgetty/mgetty-1.1.30/07-pending-contrib_g3toxwd.c b/mgetty/mgetty-1.1.30/07-pending-contrib_g3toxwd.c index e69de29bb2..97f59dd484 100644 --- a/mgetty/mgetty-1.1.30/07-pending-contrib_g3toxwd.c +++ b/mgetty/mgetty-1.1.30/07-pending-contrib_g3toxwd.c @@ -0,0 +1,46 @@ +--- mgetty-1.1.27.orig/contrib/g3toxwd.c ++++ mgetty-1.1.27/contrib/g3toxwd.c +@@ -26,6 +26,8 @@ + #include <sys/types.h> + #include <ctype.h> + #include <stdio.h> ++#include <stdlib.h> ++#include <string.h> + + typedef unsigned char bit; + +@@ -331,6 +333,8 @@ + + #endif /* _G3_H_ */ + ++void skiptoeol (void); ++ + FILE * + pm_openr (name) + char *name; +@@ -604,7 +608,7 @@ + return (0); + } + +-skiptoeol () ++void skiptoeol () + { + while (rawzeros < 11) + (void) rawgetbit (); +@@ -732,7 +736,7 @@ + putchar (byte); + }; + +-void main (argc, argv) ++int main (argc, argv) + int argc; + char *argv[]; + { +@@ -883,5 +887,6 @@ + xwd_writerow (stdout, writerow, wcols); + wrow++; + } +- exit (0); ++ ++ return 0; + } diff --git a/mgetty/mgetty-1.1.30/09-doc_Makefile b/mgetty/mgetty-1.1.30/09-doc_Makefile index e69de29bb2..1af8ca4771 100644 --- a/mgetty/mgetty-1.1.30/09-doc_Makefile +++ b/mgetty/mgetty-1.1.30/09-doc_Makefile @@ -0,0 +1,91 @@ +--- mgetty-1.1.28.copy/doc/Makefile 1997-11-27 15:33:26.000000000 -0500 ++++ mgetty-1.1.28/doc/Makefile 2002-07-30 03:27:31.000000000 -0400 +@@ -4,6 +4,8 @@ + # + + NROFF=nroff ++ ++INSTALL=install + # + # + MAN1PAGES=g32pbm.1 g3cat.1 pbm2g3.1 fax.1 \ +@@ -12,11 +14,11 @@ + MAN5PAGES=faxqueue.5 + MAN8PAGES=sendfax.8 mgetty.8 callback.8 faxrunqd.8 + MANSRC=$(MAN1PAGES) $(MAN4PAGES) $(MAN5PAGES) $(MAN8PAGES) +-MAN1DIR=/usr/local/man/man1 +-MAN4DIR=/usr/local/man/man4 +-MAN5DIR=/usr/local/man/man5 +-MAN8DIR=/usr/local/man/man8 +-INFODIR=/usr/local/info ++MAN1DIR=$(PREFIX)/usr/share/man/man1 ++MAN4DIR=$(PREFIX)/usr/share/man/man4 ++MAN5DIR=$(PREFIX)/usr/share/man/man5 ++MAN8DIR=$(PREFIX)/usr/share/man/man8 ++INFODIR=$(PREFIX)/usr/share/info + + # + # formatted man pages +@@ -26,18 +28,19 @@ + + all: + +-doc-all: mgetty.asc mgetty.info mgetty.dvi mgetty.ps fmt-manpages $(MANSRC) ++doc-all: mgetty.info mgetty.dvi mgetty.ps fmt-manpages $(MANSRC) # mgetty.asc + + manpages: $(MANSRC) + + fmt-manpages: + -$(MAKE) `for i in $(MANSRC) ; do echo \`expr $$i : "\([^.]*\)"\`.man ; done ` + +-mgetty.asc: mgetty.ms +- -$(NROFF) -ms mgetty.ms >mgetty.asc ++# commented out since I couldn't find texi2roff ++#mgetty.asc: mgetty.ms ++# -$(NROFF) -ms mgetty.ms >mgetty.asc + +-mgetty.ms: mgetty.texi +- -texi2roff -ms <mgetty.texi >mgetty.ms ++#mgetty.ms: mgetty.texi ++# -texi2roff -ms <mgetty.texi >mgetty.ms + + mgetty.html: mgetty.texi + -texi2html -verbose mgetty.texi +@@ -62,10 +65,12 @@ + + fullclean: clean + rm -f mgetty.ps mgetty.dvi mgetty.aux mgetty.info* mgetty.ms \ +- *.man *.[1-9] mgetty.texi ++ *.man *.[1-9] mgetty.texi # mgetty.asc ++ ++install: install.man install.info + +-install: $(MANSRC) mgetty.info +- -mkdir `dirname $(MAN1DIR)` $(MAN1DIR) $(MAN4DIR) $(MAN5DIR) $(MAN8DIR) 2>/dev/null ++install.man: $(MANSRC) ++ -mkdir -p `dirname $(MAN1DIR)` $(MAN1DIR) $(MAN4DIR) $(MAN5DIR) $(MAN8DIR) 2>/dev/null + for i in $(MAN1PAGES) ; do \ + $(INSTALL) -m 644 $$i $(MAN1DIR) ; \ + done +@@ -78,8 +83,10 @@ + for i in $(MAN8PAGES) ; do \ + $(INSTALL) -m 644 $$i $(MAN8DIR) ; \ + done ++ ++install.info: + if [ -f mgetty.info ] ; then\ +- test -d $(INFODIR) || mkdir $(INFODIR) 2>/dev/null ; \ ++ test -d $(INFODIR) || mkdir -p $(INFODIR) 2>/dev/null ; \ + for i in mgetty.info* ; do \ + $(INSTALL) -m 644 $$i $(INFODIR) ; \ + done ; \ +@@ -92,8 +99,8 @@ + ../mgetty0$(VS)doc.tar.gz: doc-all mgetty.html + gtar cvvf ../mgetty0$(VS)doc.tar mgetty.texi mgetty.info* \ + mgetty.dvi mgetty.ps \ +- mgetty.ms mgetty.asc \ + mgetty.html *.man ++# mgetty.ms mgetty.asc + gzip -f -9 -v ../mgetty0$(VS)doc.tar + + # explicit man page dependencies diff --git a/mgetty/mgetty-1.1.30/10-doc_faxrunqd.8in b/mgetty/mgetty-1.1.30/10-doc_faxrunqd.8in index e69de29bb2..5d29580c50 100644 --- a/mgetty/mgetty-1.1.30/10-doc_faxrunqd.8in +++ b/mgetty/mgetty-1.1.30/10-doc_faxrunqd.8in @@ -0,0 +1,60 @@ +--- mgetty-1.1.30.old/doc/faxrunqd.8in 2002-11-23 11:47:17.000000000 -0500 ++++ mgetty-1.1.30/doc/faxrunqd.8in 2003-07-15 16:08:22.000000000 -0400 +@@ -3,7 +3,7 @@ + .SH NAME + faxrunqd \- daemon to send fax jobs queued by faxspool(1) + .SH SYNOPSIS +-.B faxrunqd [-v] [-d] [-l <ttys>] [-u <user>] [-V] ++.B faxrunqd [-v] [-d] [-D] [-l <ttys>] [-u <user or uid>] [ -g <group or gid> ] [-V] + .SH DESCRIPTION + Runs in the background, and regularily checks the fax queue set up by + faxspool(1). Sends all jobs that are due, records results, and takes +@@ -59,7 +59,7 @@ + would do (send a mail, delete the JOB directory, execute a named program, + etc.). Both programs are fully compatible in this respect. + +-.B faxrunqd [-v] [-d] [-l <ttys>] [-u <user>] [-V] ++.B faxrunqd [-v] [-d] [-D] [-l <ttys>] [-u <user or uid>] [ -g <group or gid> ] [-V] + .SH OPTIONS + .TP + .B -v +@@ -67,17 +67,22 @@ + .I faxrunqd + to write progress information to the log file. + .TP ++.B -D ++Tells ++.I faxrunqd ++to run in the background, as a daemon. ++.TP + .B -d + Tells + .I faxrunqd + to write debugging information to stdout and the log file (usually used +-together with -v) ++together with -v). + .TP + .B -l <ttyS> + Specifies the list of modem devices to use. Multiple devices are + separated with ':', e.g. '-l ttyS0:ttyS1'. + .TP +-.B -u <user> ++.B -u <user or uid> + .I faxrunqd + can now (since 1.1.29) run as unprivileged user. If you start it as root + from /etc/inittab or from one of the /etc/rc* scripts, it's strongly +@@ -86,7 +91,13 @@ + .I faxrunqd + drop all its privileges at startup, and run as the specified user. Running + .I faxrunqd +-as root user might lead to security problems - don't do it. ++as root user might lead to security problems - don't do it. This ++parameter takes either a uid or a username as argument. ++.TP ++.B -g <group or gid> ++.I Same effect as above but for the group id. Indicates the group which ++should own the fax files. This parameter takes either a gid or a ++groupname as argument. + .TP + .B -V + print version number and exit diff --git a/mgetty/mgetty-1.1.30/12-fax_faxrunqd.in b/mgetty/mgetty-1.1.30/12-fax_faxrunqd.in index e69de29bb2..dfe01784be 100644 --- a/mgetty/mgetty-1.1.30/12-fax_faxrunqd.in +++ b/mgetty/mgetty-1.1.30/12-fax_faxrunqd.in @@ -0,0 +1,183 @@ +--- mgetty-1.1.30/fax/faxrunqd.in.orig 2003-09-13 11:04:12.000000000 +0000 ++++ mgetty-1.1.30-5.1/fax/faxrunqd.in 2003-09-13 11:12:47.000000000 +0000 +@@ -13,6 +13,9 @@ + # + # Change Log: + # ++# Debian 1.1.30-5.1 2003/07/20 Andreas Barth <aba@not.so.argh.org> ++# Can specify group per commandline. ++# + # $Log$ + # Revision 1.3 2004-11-09 00:36:47 handhelds.org!kergoth + # Turn off EOLN_NATIVE flag + # + # (Logical change 1.4593) + # + # Revision 1.63 2002/11/23 16:52:18 gert + # make messages more clear, print warning if running as root +@@ -45,6 +48,11 @@ + # a "low prio" job for phone number 123 could be attached to a high prio + # job to 123, and thus be sent before a high prio job to 456) + # ++# Debian 1.1.28-4 2002/11/27 18:32:23 Wolfgang Sourdeau <was@debian.org> ++# Quit quietly when received signal TERM or HUP since it is expected the ++# user knows what is happening already. The quit message is still written ++# into the logfile. ++# + # Revision 1.56 2002/01/04 17:52:42 gert + # pass sendfax exit code as 2nd argument to success/failure program + # +@@ -55,6 +63,9 @@ + # Revision 1.54 2001/12/16 14:26:25 gert + # stop queue handling if a file named 'stop' exists + # ++# Add a -D option to allow for running in the background as a Daemon ++# Philip Hands <phil@hands.com> ++# + # Revision 1.53 2000/08/06 14:28:37 gert + # go from using $fax_spool_out/.last_run to VARRUNDIR/faxqueue_done + # +@@ -129,6 +140,8 @@ + # + # + require 5.004; ++ ++use Fcntl; + use POSIX; + use IO::Handle; + use Getopt::Std; +@@ -143,10 +156,10 @@ + $mail='@MAILER@'; + + $faxrunq_cf='@CONFDIR@/faxrunq.config'; +-$fax_acct='@FAX_SPOOL@/acct.log'; +-$faxrd_log='@FAX_SPOOL@/faxrunqd.log'; ++$fax_acct='/var/log/mgetty/fax/acct.log'; ++$faxrd_log='/var/log/mgetty/fax/faxrunqd.log'; + +-$faxrd_pid='@FAX_SPOOL_OUT@/faxrunqd.pid'; ++$faxrd_pid='/var/run/mgetty-fax/faxrunqd.pid'; + $last_run='@FAX_SPOOL_OUT@/faxqueue_done'; + + $policy_config=''; +@@ -189,8 +202,10 @@ + $opt_V = 0; # print version number + $opt_l = ''; # ttys to use + $opt_u = ''; # user id to setuid() to +-getopts( 'dvVl:u:' ) || +- die "Valid options: -d (debug), -v (verbose), -l tty<n>, -u uid, -V (version)\n"; ++$opt_g = ''; # group id to setgid() to ++$opt_D = 0; # daemon ++getopts( 'DdvVl:u:g:' ) || ++ die "Valid options: -D (daemon), -d (debug), -v (verbose), -l tty<n>, -u uid, -g uid, -V (version)\n"; + + if ( $opt_d ) { $opt_v=1; } + +@@ -201,32 +216,63 @@ + mgetty+sendfax by Gert Doering + $rcs_id + +-config file read from '$faxrunq_cf' ++config read from '$faxrunq_cf' + + EOF + exit 0; + } + ++$uid=$>; ++$gid=$); ++ + if ( $opt_u ne '' ) # set user ID to $opt_u + { +- my ( $uid, $gid ) = ( getpwnam( $opt_u ) )[2,3]; ++ ( $uid, $gid ) = ( ( $opt_u =~ /^[0-9]+$/ ) ++ ? getpwuid( $opt_u ) ++ : getpwnam( $opt_u ) )[2,3]; + + if ( !defined($uid) || !defined($gid) ) + { die "$0: no such user: '$opt_u'\n"; } + + print "change user ID to '$opt_u' (numeric uid: $uid, gid: $gid)\n" + if $opt_d; +- $( = $) = $gid; +- $< = $> = $uid; +- +- if ( $> != $uid || $) != $gid ) +- { die "$0: can't set uid to $uid / gid to $gid: $!\n"; } + } ++ ++if ( $opt_g ne '' ) ++ { ++ $gid = ( ( $opt_g =~ /^[0-9]+$/ ) ++ ? getgrgid( $opt_g ) ++ : getgrnam( $opt_g ) )[2]; ++ die "$0: no such group: '$opt_g'\n" unless defined ($gid); ++ } ++ ++$( = $) = $gid; ++$< = $> = $uid; ++ ++if ( $> != $uid || $) != $gid ) ++ { die "$0: can't set uid to $uid / gid to $gid: $!\n"; } ++ + if ( $> == 0 ) # root check + { + print STDERR "$0: running with root privileges is not recommended\n"; + } + ++# fork as a daemon if invoked with -D ++if ( $opt_D ) { ++ $pid = fork ; ++ die "Cannot fork: $!" unless defined $pid ; ++ if (0 == $pid) { ++ # Child process: become leader of a new session, lose STDIN, log STDOUT/ERR ++ POSIX::setsid(); ++ umask(022); ++ open(STDIN, "/dev/null") ; ++ open(STDOUT, ">&LOG") ; ++ open(STDERR, ">&LOG") ; ++ } else { ++ exit 0; # parent process ++ } ++} ++ + # + # startup... write PID file, make sure no other faxrunqd runs + # +@@ -262,7 +308,7 @@ + + $SIG{USR1} = \&signal_handler_USR1; # roll log file + $roll_log_file_requested = 0; +-$roll_level=3; # keep 3 old files around ++$roll_level=7; # keep 7 old files around + + $SIG{USR2} = \&signal_handler_USR2; # graceful exit + $graceful_exit_requested = 0; +@@ -355,7 +401,7 @@ + # + # open log file + # +-open( LOG, ">>$faxrd_log" ) || ++sysopen( LOG, "$faxrd_log", O_CREAT | O_APPEND | O_WRONLY, 0640 ) || + die "can't write log file '$faxrd_log'"; + LOG->autoflush(1); + print LOG "\n" . localtime() .": faxrunqd starting, pid=$$\n"; +@@ -552,7 +598,7 @@ + $roll_log_file_requested=0; + + # start new +- open( LOG, ">$faxrd_log" ) || ++ sysopen( LOG, "$faxrd_log", O_CREAT | O_APPEND | O_WRONLY, 0640 ) || + die "can't re-open log file '$faxrd_log'"; + LOG->autoflush(1); + print LOG localtime() .": -- new log file started --\n"; +@@ -1639,7 +1685,8 @@ + { + my $sig = shift; + +- print "\nfaxrunqd: signal handler: got signal $sig, goodbye...\n"; ++ print "\nfaxrunqd: signal handler: got signal $sig, goodbye...\n" ++ if ($sig ne 'TERM' && $sig ne 'HUP' && $sig ne 'USR2'); + print LOG "\nfaxrunqd: signal handler: got signal $sig, goodbye...\n"; + + # save tty statistics diff --git a/mgetty/mgetty-1.1.30/13-fax_faxspool.in b/mgetty/mgetty-1.1.30/13-fax_faxspool.in index e69de29bb2..ba7a994258 100644 --- a/mgetty/mgetty-1.1.30/13-fax_faxspool.in +++ b/mgetty/mgetty-1.1.30/13-fax_faxspool.in @@ -0,0 +1,237 @@ +--- mgetty-1.1.30.orig/fax/faxspool.in 2002-11-23 10:14:57.000000000 -0500 ++++ mgetty-1.1.30/fax/faxspool.in 2003-04-27 23:48:56.000000000 -0400 +@@ -70,7 +70,7 @@ + FAX_SPOOL=@FAX_SPOOL@ + FAX_SPOOL_OUT=@FAX_SPOOL_OUT@ + FAX_SEQ=$FAX_SPOOL_OUT/.Sequence +-FAX_SEQ_LOCKDIR=$FAX_SPOOL_OUT/locks ++FAX_SEQ_LOCKDIR=/var/lock/fax + FAX_SEQ_LOCK=$FAX_SEQ_LOCKDIR/LCK..seq + LAST_RUN=@FAX_SPOOL_OUT@/faxqueue_done + +@@ -145,7 +145,7 @@ + # + fs_cvt_pbm() + { +- pbm2g3 $1 >$2.001 ++ pbm2g3 "$1" >"$2".001 + } + + # +@@ -153,7 +153,7 @@ + # + fs_cvt_pgm() + { +- pgmtopbm $1 | pbm2g3 >$2.001 ++ pgmtopbm "$1" | pbm2g3 >"$2".001 + } + + # +@@ -161,7 +161,7 @@ + # + fs_cvt_ppm() + { +- ppmtopgm $1 | pgmtopbm | pbm2g3 >$2.001 ++ ppmtopgm "$1" | pgmtopbm | pbm2g3 >"$2".001 + } + + # +@@ -171,7 +171,7 @@ + # + fs_cvt_g3() + { +- g3cat $1 >$2.001 ++ g3cat "$1" >"$2".001 + } + + # +@@ -183,14 +183,14 @@ + fs_cvt_xwd() + { + REDUCE="cat" +- test X$3 = X-n && REDUCE="pnmscale -yscale 0.5" ++ test X"$3" = X-n && REDUCE="pnmscale -yscale 0.5" + +- xwdtopnm $1 |\ ++ xwdtopnm "$1" |\ + pnmscale -xysize 1728 2000 |\ + $REDUCE |\ + ppmtopgm |\ + pgmtopbm |\ +- pbm2g3 >$2.001 ++ pbm2g3 >"$2".001 + } + + # +@@ -201,14 +201,14 @@ + fs_cvt_gif() + { + REDUCE="cat" +- test X$3 = X-n && REDUCE="pnmscale -yscale 0.5" ++ test X"$3" = X-n && REDUCE="pnmscale -yscale 0.5" + +- giftoppm $1 |\ ++ giftopnm "$1" |\ + pnmscale -xysize 1728 2000 |\ + $REDUCE |\ + ppmtopgm |\ + pgmtopbm |\ +- pbm2g3 >$2.001 ++ pbm2g3 >"$2".001 + } + + # +@@ -219,14 +219,14 @@ + fs_cvt_tif() + { + REDUCE="cat" +- test X$3 = X-n && REDUCE="pnmscale -yscale 0.5" ++ test X"$3" = X-n && REDUCE="pnmscale -yscale 0.5" + +- tifftopnm $1 |\ ++ tifftopnm "$1" |\ + pnmscale -xysize 1728 2000 |\ + $REDUCE |\ + ppmtopgm |\ + pgmtopbm |\ +- pbm2g3 >$2.001 ++ pbm2g3 >"$2".001 + } + + # +@@ -235,11 +235,11 @@ + # + fs_cvt_lj() + { +- if [ X$3 = X-n ] ++ if [ X"$3" = X-n ] + then +- hp2log3 -r$2 <$1 ++ hp2log3 -r"$2" <"$1" + else +- hp2hig3 -r$2 <$1 ++ hp2hig3 -r"$2" <"$1" + fi + } + +@@ -251,10 +251,10 @@ + fs_cvt_ps() + { + driver="$GS_DRIVER_HI" +- test X$3 = X-n && driver="$GS_DRIVER_LO" ++ test X"$3" = X-n && driver="$GS_DRIVER_LO" + +- cat $1 | +- gs $driver -sOutputFile=$2%03d -dNOPAUSE -q -dSAFER - ++ cat "$1" | ++ gs $driver -sOutputFile="$2"%03d -dNOPAUSE -q -dSAFER - + } + + # +@@ -268,19 +268,19 @@ + # via Ghostscript: + + driver="$GS_DRIVER_HI" +- test X$3 = X-n && driver="$GS_DRIVER_LO" ++ test X"$3" = X-n && driver="$GS_DRIVER_LO" + +- gs $driver -sOutputFile=$2%03d -dNOPAUSE \ +- -- gslp.ps -fCourier-Bold10 -B $1 ++ gs $driver -sOutputFile="$2"%03d -dNOPAUSE \ ++ -- gslp.ps -fCourier-Bold10 -B "$1" + + ##### + # via hp2pbm: + # (convert "LF" to "CR+LF" via awk) + + # pgm=hp2hig3 +-# test X$3 = X-n && pgm=hp2log3 ++# test X"$3" = X-n && pgm=hp2log3 + # +-# $AWK '{ printf "%s\r\n", $0 }' $1 | $pgm -r$2 ++# $AWK '{ printf "%s\r\n", $0 }' "$1" | $pgm -r"$2" + + ##### + # via pbmtext (not really recommended): +@@ -288,13 +288,13 @@ + + ## Select appropriate font + # font=$PBMFONT_BODY_F +-# test X$3 = X-n && font=$PBMFONT_BODY_N ++# test X"$3" = X-n && font=$PBMFONT_BODY_N + # Determine how many pages text will be split in to. Uses default pagelen. +-# nr=`pgx < $1` ++# nr=`pgx < "$1"` + # Convert each page into a separate G3 file. Uses default pagelen (60). + # page=1 + # while [ $page -le $nr ]; do +-# pgx $page < $1 | pbmtext -font $font | pbm2g3 >$2.$page ++# pgx $page < "$1" | pbmtext -font $font | pbm2g3 >"$2".$page + # page=`expr $page + 1` + # done + } +@@ -306,7 +306,7 @@ + # + fs_cvt_dvi() + { +- if [ X$3 = X-n ] ++ if [ X"$3" = X-n ] + then + driver="$GS_DRIVER_LO" ; dvipscfg="-P dfaxlo" + else +@@ -316,18 +316,18 @@ + # if you do not have the dfaxlo(w)/dfaxhigh dvips modes configured, + # remove "$dvipscfg" from the dvips command line below [or configure them!] + +- dvips $dvipscfg $1 -o \ +- !"gs $driver -sOutputFile=$2%03d -dNOPAUSE -dSAFER -q -" ++ dvips $dvipscfg "$1" -o \ ++ !"gs $driver -sOutputFile="$2"%03d -dNOPAUSE -dSAFER -q -" + + # for those that only have the old "dvialw": + # + # dvialw <$file | +-# gs $driver -sOutputFile=$2%03d -dNOPAUSE -dSAFER -q - ++# gs $driver -sOutputFile="$2"%03d -dNOPAUSE -dSAFER -q - + + # for those that have dvi2ps and not dvips: + # + # dvi2ps -r -q $q | +-# gs $driver -sOutputFile=$2%03d -dNOPAUSE -dSAFER -q - ++# gs $driver -sOutputFile="$2"%03d -dNOPAUSE -dSAFER -q - + + } + +@@ -341,11 +341,11 @@ + fs_cvt_pdf() + { + driver="$GS_DRIVER_HI" +- test X$3 = X-n && driver="$GS_DRIVER_LO" ++ test X"$3" = X-n && driver="$GS_DRIVER_LO" + +- cat $1 | ++ cat "$1" | + acroread -toPostScript | +- gs $driver -sOutputFile=$2%03d -dNOPAUSE -q -dSAFER - ++ gs $driver -sOutputFile="$2"%03d -dNOPAUSE -q -dSAFER - + } + + +@@ -487,7 +487,7 @@ + then + user="$2" + else +- $echo "not authorized to use \`\`-u $2'' switch." >&2 ++ $echo "not authorized to use \`\`-u "$2"'' switch." >&2 + exit 3 + fi + shift ; shift +@@ -547,7 +547,7 @@ + exit 3 + fi + +-phone=$1 ; shift ++phone="$1" ; shift + if expr "$phone" : "[-0-9TtPpWw,;]*$" >/dev/null ; then : + else + alias="$phone" diff --git a/mgetty/mgetty-1.1.30/14-frontends_X11_viewfax-2.5_Makefile b/mgetty/mgetty-1.1.30/14-frontends_X11_viewfax-2.5_Makefile index e69de29bb2..d218b6e7cc 100644 --- a/mgetty/mgetty-1.1.30/14-frontends_X11_viewfax-2.5_Makefile +++ b/mgetty/mgetty-1.1.30/14-frontends_X11_viewfax-2.5_Makefile @@ -0,0 +1,60 @@ +--- mgetty-1.1.28.old/frontends/X11/viewfax-2.5/Makefile 2002-08-03 17:26:26.000000000 -0400 ++++ mgetty-1.1.28/frontends/X11/viewfax-2.5/Makefile 2002-08-03 17:30:26.000000000 -0400 +@@ -21,15 +21,15 @@ + + ####### Site-specific definitions ####### + # Destination directories and installation program for make install +-BINDIR = /usr/local/bin +-LIBDIR = /usr/local/lib +-MANDIR = /usr/local/man/man1 +-INSTALL = /usr/ucb/install ++BINDIR = $(DESTDIR)/usr/bin ++DOCDIR = $(DESTDIR)/usr/share/doc/mgetty-viewfax ++MANDIR = $(DESTDIR)/usr/share/man/man1 ++INSTALL = /usr/bin/install + RM = rm -f + # Location of help file +-HELP = \"$(LIBDIR)/viewfax.tif\" ++HELP = \"$(DOCDIR)/viewfax.tif\" + # optimisation level, debug etc +-OPT = -g -O2 -Wno-uninitialized -ansi -pedantic ++OPT = -O2 -Wno-uninitialized -ansi -pedantic + # C compiler and libraries + # vanilla sysv + #CC = cc +@@ -43,22 +43,22 @@ + #LIBS = + # sun solaris2 with gcc on supersparc: + CC = gcc +-CFLAGS = -Wall $(OPT) -DHELPFILE=$(HELP) -msupersparc -I/usr/openwin/include +-LDFLAGS = $(OPT) -L/usr/openwin/lib -R/usr/openwin/lib ++CFLAGS = -Wall $(OPT) -DHELPFILE=$(HELP) -I/usr/openwin/include ++LDFLAGS = $(OPT) -L/usr/X11R6/lib -lX11 + LIBS = + + ####### End of configurable definitions ####### + OBJS = viewfax.o faxinput.o faxinit.o faxexpand.o + + viewfax: $(OBJS) +- $(CC) $(LDFLAGS) -o viewfax $(OBJS) -lX11 $(LIBS) ++ $(CC) $(LDFLAGS) -o viewfax $(OBJS) $(LIBS) + + g3hack: g3hack.c + + install: viewfax + $(INSTALL) -s -m 755 viewfax $(BINDIR) + $(INSTALL) -m 644 viewfax.man $(MANDIR)/viewfax.1 +- $(INSTALL) -m 644 viewfax.tif $(LIBDIR) ++ $(INSTALL) -m 644 viewfax.tif $(DOCDIR)/ + + D = viewfax-$(VERS) + FILES = $D/README $D/COPYING $D/ChangeLog $D/Imakefile $D/Makefile \ +@@ -75,7 +75,7 @@ + + shar:; (cd ..; shar -a -n$D -M -sfdc@cliwe.ping.de -c -o $D/part -l64 $(FILES)) + +-clean:; $(RM) *.o *~ core ++clean:; $(RM) *.o *~ core viewfax + + viewfax.o: faxexpand.h + faxinput.o: faxexpand.h diff --git a/mgetty/mgetty-1.1.30/23-samples_new_fax.mime4 b/mgetty/mgetty-1.1.30/23-samples_new_fax.mime4 index e69de29bb2..e5f3d0a061 100644 --- a/mgetty/mgetty-1.1.30/23-samples_new_fax.mime4 +++ b/mgetty/mgetty-1.1.30/23-samples_new_fax.mime4 @@ -0,0 +1,77 @@ +--- mgetty-1.1.30.old/samples/new_fax.mime4 1999-04-17 06:38:50.000000000 -0400 ++++ mgetty-1.1.30/samples/new_fax.mime4 2003-07-01 23:45:07.000000000 -0400 +@@ -37,13 +37,14 @@ + PATH=/usr/sbin:/usr/local/bin:/usr/bin:/bin:$PATH + + # Select image type by uncommenting one of the following lines: +-#PBMTOX=pnmtopng ; MIME_TYPE="image/png" ; FILE_EXTN=png +-PBMTOX=ppmtogif ; MIME_TYPE="image/gif" ; FILE_EXTN=gif ++PBMTOX=pnmtopng ; MIME_TYPE="image/png" ; FILE_EXTN=png ++#PBMTOX=ppmtogif ; MIME_TYPE="image/gif" ; FILE_EXTN=gif + #PBMTOX=pnmtotiff ; MIME_TYPE="image/tiff" ; FILE_EXTN=tif + # PBM files may be huge + #PBMTOX=cat ; MIME_TYPE="image/x-portable-bitmap" ; FILE_EXTN=pbm + # compressed PBM files + #PBMTOX=gzip ; MIME_TYPE="application/octet-stream"; FILE_EXTN=pbm.gz ++#PBMTOX=NONE ; MIME_TYPE="image/fax-g3"; FILE_EXTN=g3 + + # The binaries we need; please check carefully !!! + BASENAME=basename +@@ -63,14 +64,23 @@ + + # Some miscellaneous data and filenames. + TMP=/tmp +-MAIL_MESS=$TMP/MESS_$$ +-ERRO_MESS=$TMP/ERRO_$$ +-IMAG_FILE=$TMP/TIFF_$$ +-MIME_MESS=$TMP/MAIL_$$ ++MAIL_MESS=`/bin/tempfile -pMESS_` ++ERRO_MESS=`/bin/tempfile -pERRO_` ++IMAG_FILE=`/bin/tempfile -pTIFF_` ++MIME_MESS=`/bin/tempfile -pMAIL_` ++if [ ! -f $MAIL_MESS ] ||\ ++ [ ! -f $ERRO_MESS ] ||\ ++ [ ! -f $IMAG_FILE ] ||\ ++ [ ! -f $MIME_MESS ] ++then ++ echo "Could not create one of the temporary files. Aborting..."; ++ exit 1; ++fi ++ + umask 077 + + # Clean up from previous invocations and trap errors +-$RM -f $MAIL_MESS $ERRO_MESS $IMAG_FILE $MIME_MESS ++# $RM -f $MAIL_MESS $ERRO_MESS $IMAG_FILE $MIME_MESS + trap "$RM -f $MAIL_MESS $ERRO_MESS $IMAG_FILE $MIME_MESS; exit" 0 1 2 15 + + # Essential lines to put into the header of a MIME mail. +@@ -86,7 +96,7 @@ + ATTACHMENT_ENDLINE="--attachment--" + + # Now we build our MIME mailheader using commandline arguments. +-$ECHO "Subject: incoming FAX from $2 with $3 pages" > $MAIL_MESS ++$ECHO "Subject: incoming FAX from $2 with $3 pages" >> $MAIL_MESS + $ECHO "$HEADERLINE_1" >> $MAIL_MESS + $ECHO "$HEADERLINE_2" >> $MAIL_MESS + $ECHO "" >> $MAIL_MESS +@@ -109,6 +119,9 @@ + # + for i in $@ + do ++if [ "$PBMTOX" = "NONE" ]; then ++ IMAG_FILE=$i ++else + # We use the second character in the filename to identify the + # resolution of our incoming fax, so we can easily scale the fax for + # display on a screen. +@@ -126,7 +139,8 @@ + # handle standard input correctly. + $CAT $i 2>> $ERRO_MESS \ + | $G3TOPBM $STRETCH 2>> $ERRO_MESS \ +- | $PBMTOX >> $IMAG_FILE 2>> $ERRO_MESS ++ | $PBMTOX > $IMAG_FILE 2>> $ERRO_MESS ++fi + # + # Now we put the header for each attachment into our MIME mail. + $ECHO "$ATTACHMENT_HEADERLINE_1" >> $MIME_MESS diff --git a/mgetty/mgetty-1.1.30/24-voice_include_paths.h b/mgetty/mgetty-1.1.30/24-voice_include_paths.h index e69de29bb2..3503080ad8 100644 --- a/mgetty/mgetty-1.1.30/24-voice_include_paths.h +++ b/mgetty/mgetty-1.1.30/24-voice_include_paths.h @@ -0,0 +1,15 @@ +--- mgetty-1.1.27.orig/voice/include/paths.h ++++ mgetty-1.1.27/voice/include/paths.h +@@ -19,10 +19,10 @@ + * the device name. + */ + +-#define VGETTY_LOG_PATH "/var/log/vgetty.%s" ++#define VGETTY_LOG_PATH "/var/log/mgetty/vg_%s.log" + + /* + * Filename of the logfile for vm. + */ + +-#define VM_LOG_PATH "/var/log/vm.log" ++#define VM_LOG_PATH "/var/log/mgetty/vm.log" diff --git a/mgetty/mgetty-1.1.30/26-voice_libpvf_usr.c b/mgetty/mgetty-1.1.30/26-voice_libpvf_usr.c index e69de29bb2..3396a5616f 100644 --- a/mgetty/mgetty-1.1.30/26-voice_libpvf_usr.c +++ b/mgetty/mgetty-1.1.30/26-voice_libpvf_usr.c @@ -0,0 +1,16 @@ +--- mgetty-1.1.27.orig/voice/libpvf/usr.c ++++ mgetty-1.1.27/voice/libpvf/usr.c +@@ -103,9 +103,13 @@ + } + } + gsm_encode(r, s, d); ++#if defined(old_USR_GSM_with_head_and_tail_bytes) + fwrite((char *)gsm_head, 2, 1, fd_out); ++#endif + fwrite((char *)d, sizeof(d), 1, fd_out); ++#if defined(old_USR_GSM_with_head_and_tail_bytes) + fwrite((char *)gsm_tail, 3, 1, fd_out); ++#endif + } + gsm_destroy(r); + return(OK); diff --git a/mgetty/mgetty-1.1.30/36-voice_voice.conf-dist b/mgetty/mgetty-1.1.30/36-voice_voice.conf-dist index e69de29bb2..854fbc12df 100644 --- a/mgetty/mgetty-1.1.30/36-voice_voice.conf-dist +++ b/mgetty/mgetty-1.1.30/36-voice_voice.conf-dist @@ -0,0 +1,11 @@ +--- mgetty-1.1.30.orig/voice/voice.conf-dist 2002-12-15 14:43:49.000000000 -0500 ++++ mgetty-1.1.30/voice/voice.conf-dist 2003-04-27 23:53:14.000000000 -0400 +@@ -51,7 +51,7 @@ + # + + phone_owner root +-phone_group phone ++phone_group voice + phone_mode 0660 + + # diff --git a/mgetty/mgetty-1.1.30/37-Makefile b/mgetty/mgetty-1.1.30/37-Makefile index e69de29bb2..49219c1e14 100644 --- a/mgetty/mgetty-1.1.30/37-Makefile +++ b/mgetty/mgetty-1.1.30/37-Makefile @@ -0,0 +1,141 @@ +--- mgetty-1.1.30.orig/Makefile 2002-12-16 08:08:23.000000000 -0500 ++++ mgetty-1.1.30/Makefile 2003-04-28 00:25:24.000000000 -0400 +@@ -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=-O2 -Wall -pipe -DAUTO_PPP -DFIDO + #CFLAGS=-O -DSVR4 + #CFLAGS=-O -DSVR4 -DSVR42 + #CFLAGS=-O -DUSE_POLL +@@ -169,7 +169,7 @@ + # + # if your systems doesn't have one, use the shell script that I provide + # in "inst.sh" (taken from X11R5). Needed on IRIX5.2 +-INSTALL=install -c -o bin -g bin ++INSTALL=install -c + #INSTALL=install -c -o root -g wheel # NeXT/BSD + #INSTALL=/usr/ucb/install -c -o bin -g bin # AIX, Solaris 2.x + #INSTALL=installbsd -c -o bin -g bin # OSF/1, AIX 4.1, 4.2 +@@ -177,11 +177,11 @@ + # + # prefix, where most (all?) of the stuff lives, usually /usr/local or /usr + # +-prefix=/usr/local ++prefix=$(DESTDIR)/usr + # + # prefix for all the spool directories (usually /usr/spool or /var/spool) + # +-spool=/var/spool ++spool=$(DESTDIR)/var/spool + # + # where the mgetty + sendfax binaries live (used for "make install") + # +@@ -193,11 +193,11 @@ + # + # where the font+coverpage files go + # +-LIBDIR=$(prefix)/lib/mgetty+sendfax ++LIBDIR=$(prefix)/lib/mgetty-fax + # + # where the configuration files (*.config, aliases, fax.allow/deny) go to + # +-CONFDIR=$(prefix)/etc/mgetty+sendfax ++CONFDIR=$(DESTDIR)/etc/mgetty + #CONFDIR=/etc/default/ + # + # +@@ -220,31 +220,33 @@ + # (it's possible to run faxrunq(d) as root, but the FAX_OUT_USER + # MUST NOT BE root or any other privileged account). + # +-FAX_OUT_USER=fax ++FAX_OUT_USER=uucp + # + # + # Where section 1 manual pages should be placed +-MAN1DIR=$(prefix)/man/man1 ++MAN1DIR=$(prefix)/share/man/man1 + # + # Where section 4 manual pages (mgettydefs.4) should be placed +-MAN4DIR=$(prefix)/man/man4 ++MAN4DIR=$(prefix)/share/man/man4 + # + # Section 5 man pages (faxqueue.5) +-MAN5DIR=$(prefix)/man/man5 ++MAN5DIR=$(prefix)/share/man/man5 + # + # Section 8 man pages (sendfax.8) +-MAN8DIR=$(prefix)/man/man8 ++MAN8DIR=$(prefix)/share/man/man8 + # + # Where the GNU Info-Files are located + # +-INFODIR=$(prefix)/info ++INFODIR=$(prefix)/share/info + # + # + # A shell that understands bourne-shell syntax + # Usually this will be /bin/sh or /usr/bin/sh, but bash or ksh are fine. + # (on some ultrix systems, you may need /bin/sh5 here) + # +-SHELL=/bin/sh ++# On Debian GNU/Linux, bash is a required package so we can use it to solve ++# bug #149851. ++SHELL=/bin/bash + # + # If you have problems with the awk-programs in the fax/ shell scripts, + # try using "nawk" or "gawk" (or whatever works...) here +@@ -274,7 +276,7 @@ + # please use the "mg.echo" program provided in the compat/ subdirectory. + # Set ECHO="mg.echo" and INSTALL_MECHO to mg.echo + # +-ECHO="echo" ++ECHO="echo -e" + # + # INSTALL_MECHO=mg.echo + +@@ -284,7 +286,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=voice + PHONE_PERMS=770 + + # Add -DNO_STRSTR to CFLAGS if you don't have strstr(). +@@ -594,7 +596,7 @@ + -test -d $(SBINDIR) || ( ./mkidirs $(SBINDIR) ; chmod 755 $(SBINDIR) ) + -mv -f $(SBINDIR)/mgetty $(SBINDIR)/mgetty.old + -mv -f $(SBINDIR)/sendfax $(SBINDIR)/sendfax.old +- $(INSTALL) -s -m 700 mgetty $(SBINDIR) ++ $(INSTALL) -s -m 755 mgetty $(SBINDIR) + $(INSTALL) -s -m 755 sendfax $(SBINDIR) + # + # data files + directories +@@ -663,12 +665,15 @@ + # + # documentation + # +-install.doc: +- cd doc ; $(MAKE) install INSTALL="$(INSTALL)" \ ++install.man: ++ cd doc ; $(MAKE) install.man INSTALL="$(INSTALL)" \ + MAN1DIR=$(MAN1DIR) \ + MAN4DIR=$(MAN4DIR) \ + MAN5DIR=$(MAN5DIR) \ +- MAN8DIR=$(MAN8DIR) \ ++ MAN8DIR=$(MAN8DIR) ++ ++install.info: ++ cd doc ; $(MAKE) install.info INSTALL="$(INSTALL)" \ + INFODIR=$(INFODIR) + + # +@@ -736,3 +741,5 @@ + conf_sf.h + tio.o : tio.c mgetty.h ugly.h tio.h + utmp.o : utmp.c mgetty.h ugly.h mg_utmp.h ++ ++.PHONY: install install.bin install.man install.info diff --git a/mgetty/mgetty-1.1.30/39-mgetty.cfg.in b/mgetty/mgetty-1.1.30/39-mgetty.cfg.in index e69de29bb2..835ed08729 100644 --- a/mgetty/mgetty-1.1.30/39-mgetty.cfg.in +++ b/mgetty/mgetty-1.1.30/39-mgetty.cfg.in @@ -0,0 +1,12 @@ +--- mgetty-1.1.27.orig/mgetty.cfg.in ++++ mgetty-1.1.27/mgetty.cfg.in +@@ -20,6 +20,9 @@ + # access the modem(s) with @SPEED@ bps + speed @SPEED@ + ++# use an alternate issue file, to avoid being bitten by linuxlogo ++issue-file /etc/issue.mgetty ++ + # use these options to make the /dev/tty-device owned by "uucp.uucp" + # and mode "rw-rw-r--" (0664). *LEADING ZERO NEEDED!* + #port-owner uucp diff --git a/mgetty/mgetty-1.1.30/40-locks.c_bug153394 b/mgetty/mgetty-1.1.30/40-locks.c_bug153394 index e69de29bb2..0de2fb6b0f 100644 --- a/mgetty/mgetty-1.1.30/40-locks.c_bug153394 +++ b/mgetty/mgetty-1.1.30/40-locks.c_bug153394 @@ -0,0 +1,60 @@ +--- mgetty-1.1.28.old/locks.c 2001-01-06 12:46:34.000000000 -0500 ++++ mgetty-1.1.28/locks.c 2002-08-03 16:25:02.000000000 -0400 +@@ -394,9 +394,42 @@ + + #else /* not SVR4 */ + ++static char * unslash_name _P1 ( (device), ++ char *device ) ++{ ++ char *lock_device, *ldev_begin, *ldevice_orig; ++ ++ ldevice_orig = malloc( strlen (device) + 1 ); ++ sprintf( ldevice_orig, "%s", device ); ++ ++ lock_device = strchr( ldevice_orig, '/' ); ++ while (lock_device) ++ { ++ *lock_device = '_'; ++ lock_device = strchr( lock_device, '/' ); ++ } ++ ++ if ( *ldevice_orig == '_' ) ++ { ++ lock_device = strchr( ldevice_orig + 1, '_' ); ++ if (! lock_device) ++ lock_device = ldevice_orig; ++ lock_device++; ++ } ++ else ++ lock_device = ldevice_orig; ++ ++ ldev_begin = malloc( strlen( lock_device ) + 1 ); ++ sprintf( ldev_begin, "%s", lock_device ); ++ free( ldevice_orig ); ++ ++ return ldev_begin; ++} ++ + static char * get_lock_name _P2( (lock_name, device), + char * lock_name, char * device ) + { ++ char *lock; + #ifdef LOCKS_LOWERCASE + /* sco locking convention -> change all device names to lowercase */ + +@@ -425,10 +458,10 @@ + #endif /* LOCKS_LOWERCASE */ + + /* throw out all directory prefixes */ +- if ( strchr( device, '/' ) != NULL ) +- device = strrchr( device, '/' ) +1; +- +- sprintf( lock_name, LOCK, device); ++ ++ lock = unslash_name ( device ); ++ sprintf( lock_name, LOCK, lock ); ++ free ( lock ); + + return lock_name; + } diff --git a/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 b/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 index e69de29bb2..fa07ee1b8e 100644 --- a/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 +++ b/mgetty/mgetty-1.1.30/41-ugly-redo-ring.c_bug128668 @@ -0,0 +1,27 @@ +--- mgetty-1.1.30.orig/ring.c Thu Dec 5 21:29:10 2002 ++++ mgetty-1.1.30/ring.c Mon Sep 29 20:30:23 2003 +@@ -219,6 +219,8 @@ + char buf[BUFSIZE], ch, *p; + int i, w, r; + int rc = SUCCESS; ++boolean got_name = FALSE; ++boolean got_nmbr = FALSE; + boolean got_dle; /* for <DLE><char> events (voice mode) */ + + lprintf( L_MESG, "wfr: waiting for ``RING''" ); +@@ -321,7 +324,14 @@ + * instead of waiting for the next "real" RING + * (but don't do this for V253 DRON/DROF modems!) + */ +- if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { break; } ++ if ( strncmp( buf, "NMBR", 4 ) == 0 && drox_count == 0 ) { got_nmbr = TRUE; } ++ if ( strncmp( buf, "NAME", 4 ) == 0 ) { got_name = TRUE; } ++ ++ if ( got_nmbr && got_name ) break; /* got both name & number */ ++ ++ /* special case -> break; do not expect caller name */ ++ if ( got_nmbr && CallerId[0] == 'P' ) break; /* private */ ++ if ( got_nmbr && CallerId[0] == 'O' ) break; /* out of area */ + + /* V.253 ring cadences */ + if ( strncmp( buf, "DRON", 4 ) == 0 || diff --git a/mgetty/mgetty-1.1.30/42-voice_libvoice_detect.c b/mgetty/mgetty-1.1.30/42-voice_libvoice_detect.c index e69de29bb2..eb414be7d1 100644 --- a/mgetty/mgetty-1.1.30/42-voice_libvoice_detect.c +++ b/mgetty/mgetty-1.1.30/42-voice_libvoice_detect.c @@ -0,0 +1,28 @@ +--- mgetty-1.1.30.orig/voice/libvoice/detect.c 2002-12-11 22:44:38.000000000 -0800 ++++ mgetty-1.1.30/voice/libvoice/detect.c 2003-09-07 14:52:01.000000000 -0700 +@@ -86,6 +86,8 @@ + {ati, "Venus V.90 USB U052099a", NULL, &Lucent}, + {ati, "AEIGPM560LKTF1 Voice V2 V92cap", NULL, &V253modem}, + {ati, "Zoom V.90 PCI I030100gV -H Z207",NULL, &Lucent}, ++ {ati, "Zoom V.90 PCI I052099gV -G Z207",NULL, &Lucent}, ++ {ati, "Zoom V.90 Serial s052099g -I Z207", NULL, &Lucent}, + {ati, "28800", ati6, NULL}, + {ati, "2886", NULL, &US_Robotics}, + {ati, "336", NULL, &Rockwell}, +@@ -106,6 +108,7 @@ + {ati, "3X WYSIWYF 628DBX", NULL, &Rockwell}, + {ati, "56000", NULL, &Rockwell}, + {ati, "5601", NULL, &US_Robotics}, ++ {ati, "57600", NULL, &Multitech_2834ZDXv}, + {ati, "961", NULL, &Rockwell}, + {ati, "Digi RAS modem 56000", NULL, &Digi_RAS}, + {ati, "Linux ISDN", NULL, &ISDN4Linux}, +@@ -114,6 +117,8 @@ + NULL, &Multitech_5634ZPX}, + {ati, "LT V.90 1.0 MT5634ZBAV Serial Data/Fax/Voice Modem Version 4.09a", + NULL, &Multitech_5634ZBAV}, ++ {ati, "LT V.92 1.0 MT5634ZBAV-V92 Serial Data/Fax/Voice Modem Version 1.25p", ++ NULL, &Multitech_5634ZBAV}, + {ati4, "33600bps Voice Modem For Italy", + NULL, &Rockwell}, + {ati6, "RCV336DPFSP Rev 44BC", diff --git a/mgetty/mgetty-1.1.30/43-moreinfo-cnd.c_bug112163 b/mgetty/mgetty-1.1.30/43-moreinfo-cnd.c_bug112163 index e69de29bb2..94a3ce66b0 100644 --- a/mgetty/mgetty-1.1.30/43-moreinfo-cnd.c_bug112163 +++ b/mgetty/mgetty-1.1.30/43-moreinfo-cnd.c_bug112163 @@ -0,0 +1,36 @@ +--- mgetty-1.1.30.orig/cnd.c 2002-11-05 16:43:04.000000000 -0500 ++++ mgetty-1.1.30/cnd.c 2003-04-28 00:07:35.000000000 -0400 +@@ -94,6 +94,9 @@ + /* Swedish Telia/ZyXEL Omni 52k - Torulf Lundgren, torulf@upsys.se */ + {"Diverting number:", &CallerId}, + ++ /* FALCOM A2D gsm modem */ ++ {"+CLIP: ", &CallerId}, ++ + {NULL} + }; + +@@ -163,6 +166,23 @@ + if ( *p == '\'' || *p == '\"' || !isprint(*p) ) *p = ' '; + p++; + } ++ ++ if ( strcmp(cp->string,"+CLIP: ") == 0 ) { ++ char *q ; ++ ++ p = *(cp->variable) ; ++ q = *(cp->variable) ; ++ /* strip non digit charaters */ ++ while( ! isdigit(*p) ) p++; ++ /* shift only digit characters */ ++ while( isdigit(*p) ) { ++ *q=*p ; ++ p++ ; ++ q++ ; ++ } ++ *q = 0; ++ } ++ + } + lprintf(L_JUNK, "CND: found: %s", *(cp->variable)); + return; diff --git a/mgetty/mgetty-1.1.30/44-pending-faxexpand.h_bug169455 b/mgetty/mgetty-1.1.30/44-pending-faxexpand.h_bug169455 index e69de29bb2..9ccdf08287 100644 --- a/mgetty/mgetty-1.1.30/44-pending-faxexpand.h_bug169455 +++ b/mgetty/mgetty-1.1.30/44-pending-faxexpand.h_bug169455 @@ -0,0 +1,24 @@ +--- mgetty-1.1.28.old/frontends/X11/viewfax-2.5/faxexpand.h 2000-08-26 07:08:22.000000000 -0400 ++++ mgetty-1.1.28/frontends/X11/viewfax-2.5/faxexpand.h 2002-11-27 01:01:19.000000000 -0500 +@@ -17,6 +17,12 @@ + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + ++/* Wed, 27 Nov 2002 00:59:35 -0500, Wolfgang Sourdeau ++ <Wolfgang@Contre.COM>: ++ - member "vres" of struct pagenode explicitly declared as "signed ++ char" instead of "char" for platforms where char is unsigned. ++ */ ++ + #include <limits.h> + + #if ULONG_MAX == 4294967295UL +@@ -69,7 +75,7 @@ + char inverse; /* black <=> white */ + char lsbfirst; /* bit order is lsb first */ + char orient; /* orientation - upsidedown, landscape, mirrored */ +- char vres; /* vertical resolution: 1 = fine */ ++ signed char vres; /* vertical resolution: 1 = fine */ + void (*expander)(struct pagenode *, drawfunc); + void *extra; /* used for Ximage */ + }; diff --git a/mgetty/mgetty-1.1.30/45-logfile.c b/mgetty/mgetty-1.1.30/45-logfile.c index e69de29bb2..a14a380f7a 100644 --- a/mgetty/mgetty-1.1.30/45-logfile.c +++ b/mgetty/mgetty-1.1.30/45-logfile.c @@ -0,0 +1,52 @@ +--- mgetty-1.1.30.orig/logfile.c 2002-11-25 08:08:26.000000000 -0500 ++++ mgetty-1.1.30/logfile.c 2003-04-28 00:08:35.000000000 -0400 +@@ -56,10 +56,14 @@ + /* Most systems have these variables but do not declare them. On many + of those systems that _do_ declare them, it won't hurt */ + +-extern int sys_nerr; +-#if !defined(__NetBSD__) && !defined( __FreeBSD__ ) && !defined(__OpenBSD__) && !defined(__GLIBC__) && !defined(__MACH__) +-extern char *sys_errlist[]; +-#endif ++/* commented in by was@debian.org on Wed, 27 Nov 2002 01:15:11 -0500 ++ because sys_nerr and sys_errlist are deprecated. strerror() is used ++ instead below.*/ ++ ++/* extern int sys_nerr; */ ++/* #if !defined(__NetBSD__) && !defined( __FreeBSD__ ) && !defined(__OpenBSD__) && !defined(__GLIBC__) && !defined(__MACH__) */ ++/* extern char *sys_errlist[]; */ ++/* #endif */ + + /* Interactive Unix is a little bit braindead - does not have atexit(), + */ +@@ -209,6 +213,7 @@ + va_list pvar; + int errnr; + char * p; ++char *error_string; + static int first_open = TRUE; + + if ( level > log_level ) /* log level high enough? */ +@@ -325,12 +330,20 @@ + } + else /* ERROR or FATAL */ + { ++ error_string = strerror (errnr); ++ if ( error_string == NULL ) ++ { ++ if ( errno == EINVAL ) ++ error_string = "<error not in list>"; ++ else ++ error_string = "<error calling strerror()>"; ++ } ++ + fprintf(log_fp, "\n%02d/%02d %02d:%02d:%02d %s %s: %s", + tm->tm_mon+1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, + log_infix, ws, +- ( errnr <= sys_nerr ) ? sys_errlist[errnr]: +- "<error not in list>" ); ++ strerror (errnr)); + #ifdef SYSLOG + syslog( level == L_FATAL? LOG_ALERT: LOG_ERR, "%s: %m", ws ); + #endif diff --git a/mgetty/mgetty-1.1.30/47-doc_mgetty.texi-in b/mgetty/mgetty-1.1.30/47-doc_mgetty.texi-in index e69de29bb2..3f6b6c6d1e 100644 --- a/mgetty/mgetty-1.1.30/47-doc_mgetty.texi-in +++ b/mgetty/mgetty-1.1.30/47-doc_mgetty.texi-in @@ -0,0 +1,14 @@ +--- mgetty-1.1.30.old/doc/mgetty.texi-in 2002-11-17 16:19:45.000000000 -0500 ++++ mgetty-1.1.30/doc/mgetty.texi-in 2003-07-05 22:23:20.000000000 -0400 +@@ -7,6 +7,11 @@ + @finalout + + @ifinfo ++@dircategory Communication ++@direntry ++* Mgetty: (mgetty). A smart modem replacement for getty. ++@end direntry ++ + This is the online documentation for the mgetty + sendfax + package. + diff --git a/mgetty/mgetty-1.1.30/50-pending-voice-zoom-2949l-c b/mgetty/mgetty-1.1.30/50-pending-voice-zoom-2949l-c index e69de29bb2..1edfe3fd65 100644 --- a/mgetty/mgetty-1.1.30/50-pending-voice-zoom-2949l-c +++ b/mgetty/mgetty-1.1.30/50-pending-voice-zoom-2949l-c @@ -0,0 +1,145 @@ +--- mgetty-1.1.30.orig/voice/libvoice/Lucent.c 2001-04-13 04:01:44.000000000 -0700 ++++ mgetty-1.1.30/voice/libvoice/Lucent.c 2003-09-07 14:58:41.000000000 -0700 +@@ -66,6 +66,7 @@ + + static int Lucent_set_compression (int *compression, int *speed, int *bits) + { ++ char buffer[VOICE_BUF_LEN]; + reset_watchdog(); + + if (*compression == 0) +@@ -86,7 +87,8 @@ + return(FAIL); + } + +- if (voice_command("AT+VSM=128", "OK") != VMA_USER_1) ++ sprintf(buffer, "AT+VSM=128,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) + return(FAIL); + + break; +@@ -100,8 +102,8 @@ + return(FAIL); + } + +- +- if (voice_command("AT+VSM=129", "OK") != VMA_USER_1) ++ sprintf(buffer, "AT+VSM=129,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) + return(FAIL); + + break; +@@ -115,8 +117,8 @@ + return(FAIL); + } + +- +- if (voice_command("AT+VSM=130,8000", "OK") != VMA_USER_1) ++ sprintf(buffer, "AT+VSM=130,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) + return(FAIL); + + break; +@@ -130,24 +132,27 @@ + voice_modem_name, *speed); + return(FAIL); + } +- if (voice_command("AT+VSM=131,8000", "OK") != VMA_USER_1) +- return(FAIL); +- +- break; ++ sprintf(buffer, "AT+VSM=131,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) ++ return(FAIL); ++ ++ break; + + case 5: + *bits = 4; + +- if ( *speed != 8000 ) ++ if ((*speed != 8000) && (*speed != 7200) && (*speed != 11025)) + { + lprintf(L_WARN, "%s: Illegal sample rate (%d)", + voice_modem_name, *speed); + return(FAIL); + } +- if (voice_command("AT+VSM=132,8000", "OK") != VMA_USER_1) +- return(FAIL); + +- break; ++ sprintf(buffer, "AT+VSM=132,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) ++ return(FAIL); ++ ++ break; + + default: + lprintf(L_WARN, "%s: Illegal voice compression method (%d)", +--- mgetty-1.1.30.orig/voice/pvftools/pvftormd.c 2002-11-19 07:39:34.000000000 -0800 ++++ mgetty-1.1.30/voice/pvftools/pvftormd.c 2003-09-07 14:11:26.000000000 -0700 +@@ -535,12 +535,13 @@ + { + header_out.bits = 4; + +- if (header_in.speed != 8000) ++ if ((header_in.speed != 7200) && (header_in.speed != 8000) && ++ (header_in.speed != 11025)) + { + fprintf(stderr, "%s: Unsupported sample speed (%d)\n", + program_name, header_in.speed); + fprintf(stderr, +- "%s: The Lucent only supports 8000 samples/second\n", ++ "%s: The Lucent only supports 7.2k, 8k and 11.025k samples/second\n", + program_name); + fclose(fd_out); + +--- mgetty-1.1.30.orig/voice/libvoice/V253modem.c 2002-11-25 13:14:51.000000000 -0800 ++++ mgetty-1.1.30/voice/libvoice/V253modem.c 2003-09-11 08:40:51.000000000 -0700 +@@ -177,26 +177,26 @@ + case 2: /* 2bit ADPCM for some ELSA-modems */ + { + *bits = 2; +- if (voice_command("AT+VSM=140,7200", "OK")!= VMA_USER_1) +- { ++ sprintf(buffer, "AT+VSM=140,%d", *speed); ++ if (voice_command(buffer, "OK") != VMA_USER_1) ++ { + /* there are two diffrent implementations trying one first, + if this fails we try the other one later */ +- Kompressionmethod = 129; +- } +- else +- { +- Kompressionmethod = 140; +- } +- *speed=7200; ++ Kompressionmethod = 129; ++ } ++ else ++ { ++ Kompressionmethod = 140; ++ } + break; + } + case 4: /* 4bit ADPCM for some ELSA-modems */ + { +- if (voice_command("AT+VSM=141,7200", "OK")!= VMA_USER_1) ++ sprintf(buffer, "AT+VSM=141,%d", *speed); ++ if (voice_command(buffer, "OK")!= VMA_USER_1) + { + /* there are two diffrent implementations trying one first, + if this fails we try the other one later */ +- + Kompressionmethod = 131; + } + else +@@ -204,7 +204,6 @@ + Kompressionmethod = 141; + } + *bits=4; +- *speed=7200; + break; + } + case 5: + diff --git a/mgetty/mgetty-1.1.30/51-pending-faxq-time b/mgetty/mgetty-1.1.30/51-pending-faxq-time index e69de29bb2..f2538344b5 100644 --- a/mgetty/mgetty-1.1.30/51-pending-faxq-time +++ b/mgetty/mgetty-1.1.30/51-pending-faxq-time @@ -0,0 +1,10 @@ +--- mgetty-1.1.30.orig/fax/faxq.in Sat Nov 23 19:57:59 2002 ++++ mgetty-1.1.30.orig/fax/faxq.in Sun Sep 28 17:59:40 2003 +@@ -100,6 +100,7 @@ + }' -` + $echo "$i:" + $echo "\tQueued by: $USER" ++ $echo "\t at: "`find $(dirname $i)/${PAGES%% *} -printf "%Ax %AH:%AM\n"` + if [ -z "$VERBTO" ] + then + $echo "\t to: $PHONE" diff --git a/mgetty/mgetty-1.1.30/52-pending-metamail b/mgetty/mgetty-1.1.30/52-pending-metamail index e69de29bb2..37d0764745 100644 --- a/mgetty/mgetty-1.1.30/52-pending-metamail +++ b/mgetty/mgetty-1.1.30/52-pending-metamail @@ -0,0 +1,88 @@ +diff -urN mgetty-1.1.30~/samples/new_fax.mime3 mgetty-1.1.30/samples/new_fax.mime3 +--- mgetty-1.1.30~/samples/new_fax.mime3 2003-09-23 22:11:05.000000000 +1000 ++++ mgetty-1.1.30/samples/new_fax.mime3 2003-09-23 22:20:41.000000000 +1000 +@@ -13,8 +13,8 @@ + # image/x-fax-g3; viewfax -geometry +5+23 '%s'; test=test -n "$DISPLAY" + # image/x-fax-g3;; print=printfax '%s' + # +-# You need the program mmencode for base64 encoding of the fax data, +-# which you will find in your metamail distribution. ++# You need the program base64-encode for base64 encoding of the fax data, ++# which you will find in your mime-codecs package. + # + # (c) 1997-1998 Roland Rosenfeld <roland@spinnaker.rhein.de> + # +@@ -65,7 +65,7 @@ + echo "" >> $TMPMAIL + + # base64 encoder: +- mmencode -b $file >> $TMPMAIL ++ base64-encode < $file >> $TMPMAIL + + echo "" >> $TMPMAIL + done +@@ -75,4 +75,4 @@ + # Send out the created mail: + sendmail $ADMIN < $TMPMAIL + +-exit 0 +\ No newline at end of file ++exit 0 +diff -urN mgetty-1.1.30~/samples/new_fax.mime4 mgetty-1.1.30/samples/new_fax.mime4 +--- mgetty-1.1.30~/samples/new_fax.mime4 2003-09-23 22:11:05.000000000 +1000 ++++ mgetty-1.1.30/samples/new_fax.mime4 2003-09-23 22:21:09.000000000 +1000 +@@ -19,8 +19,8 @@ + # MIME tools as possible. + # + # This 'new_fax' only needs ' g32pbm', 'pnmscale' and 'pnmtotiff' from the +-# 'pbmplus' package, 'mmencode' from the 'multimail' packages, and the rest +-# is standard Unix tools. ++# 'pbmplus' package, 'base64-encode' from the 'mime-codecs' packages, and ++# the rest is standard Unix tools. + # It was tested with thsmail under Linux and PMMail under OS/2 as frontends. + + # This script is called when a message was recorded. +@@ -50,8 +50,7 @@ + CAT=cat + ECHO=echo + G3TOPBM=g32pbm +-#MMENCODE=mmencode +-MMENCODE=mimencode ++MMENCODE=base64-encode + RM=rm + SED=sed + SENDMAIL=sendmail +@@ -136,7 +135,7 @@ + # + # Here we do base64 encoding of out TIFF data and add the result + # into our MIME mail as attachment. +- $MMENCODE -b $IMAG_FILE >> $MIME_MESS 2>> $ERRO_MESS ++ $MMENCODE < $IMAG_FILE >> $MIME_MESS 2>> $ERRO_MESS + # + # To clean up temporary TIFF data. + $RM -f $IMAG_FILE +diff -urN mgetty-1.1.30~/samples/new_fax.tiff mgetty-1.1.30/samples/new_fax.tiff +--- mgetty-1.1.30~/samples/new_fax.tiff 2003-09-23 22:11:05.000000000 +1000 ++++ mgetty-1.1.30/samples/new_fax.tiff 2003-09-23 22:19:32.000000000 +1000 +@@ -12,7 +12,7 @@ + # script. The following script combines all received pages to one + # tiff-file which is sent to all recipients beeing in the alias for fax. + # Reading the fax is quite easy with Netscape when the tiffsurf-plugin is +-# installed. ++# installed. You need the metamail package for metasend. + # + # As the script may be usefull for someone I'll post it here. It's quite + # short (and perhaps not that elegant...), but for me it works great. +diff -urN mgetty-1.1.30~/voice/scripts/new_voice.craig_southern mgetty-1.1.30/voice/scripts/new_voice.craig_southern +--- mgetty-1.1.30~/voice/scripts/new_voice.craig_southern 2003-09-23 22:11:05.000000000 +1000 ++++ mgetty-1.1.30/voice/scripts/new_voice.craig_southern 2003-09-23 22:13:28.000000000 +1000 +@@ -50,7 +50,7 @@ + echo Content-Transfer-Encoding: base64 >> $tempfn + echo Content-Disposition: attachment\; filename=\"$pagefn\" >> $tempfn + echo "">> $tempfn +-/usr/bin/mimencode $outputfn >> $tempfn ++/usr/bin/base64-encode < $outputfn >> $tempfn + + #rm -f $fn + rm -f $outputfn + diff --git a/mgetty/mgetty-1.1.30/debian.patch b/mgetty/mgetty-1.1.30/debian.patch index e69de29bb2..1dd9ff2b9d 100644 --- a/mgetty/mgetty-1.1.30/debian.patch +++ b/mgetty/mgetty-1.1.30/debian.patch @@ -0,0 +1,923 @@ +--- mgetty-1.1.30.orig/doc/faxrunqd.8in ++++ mgetty-1.1.30/doc/faxrunqd.8in +@@ -276,23 +276,25 @@ + behaviour, you can send it the following signals: + + .TP +-.B SIGHUP +-.TP + .B SIGINT + .TP + .B SIGTERM + remove lock file, remove pid file, terminate immediately. + + .TP ++.B SIGHUP ++finish all fax jobs that are currently being sent, then terminate (this ++is used to signal faxrunqd "I want you to terminate" without disturbing ++the normal flow of operation - SIGINT/TERM etc. can lead to some faxes being ++sent twice). ++ ++.TP + .B SIGUSR1 + close, roll, and re-open log file. + + .TP + .B SIGUSR2 +-finish all fax jobs that are currently being sent, then terminate (this +-is used to signal faxrunqd "I want you to terminate" without disturbing +-the normal flow of operation - SIGHUP etc. can lead to some faxes being +-sent twice). ++dump current modem success/failure statistics to log file. + + .IX fax + .SH BUGS +--- mgetty-1.1.30.orig/doc/mgetty.8in ++++ mgetty-1.1.30/doc/mgetty.8in +@@ -42,10 +42,13 @@ + .B -p <login prompt> + Use the given string to prompt users for their login names. Various + tokens are allowed in this string. These tokens are: @ for the system +-name, \\n, \\r, \\g, \\v, \\f, \\t for newline, carriage return, bell, +-vertical tab, form feed, and tab, respectively. \\P and \\L will expand to +-the tty name ("ttyS0"). \\I will give the "CONNECT foobar" string returned ++name, \\n, \\r, \\g, \\b, \\v, \\f, \\t for newline, carriage return, bell, ++backspace, vertical tab, form feed, and tab, respectively. ++\\P and \\L will expand to the tty name ("ttyS0"). \\Y will give the Caller ++ID, \\I the "CONNECT foobar" string returned + by the modem, and \\S will output the port speed. ++\\s, \\m, \\V, \\R represent the operating system, the hardware name, ++the OS version, the OS release. + \\N and \\U give the number of users currently logged in. + \\C will be changed into the result of ctime(), and \\D and \\T will + output the date and time, respectively. Finally, \\<digit> will use digit +--- mgetty-1.1.30.orig/doc/mgetty.texi-in ++++ mgetty-1.1.30/doc/mgetty.texi-in +@@ -1,6 +1,6 @@ + \input texinfo @c -*-texinfo-*- + @c %**start of header +-@c $Id$ (c) 1993-2000 Gert Doering and Klaus Weidner ++@c $Id$ (c) 1993-2000 Gert Doering and Klaus Weidner + @setfilename mgetty.info + @settitle mgetty + sendfax + @c %**end of header +@@ -1096,6 +1096,9 @@ + @samp{/etc/issue}. Some special characters are substituted by connect + speed, date, etc. - see below (login-prompt) for a list. + ++Note: maximum line length after substitution is 300 characters, so be ++careful with ASCII art banners with lots of color settings and such. ++ + @item @code{prompt-waittime} @var{msecs} + + This specifies how long @code{mgetty} will wait for modem and line to +@@ -1117,6 +1120,10 @@ + @item \b backspace (ascii 010) + @item \f form feed (ascii 013) + @item \t TAB ++@item \s operating system (OS) ++@item \m hardware name ++@item \V OS version ++@item \R OS release + @item \P (and \L) port name (e.g. ttyS0) + @item \C date and time, in "ctime()" format + @item \I Connection string (e.g. 2400/REL) +@@ -1128,7 +1135,7 @@ + @item \@var{digit} character with the specified octal code + @end itemize + +-The maximum lenght of the login prompt is limited to 140 characters (after ++The maximum lenght of the login prompt is limited to 300 characters (after + expansion). + + @item @code{login-time} @var{secs} +@@ -3039,11 +3046,22 @@ + implemented since Linux 2.4.10, or in earlier Versions with Jan + Oberlaender's patch + (http://www.stud.uni-karlsruhe.de/~uslk/i4l-callednumber.tar.gz). ++(@strong{NOTE}: This doesn't seem to work for at least Linux 2.4.20 ++as shipped by RedHat 8.0 - anyone with some details??!) + + Alternatively, you can set @code{ATS23.0=1}. This will make i4l signal +-the dialed MSN number as @code{RING/12345}. Unfortunately, it will be +-recognized by mgetty as caller ID, not destination MSN, so you might need +-to do some fiddling with 'ring.c' to get this fixed. ++the dialed MSN number as @code{RING/12345}. This was problematic in the ++past, as lots of other modems have a similar format to report the Caller ID ++(like @code{RING;4321} in ELSA modems) but recent mgetty versions handle ++this properly. With this, you can run a single mgetty instance for all ++your telephone numbers: just set @code{AT&L*} in your init string - this ++tells isnd4linux that @strong{all} incoming calls are to be signalled ++to mgetty, not only specific MSN. ++ ++@c init-chat "" ATZ OK AT&L* OK ATS23.0=1S23.2=1S0=0 OK ++@c fax-only yes ++@c rings 2 ++@c modem-quirks 1 + + For the full list of available AT commands, consult the i4l docs + (for example in @file{/usr/src/linux/Documentation/isdn/README}. +@@ -3063,8 +3081,9 @@ + + There's a small catch: modem autodetection will make mgetty think that + your ttyI device doesn't support fax (because most cards can't do it). So +-you need to set @code{modem-type c2.0} in @file{mgetty.config} and/or +-@file{sendfax.config} to force class 2.0 mode. ++you need to set @code{modem-type cls} in @file{mgetty.config} and/or ++@file{sendfax.config} to force class 2 mode. Class 2.0 mode is not ++supported. + + Voice support with @code{vgetty} should work (use your ttyI device + as an answering machine, etc.). I have not tried it yet - talk to the +--- mgetty-1.1.30.orig/fax/faxspool.in ++++ mgetty-1.1.30/fax/faxspool.in +@@ -3,7 +3,7 @@ + # faxspool - sample script how to spool fax input data to a spool + # directory, creating jobs to be run by faxrunq + # +-# sccsid: $Id$ (c) Gert Doering ++# sccsid: $Id$ (c) Gert Doering + # + # syntax: faxspool [flags] <phone-number> <job(s)> + # +@@ -26,6 +26,15 @@ + # 3.10.93: use "hp2hig3" for hp-pcl4-files (cl) + # 19.10.93: phone directories (caz) + # $Log$ + # Revision 1.3 2004-11-09 00:36:47 handhelds.org!kergoth + # Turn off EOLN_NATIVE flag + # + # (Logical change 1.4593) + # ++# Revision 4.25 2003/06/28 20:44:04 gert ++# reset umask after creating temp directory ++# ++# Revision 4.24 2003/04/09 21:05:14 gert ++# fix case of "faxing without header" (-h -) - wasn't copying G3 files ++# ++# Revision 4.23 2003/01/21 13:27:12 gert ++# abort if input file names contain whitespace or quote characters ++# + # Revision 4.22 2002/11/23 15:14:57 gert + # revert 4.14 -> 4.15 change: faxqueue_done is now back in $FAX_SPOOL_OUT + # (new permission concept, faxrunq/faxrunqd no longer running as root) +@@ -577,11 +586,15 @@ + fi + + # +-# check, if all the files exist & are readable ++# check, if all the file names are "clean", that the files exist & are readable + # + + for file + do ++ if [ `echo "$file" | tr -d ' \011\012\015\047\140"' ` != "$file" ] ++ then ++ $echo "$0: invalid characters in file name '$file'!" >&2 ; exit 5 ++ fi + if [ ! -r $file -a x$file != x- ] + then + $echo "$0: cannot open '$file'!" >&2 ; exit 5 +@@ -617,12 +630,14 @@ + # + spooldir=${TMP:-/tmp}/$new_seq.$$.`date +%S` + ++oldumask=`umask` + umask 077 + if mkdir $spooldir ; then + $echo "spooling to $spooldir (->$new_seq)..." + else + $echo "ERROR: can't create work dir '$spooldir', giving up" >&2 ; exit 6 + fi ++umask $oldumask + + # + # process all input files +@@ -847,22 +862,23 @@ + fi + + # +-# concatenate header with pages ++# concatenate header with pages (optionally) and copy over to spool dir + # +-if [ -z "$FAX_HEADER" ] ++if [ -n "$FAX_HEADER" ] + then +- finalpg="$pages" # don't :) +-else + $echo "\nPutting Header lines on top of pages..." + + hdrfont=$PBMFONT_HEADER_F + test -z "$normal_res" || hdrfont=$PBMFONT_HEADER_N ++fi + +- finalpg="" +- for f in $pages +- do ++finalpg="" ++for f in $pages ++do + nr=`expr $nr + 1` + ++ if [ -n "$FAX_HEADER" ] ++ then + cat $FAX_HEADER | sed -e "s;@T@;$phone;g" -e "s;@P@;$nr;g" \ + -e "s;@M@;$maxnr;g" -e "s;@U@;$USER;g" \ + -e "s;@N@;$FULLNAME;g" \ +@@ -873,9 +889,13 @@ + | g3cat - $f | \ + $FAXQ_HELPER input $new_seq f$nr.g3 \ + && rm $f ++ else ++ g3cat $f | \ ++ $FAXQ_HELPER input $new_seq f$nr.g3 \ ++ && rm $f ++ fi + finalpg="$finalpg f$nr.g3" +- done +-fi # end "if ! -z $FAX_HEADER" ++done + + if [ -z "$finalpg" -a -z "$poll_req" ] + then +--- mgetty-1.1.30.orig/fax/faxrunqd.in ++++ mgetty-1.1.30/fax/faxrunqd.in +@@ -9,10 +9,19 @@ + # + # initial version: Feb 17, 1997 + # +-$rcs_id='RCS: $Id$'; ++$rcs_id='RCS: $Id$'; + # + # Change Log: ++# + # $Log$ + # Revision 1.3 2004-11-09 00:36:47 handhelds.org!kergoth + # Turn off EOLN_NATIVE flag + # + # (Logical change 1.4593) + # ++# Revision 1.65 2003/01/14 14:16:09 gert ++# include "total success" counter in the per_phone_statistics ++# ++# Revision 1.64 2003/01/07 14:48:52 gert ++# If a job is re-queued, heavily penalize previously used modem. ++# This way, a defective modem (or a modem that has problems connecting to ++# just a few destination numbers) has less impact on overall stability. ++# + # Revision 1.63 2002/11/23 16:52:18 gert + # make messages more clear, print warning if running as root + # +@@ -608,6 +617,7 @@ + # - no other job for this phone number already queued + # - this modem must be allowed for that job + # - if multiple queues allowed, take the shortest one ++# - the modem used previously is heavily penalized + # + # called whenever a job's $queue{$job}->{status} changes to 'active' + # +@@ -661,6 +671,9 @@ + @{$queue{$j}->{ttys}} : @standard_ttys; + + # find tty with the shortest queue (among those that are allowed) ++ # ++ # the previously used modem always gets a queue len of "9998", and is ++ # thus only used if no other modem is available + my $min_l = 9999; + my $min_t = $ttys[0]; + +@@ -674,9 +687,12 @@ + $tty_in_use{$t}=0; + } + +- if ( $mq_length{$t}+$mq_badness{$t} < $min_l ) ++ my $this_q_len = ( $t eq $queue{$j}->{last_modem} ) ? 9998 : ++ $mq_length{$t}+$mq_badness{$t}; ++ ++ if ( $this_q_len < $min_l ) + { +- $min_l = $mq_length{$t}+$mq_badness{$t}; $min_t = $t; ++ $min_l = $this_q_len; $min_t = $t; + } + } + +@@ -701,7 +717,7 @@ + $queue{$j}->{weight} = 1 + scalar( @{$queue{$j}->{pages}} ); + $mq_length{$min_t} += $queue{$j}->{weight}; + +- print LOG "$j: possible ttys: " . join( ':', @ttys ) . " -> queue selected: $min_t (l: $min_l->" . $mq_length{$min_t} . ")\n" if $opt_d; ++ print LOG "$j: possible ttys: " . join( ':', @ttys ) . " last: ". $queue{$j}->{last_modem} . " -> queue selected: $min_t (l: $min_l->" . $mq_length{$min_t} . ")\n" if $opt_d; + + # rotate @standard_ttys, to distribute load more evenly among modems + push @standard_ttys, (shift @standard_ttys); +@@ -804,6 +820,7 @@ + } + + $queue{$job}->{'tries'} = $queue{$job}->{'tries_c'} = 0; ++ $queue{$job}->{'last_modem'} = 'unknown'; + + while( <J> ) + { +@@ -1264,15 +1281,13 @@ + $tty_statistics{$t}{total}++; + $tty_statistics{$t}{$ex}++; + +- # and, in case of errors, for per-remote-phone statistics +- if ( $ex > 0 ) +- { ++ # and for per-remote-phone statistics + my $ph = $queue{$j}->{'phone'}; +- if ( ! defined( $per_phone_statistics{$ph} ) || +- ! defined( $per_phone_statistics{$ph}{$ex} ) ) ++ if ( ! defined( $per_phone_statistics{$ph} ) ) ++ { $per_phone_statistics{$ph}{0} = 0; } ++ if ( ! defined( $per_phone_statistics{$ph}{$ex} ) ) + { $per_phone_statistics{$ph}{$ex} = 0; } + $per_phone_statistics{$ph}{$ex}++; +- } + + # now handle return codes. This is tricky if multiple jobs have been + # combined into one sendfax call - might have failed in the middle... +@@ -1443,6 +1458,9 @@ + my $fstr = ( $ex<10 )? "failed" : "FATAL FAILURE"; + &wstat( $j, "Status " . localtime() . " $fstr, exit($ex): $verb_ex\n"); + ++ # remember tty used (try to get another one for next call) ++ $queue{$j}->{last_modem} = $tty; ++ + # write acct.log + &wacct($j, "fail $ex: $verb_ex"); + +@@ -1704,7 +1722,7 @@ + foreach $t (keys %tty_statistics) + { + print LOG "modem statistics for tty '$t'\n"; +- print LOG " total faxes sent: ${tty_statistics{$t}{'total'}}\n"; ++ print LOG " total fax calls : ${tty_statistics{$t}{'total'}}\n"; + print LOG " total success : ${tty_statistics{$t}{'0'}}\n"; + foreach (sort(keys %{$tty_statistics{$t}})) + { +@@ -1719,8 +1737,10 @@ + foreach $t (sort (keys %per_phone_statistics)) + { + print LOG "error statistics for remote number '$t'\n"; ++ print LOG " total success : ${per_phone_statistics{$t}{'0'}}\n"; + foreach (sort(keys %{$per_phone_statistics{$t}})) + { ++ next if ( $_ eq '0' ); + printf LOG " error code %-2d : %d [%s]\n", + $_, $per_phone_statistics{$t}{$_}, + $exitcodes[$_]; +--- mgetty-1.1.30.orig/fax/faxrm.in ++++ mgetty-1.1.30/fax/faxrm.in +@@ -7,7 +7,7 @@ + # There are still a lot rough edges - but it works, and should give you an + # idea how to improve it + # +-# SCCS: $Id$ Copyright (C) 1994 Gert Doering ++# SCCS: $Id$ Copyright (C) 1994 Gert Doering + + FAX_SPOOL=@FAX_SPOOL@ + FAX_SPOOL_OUT=@FAX_SPOOL_OUT@ +@@ -16,7 +16,7 @@ + echo="@ECHO@" + # + # helper program for privileged queue access +-FAXQ_HELPER=/usr/local/lib/mgetty+sendfax/faxq-helper ++FAXQ_HELPER=@LIBDIR@/faxq-helper + # + + if [ ! -d $FAX_SPOOL_OUT ] +--- mgetty-1.1.30.orig/fax/faxq-helper.c ++++ mgetty-1.1.30/fax/faxq-helper.c +@@ -71,6 +71,8 @@ + int fax_out_uid; /* user ID to chown() fax jobs to */ + int fax_out_gid; /* group ID ... */ + ++#define ROOT_UID 0 /* root's user ID - override checks */ ++ + #define FAX_SEQ_FILE ".Sequence" + #define FAX_SEQ_LOCK "LCK..seq" + +@@ -370,7 +372,7 @@ + + while( *p != '\0' ) + { +- if ( *p != '.' && *p != ':' && ! isalnum(*p) ) ++ if ( *p == '/' || *p == '\\' || isspace(*p) || !isprint(*p) ) + { + eout( "invalid char. '%c' in file name '%s', abort\n", + *p, outfilename ); +@@ -386,7 +388,7 @@ + + sprintf( pathbuf, "%s/%s", dir1, outfilename ); + +- fd = open( pathbuf, O_WRONLY | O_CREAT | O_EXCL, 0600 ); ++ fd = open( pathbuf, O_WRONLY | O_CREAT | O_EXCL, 0644 ); + if ( fd < 0 ) + { + eout( "can't open '%s' for writing: %s\n", pathbuf, strerror(errno)); +@@ -543,6 +545,9 @@ + + sprintf( buf, "%s/JOB", dir1 ); + ++ /* the JOB file has to be world-readable, relax umask */ ++ umask( 0022 ); ++ + /* TODO: check if this portably catches symlinks to non-existant files! */ + if ( ( fd = open( buf, O_WRONLY | O_CREAT | O_EXCL, 0644 ) ) < 0 ) + { +@@ -571,7 +576,8 @@ + + if ( strncmp(buf, "user ", 5) == 0 ) + { +- if ( strcmp( buf+5, real_user_name ) != 0 ) ++ if ( real_user_id != ROOT_UID && ++ strcmp( buf+5, real_user_name ) != 0 ) + { + eout( "user name mismatch (%s <-> %s)\n", buf+5, real_user_name ); + break; +@@ -678,7 +684,8 @@ + + if ( strncmp(buf, "user ", 5) == 0 ) + { +- if ( strcmp( buf+5, real_user_name ) != 0 ) ++ if ( real_user_id != ROOT_UID && ++ strcmp( buf+5, real_user_name ) != 0 ) + { + fprintf( stderr, "%s: not your job, can't do anything (%s <-> %s)\n", jfile, buf+5, real_user_name ); + unlink( lfile ); +@@ -803,8 +810,11 @@ + + /* common things to check and prepare */ + +- /* directories and JOB files have to be readable */ +- umask(0022); ++ /* make sure people do not play umask tricks on us - the only ++ * bits that are accepted in a user umask are "044" - permit/prevent ++ * read access by group/other. Write access is always denied. ++ */ ++ umask( ( umask(0) & 0044 ) | 0022 ); + + /* get numeric uid/gid for fax user */ + pw = getpwnam( FAX_OUT_USER ); +--- mgetty-1.1.30.orig/TODO ++++ mgetty-1.1.30/TODO +@@ -352,6 +352,8 @@ + 246) fix "RING/<msn>" handling for i4l + + 248) include script to rotate/move log files on a regular basis ++ (base on contrib/mvlog, move to tools/, run through sedscript for ++ location and naming for the log files) + + 250) move prototype for time() to mgetty.h, remove everywhere else + +@@ -373,3 +375,37 @@ + + 257) generalize calling $(MAKE) in subdirs - put all $(MAKE) arguments + in one common variable ++ ++261) faxrunqd: don't count "modem locked" as "failure" for a given job ++ (but *do* delay by a certain time) ++ (hmmm - maybe not. If all modems are locked for a long period of ++ time, it might be useful to flag the fax as "failed" to get people to ++ notice. Combine with 259 - should resolve problem) ++ ++262) faxrunqd: smarter algorithm for "modem is broken" ++ (locked = doesn't count, can't init = +1, NO CARRIER = +0.2) ++ ++263) faxspool.rules: add sample mappings for PDF (via acroread, xpdf, ++ recent ghostscript versions) ++ ++264) faxrunqd: timeout on "hanging" sendfax processes ++ (timeout > 15 min + 5 minutes * number of pages, or something like that) ++ ++265) faxrunqd: write tty to acct.log (format change / WEB gui) ++ ++260) faxrunqd: bump up priority of "exit 12" jobs ++266) faxunrqd: if a job fails half-way through (12), increase priority ++ to re-send missing parts quickly ++ ++267) faxrunqd: sort per-modem statistics numerically (watchout: "total") ++ ++268) faxrunq+faxrunqd: have configurable counters for ++ "send-a-warning after <x> tries, fail after <y>" ++ have separate counter for "modem-locked" ++ costing-failures tries-except-modem-locked total-tries ++ warning - 10 10 ++ failure 5 30 100 ++ ++269) faxrunqd: have configurable threshold for "everything is broken" ++ -> if that threshold is reached, generate STOP file, warning e-mail, ++ and suspend itself (like "the local in-house PABX is broken") +--- mgetty-1.1.30.orig/Makefile ++++ mgetty-1.1.30/Makefile +@@ -1,6 +1,6 @@ + # Makefile for the mgetty fax package + # +-# SCCS-ID: $Id$ (c) Gert Doering ++# SCCS-ID: $Id$ (c) Gert Doering + # + # 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".). +@@ -213,6 +213,7 @@ + FAX_SPOOL_OUT=$(FAX_SPOOL)/outgoing + # + # the user that owns the "outgoing fax queue" (FAX_SPOOL_OUT) ++# this user must exist in the system, otherwise faxspool will not work! + # + # faxrunq and faxrunqd should run under this user ID, and nothing else. + # This user needs access to the modems of course. +@@ -300,8 +301,8 @@ + # Nothing to change below this line ---------------------------------! + # + MR=1.1 +-SR=30 +-DIFFR=1.1.29 ++SR=31 ++DIFFR=1.1.30 + # + # + OBJS=mgetty.o logfile.o do_chat.o locks.o utmp.o logname.o login.o \ +@@ -511,7 +512,7 @@ + ssh home.leo.org -l doering 'cd $$HOME ; ./beta' + + # send to Marc and Knarf +- head -30 ChangeLog |mail -s "mgetty$(MR).$(SR).tar.gz on greenie/alpha" knarf@camelot.de marc marcs ++ head -30 ChangeLog |mail -s "mgetty$(MR).$(SR).tar.gz on greenie/alpha" mgetty@knarf.de marc marcs + # -./ftp.sh $(MR).$(SR) ftp.camelot.de /pub/incoming + # -./ftp.sh $(MR).$(SR) poseidon.thphy.uni-duesseldorf.de /incoming + +@@ -600,9 +601,9 @@ + # data files + directories + # + test -d $(LIBDIR) || \ +- ( ./mkidirs $(LIBDIR) ; chmod 755 $(LIBDIR) ) ++ ( ./mkidirs $(LIBDIR) && chmod 755 $(LIBDIR) ) + test -d $(CONFDIR) || \ +- ( ./mkidirs $(CONFDIR); chmod 755 $(CONFDIR)) ++ ( ./mkidirs $(CONFDIR) && chmod 755 $(CONFDIR)) + test -f $(CONFDIR)/login.config || \ + $(INSTALL) -o root -m 600 login.config $(CONFDIR)/ + test -f $(CONFDIR)/mgetty.config || \ +@@ -627,17 +628,17 @@ + # fax spool directories + # + test -d $(spool) || \ +- ( mkdir $(spool) ; chmod 755 $(spool) ) ++ ( mkdir $(spool) && chmod 755 $(spool) ) + test -d $(FAX_SPOOL) || \ +- ( mkdir $(FAX_SPOOL) ; \ +- chown $(FAX_OUT_USER) $(FAX_SPOOL) ; \ ++ ( mkdir $(FAX_SPOOL) && \ ++ chown $(FAX_OUT_USER) $(FAX_SPOOL) && \ + chmod 755 $(FAX_SPOOL) ) + test -d $(FAX_SPOOL_IN) || \ +- ( mkdir $(FAX_SPOOL_IN) ; chmod 755 $(FAX_SPOOL_IN) ) ++ ( mkdir $(FAX_SPOOL_IN) && chmod 755 $(FAX_SPOOL_IN) ) + test -d $(FAX_SPOOL_OUT) || \ +- ( mkdir $(FAX_SPOOL_OUT) ; \ +- chown $(FAX_OUT_USER) $(FAX_SPOOL_OUT) ; \ +- chmod 755 $(FAX_SPOOL_OUT) ) ++ mkdir $(FAX_SPOOL_OUT) ++ chown $(FAX_OUT_USER) $(FAX_SPOOL_OUT) ++ chmod 755 $(FAX_SPOOL_OUT) + # + # g3 tool programs + # +--- mgetty-1.1.30.orig/voice/libutil/access.c ++++ mgetty-1.1.30/voice/libutil/access.c +@@ -5,7 +5,7 @@ + * exactly one unnested call to voice_desimpersonify() for each + * voice_impersonify() because of the static umask below. + * +- * $Id$ ++ * $Id$ + * + */ + +@@ -32,14 +32,14 @@ + &gid); + + if (setegid(gid)) { +- lprintf(L_WARN, "%s: cannot set effective GID to %d", +- program_name, gid); ++ lprintf(L_WARN, "%s: cannot set effective GID to %d: %s", ++ program_name, gid, strerror(errno)); + return 0; + } + + if (seteuid(uid)) { +- lprintf(L_WARN, "%s: cannot set effective UID to %d", +- program_name, uid); ++ lprintf(L_WARN, "%s: cannot set effective UID to %d: %s", ++ program_name, uid, strerror(errno)); + return 0; + } + +@@ -52,14 +52,14 @@ + + int voice_desimpersonify(void) { + if (seteuid(getuid())) { +- lprintf(L_WARN, "%s: cannot switch back to effective UID %d", +- program_name, getuid()); ++ lprintf(L_WARN, "%s: cannot switch back to effective UID %d: %s", ++ program_name, getuid(), strerror(errno)); + return 0; + } + + if (setegid(getgid())) { +- lprintf(L_WARN, "%s: cannot switch back to effective GID %d", +- program_name, getgid()); ++ lprintf(L_WARN, "%s: cannot switch back to effective GID %d: %s", ++ program_name, getgid(), strerror(errno)); + return 0; + } + +--- mgetty-1.1.30.orig/voice/libvoice/V253modem.c ++++ mgetty-1.1.30/voice/libvoice/V253modem.c +@@ -16,7 +16,7 @@ + Hint: Recorded voice files are in .ub format (refer to the sox manpage about this) except the header. + So you can use this files with sox. + * +- * $Id$ ++ * $Id$ + * + */ + +@@ -352,7 +352,7 @@ + + /* Only verifies the RMD name */ + #define V253modem_RMD_NAME "V253modem" +-#define ELSA_RMD_NAME "ELSA" ++#define ELSA_RMD_NAME "Elsa" + int V253_check_rmd_adequation(char *rmd_name) + { + return !strncmp(rmd_name, +--- mgetty-1.1.30.orig/faxrecp.c ++++ mgetty-1.1.30/faxrecp.c +@@ -94,13 +94,13 @@ + + #ifdef SHORT_FILENAMES + sprintf(temp, "%s/f%c%07x%s.%02d", directory, +- fax_par_d.vr == 0? 'n': 'f', ++ (fax_par_d.vr == 0 || fax_par_d.vr == 8) ? 'n': 'f', + (int) call_start & 0xfffffff, + DevId, pagenum ); + #else + /* include sender's fax id - if present - into filename */ + sprintf(temp, "%s/f%c%07x%s-", directory, +- fax_par_d.vr == 0? 'n': 'f', ++ (fax_par_d.vr == 0 || fax_par_d.vr == 8) ? 'n': 'f', + (int) call_start & 0xfffffff, + DevId ); + i = strlen(temp); +--- mgetty-1.1.30.orig/logfile.c ++++ mgetty-1.1.30/logfile.c +@@ -3,13 +3,6 @@ + #include <stdio.h> + #include <unistd.h> + #include <fcntl.h> +-#ifdef USE_VARARGS +-# if !defined(NeXT) || defined(NEXTSGTTY) +-# include <varargs.h> +-# endif +-#else +-# include <stdarg.h> +-#endif + #include <sys/types.h> + #include <time.h> + #include <errno.h> +@@ -19,6 +12,15 @@ + #include "mgetty.h" + #include "policy.h" + ++/* this must be included after ugly.h (sets USE_VARARGS on non-ANSI cc's) */ ++#ifdef USE_VARARGS ++# if !defined(NeXT) || defined(NEXTSGTTY) ++# include <varargs.h> ++# endif ++#else ++# include <stdarg.h> ++#endif ++ + #ifdef SYSLOG + #include <syslog.h> + +--- mgetty-1.1.30.orig/faxlib.c ++++ mgetty-1.1.30/faxlib.c +@@ -178,8 +178,10 @@ + + if ( line[ix+1] == ',' && /* +FPS:s,lc,blc */ + sscanf( &line[ix+2], +- (modem_type==Mt_class2_0)?"%x,%x,%x,%x" +- :"%d,%d,%d,%d", ++ ( modem_type == Mt_class2 || ++ (modem_quirks & MQ_FPS_NOT_HEX) ) ++ ?"%d,%d,%d,%d" ++ :"%x,%x,%x,%x", + &fhs_lc, &fhs_blc, &fhs_cblc, &fhs_lbc ) >= 2 ) + { + lprintf( L_NOISE, "%d lines received, %d lines bad, %d bytes lost", fhs_lc, fhs_blc, fhs_lbc ); +@@ -636,7 +638,7 @@ + case 1445: + lprintf( L_MESG, "USR Courier/Sportster v32bis detected (buggy fax implementation)" ); + modem_type=Mt_class2_0; +- modem_quirks |= MQ_USR_FMINSP; ++ modem_quirks |= MQ_USR_FMINSP | MQ_FPS_NOT_HEX; + break; + case 2886: + case 3361: +@@ -645,17 +647,20 @@ + case 3367: + lprintf( L_MESG, "USR Courier/Sportster V.34(+) detected" ); + modem_type=Mt_class2_0; ++ modem_quirks |= MQ_FPS_NOT_HEX; + mis = mdm_get_idstring( "ATI3", 1, fd ); + break; + case 5601: + case 5607: + lprintf( L_MESG, "USR Courier/Sportster 56k detected" ); + modem_type=Mt_class2_0; ++ modem_quirks |= MQ_FPS_NOT_HEX; + mis = mdm_get_idstring( "ATI3", 1, fd ); + break; + case 6401: + lprintf( L_MESG, "USR I-Modem detected" ); + modem_type=Mt_class2_0; ++ modem_quirks |= MQ_FPS_NOT_HEX; + mis = mdm_get_idstring( "ATI3", 1, fd ); + break; + case 62: /* sure? */ +@@ -813,6 +818,7 @@ + { + lprintf( L_MESG, "USR Courier/Sportster V90 (national variant?) detected" ); + modem_type=Mt_class2_0; ++ modem_quirks |= MQ_FPS_NOT_HEX; + mis = mdm_get_idstring( "ATI3", 1, fd ); + } + /* grrr, another one of those - Bill Nugent <whn@topelo.lopi.com> */ +@@ -835,6 +841,12 @@ + modem_type=Mt_class2; + modem_quirks |= MQ_NEED2; + } ++ else if ( strncmp( l, "LT V.92", 7 ) == 0 ) /* gert */ ++ { ++ lprintf( L_MESG, "Multitech MT5634ZBA-V92 detected" ); ++ modem_type=Mt_class2_0; ++ modem_quirks |= MQ_FPS_NOT_HEX; ++ } + } + + if ( mis != NULL ) +--- mgetty-1.1.30.orig/faxrec.c ++++ mgetty-1.1.30/faxrec.c +@@ -208,7 +208,7 @@ + fprintf( pipe_fp, "\nModem device: %s\n", Device ); + fprintf( pipe_fp, "\nCommunication parameters: %s\n", fax_param ); + fprintf( pipe_fp, " Resolution : %s\n", +- fax_par_d.vr == 0? "normal" :"fine"); ++ (fax_par_d.vr == 0 || fax_par_d.vr == 8) ? "normal" :"fine"); + fprintf( pipe_fp, " Bit Rate : %d\n", ( fax_par_d.br+1 ) * 2400 ); + fprintf( pipe_fp, " Page Width : %d pixels\n", fax_par_d.wd == 0? 1728: + ( fax_par_d.wd == 1 ? 2048: 2432 ) ); +--- mgetty-1.1.30.orig/logname.c ++++ mgetty-1.1.30/logname.c +@@ -51,7 +51,7 @@ + + char * ln_escape_prompt _P1( (ep), char * ep ) + { +-#define MAX_PROMPT_LENGTH 140 ++#define MAX_PROMPT_LENGTH 300 + static char * p = NULL; + int i; + static struct utsname un; +@@ -191,7 +191,7 @@ + + if ( *ep != 0 ) + { +- lprintf( L_WARN, "buffer overrun - input prompt too long" ); ++ lprintf( L_WARN, "ln_escape_prompt: input line too long - data truncated" ); + } + + return p; +--- mgetty-1.1.30.orig/README.1st ++++ mgetty-1.1.30/README.1st +@@ -72,7 +72,7 @@ + + Generic questions ("it doesn't work") should go to the mgetty mailing list + (mgetty@muc.de), because I just don't have time to explain it all again +-and again. ++and again. (Un-)Subscription is done via mgetty-request@muc.de. + + And... please do not forget that I'm doing this kind of support entirely + in my spare time - sometimes my answers will be very short, or it may +--- mgetty-1.1.30.orig/ugly.h ++++ mgetty-1.1.30/ugly.h +@@ -38,5 +38,10 @@ + #define const + #define volatile + ++/* <stdarg.h> and function(fmt,...) is incompatible with K&R protoypes */ ++#ifndef USE_VARARGS ++# define USE_VARARGS ++#endif ++ + #endif + +--- mgetty-1.1.30.orig/ChangeLog ++++ mgetty-1.1.30/ChangeLog +@@ -1,3 +1,79 @@ ++Wed Aug 20 12:39:53 MEST 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxrunqd.in: change signal handling - use HUP for graceful ++ exit, and dump statistics to logfile upon receipt of USR2 ++ ++Sat Jun 28 22:14:35 MEST 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxq-helper.c: honour user umask when spooling G3 files ++ (user decides whether group/other can read faxes) ++ ++ * fax/faxspoool.in: reset umask after creating tmpdir (with umask 077) ++ ++ * fax/faxq-helper.c: file name validation was overly strict - ++ accept anything that's printable, not a space, '/' or '\' ++ ++Thu Jun 12 16:56:44 MEST 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * faxlib.c: Multitech and USR return class 2.0/2.1 +FPS:<x>,<lc> ++ values in decimal, not hex -> change +FPS: parser to do decimal ++ for those modems (via modem_quirks |= MQ_FPS_NOT_HEX) ++ ++ * fax_lib.h: add MQ_FPS_NOT_HEX modem quirk bit ++ ++ * faxrec.c, faxrecp.c: understand VR=8 for "normal mode" (200x100 dpi) ++ ++Mon Apr 28 19:41:14 MEST 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * logname: make "buffer overrun" error message more precise ++ ++Wed Apr 23 10:49:25 MEST 2003 John R. Jackson <jrj@purdue.edu> ++ ++ * voice/libutil/access.c: more verbose error reporting ++ ++Wed Apr 9 23:05:23 MEST 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxspool.in: fix spooling without header line (-h -) ++ ++Sun Apr 6 16:09:14 MEST 2003 Andreas Barth <aba@not.so.argh.org> ++ ++ * mgetty.8in, mgetty.texi-in: document escape sequences for ++ /etc/issue and login prompt. ++ ++Wed Mar 5 21:37:38 MET 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * Makefile: abort "make install" before installing faxspool ++ if fax user does not exist ++ ++ * Makefile: unconditionally chown $FAX_SPOOL_OUT to fax user ++ ++Tue Feb 4 17:46:45 MET 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxq-helper.c: uid=0 overrides access permission checks ++ ++ * fax/faxrm.in: bugfix: get faxq-helper path from sedscript ++ ++Tue Jan 21 14:27:39 MET 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxspool.in: abort with a proper error message on input file ++ names containing white space or quote characters ++ ++Tue Jan 14 14:30:42 MET 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxrunqd.in: include "success" counter in per_phone_statistics ++ ++ * ugly.h: #define USE_VARARGS for non-Ansi C compilers ++ ++ * logfile.c: change #include<> sequence to catch USE_VARARGS def. ++ ++Wed Jan 8 23:03:26 MET 2003 Gert Doering (gert@greenie.muc.de) ++ ++ * fax/faxrunqd.in: if a fax job fails, reschedule on different ++ modem (if possible) ++ ++ * voice/libvoice/V253modem.c: fix ELSA_RMD_NAME (used for ++ V.253 modem <-> other modem RMD equivalency checks) ++ + Mon Dec 16 14:08:06 MET 2002 Gert Doering (gert@greenie.muc.de) + + * release 1.1.30 +--- mgetty-1.1.30.orig/version.h ++++ mgetty-1.1.30/version.h +@@ -1 +1 @@ +-char * mgetty_version = "experimental test release 1.1.30-Dec16"; ++char * mgetty_version = "experimental test release 1.1.31-Sep23"; +--- mgetty-1.1.30.orig/fax_lib.h ++++ mgetty-1.1.30/fax_lib.h +@@ -102,3 +102,6 @@ + #define MQ_NO_XON 0x08 /* do not wait for XON char when sending */ + #define MQ_USR_FMINSP 0x20 /* USR: +FCC=1,<max> sets MIN speed instead */ + #define MQ_SHOW_NSF 0x40 /* set AT+FNR=1,1,1,1 (with NSFs) */ ++#define MQ_FPS_NOT_HEX 0x80 /* +FPS:<status>,<lc> reported as decimal */ ++ ++/* note: 0x100 and 0x200 currently used for teergrubing - faxrecp.c */ diff --git a/mgetty/mgetty-1.1.30/install.patch b/mgetty/mgetty-1.1.30/install.patch index e69de29bb2..f5a81e6840 100644 --- a/mgetty/mgetty-1.1.30/install.patch +++ b/mgetty/mgetty-1.1.30/install.patch @@ -0,0 +1,133 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- mgetty-1.1.30/Makefile~install ++++ mgetty-1.1.30/Makefile +@@ -170,10 +170,13 @@ + # if your systems doesn't have one, use the shell script that I provide + # in "inst.sh" (taken from X11R5). Needed on IRIX5.2 + INSTALL=install -c +-#INSTALL=install -c -o root -g wheel # NeXT/BSD ++#INSTALL=install -c -g wheel # NeXT/BSD + #INSTALL=/usr/ucb/install -c -o bin -g bin # AIX, Solaris 2.x + #INSTALL=installbsd -c -o bin -g bin # OSF/1, AIX 4.1, 4.2 + #INSTALL=/usr/bin/X11/bsdinst -c -o bin # IRIX ++ ++# tool to strip binaries ++STRIP=strip + # + # prefix, where most (all?) of the stuff lives, usually /usr/local or /usr + # +@@ -586,6 +589,8 @@ + + install: install.bin install.doc + ++install.doc: install.man install.info ++ + install.bin: mgetty sendfax newslock \ + login.config mgetty.config sendfax.config + # +@@ -597,8 +602,10 @@ + -test -d $(SBINDIR) || ( ./mkidirs $(SBINDIR) ; chmod 755 $(SBINDIR) ) + -mv -f $(SBINDIR)/mgetty $(SBINDIR)/mgetty.old + -mv -f $(SBINDIR)/sendfax $(SBINDIR)/sendfax.old +- $(INSTALL) -s -m 755 mgetty $(SBINDIR) +- $(INSTALL) -s -m 755 sendfax $(SBINDIR) ++ $(INSTALL) -m 755 mgetty $(SBINDIR) ++ $(STRIP) $(SBINDIR)/mgetty ++ $(INSTALL) -m 755 sendfax $(SBINDIR) ++ $(STRIP) $(SBINDIR)/sendfax + # + # data files + directories + # +@@ -607,15 +614,15 @@ + test -d $(CONFDIR) || \ + ( ./mkidirs $(CONFDIR) && chmod 755 $(CONFDIR)) + test -f $(CONFDIR)/login.config || \ +- $(INSTALL) -o root -m 600 login.config $(CONFDIR)/ ++ $(INSTALL) -m 600 login.config $(CONFDIR)/ + test -f $(CONFDIR)/mgetty.config || \ +- $(INSTALL) -o root -m 600 mgetty.config $(CONFDIR)/ ++ $(INSTALL) -m 600 mgetty.config $(CONFDIR)/ + test -f $(CONFDIR)/sendfax.config || \ +- $(INSTALL) -o root -m 644 sendfax.config $(CONFDIR)/ ++ $(INSTALL) -m 644 sendfax.config $(CONFDIR)/ + test -f $(CONFDIR)/dialin.config || \ +- $(INSTALL) -o root -m 600 dialin.config $(CONFDIR)/ ++ $(INSTALL) -m 600 dialin.config $(CONFDIR)/ + test -f $(CONFDIR)/faxrunq.config || \ +- $(INSTALL) -o root -m 644 faxrunq.config $(CONFDIR)/ ++ $(INSTALL) -m 644 faxrunq.config $(CONFDIR)/ + # + # test for outdated stuff + # +@@ -630,37 +637,36 @@ + # fax spool directories + # + test -d $(spool) || \ +- ( mkdir $(spool) && chmod 755 $(spool) ) ++ ( mkdir -p $(spool) && chmod 755 $(spool) ) + test -d $(FAX_SPOOL) || \ +- ( mkdir $(FAX_SPOOL) && \ +- chown $(FAX_OUT_USER) $(FAX_SPOOL) && \ ++ ( mkdir -p $(FAX_SPOOL) && \ + chmod 755 $(FAX_SPOOL) ) + test -d $(FAX_SPOOL_IN) || \ +- ( mkdir $(FAX_SPOOL_IN) && chmod 755 $(FAX_SPOOL_IN) ) ++ ( mkdir -p $(FAX_SPOOL_IN) && chmod 755 $(FAX_SPOOL_IN) ) + test -d $(FAX_SPOOL_OUT) || \ +- mkdir $(FAX_SPOOL_OUT) +- chown $(FAX_OUT_USER) $(FAX_SPOOL_OUT) ++ mkdir -p $(FAX_SPOOL_OUT) + chmod 755 $(FAX_SPOOL_OUT) + # + # g3 tool programs + # + cd g3 ; $(MAKE) install INSTALL="$(INSTALL)" \ + BINDIR=$(BINDIR) \ +- LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR) ++ LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR) STRIP=$(STRIP) + # + # fax programs / scripts / font file + # + cd fax ; $(MAKE) install INSTALL="$(INSTALL)" \ + FAX_OUT_USER=$(FAX_OUT_USER) \ + BINDIR=$(BINDIR) SBINDIR=$(SBINDIR) \ +- LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR) ++ LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR) STRIP=$(STRIP) + # + # compatibility + # + if [ ! -z "$(INSTALL_MECHO)" ] ; then \ + cd compat ; \ + $(CC) $(CFLAGS) -o mg.echo mg.echo.c && \ +- $(INSTALL) -s -m 755 mg.echo $(BINDIR) ; \ ++ $(INSTALL) -m 755 mg.echo $(BINDIR) ; \ ++ $(STRIP) $(BINDIR)/mg.echo ; \ + fi + + # +--- mgetty-1.1.30/fax/Makefile~install ++++ mgetty-1.1.30/fax/Makefile +@@ -61,7 +61,6 @@ + done + $(INSTALL) -m 755 faxrunqd $(SBINDIR) + $(INSTALL) faxq-helper $(LIBDIR) +- chown $(FAX_OUT_USER) $(LIBDIR)/faxq-helper + chmod 4711 $(LIBDIR)/faxq-helper + # + # data files +--- mgetty-1.1.30/g3/Makefile~install ++++ mgetty-1.1.30/g3/Makefile +@@ -37,7 +37,8 @@ + # install programs + # + for f in $(G3_PROGRAMS) ; do \ +- $(INSTALL) -s -m 755 $$f $(BINDIR) ; \ ++ $(INSTALL) -m 755 $$f $(BINDIR) ; \ ++ $(STRIP) $(BINDIR)/$$f ; \ + done + # + # make symlink for "g3topbm" (so third-party fax viewers won't fail) diff --git a/mgetty/mgetty-1.1.30/policy.h b/mgetty/mgetty-1.1.30/policy.h index e69de29bb2..8db0dff407 100644 --- a/mgetty/mgetty-1.1.30/policy.h +++ b/mgetty/mgetty-1.1.30/policy.h @@ -0,0 +1,602 @@ +#ident "@(#)policy.h 4.3 97/06/05 Copyright (c) Gert Doering" + +/* this is the file where all configuration defaults for mgetty / sendfax + * are specified. + * + * defaults are used if no values are given in the config file(s). + * config file values can be overridden by command line options. + * + * see mgetty.texi/mgetty.info for a description of the configuration files. + */ + +/* main mgetty configuration file + */ +#define MGETTY_CONFIG "mgetty.config" + +/* sendfax configuration file + * + * if path doesn't start with "/", it's relative to CONFDIR (Makefile) + * if not defined, no configuration file is read (saves a few kbytes) + */ +#define SENDFAX_CONFIG "sendfax.config" + + +/* login dispatcher config file (for mgetty) + * + * In this file, you can configure which "login" program (default /bin/login) + * to call for what user name. + * + * You could use it to call "uucico" for all users starting with "U*" + * (works only with Taylor UUCP 1.04 with my patch), or to call a fido + * mailer for fido calls (only if -DFIDO defined)... + * See the samples in the example login.config file (built from login.cfg.in). + * + * WARNING: make sure that this file isn't world-accessable (SECURITY!) + * + * If you want to call /bin/login in any case, do not define this + * + * If this doesn't start with "/", it's relative to CONFDIR. + */ +#define LOGIN_CFG_FILE "login.config" + +/* default login program + * + * If LOGIN_CFG_FILE is not defined, or does not exist, or doesn't + * have a default entry, this program is called for user logins. + * Normally, this is "/bin/login", just a few systems put "login" + * elsewhere (e.g. Free/NetBSD in "/usr/bin/login"). + */ +#define DEFAULT_LOGIN_PROGRAM "/bin/login" + + +/* callback config file + * + * this file controls the operation of the optional "callback" program. + * how callback works, is explained in detail in mgetty.texi. You need + * to set LOGIN_CFG_FILE (see above) to use callback from mgetty. + * + * If this path does not start with "/", it's relative to CONFDIR. + */ +#define CALLBACK_CONFIG "callback.config" + + +/* if this file exists, it can be used to control what callers + * are allowed in. If undefined, the functionality is omitted. + * It will work only if your modem supports it. Check the modem manual. + * For Rockwell-Based modems, add #CID=1 to MODEM_INIT_STRING, for + * ZyXELs use S40.2=1. + * If the path doesn't start with "/", it's relative to CONFDIR. + */ +#define CNDFILE "dialin.config" + + +/* If you want to use /etc/gettydefs to set tty flags, define this + * I recommend against it, I suspect some bugs lingering in that code + * (and one doesn't really need it in a normal setup anyway). + */ +/* #define USE_GETTYDEFS */ + +/* Name of the "gettydefs" file (used only if USE_GETTYDEFS is set) + */ +#define GETTYDEFS "/etc/gettydefs" + +/* If no gettydefs "tag" is specified on the command line, use + * this setting (from GETTYDEFS) as default (only if compiled with + * USE_GETTYDEFS set) + */ +#define GETTYDEFS_DEFAULT_TAG "n" + + +/* access modes */ + +/* user id of the "uucp" user. The tty device will be owned by this user, + * so parallel dial-out of uucico will be possible + */ +#define DEVICE_OWNER "root" +/* group id that the device is chown()ed to. If not defined, the + * primary group of "DEVICE_OWNER" is used. + */ +#define DEVICE_GROUP "dialout" + +/* access mode for the line while getty has it - it should be accessible + * by uucp / uucp, but not by others (imagine someone dialing into your + * system and using another modem to dial to another country...) + */ +#define FILE_MODE 0660 + +/* security: optionally, mgetty can system() this, to kill any dangling + * processes on the current tty. A %s is replaced with the tty device. + * NOT NEEDED on SCO, SunOS 4 or Linux! + */ +/* #define EXEC_FUSER "exec fuser -k -f %s >/dev/null 2>&1" */ + + +/* logging */ + +/* system console - if a severe error happens at startup, mgetty writes + * a message to this file and aborts + * On SCO, this may be /dev/syscon! + */ +#define CONSOLE "/dev/console" + +/* Name of the mgetty log file + * e.g. "/usr/spool/log/mgetty.log.%s" or "/tmp/log_mg.%s" + * a "%s" will be replaced by the device name, e.g. "tty2a" + * + * if the directory does not exist, the log file goes to CONSOLE (!) + */ +#define LOG_PATH "/var/log/mgetty/mg_%s.log" + +/* Default log error level threshold. Possible error levels are + * L_FATAL, L_ERROR, L_WARN, L_AUDIT, L_MESG, L_NOISE, L_JUNK (see mgetty.h) + */ +#define LOG_LEVEL L_MESG + +/* Whether "\n"s in the modem response should start a new line + * in the logfile + */ +/* #define LOG_CR_NEWLINE */ + +/* System administrator - if a severe error happens (lprintf called + * with log_level L_FATAL) and writing to CONSOLE is not possible, + * the logfile will be mailed to him + */ +#define ADMIN "root" + +/* Syslog + * + * If you want logging messages of type L_AUDIT, L_ERROR and L_FATAL + * to go to the "syslog", define this. + * mgetty will use the facility "LOG_AUTH", and the priorities + * LOG_NOTICE, LOG_ERR and LOG_ALERT, respectively. + */ +#define SYSLOG + +/* Syslog facility + * + * This is the facility mgetty uses for logging. Ususally, this will be + * LOG_AUTH, but on some systems, this may not exist, try LOG_DAEMON + * instead (or look into the syslog manpage for available options) + */ +#define SYSLOG_FC LOG_AUTH + +/* login stuff */ + +/* System name - printed at login prompt + * If you do not define this, the uname() call will be used + */ +/* #define SYSTEM "greenie" */ + +/* Login prompt + * The "@", "\\D" and "\\T" escapes will be replaced by SYSTEM, the + * current date and time, respectively. + * override with "-p <prompt>" switch + */ +#define LOGIN_PROMPT "@ login: " + +/* On SVR4, maybe on other systems too, you can cause the 'login' program + * to prompt with the same string as mgetty did, instead of the standard + * "login:" prompt. The string will be passed to the 'login' program + * in the environment variable TTYPROMPT. + * This is done by putting "login" into a special (brain-dead) "ttymon"- + * compatibility mode. In that mode, mgetty doesn't ask for a login name + * at all, so mgetty won't work if you enable that feature and your + * login program doesn't support it. (You can see if it doesn't work + * if the user gets a double login prompt or none at all). + * + * This feature automatically disables FIDO and AutoPPP support! + * + * To use this feature, define ENV_TTYPROMPT. + */ +/* #define ENV_TTYPROMPT */ + +/* Maximum time before login name has to be entered (in seconds) + * (after that time a warning will be issued, after that, the call is + * dropped). To disable that feature, do not define it. + */ +#define MAX_LOGIN_TIME 240 + +/* nologin file + * + * If that file exists, a ringing phone won't be answered (see manual). + * "%s" will be replaced by the device name. + */ +#define NOLOGIN_FILE "/etc/nologin.%s" + + +/* misc */ + +/* how to find mgetty.. + * + * If you define this, mgetty will create a file with the given name and + * put its process ID in it. A "%s" will be replaced by the device id. + * + * Depending on your system, "/var/run/mgetty.%d" might be a good place. + */ +#define MGETTY_PID_FILE "/var/run/mg-pid.%s" + +/* Path for the lock files. A %s will be replaced with the device name, + * e.g. tty2a -> /usr/spool/uucp/LCK..tty2a + * Make sure that this is the same file that your uucico uses for + * locking! + */ + +/* for a few systems, you can just take those defaults and be happy */ +#if defined (SVR4) || defined(sunos4) +# define LOCK_PATH "/var/spool/locks" +# define LOCK "/var/spool/locks/LCK..%s" +#else +# ifdef sgi +# define LOCK "/usr/spool/locks/LCK..%s" +# endif +# ifdef _AIX +# define LOCK "/etc/locks/LCK..%s" +# endif +# ifdef NeXT +# define LOCK "/usr/spool/uucp/LCK/LCK..%s" +# endif +# ifdef linux +# define LOCK "/var/lock/LCK..%s" +# endif +#endif + +/* if your system isn't listed above, change that line here */ +#ifndef LOCK +#define LOCK "/var/lock/LCK..%s" +#endif + +/* Set this to "1" if your system uses binary lock files (i.e., the pid + * as four byte integer in host byte order written to the lock file) + * If it is "0", HDB locking will be used - the PID will be written as + * 10 byte ascii, with a trailing newline + * (Just check "LOCK" while uucico or pcomm or ... are running to find + * out what lock files are used on your system) + * On NeXT systems, you must set this to "1". + */ +#define LOCKS_BINARY 0 + +/* Lower case locks - change the last character of the device name + * to lowercase for locking purposes. + * + * If you're using a SCO Unix system with those "tty1a/tty1A" device + * pairs, you'll have to define this. + */ +/* #define LOCKS_LOWERCASE */ + +/* Change _all_ characters to lowercase (currently no system uses this) */ +/* #define LOCKS_ALL_LOWERCASE */ + + +/* the default speed used by mgetty - override it with "-s <speed>" + * + * WARNING: this is a bit tricky, since some modems insist on going to + * 19200 bps when in fax mode. So, if fax receiving with a port speed of + * something else doesn't work, try experimenting with FAX_RECV_SWITCHBD, + * and if that doesn't help, try DEFAULT_PORTSPEED 19200 + * + * WARNING2: Speeds higher than 38400 aren't supported on all platforms, + * and sometimes you have to use "50" to get 57600 or so! + */ +#define DEFAULT_PORTSPEED 38400 + +/* the modem initialization string + * + * the default string should set up most hayes compatible modems into a + * fairly sane state (echo on, verbose reports on, quiet off, reset on + * DTR toggle on), but it doesn't set any flow control options (because + * that's done differently on each modem, look into your manual for commands + * like &H3, &K4, \Q6 or similar things) or protocols. + * + * You can change the initialization sequence with the "init-chat" keyword + * in "mgetty.config". + * + * If you need delays, specify them as "\\d", if you want to send a + * backslash ('\'), give it as "\\\\". + * + * Very IMPORTANT: make sure that the modem assigns the DCD line properly, + * usually this is done with the AT&C1 command! + * + * The modem must answer with "OK" (!!!) - otherwise, use "init-chat". + */ +#define MODEM_INIT_STRING "AT" + +/* command termination string + * + * for most modems, terminating the AT... command with "\r" is + * sufficient and "\r\n" also works without doing harm. + * Unfortunately, for the Courier HST, you've to use *only* \r, + * otherwise ATA won't work (immediate NO CARRIER), and for some + * (old) ZyXELs, you have to use \r\n (no OK otherwise). + * So, try one, and if it doesn't work, try the other. + */ +#define MODEM_CMD_SUFFIX "\r" + +/* "keep alive" + * + * mgetty can periodically check whether the modem is still alive + * by issueing an "AT\r" command and checking for the "OK" + * Define here, in seconds, how often mgetty should check. For normal + * reliable modems, once an hour should be sufficient... + * If you use "-1", or don't define this at all, mgetty won't check. + */ +#define MODEM_CHECK_TIME 3600 + + +/* modem mode + * + * DEFAULT_MODEMTYPE specifies the default way mgetty+sendfax handle a + * faxmodem. You have four choices: + * "data" - data only, no faxing available (for sendfax, equal to "auto") + * "cls2" - use AT+FCLASS=2 + * "c2.0" - use AT+FCLASS=2.0 + * "auto" - try "2.0", then "2", then fall to "data". + * + * Normally, you can leave this to "auto", but if you have a modem that + * can do class 2.0 and class 2, and 2.0 doesn't work, then you could try + * setting it to "cls2". + * You can override this define with the "-C <mode>" switch. + */ +#define DEFAULT_MODEMTYPE "auto" + + +/* some modems are a little bit slow - after sending a response (OK) + * to the host, it will take some time before they can accept the next + * command - specify the amount needed in data mode here (in + * milliseconds). Normally, 50 ms should be sufficient. (On a slow + * machine it may even work without any delay at all) + * + * Be warned: if your machine isn't able to sleep for less than one + * second, this may cause problems. + */ +#define DO_CHAT_SEND_DELAY 50 + /* and this is the delay before sending each command while in fax mode + */ +#define FAX_COMMAND_DELAY 50 + +/* incoming faxes will be chown()ed to this uid and gid. + * if FAX_IN_GROUP is undefined, the group of ...OWNER is used. + */ +#define FAX_IN_OWNER "root" +#define FAX_IN_GROUP "fax" + +/* incoming faxes will be chmod()ed to this mode + * (if you do not define this, the file mode will be controlled by + * mgetty's umask) + */ +#define FAX_FILE_MODE 0660 + +/* FLOW CONTROL + * + * There are basically two types of flow control: + * - hardware flow control: pull the RTS/CTS lines low to stop the other + * side from spilling out data too fast + * - sofware flow control: send an Xoff-Character to tell the other + * side to stop sending, send an Xon to restart + * obviously, use of Xon/Xoff has the disadvantage that you cannot send + * those characters in your data anymore, but additionally, hardware flow + * control is normally faster and more reliable + * + * mgetty can use multiple flow control variants: + * FLOW_NONE - no flow control at all (absolutely not recommended) + * FLOW_HARD - use RTS/CTS flow control (if available on your machine) + * FLOW_SOFT - use Xon/Xoff flow control, leave HW lines alone + * FLOW_BOTH - use both types simultaneously, if possible + * + * Note that few operating systems allow both types to be used together. + * + * mgetty won't (cannot!) notice if your settings don't work, but you'll + * see it yourself: you'll experience character losses, garbled faxes, + * low data throughput,..., if the flow control settings are wrong + * + * If in doubt what to use, try both and compare results. + * (if you use FAS or SAS with the recommended settings, FLOW_HARD is a + * "don't care" since the driver will use RTS/CTS anyway) + * + * If you use an atypical system, check whether tio_set_flow_control in + * tio.c does the right thing for your system. + */ + +/* This is the flow control used for normal data (login) connections + * Set it to FLOW_HARD except in very special cases. + */ +#define DATA_FLOW FLOW_HARD + +/* This is the flow control used for incoming fax connections + * Wrong settings will result in missing lines or erroneous lines + * in most of the received faxes. + * Most faxmodems expect Xon/Xoff, few honour the RTS line. + */ +#define FAXREC_FLOW FLOW_HARD | FLOW_SOFT + +/* And this is for sending faxes + * + * Wrong settings here will typically result in that the first few + * centimeters of a transmitted fax look perfect, and then (the buffer + * has filled up), the rest is more or less illegible junk. + * For most faxes, this has to be FLOW_SOFT, though the Supra and ZyXEL + * modems will (sometimes) do hardware flow control, too. Try it. + * + * If you see a large number of [11] and [13] characters in the sendfax + * log file, your modem is propably doing software flow control - and + * you've definitely set FAXSEND_FLOW to FLOW_HARD... + * + * Some versions of SCO Unix have a "weird" serial driver that will only + * do half duplex hardware flow control. You will then run into the problem + * that fax sending will time out after the first page sent (no ACK received) + * and fail if FLOW_HARD is used. Use FLOW_SOFT instead. + */ +#define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT + +/* if your faxmodem switches port bit rate just after sending the "+FCON" + * message to the host, define this to contain the baudrate used. (Not + * important if you have the portspeed set to this value anyway). + * + * Most Rockwell-based modems need FAX_RECV_SWITCHBD 19200. + * ZyXELs do *not* need this, except if explicitely told to do so. + * + * You can see if this is set wrong if mgetty gets the "+FCON" response, + * starts the fax receiver, and times out waiting for OK, receiving + * nothing or just junk. + */ +/* #define FAX_RECV_SWITCHBD 19200 */ + +/* some genius at US Robotics obviously decided that the above method + * of switching baud rates is broken, and came up with something new + * --- broken as well (why bother switching rates at all?) --- this + * and other USR Courier Fax follies will be handled by enabling the + * following define (if you have an USR faxmodem that does *not* need + * this, please send me a mail!) + * It seems as if the newest V.34 modems do not need this anymore, please + * try it out... + */ +/* #define FAX_USRobotics */ + +/* name of the logfile for outgoing faxes (e.g. /var/log/sendfax.log) + */ +#define FAX_LOG "/var/log/mgetty/fax/sendfax.log" + +/* local station ID (your fax number) + * 20 character string, most faxmodem allow all ascii characters 32..127, + * but some do only allow digits and blank + * AT+FLID=? should tell you what's allowed and what not. + */ +#define FAX_STATION_ID " " + +/* ------ sendfax-specific stuff follows here -------- */ + +/* the baudrate used for *sending* faxes. ZyXELs can handle 38400, + * SUPRAs (and many other rockwell-based faxmodems) can not. + * I recommend 38400, since 19200 may be to slow for 14400 bps faxmodems! + */ +#define FAX_SEND_BAUD 38400 + +/* switch baud rate after +FCLASS=2 + * + * some weird modems require that you initialize the modem with one + * baud rate (e.g. 2400 or 9600 for cheap 2400+fax modems, or `smart' + * modems that insist on staying locked to 38400 (ELSA!)), but switch + * to another baud rate, typically 19200, immediately after receiving + * the "AT+FCLASS=2" command. + * + * If the following is defined, sendfax will switch to the speed given + * here after sending AT+FCLASS=2. + * + * Only try fiddling with this if sendfax times out during modem + * initialization, receiving junk instead of "OK" or "ERROR" (logfile!) + */ +/* #define FAX_SEND_SWITCHBD 19200 */ + +/* this is the command to set the modem to use the desired flow control. + * For hardware handshake, this could be AT&H3 for the ZyXEL, &K3 for + * Rockwell-Based modems or AT\\Q3&S0 for Exar-Based Modems (i.e. some GVC's) + * If you don't want extra initalization, do not define it. + * Don't forget the "AT"! + */ +/* #define FAX_MODEM_HANDSHAKE "AT&H3" */ + +/* This is the modem command used for dialing. The phone number will + * get appended right after the string. Normally, "ATD" or "ATDP" should + * suffice, but in some situations (company telephone systems) you might + * need something like "ATx0DT0wP" (switch of dial-tone recognition, tone- + * dial a "0", wait for dial-tone, pulse dial the rest) + */ +#define FAX_DIAL_PREFIX "ATD" + +/* When sending a fax, if the other side says "page bad, retrain + * requested", sendfax will retry the page. Specifiy here the maximum + * number of retries (I recommend 3) before hanging up. + * + * If you set it to "0", sendfax will *never* retransmit a page (only + * do this if you know that your modem returns +FPTS:2 even if the + * page arrived properly, but be warned - you wont' be able to react + * properly to transmission errors!) + * + * See also the description of the "max-tries" and "max-tries-continue" + * settings in the sendfax config file. + */ +#define FAX_SEND_MAX_TRIES 3 + +/* the device(s) used for faxing + * multiple devices can be separated by ":", e.g. "tty1a:tty2a" + * (with or without leading /dev/) + * If you don't adapt this for your needs, sendfax won't run (you can + * set it from the sendfax.config file, though)! + */ +#define FAX_MODEM_TTYS "ttyS1" + +/* some modems, notably some GVC modems, all USR models, and the german + * telecom approved ZyXEL EG+ have the annoying behaviour of lowering + * and raising the DCD line during the pre- and post-page handshake + * (when sending faxes). + * + * If your modem does this, sendfax will terminate immediately after + * starting to send the first page, or between the first and second + * page, and the fax log file will show something like + * "read failed, I/O error". + * + * If you define this, sendfax will (try to) ignore that line + */ + +/* #define FAX_SEND_IGNORE_CARRIER */ + +/* Xon or not? + * + * the first issues of the class 2 drafts required that the program waits + * for an Xon character before sending the page data. Later versions + * removed that. Sendfax can do both, default is to wait for it. + * + * If you get an error message "... waiting for XON" when trying to + * send a fax, try this one. Some ELSA modems are know to need it. + */ +/* #define FAXSEND_NO_XON */ + + +/* define mailer that accepts destination on command line and mail text + * on stdin. For mailers with user friendly interfaces, (such as mail, + * mailx, elm), include an appropriate subject line in the command + * definition. If using a mail agent (such as sendmail), that reads + * mail headers, define NEED_MAIL_HEADERS. + */ +#ifdef SVR4 +# define MAILER "/usr/bin/mailx -s 'Incoming facsimile message'" +#else +# ifdef _AIX +# define MAILER "/usr/sbin/sendmail" +# define NEED_MAIL_HEADERS +# endif +# ifdef M_UNIX /* SCO */ +# define MAILER "/usr/lib/mail/execmail" +# define NEED_MAIL_HEADERS +# endif +#endif + +#ifndef MAILER +# define MAILER "/usr/sbin/sendmail" +# define NEED_MAIL_HEADERS +#endif + +/* where to send notify mail about incoming faxes to + * (remember to create an mail alias if no such user exists!) + */ +#define MAIL_TO "root" + +/* after a fax has arrived, mgetty can call a program for further + * processing of this fax. + * + * (e.g.: printing of the fax, sending as MIME mail, displaying in an X + * window (the latter one could be tricky) ...) + * + * It will be called as: + * <program> <result code> "<sender_id>" <#pgs> <pg1> <pg2>... + * + * Define the name of this program here + * If you don't want this type of service, do not define it at all + * Absolute path name has to be used here! + */ +#define FAX_NOTIFY_PROGRAM "/etc/mgetty/new_fax" + +/* default minimum space required on spooling partition for receiving a FAX + * (in KILObytes) + */ +#define MINFREESPACE 1024 + diff --git a/mgetty/mgetty-1.1.30/voice-defs.h b/mgetty/mgetty-1.1.30/voice-defs.h index e69de29bb2..6fa17c9c44 100644 --- a/mgetty/mgetty-1.1.30/voice-defs.h +++ b/mgetty/mgetty-1.1.30/voice-defs.h @@ -0,0 +1,2 @@ +/* auto-generated from voice/include/default.h */ +#define VOICE_DIR "/var/spool/voice" |