aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-01-28 22:07:31 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2010-01-28 22:07:31 +0000
commitdf4a2a61ce0cde5190def22309e9807cb5a56ab0 (patch)
tree364eb6562f6bd41eb3fe0ca15e497a2a76a4b57c
parent5f392fc3cf8e94112ed7b15b2038e51f1b2b3800 (diff)
downloadgsc-df4a2a61ce0cde5190def22309e9807cb5a56ab0.tar.gz
gsc-df4a2a61ce0cde5190def22309e9807cb5a56ab0.tar.bz2
Remove jabberd
git-svn-id: file:///svnroot/gsc/trunk@339 d2de0444-eb31-0410-8365-af798a554d48
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.am3
-rw-r--r--configure.ac3
-rw-r--r--doc/gsc.texi449
-rw-r--r--jabberd/Makefile.am22
-rw-r--r--jabberd/jabberd.h62
-rw-r--r--jabberd/main.c910
-rw-r--r--jabberd/progman.c647
-rw-r--r--mc/trurl.mc15
9 files changed, 15 insertions, 2102 deletions
diff --git a/ChangeLog b/ChangeLog
index 6894c0e..b855c2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,48 +1,54 @@
+2010-01-29 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * jabberd: Removed. Use GNU pies instead.
+ * Makefile.am, configure.ac: Update.
+ * doc/gsc.texi: Update.
+
2009-08-03 Sergey Poznyakoff <gray@gnu.org.ua>
* vpn/svpnsh: Fix concurrent login recognition.
2009-03-19 Sergey Poznyakoff <gray@gnu.org.ua>
Bugfix in sv_sync_www
* cvs/sv_sync_www.c (do_sync): Do not sort the array. This causes
malfunction on newly committed hierarchies.
2009-02-13 Sergey Poznyakoff <gray@gnu.org.ua>
Bugfix
* git-svn-mirror-synch: Call git reset.
* git/git-svn-mirror-finish: Install SVN hook and add a README.git
file to SVN.
2009-01-24 Sergey Poznyakoff <gray@gnu.org.ua>
Improve gnupload
* upload/gnupload: Implement --delete, --rmsymlink and --symlink.
Rename old `--symlink' option to `--symlink-re'.
Read configuration file at startup.
2009-01-05 Sergey Poznyakoff <gray@gnu.org.ua>
* git: New directory
* git/git-svn-mirror-create: New file.
* git/git-svn-mirror-finish: New file.
* git/git-svn-mirror-synch: New file.
2008-10-15 Sergey Poznyakoff <gray@gnu.org.ua>
* upload/gnupload: Accept --symlink and --dry-run options.
2008-10-09 Sergey Poznyakoff <gray@gnu.org.ua>
* upload/gnupload, rc.d/rc.local: Use ${X#... where necessary.
* rc.d/rc.local: Accept optional component names on the command
line.
2008-10-07 Sergey Poznyakoff <gray@gnu.org.ua>
* rc.d/start-stop: New option -P
(status): Check for non-empty PID
diff --git a/Makefile.am b/Makefile.am
index 6215e1f..fcba8a0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,38 +1,37 @@
# This file is part of GSC
# Copyright (C) 2005, 2006, 2007 Sergey Poznyakoff
#
# GSC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GSC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GSC. If not, see <http://www.gnu.org/licenses/>.
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = gnu 1.8.5
EXTRA_DIST=README
SUBDIRS=\
lib\
gnu\
aspell\
bind\
ckaliases\
consoleconf\
cvs\
doc\
etc\
elisp\
firewall\
fixnamespace\
fsf-move\
maint\
mc\
ppp\
- rc.d\
- jabberd
+ rc.d
diff --git a/configure.ac b/configure.ac
index 97a928d..d9dabeb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,98 +71,97 @@ AC_ARG_WITH([sendmail-cfdir],
[SENDMAIL_CFDIR=])
AC_MSG_CHECKING([for Sendmail cf directory])
if test -n "$SENDMAIL_CFDIR"; then
AC_MSG_RESULT([$SENDMAIL_CFDIR])
elif test -n "$SENDMAIL_VERSION"; then
AC_MSG_RESULT([none, use version $SENDMAIL_VERSION])
else
SENDMAIL_CFDIR=`find /usr/src/ /usr/local/src/ -name sendmail-* -type d -maxdepth 1 |
sed 's/.*sendmail-\(.*\)/\1 &/' |
sort +0 -1 -r |
while read VERSION DIR
do
if test -r $DIR/cf/cf/Makefile; then
echo "$DIR"
break
fi
done`
AC_MSG_RESULT([${SENDMAIL_CFDIR:-none}])
fi
# ***********************************
# Check for Emacs site-lisp directory
# ***********************************
AM_PATH_LISPDIR
if test "$EMACS" != "no"; then
lisp_LISP='$(LISPSRC)'
fi
AC_SUBST(lisp_LISP)
# ***********************
# Module list
# ***********************
MODLIST='aspell
bind
ckaliases
consoleconf
cvs
doc
etc
elisp
firewall
fixnamespace
fsf-move
maint
mc
ppp
-rc.d
-jabberd'
+rc.d'
AC_ARG_VAR([XMODLIST],
[Comma-delimited list of modules to exclude from building (see also --enable-modules)])
SENSE=
AC_ARG_ENABLE([module],
[AC_HELP_STRING([--enable-modules],
[Enable only modules from XMODLIST])],
[case $enableval in
yes) SENSE=include;;
no) SENSE=exclude;;
*) AC_MSG_FAILURE([Invalid argument for --enable-modules])
esac],
[SENSE=exclude])
if test "$SENSE" = "include"; then
MODLIST=`echo $XMODLIST | tr ',' '\n' | sort`
else
MODLIST=`echo "${MODLIST},$XMODLIST" | tr ',' '\n' | sort | uniq -u`
fi
# **********************
# Perl
# **********************
AC_PATH_PROG(PERL, perl)
# **********************
# Consoleconf variables
# **********************
AC_SUBST(CONSOLECONFDIR)
CONSOLECONFDIR='${datadir}/consoleconf'
AC_SUBST(CONSOLEFONTSDIR)
CONSOLEFONTSDIR=/usr/share/kbd/consolefonts
AC_SUBST(CONSOLETRANSDIR)
CONSOLETRANSDIR=/usr/share/kbd/consoletrans
AH_BOTTOM([
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __attribute__(x)
#endif
#ifndef GSC_PRINTFLIKE
# define GSC_PRINTFLIKE(fmt,narg) __attribute__ ((__format__ (__printf__, fmt, narg)))
#endif
])
AC_CONFIG_FILES([Makefile
aspell/Makefile
diff --git a/doc/gsc.texi b/doc/gsc.texi
index 29e5e1b..87e1ce5 100644
--- a/doc/gsc.texi
+++ b/doc/gsc.texi
@@ -74,113 +74,101 @@ documents GSC Version @value{VERSION}.
* User Tools:: Just that.
* Reporting Bugs:: How to Report a Bug.
Appendices
* Copying This Manual:: The GNU Free Documentation License.
* Concept Index:: Index of Concepts.
Here are some other nodes which are really inferiors of the ones
already listed, mentioned here so you can get to them in one step:
@detailmenu
--- The Detailed Node Listing ---
CVS Tools
* mksnapshot:: Create Snapshot Tarballs from the CVS or SVN repository.
* sv_logger:: Redirect stdin to syslog.
* Sync WWW:: Synchronize a Directory with a CVS Module Upon
Commit.
Sync WWW
* sv_sync_www_schedule:: Schedule a CVS to WWW Sync Job.
* sv_sync_www:: Synchronize CVS Directories with the
Corresponding WWW Directories.
* CVS Sync Example:: How to Set Up CVS synchronization framework.
* sv_www_loginfo:: Update CVSROOT/loginfo Files.
sv_sync_www
* Single job::
* Cron job::
* Invocation::
Source Tree Utilities
* fixnamespace:: Fix Global Namespace of a Project.
* fsf-move:: Update FSF Postal Mail Address in (L)GPL
Copyright Statements.
Root Utilities
* ckaliases:: Check MTA alias files.
* bind replication:: A Framework for Replicating Master @command{bind} Server.
* firewall:: M4 Wrappers For Setting Firewalls.
* session-cleanup:: Manage PHP Sessions.
-* jabberd:: Jabberd dispatcher daemon.
firewall
* Primitives:: A set of primitives defined in @file{firewall.m4}
-Jabberd
-
-* jabintro:: Jabberd Operation Overview
-* jabopts:: Command Line Options.
-* jabberd.cfg:: Main Jabberd Configuration File.
-
-Jabberd Configuration File
-
-* cfgstat:: Configuration File Statements
-* example:: An Example of the Configuration file
-
Startup Scripts
* rc.inet1:: A Replacement for Slackware @command{rc.inet1}.
* rc.autofs:: Automounter Setup.
* rc.ntpd:: @command{Ntpd} Setup.
* rc.local:: Local Startup.
* rc.firewall:: Firewall Setup.
* rc.ipacct:: @command{ipacct} setup.
* rc.ppp:: Set up a @acronym{PPP} connection.
* rc.tagr:: @command{tagr} setup.
User Tools
* dict-setup:: Setup a set of @command{aspell} dictionaries.
* consoleconf:: Simple Tool for Console Font/Keyboard Mapping Switching.
* ppp:: A Framework for Setting Up a Dial-up Connection.
@end detailmenu
@end menu
@node Intro, CVS Tools, Top, Top
@chapter Introduction to GSC
@cindex @acronym{GSC} defined
@acronym{GSC} stands for @dfn{Gray's Script Collection}. It is a
collection of various mostly unrelated tools and configuration files I
use in system administration and software development. The tools are
mainly for my own use, however I'd be glad if you find them useful
too. The package is distributed under GPL, for exact license terms and
conditions see file @file{COPYING} in the main distribution directory.
This manual documents version @value{VERSION} of the package. It
is distributed under GFDL, @xref{Copying This Manual}.
@node CVS Tools, Source Tree Utilities, Intro, Top
@chapter CVS Tools
This set of tools is designed to facilitate some tasks related to
@acronym{CVS} and Savane maintenance.
@menu
* mksnapshot:: Create Snapshot Tarballs from the CVS or SVN repository.
* sv_logger:: Redirect stdin to syslog.
* Sync WWW:: Synchronize a Directory with a CVS Module Upon
Commit.
@end menu
@node mksnapshot
@section mksnapshot
@@ -796,97 +784,96 @@ to
Boston, MA
02110-1301 USA.
@end quotation
Should @acronym{FSF} move again, you will have to change these defaults
by modifying @file{fsf-move}:177 and @file{fsf-move.awk}:21-22.
The program implements a sophisticated search-and-replace
algorithm, if it knows a syntax of the language a file is written
in. The purpose of the algorithm is to allow for arbitrary splitting
of lines in the address and to preserve alignment and formatting of
comments. This algorithm is applied to files whose names match
following regexps:
@table @asis
@item *.[chyl]
C sources;
@item *.m4|*.ac|*.at
M4 sources;
@item *.sh
Shell scripts;
@item *.awk
AWK sources;
@item *.exp|*.tcl
TCL sources;
@item *.am|Makefile.tmpl
Automake sources;
@item *.el|*.scm*|*.lisp
Various dialects of Lisp;
@end table
PO files (@asis{*.po}), and their derivatives are ignored.
The rest of files is processed using @dfn{fuzzy search}
algorithm, which is able to find the postal address in the majority of
cases, though not always. Such files should probably be inspected after
@command{fsf-move} finishes its work.
@node Root Utilities, Sendmail mc Files, Source Tree Utilities, Top
@chapter Root Utilities
This chapter describes a set of utilities useful in system administration.
@menu
* ckaliases:: Check MTA alias files.
* bind replication:: A Framework for Replicating Master @command{bind} Server.
* firewall:: M4 Wrappers For Setting Firewalls.
* session-cleanup:: Manage PHP Sessions.
-* jabberd:: Jabberd dispatcher daemon.
@end menu
@node ckaliases
@section ckaliases
@pindex ckaliases
@command{Ckaliases} checks one or several
@command{sendmail}-style alias files for consistency. Following
checks are performed:
@enumerate 1
@item Transitivity check
This check discovers eventual circular dependencies.
@item Use of prohibited aliases
@end enumerate
The program returns 0 if all checks pass successfully. Otherwise,
it diagnoses encountered problems and exits with error code 1.
@cindex @option{--files-from}, ckaliases option
@cindex @option{-f}, ckaliases option
@cindex ckaliases, @option{--files-from} command line option
@cindex ckaliases, @option{-f} command line option
The program takes a list of alias files to be checked from its command
line. Additionally, the command line option @option{--files-from}
(@option{-f}) can be used to read the list of file names from a
plain-text file. Such a file must contain one file name per
line. Empty lines and lines beginning with @samp{#} are ignored. Any
file name that does not begin with a @samp{/} is searched in the same
directory where the list file resides. For example, assuming that the file
@file{/etc/mailman/LIST} contains:
@smallexample
mailman
mailman-test
@end smallexample
@noindent
then, the following invocation
@smallexample
$ ckaliases /etc/mail/aliases --files-from=/etc/mailman/LIST
@end smallexample
@noindent
instructs @command{ckaliases} to process files
@file{/etc/mail/aliases}, @file{/etc/mailman/mailman} and
@@ -1122,532 +1109,96 @@ rest of lines is split into two fields. First field specifies a
@dfn{regular expression} to search for in the session file. Second
field gives the @acronym{TTL} value in days for files that match this
regular expression. The first matching line is used.
A sample configuration file follows:
@smallexample
# Regex TTL (days)
^gallery_session_.* 1
mprogh 62
@end smallexample
@noindent
If a regular expression contains whitespace, use @command{shell}
escapes or quotes to protect it.
@subheading Syntax
@smallexample
session-cleanup @var{options} [@var{config-file}]
@end smallexample
@noindent
@var{options} are:
@table @option
@item -c @var{file}
Use @var{file} instead of @file{/etc/apache/php.ini}.
@item -h
@cindex @option{-h} command line option, @command{session-cleanup}
Display a short help summary.
@item -n
@cindex @option{-n} command line option, @command{session-cleanup}
Dry run. Only display which files will be removed, do not
actually remove them.
@item -t @var{ttl}
Set default session time to live. @var{ttl} is measured in days.
@item -v
@cindex @option{-v} command line option, @command{session-cleanup}
Verbose mode. Useful for debugging in conjunction with
@option{-n}.
@end table
-@node jabberd
-@section Jabberd
-@cindex jabberd
- The @command{jabberd} utility is a dispatcher daemon for
-@samp{Jabberd 2.x}
-(@uref{http://www.jabber.org/software/jabberd2x.shtml}). It is
-intended as a replacement for the similar utility shipped with the
-@samp{jabberd 2.x} package. There were two reasons that urged for the
-replacement: first, the original @command{jabberd} is written in Perl
-and consumes way too many resources because of that. Secondly, it is
-not flexible enough. In particular, it is only able to control jabber
-daemons, but cannot control external transports (such as @acronym{GG}
-or @acronym{GIT}.
-
-@menu
-* jabintro:: Jabberd Operation Overview
-* jabopts:: Command Line Options.
-* jabberd.cfg:: Main Jabberd Configuration File.
-@end menu
-
-@node jabintro
-@subsection Jabberd Operation Overview
-
- The @acronym{GSC} @command{jabberd} is a supervisor daemon that
-starts a number of @dfn{components} and controls their execution.
-A component is either a jabberd core component (as,
-e.g. @command{c2s}) or some external program (e.g. a transport). The
-daemon reads the list of components from its configuration file upon
-startup. By default, the configuration file is named
-@file{jabberd.cfg} and is located in @code{$sysconfdir} directory, but
-its exact location can be overridden at startup (see @option{-c}
-option, below). If run with the root privileges, @command{jabberd}
-switches to the privileges of a selected user (by default
-@samp{jabber}) right after startup. Then, the program changes file
-creation mask to a safe value (the default is @samp{037}). Unless
-explicitly requested to remain in the foreground, the utility detaches
-itself from the controlling terminal and switches to the background.
-The daemon starts the configured components
-in the order of their appearance in the configuration file. The exact
-command line options and arguments for each component are specified
-in the configuration file. If a particular subprocess prints its
-diagnostics on stderr or stdout, you may instruct @command{jabberd} to
-capture and divert it to a particular @command{syslogd}
-priority (@pxref{stdout}). After launching the components
-@command{jabberd} enters its main loop. It sleeps until either some
-component finishes or a signal is delivered. If a component finishes,
-@command{jabberd} scans its internal list to find components that
-depend on the finished one. Each such component is then terminated
-by sending it @acronym{SIGTERM} signal. Then, the finished component and
-its dependent components are started again. If a process is
-restarted more than 10 times within a two minutes interval, it is
-disabled for the next five minutes (the same way the standard
-@acronym{UNIX} @command{init} utility operates).
-
- The @command{jabberd} utility exits if it recieves any of the
-following signals: @acronym{SIGTERM}, @acronym{SIGQUIT},
-@acronym{SIGINT}. It attempts to restart itself if delivered the
-@acronym{SIGHUP} signal. This is possible only if the utility is
-started using its absolute file name. In any case, before exiting,
-the utility shuts down all components @emph{in the reverse
-order} of their appearance in the configuration file. The processes
-are shut down by sending them @acronym{SIGTERM} signals. If a
-component does not exit within a 1 second interval, it is re-sent the
-same signal. This procedure continues until either all components
-terminate or the @dfn{shutdown timeout} interval expires, whichever
-happens first. If the latter happens, any components still left
-running are slayed using @acronym{SIGKILL} signal. The default
-shutdown timeout is 5 seconds and it may be changed using
-@code{shutdown-timeout} configuration file statement (@pxref{cfgstat}).
-
- Two signals are special to @command{jabberd}: @acronym{SIGUSR1}
-and @acronym{SIGUSR2}. The @acronym{SIGUSR1} signal instructs the
-program to shut down and restart a particular component or a set
-of components. The list of components to be restarted is passed to
-the running program via a @dfn{control file} (@pxref{ctlfile}). This
-mechanism is used by @command{jabberd
---restart}. @FIXME-xref{restarting selected components}.
-
- The @acronym{SIGUSR2} signal instructs @command{jabberd} to return
-statistics about running components. It is used by @command{jabberd
---status} (@FIXME-pxref{showing runtime statistics}).
-
-@node jabopts
-@subsection Jabberd Invocation
-@UNREVISED{}
-
- By default, @command{jabberd} attempts to start in @dfn{dispatcher
-mode}, which is described in the previous subsection. If started
-without additional options, the program will use compiled-in defaults.
-Otherwise, the following options may be given:
-
-@table @option
-@item --config-file=@var{file}
-@itemx -c @var{file}
- Use @var{file} as the main configuration file.
-
-@item --debug
-@itemx -D
- Increase debugging level.
-
-@item --foreground
-@itemx -f
- Do not disconnect from the controlling terminal, but run in
-foreground mode instead. This option is mainly useful for debugging.
-It implies @option{-e} (see below).
-
-@item --force
- Attempt to start up even if another instance of @command{jabberd}
-seems to be running.
-
-@item --stderr
-@itemx -e
- Print all diagnostics on the standard output.
-@end table
-
- A set of options may be used to control the running instance of the
-program and request a detailed information about it.
-
-@table @option
-@item --restart @var{tag} [@var{tags}...]
-@itemx -r @var{tag} [@var{tag}...]
- Restart named components. Any number of arguments can be
-specified. Each @var{tag} must correspond to a valid tag in
-@file{jabberd.cfg} file.
-
-@item --status
- Display information about the running instance. Return 0 if the
-instance is running, 1 otherwise.
-
-@smallexample
-$ jabberd --status
-jabberd: [INFO] jabberd is running; PID 537
-retranslator jit/stderr 548
-retranslator jit/stdout 547
-retranslator ggtrans/stderr 545
-retranslator ggtrans/stdout 544
-core router 539 router -c /usr/local/etc/jabberd/router.xml
-core resolver 540 resolver -c /usr/local/etc/jabberd/resolver.xml
-core sm 541 sm -c /usr/local/etc/jabberd/sm.xml
-core s2s 542 s2s -c /usr/local/etc/jabberd/s2s.xml
-core c2s 543 c2s -c /usr/local/etc/jabberd/c2s.xml
-transport ggtrans 546 /usr/local/sbin/jggtrans -f
-transport jit 549 /usr/local/bin/jabberd-jit -c /usr/local/etc/jit.xml
-@end smallexample
-
-@item --stop
- Stop the running instance by sending it the @acronym{SIGTERM} signal.
-
-@item --reload
-@item --hup
- Restart the running instance by sending it the @acronym{SIGHUP} signal.
-@end table
-
- The following are informational options:
-
-@table @option
-@item --help
-@itemx -h
- Display a terse usage summary.
-
-@item --version
-@itemx -v
- Print program version and licensing information and exit.
-@end table
-
-@node jabberd.cfg
-@subsection Jabberd Configuration File
-
- The configuration file has a line-oriented syntax. Empty lines are
-ignored. Comments are introduced by a pound sign (@samp{#}),
-everything starting from the first occurrence of @samp{#} up to the
-end of line is ignored.
-
- Configuration statements consist of @dfn{command word} and one or
-several @dfn{arguments}, separated by any amount of whitespace. There
-are @samp{simple} and @samp{compound} configuration statements.
-Simple statements occupy a single line. Compound statements begin
-with a simple statement, occupy several lines, and end with @code{end}
-statement, appearing on a line by itself. Compound statements in turn
-contain another simple statements.
-
- The simplest working @file{jabberd.cfg} file is:
-
-@smallexample
-prog router /usr/local/etc/jabberd/router.xml
-prog resolver /usr/local/etc/jabberd/resolver.xml
-prog sm /usr/local/etc/jabberd/sm.xml
-prog s2s /usr/local/etc/jabberd/s2s.xml
-prog c2s /usr/local/etc/jabberd/c2s.xml
-@end smallexample
-
- This file instructs @command{jabberd} to launch five basic jabber
-components and supply the given configuration files to them. The
-@code{prog} statement is a simple statement taking one to two
-arguments. The first one names the program to lauch, and an optional
-second one specifies its configuration file. All the programs will be
-launched in the order of their appearance in the @file{jabberd.cfg}
-file, and will be shut down in the reverse order. The @code{prog}
-statement is designed expressly to start jabber core programs, it
-should not be used to start third-party programs.
-
- To start third-party programs, e.g. transports, use @code{transport}
-statement. It is a compound statement that has the following
-structure:
-
-@smallexample
-transport @var{tag}
- command @var{command-line}
- depend @var{modlist}
- stdout @var{prio}
- stderr @var{prio}
-end
-@end smallexample
-
- The sub-statement @code{command} specifies the full command line of
-the program. Notice that most transports behave as daemons. If it is
-so, you will have to use a special command line option requiring the
-transport to remain in the foreground (see the transport documentation
-to find this option). If the program prints its diagnostics on the
-standard error, the @code{stderr} statement can be used to capture and
-redirect it to the syslog. For example, @code{stderr debug},
-instructs @command{jabberd} to divert the program's standard error to
-the syslog, using priority @samp{debug}. In this case the log entries
-will be prefixed with @var{tag}, or, if it is absent, with the first
-word of @var{command-line}.
-
- For example, the @acronym{GG} transport can be started using the
-following statement:
-
-@smallexample
-transport ggtrans
- command /usr/local/sbin/jggtrans -f
- depend all
- stdout notice
- stderr notice
-end
-@end smallexample
-
-
- Several configuration statemenst control various aspects of the
-behavior of the @command{jabberd}. For example, @code{user} statement
-instructs it to switch to privileges of the named user after startup.
-By default the utility will switch to the privileges of the user
-@samp{jabberd}, this statement can be used to change that, for
-example:
-
-@smallexample
-user nobody
-@end smallexample
-
- When switching to user privileges, @command{jabberd} retains only
-the main user group, as specified in @file{/etc/passwd} file and drops
-all supplementary groups the user might be a member of. To retain the
-privileges of a supplementary group, name it with @code{group}
-statement. This statement can be used several times, to retain
-several groups. For example, the following statement switches to the
-privileges of user @samp{nobody} and retains two supplementary groups:
-@samp{staff} and @samp{ftp}:
-
-@smallexample
-user nobody
-group staff
-group ftp
-@end smallexample
-
- The following subsubsection describes all configuration file
-statements in detail.
-
-@menu
-* cfgstat:: Configuration File Statements
-* example:: An Example of the Configuration file
-@end menu
-
-@node cfgstat
-@subsubsection Configuration File Statements
-
-@deffn {Jabber Statement} transport [@var{tag}]
-Schedule a third-party program (e.g. a transport) for startup.
-@var{tag} specifies the prefix to identify this program in the
-diagnostic poutput. The @code{transport} statement is a block statement
-that have the following structure:
-
-@smallexample
-transport @var{tag}
- command @var{command-line}
- depend @var{component-list}
- stdout @var{prio}
- stderr @var{prio}
- facility @var{fac}
-end
-@end smallexample
-
-The subordinate statements are:
-
-@deffn {transport statement} command @var{command-line}
-Set the command line of the transport. @var{command-line} is parsed
-much the same way as in shell, except that no variable substitution
-takes place.
-@end deffn
-
-@deffn {transport statement} depend @var{component-list}
-Declare that this module depends on the components listed in
-@var{component-list}. Whenever one of these components is restarted,
-the transport will be restarted as well.
-
-@var{component-list} is either a whitespace-separated list of
-components, or one of the following words: @samp{all}, meaning that
-this transport depends on all core components started before it, and
-@samp{none}, meaning that it does not depend on anything.
-
-The default is @samp{all}.
-@end deffn
-
-@anchor{stdout}
-@deffn {transport statement} stdout @var{prio}
-@deffnx {transport statement} stderr @var{prio}
-Redirect program's standard output (or error, in case of
-@code{stderr}) to the given syslog priority. Allowed values for
-@var{prio} are: @samp{EMERG}, @samp{ALERT}, @samp{CRIT}, @samp{ERR},
-@samp{WARNING}, @samp{NOTICE}, @samp{INFO}, and @samp{DEBUG},
-optionally prefixed with @samp{LOG_}. The string matching is
-case-insensitive.
-@end deffn
-
-@deffn {transport statement} facility @var{facility}
-This statement does nothing. It is reserved for future use.
-
-@deffn {transport statement} pidfile @var{file}
-Remove @var{file} before starting the transport. It may be useful if
-the transport fails to delete its pidfile at the exit.
-@end deffn
-@end deffn
-
-@end deffn
-@deffn {Jabber Statement} group @var{name}
-Retain supplementary group @var{name} after switching to the user's
-privileges.
-@end deffn
-
-@deffn {Jabber Statement} pidfile @var{file}
-Write master process @acronym{ID} to @var{file}
-@end deffn
-
-@anchor{ctlfile}
-@deffn {Jabber Statement} ctlfile @var{file}
-Set location of the control file. This file is used to pass additional
-information to the running daemon program (e.g., when running
-@command{jabberd --restart @var{comp}}). The default value is
-@file{/usr/local/var/jabberd/.jabberd.ctl}.
-@end deffn
-
-@deffn {Jabber Statement} statfile @var{file}
-Set location of the statistics output file. This file is used to pass
-statistics information from the running daemon program (e.g., when running
-@command{jabberd --status}). The default value is
-@file{/usr/local/var/jabberd/.jabberd.stat}.
-@end deffn
-
-@deffn {Jabber Statement} prog @var{command} [@var{config-file}]
-Schedule a jabber core program for startup. The program name is given
-by @var{command} argument. Optional @var{config-file} gives the
-location of its configuration file. The program command line will be
-(parts enclosed by square brackets being optional):
-
-@smallexample
-@var{command} [-c @var{config-file}] [-D]
-@end smallexample
-
- The @option{-D} is given only if the @command{jabberd} debugging
-level is greater than 2 (e.g. when running it as @command{jabberd -DDD}).
-@end deffn
-
-@deffn {Jabber Statement} umask @var{n}
-Set file creation mask to @var{n}. The default umask is @samp{037}.
-@end deffn
-
-@deffn {Jabber Statement} user @var{name}
-Run with this user privileges.
-@end deffn
-
-@deffn {Jabber Statement} shutdown-timeout @var{n}
-Wait @var{n} seconds for all children to shut down.
-@end deffn
-
-@deffn {Jabber Statement} syslog-facility @var{facility}
-Output diagnostics to the given syslog facility. The @var{facility}
-may be one of the following: @samp{USER}, @samp{DAEMON}, @samp{AUTH},
-@samp{AUTHPRIV}, @samp{LOCAL0} through @samp{LOCAL7}, and @samp{MAIL}.
-The string matching is case insensitive. Optionally, @samp{LOG_}
-prefix may be prepended to @var{facility}.
-@end deffn
-
-@deffn {Jabber Statement} syslog-tag @var{tag}
-Mark @command{jabberd} diagnostics with the given syslog tag. By
-default @samp{jabberd} is used.
-@end deffn
-
-@node example
-@subsubsection An Example of @file{jabberd.cfg} file
-
-@smallexample
-# @r{Run as user @samp{jabber}}
-user jabber
-# @r{Retain two supplementary groups:}
-group staff
-group nobody
-
-# @r{Store @acronym{PID} to the given file}
-pidfile /usr/local/var/jabberd/pid/jabberd.pid
-# @r{Wait 10 seconds for the shutdown of the children.}
-shutdown-timeout 10
-
-# @r{Start basic jabberd framework:}
-prog router /usr/local/etc/jabberd/router.xml
-prog resolver /usr/local/etc/jabberd/resolver.xml
-prog sm /usr/local/etc/jabberd/sm.xml
-prog s2s /usr/local/etc/jabberd/s2s.xml
-prog c2s /usr/local/etc/jabberd/c2s.xml
-
-# @r{Start @acronym{GG} transport and capture its output:}
-transport ggtrans
- command /usr/local/sbin/jggtrans -f
- stdout notice
- stderr notice
-end
-
-# @r{Start @acronym{ICQ} transport and capture its output:}
-transport jit
- command /usr/local/bin/jabberd-jit -c /usr/local/etc/jit.xml
- # @r{Ensure the pidfile is removed at the startup.}
- pidfile /usr/local/var/jabberd/pid/jit.pid
- stdout notice
- stderr notice
-end
-@end smallexample
-
@node Sendmail mc Files, Startup Scripts, Root Utilities, Top
@chapter Sendmail @file{mc} Files
These are @command{sendmail} configurations for various machines.
To compile them you must have @command{sendmail} source tree
installed.
By default, @command{configure} will look for @command{sendmail}
source directory in @file{/usr/src} and @file{/usr/local/src}. If it
finds several @command{sendmail} versions, it will use the one with
the greatest version number.
@cindex @option{--with-sendmail-cfdir}
If the @command{sendmail} source directory is located elsewhere,
specify its exact location with
@option{--with-sendmail-cfdir=@var{dir}}, for example:
@smallexample
./configure --with-sendmail-cfdir=$HOME/sendmail-8.13.1
@end smallexample
@cindex @option{--with-sendmail-version}
Otherwise, to force @command{configure} to pick up a specified
version of @command{sendmail}, use
@option{--with-sendmail-version=@var{version}} option.
Once the package is configured, you can create all @file{.cf}
files using following command:
@smallexample
@group
cd mc
make cf
@end group
@end smallexample
To create only @file{@var{file}.cf}, run @code{make
@file{@var{file}.cf}}.
@node Startup Scripts, User Tools, Sendmail mc Files, Top
@chapter Startup Scripts
This chapter describes several startup files, designed mainly for
GNU/Linux. To use any of them, first read its description, then copy
it to the location where your startup scripts reside (@file{/etc/rc.d}
on @asis{Slackware}) and make sure it is executed at startup. Then
follow the script-specific recommendations set forth in the
corresponding section.
diff --git a/jabberd/Makefile.am b/jabberd/Makefile.am
deleted file mode 100644
index 726eeb4..0000000
--- a/jabberd/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is part of GSC
-# Copyright (C) 2005, 2006, 2007 Sergey Poznyakoff
-#
-# GSC is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GSC is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GSC. If not, see <http://www.gnu.org/licenses/>.
-
-bin_PROGRAMS = jabberd
-jabberd_SOURCES = main.c progman.c jabberd.h
-LDADD = ../lib/libgsc.a ../gnu/libgnu.a
-INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/gnu -I../gnu
-AM_CPPFLAGS=-DSYSCONFDIR=\"$(sysconfdir)\"\
- -DSTATEDIR=\"$(localstatedir)/jabberd\"
diff --git a/jabberd/jabberd.h b/jabberd/jabberd.h
deleted file mode 100644
index 1537db4..0000000
--- a/jabberd/jabberd.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* jabberd - a dispatcher program for jabber 2.x
- Copyright (C) 2007 Sergey Poznyakoff
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as publi