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