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