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