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
|
966
|
98 If you have EFS @ref{(EFS)}, packages can be installed over the network.
|
|
99 Alternatively, if you have copies of the packages locally, you can
|
|
100 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
|
1366
|
246 local directory, you can: @code{M-x pui-set-local-package-get-directory RET}
|
458
|
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
|
1366
|
255 latest package-index file.
|
428
|
256
|
|
257 The visual package browser will then display a list of all packages.
|
|
258 Help information will be displayed at the very bottom of the buffer; you
|
|
259 may have to scroll down to see it. You can also press @kbd{?} to get
|
|
260 the same help. From this buffer, you can tell the package status by the
|
|
261 character in the first column:
|
|
262
|
|
263 @table @kbd
|
|
264 @item -
|
|
265 The package has not been installed.
|
|
266 @item *
|
|
267 The package has been installed, but a newer version is available. The
|
|
268 current version is out-of-date.
|
|
269 @item +
|
|
270 The package has been marked for installation/update.
|
|
271 @end table
|
|
272
|
|
273 If there is no character in the first column, the package has been
|
1030
|
274 installed and is up to date.
|
428
|
275
|
|
276 From here, you can select or unselect packages for installation using
|
|
277 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
|
1366
|
278 the Popup @kbd{Mouse-3} Menu.
|
428
|
279 Once you've finished selecting the packages, you can
|
|
280 press the @kbd{x} key (or use the menu) to actually install the
|
|
281 packages. Note that you will have to restart XEmacs for XEmacs to
|
|
282 recognize any new packages.
|
|
283
|
|
284 Key summary:
|
|
285
|
|
286 @table @kbd
|
|
287 @item ?
|
|
288 Display simple help.
|
|
289 @item @key{RET}
|
|
290 @itemx @key{Mouse-2}
|
|
291 Toggle between selecting and unselecting a package for installation.
|
|
292 @item x
|
|
293 Install selected packages.
|
|
294 @item @key{SPC}
|
|
295 View, in the minibuffer, additional information about the package, such
|
|
296 as the package date (not the build date) and the package author. Moving
|
|
297 the mouse over a package name will also do the same thing.
|
|
298 @item v
|
|
299 Toggle between verbose and non-verbose package display.
|
|
300 @item g
|
|
301 Refresh the package display.
|
|
302 @item q
|
|
303 Kill the package buffer.
|
|
304 @end table
|
|
305
|
|
306 Moving the mouse over a package will also cause additional information
|
1366
|
307 about the package to be displayed in the minibuffer. If you have
|
|
308 balloon-help enabled a balloon-help frame will pop up and display
|
|
309 additional package information also.
|
428
|
310
|
|
311
|
635
|
312 @item
|
|
313 Choose the packages you wish to install.
|
458
|
314 mouse: Click button 2 on the package name.
|
|
315 keyb: @kbd{RET} on the package name
|
|
316
|
635
|
317 @item
|
|
318 Make sure you have everything you need.
|
458
|
319 menu: Packages -> Add Required
|
|
320 keyb: @kbd{r}
|
428
|
321
|
458
|
322 XEmacs will now search for packages that are required by the
|
|
323 ones that you have chosen to install and offer to select
|
|
324 those packages also.
|
428
|
325
|
458
|
326 For novices and gurus alike, this step can save your bacon.
|
|
327 It's easy to forget to install a critical package.
|
428
|
328
|
635
|
329 @item
|
|
330 Download and install the packages.
|
458
|
331 menu: Packages -> Install/Remove Selected
|
|
332 keyb: @kbd{x}
|
|
333 @end enumerate
|
428
|
334
|
|
335 You can also install packages using a semi-manual interface:
|
|
336
|
|
337 @example
|
|
338 M-x package-get-all <return>
|
|
339 @end example
|
|
340
|
|
341 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
|
458
|
342 will search for the latest version and install it and any packages that
|
428
|
343 it depends upon.
|
|
344
|
1366
|
345 @heading Keeping Packages Up To Date:
|
|
346 Once you have the packages you want installed (using any of the above
|
|
347 methods) you'll want to keep them up to date. You can do this easily
|
|
348 from the menubar:
|
|
349
|
|
350 @example
|
|
351 Tools -> Packages -> Add Download Site
|
|
352 Tools -> Packages -> Update Installed Packages
|
|
353 @end example
|
|
354
|
|
355
|
458
|
356 @node Which Packages, Removing Packages, Automatically, Installing Packages
|
|
357 @comment node-name, next, previous, up
|
|
358 @cindex which packages
|
|
359 @cindex choosing packages
|
|
360 @heading Which Packages to Install:
|
|
361 This is difficult to say. When in doubt install a package. If you
|
|
362 administrate a big site it might be a good idea to just install
|
|
363 everything. A good minimal set of packages for XEmacs-latin1 would be
|
428
|
364
|
458
|
365 xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
|
|
366 edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
|
|
367 text-modes, time
|
428
|
368
|
458
|
369 If you are using the XEmacs package tools, don't forget to do:
|
428
|
370
|
458
|
371 Packages -> Add Required
|
428
|
372
|
458
|
373 To make sure you have everything that the packages you have chosen to
|
|
374 install need.
|
|
375
|
|
376 See also @ref{Available Packages} for further descriptions of the individual
|
|
377 packages.
|
428
|
378
|
458
|
379 @node Removing Packages, ,Which Packages, Installing Packages
|
|
380 @comment node-name, next, previous, up
|
|
381 @cindex removing packages
|
|
382 @cindex deleting packages
|
|
383 @heading Removing Packages:
|
|
384 Because the exact files and their locations contained in a package may
|
|
385 change it is recommended to remove a package first before installing a
|
|
386 new version. In order to facilitate removal each package contains an
|
|
387 @file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
|
|
388 to the package.
|
428
|
389
|
458
|
390 No need to panic, you don't have to go through the
|
|
391 @file{pkinfo/MANIFEST.pkgname} and manually delete the files. Instead, use
|
737
|
392 @code{M-x package-get-delete-package RET}.
|
428
|
393
|
458
|
394 Note that the interactive package tools included with XEmacs already do
|
|
395 this for you.
|
428
|
396
|
458
|
397 @node Building Packages, Local.rules File, Installing Packages, Packages
|
428
|
398 @comment node-name, next, previous, up
|
458
|
399 @cindex building packages
|
|
400 @cindex package building
|
|
401 @heading Building Packages:
|
|
402 Currently, source packages are only available via anonymous CVS. See
|
|
403 @url{http://cvs.xemacs.org/} for details of checking out the
|
|
404 @file{xemacs-packages} module.
|
428
|
405
|
|
406 @subsection Prerequisites for Building Source Packages
|
|
407
|
458
|
408 @table @code
|
|
409 @item GNU cp
|
462
|
410 @item GNU install
|
458
|
411 (or a BSD compatible install program).
|
|
412 @item GNU make
|
|
413 (3.75 or later preferred).
|
|
414 @item makeinfo
|
1366
|
415 (4.2 from GNU texinfo 4.2 or later required).
|
458
|
416 @item GNU tar
|
|
417 (or equivalent).
|
|
418 @item GNU gzip
|
|
419 (or equivalent).
|
|
420 @item A properly configured @file{Local.rules} file.
|
|
421 @ref{Local.rules File}.
|
|
422 @end table
|
|
423 And of course, XEmacs 21.0 or higher.
|
428
|
424
|
|
425 @subsection What You Can Do With Source Packages
|
|
426
|
458
|
427 The packages CVS sources are most useful for creating XEmacs package
|
|
428 tarballs for installation into your own XEmacs installations or for
|
428
|
429 distributing to others.
|
|
430
|
|
431 Supported operations from @file{make} are:
|
|
432
|
|
433 @table @code
|
|
434 @item all
|
|
435 Bytecompile all files, build and bytecompile byproduct files like
|
|
436 @file{auto-autoloads.el} and @file{custom-load.el}. Create info version
|
|
437 of TeXinfo documentation if present.
|
|
438
|
458
|
439 @item bindist
|
|
440 Does a @code{make all} as well as create a binary package tarball in the
|
|
441 staging directory.
|
|
442
|
|
443 @item install
|
|
444 Bytecompile all files, build and bytecompile byproduct files like
|
|
445 @file{auto-autoloads.el} and @file{custom-load.el}. Create info version
|
|
446 of TeXinfo documentation if present. And install everything into the
|
|
447 staging directory.
|
|
448
|
428
|
449 @item srckit
|
448
|
450 Usually aliased to @code{srckit-std}. This does a @code{make
|
428
|
451 distclean} and creates a package source tarball in the staging
|
|
452 directory. This is generally only of use for package maintainers.
|
|
453
|
|
454 @item binkit
|
|
455 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
|
|
456 @code{binkit-sourcedata}, or
|
|
457 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
|
|
458 nothing to install in a data directory or info directory.
|
|
459 @code{sourceinfo} indicates that source and info files are to be
|
|
460 installed. @code{sourcedata} indicates that source and etc (data) files
|
|
461 are to be installed. @code{sourcedatainfo} indicates source, etc
|
|
462 (data), and info files are to be installed. A few packages have needs
|
|
463 beyond the basic templates so this is not yet complete.
|
|
464
|
|
465 @item dist
|
|
466 Runs the rules @code{srckit} followed by @code{binkit}. This is
|
|
467 primarily of use by XEmacs maintainers producing files for distribution.
|
|
468
|
458
|
469 @item clean
|
|
470 Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
|
|
471
|
|
472 @item distclean
|
|
473 Remove all created files.
|
428
|
474 @end table
|
444
|
475
|
458
|
476 @node Local.rules File, Creating Packages, Building Packages, Packages
|
448
|
477 @comment node-name, next, previous, up
|
458
|
478 @cindex local.rules
|
|
479 @heading The Local.rules File:
|
|
480 This file is used when building and installing packages from source. In
|
1251
|
481 the top level of the CVS module, @file{packages}, contains the
|
458
|
482 file, @file{Local.rules.template}. Simply copy that to
|
|
483 @file{Local.rules} and edit it to suit your needs.
|
448
|
484
|
458
|
485 These are the variables in 'Local.rules' that you will need to
|
1251
|
486 address. Items that have default settings have those defaults shown.
|
458
|
487
|
|
488 @table @var
|
1251
|
489 @item XEMACS = xemacs
|
|
490 If your XEmacs isn't in your path, change this. Native MS Windows users
|
|
491 should double quote this if the path has embedded spaces.
|
458
|
492
|
|
493 @item BUILD_WITHOUT_MULE =
|
|
494 Building from CVS defaults to building the Mule
|
|
495 packages. Set this to 't' if you don't want/have Mule
|
|
496
|
1251
|
497 @item XEMACS_NATIVE_NT =
|
|
498 Set this to 't' if you are building on WinNT. NT users should note that
|
|
499 you still need the Cygwin environment to build the packages.
|
|
500
|
|
501 @item XEMACS_INSTALLED_PACKAGES_ROOT = /usr/local/lib/xemacs
|
|
502 This is the directory tree under which the installed packages go. Under
|
|
503 this directory there would normally be @file{xemacs-packages/} for
|
|
504 standard (non-Mule) packages, @file{mule-packages/} for Mule packages
|
|
505 (if you built XEmacs with Mule), and possibly @file{site-packages/} for
|
|
506 3rd party packages that aren't distributed by XEmacs.org.
|
|
507
|
|
508 @item symlink =
|
|
509 Set this to 't' if you want to do a "run in place".
|
|
510 Setting this doesn't work well with 'make bindist'
|
|
511
|
|
512 @item NONMULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/xemacs-packages
|
|
513 This is where the non-Mule packages are installed to. You probably
|
|
514 don't want to change this.
|
|
515
|
|
516 @item MULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/mule-packages
|
|
517 This is where the Mule packages are installed to. You probably don't
|
|
518 want to change this. Please note that @code{make bindist} does
|
|
519 @emph{not} use this variable. When doing a @code{make bindist}
|
|
520 @emph{everything} goes into @var{NONMULE_INSTALLED_PACKAGES_ROOT}.
|
|
521
|
|
522 @item NONMULE_PACKAGES = xemacs-packages
|
|
523 This is where you set the non-Mule packages that you want to install. eg:
|
|
524 @example
|
|
525 XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb
|
|
526 @end example
|
|
527
|
|
528 @item MULE_PACKAGES = mule-packages
|
458
|
529 Same as for 'XEMACS_PACKAGES' except you list the Mule
|
|
530 packages you want to install here. eg:
|
|
531 @example
|
540
|
532 MULE_PACKAGES = mule-packages/mule-base mule-packages/skk
|
458
|
533 @end example
|
|
534
|
1251
|
535 @item PACKAGE_INDEX = package-index
|
|
536 If you want the package-index file to have a different
|
|
537 name, change this.
|
458
|
538
|
|
539 @item INSTALL = install -c
|
|
540 The path to your BSD compatible install program.
|
|
541
|
|
542 @item TAR = tar
|
|
543 The path to your tar program
|
|
544
|
|
545 @item BZIP2 =
|
|
546 If you want bzip2 tarballs, set this.
|
|
547
|
|
548 @item MAKEINFO = makeinfo
|
|
549 The path to your makeinfo program
|
|
550 @end table
|
|
551
|
|
552
|
|
553 @node Creating Packages, Available Packages, Local.rules File, Packages
|
|
554 @comment node-name, next, previous, up
|
|
555 @cindex creating packages
|
|
556 @heading Creating Packages:
|
448
|
557 Creating a package from an existing Lisp library is not very difficult.
|
|
558
|
|
559 In addition to the Lisp libraries themselves, you need a
|
|
560 @file{package-info.in} file and a simple @file{Makefile}. The rest is
|
|
561 done by @file{XEmacs.rules}, part of the packaging system
|
|
562 infrastructure.
|
|
563
|
|
564 @file{package-info.in} contains a single Lisp form like this:
|
|
565
|
|
566 @example
|
|
567 (name ; your package's name
|
|
568 (standards-version 1.1
|
|
569 version VERSION
|
|
570 author-version AUTHOR_VERSION
|
|
571 date DATE
|
|
572 build-date BUILD_DATE
|
|
573 maintainer MAINTAINER
|
|
574 distribution xemacs ; change to "mule" if MULE is needed
|
|
575 priority high
|
|
576 category CATEGORY
|
|
577 dump nil
|
1613
|
578 description "DESCRIPTION" ; one-line period-terminated string
|
448
|
579 filename FILENAME
|
|
580 md5sum MD5SUM
|
|
581 size SIZE
|
|
582 provides (feature1 feature2) ; one for every `provides' form
|
|
583 requires (REQUIRES)
|
|
584 type regular
|
|
585 ))
|
|
586 @end example
|
|
587
|
|
588 You must fill in the four commented lines. The value of @code{name} is
|
|
589 the name of your package as an unquoted symbol. Normally it is the name
|
|
590 of the main Lisp file or principal feature provided. The allowed values
|
|
591 for distribution are @code{xemacs} and @code{mule}. Write them as
|
|
592 unquoted symbols. The @code{description} is a quoted Lisp string; use
|
1613
|
593 the usual conventions. The first letter should be capitalized, and the
|
|
594 string should end in a period. It need not be a complete sentence
|
|
595 grammatically. The value for @code{provides} is a list of feature
|
|
596 symbols (written unquoted). All of the features provided by libraries
|
|
597 in your package should be elements of this list. Implementing an
|
|
598 automatic method for generating the @file{provides} line is desirable,
|
|
599 but as yet undone.
|
448
|
600
|
|
601 The variables in upper-case are references to variables set in the
|
|
602 @file{Makefile} or automatically generated. Do not change them; they
|
|
603 are automatically filled in by the build process.
|
|
604
|
|
605 The remaining lines refer to implementation constants
|
|
606 (@code{standards-version}), or features that are unimplemented or have
|
|
607 been removed (@code{priority} and @code{dump}). The @code{type} line is
|
|
608 not normally relevant to external maintainers; the alternate value is
|
|
609 @code{single-file}, which refers to packages consed up out of a number
|
|
610 of single-file libraries that are more or less thematically related. An
|
|
611 example is @code{prog-modes}. Single-file packages are basically for
|
|
612 administrative convenience, and new packages should generally be created
|
|
613 as regular packages.
|
|
614
|
|
615 The @file{Makefile} is quite stylized. The idea is similar to an
|
|
616 @file{Imakefile} or an @code{automake} file: the complexity is hidden in
|
|
617 generic rules files, in this case the @file{XEmacs.rules} include file
|
|
618 in the top directory of the packages hierarchy. Although a number of
|
|
619 facilities are available for complex libraries, most simple packages'
|
|
620 @file{Makefile}s contain a copyright notice, a few variable definitions,
|
|
621 an include for @file{XEmacs.rules}, and a couple of standard targets.
|
|
622
|
|
623 The first few @code{make} variables defined are @code{VERSION},
|
|
624 @code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE},
|
|
625 @code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were
|
|
626 described in the description of @file{package-info.in}. The last is an
|
540
|
627 administrative grouping. Current categories include @code{standard},
|
|
628 and @code{mule}.
|
448
|
629
|
|
630 Next, define the variable @code{ELCS}. This contains the list of the
|
|
631 byte-compiled Lisp files used by the package. These files and their
|
|
632 @file{.el} versions will be included in the binary package. If there
|
|
633 are other files (such as extra Lisp sources or an upstream
|
|
634 @file{Makefile}) that are normally placed in the installed Lisp
|
|
635 directory, but not byte-compiled, they can be listed as the value of
|
|
636 @code{EXTRA_SOURCES}.
|
|
637
|
|
638 The include is simply
|
|
639 @example
|
|
640 include ../../XEmacs.rules
|
|
641 @end example
|
|
642
|
|
643 The standard targets follow. These are
|
|
644
|
|
645 @example
|
|
646 all:: $(ELCS) auto-autoloads.elc
|
|
647
|
|
648 srckit: srckit-alias
|
|
649
|
|
650 binkit: binkit-alias
|
|
651 @end example
|
|
652
|
|
653 Other targets (such as Texinfo sources) may need to be added as
|
|
654 dependencies for the @code{all} target. Dependencies for @code{srckit}
|
|
655 and @code{binkit} (that is, values for @var{srckit-alias} and
|
|
656 @var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful
|
|
657 of these values are given in the following table.
|
|
658
|
|
659 @table @var
|
|
660 @item srckit-alias
|
|
661 Usually set to @code{srckit-std}.
|
|
662
|
|
663 @item binkit-alias
|
|
664 May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
|
|
665 @code{binkit-sourcedata}, or
|
|
666 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
|
|
667 nothing to install in a data directory or info directory.
|
|
668 @code{sourceinfo} indicates that source and info files are to be
|
|
669 installed. @code{sourcedata} indicates that source and etc (data) files
|
|
670 are to be installed. @code{sourcedatainfo} indicates source, etc
|
|
671 (data), and info files are to be installed.
|
|
672 @end table
|
|
673
|
|
674 Data files include things like pixmaps for a package-specific toolbar,
|
|
675 and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few
|
|
676 packages have needs beyond the basic templates. See @file{XEmacs.rules}
|
|
677 or a future revision of this manual for details.
|
|
678
|
|
679 @node Available Packages, , Creating Packages, Packages
|
444
|
680 @comment node-name, next, previous, up
|
458
|
681 @cindex available packages
|
|
682 @cindex packages
|
|
683 @heading Available Packages:
|
|
684 This section lists the Lisp packages that are currently available from
|
|
685 xemacs.org and it's mirrors. If a particular package that you are
|
|
686 looking for isn't here, please send a message to the
|
|
687 @email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
|
444
|
688
|
1030
|
689 This data is up to date as of October 4, 2002.
|
444
|
690
|
540
|
691 @subsection Normal Packages
|
|
692 A very broad selection of elisp packages.
|
444
|
693
|
|
694 @table @file
|
|
695 @item Sun
|
|
696 Support for Sparcworks.
|
|
697
|
540
|
698 @item ada
|
|
699 Ada language support.
|
|
700
|
444
|
701 @item apel
|
|
702 A Portable Emacs Library. Used by XEmacs MIME support.
|
|
703
|
540
|
704 @item auctex
|
|
705 Basic TeX/LaTeX support.
|
|
706
|
|
707 @item bbdb
|
947
|
708 The Big Brother Data Base: a rolodex-like database program.
|
540
|
709
|
|
710 @item build
|
|
711 Build XEmacs using custom widgets.
|
|
712
|
|
713 @item c-support
|
|
714 Basic single-file add-ons for editing C code.
|
|
715
|
|
716 @item calc
|
|
717 Emacs calculator.
|
|
718
|
|
719 @item calendar
|
|
720 Calendar and diary support.
|
|
721
|
|
722 @item cc-mode
|
|
723 C, C++ and Java language support.
|
|
724
|
947
|
725 @item clearcase
|
|
726 Support for the Clearcase version control system.
|
|
727
|
540
|
728 @item cookie
|
947
|
729 "Fortune cookie"-style messages. Includes Spook (suspicious phrases)
|
|
730 and Yow (Zippy quotes).
|
540
|
731
|
|
732 @item crisp
|
|
733 Crisp/Brief emulation.
|
|
734
|
|
735 @item debug
|
|
736 GUD, gdb, dbx debugging support.
|
|
737
|
947
|
738 @item dictionary
|
|
739 Interface to RFC2229 dictionary servers.
|
|
740
|
444
|
741 @item dired
|
|
742 The DIRectory EDitor is for manipulating, and running commands on
|
|
743 files in a directory.
|
|
744
|
955
|
745 @item docbookide
|
|
746 DocBook editing support.
|
|
747
|
|
748 @item ecrypto
|
|
749 Crypto functionality in Emacs Lisp.
|
|
750
|
458
|
751 @item edebug
|
|
752 A Lisp debugger.
|
|
753
|
540
|
754 @item ediff
|
|
755 Interface over patch.
|
|
756
|
|
757 @item edit-utils
|
|
758 Single file lisp packages for various XEmacs goodies. Load this and
|
|
759 weed out the junk you don't want.
|
|
760
|
|
761 @item edt
|
|
762 DEC EDIT/EDT emulation.
|
|
763
|
444
|
764 @item efs
|
|
765 Treat files on remote systems the same as local files.
|
|
766
|
540
|
767 @item eieio
|
|
768 Enhanced Implementation of Emacs Interpreted Objects.
|
|
769
|
458
|
770 @item elib
|
|
771 Portable Emacs Lisp utilities library.
|
|
772
|
540
|
773 @item emerge
|
|
774 Another interface over patch.
|
444
|
775
|
540
|
776 @item eshell
|
|
777 Command shell implemented entirely in Emacs Lisp.
|
444
|
778
|
947
|
779 @item ess
|
|
780 ESS: Emacs Speaks Statistics.
|
|
781
|
540
|
782 @item eterm
|
|
783 Terminal emulator.
|
458
|
784
|
|
785 @item eudc
|
|
786 Emacs Unified Directory Client (LDAP, PH).
|
|
787
|
444
|
788 @item footnote
|
|
789 Footnoting in mail message editing modes.
|
|
790
|
540
|
791 @item forms
|
|
792 Forms editing support (obsolete, use the built-in Widget instead).
|
|
793
|
1030
|
794 @item fortran-modes
|
|
795 Fortran language support.
|
|
796
|
540
|
797 @item frame-icon
|
|
798 Provide a WM icon based on major mode.
|
|
799
|
|
800 @item fsf-compat
|
1030
|
801 GNU Emacs compatibility files.
|
540
|
802
|
|
803 @item games
|
|
804 Tetris, Sokoban, and Snake.
|
|
805
|
444
|
806 @item gnats
|
|
807 XEmacs bug reports.
|
|
808
|
|
809 @item gnus
|
|
810 The Gnus Newsreader and Mailreader.
|
|
811
|
947
|
812 @item haskell-mode
|
1030
|
813 Haskell language support.
|
947
|
814
|
540
|
815 @item hm--html-menus
|
|
816 HTML editing.
|
|
817
|
947
|
818 @item ibuffer
|
|
819 Advanced replacement for buffer-menu.
|
|
820
|
540
|
821 @item idlwave
|
|
822 Editing and Shell mode for the Interactive Data Language.
|
|
823
|
|
824 @item igrep
|
|
825 Enhanced front-end for Grep.
|
|
826
|
|
827 @item ilisp
|
947
|
828 Front-end for interacting with Inferior Lisp (external lisps).
|
540
|
829
|
|
830 @item ispell
|
|
831 Spell-checking with ispell.
|
|
832
|
|
833 @item jde
|
|
834 Java language and development support.
|
|
835
|
947
|
836 @item liece
|
|
837 IRC (Internet Relay Chat) client for Emacs.
|
|
838
|
540
|
839 @item mail-lib
|
|
840 Fundamental lisp files for providing email support.
|
|
841
|
444
|
842 @item mailcrypt
|
|
843 Support for messaging encryption with PGP.
|
|
844
|
458
|
845 @item mew
|
947
|
846 Messaging in an Emacs World; a MIME-based email program.
|
458
|
847
|
444
|
848 @item mh-e
|
|
849 Front end support for MH.
|
|
850
|
540
|
851 @item mine
|
947
|
852 Elisp implementation of the game 'Minehunt'.
|
540
|
853
|
|
854 @item misc-games
|
|
855 Other amusements and diversions.
|
|
856
|
947
|
857 @item mmm-mode
|
|
858 Support for Multiple Major Modes within a single buffer.
|
|
859
|
444
|
860 @item net-utils
|
|
861 Miscellaneous Networking Utilities. This is a single-file package and
|
|
862 files may be deleted at will.
|
|
863
|
540
|
864 @item os-utils
|
|
865 Miscellaneous single-file O/S utilities, for printing, archiving,
|
|
866 compression, remote shells, etc.
|
|
867
|
955
|
868 @item ocaml
|
1030
|
869 Objective Caml language support.
|
955
|
870
|
540
|
871 @item pc
|
|
872 PC style interface emulation.
|
|
873
|
|
874 @item pcl-cvs
|
|
875 CVS frontend.
|
|
876
|
|
877 @item pcomplete
|
|
878 Provides programmatic completion.
|
|
879
|
1030
|
880 @item perl-modes
|
|
881 Perl language support.
|
|
882
|
540
|
883 @item prog-modes
|
|
884 Miscellaneous single-file lisp files for various programming languages.
|
|
885
|
947
|
886 @item ps-print
|
|
887 Print buffers to PostScript printers.
|
540
|
888
|
|
889 @item psgml
|
|
890 Validated HTML/SGML editing.
|
|
891
|
1030
|
892 @item psgml-dtds
|
|
893 A collection of DTDs for psgml. Note that this package is deprecated
|
|
894 and will be removed in the future, most likely Q2/2003. Instead of using
|
|
895 this, you should install needed DTDs yourself.
|
|
896
|
|
897 @item python-modes
|
|
898 Python language support.
|
|
899
|
540
|
900 @item reftex
|
|
901 Emacs support for LaTeX cross-references, citations.
|
|
902
|
444
|
903 @item rmail
|
|
904 An obsolete Emacs mailer. If you do not already use it don't start.
|
|
905
|
1030
|
906 @item ruby-modes
|
|
907 Ruby language support.
|
|
908
|
955
|
909 @item sasl
|
|
910 Simple Authentication and Security Layer (SASL) library.
|
|
911
|
540
|
912 @item scheme
|
|
913 Front-end support for Inferior Scheme.
|
|
914
|
|
915 @item semantic
|
|
916 Semantic bovinator.
|
|
917
|
|
918 @item sgml
|
|
919 SGML/Linuxdoc-SGML editing.
|
|
920
|
|
921 @item sh-script
|
|
922 Support for editing shell scripts.
|
|
923
|
947
|
924 @item sieve
|
|
925 Manage Sieve email filtering scripts.
|
|
926
|
540
|
927 @item slider
|
|
928 User interface tool.
|
|
929
|
955
|
930 @item sml-mode
|
|
931 Standard ML editing support.
|
|
932
|
540
|
933 @item sounds-au
|
|
934 XEmacs Sun sound files.
|
|
935
|
|
936 @item sounds-wav
|
|
937 XEmacs Microsoft sound files.
|
|
938
|
|
939 @item speedbar
|
|
940 Provides a separate frame with convenient references.
|
|
941
|
|
942 @item strokes
|
|
943 Mouse enhancement utility.
|
|
944
|
444
|
945 @item supercite
|
|
946 An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders.
|
|
947
|
540
|
948 @item texinfo
|
|
949 XEmacs TeXinfo support.
|
|
950
|
|
951 @item text-modes
|
|
952 Various single file lisp packages for editing text files.
|
|
953
|
|
954 @item textools
|
|
955 Single-file TeX support.
|
|
956
|
|
957 @item time
|
|
958 Display time & date on the modeline.
|
|
959
|
444
|
960 @item tm
|
458
|
961 Emacs MIME support. Not needed for Gnus >= 5.8.0
|
444
|
962
|
540
|
963 @item tooltalk
|
|
964 Support for building with Tooltalk.
|
|
965
|
|
966 @item tpu
|
|
967 DEC EDIT/TPU support.
|
|
968
|
947
|
969 @item tramp
|
|
970 Remote shell-based file editing. This is similar to EFS or Ange-FTP,
|
|
971 but works with rsh/ssh and rcp/scp.
|
|
972
|
540
|
973 @item vc
|
|
974 Version Control for Free systems.
|
|
975
|
|
976 @item vc-cc
|
|
977 Version Control for ClearCase. This package will shortly be
|
|
978 replaced with clearcase.el
|
|
979
|
|
980 @item vhdl
|
|
981 Support for VHDL.
|
|
982
|
|
983 @item view-process
|
|
984 A Unix process browsing tool.
|
|
985
|
|
986 @item viper
|
|
987 VI emulation support.
|
|
988
|
444
|
989 @item vm
|
|
990 An Emacs mailer.
|
|
991
|
|
992 @item w3
|
|
993 A Web browser.
|
458
|
994
|
540
|
995 @item xemacs-base
|
|
996 Fundamental XEmacs support. Install this unless you wish a totally
|
|
997 naked XEmacs.
|
|
998
|
|
999 @item xemacs-devel
|
|
1000 XEmacs Lisp developer support. This package contains utilities for
|
|
1001 supporting Lisp development. It is a single-file package so it may be
|
|
1002 tailored.
|
|
1003
|
947
|
1004 @item xslide
|
|
1005 XSL editing support.
|
|
1006
|
540
|
1007 @item xslt-process
|
|
1008 A minor mode for (X)Emacs which allows running an XSLT processor on a
|
|
1009 buffer.
|
|
1010
|
458
|
1011 @item zenirc
|
|
1012 ZENIRC IRC Client.
|
444
|
1013 @end table
|
|
1014
|
|
1015 @subsection Mule Support (mule)
|
|
1016
|
458
|
1017 MULti-lingual Enhancement. Support for world scripts such as
|
|
1018 Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
|
|
1019 To use these packages your XEmacs must be compiled with Mule
|
|
1020 support.
|
|
1021
|
444
|
1022 @table @file
|
458
|
1023 @item edict
|
|
1024 Lisp Interface to EDICT, Kanji Dictionary.
|
|
1025
|
444
|
1026 @item egg-its
|
|
1027 Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to
|
|
1028 XEmacs build.
|
|
1029
|
947
|
1030 @item latin-unity
|
|
1031 Unify character sets in a buffer. When characters belong to disjoint
|
|
1032 character sets, this attempts to translate the characters so
|
|
1033 that they belong to one character set. If the buffer coding system is
|
|
1034 not sufficient, this suggests different coding systems.
|
|
1035
|
444
|
1036 @item leim
|
|
1037 Quail. Used for everything other than English and Japanese.
|
|
1038
|
|
1039 @item locale
|
|
1040 Used for localized menubars (French and Japanese) and localized splash
|
|
1041 screens (Japanese).
|
|
1042
|
458
|
1043 @item lookup
|
|
1044 Dictionary support. (This isn't an English dictionary program)
|
|
1045
|
444
|
1046 @item mule-base
|
|
1047 Basic Mule support. Must be installed prior to building with Mule.
|
|
1048
|
947
|
1049 @item mule-ucs
|
|
1050 Extended coding systems (including Unicode) for XEmacs.
|
|
1051
|
444
|
1052 @item skk
|
|
1053 Another Japanese Language Input Method. Can be used without a
|
|
1054 separate process running as a dictionary server.
|
|
1055 @end table
|
|
1056
|