Mercurial > hg > xemacs-beta
annotate man/beta.texi @ 5288:061f4feaeefd
More permission consistency. (Opps, missed one.)
author | Stephen J. Turnbull <stephen@xemacs.org> |
---|---|
date | Mon, 14 Jun 2010 15:14:20 +0900 |
parents | 1cecc3e9f0a0 |
children | 308d34e9f07d |
rev | line source |
---|---|
2537 | 1 \input texinfo @c -*-texinfo-*- |
2 | |
2547 | 3 @c This file is in Texinfo format. |
4 @c If for some reason you do not have the formatted version available, | |
5 @c this file is more or less readable as plain text. | |
6 @c Skip to the line beginning "@node Introduction". | |
7 | |
2537 | 8 @c %**start of header |
9 @setfilename ../info/beta.info | |
10 @settitle Info on beta versions of XEmacs | |
11 @direntry | |
12 * Beta: (beta). Info on beta versions of XEmacs. | |
13 @end direntry | |
14 @c footnotestyle separate | |
15 @c paragraphindent 2 | |
16 @c %**end of header | |
17 | |
18 @ifinfo | |
19 This file describes info relevant to beta versions of XEmacs. | |
20 | |
21 Copyright @copyright{} 2005 Ben Wing. | |
2547 | 22 Copyright @copyright{} 2005 Free Software Foundation, Inc. |
2537 | 23 |
24 This file is part of XEmacs. | |
25 | |
26 XEmacs is free software; you can redistribute it and/or modify it | |
27 under the terms of the GNU General Public License as published by the | |
28 Free Software Foundation; either version 2, or (at your option) any | |
29 later version. | |
30 | |
31 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
32 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
33 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
34 for more details. | |
35 | |
36 You should have received a copy of the GNU General Public License | |
37 along with XEmacs; see the file COPYING. If not, write to | |
38 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
39 Boston, MA 02111-1307, USA. | |
40 @end ifinfo | |
41 | |
42 @c Combine indices. | |
43 @syncodeindex fn cp | |
44 @syncodeindex vr cp | |
45 @syncodeindex ky cp | |
46 @syncodeindex pg cp | |
47 @syncodeindex tp cp | |
48 | |
49 @setchapternewpage odd | |
50 @finalout | |
51 | |
52 @titlepage | |
53 @title Info on beta versions of XEmacs | |
54 | |
55 @author XEmacs Development Team | |
56 @page | |
57 @vskip 0pt plus 1fill | |
58 | |
59 @noindent | |
3388 | 60 Copyright @copyright{} 2006 Free Software Foundation. @* |
2537 | 61 Copyright @copyright{} 2005 Ben Wing. @* |
62 | |
63 This file is part of XEmacs. | |
64 | |
65 XEmacs is free software; you can redistribute it and/or modify it | |
66 under the terms of the GNU General Public License as published by the | |
67 Free Software Foundation; either version 2, or (at your option) any | |
68 later version. | |
69 | |
70 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
71 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
72 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
73 for more details. | |
74 | |
75 You should have received a copy of the GNU General Public License | |
76 along with XEmacs; see the file COPYING. If not, write to | |
77 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
78 Boston, MA 02111-1307, USA. | |
79 @end titlepage | |
80 @page | |
81 | |
82 @ifinfo | |
83 @node Top, Introduction, (dir), (dir) | |
84 This Info file describes info relevant to beta versions of XEmacs. | |
85 @menu | |
86 * Introduction:: | |
3388 | 87 * Building Beta XEmacs:: |
2537 | 88 * Packages:: |
3388 | 89 * Reporting Problems:: |
2537 | 90 * Improving XEmacs:: |
3388 | 91 * Index:: |
2537 | 92 |
93 @detailmenu | |
94 --- The Detailed Node Listing --- | |
95 | |
96 Introduction | |
97 | |
98 * Mailing Lists:: | |
99 * Beta Release Schedule:: | |
100 | |
101 Mailing Lists | |
102 | |
103 * XEmacs Beta Mailing List:: | |
104 * XEmacs Patches Mailing List:: | |
105 * XEmacs Design Mailing List:: | |
106 * List Administrivia:: | |
107 * Managing your subscription via the Web:: | |
108 * Subscribing by e-mail:: | |
109 * Unsubscribing by e-mail:: | |
110 | |
3388 | 111 Building Beta XEmacs |
2537 | 112 |
3388 | 113 * Getting the Source:: |
2537 | 114 * Building an XEmacs from patches:: |
115 * Building XEmacs from a full distribution:: | |
116 | |
117 Packages | |
118 | |
119 * Binary package installation:: | |
120 * Manual procedures for package management:: | |
121 * Building XEmacs and XEmacs packages from scratch:: | |
122 | |
123 Improving XEmacs | |
124 | |
125 * Creating patches for submission:: | |
126 * Large contributions:: | |
127 | |
128 Creating patches for submission | |
129 | |
130 * Patch discussion etiquette:: | |
131 | |
132 Large contributions | |
133 | |
134 * Updates to existing packages:: | |
135 * New packages:: | |
136 * Syncing with GNU Emacs:: | |
137 | |
138 @end detailmenu | |
139 @end menu | |
140 | |
141 @end ifinfo | |
142 | |
3388 | 143 |
144 @node Introduction, Building Beta XEmacs, Top, Top | |
2537 | 145 @chapter Introduction |
146 | |
147 You are running a potentially unstable version of XEmacs. Please do | |
148 not report problems with Beta XEmacs to comp.emacs.xemacs. Report | |
149 them to @uref{mailto:xemacs-beta@@xemacs.org}, preferably with | |
150 @kbd{M-x report-xemacs-bug RET}. | |
151 | |
152 @menu | |
153 * Mailing Lists:: | |
154 * Beta Release Schedule:: | |
155 @end menu | |
156 | |
3388 | 157 |
2537 | 158 @node Mailing Lists, Beta Release Schedule, Introduction, Introduction |
159 @section Mailing Lists | |
160 | |
161 @menu | |
162 * XEmacs Beta Mailing List:: | |
163 * XEmacs Patches Mailing List:: | |
164 * XEmacs Design Mailing List:: | |
165 * List Administrivia:: | |
166 * Managing your subscription via the Web:: | |
167 * Subscribing by e-mail:: | |
168 * Unsubscribing by e-mail:: | |
169 @end menu | |
170 | |
3388 | 171 |
2537 | 172 @node XEmacs Beta Mailing List, XEmacs Patches Mailing List, Mailing Lists, Mailing Lists |
173 @subsection XEmacs Beta Mailing List | |
174 | |
175 If you are not subscribed to the XEmacs beta list you should be. | |
176 Currently all discussion of development issues, including bug reports | |
177 and coding discussion, takes place on the XEmacs Beta mailing list. | |
178 Only patches and administrative actions regarding patches are sent | |
179 elsewhere (to the XEmacs Patches list). | |
180 | |
3388 | 181 |
2537 | 182 @node XEmacs Patches Mailing List, XEmacs Design Mailing List, XEmacs Beta Mailing List, Mailing Lists |
183 @subsection XEmacs Patches Mailing List | |
184 | |
185 XEmacs Patches records proposed changes to XEmacs, and their | |
186 disposition. It is open subscription, and all patches that are | |
187 seriously proposed for inclusion in XEmacs should be posted here. You | |
188 can follow progress of your patch by subscribing to the mailing list | |
189 or in the archives. | |
190 | |
191 Besides patches, only actions by members of the XEmacs Review Board | |
192 should be posted to this list. All discussion should be redirected to | |
193 XEmacs Beta or XEmacs Design. | |
194 | |
3388 | 195 |
2537 | 196 @node XEmacs Design Mailing List, List Administrivia, XEmacs Patches Mailing List, Mailing Lists |
197 @subsection XEmacs Design Mailing List | |
198 | |
199 XEmacs Design is for design discussions such as adding major features | |
200 or whole modules, or reimplementation of existing functions, to XEmacs. | |
201 | |
202 @node List Administrivia, Managing your subscription via the Web, XEmacs Design Mailing List, Mailing Lists | |
203 @subsection List Administrivia | |
204 | |
205 In the descriptions below, the word LIST (all uppercase) is a | |
206 variable. Substitute "beta", "design", or "patches" as appropriate | |
207 (to get "xemacs-beta" as the mailbox for the XEmacs Beta mailing list, | |
208 or @uref{http://www.xemacs.org/Lists/#xemacs-beta} for its URL). | |
209 | |
210 The XEmacs mailing lists are managed by the Mailman mailing list package, | |
211 and the usual Mailman commands work. Do not send mailing list requests to | |
212 the main address (@uref{mailto:xemacs-LIST@@xemacs.org}), always send them | |
213 to @uref{mailto:xemacs-LIST-request@@xemacs.org}. If you have problems with | |
214 the list itself, they should be brought to the attention of the XEmacs | |
215 Mailing List manager @uref{mailto:list-manager@@xemacs.org} (the same | |
216 mailbox, "list-manager", for all lists). All public mailing lists have | |
217 searchable archives. The URL is | |
218 | |
219 @uref{http://list-archive.xemacs.org/xemacs-LIST} | |
220 | |
221 Note that the xemacs-LIST-admin address is used internally by the | |
222 Mailman software; it is NOT a synonym for xemacs-LIST-request. | |
223 | |
3388 | 224 |
2537 | 225 @node Managing your subscription via the Web, Subscribing by e-mail, List Administrivia, Mailing Lists |
226 @subsection Managing your subscription via the Web | |
227 | |
228 Subscription, unsubscription, and options (such as digests and | |
229 temporarily suspending delivery) can be accomplished via the web | |
230 interface at @uref{http://www.xemacs.org/Lists/#xemacs-LIST}. | |
231 | |
3388 | 232 |
2537 | 233 @node Subscribing by e-mail, Unsubscribing by e-mail, Managing your subscription via the Web, Mailing Lists |
234 @subsection Subscribing by e-mail | |
235 | |
236 Send an email message to @uref{mailto:xemacs-LIST-request@@xemacs.org} with | |
237 @samp{subscribe} (without the quotes) as the BODY of the message. | |
238 | |
3388 | 239 |
2537 | 240 @node Unsubscribing by e-mail, , Subscribing by e-mail, Mailing Lists |
241 @subsection Unsubscribing by e-mail | |
242 | |
243 Send an email message to @uref{mailto:xemacs-LIST-request@@xemacs.org} with | |
244 @samp{unsubscribe} (without the quotes) as the BODY of the message. | |
245 | |
3388 | 246 |
247 @node Beta Release Schedule, , Mailing Lists, Introduction | |
2537 | 248 @section Beta Release Schedule |
249 | |
250 We would like to achieve a weekly or fortnightly release cycle (you | |
251 know the Open Source model: release early, release often), and in a | |
252 perfect world that would indeed be the case. There are at least three | |
253 things that often get in the way of that goal: 1) The Release Manager | |
254 has a life outside of XEmacs (hard to believe, I know, but true), | |
255 2) we like to make releases that will build (at least on the Release | |
256 Manager's box), and 3) Murphy likes to throw a spanner in the works | |
257 right when you least expect it (Murphy's Law: Whatever can go wrong, | |
258 will go wrong). | |
259 | |
260 If you'd like to keep right up to date and ride the bleeding edge, use | |
261 CVS (see @uref{http://www.xemacs.org/Develop/cvsaccess.html}). If you | |
262 can't use CVS for some reason and must use FTP, please let us know. | |
263 it will make it more likely that we release betas more often. | |
264 | |
265 | |
3388 | 266 @node Building Beta XEmacs, Packages, Introduction, Top |
267 @chapter Building Beta XEmacs | |
2537 | 268 |
3388 | 269 @menu |
270 * Getting the Source:: | |
271 * Building an XEmacs from patches:: | |
272 * Building XEmacs from a full distribution:: | |
273 @end menu | |
2537 | 274 |
3388 | 275 |
276 @node Getting the Source, Building an XEmacs from patches, Building Beta XEmacs, Building Beta XEmacs | |
277 @section Getting the Source | |
2537 | 278 |
3388 | 279 We provide the traditional tarballs and release-to-release patchkits for |
280 each beta release. @xref{Beta Release Schedule}. These are available | |
281 at | |
2537 | 282 |
3388 | 283 @uref{ftp://ftp.xemacs.org/pub/xemacs/beta/} |
2537 | 284 |
285 In addition to the normal tar distribution, XEmacs source is now | |
286 available via CVS. Please see | |
287 | |
288 @uref{http://www.xemacs.org/Develop/cvsaccess.html} | |
289 | |
3388 | 290 You can also browse the repository via ViewCVS |
2537 | 291 |
3388 | 292 @uref{http://cvs.xemacs.org/} |
2537 | 293 |
3388 | 294 |
295 @node Building an XEmacs from patches, Building XEmacs from a full distribution, Getting the Source, Building Beta XEmacs | |
2537 | 296 @section Building an XEmacs from patches |
297 | |
3388 | 298 All beta releases of XEmacs provide patches from the previous version as |
299 an alternative to keep bandwidth requirements down. These patches are | |
300 actually scripts generated by the @file{makepatch} program, and can be | |
301 run if you have the @file{applypatch} program. Patches may also be | |
302 applied with the GNU patch program in something like the following. | |
303 Let's say you're upgrading XEmacs 21.5-beta9 to XEmacs 21.5-beta10 and | |
304 you have a full unmodified XEmacs 21.5-beta9 source tree to work with. | |
305 Change to the top level directory and issue the shell command: | |
2537 | 306 |
307 @example | |
308 $ gunzip -c /tmp/xemacs-21.5.9-21.5.10.patch.gz | patch -p1 | |
309 @end example | |
310 | |
311 After patching, check to see that no patches were missed by doing | |
312 | |
313 @example | |
314 $ find . -name \*.rej -print | |
315 @end example | |
316 | |
317 Any rejections should be treated as serious problems to be resolved | |
318 before building XEmacs. | |
319 | |
320 After seeing that there were no rejections, issue the commands | |
321 | |
322 @example | |
323 $ ./config.status --recheck | |
324 $ make beta > ./beta.err 2>&1 | |
325 $ make check > ./xemacs-make-check.err 2>&1 | |
326 @end example | |
327 | |
328 Redirect the output from make to those files because you'll use them | |
329 later when you send off a build report with @kbd{M-x build-report RET} | |
330 | |
3388 | 331 |
332 @node Building XEmacs from a full distribution, , Building an XEmacs from patches, Building Beta XEmacs | |
2537 | 333 @section Building XEmacs from a full distribution |
334 | |
335 @enumerate | |
336 @item | |
3388 | 337 Locate a convenient place where you have at least 200MB of free space |
338 (approximately 100MB for sources and compiled Lisp, and 100MB for | |
339 objects and other generated files) and issue the command | |
2537 | 340 |
341 @example | |
342 $ gunzip -c /tmp/xemacs-21.5.10.tar.gz | tar xvf - | |
343 @end example | |
344 | |
345 (or simply @code{tar zxvf /tmp/xemacs-21.5.10.tar.gz} if you use GNU tar). | |
346 | |
347 @item | |
348 cd to the top level directory and issue an appropriate configure | |
349 command. | |
350 | |
351 @item | |
352 Run @code{configure}. If you are new, just consider running it with no | |
4312 | 353 options, to see if you can get a successful build. When you are more |
2537 | 354 experienced, you should put various flags in. Here is what we suggest: |
355 | |
356 @enumerate | |
357 @item | |
358 It's a good idea to use | |
359 | |
360 @example | |
2647 | 361 --enable-debug |
362 --enable-memory-usage-stats | |
363 --enable-error-checking=all | |
2537 | 364 @end example |
365 | |
366 These turn on extra debugging info and checks. The last one in particular | |
367 will add a great deal of extra error-checking -- which will slow your XEmacs | |
368 down somewhat but is likely to catch bugs much sooner and make your bug | |
369 reports much more useful. | |
370 | |
371 @item | |
372 You should also strongly consider | |
373 | |
374 @example | |
2647 | 375 --enable-mule |
376 --enable-kkcc | |
377 --enable-pdump | |
378 --enable-clash-detection | |
2537 | 379 --with-wmcommand |
380 --with-xfs | |
381 @end example | |
382 | |
383 These turn on optional features, which can always use testing. | |
384 | |
385 @item | |
386 If you have gcc, consider using | |
387 | |
388 @example | |
2647 | 389 --with-compiler=gcc |
390 --with-xemacs-compiler=g++ | |
2537 | 391 @end example |
392 | |
3388 | 393 This will compile XEmacs using g++, which is generally much stricter |
394 about type-checking than C compilers like gcc. | |
2537 | 395 |
396 @item | |
397 If your packages are not installed under /usr/local, you should add a | |
398 line like | |
399 | |
400 @example | |
2647 | 401 --with-package-path=~/.xemacs::/xemacs/site-packages:/xemacs/xemacs-packages:/xemacs/mule-packages |
2537 | 402 @end example |
403 | |
404 @item | |
405 If you want to build multiple configurations from the same source | |
406 tree, make separate build directories for each configuration, run | |
407 @code{configure} from the top level of these (currently empty) | |
408 directories and use an option like | |
409 | |
410 @example | |
411 --srcdir=/xemacs/source-tree | |
412 @end example | |
413 | |
414 (or wherever your source tree is). This will magically create symlinks and | |
415 populate your build directory. | |
416 | |
417 @item | |
2647 | 418 Use --with-site-prefixes (or --with-site-includes and |
419 ---with-site-libraries) if you have some packages that XEmacs can | |
420 compile with that are located in an unusual place. For example: | |
2537 | 421 |
422 @example | |
2647 | 423 --with-site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1 |
2537 | 424 @end example |
425 | |
426 @item | |
4312 | 427 Depending on your build environment, consider setting or not setting |
2537 | 428 options for menubars, scrollbars, window systems, native sound, etc. If |
429 you're not sure, leave them out and let configure do the auto-detection. | |
430 (If you get bugs compiling GTK, use @code{--with-gtk=no --with-gnome=no}.) | |
431 | |
432 Part of the configure output is a summary that looks something | |
433 like the following. (this summary is also available as the file | |
434 'Installation' in the top directory of your build tree, and via | |
435 the command @kbd{M-x describe-installation RET}). | |
436 | |
437 @example | |
2647 | 438 uname -a: Darwin laptop.local 7.7.0 Darwin Kernel Version 7.7.0: Sun Nov 7 16:06:51 PST 2004; root:xnu/xnu-517.9.5.obj~1/RELEASE_PPC Power Macintosh powerpc |
2537 | 439 |
2647 | 440 ./configure '--with-site-prefixes=/sw' '--without-ldap' '--with-dynamic=yes' '--with-gtk=no' '--with-gnome=no' '--enable-toolbars' '--with-wmcommand' '--with-athena=3d' '--enable-menubars=lucid' '--enable-scrollbars=athena' '--enable-dialogs=athena' '--enable-widgets=athena' '--with-gif' '--enable-sound=native,noesd' '--with-site-lisp=no' '--with-site-modules' '--enable-pdump' '--enable-mule' '--with-xfs' '--enable-debug' '--enable-error-checking=all' '--enable-memory-usage-stats' '--enable-kkcc' '--enable-clash-detection' |
2537 | 441 |
442 | |
2647 | 443 XEmacs 21.5-b19 "chives" (+CVS-20050226) configured for `powerpc-apple-darwin7.7.0'. |
444 | |
445 WARNING: -------------------------------------------------------------- | |
446 WARNING: This was produced from a new autoconf-2.5 based configuration. | |
447 WARNING: If this configuration seems buggy then copy etc/configure-2.13 | |
448 WARNING: to configure and try again. Also please report the bug. | |
449 WARNING: -------------------------------------------------------------- | |
450 | |
451 Compilation Environment and Installation Defaults: | |
2537 | 452 Source code location: /usr/local/src/xemacs |
453 Installation prefix: /usr/local | |
2647 | 454 Additional prefixes: /sw |
455 Operating system description file: `s/darwin.h' | |
456 Machine description file: `m/powerpc.h' | |
457 Compiler version: gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1671) | |
458 - GCC specs file: /usr/libexec/gcc/darwin/ppc/3.3/specs | |
459 - Compiler command: gcc -Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts -Wpacked -Wpointer-arith -Wunused-parameter -g | |
460 libc version: | |
2537 | 461 Relocating allocator for buffers: no |
2647 | 462 GNU version of malloc: no |
463 - The GNU allocators don't work with this system configuration. | |
2537 | 464 |
465 Window System: | |
466 Compiling in support for the X window system: | |
2647 | 467 - X Windows headers location: /usr/X11R6/include |
468 - X Windows libraries location: /usr/X11R6/lib | |
2537 | 469 - Handling WM_COMMAND properly. |
470 Compiling in support for the Athena widget set: | |
2647 | 471 - Athena headers location: X11/Xaw3d |
472 - Athena library to link: Xaw3d | |
2537 | 473 Using Lucid menubars. |
474 Using Athena scrollbars. | |
475 Using Athena dialog boxes. | |
476 Using Athena native widgets. | |
477 | |
478 TTY: | |
479 Compiling in support for ncurses. | |
480 | |
481 Images: | |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4312
diff
changeset
|
482 Compiling in support for GIF images. |
2537 | 483 Compiling in support for XPM images. |
484 Compiling in support for PNG images. | |
485 Compiling in support for JPEG images. | |
486 Compiling in support for TIFF images. | |
487 Compiling in support for X-Face message headers. | |
488 | |
489 Sound: | |
490 | |
491 Databases: | |
492 Compiling in support for Berkeley database. | |
2647 | 493 Compiling in support for GNU DBM. |
2537 | 494 Compiling in support for PostgreSQL. |
2647 | 495 - Using PostgreSQL header file: postgresql/libpq-fe.h |
2537 | 496 - Using PostgreSQL V7 bindings. |
497 | |
498 Internationalization: | |
499 Compiling in support for Mule (multi-lingual Emacs). | |
500 Compiling in support for XIM (X11R5+ I18N input method). | |
501 - Using raw Xlib to provide XIM support. | |
502 - Using XFontSet to provide bilingual menubar. | |
503 | |
504 Mail: | |
2647 | 505 Compiling in support for "file" mail spool file locking method. |
2537 | 506 |
507 Other Features: | |
508 Inhibiting IPv6 canonicalization at startup. | |
509 Compiling in support for dynamic shared object modules. | |
510 Using the new GC algorithms. | |
511 Using the new portable dumper. | |
512 Compiling in support for extra debugging code. | |
2647 | 513 Compiling in support for runtime error checking. |
514 WARNING: --------------------------------------------------------- | |
2537 | 515 WARNING: XEmacs will run noticeably more slowly as a result. |
516 WARNING: Error checking is on by default for XEmacs beta releases. | |
2647 | 517 WARNING: --------------------------------------------------------- |
2537 | 518 @end example |
519 @end enumerate | |
520 | |
521 | |
522 @item | |
523 Then... | |
524 | |
525 @example | |
526 $ make > ./beta.err 2>&1 | |
527 $ make check > ./xemacs-make-check.err 2>&1 | |
528 @end example | |
529 | |
530 ...and you should have a working XEmacs. | |
531 | |
532 @item | |
533 After you have verified that you have a functional editor, fire up | |
534 your favorite mail program and send a build report to | |
535 @uref{mailto:xemacs-buildreports@@xemacs.org}. | |
536 | |
537 Preferably this is best done from XEmacs, following these simple steps: | |
538 | |
539 @enumerate | |
540 @kbd{M-x customize-group RET build-report RET} | |
541 @kbd{M-x build-report RET} | |
542 @end enumerate | |
543 | |
544 See also | |
545 @uref{http://www.xemacs.org/Releases/Public-21.2/tester.html#reporting} | |
546 | |
547 If you create the report manually by other means, here is what the | |
548 build report should include: | |
549 | |
550 @enumerate | |
551 @item | |
552 Your hardware configuration (OS version, etc.) | |
553 | |
554 @item | |
555 Version numbers of software in use (X11 version, system library | |
556 versions if appropriate, graphics library versions if appropriate). | |
557 If you're on a system like Linux, include all the version numbers | |
558 you can because chances are it makes a difference. | |
559 | |
560 @item | |
561 The options given to configure | |
562 | |
563 @item | |
564 The configuration report illustrated above | |
565 | |
566 For convenience all of the above items are placed in a file called | |
567 `Installation' in the top level build directory. They are also | |
568 available by performing @kbd{M-x describe-installation} inside XEmacs. | |
569 | |
570 @item | |
571 Any other unusual items you feel should be brought to the attention | |
572 of the developers. | |
573 @end enumerate | |
574 @end enumerate | |
575 | |
3388 | 576 |
577 @node Packages, Reporting Problems, Building Beta XEmacs, Top | |
2537 | 578 @chapter Packages |
579 | |
580 [Note: these instructions have been partly updated, but not carefully | |
581 reviewed in some time. Caveat tester.] | |
582 | |
583 Starting with XEmacs 21.1, much of the functionality of XEmacs has | |
584 been unbundled into "the packages." For more information about the | |
585 package system, see the Info nodes on Packages (in the XEmacs User | |
586 Manual) and on Packaging (in the Lisp Reference). | |
587 | |
588 When bootstrapping XEmacs, you may need to manually install some | |
589 packages (at least xemacs-base and efs). These packages are available | |
590 by FTP at @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/}. | |
591 | |
592 @menu | |
593 * Binary package installation:: | |
594 * Manual procedures for package management:: | |
595 * Building XEmacs and XEmacs packages from scratch:: | |
596 @end menu | |
597 | |
3388 | 598 |
2537 | 599 @node Binary package installation, Manual procedures for package management, Packages, Packages |
600 @section Binary package installation | |
601 | |
602 Prerequisite: XEmacs 21.0-b1. | |
603 | |
604 Binary packages are complete entities that can be untarred at the top | |
605 level of an XEmacs package hierarchy and work at runtime. To install files | |
606 in this directory, run the command @kbd{M-x package-admin-add-binary-package} | |
607 and fill in appropriate values to the prompts. | |
608 | |
3388 | 609 |
2537 | 610 @node Manual procedures for package management, Building XEmacs and XEmacs packages from scratch, Binary package installation, Packages |
611 @section Manual procedures for package management | |
612 | |
613 Prerequisite: XEmacs 21.0 | |
614 | |
615 When adding and deleting files from a lisp directory the | |
616 auto-autoloads.el (global symbols) and custom-load.el (Customization | |
617 groups) must be kept in synch. Assuming one is manipulating a | |
618 directory called `lisp-utils', the command to rebuild the | |
619 auto-autoloads.el file is: | |
620 | |
621 @example | |
622 xemacs -vanilla -batch \ | |
623 -eval \("setq autoload-package-name \"lisp-utils\""\) \ | |
624 -f batch-update-directory lisp-utils | |
625 @end example | |
626 | |
627 The command to rebuild the custom-load.el file is: | |
628 | |
629 @example | |
630 xemacs -vanilla -batch -f Custom-make-dependencies lisp-utils | |
631 @end example | |
632 | |
633 To byte-compile both of these files the command is: | |
634 | |
635 @example | |
636 xemacs -vanilla -batch -f batch-byte-compile \ | |
637 lisp-utils/auto-autoloads.el lisp-utils/custom-load.el | |
638 @end example | |
639 | |
640 Of course, being a beta tester, you'd be aware that it is much easier | |
641 to manage your XEmacs packages with PUI. | |
642 | |
3388 | 643 |
644 @node Building XEmacs and XEmacs packages from scratch, , Manual procedures for package management, Packages | |
2537 | 645 @section Building XEmacs and XEmacs packages from scratch |
646 | |
647 To build everything completely from scratch isn't hard, just time | |
648 consuming. | |
649 | |
650 @subheading Step 1 - grab the sources (core and packages) | |
651 | |
652 @example | |
653 $ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs login | |
654 [password: "cvs" (sans quotes)] | |
655 | |
656 $ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs co -d xemacs-21.5 xemacs | |
657 | |
658 $ cvs -d :pserver:cvs@@cvs.xemacs.org:/pack/xemacscvs co packages | |
659 @end example | |
660 | |
661 @subheading Step 2 - build XEmacs | |
662 | |
663 @example | |
664 $ cd xemacs-21.5 | |
665 $ ./configure [options...] | |
666 $ make > ./beta.err 2>&1 | |
667 $ make check > ./xemacs-make-check.err 2>&1 | |
668 @end example | |
669 | |
670 And optionally: | |
671 | |
672 @example | |
673 $ make install > ./xemacs-make-install.err 2>&1 | |
674 @end example | |
675 | |
676 @subheading Step 3 - build and install the packages | |
677 | |
678 @example | |
679 $ cd packages | |
680 $ cp Local.rules.template Local.rules | |
681 @end example | |
682 | |
683 Then edit Local.rules to suit your needs/environment | |
684 (@pxref{Local.rules file,,, xemacs, XEmacs User's Manual}) for details | |
685 about this file. | |
686 | |
687 And then: | |
688 | |
689 @example | |
690 $ make install | |
691 @end example | |
692 | |
3388 | 693 |
694 @node Reporting Problems, Improving XEmacs, Packages, Top | |
695 @section Reporting Problems | |
696 | |
697 The best way to get problems fixed in XEmacs is to submit good problem | |
698 reports, @kbd{M-x report-xemacs-bug RET} will help you do this (assuming | |
699 you have a usable XEmacs). Since this is beta software, problems are | |
700 certain to exist. Please read through all of part II of the XEmacs | |
701 FAQ for an overview of problem reporting. | |
702 @xref{Installation, Installation and Troubleshooting, , xemacs-faq}. | |
703 The most relevant parts are in section 2.4, General Troubleshooting. | |
704 @c #### Why doesn't this link work? | |
705 @c @ref{Q2.4.1, General Troubleshooting, , xemacs-faq}. | |
706 Other items which are most important are: | |
707 | |
708 @enumerate | |
709 @item | |
710 Do not submit C stack backtraces without line numbers. Since it | |
711 is possible to compile optimized with debug information with GCC | |
712 it is never a good idea to compile XEmacs without the -g flag. | |
713 XEmacs runs on a variety of platforms, and often it is not | |
714 possible to recreate problems which afflict a specific platform. | |
715 The line numbers in the C stack backtrace help isolate where the | |
716 problem is actually occurring. | |
717 | |
718 @item | |
719 Attempt to recreate the problem starting with an invocation of | |
720 XEmacs with @code{xemacs -no-autoloads}. Quite often, problems are | |
721 due to package interdependencies, and the like. An actual bug | |
722 in XEmacs should be reproducible in a default configuration | |
723 without loading any special packages (or the one or two specific | |
724 packages that cause the bug to appear). If you have trouble | |
725 getting anything to work at all with the above invocation, use | |
726 @code{xemacs -vanilla} instead. If you need to load your user init | |
727 file or the site file to get the problem to occur, then it has | |
728 something to do with them, and you should try to isolate the | |
729 issue in those files. | |
730 | |
731 @item | |
732 A picture can be worth a thousand words. When reporting an | |
733 unusual display, it is generally best to capture the problem in a | |
734 screen dump and include that with the problem report. The easiest | |
735 way to get a screen dump is to use the xv program and its grab | |
4708
1cecc3e9f0a0
Use giflib or libungif to provide GIF support, instead of using internal
Jerry James <james@xemacs.org>
parents:
4312
diff
changeset
|
736 function. Save the image as a PNG to keep bandwidth requirements |
3388 | 737 down without loss of information. MIME is the preferred method |
738 for making the image attachments. | |
739 @end enumerate | |
740 | |
741 | |
742 @node Improving XEmacs, Index, Reporting Problems, Top | |
2537 | 743 @chapter Improving XEmacs |
744 | |
745 @menu | |
746 * Creating patches for submission:: | |
747 * Large contributions:: | |
748 @end menu | |
749 | |
750 @node Creating patches for submission, Large contributions, Improving XEmacs, Improving XEmacs | |
751 @section Creating patches for submission | |
752 | |
753 All patches to XEmacs that are seriously proposed for inclusion (eg, | |
754 bug fixes) should be mailed to @uref{mailto:xemacs-patches@@xemacs.org}. Each | |
755 patch will be reviewed by the patches review board, and will be | |
756 acknowledged and added to the distribution, or rejected with an | |
757 explanation. Progress of the patch is tracked on the XEmacs Patches | |
758 mailing list, which is open subscription. (If a patch is simply | |
759 intended to facilitate discussion, "I mean something that works like | |
760 this but this is really rough", a Cc to XEmacs Patches is optional, | |
761 but doesn't hurt.) | |
762 | |
763 Patches to XEmacs Lisp packages should be sent to the maintainer of | |
764 the package. If the maintainer is listed as `XEmacs Development Team' | |
765 patches should be sent to @uref{mailto:xemacs-patches@@xemacs.org}. | |
766 | |
767 Emailed patches should preferably be sent in MIME format and quoted | |
768 printable encoding (if necessary). | |
769 | |
770 The simplest way to create well-formed patches is to use CVS and | |
771 Didier Verna's Patcher library (available as patcher.el in the | |
772 xemacs-devel package). Patcher is new and requires some setup, but | |
773 most of the core developers are now using it for their own patches. | |
774 Patcher also can be configured to create patches for several projects, | |
775 and recognize the project from the directory it is invoked in. This | |
776 makes it a useful general tool (as long as XEmacs-style patches are | |
777 accepted at your other projects, which is likely since they conform to | |
778 the GNU standards). | |
779 | |
780 When making patches by hand, please use the `-u' option, or if your | |
781 diff doesn't support it, `-c'. Using ordinary (context-free) diffs | |
782 are notoriously prone to error, since line numbers tend to change when | |
783 others make changes to the same source file. | |
784 | |
785 An example of the `diff' usage: | |
786 | |
787 @example | |
788 $ diff -u OLDFILE NEWFILE | |
789 @end example | |
790 | |
791 -or- | |
792 | |
793 @example | |
794 $ diff -c OLDFILE NEWFILE | |
795 @end example | |
796 | |
797 Also, it is helpful if you create the patch in the top level of the | |
798 XEmacs source directory: | |
799 | |
800 @example | |
801 $ cp -p lwlib/xlwmenu.c lwlib/xlwmenu.c.orig | |
802 hack, hack, hack.... | |
803 $ diff -u lwlib/xlwmenu.c.orig lwlib/xlwmenu.c | |
804 @end example | |
805 | |
806 Also note that if you cut & paste from an xterm to an XEmacs mail | |
807 buffer you will probably lose due to tab expansion. The best thing to | |
808 do is to use an XEmacs shell buffer to run the diff commands, or ... | |
809 @kbd{M-x cd} to the appropriate directory, and issue the command | |
810 @kbd{C-u M-!} from within XEmacs. | |
811 | |
812 Patches should be as single-minded as possible. Mammoth patches can | |
813 be very difficult to place into the right slot. They are much easier | |
814 to deal with when broken down into functional or conceptual chunks. | |
815 The patches submitted by Kyle Jones and Hrvoje Niksic are stellar | |
816 examples of how to "Do The Right Thing". | |
817 | |
818 Each patch should be accompanied by an update to the appropriate | |
819 ChangeLog file. Guidelines for writing ChangeLog entries is governed | |
820 by the GNU coding standards. Please see | |
821 @uref{http://www.gnu.org/prep/standards_toc.html} [Change Logs section] | |
822 for details. | |
823 | |
824 Do not submit context diffs (either -c or -u) of ChangeLogs. Because | |
825 of the "stack" nature of ChangeLogs (new entries are always pushed on | |
826 the top), context diffs will fail to apply more often than they | |
827 succeed. Simply cutting and pasting the entry from an Emacs buffer to | |
828 the mail buffer (beware of tab expansion!) is probably easiest. The | |
829 Patcher library also will set up your ChangeLogs for you, and copy | |
830 them to the mail. Context-less unified diffs (-U 0) are also | |
831 acceptable. | |
832 | |
833 @menu | |
834 * Patch discussion etiquette:: | |
835 @end menu | |
836 | |
837 @node Patch discussion etiquette, , Creating patches for submission, Creating patches for submission | |
838 @subsection Patch discussion etiquette | |
839 | |
840 If you intend a patch for _application_ to the sources as is, _always_ | |
841 post it to xemacs-patches, even if there are minor points you would | |
842 like to have discussed by others. Not doing so will resulting in | |
843 patches getting "lost". If you expect that the patch will not be | |
844 acceptable, but are using it to stimulate discussion, then don't post | |
845 to xemacs-patches. Intermediate cases are up to your judgment; | |
846 unless you're sure you'll follow up with a "real" patch, better to err | |
847 on the side of posting to xemacs-patches. | |
848 | |
849 Discussion of the _content_ of the patch (ie responses to reviewer | |
850 comments beyond "that's right, ok, I'll do it your way") should _always_ | |
851 be posted to xemacs-beta or to xemacs-design. If you're not sure | |
852 which is more appropriate, send it to xemacs-beta. That is the most | |
853 widely read channel. | |
854 | |
855 If discussion results in a bright idea and you come up with a new | |
856 patch, normally you should post it to both mailing lists. The people | |
857 discussing on XEmacs Beta will want to know the outcome of the thread, | |
858 and you need to submit to XEmacs Patches as the "list of record." | |
859 | |
860 If the old patch has been applied to CVS, then just submit the new one | |
861 as usual. If it has not been applied, then it is best to submit a new | |
862 patch against CVS. If possible do this as a reply to the original | |
863 patch post, or something following it in the thread. (The point is to | |
864 get the original patch post's Message-ID in your References header.) | |
865 In this case, also use the keyword SUPERSEDES in the Subject header to | |
866 indicate that the old patch is no longer valid, and that this one | |
867 replaces it. | |
868 | |
869 These rules will result in a fair number of cross posts, but we don't | |
870 yet have a better way to handle that. | |
871 | |
872 Note: Developers should never post to xemacs-patches unless there is a | |
873 patch in the post. We plan to enforce this with an automatic filter. | |
874 | |
875 The exceptions are administrative. If you have commit authorization, | |
876 then post a short COMMIT notice to xemacs-patches when you commit to | |
877 CVS. Members of the Review Board will also post short notices of | |
878 administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches. | |
879 | |
880 @node Large contributions, , Creating patches for submission, Improving XEmacs | |
881 @section Large contributions | |
882 | |
883 Perhaps you have a whole new mode, or a major synchronization with | |
884 upstream for a neglected package, or a synchronization with GNU Emacs | |
885 you would like to contribute. We welcome such contributions, but they | |
886 are likely to be relatively controversial, generate more comments and | |
887 requests for revision, and take longer to integrate. Please be | |
888 patient with the process. | |
889 | |
890 @menu | |
891 * Updates to existing packages:: | |
892 * New packages:: | |
893 * Syncing with GNU Emacs:: | |
894 @end menu | |
895 | |
896 @node Updates to existing packages, New packages, Large contributions, Large contributions | |
897 @subsection Updates to existing packages | |
898 | |
899 If a package has gotten a bit out of date, or even started to bitrot, | |
900 we welcome patches to synchronize it with upstream/GNU Emacs versions. | |
901 Most packages end up varying somewhat from their GNU origins. See | |
902 "Syncing with GNU Emacs" for hints. Note that if you do a reasonably | |
903 large amount of syncing with GNU Emacs, you should log this in the | |
904 file itself as well as in the ChangeLog. | |
905 | |
906 If the package is important to you, please consider becoming the | |
907 maintainer. (See "New packages", below.) | |
908 | |
909 @node New packages, Syncing with GNU Emacs, Updates to existing packages, Large contributions | |
910 @subsection New packages | |
911 | |
912 If you have a new mode or other large addition that does not require | |
913 changes to the core, please consider submitting it as a package, and | |
914 becoming the maintainer. You get direct commit privileges to the | |
915 repository for your package, "approval" privileges for your own | |
916 patches as well as third party patches to your package, and some | |
917 degree of veto power over patches you don't like. In return, you are | |
918 expected to maintain friendly liaison with the upstream developer (if | |
919 you aren't the upstream developer), keep watch on the XEmacs Patches | |
920 list for relevant patches, and be available by email to other | |
921 developers for discussion of changes that impact your package. It's | |
922 also a pretty standard route to the "core" development group, where we | |
923 have plenty of extra work waiting for volunteers. | |
924 | |
925 You don't have to become the maintainer, but it virtually ensures | |
926 rapid acceptance of the package. | |
927 | |
928 For help in creating new packages, see the (rather sparse) discussions | |
2547 | 929 in the XEmacs User's Guide and the Lisp Reference Manual. The |
930 participants in the XEmacs Beta mailing list | |
931 @uref{mailto:xemacs-beta@@xemacs.org} and the XEmacs Package Release | |
932 Engineer are the most likely sources of advice. See | |
933 @uref{http://www.xemacs.org/Develop/jobs.html#package,jobs.html} for | |
934 current information about package release engineers. | |
2537 | 935 |
3388 | 936 |
2537 | 937 @node Syncing with GNU Emacs, , New packages, Large contributions |
938 @subsection Syncing with GNU Emacs | |
939 | |
940 Syncing with GNU Emacs is an important activity. Although each | |
941 version has its advantages and areas of concentration, it is very | |
942 desirable that common functionality share specifications and APIs. | |
943 When porting GNU code to XEmacs, the following points should be given | |
944 special attention: | |
945 | |
946 @itemize @bullet | |
947 @item | |
948 Recent GNU Emacsen cannot be built without Mule, but XEmacs can. | |
2547 | 949 Make sure that changes that depend on the presence of Mule are |
950 appropriately conditionalized, with @samp{#ifdef MULE} in C code and | |
951 with @samp{(featurep 'mule)} in Lisp. | |
2537 | 952 |
953 @item | |
954 GNU Emacs nomenclature often differs from that of XEmacs. | |
955 Sometimes syncing the names is desirable, other times not. | |
956 | |
957 @item | |
958 GNU Emacs functionality often differs from that of XEmacs. | |
959 Syncing functionality is often controversial. | |
960 @end itemize | |
961 | |
962 It is important that you let other developers know that | |
963 synchronization has taken place, to what degree, and when. For this | |
964 purpose, we use comments of the form | |
965 | |
966 @example | |
2547 | 967 /* Synched up with: GNU 21.3 by Stephen Turnbull */ |
2537 | 968 @end example |
969 | |
970 in the source file itself, as the last element of the prefatory | |
971 material (copyright notice and commentary). Obviously the comment | |
972 marker needs to be changed to leading semicolons for Lisp, but | |
2547 | 973 otherwise the format is the same. (Older sync comments may have ``FSF'' |
974 in place of ``GNU''. They're equally accurate in our opinion, but | |
975 Richard Stallman and other GNU developers consider the term ``FSF | |
976 Emacs'' ``insulting''. Please use ``GNU'' in new sync comments.) | |
2537 | 977 |
978 Of course you should note syncing as the purpose in the ChangeLog, | |
979 too. But entries get buried deep in the ChangeLog file, and may even | |
980 get moved to a separate ChangeLog.OLD file for rarely synched files. | |
981 | |
982 Rather than dates we use the version of GNU Emacs to sync to. If the | |
983 synchronization is partial, add a new comment describing what has | |
984 actually been synched, leaving the description of the last full sync | |
985 in place. At each full sync, remove all previous synchronization | |
986 comments. | |
987 | |
988 This applies to Lisp that we have broken out into packages, but | |
989 remains in the GNU Emacs core, as well to core Lisp in XEmacs. | |
990 | |
991 @c Print the tables of contents | |
992 @contents | |
993 @c That's all | |
994 | |
3388 | 995 |
2547 | 996 @node Index, , Improving XEmacs, Top |
2537 | 997 @unnumbered Index |
998 | |
999 @printindex cp | |
1000 | |
1001 @bye |