1 @c This is part of the XEmacs manual.
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
3 @c See file xemacs.texi for copying conditions.
4 @node Packages, Basic, Startup Paths, Top
5 @comment node-name, next, previous, up
10 The XEmacs 21 distribution comes only with a very basic set of
11 built-in modes and packages. Most of the packages that were part of
12 the distribution of earlier versions of XEmacs are now available
13 separately. The installer as well as the user can choose which
14 packages to install; the actual installation process is easy.
15 This gives an installer the ability to tailor an XEmacs installation for
16 local needs with safe removal of unnecessary code.
19 * Package Terminology:: Understanding different kinds of packages.
20 * Installing Packages:: How to install packages.
21 * Building Packages:: Building packages from CVS sources.
22 * Local.rules File:: This is an important file that you must create.
23 * Available Packages:: A brief directory of packaged LISP.
26 @node Package Terminology, Installing Packages, , Packages
27 @comment node-name, next, previous, up
28 @heading Package Terminology:
29 @subsection Package Flavors
31 There are two main flavors of packages.
36 @cindex regular packages
37 A regular package is one in which multiple files are involved and one
38 may not in general safely remove any of them.
42 @cindex single-file packages
43 A single-file package is an aggregate collection of thematically
44 related but otherwise independent lisp files. These files are bundled
45 together for download convenience and individual files may be deleted at
46 will without any loss of functionality. However, we would recommend
47 that you follow this rule of thumb: "When in doubt, don't delete".
50 @subsection Package Distributions
51 @cindex package distributions
52 XEmacs Lisp packages are distributed in two ways, depending on the
53 intended use. Binary Packages are for installers and end-users that can
54 be installed directly into an XEmacs package directory. Source Packages
55 are for developers and include all files necessary for rebuilding
56 bytecompiled lisp and creating tarballs for distribution.
58 @subsection Binary Packages
59 @cindex binary packages
60 Binary packages may be installed directly into an XEmacs package
63 @subsection Source Packages
64 @cindex source packages
65 Source packages contain all of the Package author's (where appropriate
66 in regular packages) source code plus all of the files necessary to
67 build distribution tarballs (Unix Tar format files, gzipped for space
70 Currently, source packages are only available via CVS. See
71 @url{http://cvs.xemacs.org/} for details.
73 @node Installing Packages, Building Packages, Package Terminology, Packages
74 @comment node-name, next, previous, up
75 @cindex installing packages
77 @heading Installing Packages:
78 @subsection Getting Started
80 When you first download XEmacs 21, you will usually first grab the
81 @dfn{core distribution},
82 @cindex core distribution
84 @file{xemacs-21.x.x.tar.gz}. (Replace the @t{21.x.x} by the current version
85 number.) The core distribution contains the sources of XEmacs and a
86 minimal set of Emacs Lisp files, which are in the subdirectory named
87 @file{lisp}. This subdirectory used to contain all Emacs Lisp files
88 distributed with XEmacs. Now, to conserve disk space, most
89 non-essential packages were made optional.
91 @subsection Choosing the Packages You Need
92 @cindex choosing packages
93 The @ref{Available Packages} can currently be found in the same ftp directory
94 where you grabbed the core distribution from, and are located in the
95 subdirectory @file{packages}. Package file names follow
96 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
98 If you have EFS @ref{(EFS)}, packages can be installed over the network.
99 Alternatively, if you have copies of the packages locally, you can
100 install packages from a local disk or CDROM.
102 The file @file{etc/PACKAGES} in the core distribution contains a list of
103 the @ref{Available Packages} at the time of the XEmacs release.
105 You can also get a list of available packages, and whether or not they
106 are installed, using the visual package browser and installer. You can
107 access it via the menus:
110 Tools -> Packages -> List and Install
113 Or, you can get to it via the keyboard:
116 @code{M-x pui-list-packages}
119 Hint to system administrators of multi-user systems: it might be a good
120 idea to install all packages and not interfere with the wishes of your
123 If you can't find which package provides the feature you require, try
124 using the @code{package-get-package-provider} function. Eg., if you know
125 that you need @code{thingatpt}, type:
128 @code{M-x package-get-package-provider RET thingatpt}
131 which will return something like @samp{(fsf-compat "1.08")}. You can the use
132 one of the methods above for installing the package you want.
134 @subsection XEmacs and Installing Packages
136 There are three main ways to install packages:
139 * Automatically:: Using the package tools from XEmacs.
140 * Manually:: Using individual package tarballs.
141 * Sumo:: All at once, using the 'Sumo Tarball'.
142 * Which Packages:: Which packages to install.
143 * Removing Packages:: Removing packages.
146 But regardless of the method you use to install packages, they can only
147 be used by XEmacs after a restart unless the package in question has not
148 been previously installed.
150 @node Automatically, Manually, ,Installing Packages
151 @comment node-name, next, previous, up
152 @cindex automatic package install
153 @cindex package tools
154 @heading Automatic Package Installation:
155 XEmacs comes with some tools to make the periodic updating and
156 installing easier. It will notice if new packages or versions are
157 available and will fetch them from the FTP site.
159 Unfortunately this requires that a few packages are already in place.
160 You will have to install them by hand as above or use a SUMO tarball.
161 This requirement will hopefully go away in the future. The packages
165 efs - To fetch the files from the FTP site or mirrors.
166 xemacs-base - Needed by efs.
170 mailcrypt - To do PGP verification of the @file{package-index}
174 After installing these by hand, fire up XEmacs and follow these
179 Choose a download site.
180 via menu: Tools -> Packages -> Set Download Site
181 via keyb: @code{M-x customize-variable RET package-get-remote RET}
182 (put in the details of remote host and directory)
184 If the package tarballs _AND_ the package-index file are in a
185 local directory, you can: @code{M-x pui-set-local-package-get-directory RET}
188 Obtain a list of packages and display the list in a buffer named
190 menu: Tools -> Packages -> List & Install
191 keyb: @code{M-x pui-list-packages RET}
193 XEmacs will now connect to the remote site and download the
194 latest package-index file.
196 The visual package browser will then display a list of all packages.
197 Help information will be displayed at the very bottom of the buffer; you
198 may have to scroll down to see it. You can also press @kbd{?} to get
199 the same help. From this buffer, you can tell the package status by the
200 character in the first column:
204 The package has not been installed.
206 The package has been installed, but a newer version is available. The
207 current version is out-of-date.
209 The package has been marked for installation/update.
212 If there is no character in the first column, the package has been
213 installed and is up to date.
215 From here, you can select or unselect packages for installation using
216 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
217 the Popup @kbd{Mouse-3} Menu.
218 Once you've finished selecting the packages, you can
219 press the @kbd{x} key (or use the menu) to actually install the
220 packages. Note that you will have to restart XEmacs for XEmacs to
221 recognize any new packages.
230 Toggle between selecting and unselecting a package for installation.
232 Install selected packages.
234 View, in the minibuffer, additional information about the package, such
235 as the package date (not the build date) and the package author. Moving
236 the mouse over a package name will also do the same thing.
238 Toggle between verbose and non-verbose package display.
240 Refresh the package display.
242 Kill the package buffer.
245 Moving the mouse over a package will also cause additional information
246 about the package to be displayed in the minibuffer. If you have
247 balloon-help enabled a balloon-help frame will pop up and display
248 additional package information also.
252 Choose the packages you wish to install.
253 mouse: Click button 2 on the package name.
254 keyb: @kbd{RET} on the package name
257 Make sure you have everything you need.
258 menu: Packages -> Add Required
261 XEmacs will now search for packages that are required by the
262 ones that you have chosen to install and offer to select
265 For novices and gurus alike, this step can save your bacon.
266 It's easy to forget to install a critical package.
269 Download and install the packages.
270 menu: Packages -> Install/Remove Selected
274 You can also install packages using a semi-manual interface:
277 M-x package-get-all <return>
280 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
281 will search for the latest version and install it and any packages that
284 @heading Keeping Packages Up To Date:
285 Once you have the packages you want installed (using any of the above
286 methods) you'll want to keep them up to date. You can do this easily
290 Tools -> Packages -> Set Download Site
291 Tools -> Packages -> Update Installed Packages
295 @node Manually, Sumo, Automatically, Installing Packages
296 @comment node-name, next, previous, up
297 @cindex manual package install
298 @heading Manual Package Installation:
299 Fetch the packages from the FTP site, CD-ROM whatever. The filenames
300 have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
301 a fresh install it is sufficient to untar the file at the top of the
304 Note: If you are upgrading packages already installed, it's best to
305 remove the old package first @ref{Removing Packages}.
307 For example if we are installing the @file{xemacs-base}
308 package (version 1.48):
311 mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
312 cd $prefix/lib/xemacs/xemacs-packages RET
313 gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
315 Or if you have GNU tar, the last step can be:
317 tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
320 For MULE related packages, it is best to untar into the mule-packages
321 hierarchy, i.e. for the @file{mule-base} package, version 1.37:
324 mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
325 cd $prefix/lib/xemacs/mule-packages RET
326 gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
328 Or if you have GNU tar, the last step can be:
330 tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
333 @node Sumo, Which Packages, Manually, Installing Packages
334 @comment node-name, next, previous, up
335 @cindex sumo package install
336 @heading Installing the Sumo Packages:
337 Those with little time, cheap connections and plenty of disk space can
338 install all the packages at once using the sumo tarballs.
339 Download the file: @file{xemacs-sumo.tar.gz}
341 For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
343 N.B. They are called 'Sumo Tarballs' for good reason. They are
344 currently about 19MB and 4.5MB (gzipped) respectively.
348 @code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
350 Or, if you have GNU tar:
352 @code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
354 As the Sumo tarballs are not regenerated as often as the individual
355 packages, it is recommended that you use the automatic package tools
356 afterwards to pick up any recent updates.
358 @node Which Packages, Removing Packages, Sumo, Installing Packages
359 @comment node-name, next, previous, up
360 @cindex which packages
361 @cindex choosing packages
362 @heading Which Packages to Install:
363 This is difficult to say. When in doubt install a package. If you
364 administrate a big site it might be a good idea to just install
365 everything. A good minimal set of packages for XEmacs-latin1 would be
367 xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
368 edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
369 text-modes, time, mailcrypt
371 If you are using the XEmacs package tools, don't forget to do:
373 Packages -> Add Required
375 To make sure you have everything that the packages you have chosen to
378 See also @ref{Available Packages} for further descriptions of the individual
381 @node Removing Packages, ,Which Packages, Installing Packages
382 @comment node-name, next, previous, up
383 @cindex removing packages
384 @cindex deleting packages
385 @heading Removing Packages:
386 Because the exact files and their locations contained in a package may
387 change it is recommended to remove a package first before installing a
388 new version. In order to facilitate removal each package contains an
389 @file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
392 No need to panic, you don't have to go through the
393 @file{pkinfo/MANIFEST.pkgname} and manually delete the files. Instead, use
394 @code{M-x package-get-delete-package RET}.
396 Note that the interactive package tools included with XEmacs already do
399 @node Building Packages, Local.rules File, Installing Packages, Packages
400 @comment node-name, next, previous, up
401 @cindex building packages
402 @cindex package building
403 @heading Building Packages:
404 Currently, source packages are only available via anonymous CVS. See
405 @url{http://cvs.xemacs.org/} for details of checking out the
406 @file{xemacs-packages} module.
408 @subsection Prerequisites for Building Source Packages
413 (or a BSD compatible install program).
415 (3.75 or later preferred).
417 (4.2 from GNU texinfo 4.2 or later required).
422 @item A properly configured @file{Local.rules} file.
423 @ref{Local.rules File}.
425 And of course, XEmacs 21.0 or higher.
427 @subsection What You Can Do With Source Packages
429 The packages CVS sources are most useful for creating XEmacs package
430 tarballs for installation into your own XEmacs installations or for
431 distributing to others.
433 For a list and description of the different @file{Makefile} targets,
434 @xref{Makefile Targets,,,lispref}.
436 @node Local.rules File, Available Packages, Building Packages, Packages
437 @comment node-name, next, previous, up
439 @heading The Local.rules File:
440 This file is used when building and installing packages from source. In
441 the top level of the CVS module, @file{packages}, contains the
442 file, @file{Local.rules.template}. Simply copy that to
443 @file{Local.rules} and edit it to suit your needs.
445 For a complete discussion of the @file{Local.rules} file,
446 @xref{Local.rules File,,,lispref}.
448 @node Available Packages, , Local.rules File, Packages
449 @comment node-name, next, previous, up
450 @cindex available packages
452 @heading Available Packages:
453 This section lists the Lisp packages that are currently available from
454 xemacs.org and it's mirrors. If a particular package that you are
455 looking for isn't here, please send a message to the
456 @email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
458 This data is up to date as of June 27, 2003.
460 @subsection Normal Packages
461 A very broad selection of elisp packages.
465 Support for Sparcworks.
468 Ada language support.
471 A Portable Emacs Library. Used by XEmacs MIME support.
474 Basic TeX/LaTeX support.
477 The Big Brother Data Base: a rolodex-like database program.
480 Build XEmacs using custom widgets.
483 Basic single-file add-ons for editing C code.
489 Calendar and diary support.
492 C, C++ and Java language support.
495 Support for the Clearcase version control system.
498 "Fortune cookie"-style messages. Includes Spook (suspicious phrases)
499 and Yow (Zippy quotes).
502 Crisp/Brief emulation.
505 GUD, gdb, dbx debugging support.
508 Interface to RFC2229 dictionary servers.
511 The DIRectory EDitor is for manipulating, and running commands on
512 files in a directory.
515 DocBook editing support.
518 Crypto functionality in Emacs Lisp.
524 Interface over patch.
527 Single file lisp packages for various XEmacs goodies. Load this and
528 weed out the junk you don't want.
531 DEC EDIT/EDT emulation.
534 Treat files on remote systems the same as local files.
537 Enhanced Implementation of Emacs Interpreted Objects.
540 Portable Emacs Lisp utilities library.
543 Another interface over patch.
546 Command shell implemented entirely in Emacs Lisp.
549 ESS: Emacs Speaks Statistics.
555 Emacs Unified Directory Client (LDAP, PH).
558 Footnoting in mail message editing modes.
561 Forms editing support (obsolete, use the built-in Widget instead).
564 Fortran language support.
567 Provide a WM icon based on major mode.
570 GNU Emacs compatibility files.
573 Tetris, Sokoban, and Snake.
576 General documentation. Presently, empty.
582 The Gnus Newsreader and Mailreader.
585 Haskell language support.
591 Advanced replacement for buffer-menu.
594 Editing and Shell mode for the Interactive Data Language.
597 Enhanced front-end for Grep.
600 Front-end for interacting with Inferior Lisp (external lisps).
603 Spell-checking with ispell.
606 Java language and development support.
609 IRC (Internet Relay Chat) client for Emacs.
612 Fundamental lisp files for providing email support.
615 Support for messaging encryption with PGP.
618 Messaging in an Emacs World; a MIME-based email program.
621 Front end support for MH.
624 Elisp implementation of the game 'Minehunt'.
627 Other amusements and diversions.
630 Support for Multiple Major Modes within a single buffer.
633 Miscellaneous Networking Utilities. This is a single-file package and
634 files may be deleted at will.
637 Objective Caml editing support.
640 Miscellaneous single-file O/S utilities, for printing, archiving,
641 compression, remote shells, etc.
644 PC style interface emulation.
650 Provides programmatic completion.
653 Perl language support.
656 Emacs interface to various PGP implementations.
659 Miscellaneous single-file lisp files for various programming languages.
662 Print buffers to PostScript printers.
665 Validated HTML/SGML editing.
668 A collection of DTDs for psgml. Note that this package is deprecated
669 and will be removed in the future, most likely Q2/2003. Instead of using
670 this, you should install needed DTDs yourself.
673 Python language support.
676 Emacs support for LaTeX cross-references, citations.
679 An obsolete Emacs mailer. If you do not already use it don't start.
682 Ruby language support.
685 Simple Authentication and Security Layer (SASL) library.
688 Front-end support for Inferior Scheme.
694 SGML/Linuxdoc-SGML editing.
697 Support for editing shell scripts.
700 Manage Sieve email filtering scripts.
706 Standard ML editing support.
709 XEmacs Sun sound files.
712 XEmacs Microsoft sound files.
715 Provides a separate frame with convenient references.
718 Mouse enhancement utility.
721 An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders.
724 XEmacs TeXinfo support.
727 Various single file lisp packages for editing text files.
730 Single-file TeX support.
733 Display time & date on the modeline.
736 Emacs MIME support. Not needed for Gnus >= 5.8.0
739 Support for building with Tooltalk.
742 DEC EDIT/TPU support.
745 Remote shell-based file editing. This is similar to EFS or Ange-FTP,
746 but works with rsh/ssh and rcp/scp.
749 Version Control for Free systems.
752 Version Control for ClearCase. This package will shortly be
753 replaced with clearcase.el
759 A Unix process browsing tool.
762 VI emulation support.
771 Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
774 Fundamental XEmacs support. Install this unless you wish a totally
778 XEmacs Lisp developer support. This package contains utilities for
779 supporting Lisp development. It is a single-file package so it may be
786 A minor mode for (X)Emacs which allows running an XSLT processor on a
793 @subsection Mule Support (mule)
795 MULti-lingual Enhancement. Support for world scripts such as
796 Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
797 To use these packages your XEmacs must be compiled with Mule
802 Lisp Interface to EDICT, Kanji Dictionary.
805 Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to
809 Unify character sets in a buffer. When characters belong to disjoint
810 character sets, this attempts to translate the characters so
811 that they belong to one character set. If the buffer coding system is
812 not sufficient, this suggests different coding systems.
815 Quail. Used for everything other than English and Japanese.
818 Used for localized menubars (French and Japanese) and localized splash
822 Dictionary support. (This isn't an English dictionary program)
825 Basic Mule support. Must be installed prior to building with Mule.
828 Extended coding systems (including Unicode) for XEmacs.
831 Another Japanese Language Input Method. Can be used without a
832 separate process running as a dictionary server.