Mercurial > hg > xemacs-beta
comparison man/xemacs/packages.texi @ 367:a4f53d9b3154 r21-1-13
Import from CVS: tag r21-1-13
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:01:07 +0200 |
parents | 182f72e8cd0d |
children | cc15677e0335 |
comparison
equal
deleted
inserted
replaced
366:83d76f480a59 | 367:a4f53d9b3154 |
---|---|
1 @node Packages, Abbrevs, Running, Top | 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 | |
2 @comment node-name, next, previous, up | 5 @comment node-name, next, previous, up |
3 | 6 |
4 @section Packages | 7 @section Packages |
5 @cindex packages | 8 @cindex packages |
6 | 9 |
14 | 17 |
15 @menu | 18 @menu |
16 * Package Terminology:: Understanding different kinds of packages. | 19 * Package Terminology:: Understanding different kinds of packages. |
17 * Using Packages:: How to install and use packages. | 20 * Using Packages:: How to install and use packages. |
18 * Building Packages:: Building packages from sources. | 21 * Building Packages:: Building packages from sources. |
22 * Creating Packages:: The basics. | |
23 * Available Packages:: A brief, out-of-date, directory of packaged LISP. | |
19 @end menu | 24 @end menu |
20 | 25 |
21 @node Package Terminology, Using Packages, , Packages | 26 @node Package Terminology, Using Packages, , Packages |
22 @comment node-name, next, previous, up | 27 @comment node-name, next, previous, up |
23 | 28 |
324 That's it. Quit and restart XEmacs to get it to recognize any new or | 329 That's it. Quit and restart XEmacs to get it to recognize any new or |
325 changed packages. | 330 changed packages. |
326 | 331 |
327 @end enumerate | 332 @end enumerate |
328 | 333 |
329 @node Building Packages, , Using Packages, Packages | 334 @node Building Packages, Creating Packages, Using Packages, Packages |
330 @comment node-name, next, previous, up | 335 @comment node-name, next, previous, up |
331 | 336 |
332 Source packages are available from the @file{packages/source-packages} | 337 Source packages are available from the @file{packages/source-packages} |
333 subdirectory of your favorite XEmacs distribution site. Alternatively, | 338 subdirectory of your favorite XEmacs distribution site. Alternatively, |
334 they are available via CVS from @file{cvs.xemacs.org}. Look at | 339 they are available via CVS from @file{cvs.xemacs.org}. Look at |
366 Bytecompile all files, build and bytecompile byproduct files like | 371 Bytecompile all files, build and bytecompile byproduct files like |
367 @file{auto-autoloads.el} and @file{custom-load.el}. Create info version | 372 @file{auto-autoloads.el} and @file{custom-load.el}. Create info version |
368 of TeXinfo documentation if present. | 373 of TeXinfo documentation if present. |
369 | 374 |
370 @item srckit | 375 @item srckit |
371 Usually aliased to @code{make srckit-std}. This does a @code{make | 376 Usually aliased to @code{srckit-std}. This does a @code{make |
372 distclean} and creates a package source tarball in the staging | 377 distclean} and creates a package source tarball in the staging |
373 directory. This is generally only of use for package maintainers. | 378 directory. This is generally only of use for package maintainers. |
374 | 379 |
375 @item binkit | 380 @item binkit |
376 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, | 381 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, |
386 @item dist | 391 @item dist |
387 Runs the rules @code{srckit} followed by @code{binkit}. This is | 392 Runs the rules @code{srckit} followed by @code{binkit}. This is |
388 primarily of use by XEmacs maintainers producing files for distribution. | 393 primarily of use by XEmacs maintainers producing files for distribution. |
389 | 394 |
390 @end table | 395 @end table |
396 | |
397 @node Creating Packages, Available Packages, Building Packages, Packages | |
398 @comment node-name, next, previous, up | |
399 | |
400 Creating a package from an existing Lisp library is not very difficult. | |
401 | |
402 In addition to the Lisp libraries themselves, you need a | |
403 @file{package-info.in} file and a simple @file{Makefile}. The rest is | |
404 done by @file{XEmacs.rules}, part of the packaging system | |
405 infrastructure. | |
406 | |
407 @file{package-info.in} contains a single Lisp form like this: | |
408 | |
409 @example | |
410 (name ; your package's name | |
411 (standards-version 1.1 | |
412 version VERSION | |
413 author-version AUTHOR_VERSION | |
414 date DATE | |
415 build-date BUILD_DATE | |
416 maintainer MAINTAINER | |
417 distribution xemacs ; change to "mule" if MULE is needed | |
418 priority high | |
419 category CATEGORY | |
420 dump nil | |
421 description "description" ; a one-line description string | |
422 filename FILENAME | |
423 md5sum MD5SUM | |
424 size SIZE | |
425 provides (feature1 feature2) ; one for every `provides' form | |
426 requires (REQUIRES) | |
427 type regular | |
428 )) | |
429 @end example | |
430 | |
431 You must fill in the four commented lines. The value of @code{name} is | |
432 the name of your package as an unquoted symbol. Normally it is the name | |
433 of the main Lisp file or principal feature provided. The allowed values | |
434 for distribution are @code{xemacs} and @code{mule}. Write them as | |
435 unquoted symbols. The @code{description} is a quoted Lisp string; use | |
436 the usual conventions. The value for @code{provides} is a list of | |
437 feature symbols (written unquoted). All of the features provided by | |
438 libraries in your package should be elements of this list. Implementing | |
439 an automatic method for generating the @file{provides} line is | |
440 desirable, but as yet undone. | |
441 | |
442 The variables in upper-case are references to variables set in the | |
443 @file{Makefile} or automatically generated. Do not change them; they | |
444 are automatically filled in by the build process. | |
445 | |
446 The remaining lines refer to implementation constants | |
447 (@code{standards-version}), or features that are unimplemented or have | |
448 been removed (@code{priority} and @code{dump}). The @code{type} line is | |
449 not normally relevant to external maintainers; the alternate value is | |
450 @code{single-file}, which refers to packages consed up out of a number | |
451 of single-file libraries that are more or less thematically related. An | |
452 example is @code{prog-modes}. Single-file packages are basically for | |
453 administrative convenience, and new packages should generally be created | |
454 as regular packages. | |
455 | |
456 The @file{Makefile} is quite stylized. The idea is similar to an | |
457 @file{Imakefile} or an @code{automake} file: the complexity is hidden in | |
458 generic rules files, in this case the @file{XEmacs.rules} include file | |
459 in the top directory of the packages hierarchy. Although a number of | |
460 facilities are available for complex libraries, most simple packages' | |
461 @file{Makefile}s contain a copyright notice, a few variable definitions, | |
462 an include for @file{XEmacs.rules}, and a couple of standard targets. | |
463 | |
464 The first few @code{make} variables defined are @code{VERSION}, | |
465 @code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE}, | |
466 @code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were | |
467 described in the description of @file{package-info.in}. The last is an | |
468 admistrative grouping. Current categories include @code{comm}, | |
469 @code{games}, @code{libs}, @code{mule}, @code{oa}, @code{os}, | |
470 @code{prog}, and @code{wp}. @ref{Available Packages}, for a list of | |
471 categories. | |
472 | |
473 Next, define the variable @code{ELCS}. This contains the list of the | |
474 byte-compiled Lisp files used by the package. These files and their | |
475 @file{.el} versions will be included in the binary package. If there | |
476 are other files (such as extra Lisp sources or an upstream | |
477 @file{Makefile}) that are normally placed in the installed Lisp | |
478 directory, but not byte-compiled, they can be listed as the value of | |
479 @code{EXTRA_SOURCES}. | |
480 | |
481 The include is simply | |
482 @example | |
483 include ../../XEmacs.rules | |
484 @end example | |
485 | |
486 The standard targets follow. These are | |
487 | |
488 @example | |
489 all:: $(ELCS) auto-autoloads.elc | |
490 | |
491 srckit: srckit-alias | |
492 | |
493 binkit: binkit-alias | |
494 @end example | |
495 | |
496 Other targets (such as Texinfo sources) may need to be added as | |
497 dependencies for the @code{all} target. Dependencies for @code{srckit} | |
498 and @code{binkit} (that is, values for @var{srckit-alias} and | |
499 @var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful | |
500 of these values are given in the following table. | |
501 | |
502 @table @var | |
503 @item srckit-alias | |
504 Usually set to @code{srckit-std}. | |
505 | |
506 @item binkit-alias | |
507 May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, | |
508 @code{binkit-sourcedata}, or | |
509 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is | |
510 nothing to install in a data directory or info directory. | |
511 @code{sourceinfo} indicates that source and info files are to be | |
512 installed. @code{sourcedata} indicates that source and etc (data) files | |
513 are to be installed. @code{sourcedatainfo} indicates source, etc | |
514 (data), and info files are to be installed. | |
515 @end table | |
516 | |
517 Data files include things like pixmaps for a package-specific toolbar, | |
518 and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few | |
519 packages have needs beyond the basic templates. See @file{XEmacs.rules} | |
520 or a future revision of this manual for details. | |
521 | |
522 @node Available Packages, , Creating Packages, Packages | |
523 @comment node-name, next, previous, up | |
524 | |
525 This section is surely out-of-date. If you're sure that XEmacs is | |
526 able to do something, but your installed XEmacs won't do it for you, | |
527 it's probably in a package. If you can't find it in this section, | |
528 that's a bug---please report it. It is very hard to keep this section | |
529 up-to-date; your reports, comments, and questions will help a lot. | |
530 | |
531 This data is up-to-date as of 10 February 1999. (Ouch! I told you!) | |
532 | |
533 @subsection Library Packages (libs) | |
534 | |
535 These packages are required to build and support most of the rest of | |
536 XEmacs. By design, xemacs-base is a `regular' package. Use restraint | |
537 when adding new files there as it is required by almost everything. | |
538 | |
539 @table @file | |
540 @item Sun | |
541 Support for Sparcworks. | |
542 | |
543 @item apel | |
544 A Portable Emacs Library. Used by XEmacs MIME support. | |
545 | |
546 @item edebug | |
547 A Lisp debugger. | |
548 | |
549 @item dired | |
550 The DIRectory EDitor is for manipulating, and running commands on | |
551 files in a directory. | |
552 | |
553 @item efs | |
554 Treat files on remote systems the same as local files. | |
555 | |
556 @item mail-lib | |
557 Fundamental lisp files for providing email support. | |
558 | |
559 @item tooltalk | |
560 Support for building with Tooltalk. | |
561 | |
562 @item xemacs-base | |
563 Fundamental XEmacs support. Install this unless you wish a totally | |
564 naked XEmacs. | |
565 | |
566 @item xemacs-devel | |
567 XEmacs Lisp developer support. This package contains utilities for | |
568 supporting Lisp development. It is a single-file package so it may be | |
569 tailored. | |
570 @end table | |
571 | |
572 @subsection Communications Packages (comm) | |
573 | |
574 These packages provide support for various communications, primarily | |
575 email and usenet. | |
576 | |
577 @table @file | |
578 @item footnote | |
579 Footnoting in mail message editing modes. | |
580 | |
581 @item gnats | |
582 XEmacs bug reports. | |
583 | |
584 @item gnus | |
585 The Gnus Newsreader and Mailreader. | |
586 | |
587 @item mailcrypt | |
588 Support for messaging encryption with PGP. | |
589 | |
590 @item mh-e | |
591 Front end support for MH. | |
592 | |
593 @item net-utils | |
594 Miscellaneous Networking Utilities. This is a single-file package and | |
595 files may be deleted at will. | |
596 | |
597 @item ph | |
598 Emacs implementation of the ph client to CCSO/qi directory servers. | |
599 | |
600 @item rmail | |
601 An obsolete Emacs mailer. If you do not already use it, don't start. | |
602 | |
603 @item supercite | |
604 An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders. | |
605 | |
606 @item tm | |
607 Emacs MIME support. | |
608 | |
609 @item vm | |
610 An Emacs mailer. | |
611 | |
612 @item w3 | |
613 A Web browser. | |
614 @end table | |
615 | |
616 @subsection Games and Amusements (games) | |
617 | |
618 @table @file | |
619 @item cookie | |
620 Spook and Yow (Zippy quotes). | |
621 | |
622 @item games | |
623 Tetris, Sokoban, and Snake. | |
624 | |
625 @item mine | |
626 Minehunt. | |
627 | |
628 @item misc-games | |
629 Other amusements and diversions. | |
630 @end table | |
631 | |
632 @subsection Mule Support (mule) | |
633 | |
634 @table @file | |
635 @item egg-its | |
636 Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to | |
637 XEmacs build. | |
638 | |
639 @item leim | |
640 Quail. Used for everything other than English and Japanese. | |
641 | |
642 @item locale | |
643 Used for localized menubars (French and Japanese) and localized splash | |
644 screens (Japanese). | |
645 | |
646 @item mule-base | |
647 Basic Mule support. Must be installed prior to building with Mule. | |
648 | |
649 @item skk | |
650 Another Japanese Language Input Method. Can be used without a | |
651 separate process running as a dictionary server. | |
652 @end table | |
653 | |
654 @subsection Productivity Packages (oa) | |
655 | |
656 @table @file | |
657 @item calendar | |
658 Calendar and diary support. | |
659 | |
660 @item edit-utils | |
661 Single file lisp packages for various XEmacs goodies. Load this and | |
662 weed out the junk you don't want. | |
663 | |
664 @item forms | |
665 Forms editing support (obsolete, use the builtin Widget instead). | |
666 | |
667 @item frame-icon | |
668 Provide a WM icon based on major mode. | |
669 | |
670 @item hm--html-menus | |
671 HTML editing. | |
672 | |
673 @item ispell | |
674 Spell-checking with ispell. | |
675 | |
676 @item pc | |
677 PC style interface emulation. | |
678 | |
679 @item psgml | |
680 Validated HTML/SGML editing. | |
681 | |
682 @item sgml | |
683 SGML/Linuxdoc-SGML editing. | |
684 | |
685 @item slider | |
686 User interface tool. | |
687 | |
688 @item speedbar | |
689 ??? Document me. | |
690 | |
691 @item strokes | |
692 Mouse enhancement utility. | |
693 | |
694 @item text-modes | |
695 Various single file lisp packages for editing text files. | |
696 | |
697 @item time | |
698 Display time & date on the modeline. | |
699 @end table | |
700 | |
701 @subsection Operating System Utilities (os) | |
702 | |
703 @table @file | |
704 @item eterm | |
705 Terminal emulator. | |
706 | |
707 @item igrep | |
708 Enhanced front-end for Grep. | |
709 | |
710 @item ilisp | |
711 Front-end for Inferior Lisp. | |
712 | |
713 @item os-utils | |
714 Miscellaneous single-file O/S utilities, for printing, archiving, | |
715 compression, remote shells, etc. | |
716 | |
717 @item view-process | |
718 A Unix process browsing tool. | |
719 @end table | |
720 | |
721 @subsection Program Editing Support (prog) | |
722 | |
723 @table @file | |
724 @item ada | |
725 Ada language support. | |
726 | |
727 @item c-support | |
728 Basic single-file add-ons for editing C code. | |
729 | |
730 @item cc-mode | |
731 C, C++ and Java language support. | |
732 | |
733 @item debug | |
734 GUD, gdb, dbx debugging support. | |
735 | |
736 @item ediff | |
737 Interface over patch. | |
738 | |
739 @item emerge | |
740 Another interface over patch. | |
741 | |
742 @item pcl-cvs | |
743 CVS frontend. | |
744 | |
745 @item prog-modes | |
746 Miscellaneous single-file lisp files for various programming languages. | |
747 | |
748 @item scheme | |
749 Front-end support for Inferior Scheme. | |
750 | |
751 @item sh-script | |
752 Support for editing shell scripts. | |
753 | |
754 @item vc | |
755 Version Control for Free systems. | |
756 | |
757 @item vc-cc | |
758 Version Control for ClearCase. This package must be installed prior | |
759 to building XEmacs [broken as of XEmacs 20.5-beta19]. | |
760 | |
761 @item vhdl | |
762 Support for VHDL. | |
763 @end table | |
764 | |
765 @subsection Word Processing (wp) | |
766 | |
767 @table @file | |
768 @item auctex | |
769 Basic TeX/LaTeX support. | |
770 | |
771 @item crisp | |
772 Crisp/Brief emulation. | |
773 | |
774 @item edt | |
775 DEC EDIT/EDT emulation. | |
776 | |
777 @item texinfo | |
778 XEmacs TeXinfo support. | |
779 | |
780 @item textools | |
781 Single-file TeX support. | |
782 | |
783 @item tpu | |
784 DEC EDIT/TPU support. | |
785 | |
786 @item viper | |
787 VI emulation support. | |
788 @end table | |
789 |