XEmacs 21.4.5 "Civil Service".
[chise/xemacs-chise.git.1] / man / xemacs / packages.texi
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
6
7 @section Packages
8 @cindex packages
9
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.
17
18 @menu
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 * Creating Packages::   The basics.
24 * Available Packages::  A brief directory of packaged LISP.
25 @end menu
26
27 @node Package Terminology, Installing Packages, , Packages
28 @comment  node-name,  next,  previous,  up
29 @heading Package Terminology:
30 @subsection Package Flavors
31
32 There are two main flavors of packages.
33
34 @itemize @bullet
35 @item
36 Regular Packages
37 @cindex regular packages
38 A regular package is one in which multiple files are involved and one
39 may not in general safely remove any of them.
40
41 @item
42 Single-File Packages
43 @cindex single-file packages
44 A single-file package is an aggregate collection of thematically
45 related but otherwise independent lisp files.  These files are bundled 
46 together for download convenience and individual files may be deleted at
47 will without any loss of functionality.  However, we would recommend
48 that you follow this rule of thumb: "When in doubt, don't delete".
49 @end itemize
50
51 @subsection Package Distributions
52 @cindex package distributions
53 XEmacs Lisp packages are distributed in two ways, depending on the
54 intended use.  Binary Packages are for installers and end-users that can
55 be installed directly into an XEmacs package directory.  Source Packages
56 are for developers and include all files necessary for rebuilding
57 bytecompiled lisp and creating tarballs for distribution.
58
59 @subsection Binary Packages
60 @cindex binary packages
61 Binary packages may be installed directly into an XEmacs package
62 hierarchy.
63
64 @subsection Source Packages
65 @cindex source packages
66 Source packages contain all of the Package author's (where appropriate
67 in regular packages) source code plus all of the files necessary to
68 build distribution tarballs (Unix Tar format files, gzipped for space
69 savings).
70
71 Currently, source packages are only available via CVS.  See
72 @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
76 @cindex install
77 @heading Installing Packages:
78 @subsection Getting Started
79
80 When you first download XEmacs 21, you will usually first grab the
81 @dfn{core distribution},
82 @cindex core distribution
83 a file called
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.
90
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}.
97
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.
101
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.  Packages are
104 also listed on the @code{Options} menu under:
105
106 @example
107         Options->Customize->Emacs->Packages
108 @end example
109
110 However, don't select any of these menu picks unless you actually want 
111 to install the given package (and have properly configured your system 
112 to do so).
113
114 You can also get a list of available packages, and whether or not they
115 are installed, using the visual package browser and installer.  You can
116 access it via the menus:
117
118 @example
119         Options->Manage Packages->List & Install
120 @end example
121
122 Or, you can get to it via the keyboard:
123
124 @example
125 M-x pui-list-packages
126 @end example
127
128 Hint to system administrators of multi-user systems: it might be a good
129 idea to install all packages and not interfere with the wishes of your
130 users.
131
132 If you can't find which package provides the feature you require, try
133 using the @code{package-get-package-provider} function. Eg., if you know 
134 that you need @code{thingatpt}, type:
135
136 @example
137 M-x package-get-package-provider RET thingatpt
138 @end example
139
140 which will return something like (fsf-compat "1.08"). You can the use
141 one of the methods above for installing the package you want.
142
143 @subsection XEmacs and Installing Packages
144
145 There are three main ways to install packages:
146
147 @menu
148 * Sumo::              All at once, using the 'Sumo Tarball'.
149 * Manually::          Using individual package tarballs.
150 * Automatically::     Using the package tools from XEmacs.
151 * Which Packages::    Which packages to install.
152 * Removing Packages:: Removing packages.
153 @end menu
154
155 But regardless of the method you use to install packages, they can only
156 be used by XEmacs after a restart.
157
158 @node Sumo, Manually, ,Installing Packages
159 @comment  node-name,  next,  previous,  up
160 @cindex sumo package install
161 @heading Installing the Sumo Packages:
162 Those with little time, cheap connections and plenty of disk space can
163 install all the packages at once using the sumo tarballs.
164 Download the file: @file{xemacs-sumo.tar.gz}
165
166 For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
167
168 N.B. They are called 'Sumo Tarballs' for good reason. They are
169 currently about 19MB and 4.5MB (gzipped) respectively.
170
171 Install them by:
172
173 @code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
174
175 Or, if you have GNU tar:
176
177 @code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
178
179 As the Sumo tarballs are not regenerated as often as the individual
180 packages, it is recommended that you use the automatic package tools
181 afterwards to pick up any recent updates.
182
183 @node Manually, Automatically, Sumo, Installing Packages
184 @comment  node-name,  next,  previous,  up
185 @cindex manual package install
186 @heading Manual Package Installation:
187 Fetch the packages from the FTP site, CD-ROM whatever. The filenames
188 have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
189 a fresh install it is sufficient to untar the file at the top of the
190 package hierarchy. 
191
192 Note: If you are upgrading packages already installed, it's best to
193 remove the old package first @ref{Removing Packages}.
194
195 For example if we are installing the @file{xemacs-base}
196 package (version 1.48):
197
198 @example
199    mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
200    cd $prefix/lib/xemacs/xemacs-packages RET
201    gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
202
203 Or if you have GNU tar, the last step can be:
204
205    tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
206 @end example
207
208 For MULE related packages, it is best to untar into the mule-packages
209 hierarchy, i.e. for the @file{mule-base} package, version 1.37:
210
211 @example
212    mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
213    cd $prefix/lib/xemacs/mule-packages RET
214    gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
215
216 Or if you have GNU tar, the last step can be:
217
218    tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
219 @end example
220
221 @node Automatically, Which Packages ,Manually, Installing Packages
222 @comment  node-name,  next,  previous,  up
223 @cindex automatic package install
224 @cindex package tools
225 @heading Automatic Package Installation:
226 XEmacs comes with some tools to make the periodic updating and
227 installing easier. It will notice if new packages or versions are
228 available and will fetch them from the FTP site.
229
230 Unfortunately this requires that a few packages are already in place.
231 You will have to install them by hand as above or use a SUMO tarball.
232 This requirement will hopefully go away in the future. The packages
233 you need are:
234
235 @example
236    efs          - To fetch the files from the FTP site or mirrors.
237    xemacs-base  - Needed by efs.
238
239 and optionally:
240
241    mule-base    - Needed if you want to use XEmacs with MULE.
242 @end example
243
244 After installing these by hand, fire up XEmacs and follow these
245 steps.
246
247 Note: The menus in XEmacs 21.2.x and up have changed slightly, so
248 where I mention "Options -> Manage Packages", substitute "Tools ->
249 Packages".
250
251 @enumerate 1
252 @item
253 Choose a download site.
254 via menu: Options -> Manages Packages -> Add Download Site 
255 via keyb: @code{M-x customize-variable RET package-get-remote RET}
256 (put in the details of remote host and directory)
257
258 If the package tarballs _AND_ the package-index file are in a
259 local directory, you can: @code{M-x pui-add-install-directory RET}
260
261 @item
262 Obtain a list of packages and display the list in a buffer named
263 @file{*Packages*}.
264 menu: Options -> Manage Packages -> List & Install
265 keyb: @code{M-x pui-list-packages RET}
266
267 XEmacs will now connect to the remote site and download the
268 latest package-index file.  If you see an error about the
269 package-index entries not being PGP signed, you can safely
270 ignore this because PGP has not been integrated into the XEmacs
271 package tools yet.
272
273 The visual package browser will then display a list of all packages.
274 Help information will be displayed at the very bottom of the buffer; you
275 may have to scroll down to see it.  You can also press @kbd{?} to get
276 the same help.  From this buffer, you can tell the package status by the
277 character in the first column:
278
279 @table @kbd
280 @item -
281 The package has not been installed.
282 @item *
283 The package has been installed, but a newer version is available.  The
284 current version is out-of-date.
285 @item +
286 The package has been marked for installation/update.
287 @end table
288
289 If there is no character in the first column, the package has been
290 installed and is up-to-date.
291
292 From here, you can select or unselect packages for installation using
293 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
294 the (Popup) Menu.
295 Once you've finished selecting the packages, you can
296 press the @kbd{x} key (or use the menu) to actually install the
297 packages. Note that you will have to restart XEmacs for XEmacs to
298 recognize any new packages.
299
300 Key summary:
301
302 @table @kbd
303 @item ?
304 Display simple help.
305 @item @key{RET}
306 @itemx @key{Mouse-2}
307 Toggle between selecting and unselecting a package for installation.
308 @item x
309 Install selected packages.
310 @item @key{SPC}
311 View, in the minibuffer, additional information about the package, such
312 as the package date (not the build date) and the package author.  Moving 
313 the mouse over a package name will also do the same thing.
314 @item v
315 Toggle between verbose and non-verbose package display.
316 @item g
317 Refresh the package display.
318 @item q
319 Kill the package buffer.
320 @end table
321
322 Moving the mouse over a package will also cause additional information
323 about the package to be displayed in the minibuffer.
324
325
326 @item
327 Choose the packages you wish to install.
328 mouse: Click button 2 on the package name.
329  keyb: @kbd{RET} on the package name
330
331 @item
332 Make sure you have everything you need.
333 menu: Packages -> Add Required
334 keyb: @kbd{r}
335
336 XEmacs will now search for packages that are required by the
337 ones that you have chosen to install and offer to select
338 those packages also.
339
340 For novices and gurus alike, this step can save your bacon.
341 It's easy to forget to install a critical package.
342
343 @item
344 Download and install the packages.
345 menu: Packages -> Install/Remove Selected
346 keyb: @kbd{x}
347 @end enumerate
348
349 You can also install packages using a semi-manual interface:
350
351 @example
352 M-x package-get-all <return>
353 @end example
354
355 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
356 will search for the latest version and install it and any packages that
357 it depends upon.
358
359 @node Which Packages, Removing Packages, Automatically, Installing Packages
360 @comment  node-name,  next,  previous,  up
361 @cindex which packages
362 @cindex choosing packages
363 @heading Which Packages to Install:
364 This is difficult to say. When in doubt install a package. If you
365 administrate a big site it might be a good idea to just install
366 everything. A good minimal set of packages for XEmacs-latin1 would be
367
368 xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
369 edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
370 text-modes, time
371
372 If you are using the XEmacs package tools, don't forget to do:
373
374         Packages -> Add Required
375
376 To make sure you have everything that the packages you have chosen to
377 install need.
378
379 See also @ref{Available Packages} for further descriptions of the individual
380 packages.
381
382 @node Removing Packages, ,Which Packages, Installing Packages
383 @comment  node-name,  next,  previous,  up
384 @cindex removing packages
385 @cindex deleting packages
386 @heading Removing Packages:
387 Because the exact files and their locations contained in a package may
388 change it is recommended to remove a package first before installing a
389 new version. In order to facilitate removal each package contains an
390 @file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
391 to the package. 
392
393 No need to panic, you don't have to go through the
394 @file{pkinfo/MANIFEST.pkgname} and manually delete the files.  Instead, use
395 @code{M-x package-admin-delete-binary-package RET}.
396
397 Note that the interactive package tools included with XEmacs already do
398 this for you.
399
400 @node Building Packages, Local.rules File, Installing Packages, Packages
401 @comment  node-name,  next,  previous,  up
402 @cindex building packages
403 @cindex package building
404 @heading Building Packages:
405 Currently, source packages are only available via anonymous CVS.  See
406 @url{http://cvs.xemacs.org/} for details of checking out the
407 @file{xemacs-packages} module.
408
409 @subsection Prerequisites for Building Source Packages
410
411 @table @code
412 @item GNU cp
413 @item GNU install 
414 (or a BSD compatible install program).
415 @item GNU make 
416 (3.75 or later preferred).
417 @item makeinfo 
418 (1.68 from texinfo-3.11 or later required).
419 @item GNU tar
420 (or equivalent).
421 @item GNU gzip
422 (or equivalent).
423 @item A properly configured @file{Local.rules} file.
424 @ref{Local.rules File}.
425 @end table
426 And of course, XEmacs 21.0 or higher.
427
428 @subsection What You Can Do With Source Packages
429
430 The packages CVS sources are most useful for creating XEmacs package
431 tarballs for installation into your own XEmacs installations or for
432 distributing to others.
433
434 Supported operations from @file{make} are:
435
436 @table @code
437 @item all
438 Bytecompile all files, build and bytecompile byproduct files like
439 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
440 of TeXinfo documentation if present.
441
442 @item bindist
443 Does a @code{make all} as well as create a binary package tarball in the
444 staging directory.
445
446 @item install
447 Bytecompile all files, build and bytecompile byproduct files like
448 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
449 of TeXinfo documentation if present.  And install everything into the
450 staging directory.
451
452 @item srckit
453 Usually aliased to @code{srckit-std}.  This does a @code{make
454 distclean} and creates a package source tarball in the staging
455 directory.  This is generally only of use for package maintainers.
456
457 @item binkit
458 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
459 @code{binkit-sourcedata}, or
460 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
461 nothing to install in a data directory or info directory.
462 @code{sourceinfo} indicates that source and info files are to be
463 installed.  @code{sourcedata} indicates that source and etc (data) files
464 are to be installed.  @code{sourcedatainfo} indicates source, etc
465 (data), and info files are to be installed.  A few packages have needs
466 beyond the basic templates so this is not yet complete.
467
468 @item dist
469 Runs the rules @code{srckit} followed by @code{binkit}.  This is
470 primarily of use by XEmacs maintainers producing files for distribution.
471
472 @item clean
473 Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
474
475 @item distclean
476 Remove all created files.
477 @end table
478
479 @node Local.rules File, Creating Packages, Building Packages, Packages
480 @comment  node-name,  next,  previous,  up
481 @cindex local.rules
482 @heading The Local.rules File:
483 This file is used when building and installing packages from source.  In
484 the top level of the CVS module, @file{xemacs-packages}, contains the
485 file, @file{Local.rules.template}.  Simply copy that to
486 @file{Local.rules} and edit it to suit your needs.
487
488 These are the variables in 'Local.rules' that you will need to
489 address. 
490
491 @table @var
492 @item symlink = 
493 Set this to 't' if you want to do a "run in place".
494 Setting this doesn't work well with 'make bindist'
495
496 @item XEMACS_PACKAGES =
497 This is where you set the normal packages that you
498 want to install. eg:
499 @example
500       XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb
501 @end example
502
503 @item XEMACS_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Packages
504 Set this to where you want normal packages to be
505 installed to.
506
507 @item PACKAGE_INDEX = package-index
508 If you want the package-index file to have a different
509 name, change this.
510
511 @item BUILD_WITHOUT_MULE =
512 Building from CVS defaults to building the Mule
513 packages.  Set this to 't' if you don't want/have Mule
514
515 @item MULE_PACKAGES =
516 Same as for 'XEMACS_PACKAGES' except you list the Mule
517 packages you want to install here. eg:
518 @example
519       MULE_PACKAGES = mule-packages/mule-base mule-packages/skk
520 @end example
521
522 @item MULE_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Mule-Packages
523 Set this to where you want Mule packages installed
524 to.  Note:  'make bindist' does not use this variable.
525
526 @item XEMACS = xemacs
527 If your XEmacs isn't in your path, change this.
528
529 @item XEMACS_NATIVE_NT =
530 Set this to 't' if you are building on WinNT.
531
532 @item INSTALL = install -c
533 The path to your BSD compatible install program.
534
535 @item TAR = tar
536 The path to your tar program
537
538 @item BZIP2 =
539 If you want bzip2 tarballs, set this.
540
541 @item MAKEINFO = makeinfo
542 The path to your makeinfo program
543 @end table
544
545
546 @node Creating Packages, Available Packages, Local.rules File, Packages
547 @comment  node-name,  next,  previous,  up
548 @cindex creating packages
549 @heading Creating Packages:
550 Creating a package from an existing Lisp library is not very difficult.
551
552 In addition to the Lisp libraries themselves, you need a
553 @file{package-info.in} file and a simple @file{Makefile}.  The rest is
554 done by @file{XEmacs.rules}, part of the packaging system
555 infrastructure.
556
557 @file{package-info.in} contains a single Lisp form like this:
558
559 @example
560 (name                               ; your package's name
561   (standards-version 1.1
562    version VERSION
563    author-version AUTHOR_VERSION
564    date DATE
565    build-date BUILD_DATE
566    maintainer MAINTAINER
567    distribution xemacs              ; change to "mule" if MULE is needed
568    priority high
569    category CATEGORY
570    dump nil
571    description "description"        ; a one-line description string
572    filename FILENAME
573    md5sum MD5SUM
574    size SIZE
575    provides (feature1 feature2)     ; one for every `provides' form
576    requires (REQUIRES)
577    type regular
578 ))
579 @end example
580
581 You must fill in the four commented lines.  The value of @code{name} is
582 the name of your package as an unquoted symbol.  Normally it is the name
583 of the main Lisp file or principal feature provided.  The allowed values
584 for distribution are @code{xemacs} and @code{mule}.  Write them as
585 unquoted symbols.  The @code{description} is a quoted Lisp string; use
586 the usual conventions.  The value for @code{provides} is a list of
587 feature symbols (written unquoted).  All of the features provided by
588 libraries in your package should be elements of this list.  Implementing
589 an automatic method for generating the @file{provides} line is
590 desirable, but as yet undone.
591
592 The variables in upper-case are references to variables set in the
593 @file{Makefile} or automatically generated.  Do not change them; they
594 are automatically filled in by the build process.
595
596 The remaining lines refer to implementation constants
597 (@code{standards-version}), or features that are unimplemented or have
598 been removed (@code{priority} and @code{dump}).  The @code{type} line is
599 not normally relevant to external maintainers; the alternate value is
600 @code{single-file}, which refers to packages consed up out of a number
601 of single-file libraries that are more or less thematically related.  An
602 example is @code{prog-modes}.  Single-file packages are basically for
603 administrative convenience, and new packages should generally be created
604 as regular packages.
605
606 The @file{Makefile} is quite stylized.  The idea is similar to an
607 @file{Imakefile} or an @code{automake} file: the complexity is hidden in
608 generic rules files, in this case the @file{XEmacs.rules} include file
609 in the top directory of the packages hierarchy.  Although a number of
610 facilities are available for complex libraries, most simple packages'
611 @file{Makefile}s contain a copyright notice, a few variable definitions,
612 an include for @file{XEmacs.rules}, and a couple of standard targets.
613
614 The first few @code{make} variables defined are @code{VERSION},
615 @code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE},
616 @code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}.  All but one were
617 described in the description of @file{package-info.in}.  The last is an
618 administrative grouping.  Current categories include @code{standard},
619 and @code{mule}.
620
621 Next, define the variable @code{ELCS}.  This contains the list of the
622 byte-compiled Lisp files used by the package.  These files and their
623 @file{.el} versions will be included in the binary package.  If there
624 are other files (such as extra Lisp sources or an upstream
625 @file{Makefile}) that are normally placed in the installed Lisp
626 directory, but not byte-compiled, they can be listed as the value of
627 @code{EXTRA_SOURCES}.
628
629 The include is simply
630 @example
631 include ../../XEmacs.rules
632 @end example
633
634 The standard targets follow.  These are
635
636 @example
637 all:: $(ELCS) auto-autoloads.elc
638
639 srckit: srckit-alias
640
641 binkit: binkit-alias
642 @end example
643
644 Other targets (such as Texinfo sources) may need to be added as
645 dependencies for the @code{all} target.  Dependencies for @code{srckit}
646 and @code{binkit} (that is, values for @var{srckit-alias} and
647 @var{binkit-alias}) are defined in @file{XEmacs.rules}.  The most useful
648 of these values are given in the following table.
649
650 @table @var
651 @item srckit-alias
652 Usually set to @code{srckit-std}.
653
654 @item binkit-alias
655 May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
656 @code{binkit-sourcedata}, or
657 @code{binkit-sourcedatainfo}.  @code{sourceonly} indicates there is
658 nothing to install in a data directory or info directory.
659 @code{sourceinfo} indicates that source and info files are to be
660 installed.  @code{sourcedata} indicates that source and etc (data) files
661 are to be installed.  @code{sourcedatainfo} indicates source, etc
662 (data), and info files are to be installed.
663 @end table
664
665 Data files include things like pixmaps for a package-specific toolbar,
666 and are normally installed in @file{etc/@var{PACKAGE_NAME}}.  A few
667 packages have needs beyond the basic templates.  See @file{XEmacs.rules}
668 or a future revision of this manual for details.
669
670 @node Available Packages,  , Creating Packages, Packages
671 @comment  node-name,  next,  previous,  up
672 @cindex available packages
673 @cindex packages
674 @heading Available Packages:
675 This section lists the Lisp packages that are currently available from
676 xemacs.org and it's mirrors.  If a particular package that you are
677 looking for isn't here, please send a message to the
678 @email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
679
680 This data is up-to-date as of May 15, 2001.
681
682 @subsection Normal Packages
683 A very broad selection of elisp packages.
684
685 @table @file
686 @item Sun
687 Support for Sparcworks.
688
689 @item ada
690 Ada language support.
691
692 @item apel
693 A Portable Emacs Library.  Used by XEmacs MIME support.
694
695 @item auctex
696 Basic TeX/LaTeX support.
697
698 @item bbdb
699 The Big Brother Data Base
700
701 @item build
702 Build XEmacs using custom widgets.
703
704 @item c-support
705 Basic single-file add-ons for editing C code.
706
707 @item calc
708 Emacs calculator.
709
710 @item calendar
711 Calendar and diary support.
712
713 @item cc-mode
714 C, C++ and Java language support.
715
716 @item cookie
717 Spook and Yow (Zippy quotes).
718
719 @item crisp
720 Crisp/Brief emulation.
721
722 @item debug
723 GUD, gdb, dbx debugging support.
724
725 @item dired
726 The DIRectory EDitor is for manipulating, and running commands on
727 files in a directory.
728
729 @item edebug
730 A Lisp debugger.
731
732 @item ediff
733 Interface over patch.
734
735 @item edit-utils
736 Single file lisp packages for various XEmacs goodies.  Load this and
737 weed out the junk you don't want.
738
739 @item edt
740 DEC EDIT/EDT emulation.
741
742 @item efs
743 Treat files on remote systems the same as local files.
744
745 @item eicq
746 ICQ Client developed and tested on Linux x86; 
747 only supported on that platform
748
749 @item eieio
750 Enhanced Implementation of Emacs Interpreted Objects.
751
752 @item elib
753 Portable Emacs Lisp utilities library.
754
755 @item emerge
756 Another interface over patch.
757
758 @item eshell
759 Command shell implemented entirely in Emacs Lisp.
760
761 @item eterm
762 Terminal emulator.
763
764 @item eudc
765 Emacs Unified Directory Client (LDAP, PH).
766
767 @item footnote
768 Footnoting in mail message editing modes.
769
770 @item forms
771 Forms editing support (obsolete, use the built-in Widget instead).
772
773 @item frame-icon
774 Provide a WM icon based on major mode.
775
776 @item fsf-compat
777 FSF Emacs compatibility files.
778
779 @item games
780 Tetris, Sokoban, and Snake.
781
782 @item gnats
783 XEmacs bug reports.
784
785 @item gnus
786 The Gnus Newsreader and Mailreader.
787
788 @item hm--html-menus
789 HTML editing.
790
791 @item idlwave
792 Editing and Shell mode for the Interactive Data Language.
793
794 @item igrep
795 Enhanced front-end for Grep.
796
797 @item ilisp
798 Front-end for Inferior Lisp.
799
800 @item ispell
801 Spell-checking with ispell.
802
803 @item jde
804 Java language and development support.
805
806 @item mail-lib
807 Fundamental lisp files for providing email support.
808
809 @item mailcrypt
810 Support for messaging encryption with PGP.
811
812 @item mew
813 Messaging in an Emacs World.
814
815 @item mh-e
816 Front end support for MH.
817
818 @item mine
819 Minehunt.
820
821 @item misc-games
822 Other amusements and diversions.
823
824 @item net-utils
825 Miscellaneous Networking Utilities.  This is a single-file package and 
826 files may be deleted at will.
827
828 @item os-utils
829 Miscellaneous single-file O/S utilities, for printing, archiving,
830 compression, remote shells, etc.
831
832 @item pc
833 PC style interface emulation.
834
835 @item pcl-cvs
836 CVS frontend.
837
838 @item pcomplete
839 Provides programmatic completion.
840
841 @item prog-modes
842 Miscellaneous single-file lisp files for various programming languages.
843
844 @item ps-print-nomule
845 Old, but no-Mule safe ps-print.
846
847 @item psgml
848 Validated HTML/SGML editing.
849
850 @item reftex
851 Emacs support for LaTeX cross-references, citations.
852
853 @item rmail
854 An obsolete Emacs mailer.  If you do not already use it don't start.
855
856 @item scheme
857 Front-end support for Inferior Scheme.
858
859 @item semantic
860 Semantic bovinator.
861
862 @item sgml
863 SGML/Linuxdoc-SGML editing.
864
865 @item sh-script
866 Support for editing shell scripts.
867
868 @item slider
869 User interface tool.
870
871 @item sounds-au
872 XEmacs Sun sound files.
873
874 @item sounds-wav
875 XEmacs Microsoft sound files.
876
877 @item speedbar
878 Provides a separate frame with convenient references.
879
880 @item strokes
881 Mouse enhancement utility.
882
883 @item supercite
884 An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
885
886 @item texinfo
887 XEmacs TeXinfo support.
888
889 @item text-modes
890 Various single file lisp packages for editing text files.
891
892 @item textools
893 Single-file TeX support.
894
895 @item time
896 Display time & date on the modeline.
897
898 @item tm
899 Emacs MIME support. Not needed for Gnus >= 5.8.0
900
901 @item tooltalk
902 Support for building with Tooltalk.
903
904 @item tpu
905 DEC EDIT/TPU support.
906
907 @item vc
908 Version Control for Free systems.
909
910 @item vc-cc
911 Version Control for ClearCase.  This package will shortly be
912 replaced with clearcase.el
913
914 @item vhdl
915 Support for VHDL.
916
917 @item view-process
918 A Unix process browsing tool.
919
920 @item viper
921 VI emulation support.
922
923 @item vm
924 An Emacs mailer.
925
926 @item w3
927 A Web browser.
928
929 @item xemacs-base
930 Fundamental XEmacs support.  Install this unless you wish a totally
931 naked XEmacs.
932
933 @item xemacs-devel
934 XEmacs Lisp developer support.  This package contains utilities for
935 supporting Lisp development.  It is a single-file package so it may be 
936 tailored.
937
938 @item xslt-process
939 A minor mode for (X)Emacs which allows running an XSLT processor on a
940 buffer.
941
942 @item zenirc
943 ZENIRC IRC Client.
944 @end table
945
946 @subsection Mule Support (mule)
947
948 MULti-lingual Enhancement.  Support for world scripts such as
949 Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
950 To use these packages your XEmacs must be compiled with Mule
951 support.
952
953 @table @file
954 @item edict
955 Lisp Interface to EDICT, Kanji Dictionary.
956
957 @item egg-its
958 Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
959 XEmacs build.
960
961 @item leim
962 Quail.  Used for everything other than English and Japanese.
963
964 @item locale
965 Used for localized menubars (French and Japanese) and localized splash
966 screens (Japanese).
967
968 @item lookup
969 Dictionary support. (This isn't an English dictionary program)
970
971 @item mule-base
972 Basic Mule support.  Must be installed prior to building with Mule.
973
974 @item skk
975 Another Japanese Language Input Method.  Can be used without a
976 separate process running as a dictionary server.
977 @end table
978