comparison etc/BETA @ 1024:ccaf90c5a53a

[xemacs-hg @ 2002-10-02 09:29:37 by stephent] 21.4 -> R21.5 stuff manual improvements <87k7l1p6su.fsf@tleepslib.sk.tsukuba.ac.jp> regexp tests <87fzvpp6mf.fsf@tleepslib.sk.tsukuba.ac.jp> add-to-list doc Ville Skyttä <87bs6dp6io.fsf@tleepslib.sk.tsukuba.ac.jp> Move filename associations Ville Skyttä <877kh1p6ee.fsf@tleepslib.sk.tsukuba.ac.jp> lookup-syntax-properties <87admil2e0.fsf_-_@tleepslib.sk.tsukuba.ac.jp> fix stale submatches <873crpp50v.fsf_-_@tleepslib.sk.tsukuba.ac.jp> info for developers <87y99hnqc4.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Wed, 02 Oct 2002 09:31:40 +0000
parents 968a715e8c6f
children 911faaa82855
comparison
equal deleted inserted replaced
1023:ce9bdd48654f 1024:ccaf90c5a53a
149 149
150 and go play minesweep for a while on an older XEmacs while the binary 150 and go play minesweep for a while on an older XEmacs while the binary
151 is rebuilt. 151 is rebuilt.
152 152
153 ** Building XEmacs from a full distribution 153 ** Building XEmacs from a full distribution
154 ============================================== 154 ===========================================
155 155
156 Locate a convenient place where you have at least 100MB of free space 156 Locate a convenient place where you have at least 100MB of free space
157 and issue the command 157 and issue the command
158 158
159 $ gunzip -c /tmp/xemacs-20.15-b11.tar.gz | tar xvf - 159 $ gunzip -c /tmp/xemacs-20.15-b11.tar.gz | tar xvf -
264 264
265 5. Any other unusual items you feel should be brought to the attention 265 5. Any other unusual items you feel should be brought to the attention
266 of the developers. 266 of the developers.
267 267
268 268
269 * Patching XEmacs 269 * Packages
270 ==========
271
272 [Note: these instructions have been partly updated, but not carefully
273 reviewed in some time. Caveat tester.]
274
275 Starting with XEmacs 21.1, much of the functionality of XEmacs has
276 been unbundled into "the packages." For more information about the
277 package system, see the Info nodes on Packages (in the XEmacs User
278 Manual) and on Packaging (in the Lisp Reference).
279
280 When bootstrapping XEmacs, you may need to manually install some
281 packages (at least xemacs-base and efs). These packages are available
282 by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/.
283
284 ** Binary package installation
285 ==============================
286
287 Prerequisite: XEmacs 21.0-b1.
288
289 Binary packages are complete entities that can be untarred at the top
290 level of an XEmacs package hierarchy and work at runtime. To install files
291 in this directory, run the command `M-x package-admin-add-binary-package'
292 and fill in appropriate values to the prompts.
293
294 ** Manual procedures for package management
295 ===========================================
296
297 Prerequisite: XEmacs 21.0
298
299 When adding and deleting files from a lisp directory the
300 auto-autoloads.el (global symbols) and custom-load.el (Customization
301 groups) must be kept in synch. Assuming one is manipulating a
302 directory called `lisp-utils', the command to rebuild the
303 auto-autoloads.el file is:
304
305 xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils
306
307 The command to rebuild the custom-load.el file is:
308
309 xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils
310
311 To bytecompile both of these files the command is:
312
313 xemacs -vanilla -batch -f batch-byte-compile \
314 lisp-utils/auto-autoloads.el lisp-utils/custom-load.el
315
316 ** Building XEmacs and XEmacs packages from scratch
317 ===================================================
318
319 To build everything completely from scratch (not a high priority as a
320 design goal), the following procedure should work. (I don't recommend
321 building this way).
322
323 *** Phase 1 -- Get a minimal XEmacs binary with mule to build the package
324 lisp with.
325
326 **** Grab a mule-base tarball and install it into a newly created package
327 directory.
328
329 **** Configure XEmacs with mule and a package-path including the
330 directory created above.
331
332 **** Do a `make dist' to build an XEmacs binary.
333
334 *** Phase 2 -- Build and install the package lisp.
335
336 **** Modify XEmacs.rules for local paths and the XEmacs binary created in
337 Phase 1.
338
339 **** Do a make from the top level package lisp source directory.[1]
340
341 **** Do `make bindist's on all the packages you wish to install and
342 remove the byproduct .tar.gz's.
343
344 *** Phase 3 -- If necessary, redump XEmacs
345 with the packages that require dump-time support and install it.
346
347 **** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and
348 rebuild XEmacs.
349
350 - or -
351
352 **** rm lib-src/DOC src/xemacs; make
353
354 **** Install or run in-place.
355
356 Note that this is in essence what `make all-elc' has always done.
357
358
359 * Improving XEmacs
270 ================= 360 =================
271 361
272 ** Creating patches for submission 362 ** Creating patches for submission
273 ================================== 363 ==================================
274 364
384 The exceptions are administrative. If you have commit authorization, 474 The exceptions are administrative. If you have commit authorization,
385 then post a short COMMIT notice to xemacs-patches when you commit to 475 then post a short COMMIT notice to xemacs-patches when you commit to
386 CVS. Members of the Review Board will also post short notices of 476 CVS. Members of the Review Board will also post short notices of
387 administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches. 477 administrative action (APPROVE, VETO, QUERY, etc) to xemacs-patches.
388 478
389 * Packages 479 ** Large contributions
390 ==================================== 480 ======================
391 481
392 [Note: these instructions have been partly updated, but not carefully 482 Perhaps you have a whole new mode, or a major synchronization with
393 reviewed in some time. Caveat tester.] 483 upstream for a neglected package, or a synchronization with GNU Emacs
394 484 you would like to contribute. We welcome such contributions, but they
395 Starting with XEmacs 21.1, much of the functionality of XEmacs has 485 are likely to be relatively controversial, generate more comments and
396 been unbundled into "the packages." For more information about the 486 requests for revision, and take longer to integrate. Please be
397 package system, see the Info nodes on Packages (in the XEmacs User 487 patient with the process.
398 Manual) and on Packaging (in the Lisp Reference). 488
399 489 *** Updates to existing packages
400 When bootstrapping XEmacs, you may need to manually install some 490 --------------------------------
401 packages (at least xemacs-base and efs). These packages are available 491
402 by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/. 492 If a package has gotten a bit out of date, or even started to bitrot,
403 493 we welcome patches to synchronize it with upstream/GNU Emacs versions.
404 ** Binary package installation 494 Most packages end up varying somewhat from their GNU origins. See
405 ================================================ 495 "Syncing with GNU Emacs" for hints. Note that if you do a reasonably
406 496 large amount of syncing with GNU Emacs, you should log this in the
407 Prerequisite: XEmacs 21.0-b1. 497 file itself as well as in the ChangeLog.
408 498
409 Binary packages are complete entities that can be untarred at the top 499 If the package is important to you, please consider becoming the
410 level of an XEmacs package hierarchy and work at runtime. To install files 500 maintainer. (See "New packages", below.)
411 in this directory, run the command `M-x package-admin-add-binary-package' 501
412 and fill in appropriate values to the prompts. 502 *** New packages
413 503 ----------------
414 ** Manual procedures for package management 504
415 =========================================== 505 If you have a new mode or other large addition that does not require
416 506 changes to the core, please consider submitting it as a package, and
417 Prerequisite: XEmacs 21.0 507 becoming the maintainer. You get direct commit privileges to the
418 508 repository for your package, "approval" privileges for your own
419 When adding and deleting files from a lisp directory the 509 patches as well as third party patches to your package, and some
420 auto-autoloads.el (global symbols) and custom-load.el (Customization 510 degree of veto power over patches you don't like. In return, you are
421 groups) must be kept in synch. Assuming one is manipulating a 511 expected to maintain friendly liaison with the upstream developer (if
422 directory called `lisp-utils', the command to rebuild the 512 you aren't the upstream developer), keep watch on the XEmacs Patches
423 auto-autoloads.el file is: 513 list for relevant patches, and be available by email to other
424 514 developers for discussion of changes that impact your package. It's
425 xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils 515 also a pretty standard route to the "core" development group, where we
426 516 have plenty of extra work waiting for volunteers.
427 The command to rebuild the custom-load.el file is: 517
428 518 You don't have to become the maintainer, but it virtually ensures
429 xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils 519 rapid acceptance of the package.
430 520
431 To bytecompile both of these files the command is: 521 For help in creating new packages, see the (rather sparse) discussions
432 522 in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs
433 xemacs -vanilla -batch -f batch-byte-compile \ 523 Package Release Engineer (Ville Skyttä <ville.skytta@xemacs.org> is
434 lisp-utils/auto-autoloads.el lisp-utils/custom-load.el 524 currently serving with Peter Brown <rendhalver@users.sourceforge.net>
435 525 assisting; Steve Youngs <youngs@xemacs.org> and Stephen Turnbull
436 ** Building XEmacs and XEmacs packages from scratch 526 <stephen@xemacs.org> also can help) is the most likely source of advice.
437 =================================================== 527
438 528 *** Syncing with GNU Emacs
439 To build everything completely from scratch (not a high priority as a 529 --------------------------
440 design goal), the following procedure should work. (I don't recommend 530
441 building this way). 531 Syncing with GNU Emacs is an important activity. Although each
442 532 version has its advantages and areas of concentration, it is very
443 *** Phase 1 -- Get a minimal XEmacs binary with mule to build the package 533 desirable that common functionality share specifications and APIs.
444 lisp with. 534 When porting GNU code to XEmacs, the following points should be given
445 535 special attention:
446 **** Grab a mule-base tarball and install it into a newly created package 536
447 directory. 537 o Recent GNU Emacsen cannot be built without Mule, but XEmacs can.
448 538 Make sure your changes do not assume the presence of Mule.
449 **** Configure XEmacs with mule and a package-path including the 539
450 directory created above. 540 o GNU Emacs nomenclature often differs from that of XEmacs.
451 541 Sometimes syncing the names is desirable, other times not.
452 **** Do a `make dist' to build an XEmacs binary. 542
453 543 o GNU Emacs functionality often differs from that of XEmacs.
454 *** Phase 2 -- Build and install the package lisp. 544 Syncing functionality is often controversial.
455 545
456 **** Modify XEmacs.rules for local paths and the XEmacs binary created in 546 It is important that you let other developers know that
457 Phase 1. 547 synchronization has taken place, to what degree, and when. For this
458 548 purpose, we use comments of the form
459 **** Do a make from the top level package lisp source directory.[1] 549
460 550 /* Synched up with: FSF 21.3 by Stephen Turnbull */
461 **** Do `make bindist's on all the packages you wish to install and 551
462 remove the byproduct .tar.gz's. 552 in the source file itself, as the last element of the prefatory
463 553 material (copyright notice and commentary). Obviously the comment
464 *** Phase 3 -- If necessary, redump XEmacs 554 market needs to be changed to leading semicolons for Lisp, but
465 with the packages that require dump-time support and install it. 555 otherwise the format is the same.
466 556
467 **** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and 557 Of course you should note syncing as the purpose in the ChangeLog,
468 rebuild XEmacs. 558 too. But entries get buried deep in the ChangeLog file, and may even
469 559 get moved to a separate ChangeLog.OLD file for rarely synched files.
470 - or - 560
471 561 Rather than dates we use the version of GNU Emacs to sync to. If the
472 **** rm lib-src/DOC src/xemacs; make 562 synchronization is partial, add a new comment describing what has
473 563 actually been synched, leaving the description of the last full sync
474 **** Install or run in-place. 564 in place. At each full sync, remove all previous synchronization
475 565 comments.
476 Note that this is in essence what `make all-elc' has always done. 566
567 This applies to Lisp that we have broken out into packages, but
568 remains in the GNU Emacs core, as well to core Lisp in XEmacs.