From 3131c081550e7eefdfddddb5939145a892863a44 Mon Sep 17 00:00:00 2001
From: Alexey Shchepin <alexey@process-one.net>
Date: Sun, 13 Jul 2003 09:00:01 +0000
Subject: * doc/guide.tex: Updated (thanks to Sergei Golovan)

* src/expat_erl.c: Added #ifdef for WIN32 (thanks to Sergei
Golovan)
* src/mod_irc/iconv_erl.c: Likewise

* src/configure.erl: Defines ERLANG_DIR variable (thanks to Sergei
Golovan)
* **/Makefile: Use ERLANG_DIR (thanks to Sergei Golovan)

* **/Makefile.win32: Makefiles for windows build (thanks to Sergei
Golovan)
* src/configure.bat: Configuration script for windows (thanks to
Sergei Golovan)

SVN Revision: 123
---
 doc/guide.tex | 110 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 89 insertions(+), 21 deletions(-)

(limited to 'doc/guide.tex')

diff --git a/doc/guide.tex b/doc/guide.tex
index 8bfd33c6c..0142437d4 100644
--- a/doc/guide.tex
+++ b/doc/guide.tex
@@ -31,7 +31,7 @@
 \newcommand{\modprivate}{\texttt{mod\_private}}
 \newcommand{\modtime}{\texttt{mod\_time}}
 \newcommand{\modversion}{\texttt{mod\_version}}
-
+c
 %\setcounter{tocdepth}{3}
 
 
@@ -39,7 +39,7 @@
 \author{Alexey Shchepin \\
   \ahrefurl{mailto:alexey@sevcom.net} \\
   \ahrefurl{xmpp:aleksey@jabber.ru}}
-\date{February 11, 2003}
+\date{July 12, 2003}
 
 \begin{document}
 \begin{titlepage}
@@ -62,21 +62,29 @@ server.  It is writen mostly in Erlang.
 
 The main features of \ejabberd{} is:
 \begin{itemize}
+\item Works on most of popular platforms: *nix (tested on Linux and FreeBSD)
+  and Win32
 \item Distributed: You may run \ejabberd{} on a cluster of machines and all of
   them will serve one Jabber domain.
 \item Fault-tolerance: You may setup an \ejabberd{} cluster so that all the
   information required for a properly working service will be stored
-  permanently on more then one node.  This means that if one of the nodes
+  permanently on more than one node.  This means that if one of the nodes
   crashes, then the others will continue working without disruption.
   You can also add or replace more nodes ``on the fly''.
+\item Built-in \footahref{http://www.jabber.org/jeps/jep-0045.html}{Multi-User
+    Chat} service
+\item Built-in IRC transport
+\item Built-in
+  \footahref{http://www.jabber.org/jeps/jep-0060.html}{Publish-Subscribe}
+  service
+\item Built-in Jabber Users Directory service based on users vCards
 \item Support for
   \footahref{http://www.jabber.org/jeps/jep-0030.html}{JEP-0030}
   (Service Discovery).
 \item Support for
   \footahref{http://www.jabber.org/jeps/jep-0039.html}{JEP-0039}
   (Statistics Gathering).
-\item Support for \ns{xml:lang} attribute in many XML elements.
-\item JUD based on users vCards.
+\item Support for \ns{xml:lang} attribute in many XML elements
 \end{itemize}
 
 
@@ -89,6 +97,9 @@ The main features of \ejabberd{} is:
 \subsection{Installation Requirements}
 \label{sec:installreq}
 
+\subsubsection{Unix}
+\label{sec:installrequnix}
+
 To compile \ejabberd{}, you will need the following packages:
 \begin{itemize}
 \item GNU Make;
@@ -97,6 +108,21 @@ To compile \ejabberd{}, you will need the following packages:
 \item Erlang/OTP R8B or later.
 \end{itemize}
 
+\subsubsection{Windows}
+\label{sec:installreqwin}
+
+To compile \ejabberd{} in MS Windows environment, you will need the following
+packages:
+\begin{itemize}
+\item MS Visual C++~6.0 Compiler
+\item \footahref{http://www.erlang.org/download/otp_win32_R8B-2.exe}{Erlang
+    emulator version~5.1.2}
+\item \footahref{http://prdownloads.sourceforge.net/expat/expat_win32bin_1_95_6.exe?download}{Expat~1.95.6}
+\item \footahref{http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.8-1-lib.exe?download}{Iconv~1.8} (optional)
+\end{itemize}
+
+
+
 \subsection{Obtaining}
 \label{sec:obtaining}
 
@@ -112,11 +138,10 @@ The latest alpha version can be retrieved from CVS\@.
 
 
 
-
-
-
 \subsection{Compilation}
 \label{sec:compilation}
+\subsubsection{Unix}
+\label{sec:compilationunix}
 
 \begin{verbatim}
 ./configure
@@ -125,6 +150,48 @@ make
 
 TBD
 
+\subsubsection{Windows}
+\label{sec:compilationwin}
+
+\begin{enumerate}
+\item Install Erlang emulator (for example, into \verb|C:\Program Files\erl5.1.2|).
+\item Install Expat library into \verb|C:\Program Files\Expat-1.95.6|
+  directory.  Copy file \verb|C:\Program Files\Expat-1.95.6\Libs\libexpat.dll|
+  to your Windows system directory (for example, \verb|C:\WINNT| or
+  \verb|C:\WINNT\System32|)
+\item Install Iconv library into \verb|C:\Program Files\GnuWin32| directory.
+  Copy file \verb|C:\Program Files\GnuWin32\bin\libiconv-2.dll| to your
+  Windows system directory.
+  
+  Note: Instead of copying libexpat.dll and libiconv-2.dll to Windows
+  directory, you can add directories
+  \verb|C:\Program Files\Expat-1.95.6\Libs| and
+  \verb|C:\Program Files\GnuWin32\bin| to \verb|PATH| environment
+  variable.
+\item Being in \verb|ejabberd\src| directory run:
+\begin{verbatim}
+configure
+nmake -f Makefile.win32
+\end{verbatim}
+\item To build MUC, IRC and pub/sub modules run
+\begin{verbatim}
+nmake -f Makefile.win32
+\end{verbatim}
+  in \verb|ejabberd\src\mod_muc|, \verb|ejabberd\src\mod_muc| and
+  \verb|ejabberd\src\mod_pubsub| directories
+\item Edit file \verb|ejabberd\src\ejabberd.cfg| and run
+\begin{verbatim}
+werl -s ejabberd -name ejabberd
+\end{verbatim}
+\item Enjoy!
+\end{enumerate}
+
+Some recent versions of Erlang distribution it seems have bug in crypto
+application, so ejabberd could be built but users can't use digest
+authentication (only plain-text).  Also it seems SSL support is broken in
+Windows distribution of Erlang emulator.
+
+
 
 
 %\subsection{Initial Configuration}
@@ -134,7 +201,7 @@ TBD
 \subsection{Starting}
 \label{sec:starting}
 
-\ldots{} To use more then 1024 connections, you will need to set environment
+\ldots{} To use more than 1024 connections, you will need to set environment
 variable \texttt{ERL\_MAX\_PORTS}:
 \begin{verbatim}
 export ERL_MAX_PORTS=32000
@@ -323,7 +390,8 @@ runned on them.  Each element of list is a tuple with following elements:
 \begin{itemize}
 \item Port number;
 \item Module that serves this port;
-\item Function in this module that starts connection (likely will be removed);
+\item Function in this module that starts connection (likely will be removed in
+  future versions of \ejabberd);
 \item Options to this module.
 \end{itemize}
 
@@ -340,7 +408,7 @@ Currently three modules are implemented:
     value is ``\texttt{none}''.
   \end{description}
 \item[\texttt{ejabberd\_s2s\_in}] This module serves incoming S2S connections.
-\item[\texttt{ejabberd\_service}] This module serves connections to \Jabber{}
+\item[\texttt{ejabberd\_service}] This module serves connections from \Jabber{}
   services (i.\,e.\ that use the \texttt{jabber:component:accept} namespace).
 \end{description}
 
@@ -521,7 +589,7 @@ connections, registered services, etc\ldots
 
 
 
-Each \ejabberd{} node must run following modules:
+Each \ejabberd{} node have following modules:
 \begin{itemize}
 \item router;
 \item local router.
@@ -537,15 +605,15 @@ them based on their destinations domains.  It has two tables: local and global
 routes.  First, domain of packet destination searched in local table, and if it
 found, then the packet is routed to appropriate process.  If no, then it
 searches in global table, and is routed to the appropriate \ejabberd{} node or
-process.  If itdoes not exists in either table, then it sent to the S2S
+process.  If it does not exists in either tables, then it sent to the S2S
 manager.
 
 
 \subsubsection{Local Router}
 
 This module routes packets which have a destination domain equal to this server
-name.  If destination JID has a node, then it routed to the session manager,
-else it is processed depending on it's content.
+name.  If destination JID has a non-empty user part, then it routed to the
+session manager, else it is processed depending on it's content.
 
 
 \subsubsection{Session Manager}
@@ -595,10 +663,10 @@ these queries.  Possible values are:
   IQ queries of namespace with this discipline, and processing of this queue
   done in parallel with processing of other packets. This discipline is most
   recommended.
-\item[\texttt{parallel}] In this case for all packets of namespace with this
-  discipline spawned separate Erlang process, so all this packets processed in
-  parallel.  Although spawning of Erlang process have relative low cost, this
-  can broke server normal work, because Erlang have limit of 32000 processes.
+\item[\texttt{parallel}] In this case for all packets with this discipline
+  spawned separate Erlang process, so all these packets processed in parallel.
+  Although spawning of Erlang process have relative low cost, this can broke
+  server normal work, because Erlang have limit of 32000 processes.
 \end{description}
 
 Example:
@@ -720,8 +788,8 @@ on figure~\ref{fig:discorus} (compare with figure~\ref{fig:disco}) showed reply
 on following query:
 \begin{verbatim}
 <iq id='5'
-        to='e.localhost'
-        type='get'>
+    to='e.localhost'
+    type='get'>
   <query xmlns='http://jabber.org/protocol/disco#items'
          xml:lang='ru'/>
 </iq>
-- 
cgit v1.2.3

