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