import xemacs-21.2.37
[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 * Using Packages::      How to install and use packages.
21 * Building Packages::   Building packages from sources.
22 * Available Packages::  A brief, out-of-date, directory of packaged LISP.
23 @end menu
24
25 @node Package Terminology, Using Packages, , Packages
26 @comment  node-name,  next,  previous,  up
27
28 @subsection Package Flavors
29
30 There are two main flavors of packages.
31
32 @itemize @bullet
33 @item Regular Packages
34 @cindex regular packages
35 A regular package is one in which multiple files are involved and one
36 may not in general safely remove any of them.
37
38 @item Single-File Packages
39 @cindex single-file packages
40 A single-file package is an aggregate collection of thematically
41 related but otherwise independent lisp files.  These files are bundled 
42 together for download convenience and individual files may be deleted at
43 will without any loss of functionality.
44 @end itemize
45
46 @subsection Package Distributions
47
48 XEmacs Lisp packages are distributed in two ways, depending on the
49 intended use.  Binary Packages are for installers and end-users and may
50 be installed directly into an XEmacs package directory.  Source Packages
51 are for developers and include all files necessary for rebuilding
52 bytecompiled lisp and creating tarballs for distribution.
53
54 @subsection Binary Packages
55 @cindex binary packages
56 Binary packages may be installed directly into an XEmacs package
57 hierarchy.
58
59 @subsection Source Packages
60 @cindex source packages
61 Source packages contain all of the Package author's (where appropriate
62 in regular packages) source code plus all of the files necessary to
63 build distribution tarballs (Unix Tar format files, gzipped for space
64 savings).
65
66 @node Using Packages, Building Packages, Package Terminology, Packages
67 @comment  node-name,  next,  previous,  up
68
69 @subsection Getting Started
70
71 When you first download XEmacs 21, you will usually first grab the
72 @dfn{core distribution},
73 @cindex core distribution
74 a file called
75 @file{xemacs-21.0.tar.gz}. (Replace the @t{21.0} by the current version
76 number.)  The core distribution contains the sources of XEmacs and a
77 minimal set of Emacs Lisp files, which are in the subdirectory named
78 @file{lisp}.  This subdirectory used to contain all Emacs Lisp files
79 distributed with XEmacs.  Now, to conserve disk space, most
80 non-essential packages were made optional.
81
82 @subsection Choosing the Packages You Need
83
84 The available packages can currently be found in the same ftp directory
85 where you grabbed the core distribution from, and are located in the
86 subdirectory @file{packages/binary-packages}.  Package file names follow
87 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
88
89 If you have EFS @ref{(EFS)}, packages can be installed over the network.
90 Alternatively, if you have copies of the packages locally, you can
91 install packages from a local disk or CDROM.
92
93 The file @file{etc/PACKAGES} in the core distribution contains a list of
94 the packages available at the time of the XEmacs release.  Packages are
95 also listed on the @code{Options} menu under:
96
97 @example
98         Options->Customize->Emacs->Packages
99 @end example
100
101 However, don't select any of these menu picks unless you actually want 
102 to install the given package (and have properly configured your system 
103 to do so).
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         Options->Manage Packages->List & 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.06"). 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 Normally, packages are installed over the network, using EFS
137 @ref{(EFS)}.  However, you may not have network access, or you may
138 already have some or all of the packages on a local disk, such as a
139 CDROM.  If you want to install from a local disk, you must first tell
140 XEmacs where to find the package binaries.  This is done by adding a line
141 like the following to your init file:
142
143 @example
144 (setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
145                                package-get-remote))
146 @end example
147
148 @xref{Init File}.
149
150 Here, you'd change @file{/my/path/to/package/binaries} to be the path
151 to your local package binaries.  Next, restart XEmacs, and you're ready
152 to go (advanced users can just re-evaluate the sexp).
153
154 If you are installing from a temporary, one-time directory, you can also 
155 add these directory names to @code{package-get-remote} using:
156
157 @example
158         M-x pui-add-install-directory
159 @end example
160
161 Note, however, that any directories added using this function are not
162 saved; this information will be lost when you quit XEmacs.
163
164 If you're going to install over the network, you only have to insure
165 that EFS @ref{(EFS)} works, and that it can get outside a firewall, if
166 you happen to be behind one.  You shouldn't have to do anything else;
167 XEmacs already knows where to go. However you can add your own mirrors
168 to this list. See @code{package-get-remote}.
169
170 The easiest way to install a package is to use the visual package
171 browser and installer, using the menu pick:
172
173 @example
174         Options->Manage Packages->List & Install
175 @end example
176 or
177 @example
178         Options->Manage Packages->Using Custom->Select-> ...
179 @end example
180
181 You can also access it using the keyboard:
182
183 @example
184 M-x pui-list-packages
185 @end example
186
187 The visual package browser will then display a list of all packages.
188 Help information will be displayed at the very bottom of the buffer; you
189 may have to scroll down to see it.  You can also press @kbd{?} to get
190 the same help.  From this buffer, you can tell the package status by the
191 character in the first column:
192
193 @table @kbd
194 @item -
195 The package has not been installed.
196 @item *
197 The package has been installed, but a newer version is available.  The
198 current version is out-of-date.
199 @item +
200 The package has been marked for installation/update.
201 @end table
202
203 If there is no character in the first column, the package has been
204 installed and is up-to-date.
205
206 From here, you can select or unselect packages for installation using
207 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
208 the (Popup) Menu.
209 Once you've finished selecting the packages, you can
210 press the @kbd{x} key (or use the menu) to actually install the
211 packages. Note that you will have to restart XEmacs for XEmacs to
212 recognize any new packages.
213
214 Key summary:
215
216 @table @kbd
217 @item ?
218 Display simple help.
219 @item @key{RET}
220 @itemx @key{Mouse-2}
221 Toggle between selecting and unselecting a package for installation.
222 @item x
223 Install selected packages.
224 @item @key{SPC}
225 View, in the minibuffer, additional information about the package, such
226 as the package date (not the build date) and the package author.  Moving 
227 the mouse over a package name will also do the same thing.
228 @item v
229 Toggle between verbose and non-verbose package display.
230 @item g
231 Refresh the package display.
232 @item q
233 Kill the package buffer.
234 @end table
235
236 Moving the mouse over a package will also cause additional information
237 about the package to be displayed in the minibuffer.
238
239 @subsection Other package installation interfaces
240
241 For an alternative package interface, you can select packages from the
242 customize menus, under:
243
244 @example
245         Options->Customize->Emacs->Packages-> ...
246 @end example
247 or
248 @example
249         Options->Manage Packages->Using Custom->Select-> ...
250 @end example
251
252 Set their state to on, and then do:
253
254 @example
255         Options->Manage Packages->Using Custom->Update Packages
256 @end example
257
258 This will automatically retrieve the packages you have selected from the
259 XEmacs ftp site or your local disk, and install them into
260 XEmacs.  Additionally it will update any packages you already have
261 installed to the newest version.  Note that if a package is newly
262 installed you will have to restart XEmacs for the change to take effect.
263
264 You can also install packages using a semi-manual interface:
265
266 @example
267 M-x package-get-all <return>
268 @end example
269
270 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
271 will search for the latest version (as listed in the lisp file
272 @file{lisp/package-get-base.el}), and install it and any packages that
273 it depends upon.
274
275 @subsection Manual Binary Package Installation
276
277 Pre-compiled, binary packages can be installed in either a system
278 package directory (this is determined when XEmacs is compiled), or in
279 one of the following
280 subdirectories of your @file{$HOME} directory:
281
282 @example
283 ~/.xemacs/mule-packages
284 ~/.xemacs/xemacs-packages
285 @end example
286
287 Packages in the former directory will only be found by a Mule-enabled
288 XEmacs.
289
290 XEmacs does not have to be running to install binary packages, although
291 XEmacs will not know about any newly-installed packages until you
292 restart XEmacs.  Note, however, that installing a newer version of a
293 package while XEmacs is running could cause strange errors in XEmacs;
294 it's best to exit XEmacs before upgrading an existing package.
295
296 To install binary packages manually:
297
298 @enumerate
299 @item
300 Download the package(s) that you want to install.  Each binary package
301 will typically be a gzip'd tarball.
302
303 @item
304 Decide where to install the packages: in the system package
305 directory, or in @file{~/.xemacs/mule-packages} or
306 @file{~/.xemacs/xemacs-packages}, respectively.  If you want to install
307 the packages in the system package directory, make sure you can write
308 into that directory.  If you want to install in your @file{$HOME}
309 directory, create the directory, @file{~/.xemacs/mule-packages} or
310 @file{~/.xemacs/xemacs-packages}, respectively.
311
312 @item
313 Next, @code{cd} to the directory under which you want to install the
314 package(s).
315
316 @item
317 From this directory, uncompress and extract each of the gzip'd tarballs
318 that you downloaded in step 1.  Unix and Cygnus cygwin users will
319 typically do this using the commands:
320
321 @example
322         gunzip < package.tar.gz | tar xvf -
323 @end example
324
325 Above, replace @file{package.tar.gz} with the filename of the
326 package that you downloaded in step 1.
327
328 Of course, if you use GNU @code{tar}, you could also use:
329
330 @example
331         tar xvzf package.tar.gz
332 @end example
333
334 @comment What about native MS Windows users???
335
336 @item
337 That's it.  Quit and restart XEmacs to get it to recognize any new or
338 changed packages.
339
340 @end enumerate
341
342 @node Building Packages, Available Packages, Using Packages, Packages
343 @comment  node-name,  next,  previous,  up
344
345 Source packages are available from the @file{packages/source-packages}
346 subdirectory of your favorite XEmacs distribution site.  Alternatively,
347 they are available via CVS from @file{cvs.xemacs.org}.  Look at
348 @file{http://cvs.xemacs.org} for instructions.
349
350 @subsection Prerequisites for Building Source Packages
351
352 You must have GNU @code{cp}, GNU @code{install} (or a BSD compatible
353 @code{install} program) GNU @code{make} (3.75 or later preferred),
354 @code{makeinfo} (1.68 from @code{texinfo-3.11} or later required), GNU
355 @code{tar} and XEmacs 21.0.  The source packages will untar into a
356 correct directory structure.  At the top level you must have
357 @file{XEmacs.rules} and @file{package-compile.el}.  These files are
358 available from the XEmacs FTP site from the same place you obtained your
359 source package distributions.
360
361 @subsection What You Can Do With Source Packages
362
363 NB:  A global build operation doesn't exist yet as of 13 January 1998.
364
365 Source packages are most useful for creating XEmacs package tarballs
366 for installation into your own XEmacs installations or for
367 distributing to others.
368
369 Supported operations from @file{make} are:
370
371 @table @code
372 @item clean
373 Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
374
375 @item distclean
376 Remove XEmacs backups as well as the files deleted by @code{make clean}.
377
378 @item all
379 Bytecompile all files, build and bytecompile byproduct files like
380 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
381 of TeXinfo documentation if present.
382
383 @item srckit
384 Usually aliased to @code{make srckit-std}.  This does a @code{make
385 distclean} and creates a package source tarball in the staging
386 directory.  This is generally only of use for package maintainers.
387
388 @item binkit
389 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
390 @code{binkit-sourcedata}, or
391 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
392 nothing to install in a data directory or info directory.
393 @code{sourceinfo} indicates that source and info files are to be
394 installed.  @code{sourcedata} indicates that source and etc (data) files
395 are to be installed.  @code{sourcedatainfo} indicates source, etc
396 (data), and info files are to be installed.  A few packages have needs
397 beyond the basic templates so this is not yet complete.
398
399 @item dist
400 Runs the rules @code{srckit} followed by @code{binkit}.  This is
401 primarily of use by XEmacs maintainers producing files for distribution.
402
403 @end table
404
405 @node Available Packages,  , Building Packages, Packages
406 @comment  node-name,  next,  previous,  up
407
408 This section is surely out-of-date.  If you're sure that XEmacs is
409 able to do something, but your installed XEmacs won't do it for you,
410 it's probably in a package.  If you can't find it in this section,
411 that's a bug---please report it.  It is very hard to keep this section
412 up-to-date; your reports, comments, and questions will help a lot.
413
414 This data is up-to-date as of 10 February 1999.  (Ouch!  I told you!)
415
416 @subsection Library Packages (libs)
417
418 These packages are required to build and support most of the rest of
419 XEmacs.  By design, xemacs-base is a `regular' package.  Use restraint 
420 when adding new files there as it is required by almost everything.
421
422 @table @file
423 @item Sun
424 Support for Sparcworks.
425
426 @item apel
427 A Portable Emacs Library.  Used by XEmacs MIME support.
428
429 @item edebug
430 A Lisp debugger.
431
432 @item dired
433 The DIRectory EDitor is for manipulating, and running commands on
434 files in a directory.
435
436 @item efs
437 Treat files on remote systems the same as local files.
438
439 @item mail-lib
440 Fundamental lisp files for providing email support.
441
442 @item tooltalk
443 Support for building with Tooltalk.
444
445 @item xemacs-base
446 Fundamental XEmacs support.  Install this unless you wish a totally
447 naked XEmacs.
448
449 @item xemacs-devel
450 XEmacs Lisp developer support.  This package contains utilities for
451 supporting Lisp development.  It is a single-file package so it may be 
452 tailored.
453 @end table
454
455 @subsection Communications Packages (comm)
456
457 These packages provide support for various communications, primarily
458 email and usenet.
459
460 @table @file
461 @item footnote
462 Footnoting in mail message editing modes.
463
464 @item gnats
465 XEmacs bug reports.
466
467 @item gnus
468 The Gnus Newsreader and Mailreader.
469
470 @item mailcrypt
471 Support for messaging encryption with PGP.
472
473 @item mh-e
474 Front end support for MH.
475
476 @item net-utils
477 Miscellaneous Networking Utilities.  This is a single-file package and 
478 files may be deleted at will.
479
480 @item ph
481 Emacs implementation of the ph client to CCSO/qi directory servers.
482
483 @item rmail
484 An obsolete Emacs mailer.  If you do not already use it don't start.
485
486 @item supercite
487 An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
488
489 @item tm
490 Emacs MIME support.
491
492 @item vm
493 An Emacs mailer.
494
495 @item w3
496 A Web browser.
497 @end table
498
499 @subsection Games and Amusements (games)
500
501 @table @file
502 @item cookie
503 Spook and Yow (Zippy quotes).
504
505 @item games
506 Tetris, Sokoban, and Snake.
507
508 @item mine
509 Minehunt.
510
511 @item misc-games
512 Other amusements and diversions.
513 @end table
514
515 @subsection Mule Support (mule)
516
517 @table @file
518 @item egg-its
519 Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
520 XEmacs build.
521
522 @item leim
523 Quail.  Used for everything other than English and Japanese.
524
525 @item locale
526 Used for localized menubars (French and Japanese) and localized splash
527 screens (Japanese).
528
529 @item mule-base
530 Basic Mule support.  Must be installed prior to building with Mule.
531
532 @item skk
533 Another Japanese Language Input Method.  Can be used without a
534 separate process running as a dictionary server.
535 @end table
536
537 @subsection Productivity Packages (oa)
538
539 @table @file
540 @item calendar
541 Calendar and diary support.
542
543 @item edit-utils
544 Single file lisp packages for various XEmacs goodies.  Load this and
545 weed out the junk you don't want.
546
547 @item forms
548 Forms editing support (obsolete, use the builtin Widget instead).
549
550 @item frame-icon
551 Provide a WM icon based on major mode.
552
553 @item hm--html-menus
554 HTML editing.
555
556 @item ispell
557 Spell-checking with ispell.
558
559 @item pc
560 PC style interface emulation.
561
562 @item psgml
563 Validated HTML/SGML editing.
564
565 @item sgml
566 SGML/Linuxdoc-SGML editing.
567
568 @item slider
569 User interface tool.
570
571 @item speedbar
572 ??? Document me.
573
574 @item strokes
575 Mouse enhancement utility.
576
577 @item text-modes
578 Various single file lisp packages for editing text files.
579
580 @item time
581 Display time & date on the modeline.
582 @end table
583
584 @subsection Operating System Utilities (os)
585
586 @table @file
587 @item eterm
588 Terminal emulator.
589
590 @item igrep
591 Enhanced front-end for Grep.
592
593 @item ilisp
594 Front-end for Inferior Lisp.
595
596 @item os-utils
597 Miscellaneous single-file O/S utilities, for printing, archiving,
598 compression, remote shells, etc.
599
600 @item view-process
601 A Unix process browsing tool.
602 @end table
603
604 @subsection Program Editing Support (prog)
605
606 @table @file
607 @item ada
608 Ada language support.
609
610 @item c-support
611 Basic single-file add-ons for editing C code.
612
613 @item cc-mode
614 C, C++ and Java language support.
615
616 @item debug
617 GUD, gdb, dbx debugging support.
618
619 @item ediff
620 Interface over patch.
621
622 @item emerge
623 Another interface over patch.
624
625 @item pcl-cvs
626 CVS frontend.
627
628 @item prog-modes
629 Miscellaneous single-file lisp files for various programming languages.
630
631 @item scheme
632 Front-end support for Inferior Scheme.
633
634 @item sh-script
635 Support for editing shell scripts.
636
637 @item vc
638 Version Control for Free systems.
639
640 @item vc-cc
641 Version Control for ClearCase.  This package must be installed prior
642 to building XEmacs [broken as of XEmacs 20.5-beta19].
643
644 @item vhdl
645 Support for VHDL.
646 @end table
647
648 @subsection Word Processing (wp)
649
650 @table @file
651 @item auctex
652 Basic TeX/LaTeX support.
653
654 @item crisp
655 Crisp/Brief emulation.
656
657 @item edt
658 DEC EDIT/EDT emulation.
659
660 @item texinfo
661 XEmacs TeXinfo support.
662
663 @item textools
664 Single-file TeX support.
665
666 @item tpu
667 DEC EDIT/TPU support.
668
669 @item viper
670 VI emulation support.
671 @end table
672