+If you have EFS @ref{(EFS)}, packages can be installed over the network.
+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
+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
+Tools -> Packages -> List and Install
+@end example
+
+Or, you can get to it via the keyboard:
+
+@example
+@code{M-x pui-list-packages}
+@end example
+
+Hint to system administrators of multi-user systems: it might be a good
+idea to install all packages and not interfere with the wishes of your
+users.
+
+If you can't find which package provides the feature you require, try
+using the @code{package-get-package-provider} function. Eg., if you know
+that you need @code{thingatpt}, type:
+
+@example
+@code{M-x package-get-package-provider RET thingatpt}
+@end example
+
+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
+
+There are three main ways to install packages:
+
+@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
+
+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.
+
+@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
+ efs - To fetch the files from the FTP site or mirrors.
+ xemacs-base - Needed by efs.
+
+and optionally:
+
+ mailcrypt - To do PGP verification of the @file{package-index}
+ file.
+@end example
+
+After installing these by hand, fire up XEmacs and follow these
+steps.
+
+@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)
+
+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}
+
+@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
+may have to scroll down to see it. You can also press @kbd{?} to get
+the same help. From this buffer, you can tell the package status by the
+character in the first column:
+
+@table @kbd
+@item -
+The package has not been installed.
+@item *
+The package has been installed, but a newer version is available. The
+current version is out-of-date.
+@item +
+The package has been marked for installation/update.
+@end table
+
+If there is no character in the first column, the package has been
+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
+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
+recognize any new packages.
+
+Key summary:
+
+@table @kbd
+@item ?
+Display simple help.
+@item @key{RET}
+@itemx @key{Mouse-2}
+Toggle between selecting and unselecting a package for installation.
+@item x
+Install selected packages.
+@item @key{SPC}
+View, in the minibuffer, additional information about the package, such
+as the package date (not the build date) and the package author. Moving
+the mouse over a package name will also do the same thing.
+@item v
+Toggle between verbose and non-verbose package display.
+@item g
+Refresh the package display.
+@item q
+Kill the package buffer.
+@end table
+
+Moving the mouse over a package will also cause additional information
+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.
+
+
+@item
+Choose the packages you wish to install.
+mouse: Click button 2 on the package name.
+ keyb: @kbd{RET} on the package name
+
+@item
+Make sure you have everything you need.
+menu: Packages -> Add Required
+keyb: @kbd{r}
+
+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.
+
+For novices and gurus alike, this step can save your bacon.
+It's easy to forget to install a critical package.
+
+@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:
+
+@example
+M-x package-get-all <return>
+@end example
+
+Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
+will search for the latest version and install it and any packages that
+it depends upon.
+
+@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
+Tools -> Packages -> Set Download Site
+Tools -> Packages -> Update Installed Packages
+@end example
+
+
+@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.
+
+Note: If you are upgrading packages already installed, it's best to
+remove the old package first @ref{Removing Packages}.