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