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
+ − 353 options, to see if you can get a succesful build. When you are more
+ − 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
+ − 427 Depending on your build environment, consuder setting or not setting
+ − 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:
+ − 482 Compiling in support for GIF images (builtin).
+ − 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
+ − 736 function. Save the image as a GIF to keep bandwidth requirements
+ − 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