home *** CD-ROM | disk | FTP | other *** search
- From: Raphael Manfredi <ram@acri.fr>
- Newsgroups: comp.sources.misc
- Subject: v44i086: mailagent - Flexible mail filtering and processing package, v3.0, Patch12
- Date: 22 Sep 1994 12:12:27 -0500
- Organization: Advanced Computer Research Institute, Lyon, France
- Sender: kent@sparky.sterling.com
- Approved: kent@sparky.sterling.com
- Message-ID: <35sdtr$r4c@sparky.sterling.com>
- X-Md4-Signature: 93670c16558ccb1d64409606a494f576
-
- Submitted-by: Raphael Manfredi <ram@acri.fr>
- Posting-number: Volume 44, Issue 86
- Archive-name: mailagent/patch12
- Environment: UNIX, Perl
- Patch-To: mailagent: Volume 41, Issue 1-26
-
- [The latest patch for mailagent version 3.0 is #16.]
-
- System: mailagent version 3.0
- Patch #: 12
- Priority: MEDIUM
- Subject: regenerated Configure with dist-3.0 PL35
- Subject: regenerated Makefile.SH with jmake 3.0 PL31
- Subject: new edusers script to edit users file
- Subject: created
- Subject: filter.sh now honours queuewait when defined
- Subject: new config parameters callout and linkdirs
- Subject: typo fix to enable correct lockfile timeout printing
- Subject: added fallback implementation for strcasecmp()
- Subject: made fatal() arguments long rather than int for 64-bit machines
- Subject: extended security checks to mimic those done by mailagent
- Subject: now performs &init_constants as soon as possible
- Subject: changed interface for &queue_mail to include first 2 letters
- Subject: context is loaded earlier to initialize callout queue
- Subject: added definition for $MAX_LINKS, $S_IWOTH, $S_IWGRP and &abs
- Subject: changed &email_addr to cache its result and not rely on $cf'user
- Subject: moved &init_signals to pl/signals.pl as &catch_signals
- Subject: new manual page for edusers
- Subject: documents new config parameters callout and linkdirs
- Subject: new filtering actions AFTER and DO
- Subject: variable msgpath is now defined within a PERL escape
- Subject: mention that PERL escape variables are available to new commands
- Subject: documents the edusers script and fuzzy address matching
- Subject: added fuzzy address matching to avoid duplicates
- Subject: detect hostile addresses before it is too late...
- Subject: detect strange status-change requests
- Subject: now performs locking before changing the users file
- Subject: inform user about unrecognized leave-alone requests
- Subject: optimize by not re-writing users file if not needed
- Subject: now updates new variable folder_saved with folder path
- Subject: added various escapes in strings for perl5 support
- Subject: create ~/agent.trace if unable to mail command trace back
- Subject: interface change for &qmail allows for better log messages
- Subject: implements new AFTER and DO filtering commands
- Subject: now escapes square brackets in strings for perl5
- Subject: defines new folder_saved variable to store folder path
- Subject: added escapes in strings for perl5 support
- Subject: builtins are now looked for in &run_builtins
- Subject: localized variables used by stat()
- Subject: added access routines to detect context changes
- Subject: context is now written back to disk only when changed
- Subject: added callout queue knowledge
- Subject: added the &do routine to support new DO filtering command
- Subject: replaced all deprecated 'do sub' calls with '&sub'
- Subject: typo prevented correct indexing in the @insert array
- Subject: propagated change to the &queue_mail interface
- Subject: added stubs for DO and AFTER commands
- Subject: local() statement was missing in &getdate parameters fetch
- Subject: added escapes in regexp for perl5 support
- Subject: mailhook package cleaning now done only for subroutines
- Subject: package name is separated with '::' in perl5
- Subject: added logging at level 25 to debug lexer
- Subject: better mismatched braces handling
- Subject: localized variables used by stat() and localtime()
- Subject: now knows about callout queue messages
- Subject: propagates folder_saved as msgpath in PERL escapes
- Subject: fixed regexp for perl5 support
- Subject: now updates folder_saved variable with file pathname
- Subject: ensures the newcmd file is secure
- Subject: propagates glob for folder_saved
- Subject: removed useless test which prevented correct processing
- Subject: builtins handled in &run_builtins to allow re-entrance
- Subject: changed interface of &qmail and &queue_mail for wider usage
- Subject: do not attempt parsing of config if variable is undefined
- Subject: lock rule cache before reading to prevent from concurrent updates
- Subject: new DO and AFTER commands
- Subject: symbolic directories are now specially handled
- Subject: new -m option to monitor agentlog changes via atail
- Subject: added regression tests for DO
- Subject: added callout queue file definition
- Subject: now checks that callout messages are properly listed
- Subject: added minimal support for perl5 dataloading
- Subject: updated with metaconfig 3.0 PL35
- Subject: nine new files
- Date: Thu Sep 22 16:43:34 MET DST 1994
- From: Raphael Manfredi <ram@acri.fr>
-
- Description:
- Regenerated Configure with dist-3.0 PL35 and most Makefile.SH
- files with jmake 3.0 PL31.
-
- New edusers script to edit users file. The package command now
- performs locking of the users file and edusers should be used
- instead of a direct 'vi users' to ensure consistency and avoid
- concurrent updating in the background.
-
- filter.sh now honours queuewait when defined. The C filter already
- did but since I don't use filter.sh, I sometimes forget about it.
-
- New config parameters callout and linkdirs. The callout parameter
- must be defined if you wish to make use of the new AFTER command.
- The linkdirs parameters controls security checks when facing a
- symbolic directory. When set to ON, mailagent will actively try
- to determine wether files under this symbolic link are secure.
-
- Typo fix in C filter to enable correct lockfile timeout printing.
-
- Added fallback implementation for strcasecmp() in case it is not
- present in the libc.
-
- Made fatal() arguments long rather than int for 64-bit machines
- in the C filter. Hope this won't break filter on 16-bit machines.
- If it does, please let me know ASAP and we'll find something else.
-
- Extended security checks in the C filter to mimic those done by
- mailagent.
-
- New filtering actions AFTER and DO. The AFTER command enables you
- to install a callback for later, after a specified date. The DO
- command lets you call an arbitrary perl routine and is to be
- construed as a low-level access to mailagent's internal.
-
- Actually, combining AFTER and DO via the mailhook interface may be
- useful to perform actions one a timeout has expired. For instance,
- an automatic unsharing command could send a warning after 2 days
- if some of the parts are still missing. Please refer to the
- manual page for syntax details.
-
- Variable $msgpath is now defined within a PERL escape and refers
- to the internal new $folder_saved variable. It points to the
- path of the last saved message/folder.
-
- The mailagent manual page now mentions that PERL escape variables
- are available to user-defined commands, albeit in the newcmd package
- instead of mailhook.
-
- The package command now performs fuzzy address matching to avoid
- duplicates, and tries to detect hostile addresses before it is too
- late... Strange status-change requests are now logged and the users
- file is locked before updating.
-
- The package command will send an error message when faced with a
- leave-alone request for someone who has not been properly registered,
- including a list of the closest e-mail addresses known so far.
-
- Added various escapes in strings and regular expressions for perl5
- support. I even updated bin/perload to produce a dataloaded version
- that can work with perl5 (&pack'name is now &pack::name with perl5).
- However, mailagent fails about 22 of its tests with perl5, so use
- at your own risks. This may either indicate bugs in mailagent's code
- or bugs in perl5, or simply incompatibilities between perl4 and perl5.
- I don't know, I haven't investigated yet.
-
- Create ~/agent.trace if unable to mail command trace back when
- PROCESSing a message.
-
- Context is now written back to disk only when changed.
-
- Added callout queue knowledge, the 'mailagent -l' command will
- also show callout messages stored to be fed as input to callbacks.
-
- Mailhook package cleaning now done only for subroutines. I suspect
- cleaning of variables and hashes via type glob to be really buggy
- in perl4. I haven't ported mailagent to perl5 yet, apart from basic
- changes to let 'perl5 -c magent' run correctly... This may change
- the outcome of tests like cmd/perl or cmd/umask (for the better,
- I hope).
-
- Added logging at level 25 to debug lexer. Levels this high are not
- documented anyway, but I'm just telling you in case you wonder how
- mailagent parses your rule files.
-
- Better mismatched braces handling. A clear warning will now be issued
- if you have mismatched braces in your actions. Before that, mailagent
- could hung in the rule parsing.
-
- Ensures the newcmd file is secure. Since new commands are defined
- there, one could replace some favorite commands of yours with
- trojan horses. I said "could". Now they can't (shouldn't be able
- to, unless I've goofed somewhere).
-
- Removed useless test which prevented correct history processing
- and could cause bugs when issuing vacation messages: they would
- be issued systematically instead of waiting for the correct timeout.
-
- Lock rule cache before reading to prevent from concurrent updates.
-
- New -m option in TEST to monitor agentlog changes via atail. Intended
- to be used in desperate cases. See agent/test/README for details.
-
- Added regression tests for DO, but none for AFTER. Automatic testing
- of that command is not easy. If you wish to contribute a test, you
- are welcome... :-)
-
- nine new files
-
-
- Fix: From rn, say "| patch -p -N -d DIR", where DIR is your mailagent source
- directory. Outside of rn, say "cd DIR; patch -p -N <thisarticle".
- If you don't have the patch program, apply the following by hand,
- or get patch (version 2.0, latest patchlevel).
-
- After patching:
- *** DO NOTHING--INSTALL ALL PATCHES UP THROUGH #16 FIRST ***
-
- If patch indicates that patchlevel is the wrong version, you may need
- to apply one or more previous patches, or the patch may already
- have been applied. See the patchlevel.h file to find out what has or
- has not been applied. In any event, don't continue with the patch.
-
- If you are missing previous patches they can be obtained from me:
-
- Raphael Manfredi <ram@acri.fr>
-
- If you send a mail message of the following form it will greatly speed
- processing:
-
- Subject: Command
- @SH mailpatch PATH mailagent 3.0 LIST
- ^ note the c
-
- where PATH is a return path FROM ME TO YOU either in Internet notation,
- or in bang notation from some well-known host, and LIST is the number
- of one or more patches you need, separated by spaces, commas, and/or
- hyphens. Saying 35- says everything from 35 to the end.
-
- To get some more detailed instructions, send me the following mail:
-
- Subject: Command
- @SH mailhelp PATH
-
-
- Index: patchlevel.h
- Prereq: 11
- 4c4
- < #define PATCHLEVEL 11
- ---
- > #define PATCHLEVEL 12
-
- Index: Configure
- Prereq: 3.0.1.4
- *** Configure.old Thu Sep 22 16:42:42 1994
- --- Configure Thu Sep 22 16:42:44 1994
- ***************
- *** 18,26 ****
- # archive site. Check with Archie if you don't know where that can be.)
- #
-
- ! # $Id: Configure,v 3.0.1.4 1994/07/01 14:50:29 ram Exp $
- #
- ! # Generated on Fri Jul 01 16:47:56 MET DST 1994 [metaconfig 3.0 PL31]
-
- cat >/tmp/c1$$ <<EOF
- ARGGGHHHH!!!!!
- --- 18,26 ----
- # archive site. Check with Archie if you don't know where that can be.)
- #
-
- ! # $Id: Configure,v 3.0.1.5 1994/09/22 13:37:44 ram Exp $
- #
- ! # Generated on Thu Sep 22 15:19:32 MET DST 1994 [metaconfig 3.0 PL35]
-
- cat >/tmp/c1$$ <<EOF
- ARGGGHHHH!!!!!
- ***************
- *** 55,69 ****
- ;;
- esac
-
- ! : Sanity checks
- ! PATH=".:$PATH:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin"
- ! PATH=$PATH:'/usr/5bin:/etc:/usr/gnu/bin:/usr/new:/usr/new/bin:/usr/nbin'
- ! PATH=$PATH:'/sys5.3/bin:/sys5.3/usr/bin:/bsd4.3/bin:/bsd4.3/usr/ucb'
- ! PATH=$PATH:'/bsd4.3/usr/bin:/usr/bsd:/bsd43/bin:/usr/ccs/bin'
- ! PATH=$PATH:'/etc:/usr/lib:/usr/ucblib:/lib:/usr/ccs/lib'
- ! PATH=$PATH:'/sbin:/usr/sbin:/usr/libexec'
- export PATH
-
- if test ! -t 0; then
- echo "Say 'sh $me', not 'sh <$me'"
- exit 1
- --- 55,81 ----
- ;;
- esac
-
- !
- ! : Proper PATH setting
- ! paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
- ! paths=$paths:'/usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin'
- ! paths=$paths:'/sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb'
- ! paths=$paths:'/bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin'
- ! paths=$paths:'/etc /usr/lib /usr/ucblib /lib /usr/ccs/lib'
- ! paths=$paths:'/sbin /usr/sbin /usr/libexec'
- !
- ! for p in $paths
- ! do
- ! case ":$PATH:" in
- ! *:$p:*) ;;
- ! *) test -d $p && PATH=$PATH:$p ;;
- ! esac
- ! done
- !
- ! PATH=.:$PATH
- export PATH
-
- + : Sanity checks
- if test ! -t 0; then
- echo "Say 'sh $me', not 'sh <$me'"
- exit 1
- ***************
- *** 211,216 ****
- --- 223,229 ----
- d_bsdpgrp=''
- d_setpgrp=''
- d_setsid=''
- + d_strccmp=''
- d_index=''
- d_strchr=''
- d_strerrm=''
- ***************
- *** 225,230 ****
- --- 238,244 ----
- usevfork=''
- d_voidsig=''
- signal_t=''
- + defeditor=''
- h_fcntl=''
- h_sysfile=''
- i_fcntl=''
- ***************
- *** 236,241 ****
- --- 250,256 ----
- i_sysfilio=''
- i_sysioctl=''
- i_syssockio=''
- + i_sysparam=''
- i_syswait=''
- i_sgtty=''
- i_termio=''
- ***************
- *** 288,293 ****
- --- 303,309 ----
- patchlevel=''
- perlpath=''
- pidtype=''
- + prefix=''
- installprivlib=''
- privlib=''
- privlibexp=''
- ***************
- *** 309,314 ****
- --- 325,331 ----
- reg8=''
- reg9=''
- registers=''
- + rootid=''
- installscript=''
- scriptdir=''
- scriptdirexp=''
- ***************
- *** 475,481 ****
- esac
- shift
- ;;
- ! -V) echo "$me generated by metaconfig 3.0 PL31." >&2
- exit 0;;
- --) break;;
- -*) echo "$me: unknown option $1" >&2; shift; error=true;;
- --- 492,498 ----
- esac
- shift
- ;;
- ! -V) echo "$me generated by metaconfig 3.0 PL35." >&2
- exit 0;;
- --) break;;
- -*) echo "$me: unknown option $1" >&2; shift; error=true;;
- ***************
- *** 631,638 ****
- xlibpth='/usr/lib/386 /lib/386'
-
- : general looking path for locating libraries
- ! glibpth="/usr/lib/large /lib /usr/lib $xlibpth /lib/large"
- ! glibpth="$glibpth /usr/lib/small /lib/small"
- glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib /usr/shlib"
-
- : Private path used by Configure to find libraries. Its value
- --- 648,655 ----
- xlibpth='/usr/lib/386 /lib/386'
-
- : general looking path for locating libraries
- ! glibpth="/lib/pa1.1 /usr/lib/large /lib /usr/lib $xlibpth"
- ! glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
- glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib /usr/shlib"
-
- : Private path used by Configure to find libraries. Its value
- ***************
- *** 915,921 ****
- spitshell=cat
- echo " "
- echo "Okay, let's see if #! works on this system..."
- ! echo "#!/bin/cat" >try
- $eunicefix try
- chmod +x try
- ./try > today
- --- 932,940 ----
- spitshell=cat
- echo " "
- echo "Okay, let's see if #! works on this system..."
- ! xcat=/bin/cat
- ! test -r $xcat || xcat=/usr/bin/cat
- ! echo "#!$xcat" >try
- $eunicefix try
- chmod +x try
- ./try > today
- ***************
- *** 923,929 ****
- echo "It does."
- sharpbang='#!'
- else
- ! echo "#! /bin/cat" > try
- $eunicefix try
- chmod +x try
- ./try > today
- --- 942,948 ----
- echo "It does."
- sharpbang='#!'
- else
- ! echo "#! $xcat" > try
- $eunicefix try
- chmod +x try
- ./try > today
- ***************
- *** 938,947 ****
- --- 957,968 ----
- else
- echo "Your sh doesn't grok # comments--I will strip them later on."
- shsharp=false
- + cd ..
- echo "exec grep -v '^[ ]*#'" >spitshell
- chmod +x spitshell
- $eunicefix spitshell
- spitshell=`pwd`/spitshell
- + cd UU
- echo "I presume that if # doesn't work, #! won't work either!"
- sharpbang=': use '
- fi
- ***************
- *** 1037,1042 ****
- --- 1058,1064 ----
- smail
- test
- uname
- + vi
- zcat
- "
- pth=`echo $PATH | sed -e 's/:/ /g'`
- ***************
- *** 1832,1839 ****
- $cat <<'EOM'
-
- Some systems have incompatible or broken versions of libraries. Among
- ! the directories listed in the question below, please remove the one
- ! you know not to be holding relevant libraries. Say "none" for none.
-
- EOM
- case "$libpth" in
- --- 1854,1862 ----
- $cat <<'EOM'
-
- Some systems have incompatible or broken versions of libraries. Among
- ! the directories listed in the question below, please remove any you
- ! know not to be holding relevant libraries, and add any that are needed.
- ! Say "none" for none.
-
- EOM
- case "$libpth" in
- ***************
- *** 2154,2160 ****
- $grep fprintf libc.tmp > libc.ptf
- xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
- xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
- ! if com="$sed -n -e 's/^.* [ADTS] *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
- --- 2177,2183 ----
- $grep fprintf libc.tmp > libc.ptf
- xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
- xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
- ! if com="$sed -n -e 's/^.* [ADTSI] *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
- eval $xscan;\
- $contains '^fprintf$' libc.list >/dev/null 2>&1; then
- eval $xrun
- ***************
- *** 2545,2550 ****
- --- 2568,2576 ----
- else
- dflt='none'
- fi
- + case "$ccflags" in
- + *-posix*) dflt="$dflt -posix" ;;
- + esac
- ;;
- *) dflt="$ldflags";;
- esac
- ***************
- *** 3235,3240 ****
- --- 3261,3270 ----
- set setsid d_setsid
- eval $inlibc
-
- + : see if strcasecmp exists
- + set strcasecmp d_strccmp
- + eval $inlibc
- +
- : see if strerror and/or sys_errlist[] exist
- echo " "
- if set strerror val -f d_strerror; eval $csym; $val; then
- ***************
- *** 3333,3340 ****
- $define)
- echo " "
- case "$usevfork" in
- ! true) dflt='y';;
- ! *) dflt='n';;
- esac
- rp="Some systems have problems with vfork(). Do you want to use it?"
- . ./myread
- --- 3363,3370 ----
- $define)
- echo " "
- case "$usevfork" in
- ! false) dflt='n';;
- ! *) dflt='y';;
- esac
- rp="Some systems have problems with vfork(). Do you want to use it?"
- . ./myread
- ***************
- *** 3547,3552 ****
- --- 3577,3599 ----
- Id='$Id'
- Log='$Log'
-
- + : determine default editor
- + echo " "
- + case "$defeditor" in
- + '')
- + case "$_vi" in
- + */*) dflt="$_vi";;
- + *) dflt=/usr/ucb/vi;;
- + esac
- + ;;
- + *) dflt="$defeditor"
- + ;;
- + esac
- + fn=f/
- + rp="What is the default editor on your system?"
- + . ./getfile
- + defeditor="$ans"
- +
- : see if flock exists
- set flock d_flock
- eval $inlibc
- ***************
- *** 3650,3660 ****
- afs=false
- fi
-
- : determine where public executables go
- echo " "
- case "$bin" in
- '')
- ! dflt=`./loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
- ;;
- *)
- dflt="$bin"
- --- 3697,3733 ----
- afs=false
- fi
-
- + : determine root of directory hierarchy where package will be installed.
- + case "$prefix" in
- + '')
- + dflt=`./loc . /usr/local /usr/local /local /opt /usr`
- + ;;
- + *)
- + dflt="$prefix"
- + ;;
- + esac
- + $cat <<EOM
- +
- + By default, $package will be installed in $dflt/bin, manual
- + pages under $dflt/man, etc..., i.e. with $dflt as prefix for
- + all installation directories. Typically set to /usr/local, but you
- + may choose /usr if you wish to install $package among your system
- + binaries. If you wish to have binaries under /bin but manual pages
- + under /usr/local/man, that's ok: you will be prompted separately
- + for each of the installation directories, the prefix being only used
- + to set defaults.
- +
- + EOM
- + fn=d~
- + rp='Installation prefix to use?'
- + . ./getfile
- + prefix="$ans"
- +
- : determine where public executables go
- echo " "
- case "$bin" in
- '')
- ! dflt="$prefix/bin"
- ;;
- *)
- dflt="$bin"
- ***************
- *** 3700,3710 ****
- echo "If you don't want the manual sources installed, answer 'none'."
- case "$mansrc" in
- '')
- ! lookpath='/usr/local/man/man1 /usr/local/man/man1 /usr/man/manl'
- lookpath="$lookpath /usr/man/local/man1 /usr/man/l_man/man1"
- lookpath="$lookpath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
- lookpath="$lookpath /usr/man/man.L"
- ! mansrc=`./loc . $lookpath`
- if $test -d "$mansrc"; then
- dflt="$mansrc"
- else
- --- 3773,3784 ----
- echo "If you don't want the manual sources installed, answer 'none'."
- case "$mansrc" in
- '')
- ! lookpath="$prefix/man/man1 $prefix/man/u_man/man1 $prefix/man/l_man/man1"
- ! lookpath="$lookpath /usr/local/man/man1 /usr/local/man/man1 /usr/man/manl"
- lookpath="$lookpath /usr/man/local/man1 /usr/man/l_man/man1"
- lookpath="$lookpath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
- lookpath="$lookpath /usr/man/man.L"
- ! mansrc=`./loc . $prefix/man/man1 $lookpath`
- if $test -d "$mansrc"; then
- dflt="$mansrc"
- else
- ***************
- *** 3756,3764 ****
- : determine where private executables go
- case "$privlib" in
- '')
- ! dflt=/usr/lib/$package
- ! $test -d /usr/local/lib && dflt=/usr/local/lib/$package
- ! $test -d /local/lib && dflt=/local/lib/$package
- ;;
- *) dflt="$privlib"
- ;;
- --- 3830,3836 ----
- : determine where private executables go
- case "$privlib" in
- '')
- ! dflt=$prefix/lib/$package
- ;;
- *) dflt="$privlib"
- ;;
- ***************
- *** 3794,3800 ****
- installprivlib="$privlibexp"
- fi
-
- ! : determine where public executables go
- case "$scriptdir" in
- '')
- dflt="$bin"
- --- 3866,3872 ----
- installprivlib="$privlibexp"
- fi
-
- ! : determine where public executable scripts go
- case "$scriptdir" in
- '')
- dflt="$bin"
- ***************
- *** 3802,3807 ****
- --- 3874,3880 ----
- $test -d /usr/share/scripts && dflt=/usr/share/scripts
- $test -d /usr/share/bin && dflt=/usr/share/bin
- $test -d /usr/local/script && dflt=/usr/local/script
- + $test -d $prefix/script && dflt=$prefix/script
- ;;
- *) dflt="$scriptdir"
- ;;
- ***************
- *** 4200,4216 ****
- . ./getfile
- perlpath="$ans"
-
- : see what type pids are declared as in the kernel
- ! case "$pidtype" in
- ! '')
- ! if $contains 'pid_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- ! dflt='pid_t';
- ! else
- ! dflt="int"
- ! fi
- ! ;;
- ! *) dflt="$pidtype";;
- ! esac
- echo " "
- rp="What type are process ids on this system declared as?"
- . ./myread
- --- 4273,4304 ----
- . ./getfile
- perlpath="$ans"
-
- + : define an is-a-typedef? function
- + typedef='type=$1; var=$2; def=$3; shift; shift; shift; inclist=$@;
- + case "$inclist" in
- + "") inclist="sys/types.h";;
- + esac;
- + eval "val=\$$var";
- + case "$val" in
- + "")
- + $rm -f temp.c;
- + for inc in $inclist; do
- + echo "#include <$inc>" >>temp.c;
- + done;
- + $cppstdin $cppflags $cppminus < temp.c >temp.E 2>/dev/null;
- + if $contains $type temp.E >/dev/null 2>&1; then
- + eval "$var=$type";
- + else
- + eval "$var=$def";
- + fi;
- + $rm -f temp.?;;
- + *) eval "$var=$val";;
- + esac'
- +
- : see what type pids are declared as in the kernel
- ! set pid_t pidtype int stdio.h sys/types.h
- ! eval $typedef
- ! dflt="$pidtype"
- echo " "
- rp="What type are process ids on this system declared as?"
- . ./myread
- ***************
- *** 4272,4277 ****
- --- 4360,4373 ----
- . ./.foo
- $rm -f .foo
-
- + : determine root id
- + echo " "
- + rootid=`$sed -e "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e "q" -e "}" -e "d" </etc/passwd`
- + case "$rootid" in
- + '') rootid=0 ;;
- + *) echo "Root uid = $rootid" >&4 ;;
- + esac
- +
- : see if signal is declared as pointer to function returning int or void
- echo " "
- xxx=`./findhdr signal.h`
- ***************
- *** 4279,4293 ****
- if $contains 'int.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have int (*signal())() instead of void." >&4
- val="$undef"
- - signal_t="int"
- elif $contains 'void.*\*[ ]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have void (*signal())() instead of int." >&4
- val="$define"
- - signal_t="void"
- elif $contains 'extern[ ]*[(\*]*signal' $$.tmp >/dev/null 2>&1 ; then
- echo "You have int (*signal())() instead of void." >&4
- val="$undef"
- - signal_t="int"
- else
- case "$d_voidsig" in
- '')
- --- 4375,4386 ----
- ***************
- *** 4295,4311 ****
- dflt=void
- rp="What type does your signal handler return?"
- . ./myread
- ! signal_t="$ans"
- ! ;;
- ! *) echo "As you already told me, signal handler returns $signal_t." >&4;;
- ! esac
- ! case "$signal_t" in
- ! void) val="$define";;
- ! *) val="$undef";;
- esac
- fi
- set d_voidsig
- eval $setvar
- $rm -f $$.tmp
-
- : figure out how to guarantee perl startup
- --- 4388,4409 ----
- dflt=void
- rp="What type does your signal handler return?"
- . ./myread
- ! case "$ans" in
- ! v*) val="$define";;
- ! *) val="$undef";;
- ! esac;;
- ! "$define")
- ! echo "As you already told me, signal handler returns void." >&4;;
- ! *)
- ! echo "As you already told me, signal handler returns int." >&4;;
- esac
- fi
- set d_voidsig
- eval $setvar
- + case "$d_voidsig" in
- + "$define") signal_t="void";;
- + *) signal_t="int";;
- + esac
- $rm -f $$.tmp
-
- : figure out how to guarantee perl startup
- ***************
- *** 4366,4392 ****
- eval $setvar
-
- : see what type uids are declared as in the kernel
- case "$uidtype" in
- ! '')
- ! if $contains 'uid_t;' `./findhdr sys/types.h` >/dev/null 2>&1 ; then
- ! dflt='uid_t';
- ! else
- ! xxx=`./findhdr sys/user.h`
- ! set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
- ! case $1 in
- ! unsigned) dflt="$1 $2" ;;
- ! *) dflt="$1" ;;
- ! esac
- ! fi
- ;;
- ! *) dflt="$uidtype";;
- esac
- echo " "
- rp="What is the type for user ids returned by getuid()?"
- . ./myread
- ! val="$ans"
- ! set uidtype
- ! eval $setvar
-
- : check for void type
- echo " "
- --- 4464,4486 ----
- eval $setvar
-
- : see what type uids are declared as in the kernel
- + set uid_t uidtype xxx stdio.h sys/types.h
- + eval $typedef
- case "$uidtype" in
- ! xxx)
- ! xxx=`./findhdr sys/user.h`
- ! set `grep '_ruid;' "$xxx" 2>/dev/null` unsigned short
- ! case $1 in
- ! unsigned) dflt="$1 $2" ;;
- ! *) dflt="$1" ;;
- ! esac
- ;;
- ! *) dflt="$uidtype";;
- esac
- echo " "
- rp="What is the type for user ids returned by getuid()?"
- . ./myread
- ! uidtype="$ans"
-
- : check for void type
- echo " "
- ***************
- *** 4530,4535 ****
- --- 4624,4633 ----
- set i_fcntl
- eval $setvar
-
- + : see if this is a sys/param system
- + set sys/param.h i_sysparam
- + eval $inhdr
- +
- : see if we should include time.h, sys/time.h, or both
- echo " "
- echo "Testing to see if we should include <time.h>, <sys/time.h> or both." >&4
- ***************
- *** 4650,4655 ****
- --- 4748,4754 ----
- EOM
- rp='Should I send mail to ram@acri.fr?'
- dflt=y
- + $test -f ../.config/nomail && dflt=n
- fi
- . ./myread
- case "$ans" in
- ***************
- *** 4725,4736 ****
-
- $atsh package $usermail $package $baserev $patchlevel$opt
- EOM
- ! $rm -f ../.config/mailauthor
- cp ../patchlevel.h ../.config/mailauthor
- ;;
- *)
- case "$dflt" in
- ! "y") echo "Oh well, maybe next time.";;
- esac
- ;;
- esac
- --- 4824,4838 ----
-
- $atsh package $usermail $package $baserev $patchlevel$opt
- EOM
- ! $rm -f ../.config/mailauthor ../.config/nomail
- cp ../patchlevel.h ../.config/mailauthor
- ;;
- *)
- case "$dflt" in
- ! "y")
- ! echo "Oh well, maybe next time."
- ! cp /dev/null ../.config/nomail
- ! ;;
- esac
- ;;
- esac
- ***************
- *** 4760,4766 ****
- guest:**paswword**:10:100:Mister Guest User:/usr/users:/bin/sh
- ^^^^^^^^^^^^^^^^^
- EOM
- ! rp="Berkeley/V7 format for full name in /etc/password?"
- . ./myread
- case "$ans" in
- y*) d_passnames="$define"
- --- 4862,4868 ----
- guest:**paswword**:10:100:Mister Guest User:/usr/users:/bin/sh
- ^^^^^^^^^^^^^^^^^
- EOM
- ! rp="Berkeley/V7 format for full name in /etc/passwd?"
- . ./myread
- case "$ans" in
- y*) d_passnames="$define"
- ***************
- *** 5084,5089 ****
- --- 5186,5192 ----
- d_bsdpgrp='$d_bsdpgrp'
- d_setpgrp='$d_setpgrp'
- d_setsid='$d_setsid'
- + d_strccmp='$d_strccmp'
- d_index='$d_index'
- d_strchr='$d_strchr'
- d_strerrm='$d_strerrm'
- ***************
- *** 5098,5103 ****
- --- 5201,5207 ----
- usevfork='$usevfork'
- d_voidsig='$d_voidsig'
- signal_t='$signal_t'
- + defeditor='$defeditor'
- h_fcntl='$h_fcntl'
- h_sysfile='$h_sysfile'
- i_fcntl='$i_fcntl'
- ***************
- *** 5109,5114 ****
- --- 5213,5219 ----
- i_sysfilio='$i_sysfilio'
- i_sysioctl='$i_sysioctl'
- i_syssockio='$i_syssockio'
- + i_sysparam='$i_sysparam'
- i_syswait='$i_syswait'
- i_sgtty='$i_sgtty'
- i_termio='$i_termio'
- ***************
- *** 5161,5166 ****
- --- 5266,5272 ----
- patchlevel='$patchlevel'
- perlpath='$perlpath'
- pidtype='$pidtype'
- + prefix='$prefix'
- installprivlib='$installprivlib'
- privlib='$privlib'
- privlibexp='$privlibexp'
- ***************
- *** 5182,5187 ****
- --- 5288,5294 ----
- reg8='$reg8'
- reg9='$reg9'
- registers='$registers'
- + rootid='$rootid'
- installscript='$installscript'
- scriptdir='$scriptdir'
- scriptdirexp='$scriptdirexp'
-
- Index: agent/man/package.SH
- Prereq: 3.0
- *** agent/man/package.SH.old Thu Sep 22 16:43:00 1994
- --- agent/man/package.SH Thu Sep 22 16:43:00 1994
- ***************
- *** 20,26 ****
- .TH PACKAGE $manext
- ''' @(#) Manual page for mailagent's package command
- '''
- ! ''' $Id: package.SH,v 3.0 1993/11/29 13:48:31 ram Exp $
- '''
- ''' Copyright (c) 1990-1993, Raphael Manfredi
- '''
- --- 20,26 ----
- .TH PACKAGE $manext
- ''' @(#) Manual page for mailagent's package command
- '''
- ! ''' $Id: package.SH,v 3.0.1.1 1994/09/22 13:59:03 ram Exp $
- '''
- ''' Copyright (c) 1990-1993, Raphael Manfredi
- '''
- ***************
- *** 33,46 ****
- ''' Original Author: Graham Stoney, 1993
- '''
- ''' $Log: package.SH,v $
- ''' Revision 3.0 1993/11/29 13:48:31 ram
- ''' Baseline for mailagent 3.0 netwide release.
- '''
- '''
- .SH NAME
- package \- register package user via mailagent
- .SH SYNOPSIS
- ! package\fR \fIaddress\fR \fIsystem\fR \fIversion\fR \fIpatchlevel\fR
- [ mailpatches | notifypatches ]
- .SH DESCRIPTION
- This command is not intended to be run directly by a user, but may
- --- 33,59 ----
- ''' Original Author: Graham Stoney, 1993
- '''
- ''' $Log: package.SH,v $
- + ''' Revision 3.0.1.1 1994/09/22 13:59:03 ram
- + ''' patch12: documents the edusers script and fuzzy address matching
- + '''
- ''' Revision 3.0 1993/11/29 13:48:31 ram
- ''' Baseline for mailagent 3.0 netwide release.
- '''
- '''
- + .de Ex \" Start of Example
- + .sp
- + .in +5
- + .nf
- + ..
- + .de Ef \" End of Example
- + .sp
- + .in -5
- + .fi
- + ..
- .SH NAME
- package \- register package user via mailagent
- .SH SYNOPSIS
- ! \fBpackage\fR \fIaddress\fR \fIsystem\fR \fIversion\fR \fIpatchlevel\fR
- [ mailpatches | notifypatches ]
- .SH DESCRIPTION
- This command is not intended to be run directly by a user, but may
- ***************
- *** 77,82 ****
- --- 90,134 ----
- and notification request are saved in the file
- .I users
- in the package's directory.
- + .PP
- + .I Package
- + performs an approximate address match in order to avoid duplicate entries.
- + Whenever this elimination occurs, a warning message is issued in the logfile.
- + Two addresses will be said equivalent if one of them has an added machine name
- + or if they are really equal. Therefore, the following addresses are equivalent:
- + .Ex
- + ram@acri.fr
- + ram@main.acri.fr
- + .Ef
- + whereas the following two are \fInot\fR equivalent, unfortunately:
- + .Ex
- + ram@acri.acri.fr
- + ram@main.acri.fr
- + .Ef
- + When a user is asking to be left alone, it is important to let him know if
- + the request failed, because he will be annoyed when the next set of patches
- + is issued and he still gets them despite his previous request. Therefore, if
- + no approximate match occurs, a warning message is sent back, with a list
- + of addresses that are \fIclose\fR to his own e-mail address, but not
- + equivalent. Fortunately, the following addresses are considered close:
- + .Ex
- + ram@acri.fr
- + ram@somewhere.com
- + raphael@main.acri.fr
- + manfredi@acri.acri.fr
- + .Ef
- + because they either have the same login (important when someone changes
- + company) or share the same domain or sub-domain part.
- + .PP
- + In order to edit the \fIusers\fR file, the
- + .I edusers
- + script should be used. For one thing, it will let you edit the
- + .I users
- + file from
- + whatever package you name in the command line, but it will also properly lock
- + the file so that the execution of \fIpackage\fR will stall for the duration
- + of the manual edition (provided you have a strict locking policy defined in
- + your \fI~/.mailagent\fR configuration file).
- .SH FILES
- .PD 0
- .TP 20
- ***************
- *** 118,126 ****
- Log/agentlog
- mailagent's log file
- .PD
- ! .SH AUTHOR
- Graham Stoney <greyham@research.canon.oz.au>
- .SH "SEE ALSO"
- ! mailagent($manext), metaconfig($manext).
- !GROK!THIS!
- chmod 444 package.$manext
- --- 170,180 ----
- Log/agentlog
- mailagent's log file
- .PD
- ! .SH AUTHORS
- Graham Stoney <greyham@research.canon.oz.au>
- + .br
- + Raphael Manfredi <ram@acri.fr> (minor enhancements)
- .SH "SEE ALSO"
- ! edusers($manext), mailagent($manext), metaconfig($manext).
- !GROK!THIS!
- chmod 444 package.$manext
-
- Index: agent/package.SH
- Prereq: 3.0
- *** agent/package.SH.old Thu Sep 22 16:43:01 1994
- --- agent/package.SH Thu Sep 22 16:43:01 1994
- ***************
- *** 20,26 ****
- eval "exec perl -S \$0 \$*"
- if \$running_under_some_shell;
-
- ! # $Id: package.SH,v 3.0 1993/11/29 13:48:32 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 20,26 ----
- eval "exec perl -S \$0 \$*"
- if \$running_under_some_shell;
-
- ! # $Id: package.SH,v 3.0.1.1 1994/09/22 14:03:44 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 33,38 ****
- --- 33,46 ----
- # Original Author: Graham Stoney, 1993
- #
- # $Log: package.SH,v $
- + # Revision 3.0.1.1 1994/09/22 14:03:44 ram
- + # patch12: added fuzzy address matching to avoid duplicates
- + # patch12: detect hostile addresses before it is too late...
- + # patch12: detect strange status-change requests
- + # patch12: now performs locking before changing the users file
- + # patch12: inform user about unrecognized leave-alone requests
- + # patch12: optimize by not re-writing users file if not needed
- + #
- # Revision 3.0 1993/11/29 13:48:32 ram
- # Baseline for mailagent 3.0 netwide release.
- #
- ***************
- *** 48,55 ****
- --- 56,65 ----
- $userlist = "users";
- $prog_name = $0; # Who I am
- $prog_name =~ s|^.*/(.*)|$1|; # Keep only base name
- + $lockext = '.lock'; # Locking extension
-
- &read_config; # First, read configuration file (in ~/.mailagent)
- + &catch_signals; # Protect against signals
-
- # take job number and command from environment
- # (passed by mailagent)
- ***************
- *** 84,89 ****
- --- 94,105 ----
- @SH maillist $path
- ^ note the l";
-
- + # Silently discard hostile addresses
- + unless (&addr'valid($dest)) {
- + &add_log("FAILED (HOSTILE $dest)") if $loglvl > 1;
- + exit 0;
- + }
- +
- if (!$System{$system}) {
- open(MAILER, "|$cf'sendmail $cf'mailopt $path $cf'user");
- print MAILER
- ***************
- *** 244,251 ****
- }
- }
-
- # look for them in the userlist file
- ! if (open(USERLIST,"<$userlist")) {
- while (<USERLIST>) {
- next if /^#/;
- chop if /\n$/;
- --- 260,272 ----
- }
- }
-
- + # Lock users file. That file should only be edited with the edusers script.
- + if (0 != &acs_rqst($userlist)) {
- + &add_log("WARNING updating $userlist without lock") if $loglvl > 5;
- + }
- +
- # look for them in the userlist file
- ! if (open(USERLIST, $userlist)) {
- while (<USERLIST>) {
- next if /^#/;
- chop if /\n$/;
- ***************
- *** 258,306 ****
- }
-
- # have we heard from them before?
- ! if ($name eq $dest) {
- ! $found = 1;
- $status = $letter;
- $pl = $theirpl if $theirpl ne '-';
- }
- push(@status, $status);
- push(@pl, $pl);
- push(@name, $name);
- }
- close USERLIST;
- }
-
- # add them if they're new.
- if (!$found) {
- ! push(@name, $dest);
- ! push(@status, $letter);
- ! push(@pl, $theirpl);
- }
-
- # write the file back out.
- ! open(USERLIST,">$userlist.new") || &abort("can't open new $userlist file");
-
- for ($i = 0; $i <= $#name; $i++) {
- print USERLIST $status[$i], "\t", $pl[$i], "\t", $name[$i], "\n"
- || &abort("error writing new $userlist file");
- }
- close(USERLIST) || &abort("error closing new $userlist file");
- rename("$userlist.new", $userlist);
-
- # Emergency exit with clean-up
- sub abort {
- local($reason) = shift(@_); # Why we are exiting
- &fatal($reason);
- }
-
- !NO!SUBS!
- $grep -v '^;#' pl/fatal.pl >>package
- $grep -v '^;#' pl/add_log.pl >>package
- $grep -v '^;#' pl/read_conf.pl >>package
- - $grep -v '^;#' pl/unpack.pl >>package
- - $grep -v '^;#' pl/rangeargs.pl >>package
- - $grep -v '^;#' pl/sendfile.pl >>package
- $grep -v '^;#' pl/distribs.pl >>package
- $grep -v '^;#' pl/secure.pl >>package
- chmod 755 package
- $eunicefix package
- --- 279,427 ----
- }
-
- # have we heard from them before?
- ! if (&addr'match($name, $dest)) {
- ! if ($found++) {
- ! &add_log("WARNING removing duplicate for $dest ($name)")
- ! if $loglvl > 5;
- ! &add_log("NOTICE status for $dest was $oldstatus, now $status")
- ! if $oldstatus ne $status && $loglvl > 6;
- ! next;
- ! }
- !
- ! $oldstatus = $status; # Save status
- ! $oldpl = $pl; # And patchlevel
- $status = $letter;
- $pl = $theirpl if $theirpl ne '-';
- }
- +
- + # save entry
- push(@status, $status);
- push(@pl, $pl);
- push(@name, $name);
- +
- + # in case we have to go to &send_closest
- + push(@registered, $name) if $status =~ /^[MN]/;
- }
- close USERLIST;
- }
-
- + # optimize a little...
- + if ($found == 1 && $oldstatus eq $letter && $oldpl eq $theirpl) {
- + &add_log("NOTICE no change for $dest") if $loglvl > 6;
- + close USERLIST;
- + &free_file($userlist);
- + exit 0;
- + }
- +
- # add them if they're new.
- if (!$found) {
- ! if ($letter eq 'L') {
- ! &add_log("WARNING unknown $dest wants to be left alone") if $loglvl > 5;
- ! &free_file($userlist);
- ! &send_closest;
- ! &add_log("FAILED (UNREGISTERED $dest)") if $loglvl > 1;
- ! exit 0;
- ! } else {
- ! push(@name, $dest);
- ! push(@status, $letter);
- ! push(@pl, $theirpl);
- ! }
- }
-
- # write the file back out.
- ! open(USERLIST,">$userlist.new") ||
- ! &abort("can't create new $userlist file: $!");
-
- for ($i = 0; $i <= $#name; $i++) {
- print USERLIST $status[$i], "\t", $pl[$i], "\t", $name[$i], "\n"
- || &abort("error writing new $userlist file");
- }
- close(USERLIST) || &abort("error closing new $userlist file");
- +
- rename("$userlist.new", $userlist);
- + &free_file($userlist);
-
- # Emergency exit with clean-up
- sub abort {
- local($reason) = shift(@_); # Why we are exiting
- + &free_file($userlist);
- &fatal($reason);
- }
-
- + # Send closest matching addresses, among @registered
- + sub send_closest {
- + open(MAILER, "|$cf'sendmail $cf'mailopt $path $cf'user") ||
- + do {
- + &add_log("SYSERR fork: $!") if $loglvl;
- + &add_log("ERROR cannot launch $cf'sendmail") if $loglvl;
- + };
- + print MAILER
- + "To: $path
- + Subject: You were not recorded as a $system $version user
- + X-Mailer: mailagent [version $mversion PL$patchlevel]
- +
- + I can't honour your desire to be left alone for $system version $version
- + updates because you were not found among the registered users.
- +
- + Your command was: $fullcmd
- +
- + For your information, here is the list of the closest addresses to your own
- + e-mail address ($dest) that are registered:
- +
- + ";
- + local($first) = '';
- + foreach $addr (@registered) {
- + if (&addr'close($dest, $addr)) {
- + print MAILER "\t$addr\n";
- + $first = $addr if $first eq '';
- + }
- + }
- + print MAILER <<EOM if $first ne '';
- +
- + Assuming you registered using the address $first,
- + you may request to be left alone by sending me the following:
- +
- + Subject: Command
- + @SH package $first $system $version
- +
- + This is only an example, of course. You must pick the correct address
- + among the listed set.
- +
- + If none of the addresses listed above are correct, please don't try them.
- + EOM
- + print MAILER <<EOM if $first eq '';
- + *** None found ***
- +
- + This probably means you either never registered, or you used an entirely
- + different e-mail address to do so.
- +
- + EOM
- + print MAILER <<EOM;
- + I suggest you re-run the Configure script from the original $system
- + distribution and ask to be left alone from there. If you kept the generated
- + config.sh and run Configure on the same machine you did the first time, that
- + should un-register you properly.
- +
- + -- $prog_name speaking for $cf'user
- + EOM
- + close MAILER;
- + if ($?) {
- + &add_log("ERROR cannot send closest addr list") if $loglvl;
- + } else {
- + &add_log("MSG closest addr list") if $loglvl > 6;
- + }
- + }
- +
- !NO!SUBS!
- $grep -v '^;#' pl/fatal.pl >>package
- $grep -v '^;#' pl/add_log.pl >>package
- $grep -v '^;#' pl/read_conf.pl >>package
- $grep -v '^;#' pl/distribs.pl >>package
- $grep -v '^;#' pl/secure.pl >>package
- + $grep -v '^;#' pl/addr.pl >>package
- + $grep -v '^;#' pl/acs_rqst.pl >>package
- + $grep -v '^;#' pl/free_file.pl >>package
- + $grep -v '^;#' pl/checklock.pl >>package
- + $grep -v '^;#' pl/signals.pl >>package
- chmod 755 package
- $eunicefix package
-
- Index: Makefile.SH
- *** Makefile.SH.old Thu Sep 22 16:42:45 1994
- --- Makefile.SH Thu Sep 22 16:42:45 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 53,59 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9 92/07/14 16:46:57 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 53,59 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:47:34 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 63,69 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- all::
-
- --- 63,72 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:47:34 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- all::
-
-
- Index: agent/Makefile.SH
- *** agent/Makefile.SH.old Thu Sep 22 16:42:46 1994
- --- agent/Makefile.SH Thu Sep 22 16:42:46 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 68,74 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9.1.2 92/08/26 12:33:22 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 68,74 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:47:37 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 78,86 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- ! BIN = mailpatch mailhelp maillist maildist package
-
- all:: $(BIN)
-
- --- 78,89 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:47:37 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- ! BIN = mailpatch mailhelp maillist maildist package edusers
-
- all:: $(BIN)
-
- ***************
- *** 102,107 ****
- --- 105,113 ----
- package: package.SH
- /bin/sh package.SH
-
- + edusers: edusers.SH
- + /bin/sh edusers.SH
- +
-
- install:: $(SCRIPTS) $(LSCRIPTS)
- @for file in $(SCRIPTS) $(LSCRIPTS); do \
- ***************
- *** 153,158 ****
- --- 159,165 ----
- maillist.SH \
- maildist.SH \
- package.SH \
- + edusers.SH \
- magent.SH
-
- depend::
-
- Index: agent/files/Makefile.SH
- *** agent/files/Makefile.SH.old Thu Sep 22 16:42:47 1994
- --- agent/files/Makefile.SH Thu Sep 22 16:42:47 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 55,61 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9 92/07/14 16:47:32 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 55,61 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:47:46 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 65,71 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- FILES = agenthelp commands distribs filter.sh mailagent.cf proglist \
- chkagent.sh
- --- 65,74 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:47:46 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- FILES = agenthelp commands distribs filter.sh mailagent.cf proglist \
- chkagent.sh
-
- Index: agent/files/help/Makefile.SH
- *** agent/files/help/Makefile.SH.old Thu Sep 22 16:42:49 1994
- --- agent/files/help/Makefile.SH Thu Sep 22 16:42:49 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 50,56 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9 92/07/14 16:47:32 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 50,56 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:47:52 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 60,66 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- FILES = addauth approve delpower end getauth help newpower \
- passwd password power release remauth set setauth user
- --- 60,69 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:47:52 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- FILES = addauth approve delpower end getauth help newpower \
- passwd password power release remauth set setauth user
-
- Index: agent/filter/Makefile.SH
- *** agent/filter/Makefile.SH.old Thu Sep 22 16:42:50 1994
- --- agent/filter/Makefile.SH Thu Sep 22 16:42:50 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 75,81 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9 92/07/14 18:41:10 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 75,81 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:48:04 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 85,91 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- # Files used to build the application
- SRC = environ.c hash.c io.c lock.c logfile.c main.c misc.c msg.c parser.c \
- --- 85,94 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:48:04 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- # Files used to build the application
- SRC = environ.c hash.c io.c lock.c logfile.c main.c misc.c msg.c parser.c \
-
- Index: agent/man/Makefile.SH
- *** agent/man/Makefile.SH.old Thu Sep 22 16:42:55 1994
- --- agent/man/Makefile.SH Thu Sep 22 16:42:55 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 64,70 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9 92/07/14 16:49:04 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 64,70 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:48:25 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 74,83 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- MPAGES = mailagent.$(L) maildist.$(L) maillist.$(L) mailhelp.$(L) \
- ! mailpatch.$(L) package.$(L)
-
- all:: $(MPAGES)
-
- --- 74,86 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:48:25 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- MPAGES = mailagent.$(L) maildist.$(L) maillist.$(L) mailhelp.$(L) \
- ! mailpatch.$(L) package.$(L) edusers.$(L)
-
- all:: $(MPAGES)
-
-
- Index: agent/test/Makefile.SH
- *** agent/test/Makefile.SH.old Thu Sep 22 16:43:24 1994
- --- agent/test/Makefile.SH Thu Sep 22 16:43:24 1994
- ***************
- *** 1,4 ****
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL14]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- --- 1,4 ----
- ! : Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.0 PL31]
- : $X-Id: Jmake.tmpl,v 3.0.1.1 1993/08/20 07:36:36 ram Exp ram $
-
- case $CONFIG in
- ***************
- *** 48,54 ****
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 2.9.1.1 92/08/02 16:14:36 ram Exp $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- --- 48,54 ----
- ########################################################################
- # Start of Jmakefile
-
- ! # $X-Id: Jmakefile,v 3.0 1993/11/29 13:49:20 ram Exp ram $
- #
- # Copyright (c) 1990-1993, Raphael Manfredi
- #
- ***************
- *** 58,64 ****
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log$
-
- all::
- @echo "The following may take a while..."
- --- 58,67 ----
- # that same Artistic License; a copy of which may be found at the root
- # of the source tree for mailagent 3.0.
- #
- ! # $X-Log: Jmakefile,v $
- ! # Revision 3.0 1993/11/29 13:49:20 ram
- ! # Baseline for mailagent 3.0 netwide release.
- ! #
-
- all::
- @echo "The following may take a while..."
-
- *** End of Patch 12 ***
-
- exit 0 # Just in case...
-