XEmacs 21.2.25 "Hephaestus".
[chise/xemacs-chise.git.1] / README.packages
1 The XEmacs Packages Quick Start Guide
2 -------------------------------------
3
4 This text is intended to help you get started installing a new XEmacs
5 and its packages from start.  For details see the 'Startup Paths' and
6 'Packages' sections of the XEmacs info manual.
7
8 Real Real Quickstart FAQ
9 ------------------------
10
11 Q. Do I need to have the packages to compile XEmacs?
12 A. If you want to compile with MULE, you need the mule-base package installed.
13    Otherwise, no package is required before compilation.
14
15 Q. I really liked the old way that packages were bundled and do not
16    want to mess with packages at all.
17 A. You can grab all the packages at once like you used to with old
18    XEmacs versions, skip to the 'Sumo Tarball' section below.
19
20 A note of caution
21 -----------------
22
23 The XEmacs package system is still in its infancy. Please expect a few 
24 minor hurdles on the way. Also neither the interface nor the structure is 
25 set in stone. The XEmacs maintainers reserve the right to sacrifice
26 backwards compatibility as quirks are worked out over the coming
27 releases. 
28
29 Some Package Theory
30 -------------------
31
32 In order to reduce the size and increase the maintainability of XEmacs,
33 the majority of the Elisp packages that came with previous releases
34 have been unbundled. They have been replaced by the package system.
35 Each elisp add-on (or groups of them when they are small) now comes
36 in its own tarball that contains a small search hierarchy.
37
38 You select just the ones you need. Install them by untarring them into 
39 the right place. On startup XEmacs will find them, set up the load
40 path correctly, install autoloads, etc, etc.
41
42 Package hierarchies
43 -------------------
44
45 On Startup XEmacs looks for packages in so called package hierarchies.
46 These can be specified by the 'package-path' parameter to the
47 'configure' script. However by default there are three system wide
48 hierarchies.
49
50 $prefix/lib/xemacs/site-packages
51      Local and 3rd party packages go here.
52
53 $prefix/lib/xemacs/mule-packages
54      Only searched by MULE-enabled XEmacsen.
55
56 $prefix/lib/xemacs/xemacs-packages
57      Normal packages go here.
58
59 Where to get the packages
60 -------------------------
61
62 Packages are available from ftp://ftp.xemacs.org/pub/xemacs/packages
63 and its mirror.
64
65 How to install the packages
66 ---------------------------
67
68 1. All at once, using the 'Sumo Tarball'.
69 2. By hand.
70 3. Automatically, using the package tools from XEmacs.
71
72 The Sumo Tarball
73 ----------------
74
75 Those with little time, cheap connections and plenty of disk space can
76 install all packages at once using the sumo tarballs.
77 Download the file
78
79 xemacs-sumo-<date>.tar.gz 
80
81 For an XEmacs compiled with Mule you also need
82
83 xemacs-mule-sumo-<date>.tar.gz
84
85 N.B. They are called 'Sumo Tarballs' for good reason. They are
86 currently about 15MB and 2.3MB (gzipped) respectively.
87
88 Install them by
89
90 cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xf -
91
92 As the Sumo tarballs are not regenerated as often as the individual
93 packages, it is recommended that you use the automatic package tools
94 afterwards to pick up any recent updates.
95
96 Installing by Hand
97 ------------------
98
99 Fetch the packages from the ftp site, CDROM whatever. The filenames
100 have the form name-<version>-pkg.tar.gz and are gzipped tar files. For
101 a fresh install it is sufficient to untar the file at the top of the
102 package hierarchy. For example if we are installing the 'xemacs-base'
103 package in version 1.27:
104
105 mkdir $prefix/lib/xemacs/xemacs-packages # if it does not exist yet
106 cd $prefix/lib/xemacs/xemacs-packages
107 gunzip -c ...../xemacs-base-1.27-pkg.tar.gz | tar xf -
108
109 For MULE related packages, it is best to untar in the mule-packages
110 hierarchy, i.e. for the mule-base package, version 1.25
111
112 mkdir $prefix/lib/xemacs/mule-packages # if it does not exist yet
113 cd $prefix/lib/xemacs/mule-packages
114 gunzip -c ...../mule-base-1.25-pkg.tar.gz | tar xf -
115
116 Installing automatically
117 ------------------------
118
119 XEmacs comes with some tools to make the periodic updating and
120 installing easier. It will notice if new packages or versions are
121 available and will fetch them from the ftp site.
122
123 Unfortunately this requires that a few packages are already in place. 
124 You will have to install them by hand as above or use a SUMO tarball. 
125 This requirement will hopefully go away in the future. The packages
126 you need are:
127
128    efs          - To fetch the files from the ftp site or mirrors.
129    xemacs-base  - Needed by efs.
130
131 and optionally:
132
133    mailcrypt    - If you have PGP installed and want to verify the
134                   signature of the index file.
135    mule-base    - Needed if you want to compile XEmacs with MULE.
136
137 After installing these by hand, you can start XEmacs. (It is a good
138 idea to use 'xemacs -vanilla' here as your startup files might need
139 things now moved to packages.)
140
141  - First you need to specify an FTP site to use.
142       Use Options->Manage Packages->Add Download Site
143        or M-x customize-variable RET package-get-remote RET
144
145    Alternatively, if you already have the packages on a local disk
146    then you can specify this directly using 'M-x
147    pui-add-install-directory'. Please make sure you also have a
148    corresponding copy of the package index there.
149
150  - Invoke Options->Manage Packages->List & Install
151       or M-x pui-list-packages RET
152    XEmacs will now first try to fetch a new version of the package
153    index from the FTP site. Depending on whether you are using
154    'mailcrypt/PGP', you will get some question about keys to fetch or
155    whether to use the index without verifying the signature. If the
156    new index was different from the one already on disk, XEmacs will
157    offer you to overwrite the old index.
158
159 -  XEmacs will show you a buffer named "*Packages*" with an overview
160    of available and installed packages, including a short description.
161    In this buffer you can select which packages you want using the
162    mouse or using RET.
163
164 -  When you are finished choosing packages, invoke
165    'Packages->Install/Remove Select' from the menu or type 'x' to
166    begin installing packages.
167     
168 After Installation
169 ------------------
170
171 New packages can only be used by XEmacs after a restart.
172
173 Note to MULE users
174 ------------------
175
176 Unlike all other packages the mule-base package is used at build/dump 
177 time. This means that you need this available before compiling XEmacs
178 with MULE. Also it is a good idea to keep packages that are
179 MULE-only separate by putting them in the mule-packages hierarchy.
180
181 Which Packages to install?
182 --------------------------
183
184 This is difficult to say. When in doubt install a package. If you
185 administrate a big site it might be a good idea to just install
186 everything. A good minimal set of packages for XEmacs-latin1 would be
187
188 xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
189 edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
190 text-modes, time
191
192 Unfortunately the package system currently provides neither
193 dependencies nor conflicts. This will be a future enhancement. The
194 above set includes most packages that are used by others.
195
196 See also '.../etc/PACKAGES' for further descriptions of the individual
197 packages (currently outdated).
198
199 Upgrading/Removing Packages
200 ---------------------------
201
202 As the exact files and their locations contained in a package may
203 change it is recommend to remove a package first before installing a
204 new version. In order to facilitate removal each package contains an
205 pgkinfo/MANIFEST.pkgname file which list all the files belong to the
206 package. M-x package-admin-delete-binary-package RET can be used to
207 remove a package using this file.
208
209 Note that the interactive package tools included with XEmacs already do
210 this for you.
211
212 User Package directories
213 ------------------------
214
215 In addition to the system wide packages, each user can have his own
216 packages installed in "~/.xemacs/xemacs-packages". If you want to
217 install packages there using the interactive tools, you need to set
218 'pui-package-install-dest-dir' to "~/.xemacs/xemacs-packages"
219
220 Site lisp/Site start
221 --------------------
222
223 The site-packages hierarchy replaces the old 'site-lisp' directory.
224 XEmacs no longer looks into a 'site-lisp' directly by default.
225 A good place to put 'site-start.el' would be in
226 $prefix/lib/xemacs/site-packages/lisp/
227
228 Finding the right packages
229 --------------------------
230
231 If you want to find out which package contains the functionality you
232 are looking for, use M-x package-get-package-provider, and give it a
233 symbol that is likely to be in that package.  eg, if some code you
234 want to use has a (require 'thingatpt) in it, try doing
235 M-x package-get-package-provider RET thingatpt , which will return
236 something like: (fsf-compat "1.06").