Add Hanyo-Denshi/FT code points.
[chise/xemacs-chise.git.1] / man / xemacs / packages.texi
index e2202d8..5696ebe 100644 (file)
@@ -17,37 +17,40 @@ 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.
-* Creating Packages::   The basics.
-* Available Packages::  A brief, out-of-date, directory of packaged LISP.
+* Installing Packages:: How to install packages.
+* Building Packages::   Building packages from CVS sources.
+* Local.rules File::    This is an important file that you must create.
+* 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.
 
 @itemize @bullet
 @subsection Package Flavors
 
 There are two main flavors of packages.
 
 @itemize @bullet
-@item Regular Packages
+@item 
+Regular Packages
 @cindex regular packages
 A regular package is one in which multiple files are involved and one
 may not in general safely remove any of them.
 
 @cindex regular packages
 A regular package is one in which multiple files are involved and one
 may not in general safely remove any of them.
 
-@item Single-File Packages
+@item 
+Single-File Packages
 @cindex single-file packages
 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
 @cindex single-file packages
 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 +67,21 @@ 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
-@comment  node-name,  next,  previous,  up
+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
+@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 +89,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,29 +100,20 @@ 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
-also listed on the @code{Options} menu under:
-
-@example
-        Options->Customize->Emacs->Packages
-@end example
-
-However, don't select any of these menu picks unless you actually want 
-to install the given package (and have properly configured your system 
-to do so).
+the @ref{Available Packages} at the time of the XEmacs release.
 
 You can also get a list of available packages, and whether or not they
 are installed, using the visual package browser and installer.  You can
 access it via the menus:
 
 @example
 
 You can also get a list of available packages, and whether or not they
 are installed, using the visual package browser and installer.  You can
 access it via the menus:
 
 @example
-        Options->Manage Packages->List & Install
+Tools -> Packages -> List and Install
 @end example
 
 Or, you can get to it via the keyboard:
 
 @example
 @end example
 
 Or, you can get to it via the keyboard:
 
 @example
-M-x pui-list-packages
+@code{M-x pui-list-packages}
 @end example
 
 Hint to system administrators of multi-user systems: it might be a good
 @end example
 
 Hint to system administrators of multi-user systems: it might be a good
@@ -126,64 +125,73 @@ using the @code{package-get-package-provider} function. Eg., if you know
 that you need @code{thingatpt}, type:
 
 @example
 that you need @code{thingatpt}, type:
 
 @example
-M-x package-get-package-provider RET thingatpt
+@code{M-x package-get-package-provider RET thingatpt}
 @end example
 
 @end example
 
-which will return something like (fsf-compat "1.06"). You can the use
+which will return something like @samp{(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:
-
-@example
-(setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
-                               package-get-remote))
-@end example
+There are three main ways to install packages:
 
 
-@xref{Init File}.
+@menu
+* Automatically::     Using the package tools from XEmacs.
+* Manually::          Using individual package tarballs.
+* Sumo::              All at once, using the 'Sumo Tarball'.
+* Which Packages::    Which packages to install.
+* Removing Packages:: Removing packages.
+@end menu
 
 
-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).
+But regardless of the method you use to install packages, they can only
+be used by XEmacs after a restart unless the package in question has not
+been previously installed.
 
 
-If you are installing from a temporary, one-time directory, you can also 
-add these directory names to @code{package-get-remote} using:
+@node Automatically, 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-add-install-directory
-@end example
+   efs          - To fetch the files from the FTP site or mirrors.
+   xemacs-base  - Needed by efs.
 
 
-Note, however, that any directories added using this function are not
-saved; this information will be lost when you quit XEmacs.
+and optionally:
 
 
-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}.
+   mailcrypt    - To do PGP verification of the @file{package-index}
+                  file. 
+@end example
 
 
-The easiest way to install a package is to use the visual package
-browser and installer, using the menu pick:
+After installing these by hand, fire up XEmacs and follow these
+steps.
 
 
-@example
-        Options->Manage Packages->List & Install
-@end example
-or
-@example
-        Options->Manage Packages->Using Custom->Select-> ...
-@end example
+@enumerate 1
+@item 
+Choose a download site.
+via menu: Tools -> Packages -> Set Download Site 
+via keyb: @code{M-x customize-variable RET package-get-remote RET}
+(put in the details of remote host and directory)
 
 
-You can also access it using the keyboard:
+If the package tarballs _AND_ the package-index file are in a
+local directory, you can: @code{M-x pui-set-local-package-get-directory RET}
 
 
-@example
-M-x pui-list-packages
-@end example
+@item 
+Obtain a list of packages and display the list in a buffer named
+@file{*Packages*}.
+menu: Tools -> 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.
 
 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
 
 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
@@ -202,11 +210,11 @@ The package has been marked for installation/update.
 @end table
 
 If there is no character in the first column, the package has been
 @end table
 
 If there is no character in the first column, the package has been
-installed and is up-to-date.
+installed and is up to date.
 
 From here, you can select or unselect packages for installation using
 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
 
 From here, you can select or unselect packages for installation using
 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
-the (Popup) Menu.
+the Popup @kbd{Mouse-3} Menu.
 Once you've finished selecting the packages, you can
 press the @kbd{x} key (or use the menu) to actually install the
 packages. Note that you will have to restart XEmacs for XEmacs to
 Once you've finished selecting the packages, you can
 press the @kbd{x} key (or use the menu) to actually install the
 packages. Note that you will have to restart XEmacs for XEmacs to
@@ -235,32 +243,33 @@ Kill the package buffer.
 @end table
 
 Moving the mouse over a package will also cause additional information
 @end table
 
 Moving the mouse over a package will also cause additional information
-about the package to be displayed in the minibuffer.
+about the package to be displayed in the minibuffer.  If you have
+balloon-help enabled a balloon-help frame will pop up and display
+additional package information also.
 
 
-@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,529 +278,557 @@ 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:
+@heading Keeping Packages Up To Date:
+Once you have the packages you want installed (using any of the above
+methods) you'll want to keep them up to date.  You can do this easily
+from the menubar:
 
 @example
 
 @example
-~/.xemacs/mule-packages
-~/.xemacs/xemacs-packages
+Tools -> Packages -> Set Download Site
+Tools -> Packages -> Update Installed Packages
 @end example
 
 @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:
+@node Manually, Sumo, Automatically, 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. 
 
 
-@enumerate
-@item
-Download the package(s) that you want to install.  Each binary package
-will typically be a gzip'd tarball.
+Note: If you are upgrading packages already installed, it's best to
+remove the old package first @ref{Removing Packages}.
 
 
-@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.
+For example if we are installing the @file{xemacs-base}
+package (version 1.48):
 
 
-@item
-Next, @code{cd} to the directory under which you want to install the
-package(s).
+@example
+   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
 
 
-@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:
+Or if you have GNU tar, the last step can be:
 
 
-@example
-        gunzip < package.tar.gz | tar xvf -
+   tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
 @end example
 
 @end example
 
-Above, replace @file{package.tar.gz} with the filename of the
-package that you downloaded in step 1.
-
-Of course, if you use GNU @code{tar}, you could also use:
+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
-        tar xvzf package.tar.gz
-@end example
+   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
 
 
-@comment What about native MS Windows users???
+Or if you have GNU tar, the last step can be:
 
 
-@item
-That's it.  Quit and restart XEmacs to get it to recognize any new or
-changed packages.
-
-@end enumerate
+   tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
+@end example
 
 
-@node Building Packages, Creating Packages, Using Packages, Packages
+@node Sumo, Which Packages, Manually, Installing Packages
 @comment  node-name,  next,  previous,  up
 @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}
 
 
-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.
+For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
 
 
-@subsection Prerequisites for Building Source Packages
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 19MB and 4.5MB (gzipped) respectively.
 
 
-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.
+Install them by:
 
 
-@subsection What You Can Do With Source Packages
+@code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
 
 
-NB:  A global build operation doesn't exist yet as of 13 January 1998.
+Or, if you have GNU tar:
 
 
-Source packages 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
-@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 srckit
-Usually aliased to @code{srckit-std}.  This does a @code{make
-distclean} and creates a package source tarball in the staging
-directory.  This is generally only of use for package maintainers.
-
-@item binkit
-May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
-@code{binkit-sourcedata}, or
-@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
-nothing to install in a data directory or info directory.
-@code{sourceinfo} indicates that source and info files are to be
-installed.  @code{sourcedata} indicates that source and etc (data) files
-are to be installed.  @code{sourcedatainfo} indicates source, etc
-(data), and info files are to be installed.  A few packages have needs
-beyond the basic templates so this is not yet complete.
-
-@item dist
-Runs the rules @code{srckit} followed by @code{binkit}.  This is
-primarily of use by XEmacs maintainers producing files for distribution.
+@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
 
 
-@end table
+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 Creating Packages, Available Packages, Building Packages, Packages
+@node Which Packages, Removing Packages, Sumo, Installing Packages
 @comment  node-name,  next,  previous,  up
 @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
 
 
-Creating a package from an existing Lisp library is not very difficult.
+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, mailcrypt
 
 
-In addition to the Lisp libraries themselves, you need a
-@file{package-info.in} file and a simple @file{Makefile}.  The rest is
-done by @file{XEmacs.rules}, part of the packaging system
-infrastructure.
+If you are using the XEmacs package tools, don't forget to do:
 
 
-@file{package-info.in} contains a single Lisp form like this:
+       Packages -> Add Required
 
 
-@example
-(name                               ; your package's name
-  (standards-version 1.1
-   version VERSION
-   author-version AUTHOR_VERSION
-   date DATE
-   build-date BUILD_DATE
-   maintainer MAINTAINER
-   distribution xemacs              ; change to "mule" if MULE is needed
-   priority high
-   category CATEGORY
-   dump nil
-   description "description"        ; a one-line description string
-   filename FILENAME
-   md5sum MD5SUM
-   size SIZE
-   provides (feature1 feature2)     ; one for every `provides' form
-   requires (REQUIRES)
-   type regular
-))
-@end example
+To make sure you have everything that the packages you have chosen to
+install need.
 
 
-You must fill in the four commented lines.  The value of @code{name} is
-the name of your package as an unquoted symbol.  Normally it is the name
-of the main Lisp file or principal feature provided.  The allowed values
-for distribution are @code{xemacs} and @code{mule}.  Write them as
-unquoted symbols.  The @code{description} is a quoted Lisp string; use
-the usual conventions.  The value for @code{provides} is a list of
-feature symbols (written unquoted).  All of the features provided by
-libraries in your package should be elements of this list.  Implementing
-an automatic method for generating the @file{provides} line is
-desirable, but as yet undone.
-
-The variables in upper-case are references to variables set in the
-@file{Makefile} or automatically generated.  Do not change them; they
-are automatically filled in by the build process.
-
-The remaining lines refer to implementation constants
-(@code{standards-version}), or features that are unimplemented or have
-been removed (@code{priority} and @code{dump}).  The @code{type} line is
-not normally relevant to external maintainers; the alternate value is
-@code{single-file}, which refers to packages consed up out of a number
-of single-file libraries that are more or less thematically related.  An
-example is @code{prog-modes}.  Single-file packages are basically for
-administrative convenience, and new packages should generally be created
-as regular packages.
-
-The @file{Makefile} is quite stylized.  The idea is similar to an
-@file{Imakefile} or an @code{automake} file: the complexity is hidden in
-generic rules files, in this case the @file{XEmacs.rules} include file
-in the top directory of the packages hierarchy.  Although a number of
-facilities are available for complex libraries, most simple packages'
-@file{Makefile}s contain a copyright notice, a few variable definitions,
-an include for @file{XEmacs.rules}, and a couple of standard targets.
-
-The first few @code{make} variables defined are @code{VERSION},
-@code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE},
-@code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}.  All but one were
-described in the description of @file{package-info.in}.  The last is an
-admistrative grouping.  Current categories include @code{comm},
-@code{games}, @code{libs}, @code{mule}, @code{oa}, @code{os},
-@code{prog}, and @code{wp}.  @ref{Available Packages}, for a list of
-categories.
-
-Next, define the variable @code{ELCS}.  This contains the list of the
-byte-compiled Lisp files used by the package.  These files and their
-@file{.el} versions will be included in the binary package.  If there
-are other files (such as extra Lisp sources or an upstream
-@file{Makefile}) that are normally placed in the installed Lisp
-directory, but not byte-compiled, they can be listed as the value of
-@code{EXTRA_SOURCES}.
-
-The include is simply
-@example
-include ../../XEmacs.rules
-@end example
+See also @ref{Available Packages} for further descriptions of the individual
+packages.
 
 
-The standard targets follow.  These are
+@node Removing Packages, ,Which Packages, Installing Packages
+@comment  node-name,  next,  previous,  up
+@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-get-delete-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.
 
 
-@example
-all:: $(ELCS) auto-autoloads.elc
+@subsection Prerequisites for Building Source Packages
 
 
-srckit: srckit-alias
+@table @code
+@item GNU cp
+@item GNU install 
+(or a BSD compatible install program).
+@item GNU make 
+(3.75 or later preferred).
+@item makeinfo 
+(4.2 from GNU texinfo 4.2 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.
 
 
-binkit: binkit-alias
-@end example
+@subsection What You Can Do With Source Packages
 
 
-Other targets (such as Texinfo sources) may need to be added as
-dependencies for the @code{all} target.  Dependencies for @code{srckit}
-and @code{binkit} (that is, values for @var{srckit-alias} and
-@var{binkit-alias}) are defined in @file{XEmacs.rules}.  The most useful
-of these values are given in the following table.
-
-@table @var
-@item srckit-alias
-Usually set to @code{srckit-std}.
-
-@item binkit-alias
-May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
-@code{binkit-sourcedata}, or
-@code{binkit-sourcedatainfo}.  @code{sourceonly} indicates there is
-nothing to install in a data directory or info directory.
-@code{sourceinfo} indicates that source and info files are to be
-installed.  @code{sourcedata} indicates that source and etc (data) files
-are to be installed.  @code{sourcedatainfo} indicates source, etc
-(data), and info files are to be installed.
-@end table
+The packages CVS sources are most useful for creating XEmacs package
+tarballs for installation into your own XEmacs installations or for
+distributing to others.
 
 
-Data files include things like pixmaps for a package-specific toolbar,
-and are normally installed in @file{etc/@var{PACKAGE_NAME}}.  A few
-packages have needs beyond the basic templates.  See @file{XEmacs.rules}
-or a future revision of this manual for details.
+For a list and description of the different @file{Makefile} targets,
+@xref{Makefile Targets,,,lispref}.
 
 
-@node Available Packages,  , Creating Packages, Packages
+@node Local.rules File, Available 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{packages}, contains the
+file, @file{Local.rules.template}.  Simply copy that to
+@file{Local.rules} and edit it to suit your needs.
 
 
-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.
+For a complete discussion of the @file{Local.rules} file,
+@xref{Local.rules File,,,lispref}.
 
 
-This data is up-to-date as of 10 February 1999.  (Ouch!  I told you!)
+@node Available Packages,  , Local.rules File, 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}.
 
 
-@subsection Library Packages (libs)
+This data is up to date as of June 27, 2003.
 
 
-These packages are required to build and support most of the rest of
-XEmacs.  By design, xemacs-base is a `regular' package.  Use restraint 
-when adding new files there as it is required by almost everything.
+@subsection Normal Packages
+A very broad selection of elisp packages.
 
 @table @file
 @item Sun
 Support for Sparcworks.
 
 
 @table @file
 @item Sun
 Support for Sparcworks.
 
+@item ada
+Ada language support.
+
 @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 auctex
+Basic TeX/LaTeX support.
+
+@item bbdb
+The Big Brother Data Base: a rolodex-like database program.
+
+@item build
+Build XEmacs using custom widgets.
+
+@item c-support
+Basic single-file add-ons for editing C code.
+
+@item calc
+Emacs calculator.
+
+@item calendar
+Calendar and diary support.
+
+@item cc-mode
+C, C++ and Java language support.
+
+@item clearcase
+Support for the Clearcase version control system.
+
+@item cookie
+"Fortune cookie"-style messages. Includes Spook (suspicious phrases) 
+and Yow (Zippy quotes).
+
+@item crisp
+Crisp/Brief emulation.
+
+@item debug
+GUD, gdb, dbx debugging support.
+
+@item dictionary
+Interface to RFC2229 dictionary servers.
 
 @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 docbookide
+DocBook editing support.
+
+@item ecrypto
+Crypto functionality in Emacs Lisp.
+
+@item edebug
+A Lisp debugger.
+
+@item ediff
+Interface over patch.
+
+@item edit-utils
+Single file lisp packages for various XEmacs goodies.  Load this and
+weed out the junk you don't want.
+
+@item edt
+DEC EDIT/EDT emulation.
+
 @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 mail-lib
-Fundamental lisp files for providing email support.
+@item eieio
+Enhanced Implementation of Emacs Interpreted Objects.
 
 
-@item tooltalk
-Support for building with Tooltalk.
+@item elib
+Portable Emacs Lisp utilities library.
 
 
-@item xemacs-base
-Fundamental XEmacs support.  Install this unless you wish a totally
-naked XEmacs.
+@item emerge
+Another interface over patch.
 
 
-@item xemacs-devel
-XEmacs Lisp developer support.  This package contains utilities for
-supporting Lisp development.  It is a single-file package so it may be 
-tailored.
-@end table
+@item eshell
+Command shell implemented entirely in Emacs Lisp.
 
 
-@subsection Communications Packages (comm)
+@item ess
+ESS: Emacs Speaks Statistics.
 
 
-These packages provide support for various communications, primarily
-email and usenet.
+@item eterm
+Terminal emulator.
+
+@item eudc
+Emacs Unified Directory Client (LDAP, PH).
 
 
-@table @file
 @item footnote
 Footnoting in mail message editing modes.
 
 @item footnote
 Footnoting in mail message editing modes.
 
+@item forms
+Forms editing support (obsolete, use the built-in Widget instead).
+
+@item fortran-modes
+Fortran language support.
+
+@item frame-icon
+Provide a WM icon based on major mode.
+
+@item fsf-compat
+GNU Emacs compatibility files.
+
+@item games
+Tetris, Sokoban, and Snake.
+
+@item general-docs
+General documentation.  Presently, empty.
+
 @item gnats
 XEmacs bug reports.
 
 @item gnus
 The Gnus Newsreader and Mailreader.
 
 @item gnats
 XEmacs bug reports.
 
 @item gnus
 The Gnus Newsreader and Mailreader.
 
-@item mailcrypt
-Support for messaging encryption with PGP.
+@item haskell-mode
+Haskell language support.
 
 
-@item mh-e
-Front end support for MH.
+@item hm--html-menus
+HTML editing.
 
 
-@item net-utils
-Miscellaneous Networking Utilities.  This is a single-file package and 
-files may be deleted at will.
+@item ibuffer
+Advanced replacement for buffer-menu.
 
 
-@item ph
-Emacs implementation of the ph client to CCSO/qi directory servers.
+@item idlwave
+Editing and Shell mode for the Interactive Data Language.
 
 
-@item rmail
-An obsolete Emacs mailer.  If you do not already use it don't start.
+@item igrep
+Enhanced front-end for Grep.
 
 
-@item supercite
-An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
+@item ilisp
+Front-end for interacting with Inferior Lisp (external lisps).
 
 
-@item tm
-Emacs MIME support.
+@item ispell
+Spell-checking with ispell.
 
 
-@item vm
-An Emacs mailer.
+@item jde
+Java language and development support.
 
 
-@item w3
-A Web browser.
-@end table
+@item liece
+IRC (Internet Relay Chat) client for Emacs.
 
 
-@subsection Games and Amusements (games)
+@item mail-lib
+Fundamental lisp files for providing email support.
 
 
-@table @file
-@item cookie
-Spook and Yow (Zippy quotes).
+@item mailcrypt
+Support for messaging encryption with PGP.
 
 
-@item games
-Tetris, Sokoban, and Snake.
+@item mew
+Messaging in an Emacs World; a MIME-based email program.
+
+@item mh-e
+Front end support for MH.
 
 @item mine
 
 @item mine
-Minehunt.
+Elisp implementation of the game 'Minehunt'.
 
 @item misc-games
 Other amusements and diversions.
 
 @item misc-games
 Other amusements and diversions.
-@end table
 
 
-@subsection Mule Support (mule)
+@item mmm-mode
+Support for Multiple Major Modes within a single buffer.
 
 
-@table @file
-@item egg-its
-Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
-XEmacs build.
+@item net-utils
+Miscellaneous Networking Utilities.  This is a single-file package and 
+files may be deleted at will.
 
 
-@item leim
-Quail.  Used for everything other than English and Japanese.
+@item ocaml
+Objective Caml editing support.
 
 
-@item locale
-Used for localized menubars (French and Japanese) and localized splash
-screens (Japanese).
+@item os-utils
+Miscellaneous single-file O/S utilities, for printing, archiving,
+compression, remote shells, etc.
 
 
-@item mule-base
-Basic Mule support.  Must be installed prior to building with Mule.
+@item pc
+PC style interface emulation.
 
 
-@item skk
-Another Japanese Language Input Method.  Can be used without a
-separate process running as a dictionary server.
-@end table
+@item pcl-cvs
+CVS frontend.
 
 
-@subsection Productivity Packages (oa)
+@item pcomplete
+Provides programmatic completion.
 
 
-@table @file
-@item calendar
-Calendar and diary support.
+@item perl-modes
+Perl language support.
 
 
-@item edit-utils
-Single file lisp packages for various XEmacs goodies.  Load this and
-weed out the junk you don't want.
+@item pgg
+Emacs interface to various PGP implementations.
 
 
-@item forms
-Forms editing support (obsolete, use the builtin Widget instead).
+@item prog-modes
+Miscellaneous single-file lisp files for various programming languages.
 
 
-@item frame-icon
-Provide a WM icon based on major mode.
+@item ps-print
+Print buffers to PostScript printers.
 
 
-@item hm--html-menus
-HTML editing.
+@item psgml
+Validated HTML/SGML editing.
 
 
-@item ispell
-Spell-checking with ispell.
+@item psgml-dtds
+A collection of DTDs for psgml.  Note that this package is deprecated
+and will be removed in the future, most likely Q2/2003.  Instead of using
+this, you should install needed DTDs yourself.
 
 
-@item pc
-PC style interface emulation.
+@item python-modes
+Python language support.
 
 
-@item psgml
-Validated HTML/SGML editing.
+@item reftex
+Emacs support for LaTeX cross-references, citations.
+
+@item rmail
+An obsolete Emacs mailer.  If you do not already use it don't start.
+
+@item ruby-modes
+Ruby language support.
+
+@item sasl
+Simple Authentication and Security Layer (SASL) library.
+
+@item scheme
+Front-end support for Inferior Scheme.
+
+@item semantic
+Semantic bovinator.
 
 @item sgml
 SGML/Linuxdoc-SGML editing.
 
 
 @item sgml
 SGML/Linuxdoc-SGML editing.
 
+@item sh-script
+Support for editing shell scripts.
+
+@item sieve
+Manage Sieve email filtering scripts.
+
 @item slider
 User interface tool.
 
 @item slider
 User interface tool.
 
+@item sml-mode
+Standard ML editing support.
+
+@item sounds-au
+XEmacs Sun sound files.
+
+@item sounds-wav
+XEmacs Microsoft sound files.
+
 @item speedbar
 @item speedbar
-??? Document me.
+Provides a separate frame with convenient references.
 
 @item strokes
 Mouse enhancement utility.
 
 
 @item strokes
 Mouse enhancement utility.
 
+@item supercite
+An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
+
+@item texinfo
+XEmacs TeXinfo support.
+
 @item text-modes
 Various single file lisp packages for editing text files.
 
 @item text-modes
 Various single file lisp packages for editing text files.
 
+@item textools
+Single-file TeX support.
+
 @item time
 Display time & date on the modeline.
 @item time
 Display time & date on the modeline.
-@end table
 
 
-@subsection Operating System Utilities (os)
+@item tm
+Emacs MIME support. Not needed for Gnus >= 5.8.0
 
 
-@table @file
-@item eterm
-Terminal emulator.
+@item tooltalk
+Support for building with Tooltalk.
 
 
-@item igrep
-Enhanced front-end for Grep.
+@item tpu
+DEC EDIT/TPU support.
 
 
-@item ilisp
-Front-end for Inferior Lisp.
+@item tramp
+Remote shell-based file editing.  This is similar to EFS or Ange-FTP,
+but works with rsh/ssh and rcp/scp.
 
 
-@item os-utils
-Miscellaneous single-file O/S utilities, for printing, archiving,
-compression, remote shells, etc.
+@item vc
+Version Control for Free systems.
 
 
-@item view-process
-A Unix process browsing tool.
-@end table
+@item vc-cc
+Version Control for ClearCase.  This package will shortly be
+replaced with clearcase.el
 
 
-@subsection Program Editing Support (prog)
+@item vhdl
+Support for VHDL.
 
 
-@table @file
-@item ada
-Ada language support.
+@item view-process
+A Unix process browsing tool.
 
 
-@item c-support
-Basic single-file add-ons for editing C code.
+@item viper
+VI emulation support.
 
 
-@item cc-mode
-C, C++ and Java language support.
+@item vm
+An Emacs mailer.
 
 
-@item debug
-GUD, gdb, dbx debugging support.
+@item w3
+A Web browser.
 
 
-@item ediff
-Interface over patch.
+@item x-symbol
+Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
 
 
-@item emerge
-Another interface over patch.
+@item xemacs-base
+Fundamental XEmacs support.  Install this unless you wish a totally
+naked XEmacs.
 
 
-@item pcl-cvs
-CVS frontend.
+@item xemacs-devel
+XEmacs Lisp developer support.  This package contains utilities for
+supporting Lisp development.  It is a single-file package so it may be 
+tailored.
 
 
-@item prog-modes
-Miscellaneous Lisp libraries for various programming languages.
+@item xslide
+XSL editing support.
 
 
-@item scheme
-Front-end support for Inferior Scheme.
+@item xslt-process
+A minor mode for (X)Emacs which allows running an XSLT processor on a
+buffer.
 
 
-@item sh-script
-Support for editing shell scripts.
+@item zenirc
+ZENIRC IRC Client.
+@end table
 
 
-@item vc
-Version control for free systems.
+@subsection Mule Support (mule)
 
 
-@item vc-cc
-Version control for ClearCase.
+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.
 
 
-@item vhdl
-Support for VHDL.
-@end table
+@table @file
+@item edict
+Lisp Interface to EDICT, Kanji Dictionary.
 
 
-@subsection Word Processing (wp)
+@item egg-its
+Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
+XEmacs build.
 
 
-@table @file
-@item auctex
-Basic TeX/LaTeX support.
+@item latin-unity
+Unify character sets in a buffer. When characters belong to disjoint
+character sets, this attempts to translate the characters so
+that they belong to one character set. If the buffer coding system is
+not sufficient, this suggests different coding systems.
 
 
-@item crisp
-Crisp/Brief emulation.
+@item leim
+Quail.  Used for everything other than English and Japanese.
 
 
-@item edt
-DEC EDIT/EDT emulation.
+@item locale
+Used for localized menubars (French and Japanese) and localized splash
+screens (Japanese).
 
 
-@item texinfo
-XEmacs TeXinfo support.
+@item lookup
+Dictionary support. (This isn't an English dictionary program)
 
 
-@item textools
-Single-file TeX support.
+@item mule-base
+Basic Mule support.  Must be installed prior to building with Mule.
 
 
-@item tpu
-DEC EDIT/TPU support.
+@item mule-ucs
+Extended coding systems (including Unicode) for XEmacs.
 
 
-@item viper
-VI emulation support.
+@item skk
+Another Japanese Language Input Method.  Can be used without a
+separate process running as a dictionary server.
 @end table
 
 @end table