231
|
1 -*- mode:outline -*-
|
134
|
2
|
|
3 * Introduction
|
|
4 ==============
|
|
5
|
|
6 You are running an experimental version of XEmacs. Please do not
|
|
7 report problems with Beta XEmacs to comp.emacs.xemacs. Report them to
|
|
8 xemacs-beta@xemacs.org.
|
|
9
|
|
10 ** XEmacs Beta Mailing List
|
|
11 ===========================
|
|
12
|
|
13 *** Subscribing
|
|
14 ---------------
|
|
15
|
|
16 If you are not subscribed to the XEmacs beta list you should be. Send
|
280
|
17 an email message to xemacs-beta-request@xemacs.org with `subscribe'
|
|
18 (without the quotes) as the BODY of the message.
|
134
|
19
|
|
20 *** Unsubscribing
|
|
21 -----------------
|
|
22
|
280
|
23 To unsubscribe from the list send an email message to
|
|
24 xemacs-beta-request@xemacs.org with `unsubscribe' (without the quotes)
|
|
25 as the BODY of the message.
|
134
|
26
|
|
27 *** Administrivia
|
|
28 -----------------
|
|
29
|
280
|
30 The XEmacs beta list is managed by the Majordomo mailing list package,
|
|
31 and the usual Majordomo commands work. Do not send mailing list
|
134
|
32 requests to the main address (xemacs-beta@xemacs.org), always send
|
|
33 them to xemacs-beta-request@xemacs.org. If you have problems with the
|
203
|
34 list itself, they should be brought to the attention of the XEmacs
|
272
|
35 Mailing List manager Jason Mastaler <list-manager@xemacs.org>.
|
134
|
36
|
|
37
|
|
38 ** Beta Release Schedule
|
|
39 ========================
|
|
40
|
243
|
41 The URL ftp://ftp.xemacs.org/pub/xemacs/beta/README always contains
|
|
42 the best estimate of when the next beta XEmacs will be released. For
|
|
43 weekend betas the release time is generally in the vicinity of 2PM to
|
|
44 5PM US Pacific Time (Universal Time minus 8 hours). For weekday
|
|
45 betas, the release time is generally in the vicinity of 8PM to
|
|
46 Midnight US Pacific Time on the listed day.
|
134
|
47
|
|
48 Betas are nominally a week apart, scheduled on every Saturday.
|
|
49 Midweek releases are made when a serious enough problem warrants it.
|
|
50
|
|
51
|
|
52 ** Reporting Problems
|
|
53 =====================
|
|
54
|
|
55 The best way to get problems fixed in XEmacs is to submit good problem
|
203
|
56 reports. Since this is beta software, problems are certain to exist.
|
134
|
57 Please read through all of part II of the XEmacs FAQ for an overview
|
|
58 of problem reporting. Other items which are most important are:
|
|
59
|
|
60 1. Do not submit C stack backtraces without line numbers. Since it
|
|
61 is possible to compile optimized with debug information with GCC
|
|
62 it is never a good idea to compile XEmacs without the -g flag.
|
|
63 XEmacs runs on a variety of platforms, and often it is not
|
|
64 possible to recreate problems which afflict a specific platform.
|
|
65 The line numbers in the C stack backtrace help isolate where the
|
|
66 problem is actually occurring.
|
|
67
|
|
68 2. Attempt to recreate the problem starting with an invocation of
|
203
|
69 XEmacs with `xemacs -q -no-site-file'. Quite often, problems are
|
134
|
70 due to package interdependencies, and the like. An actual bug in
|
|
71 XEmacs should be reproducible in a default configuration without
|
|
72 loading any special packages (or the one or two specific packages
|
|
73 that cause the bug to appear).
|
|
74
|
|
75 3. A picture can be worth a thousand words. When reporting an
|
|
76 unusual display, it is generally best to capture the problem in a
|
|
77 screen dump and include that with the problem report. The easiest
|
|
78 way to get a screen dump is to use the xv program and its grab
|
|
79 function. Save the image as a GIF to keep bandwidth requirements
|
|
80 down without loss of information. MIME is the preferred method
|
|
81 for making the image attachments.
|
|
82
|
259
|
83 ** Getting the Source
|
|
84 =====================
|
|
85
|
|
86 In addition to the normal tar distribution, XEmacs source is now
|
|
87 available via CVS. Please see the URL: <URL:http://cvs.xemacs.org/~xemacs/>.
|
|
88
|
134
|
89 * Compiling Beta XEmacs
|
|
90 =======================
|
|
91
|
|
92 ** Building an XEmacs from patches
|
|
93 ==================================
|
|
94
|
|
95 All beta releases of XEmacs are included with patches from the
|
|
96 previous version in an attempt to keep bandwidth requirements down.
|
|
97 Patches should be applied with the GNU patch program in something like
|
227
|
98 the following. Let's say you're upgrading XEmacs 20.15-beta10 to
|
|
99 XEmacs 20.15-beta11 and you have a full unmodified XEmacs 20.15-beta10
|
134
|
100 source tree to work with. Cd to the top level directory and issue the
|
|
101 shell command:
|
|
102
|
227
|
103 $ gunzip -c /tmp/xemacs-20.15-b10-20.15-b11.patch.gz | patch -p1
|
134
|
104
|
203
|
105 After patching, check to see that no patches were missed by doing
|
134
|
106 $ find . -name \*.rej -print
|
|
107
|
|
108 Any rejections should be treated as serious problems to be resolved
|
203
|
109 before building XEmacs.
|
134
|
110
|
179
|
111 After seeing that there were no rejections, issue the commands
|
134
|
112
|
179
|
113 $ ./config.status --recheck
|
|
114 $ make beta
|
134
|
115
|
203
|
116 and go play minesweep for a while on an older XEmacs while the binary
|
134
|
117 is rebuilt.
|
|
118
|
203
|
119 ** Building XEmacs from a full distribution
|
134
|
120 ==============================================
|
|
121
|
|
122 Locate a convenient place where you have at least 100MB of free space
|
|
123 and issue the command
|
|
124
|
227
|
125 $ gunzip -c /tmp/xemacs-20.15-b11.tar.gz | tar xvf -
|
134
|
126
|
227
|
127 (or simply `tar zxvf /tmp/xemacs-20.15-b11.tar.gz' if you use GNU tar).
|
134
|
128
|
|
129 cd to the top level directory and issue an appropriate configure
|
203
|
130 command. One maintainer uses the following at the time of this
|
134
|
131 writing:
|
|
132
|
203
|
133 ./configure \
|
272
|
134 --cflags="-mpentium -march=pentium -O6 -g -fno-peep-spills" \
|
203
|
135 --error-checking=all --debug=yes \
|
|
136 --with-scrollbars=athena3d --with-dialogs=athena3d \
|
272
|
137 --with-mule --with-xfs --with-xim=xlib
|
134
|
138
|
203
|
139 Part of the configure output is a summary that looks something like:
|
|
140
|
227
|
141 uname -a: Linux altair.xemacs.org 2.0.32 #2 Sun Nov 16 18:52:14 PST 1997 i586
|
|
142
|
272
|
143 ./configure '--cflags=-mpentium -march=pentium -O6 -g -fno-peep-spills' '--error-checking=all' '--debug=yes' '--with-scrollbars=athena3d' '--with-dialogs=athena3d' '--with-mule' '--with-xfs' '--with-xim=xlib'
|
227
|
144
|
134
|
145
|
272
|
146 XEmacs 21.0-b34 "Oberhasli-pre2" configured for `i586-pc-linux'.
|
227
|
147
|
272
|
148 Where should the build process find the source code? /home/xemacs/xemacs-20.0
|
|
149 What installation prefix should install use? /usr/local
|
134
|
150 What operating system and machine description files should XEmacs use?
|
|
151 `s/linux.h' and `m/intel386.h'
|
272
|
152 What compiler should XEmacs be built with? gcc -mpentium -march=pentium -O6 -g -fno-peep-spills
|
134
|
153 Should XEmacs use the GNU version of malloc? yes
|
272
|
154 (Using Doug Lea's new malloc from the GNU C Library.)
|
134
|
155 Should XEmacs use the relocating allocator for buffers? yes
|
|
156 What window system should XEmacs use? x11
|
272
|
157 Where do we find X Windows header files? /usr/X11/include
|
|
158 Where do we find X Windows libraries? /usr/X11/lib
|
134
|
159 Compiling in support for XAUTH.
|
203
|
160 Compiling in support for XPM images.
|
|
161 Compiling in support for X-Face message headers.
|
272
|
162 Compiling in support for GIF image conversion.
|
|
163 Compiling in support for JPEG image conversion.
|
|
164 Compiling in support for PNG image conversion.
|
|
165 Compiling in support for TIFF image conversion.
|
227
|
166 Compiling in native sound support.
|
134
|
167 Compiling in support for Berkeley DB.
|
272
|
168 Compiling in support for GNU DBM.
|
227
|
169 Compiling in support for ncurses.
|
272
|
170 Compiling in support for GPM (General Purpose Mouse).
|
134
|
171 Compiling in Mule (multi-lingual) support.
|
227
|
172 Compiling in XIM (X11R5+ I18N input method) support.
|
|
173 Using raw Xlib to provide XIM support.
|
|
174 Using XFontSet to provide bilingual menubar.
|
|
175 Compiling in support for Canna on Mule.
|
203
|
176 Compiling in support for the WNN input method on Mule.
|
|
177 Using WNN version 6.
|
134
|
178 Compiling in support for OffiX.
|
272
|
179 Compiling in support for proper session-management.
|
227
|
180 Using Lucid menubars.
|
|
181 Using Athena-3d scrollbars.
|
|
182 Using Athena-3d dialog boxes.
|
272
|
183 Compiling in DLL support.
|
227
|
184 movemail will use "dot-locking" for locking mail spool files.
|
272
|
185 Using Lisp_Objects with minimal tagbits.
|
|
186 Compiling in extra code for debugging.
|
|
187 Compiling in code for checking XEmacs memory usage.
|
|
188 WARNING: ---------------------------------------------------------
|
|
189 WARNING: Compiling in support for runtime error checking.
|
|
190 WARNING: XEmacs will run noticeably more slowly as a result.
|
|
191 WARNING: Error checking is on by default for XEmacs beta releases.
|
|
192 WARNING: ---------------------------------------------------------
|
134
|
193
|
272
|
194
|
|
195
|
|
196 Then type `make' and you should have a working XEmacs.
|
134
|
197
|
|
198 After you have verified that you have a functional editor, fire up
|
|
199 your favorite mail program and send a build report to
|
306
|
200 xemacs-build-reports@xemacs.org. The build report should include
|
134
|
201
|
|
202 1. Your hardware configuration (OS version, etc.)
|
|
203
|
|
204 2. Version numbers of software in use (X11 version, system library
|
|
205 versions if appropriate, graphics library versions if appropriate).
|
|
206 If you're on a system like Linux, include all the version numbers
|
|
207 you can because chances are it makes a difference.
|
|
208
|
|
209 3. The options given to configure
|
|
210
|
|
211 4. The configuration report illustrated above
|
|
212
|
197
|
213 For convenience all of the above items are placed in a file called
|
272
|
214 `Installation' in the top level build directory. They are also
|
|
215 available by performing M-x describe-installation inside XEmacs.
|
197
|
216
|
134
|
217 5. Any other unusual items you feel should be brought to the attention
|
|
218 of the developers.
|
136
|
219
|
|
220 ** Creating patches for submission
|
|
221 ==================================
|
|
222
|
294
|
223 Patches to XEmacs should be mailed to <xemacs-patches@xemacs.org>.
|
|
224 Each patch will be reviewed by the patches review board, and will be
|
|
225 acked and added to the distribution, or rejected with an explanation.
|
|
226
|
298
|
227 Emailed patches should preferably be sent in MIME format and quoted
|
|
228 printable encoding (if necessary).
|
|
229
|
294
|
230 When making patches, please use the `-u' option, or if your diff
|
223
|
231 doesn't support it, `-c'. Using ordinary (context-free) diffs are
|
203
|
232 notoriously prone to error, since line numbers tend to change when
|
|
233 others make changes to the same source file.
|
136
|
234
|
294
|
235 An example of the `diff' usage:
|
|
236
|
|
237 $ diff -u OLDFILE NEWFILE
|
136
|
238
|
|
239 -or-
|
|
240
|
294
|
241 $ diff -c OLDFILE NEWFILE
|
136
|
242
|
203
|
243 Also, it is helpful if you create the patch in the top level of the
|
|
244 XEmacs source directory:
|
136
|
245
|
203
|
246 $ cp -p lwlib/xlwmenu.c lwlib/xlwmenu.c.orig
|
|
247 hack, hack, hack....
|
|
248 $ diff -u lwlib/xlwmenu.c.orig lwlib/xlwmenu.c
|
136
|
249
|
294
|
250 Each patch should be accompanied by an update to the appropriate
|
|
251 ChangeLog file. Please don't mail patches to ChangeLog because they
|
|
252 have an extremely high rate of failure; just mail us the new part of
|
|
253 the ChangeLog you added.
|
136
|
254
|
|
255 Also note that if you cut & paste from an xterm to an XEmacs mail buffer
|
203
|
256 you will probably lose due to tab expansion. The best thing to do is
|
|
257 to use an XEmacs shell buffer to run the diff commands, or ...
|
136
|
258 M-x cd to the appropriate directory, and issue the command `C-u M-!' from
|
|
259 within XEmacs.
|
195
|
260
|
298
|
261 Guidelines for writing ChangeLog entries is governed by the GNU coding
|
|
262 standards. Please see
|
|
263 http://www.gnu.org/prep/standards_toc.html [Change Logs section]
|
|
264 for details.
|
|
265
|
|
266 Patches should be as single-minded as possible. Mammoth patches can
|
|
267 be very difficult to place into the right slot. They are much easier
|
|
268 to deal with when broken down into functional or conceptual chunks.
|
|
269 The patches submitted by Kyle Jones and Hrvoje Niksic are stellar
|
|
270 examples of how to Do The Right Thing.
|
|
271
|
203
|
272 ** Packages directory on the FTP Site
|
|
273 =====================================
|
|
274
|
|
275 The packages directory
|
272
|
276 ftp://ftp.xemacs.org/pub/xemacs/beta/xemacs-21.0/packages/
|
203
|
277
|
|
278 is divided into subdirectory by the major type of package.
|
|
279
|
|
280 drwxr-xr-x 2 beta-f beta-f 1024 Oct 10 00:43 binary-packages
|
|
281 drwxr-xr-x 2 beta-f beta-f 512 Oct 10 00:44 package-sources
|
|
282 drwxr-xr-x 2 beta-f beta-f 512 Oct 10 00:44 utils
|
|
283
|
|
284 ** Support Utilities (utils)
|
|
285 ============================
|
|
286
|
|
287 The utils directory contains tools to deal with current Lisp sources that
|
|
288 have not had yet gotten XEmacs package integration. The script `xpackage.sh'
|
|
289 is used with Quassia Gnus. Edit the appropriate variables at the top of
|
|
290 the script to reflect the local configuration and run it in the top level
|
|
291 directory of a Quassia Gnus source tree to install an update to Quassia Gnus.
|
|
292
|
|
293 ** Binary package installation (binary-packages)
|
|
294 ================================================
|
|
295
|
272
|
296 Prerequisite: XEmacs 21.0-b1.
|
203
|
297
|
|
298 Binary packages are complete entities that can be untarred at the top
|
|
299 level of an XEmacs package hierarchy and work at runtime. To install files
|
|
300 in this directory, run the command `M-x package-admin-add-binary-package'
|
|
301 and fill in appropriate values to the prompts.
|
|
302
|
229
|
303 ** Manual procedures for package management
|
|
304 ===========================================
|
|
305
|
272
|
306 Prerequisite: XEmacs 21.0
|
229
|
307
|
|
308 When adding and deleting files from a lisp directory the
|
|
309 auto-autoloads.el (global symbols) and custom-load.el (Customization
|
|
310 groups) must be kept in synch. Assuming one is manipulating a
|
|
311 directory called `lisp-utils', the command to rebuild the
|
|
312 auto-autoloads.el file is:
|
|
313
|
272
|
314 xemacs-21.0 -vanilla -batch -l autoload -f batch-update-directory lisp-utils
|
229
|
315
|
|
316 The command to rebuild the custom-load.el file is:
|
|
317
|
272
|
318 xemacs-21.0 -vanilla -batch -l cus-dep \
|
229
|
319 -f Custom-make-dependencies lisp-utils
|
|
320
|
|
321 To bytecompile both of these files the command is:
|
|
322
|
272
|
323 xemacs-21.0 -vanilla -batch -f batch-byte-compile \
|
229
|
324 lisp-utils/auto-autoloads.el lisp-utils/custom-laod.el
|
253
|
325
|
|
326 ** Building XEmacs and XEmacs packages from scratch
|
|
327 ===================================================
|
|
328
|
|
329 To build everything completely from scratch (not a high priority as a
|
|
330 design goal), the following procedure should work. (I don't recommend
|
|
331 building this way).
|
|
332
|
|
333 *** Phase 1 -- Get a minimal XEmacs binary with mule to build the package
|
|
334 lisp with.
|
|
335
|
|
336 **** Grab a mule-base tarball and install it into a newly created package
|
296
|
337 directory.
|
253
|
338
|
|
339 **** Configure XEmacs with mule and a package-path including the
|
|
340 directory created above.
|
|
341
|
|
342 **** Do a `make dist' to build an XEmacs binary.
|
|
343
|
|
344 *** Phase 2 -- Build and install the package lisp.
|
|
345
|
|
346 **** Modify XEmacs.rules for local paths and the XEmacs binary created in
|
|
347 Phase 1.
|
|
348
|
|
349 **** Do a make from the top level package lisp source directory.[1]
|
|
350
|
|
351 **** Do `make bindist's on all the packages you wish to install and
|
296
|
352 remove the byproduct .tar.gz's.
|
253
|
353
|
296
|
354 *** Phase 3 -- If necessary, redump XEmacs
|
|
355 with the packages that require dump-time support and install it.
|
253
|
356
|
|
357 **** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and
|
|
358 rebuild XEmacs.
|
|
359
|
|
360 - or -
|
|
361
|
|
362 **** rm lib-src/DOC src/xemacs; make
|
|
363
|
|
364 **** Install or run in-place.
|
|
365
|
|
366 Note that this is in essence what `make all-elc' has always done.
|