Next: Building Packages, Previous: Package Overview, Up: Packaging [Contents][Index]
A Lisp library is a single loadable file containing Lisp code. It may be in source or byte-compiled form. A Lisp package is a set of one or more libraries, usually related to each other in some way, bundled with administrative information for convenient distribution.
There are two main flavors of packages.
A regular package is a set of Lisp libraries design to cooperate with one another. A very complex example is Gnus. One may not in general safely remove any of the component libraries.
A single-file package is a collection of thematically related but otherwise independent Lisp libraries. These libraries are bundled together for convenience of the maintainers. Usually individual libraries may be deleted at will without any loss of functionality of other libraries in the package. However, we would recommend that you follow this rule of thumb: "When in doubt, don’t delete". If it’s really that big a deal, request that the maintainers split the package into smaller aggregations.
XEmacs Lisp packages are distributed in two ways. Binary packages are used by system administrators and end users. They are packaged in a form convenient for direct installation into an XEmacs package hierarchy. Source packages are for developers and include all files necessary for rebuilding byte-compiled lisp and creating tarballs for distribution or installation. This is all of the package author’s source code plus all of the files necessary to build distribution tarballs (Unix Tar format files, gzipped for space savings). (Occasionally sources that are not relevant to XEmacs are usually renamed to file.upstream.)
Currently, source packages are only available via CVS. See http://www.xemacs.org/Develop/cvsaccess.html for details.
The package distributions are also split according to major features required in XEmacs to support them. At present there are generic packages, which can be loaded by any XEmacs, and Mule packages, which require Mule support or they will cause errors when loaded. Note that there is no guarantee that a generic package will have any useful functionality in a minimally configured XEmacs. As long as any XEmacs can successfully load the package’s libraries (perhaps given other required Lisp libraries), it will be classified as generic. At the present time only Mule packages need be treated specially, and even those only if they contain multibyte characters.
Next: Building Packages, Previous: Package Overview, Up: Packaging [Contents][Index]