packages.texi 30 KB

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