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