XEmacs 21.2.44 "Thalia".
[chise/xemacs-chise.git-] / man / xemacs / packages.texi
index e2202d8..5aaeeaf 100644 (file)
@@ -17,15 +17,16 @@ local needs with safe removal of unnecessary code.
 
 @menu
 * Package Terminology:: Understanding different kinds of packages.
 
 @menu
 * Package Terminology:: Understanding different kinds of packages.
-* Using Packages::      How to install and use packages.
-* Building Packages::   Building packages from sources.
+* Installing Packages:: How to install packages.
+* Building Packages::   Building packages from CVS sources.
+* Local.rules File::    This is an important file don't forget to create/edit it.
 * Creating Packages::   The basics.
 * Creating Packages::   The basics.
-* Available Packages::  A brief, out-of-date, directory of packaged LISP.
+* Available Packages::  A brief directory of packaged LISP.
 @end menu
 
 @end menu
 
-@node Package Terminology, Using Packages, , Packages
+@node Package Terminology, Installing Packages, , Packages
 @comment  node-name,  next,  previous,  up
 @comment  node-name,  next,  previous,  up
-
+@heading Package Terminology:
 @subsection Package Flavors
 
 There are two main flavors of packages.
 @subsection Package Flavors
 
 There are two main flavors of packages.
@@ -41,13 +42,14 @@ may not in general safely remove any of them.
 A single-file package is an aggregate collection of thematically
 related but otherwise independent lisp files.  These files are bundled 
 together for download convenience and individual files may be deleted at
 A single-file package is an aggregate collection of thematically
 related but otherwise independent lisp files.  These files are bundled 
 together for download convenience and individual files may be deleted at
-will without any loss of functionality.
+will without any loss of functionality.  However, we would recommend
+that you follow this rule of thumb: "When in doubt, don't delete".
 @end itemize
 
 @subsection Package Distributions
 @end itemize
 
 @subsection Package Distributions
-
+@cindex package distributions
 XEmacs Lisp packages are distributed in two ways, depending on the
 XEmacs Lisp packages are distributed in two ways, depending on the
-intended use.  Binary Packages are for installers and end-users and may
+intended use.  Binary Packages are for installers and end-users that can
 be installed directly into an XEmacs package directory.  Source Packages
 are for developers and include all files necessary for rebuilding
 bytecompiled lisp and creating tarballs for distribution.
 be installed directly into an XEmacs package directory.  Source Packages
 are for developers and include all files necessary for rebuilding
 bytecompiled lisp and creating tarballs for distribution.
@@ -64,16 +66,20 @@ in regular packages) source code plus all of the files necessary to
 build distribution tarballs (Unix Tar format files, gzipped for space
 savings).
 
 build distribution tarballs (Unix Tar format files, gzipped for space
 savings).
 
-@node Using Packages, Building Packages, Package Terminology, Packages
+Currently, source packages are only available via CVS.  See
+@url{http://cvs.xemacs.org/} for details.
+@node Installing Packages, Building Packages, Package Terminology, Packages
 @comment  node-name,  next,  previous,  up
 @comment  node-name,  next,  previous,  up
-
+@cindex installing packages
+@cindex install
+@heading Installing Packages:
 @subsection Getting Started
 
 When you first download XEmacs 21, you will usually first grab the
 @dfn{core distribution},
 @cindex core distribution
 a file called
 @subsection Getting Started
 
 When you first download XEmacs 21, you will usually first grab the
 @dfn{core distribution},
 @cindex core distribution
 a file called
-@file{xemacs-21.0.tar.gz}. (Replace the @t{21.0} by the current version
+@file{xemacs-21.x.x.tar.gz}. (Replace the @t{21.x.x} by the current version
 number.)  The core distribution contains the sources of XEmacs and a
 minimal set of Emacs Lisp files, which are in the subdirectory named
 @file{lisp}.  This subdirectory used to contain all Emacs Lisp files
 number.)  The core distribution contains the sources of XEmacs and a
 minimal set of Emacs Lisp files, which are in the subdirectory named
 @file{lisp}.  This subdirectory used to contain all Emacs Lisp files
@@ -81,10 +87,10 @@ distributed with XEmacs.  Now, to conserve disk space, most
 non-essential packages were made optional.
 
 @subsection Choosing the Packages You Need
 non-essential packages were made optional.
 
 @subsection Choosing the Packages You Need
-
-The available packages can currently be found in the same ftp directory
+@cindex choosing packages
+The @ref{Available Packages} can currently be found in the same ftp directory
 where you grabbed the core distribution from, and are located in the
 where you grabbed the core distribution from, and are located in the
-subdirectory @file{packages/binary-packages}.  Package file names follow
+subdirectory @file{packages}.  Package file names follow
 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
 
 If you have EFS @ref{(EFS)}, packages can be installed over the network.
 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
 
 If you have EFS @ref{(EFS)}, packages can be installed over the network.
@@ -92,11 +98,11 @@ Alternatively, if you have copies of the packages locally, you can
 install packages from a local disk or CDROM.
 
 The file @file{etc/PACKAGES} in the core distribution contains a list of
 install packages from a local disk or CDROM.
 
 The file @file{etc/PACKAGES} in the core distribution contains a list of
-the packages available at the time of the XEmacs release.  Packages are
+the @ref{Available Packages} at the time of the XEmacs release.  Packages are
 also listed on the @code{Options} menu under:
 
 @example
 also listed on the @code{Options} menu under:
 
 @example
-        Options->Customize->Emacs->Packages
+        Options -> Customize -> Emacs -> Packages
 @end example
 
 However, don't select any of these menu picks unless you actually want 
 @end example
 
 However, don't select any of these menu picks unless you actually want 
@@ -108,7 +114,7 @@ are installed, using the visual package browser and installer.  You can
 access it via the menus:
 
 @example
 access it via the menus:
 
 @example
-        Options->Manage Packages->List & Install
+        Options -> Manage Packages -> List & Install
 @end example
 
 Or, you can get to it via the keyboard:
 @end example
 
 Or, you can get to it via the keyboard:
@@ -129,62 +135,137 @@ that you need @code{thingatpt}, type:
 M-x package-get-package-provider RET thingatpt
 @end example
 
 M-x package-get-package-provider RET thingatpt
 @end example
 
-which will return something like (fsf-compat "1.06"). You can the use
+which will return something like (fsf-compat "1.08"). You can the use
 one of the methods above for installing the package you want.
 
 @subsection XEmacs and Installing Packages
 
 one of the methods above for installing the package you want.
 
 @subsection XEmacs and Installing Packages
 
-Normally, packages are installed over the network, using EFS
-@ref{(EFS)}.  However, you may not have network access, or you may
-already have some or all of the packages on a local disk, such as a
-CDROM.  If you want to install from a local disk, you must first tell
-XEmacs where to find the package binaries.  This is done by adding a line
-like the following to your init file:
+There are three main ways to install packages:
 
 
-@example
-(setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
-                               package-get-remote))
-@end example
+@menu
+* Sumo::              All at once, using the 'Sumo Tarball'.
+* Manually::          Using individual package tarballs.
+* Automatically::     Using the package tools from XEmacs.
+* Which Packages::    Which packages to install.
+* Removing Packages:: Removing packages.
+@end menu
 
 
-@xref{Init File}.
+But regardless of the method you use to install packages, they can only
+be used by XEmacs after a restart.
 
 
-Here, you'd change @file{/my/path/to/package/binaries} to be the path
-to your local package binaries.  Next, restart XEmacs, and you're ready
-to go (advanced users can just re-evaluate the sexp).
+@node Sumo, Manually, ,Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex sumo package install
+@heading Installing the Sumo Packages:
+Those with little time, cheap connections and plenty of disk space can
+install all the packages at once using the sumo tarballs.
+Download the file: @file{xemacs-sumo.tar.gz}
 
 
-If you are installing from a temporary, one-time directory, you can also 
-add these directory names to @code{package-get-remote} using:
+For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
 
 
-@example
-        M-x pui-add-install-directory
-@end example
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 19MB and 4.5MB (gzipped) respectively.
+
+Install them by:
+
+@code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
 
 
-Note, however, that any directories added using this function are not
-saved; this information will be lost when you quit XEmacs.
+Or, if you have GNU tar:
+
+@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
+
+As the Sumo tarballs are not regenerated as often as the individual
+packages, it is recommended that you use the automatic package tools
+afterwards to pick up any recent updates.
+
+@node Manually, Automatically, Sumo, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex manual package install
+@heading Manual Package Installation:
+Fetch the packages from the FTP site, CD-ROM whatever. The filenames
+have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
+a fresh install it is sufficient to untar the file at the top of the
+package hierarchy. 
 
 
-If you're going to install over the network, you only have to insure
-that EFS @ref{(EFS)} works, and that it can get outside a firewall, if
-you happen to be behind one.  You shouldn't have to do anything else;
-XEmacs already knows where to go. However you can add your own mirrors
-to this list. See @code{package-get-remote}.
+Note: If you are upgrading packages already installed, it's best to
+remove the old package first @ref{Removing Packages}.
 
 
-The easiest way to install a package is to use the visual package
-browser and installer, using the menu pick:
+For example if we are installing the @file{xemacs-base}
+package (version 1.48):
 
 @example
 
 @example
-        Options->Manage Packages->List & Install
+   mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
+   cd $prefix/lib/xemacs/xemacs-packages RET
+   gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+   tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
 @end example
 @end example
-or
+
+For MULE related packages, it is best to untar into the mule-packages
+hierarchy, i.e. for the @file{mule-base} package, version 1.37:
+
 @example
 @example
-        Options->Manage Packages->Using Custom->Select-> ...
+   mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
+   cd $prefix/lib/xemacs/mule-packages RET
+   gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+   tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
 @end example
 
 @end example
 
-You can also access it using the keyboard:
+@node Automatically, Which Packages ,Manually, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex automatic package install
+@cindex package tools
+@heading Automatic Package Installation:
+XEmacs comes with some tools to make the periodic updating and
+installing easier. It will notice if new packages or versions are
+available and will fetch them from the FTP site.
+
+Unfortunately this requires that a few packages are already in place.
+You will have to install them by hand as above or use a SUMO tarball.
+This requirement will hopefully go away in the future. The packages
+you need are:
 
 @example
 
 @example
-M-x pui-list-packages
+   efs          - To fetch the files from the FTP site or mirrors.
+   xemacs-base  - Needed by efs.
+
+and optionally:
+
+   mule-base    - Needed if you want to use XEmacs with MULE.
 @end example
 
 @end example
 
+After installing these by hand, fire up XEmacs and follow these
+steps.
+
+Note: The menus in XEmacs 21.2.x and up have changed slightly, so
+where I mention "Options -> Manage Packages", substitute "Tools ->
+Packages".
+
+@enumerate 1
+@item Choose a download site.
+via menu: Options -> Manages Packages -> Add Download Site 
+via keyb: @code{M-x customize-variable RET package-get-remote RET}
+(put in the details of remote host and directory)
+
+If the package tarballs _AND_ the package-index file are in a
+local directory, you can: @code{M-x pui-add-install-directory RET}
+
+@item Obtain a list of packages and display the list in a buffer named
+@file{*Packages*}.
+menu: Options -> Manage Packages -> List & Install
+keyb: @code{M-x pui-list-packages RET}
+
+XEmacs will now connect to the remote site and download the
+latest package-index file.  If you see an error about the
+package-index entries not being PGP signed, you can safely
+ignore this because PGP has not been integrated into the XEmacs
+package tools yet.
+
 The visual package browser will then display a list of all packages.
 Help information will be displayed at the very bottom of the buffer; you
 may have to scroll down to see it.  You can also press @kbd{?} to get
 The visual package browser will then display a list of all packages.
 Help information will be displayed at the very bottom of the buffer; you
 may have to scroll down to see it.  You can also press @kbd{?} to get
@@ -237,30 +318,26 @@ Kill the package buffer.
 Moving the mouse over a package will also cause additional information
 about the package to be displayed in the minibuffer.
 
 Moving the mouse over a package will also cause additional information
 about the package to be displayed in the minibuffer.
 
-@subsection Other package installation interfaces
 
 
-For an alternative package interface, you can select packages from the
-customize menus, under:
+@item Choose the packages you wish to install.
+mouse: Click button 2 on the package name.
+ keyb: @kbd{RET} on the package name
 
 
-@example
-        Options->Customize->Emacs->Packages-> ...
-@end example
-or
-@example
-        Options->Manage Packages->Using Custom->Select-> ...
-@end example
+@item Make sure you have everything you need.
+menu: Packages -> Add Required
+keyb: @kbd{r}
 
 
-Set their state to on, and then do:
+XEmacs will now search for packages that are required by the
+ones that you have chosen to install and offer to select
+those packages also.
 
 
-@example
-        Options->Manage Packages->Using Custom->Update Packages
-@end example
+For novices and gurus alike, this step can save your bacon.
+It's easy to forget to install a critical package.
 
 
-This will automatically retrieve the packages you have selected from the
-XEmacs ftp site or your local disk, and install them into
-XEmacs.  Additionally it will update any packages you already have
-installed to the newest version.  Note that if a package is newly
-installed you will have to restart XEmacs for the change to take effect.
+@item Download and install the packages.
+menu: Packages -> Install/Remove Selected
+keyb: @kbd{x}
+@end enumerate
 
 You can also install packages using a semi-manual interface:
 
 
 You can also install packages using a semi-manual interface:
 
@@ -269,118 +346,102 @@ M-x package-get-all <return>
 @end example
 
 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
 @end example
 
 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
-will search for the latest version (as listed in the lisp file
-@file{lisp/package-get-base.el}), and install it and any packages that
+will search for the latest version and install it and any packages that
 it depends upon.
 
 it depends upon.
 
-@subsection Manual Binary Package Installation
-
-Pre-compiled, binary packages can be installed in either a system
-package directory (this is determined when XEmacs is compiled), or in
-one of the following
-subdirectories of your @file{$HOME} directory:
-
-@example
-~/.xemacs/mule-packages
-~/.xemacs/xemacs-packages
-@end example
-
-Packages in the former directory will only be found by a Mule-enabled
-XEmacs.
-
-XEmacs does not have to be running to install binary packages, although
-XEmacs will not know about any newly-installed packages until you
-restart XEmacs.  Note, however, that installing a newer version of a
-package while XEmacs is running could cause strange errors in XEmacs;
-it's best to exit XEmacs before upgrading an existing package.
-
-To install binary packages manually:
-
-@enumerate
-@item
-Download the package(s) that you want to install.  Each binary package
-will typically be a gzip'd tarball.
-
-@item
-Decide where to install the packages: in the system package
-directory, or in @file{~/.xemacs/mule-packages} or
-@file{~/.xemacs/xemacs-packages}, respectively.  If you want to install
-the packages in the system package directory, make sure you can write
-into that directory.  If you want to install in your @file{$HOME}
-directory, create the directory, @file{~/.xemacs/mule-packages} or
-@file{~/.xemacs/xemacs-packages}, respectively.
-
-@item
-Next, @code{cd} to the directory under which you want to install the
-package(s).
-
-@item
-From this directory, uncompress and extract each of the gzip'd tarballs
-that you downloaded in step 1.  Unix and Cygnus cygwin users will
-typically do this using the commands:
-
-@example
-        gunzip < package.tar.gz | tar xvf -
-@end example
-
-Above, replace @file{package.tar.gz} with the filename of the
-package that you downloaded in step 1.
+@node Which Packages, Removing Packages, Automatically, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex which packages
+@cindex choosing packages
+@heading Which Packages to Install:
+This is difficult to say. When in doubt install a package. If you
+administrate a big site it might be a good idea to just install
+everything. A good minimal set of packages for XEmacs-latin1 would be
 
 
-Of course, if you use GNU @code{tar}, you could also use:
+xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
+edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
+text-modes, time
 
 
-@example
-        tar xvzf package.tar.gz
-@end example
+If you are using the XEmacs package tools, don't forget to do:
 
 
-@comment What about native MS Windows users???
+       Packages -> Add Required
 
 
-@item
-That's it.  Quit and restart XEmacs to get it to recognize any new or
-changed packages.
+To make sure you have everything that the packages you have chosen to
+install need.
 
 
-@end enumerate
+See also @ref{Available Packages} for further descriptions of the individual
+packages.
 
 
-@node Building Packages, Creating Packages, Using Packages, Packages
+@node Removing Packages, ,Which Packages, Installing Packages
 @comment  node-name,  next,  previous,  up
 @comment  node-name,  next,  previous,  up
-
-Source packages are available from the @file{packages/source-packages}
-subdirectory of your favorite XEmacs distribution site.  Alternatively,
-they are available via CVS from @file{cvs.xemacs.org}.  Look at
-@file{http://cvs.xemacs.org} for instructions.
+@cindex removing packages
+@cindex deleting packages
+@heading Removing Packages:
+Because the exact files and their locations contained in a package may
+change it is recommended to remove a package first before installing a
+new version. In order to facilitate removal each package contains an
+@file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
+to the package. 
+
+No need to panic, you don't have to go through the
+@file{pkinfo/MANIFEST.pkgname} and manually delete the files.  Instead, use
+@code{M-x package-admin-delete-binary-package RET}.
+
+Note that the interactive package tools included with XEmacs already do
+this for you.
+
+@node Building Packages, Local.rules File, Installing Packages, Packages
+@comment  node-name,  next,  previous,  up
+@cindex building packages
+@cindex package building
+@heading Building Packages:
+Currently, source packages are only available via anonymous CVS.  See
+@url{http://cvs.xemacs.org/} for details of checking out the
+@file{xemacs-packages} module.
 
 @subsection Prerequisites for Building Source Packages
 
 
 @subsection Prerequisites for Building Source Packages
 
-You must have GNU @code{cp}, GNU @code{install} (or a BSD compatible
-@code{install} program) GNU @code{make} (3.75 or later preferred),
-@code{makeinfo} (1.68 from @code{texinfo-3.11} or later required), GNU
-@code{tar} and XEmacs 21.0.  The source packages will untar into a
-correct directory structure.  At the top level you must have
-@file{XEmacs.rules} and @file{package-compile.el}.  These files are
-available from the XEmacs FTP site from the same place you obtained your
-source package distributions.
+@table @code
+@item GNU cp
+@item GNU ginstall 
+(or a BSD compatible install program).
+@item GNU make 
+(3.75 or later preferred).
+@item makeinfo 
+(1.68 from texinfo-3.11 or later required).
+@item GNU tar
+(or equivalent).
+@item GNU gzip
+(or equivalent).
+@item A properly configured @file{Local.rules} file.
+@ref{Local.rules File}.
+@end table
+And of course, XEmacs 21.0 or higher.
 
 @subsection What You Can Do With Source Packages
 
 
 @subsection What You Can Do With Source Packages
 
-NB:  A global build operation doesn't exist yet as of 13 January 1998.
-
-Source packages are most useful for creating XEmacs package tarballs
-for installation into your own XEmacs installations or for
+The packages CVS sources are most useful for creating XEmacs package
+tarballs for installation into your own XEmacs installations or for
 distributing to others.
 
 Supported operations from @file{make} are:
 
 @table @code
 distributing to others.
 
 Supported operations from @file{make} are:
 
 @table @code
-@item clean
-Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
-
-@item distclean
-Remove XEmacs backups as well as the files deleted by @code{make clean}.
-
 @item all
 Bytecompile all files, build and bytecompile byproduct files like
 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
 of TeXinfo documentation if present.
 
 @item all
 Bytecompile all files, build and bytecompile byproduct files like
 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
 of TeXinfo documentation if present.
 
+@item bindist
+Does a @code{make all} as well as create a binary package tarball in the
+staging directory.
+
+@item install
+Bytecompile all files, build and bytecompile byproduct files like
+@file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
+of TeXinfo documentation if present.  And install everything into the
+staging directory.
+
 @item srckit
 Usually aliased to @code{srckit-std}.  This does a @code{make
 distclean} and creates a package source tarball in the staging
 @item srckit
 Usually aliased to @code{srckit-std}.  This does a @code{make
 distclean} and creates a package source tarball in the staging
@@ -401,11 +462,84 @@ beyond the basic templates so this is not yet complete.
 Runs the rules @code{srckit} followed by @code{binkit}.  This is
 primarily of use by XEmacs maintainers producing files for distribution.
 
 Runs the rules @code{srckit} followed by @code{binkit}.  This is
 primarily of use by XEmacs maintainers producing files for distribution.
 
+@item clean
+Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
+
+@item distclean
+Remove all created files.
 @end table
 
 @end table
 
-@node Creating Packages, Available Packages, Building Packages, Packages
+@node Local.rules File, Creating Packages, Building Packages, Packages
 @comment  node-name,  next,  previous,  up
 @comment  node-name,  next,  previous,  up
+@cindex local.rules
+@heading The Local.rules File:
+This file is used when building and installing packages from source.  In
+the top level of the CVS module, @file{xemacs-packages}, contains the
+file, @file{Local.rules.template}.  Simply copy that to
+@file{Local.rules} and edit it to suit your needs.
+
+These are the variables in 'Local.rules' that you will need to
+address. 
+
+@table @var
+@item symlink = 
+Set this to 't' if you want to do a "run in place".
+Setting this doesn't work well with 'make bindist'
+
+@item XEMACS_PACKAGES =
+This is where you set the normal packages that you
+want to install. eg:
+@example
+      XEMACS_PACKAGES = libs/xemacs-base comm/bbdb
+@end example
+
+@item XEMACS_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Packages
+Set this to where you want normal packages to be
+installed to.
 
 
+@item PACKAGE_INDEX = package-index
+If you want the package-index file to have a different
+name, change this.
+
+@item BUILD_WITHOUT_MULE =
+Building from CVS defaults to building the Mule
+packages.  Set this to 't' if you don't want/have Mule
+
+@item MULE_PACKAGES =
+Same as for 'XEMACS_PACKAGES' except you list the Mule
+packages you want to install here. eg:
+@example
+      MULE_PACKAGES = mule/mule-base mule/skk
+@end example
+
+@item MULE_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Mule-Packages
+Set this to where you want Mule packages installed
+to.  Note:  'make bindist' does not use this variable.
+
+@item XEMACS = xemacs
+If your XEmacs isn't in your path, change this.
+
+@item XEMACS_NATIVE_NT =
+Set this to 't' if you are building on WinNT.
+
+@item INSTALL = install -c
+The path to your BSD compatible install program.
+
+@item TAR = tar
+The path to your tar program
+
+@item BZIP2 =
+If you want bzip2 tarballs, set this.
+
+@item MAKEINFO = makeinfo
+The path to your makeinfo program
+@end table
+
+
+@node Creating Packages, Available Packages, Local.rules File, Packages
+@comment  node-name,  next,  previous,  up
+@cindex creating packages
+@heading Creating Packages:
 Creating a package from an existing Lisp library is not very difficult.
 
 In addition to the Lisp libraries themselves, you need a
 Creating a package from an existing Lisp library is not very difficult.
 
 In addition to the Lisp libraries themselves, you need a
@@ -530,14 +664,15 @@ or a future revision of this manual for details.
 
 @node Available Packages,  , Creating Packages, Packages
 @comment  node-name,  next,  previous,  up
 
 @node Available Packages,  , Creating Packages, Packages
 @comment  node-name,  next,  previous,  up
+@cindex available packages
+@cindex packages
+@heading Available Packages:
+This section lists the Lisp packages that are currently available from
+xemacs.org and it's mirrors.  If a particular package that you are
+looking for isn't here, please send a message to the
+@email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
 
 
-This section is surely out-of-date.  If you're sure that XEmacs is
-able to do something, but your installed XEmacs won't do it for you,
-it's probably in a package.  If you can't find it in this section,
-that's a bug---please report it.  It is very hard to keep this section
-up-to-date; your reports, comments, and questions will help a lot.
-
-This data is up-to-date as of 10 February 1999.  (Ouch!  I told you!)
+This data is up-to-date as of January 17, 2001.
 
 @subsection Library Packages (libs)
 
 
 @subsection Library Packages (libs)
 
@@ -552,19 +687,31 @@ Support for Sparcworks.
 @item apel
 A Portable Emacs Library.  Used by XEmacs MIME support.
 
 @item apel
 A Portable Emacs Library.  Used by XEmacs MIME support.
 
-@item edebug
-A Lisp debugger.
-
 @item dired
 The DIRectory EDitor is for manipulating, and running commands on
 files in a directory.
 
 @item dired
 The DIRectory EDitor is for manipulating, and running commands on
 files in a directory.
 
+@item edebug
+A Lisp debugger.
+
 @item efs
 Treat files on remote systems the same as local files.
 
 @item efs
 Treat files on remote systems the same as local files.
 
+@item elib
+Portable Emacs Lisp utilities library.
+
+@item fsf-compat
+FSF Emacs compatibility files.
+
 @item mail-lib
 Fundamental lisp files for providing email support.
 
 @item mail-lib
 Fundamental lisp files for providing email support.
 
+@item sounds-au
+XEmacs Sun sound files.
+
+@item sounds-wav
+XEmacs Microsoft sound files.
+
 @item tooltalk
 Support for building with Tooltalk.
 
 @item tooltalk
 Support for building with Tooltalk.
 
@@ -584,6 +731,16 @@ These packages provide support for various communications, primarily
 email and usenet.
 
 @table @file
 email and usenet.
 
 @table @file
+@item bbdb
+The Big Brother Data Base
+
+@item eicq
+ICQ Client developed and tested on Linux x86; 
+only supported on that platform
+
+@item eudc
+Emacs Unified Directory Client (LDAP, PH).
+
 @item footnote
 Footnoting in mail message editing modes.
 
 @item footnote
 Footnoting in mail message editing modes.
 
@@ -596,6 +753,9 @@ The Gnus Newsreader and Mailreader.
 @item mailcrypt
 Support for messaging encryption with PGP.
 
 @item mailcrypt
 Support for messaging encryption with PGP.
 
+@item mew
+Messaging in an Emacs World.
+
 @item mh-e
 Front end support for MH.
 
 @item mh-e
 Front end support for MH.
 
@@ -603,9 +763,6 @@ Front end support for MH.
 Miscellaneous Networking Utilities.  This is a single-file package and 
 files may be deleted at will.
 
 Miscellaneous Networking Utilities.  This is a single-file package and 
 files may be deleted at will.
 
-@item ph
-Emacs implementation of the ph client to CCSO/qi directory servers.
-
 @item rmail
 An obsolete Emacs mailer.  If you do not already use it don't start.
 
 @item rmail
 An obsolete Emacs mailer.  If you do not already use it don't start.
 
@@ -613,17 +770,22 @@ An obsolete Emacs mailer.  If you do not already use it don't start.
 An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
 
 @item tm
 An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
 
 @item tm
-Emacs MIME support.
+Emacs MIME support. Not needed for Gnus >= 5.8.0
 
 @item vm
 An Emacs mailer.
 
 @item w3
 A Web browser.
 
 @item vm
 An Emacs mailer.
 
 @item w3
 A Web browser.
+
+@item zenirc
+ZENIRC IRC Client.
 @end table
 
 @subsection Games and Amusements (games)
 
 @end table
 
 @subsection Games and Amusements (games)
 
+All work and no play...
+
 @table @file
 @item cookie
 Spook and Yow (Zippy quotes).
 @table @file
 @item cookie
 Spook and Yow (Zippy quotes).
@@ -640,7 +802,15 @@ Other amusements and diversions.
 
 @subsection Mule Support (mule)
 
 
 @subsection Mule Support (mule)
 
+MULti-lingual Enhancement.  Support for world scripts such as
+Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
+To use these packages your XEmacs must be compiled with Mule
+support.
+
 @table @file
 @table @file
+@item edict
+Lisp Interface to EDICT, Kanji Dictionary.
+
 @item egg-its
 Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
 XEmacs build.
 @item egg-its
 Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
 XEmacs build.
@@ -652,6 +822,9 @@ Quail.  Used for everything other than English and Japanese.
 Used for localized menubars (French and Japanese) and localized splash
 screens (Japanese).
 
 Used for localized menubars (French and Japanese) and localized splash
 screens (Japanese).
 
+@item lookup
+Dictionary support. (This isn't an English dictionary program)
+
 @item mule-base
 Basic Mule support.  Must be installed prior to building with Mule.
 
 @item mule-base
 Basic Mule support.  Must be installed prior to building with Mule.
 
@@ -662,7 +835,12 @@ separate process running as a dictionary server.
 
 @subsection Productivity Packages (oa)
 
 
 @subsection Productivity Packages (oa)
 
+Things to make life a little easier.
+
 @table @file
 @table @file
+@item calc
+Emacs calculator.
+
 @item calendar
 Calendar and diary support.
 
 @item calendar
 Calendar and diary support.
 
@@ -671,7 +849,7 @@ Single file lisp packages for various XEmacs goodies.  Load this and
 weed out the junk you don't want.
 
 @item forms
 weed out the junk you don't want.
 
 @item forms
-Forms editing support (obsolete, use the builtin Widget instead).
+Forms editing support (obsolete, use the built-in Widget instead).
 
 @item frame-icon
 Provide a WM icon based on major mode.
 
 @item frame-icon
 Provide a WM icon based on major mode.
@@ -695,7 +873,7 @@ SGML/Linuxdoc-SGML editing.
 User interface tool.
 
 @item speedbar
 User interface tool.
 
 @item speedbar
-??? Document me.
+Provides a separate frame with convenient references.
 
 @item strokes
 Mouse enhancement utility.
 
 @item strokes
 Mouse enhancement utility.
@@ -709,7 +887,12 @@ Display time & date on the modeline.
 
 @subsection Operating System Utilities (os)
 
 
 @subsection Operating System Utilities (os)
 
+Tools for working with the operating system.
+
 @table @file
 @table @file
+@item eshell
+Command shell implemented entirely in Emacs Lisp.
+
 @item eterm
 Terminal emulator.
 
 @item eterm
 Terminal emulator.
 
@@ -723,12 +906,21 @@ Front-end for Inferior Lisp.
 Miscellaneous single-file O/S utilities, for printing, archiving,
 compression, remote shells, etc.
 
 Miscellaneous single-file O/S utilities, for printing, archiving,
 compression, remote shells, etc.
 
+@item pcomplete
+Provides programmatic completion.
+
+@item ps-print-nomule
+Old, but no-Mule safe ps-print.
+
 @item view-process
 A Unix process browsing tool.
 @end table
 
 @subsection Program Editing Support (prog)
 
 @item view-process
 A Unix process browsing tool.
 @end table
 
 @subsection Program Editing Support (prog)
 
+XEmacs supports a multitude of programming languages.  These
+packages will help your coding.
+
 @table @file
 @item ada
 Ada language support.
 @table @file
 @item ada
 Ada language support.
@@ -748,23 +940,33 @@ Interface over patch.
 @item emerge
 Another interface over patch.
 
 @item emerge
 Another interface over patch.
 
+@item idlwave
+Editing and Shell mode for the Interactive Data Language.
+
+@item jde
+Java language and development support.
+
 @item pcl-cvs
 CVS frontend.
 
 @item prog-modes
 @item pcl-cvs
 CVS frontend.
 
 @item prog-modes
-Miscellaneous Lisp libraries for various programming languages.
+Miscellaneous single-file lisp files for various programming languages.
 
 @item scheme
 Front-end support for Inferior Scheme.
 
 
 @item scheme
 Front-end support for Inferior Scheme.
 
+@item semantic
+Semantic bovinator.
+
 @item sh-script
 Support for editing shell scripts.
 
 @item vc
 @item sh-script
 Support for editing shell scripts.
 
 @item vc
-Version control for free systems.
+Version Control for Free systems.
 
 @item vc-cc
 
 @item vc-cc
-Version control for ClearCase.
+Version Control for ClearCase.  This package will shortly be
+replaced with clearcase.el
 
 @item vhdl
 Support for VHDL.
 
 @item vhdl
 Support for VHDL.
@@ -772,6 +974,8 @@ Support for VHDL.
 
 @subsection Word Processing (wp)
 
 
 @subsection Word Processing (wp)
 
+Working with text.
+
 @table @file
 @item auctex
 Basic TeX/LaTeX support.
 @table @file
 @item auctex
 Basic TeX/LaTeX support.
@@ -782,6 +986,9 @@ Crisp/Brief emulation.
 @item edt
 DEC EDIT/EDT emulation.
 
 @item edt
 DEC EDIT/EDT emulation.
 
+@item reftex
+Emacs support for LaTeX cross-references, citations.
+
 @item texinfo
 XEmacs TeXinfo support.
 
 @item texinfo
 XEmacs TeXinfo support.