371
|
1 @node Packages, Abbrevs, Running, Top
|
296
|
2 @comment node-name, next, previous, up
|
|
3
|
373
|
4 @section Packages
|
296
|
5 @cindex packages
|
|
6
|
|
7 The XEmacs 21 distribution comes only with a very basic set of
|
|
8 built-in modes and packages. Most of the packages that were part of
|
422
|
9 the distribution of earlier versions of XEmacs are now available
|
|
10 separately. The installer as well as the user can choose which
|
296
|
11 packages to install; the actual installation process is easy.
|
|
12 This gives an installer the ability to tailor an XEmacs installation for
|
|
13 local needs with safe removal of unnecessary code.
|
|
14
|
373
|
15 @menu
|
|
16 * Package Terminology:: Understanding different kinds of packages.
|
|
17 * Using Packages:: How to install and use packages.
|
|
18 * Building Packages:: Building packages from sources.
|
|
19 @end menu
|
|
20
|
|
21 @node Package Terminology, Using Packages, , Packages
|
|
22 @comment node-name, next, previous, up
|
|
23
|
296
|
24 @subsection Package Flavors
|
|
25
|
|
26 There are two main flavors of packages.
|
|
27
|
373
|
28 @itemize @bullet
|
296
|
29 @item Regular Packages
|
373
|
30 @cindex regular packages
|
296
|
31 A regular package is one in which multiple files are involved and one
|
|
32 may not in general safely remove any of them.
|
|
33
|
|
34 @item Single-File Packages
|
373
|
35 @cindex single-file packages
|
296
|
36 A single-file package is an aggregate collection of thematically
|
|
37 related but otherwise independent lisp files. These files are bundled
|
384
|
38 together for download convenience and individual files may be deleted at
|
296
|
39 will without any loss of functionality.
|
|
40 @end itemize
|
|
41
|
|
42 @subsection Package Distributions
|
|
43
|
384
|
44 XEmacs Lisp packages are distributed in two ways, depending on the
|
296
|
45 intended use. Binary Packages are for installers and end-users and may
|
|
46 be installed directly into an XEmacs package directory. Source Packages
|
|
47 are for developers and include all files necessary for rebuilding
|
|
48 bytecompiled lisp and creating tarballs for distribution.
|
|
49
|
|
50 @subsection Binary Packages
|
373
|
51 @cindex binary packages
|
296
|
52 Binary packages may be installed directly into an XEmacs package
|
|
53 hierarchy.
|
|
54
|
|
55 @subsection Source Packages
|
373
|
56 @cindex source packages
|
296
|
57 Source packages contain all of the Package author's (where appropriate
|
|
58 in regular packages) source code plus all of the files necessary to
|
384
|
59 build distribution tarballs (Unix Tar format files, gzipped for space
|
296
|
60 savings).
|
|
61
|
373
|
62 @node Using Packages, Building Packages, Package Terminology, Packages
|
|
63 @comment node-name, next, previous, up
|
|
64
|
|
65 @subsection Getting Started
|
|
66
|
|
67 When you first download XEmacs 21, you will usually first grab the
|
|
68 @dfn{core distribution},
|
|
69 @cindex core distribution
|
|
70 a file called
|
|
71 @file{xemacs-21.0.tar.gz}. (Replace the @t{21.0} by the current version
|
|
72 number.) The core distribution contains the sources of XEmacs and a
|
|
73 minimal set of Emacs Lisp files, which are in the subdirectory named
|
|
74 @file{lisp}. This subdirectory used to contain all Emacs Lisp files
|
|
75 distributed with XEmacs. Now, to conserve disk space, most
|
|
76 non-essential packages were made optional.
|
|
77
|
|
78 @subsection Choosing the Packages You Need
|
|
79
|
|
80 The available packages can currently be found in the same ftp directory
|
384
|
81 where you grabbed the core distribution from, and are located in the
|
373
|
82 subdirectory @file{packages/binary-packages}. Package file names follow
|
|
83 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
|
|
84
|
|
85 If you have EFS @ref{(EFS)}, packages can be installed over the network.
|
|
86 Alternatively, if you have copies of the packages locally, you can
|
|
87 install packages from a local disk or CDROM.
|
|
88
|
|
89 The file @file{etc/PACKAGES} in the core distribution contains a list of
|
|
90 the packages available at the time of the XEmacs release. Packages are
|
|
91 also listed on the @code{Options} menu under:
|
|
92
|
|
93 @example
|
412
|
94 Options->Customize->Emacs->Packages
|
373
|
95 @end example
|
|
96
|
|
97 However, don't select any of these menu picks unless you actually want
|
|
98 to install the given package (and have properly configured your system
|
|
99 to do so).
|
|
100
|
|
101 You can also get a list of available packages, and whether or not they
|
|
102 are installed, using the visual package browser and installer. You can
|
|
103 access it via the menus:
|
|
104
|
|
105 @example
|
412
|
106 Options->Manage Packages->List & Install
|
373
|
107 @end example
|
|
108
|
|
109 Or, you can get to it via the keyboard:
|
|
110
|
|
111 @example
|
|
112 M-x pui-list-packages
|
|
113 @end example
|
|
114
|
|
115 Hint to system administrators of multi-user systems: it might be a good
|
|
116 idea to install all packages and not interfere with the wishes of your
|
|
117 users.
|
|
118
|
424
|
119 If you can't find which package provides the feature you require, try
|
|
120 using the @code{package-get-package-provider} function. Eg., if you know
|
|
121 that you need @code{thingatpt}, type:
|
|
122
|
|
123 @example
|
|
124 M-x package-get-package-provider RET thingatpt
|
|
125 @end example
|
|
126
|
|
127 which will return something like (fsf-compat "1.06"). You can the use
|
|
128 one of the methods above for installing the package you want.
|
|
129
|
373
|
130 @subsection XEmacs and Installing Packages
|
|
131
|
|
132 Normally, packages are installed over the network, using EFS
|
|
133 @ref{(EFS)}. However, you may not have network access, or you may
|
|
134 already have some or all of the packages on a local disk, such as a
|
|
135 CDROM. If you want to install from a local disk, you must first tell
|
|
136 XEmacs where to find the package binaries. This is done by adding a line
|
412
|
137 like the following to your @file{.emacs} file:
|
373
|
138
|
|
139 @example
|
|
140 (setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
|
|
141 package-get-remote))
|
|
142 @end example
|
|
143
|
|
144 Here, you'd change @file{/my/path/to/package/binaries} to be the path
|
|
145 to your local package binaries. Next, restart XEmacs, and you're ready
|
|
146 to go (advanced users can just re-evaluate the sexp).
|
|
147
|
|
148 If you are installing from a temporary, one-time directory, you can also
|
|
149 add these directory names to @code{package-get-remote} using:
|
|
150
|
|
151 @example
|
412
|
152 M-x pui-add-install-directory
|
373
|
153 @end example
|
|
154
|
|
155 Note, however, that any directories added using this function are not
|
|
156 saved; this information will be lost when you quit XEmacs.
|
|
157
|
|
158 If you're going to install over the network, you only have to insure
|
|
159 that EFS @ref{(EFS)} works, and that it can get outside a firewall, if
|
|
160 you happen to be behind one. You shouldn't have to do anything else;
|
375
|
161 XEmacs already knows where to go. However you can add your own mirrors
|
|
162 to this list. See @code{package-get-remote}.
|
373
|
163
|
|
164 The easiest way to install a package is to use the visual package
|
|
165 browser and installer, using the menu pick:
|
|
166
|
|
167 @example
|
412
|
168 Options->Manage Packages->List & Install
|
375
|
169 @end example
|
|
170 or
|
|
171 @example
|
412
|
172 Options->Manage Packages->Using Custom->Select-> ...
|
373
|
173 @end example
|
|
174
|
|
175 You can also access it using the keyboard:
|
|
176
|
|
177 @example
|
|
178 M-x pui-list-packages
|
|
179 @end example
|
|
180
|
|
181 The visual package browser will then display a list of all packages.
|
|
182 Help information will be displayed at the very bottom of the buffer; you
|
|
183 may have to scroll down to see it. You can also press @kbd{?} to get
|
|
184 the same help. From this buffer, you can tell the package status by the
|
|
185 character in the first column:
|
|
186
|
|
187 @table @kbd
|
|
188 @item -
|
|
189 The package has not been installed.
|
|
190 @item *
|
|
191 The package has been installed, but a newer version is available. The
|
|
192 current version is out-of-date.
|
|
193 @item +
|
|
194 The package has been marked for installation/update.
|
|
195 @end table
|
|
196
|
|
197 If there is no character in the first column, the package has been
|
|
198 installed and is up-to-date.
|
|
199
|
|
200 From here, you can select or unselect packages for installation using
|
375
|
201 the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
|
|
202 the (Popup) Menu.
|
|
203 Once you've finished selecting the packages, you can
|
|
204 press the @kbd{x} key (or use the menu) to actually install the
|
|
205 packages. Note that you will have to restart XEmacs for XEmacs to
|
|
206 recognize any new packages.
|
373
|
207
|
|
208 Key summary:
|
|
209
|
|
210 @table @kbd
|
|
211 @item ?
|
|
212 Display simple help.
|
|
213 @item @key{RET}
|
|
214 @itemx @key{Mouse-2}
|
|
215 Toggle between selecting and unselecting a package for installation.
|
|
216 @item x
|
|
217 Install selected packages.
|
|
218 @item @key{SPC}
|
|
219 View, in the minibuffer, additional information about the package, such
|
|
220 as the package date (not the build date) and the package author. Moving
|
|
221 the mouse over a package name will also do the same thing.
|
|
222 @item v
|
|
223 Toggle between verbose and non-verbose package display.
|
|
224 @item g
|
|
225 Refresh the package display.
|
|
226 @item q
|
|
227 Kill the package buffer.
|
|
228 @end table
|
|
229
|
|
230 Moving the mouse over a package will also cause additional information
|
|
231 about the package to be displayed in the minibuffer.
|
|
232
|
|
233 @subsection Other package installation interfaces
|
|
234
|
|
235 For an alternative package interface, you can select packages from the
|
|
236 customize menus, under:
|
|
237
|
|
238 @example
|
412
|
239 Options->Customize->Emacs->Packages-> ...
|
373
|
240 @end example
|
375
|
241 or
|
|
242 @example
|
412
|
243 Options->Manage Packages->Using Custom->Select-> ...
|
375
|
244 @end example
|
373
|
245
|
|
246 Set their state to on, and then do:
|
|
247
|
|
248 @example
|
412
|
249 Options->Manage Packages->Using Custom->Update Packages
|
373
|
250 @end example
|
|
251
|
|
252 This will automatically retrieve the packages you have selected from the
|
|
253 XEmacs ftp site or your local disk, and install them into
|
|
254 XEmacs. Additionally it will update any packages you already have
|
|
255 installed to the newest version. Note that if a package is newly
|
|
256 installed you will have to restart XEmacs for the change to take effect.
|
|
257
|
|
258 You can also install packages using a semi-manual interface:
|
|
259
|
|
260 @example
|
|
261 M-x package-get-all <return>
|
|
262 @end example
|
|
263
|
|
264 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
|
|
265 will search for the latest version (as listed in the lisp file
|
|
266 @file{lisp/package-get-base.el}), and install it and any packages that
|
|
267 it depends upon.
|
|
268
|
|
269 @subsection Manual Binary Package Installation
|
|
270
|
|
271 Pre-compiled, binary packages can be installed in either a system
|
420
|
272 package directory (this is determined when XEmacs is compiled), or in
|
|
273 one of the following
|
|
274 subdirectories of your @file{$HOME} directory:
|
373
|
275
|
|
276 @example
|
420
|
277 ~/.xemacs/mule-packages
|
|
278 ~/.xemacs/xemacs-packages
|
373
|
279 @end example
|
|
280
|
420
|
281 Packages in the former directory will only be found by a Mule-enabled
|
|
282 XEmacs.
|
|
283
|
373
|
284 XEmacs does not have to be running to install binary packages, although
|
|
285 XEmacs will not know about any newly-installed packages until you
|
|
286 restart XEmacs. Note, however, that installing a newer version of a
|
|
287 package while XEmacs is running could cause strange errors in XEmacs;
|
|
288 it's best to exit XEmacs before upgrading an existing package.
|
|
289
|
|
290 To install binary packages manually:
|
|
291
|
|
292 @enumerate
|
|
293 @item
|
|
294 Download the package(s) that you want to install. Each binary package
|
|
295 will typically be a gzip'd tarball.
|
|
296
|
422
|
297 @item
|
|
298 Decide where to install the packages: in the system package
|
420
|
299 directory, or in @file{~/.xemacs/mule-packages} or
|
|
300 @file{~/.xemacs/xemacs-packages}, respectively. If you want to install
|
|
301 the packages in the system package directory, make sure you can write
|
|
302 into that directory. If you want to install in your @file{$HOME}
|
|
303 directory, create the directory, @file{~/.xemacs/mule-packages} or
|
|
304 @file{~/.xemacs/xemacs-packages}, respectively.
|
373
|
305
|
|
306 @item
|
|
307 Next, @code{cd} to the directory under which you want to install the
|
|
308 package(s).
|
|
309
|
|
310 @item
|
|
311 From this directory, uncompress and extract each of the gzip'd tarballs
|
|
312 that you downloaded in step 1. Unix and Cygnus cygwin users will
|
|
313 typically do this using the commands:
|
|
314
|
|
315 @example
|
412
|
316 gunzip < package.tar.gz | tar xvf -
|
373
|
317 @end example
|
|
318
|
|
319 Above, replace @file{package.tar.gz} with the filename of the
|
|
320 package that you downloaded in step 1.
|
|
321
|
|
322 Of course, if you use GNU @code{tar}, you could also use:
|
|
323
|
|
324 @example
|
412
|
325 tar xvzf package.tar.gz
|
373
|
326 @end example
|
|
327
|
|
328 @comment What about native MS Windows users???
|
|
329
|
|
330 @item
|
|
331 That's it. Quit and restart XEmacs to get it to recognize any new or
|
|
332 changed packages.
|
|
333
|
|
334 @end enumerate
|
|
335
|
|
336 @node Building Packages, , Using Packages, Packages
|
|
337 @comment node-name, next, previous, up
|
|
338
|
|
339 Source packages are available from the @file{packages/source-packages}
|
|
340 subdirectory of your favorite XEmacs distribution site. Alternatively,
|
|
341 they are available via CVS from @file{cvs.xemacs.org}. Look at
|
|
342 @file{http://cvs.xemacs.org} for instructions.
|
|
343
|
|
344 @subsection Prerequisites for Building Source Packages
|
296
|
345
|
|
346 You must have GNU @code{cp}, GNU @code{install} (or a BSD compatible
|
|
347 @code{install} program) GNU @code{make} (3.75 or later preferred),
|
|
348 @code{makeinfo} (1.68 from @code{texinfo-3.11} or later required), GNU
|
|
349 @code{tar} and XEmacs 21.0. The source packages will untar into a
|
|
350 correct directory structure. At the top level you must have
|
|
351 @file{XEmacs.rules} and @file{package-compile.el}. These files are
|
|
352 available from the XEmacs FTP site from the same place you obtained your
|
|
353 source package distributions.
|
|
354
|
373
|
355 @subsection What You Can Do With Source Packages
|
296
|
356
|
|
357 NB: A global build operation doesn't exist yet as of 13 January 1998.
|
|
358
|
|
359 Source packages are most useful for creating XEmacs package tarballs
|
|
360 for installation into your own XEmacs installations or for
|
|
361 distributing to others.
|
|
362
|
373
|
363 Supported operations from @file{make} are:
|
296
|
364
|
|
365 @table @code
|
|
366 @item clean
|
|
367 Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
|
|
368
|
|
369 @item distclean
|
|
370 Remove XEmacs backups as well as the files deleted by @code{make clean}.
|
|
371
|
|
372 @item all
|
|
373 Bytecompile all files, build and bytecompile byproduct files like
|
|
374 @file{auto-autoloads.el} and @file{custom-load.el}. Create info version
|
|
375 of TeXinfo documentation if present.
|
|
376
|
|
377 @item srckit
|
371
|
378 Usually aliased to @code{make srckit-std}. This does a @code{make
|
296
|
379 distclean} and creates a package source tarball in the staging
|
|
380 directory. This is generally only of use for package maintainers.
|
|
381
|
|
382 @item binkit
|
|
383 May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
|
|
384 @code{binkit-sourcedata}, or
|
|
385 @code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
|
|
386 nothing to install in a data directory or info directory.
|
|
387 @code{sourceinfo} indicates that source and info files are to be
|
|
388 installed. @code{sourcedata} indicates that source and etc (data) files
|
|
389 are to be installed. @code{sourcedatainfo} indicates source, etc
|
|
390 (data), and info files are to be installed. A few packages have needs
|
|
391 beyond the basic templates so this is not yet complete.
|
|
392
|
|
393 @item dist
|
|
394 Runs the rules @code{srckit} followed by @code{binkit}. This is
|
|
395 primarily of use by XEmacs maintainers producing files for distribution.
|
|
396
|
|
397 @end table
|