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