Mercurial > hg > xemacs-beta
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. |