Mercurial > hg > xemacs-beta
comparison etc/BETA @ 1250:f00ca2822f4e
[xemacs-hg @ 2003-02-02 23:50:31 by youngs]
2003-02-03 Steve Youngs <youngs@xemacs.org>
* BETA: Update. General tidy up and rewrite sections dealing with
packages and building from scratch.
author | youngs |
---|---|
date | Sun, 02 Feb 2003 23:50:31 +0000 |
parents | 911faaa82855 |
children | fa27ca2c798c |
comparison
equal
deleted
inserted
replaced
1249:472e97e6256a | 1250:f00ca2822f4e |
---|---|
3 * Introduction | 3 * Introduction |
4 ============== | 4 ============== |
5 | 5 |
6 You are running a potentially unstable version of XEmacs. Please do | 6 You are running a potentially unstable version of XEmacs. Please do |
7 not report problems with Beta XEmacs to comp.emacs.xemacs. Report | 7 not report problems with Beta XEmacs to comp.emacs.xemacs. Report |
8 them to xemacs-beta@xemacs.org. | 8 them to <xemacs-beta@xemacs.org>, preferably with |
9 'M-x report-xemacs-bug RET'. | |
9 | 10 |
10 ** Mailing Lists | 11 ** Mailing Lists |
11 ================ | 12 ================ |
12 | 13 |
13 *** XEmacs Beta Mailing List | 14 *** XEmacs Beta Mailing List |
80 `unsubscribe' (without the quotes) as the BODY of the message. | 81 `unsubscribe' (without the quotes) as the BODY of the message. |
81 | 82 |
82 ** Beta Release Schedule | 83 ** Beta Release Schedule |
83 ======================== | 84 ======================== |
84 | 85 |
85 Betas are now released rather sporadically. We would like to achieve | 86 We would like to achieve a weekly or fortnightly release cycle (you |
86 a weekly release schedule, but personnel availability does not | 87 know the Open Source model: release early, release often), and in a |
87 permit. For access to the most recent code, use CVS (see | 88 perfect world that would indeed be the case. There are at least three |
88 http://www.xemacs.org/Develop/cvsaccess.html for more information). | 89 things that often get in the way of that goal: 1) The Release Manager |
89 If you have need for FTP access, please let us know. It will make it | 90 has a life outside of XEmacs (hard to believe, I know, but true), |
90 more likely that we release betas more often. | 91 2) we like to make releases that will build (at least on the Release |
92 Manager's box), and 3) Murphy likes to throw a spanner in the works | |
93 right when you least expect it (Murphy's Law: Whatever can go wrong, | |
94 will go wrong). | |
95 | |
96 If you'd like to keep right up to date and ride the bleeding edge, use | |
97 CVS (see <http://www.xemacs.org/Develop/cvsaccess.html>). If you | |
98 can't use CVS for some reason and must use FTP, please let us know. | |
99 it will make it more likely that we release betas more often. | |
100 | |
91 | 101 |
92 ** Reporting Problems | 102 ** Reporting Problems |
93 ===================== | 103 ===================== |
94 | 104 |
95 The best way to get problems fixed in XEmacs is to submit good problem | 105 The best way to get problems fixed in XEmacs is to submit good problem |
96 reports. Since this is beta software, problems are certain to exist. | 106 reports, 'M-x report-xemacs-bug RET' will help you do this (assuming |
97 Please read through all of part II of the XEmacs FAQ for an overview | 107 you have a usable XEmacs). Since this is beta software, problems are |
98 of problem reporting. Other items which are most important are: | 108 certain to exist. Please read through all of part II of the XEmacs |
109 FAQ for an overview of problem reporting. Other items which are most | |
110 important are: | |
99 | 111 |
100 1. Do not submit C stack backtraces without line numbers. Since it | 112 1. Do not submit C stack backtraces without line numbers. Since it |
101 is possible to compile optimized with debug information with GCC | 113 is possible to compile optimized with debug information with GCC |
102 it is never a good idea to compile XEmacs without the -g flag. | 114 it is never a good idea to compile XEmacs without the -g flag. |
103 XEmacs runs on a variety of platforms, and often it is not | 115 XEmacs runs on a variety of platforms, and often it is not |
104 possible to recreate problems which afflict a specific platform. | 116 possible to recreate problems which afflict a specific platform. |
105 The line numbers in the C stack backtrace help isolate where the | 117 The line numbers in the C stack backtrace help isolate where the |
106 problem is actually occurring. | 118 problem is actually occurring. |
107 | 119 |
108 2. Attempt to recreate the problem starting with an invocation of | 120 2. Attempt to recreate the problem starting with an invocation of |
109 XEmacs with `xemacs -q -no-site-file -no-autoloads'. Quite often, | 121 XEmacs with `xemacs -vanilla -no-autoloads'. Quite often, |
110 problems are due to package interdependencies, and the like. An | 122 problems are due to package interdependencies, and the like. |
111 actual bug in XEmacs should be reproducible in a default | 123 An actual bug in XEmacs should be reproducible in a default |
112 configuration without loading any special packages (or the one or | 124 configuration without loading any special packages (or the one |
113 two specific packages that cause the bug to appear). If you have | 125 or two specific packages that cause the bug to appear). If you |
114 trouble getting anything to work at all with the above invocation, | 126 have trouble getting anything to work at all with the above |
115 use `xemacs -q -no-site-file' instead. If you need to load your | 127 invocation, use `xemacs -vanilla' instead. If you need to load |
116 user init file or the site file to get the problem to occur, then | 128 your user init file or the site file to get the problem to |
117 it has something to do with them, and you should try to isolate | 129 occur, then it has something to do with them, and you should |
118 the issue in those files. | 130 try to isolate the issue in those files. |
119 | 131 |
120 3. A picture can be worth a thousand words. When reporting an | 132 3. A picture can be worth a thousand words. When reporting an |
121 unusual display, it is generally best to capture the problem in a | 133 unusual display, it is generally best to capture the problem in a |
122 screen dump and include that with the problem report. The easiest | 134 screen dump and include that with the problem report. The easiest |
123 way to get a screen dump is to use the xv program and its grab | 135 way to get a screen dump is to use the xv program and its grab |
137 ======================= | 149 ======================= |
138 | 150 |
139 ** Building an XEmacs from patches | 151 ** Building an XEmacs from patches |
140 ================================== | 152 ================================== |
141 | 153 |
142 All beta releases of XEmacs are included with patches from the | 154 All beta releases of XEmacs are included with patches from the previous |
143 previous version in an attempt to keep bandwidth requirements down. | 155 version in an attempt to keep bandwidth requirements down. Patches |
144 Patches should be applied with the GNU patch program in something like | 156 should be applied with the GNU patch program in something like the |
145 the following. Let's say you're upgrading XEmacs 20.15-beta10 to | 157 following. Let's say you're upgrading XEmacs 21.5-beta9 to XEmacs |
146 XEmacs 20.15-beta11 and you have a full unmodified XEmacs 20.15-beta10 | 158 21.5-beta10 and you have a full unmodified XEmacs 21.5-beta9 source |
147 source tree to work with. Cd to the top level directory and issue the | 159 tree to work with. Change to the top level directory and issue the |
148 shell command: | 160 shell command: |
149 | 161 |
150 $ gunzip -c /tmp/xemacs-20.15-b10-20.15-b11.patch.gz | patch -p1 | 162 $ gunzip -c /tmp/xemacs-21.5.9-21.5.10.patch.gz | patch -p1 |
151 | 163 |
152 After patching, check to see that no patches were missed by doing | 164 After patching, check to see that no patches were missed by doing |
153 $ find . -name \*.rej -print | 165 $ find . -name \*.rej -print |
154 | 166 |
155 Any rejections should be treated as serious problems to be resolved | 167 Any rejections should be treated as serious problems to be resolved |
156 before building XEmacs. | 168 before building XEmacs. |
157 | 169 |
158 After seeing that there were no rejections, issue the commands | 170 After seeing that there were no rejections, issue the commands |
159 | 171 |
160 $ ./config.status --recheck | 172 $ ./config.status --recheck |
161 $ make beta | 173 $ make beta > ./beta.err 2>&1 |
162 | 174 $ make check > ./xemacs-make-check.err 2>&1 |
163 and go play minesweep for a while on an older XEmacs while the binary | 175 |
164 is rebuilt. | 176 Redirect the output from make to those files because you'll use them |
177 later when you send off a build report with 'M-x build-report RET' | |
165 | 178 |
166 ** Building XEmacs from a full distribution | 179 ** Building XEmacs from a full distribution |
167 =========================================== | 180 =========================================== |
168 | 181 |
169 Locate a convenient place where you have at least 100MB of free space | 182 Locate a convenient place where you have at least 100MB of free space |
170 and issue the command | 183 and issue the command |
171 | 184 |
172 $ gunzip -c /tmp/xemacs-20.15-b11.tar.gz | tar xvf - | 185 $ gunzip -c /tmp/xemacs-21.5.10.tar.gz | tar xvf - |
173 | 186 |
174 (or simply `tar zxvf /tmp/xemacs-20.15-b11.tar.gz' if you use GNU tar). | 187 (or simply `tar zxvf /tmp/xemacs-21.5.10.tar.gz' if you use GNU tar). |
175 | 188 |
176 cd to the top level directory and issue an appropriate configure | 189 cd to the top level directory and issue an appropriate configure |
177 command. One maintainer uses the following at the time of this | 190 command. One maintainer uses the following at the time of this |
178 writing: | 191 writing: |
179 | 192 |
180 ./configure \ | 193 ./configure \ |
181 --cflags="-mpentium -march=pentium -O6 -g -fno-peep-spills" \ | 194 --extra-verbose \ |
182 --error-checking=all --debug=yes \ | 195 --site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1 \ |
183 --with-scrollbars=athena3d --with-dialogs=athena3d \ | 196 --dynamic=yes --with-gtk=no --with-gnome=no --with-toolbars \ |
184 --with-mule --with-xfs --with-xim=xlib | 197 --with-wmcommand --with-athena=next --with-menubars=lucid \ |
185 | 198 --with-scrollbars=athena --with-dialogs=athena --with-widgets=athena \ |
186 Part of the configure output is a summary that looks something like | 199 --with-gif --with-sound=native,noesd --with-site-lisp=no \ |
187 the following. (In XEmacs 21.1 and later, this summary is also | 200 --with-site-modules --pdump --with-mule --with-xfs --debug \ |
188 available as the file Installation in the top directory of your build | 201 --error-checking=all --memory-usage-stats --use-kkcc \ |
189 tree, and via the command M-x describe-installation.) | 202 --with-clash-detection |
190 | 203 |
191 uname -a: Linux altair.xemacs.org 2.0.32 #2 Sun Nov 16 18:52:14 PST 1997 i586 | 204 Part of the configure output is a summary that looks something |
192 | 205 like the following. (this summary is also available as the file |
193 ./configure '--cflags=-mpentium -march=pentium -O6 -g -fno-peep-spills' '--error-checking=all' '--debug=yes' '--with-scrollbars=athena3d' '--with-dialogs=athena3d' '--with-mule' '--with-xfs' '--with-xim=xlib' | 206 'Installation' in the top directory of your build tree, and via |
194 | 207 the command 'M-x describe-installation RET'). |
195 | 208 |
196 XEmacs 21.0-b34 "Oberhasli-pre2" configured for `i586-pc-linux'. | 209 uname -a: Linux eicq 2.4.20 #1 Wed Dec 18 02:14:29 EST 2002 i586 unknown |
197 | 210 |
198 Where should the build process find the source code? /home/xemacs/xemacs-20.0 | 211 ./configure '--extra-verbose' '--site-prefixes=/usr/local/pgsql:/usr/local/BerkeleyDB.4.1' '--dynamic=yes' '--with-gtk=no' '--with-gnome=no' '--with-toolbars' '--with-wmcommand' '--with-athena=next' '--with-menubars=lucid' '--with-scrollbars=athena' '--with-dialogs=athena' '--with-widgets=athena' '--with-gif' '--with-sound=native,noesd' '--with-site-lisp=no' '--with-site-modules' '--pdump' '--with-mule' '--with-xfs' '--debug' '--error-checking=all' '--memory-usage-stats' '--use-kkcc' '--with-clash-detection' |
199 What installation prefix should install use? /usr/local | 212 |
200 What operating system and machine description files should XEmacs use? | 213 |
201 `s/linux.h' and `m/intel386.h' | 214 XEmacs 21.5-b10 "burdock" (+CVS-20030131) configured for `i586-pc-linux'. |
202 What compiler should XEmacs be built with? gcc -mpentium -march=pentium -O6 -g -fno-peep-spills | 215 |
203 Should XEmacs use the GNU version of malloc? yes | 216 |
204 (Using Doug Lea's new malloc from the GNU C Library.) | 217 Compilation / Installation: |
205 Should XEmacs use the relocating allocator for buffers? yes | 218 Source code location: /usr/local/src/xemacs |
206 What window system should XEmacs use? x11 | 219 Installation prefix: /usr/local |
207 Where do we find X Windows header files? /usr/X11/include | 220 Additional prefixes: /usr/local/pgsql /usr/local/BerkeleyDB.4.1 |
208 Where do we find X Windows libraries? /usr/X11/lib | 221 Operating system description file: `s/linux.h' |
209 Compiling in support for XAUTH. | 222 Machine description file: `m/intel386.h' |
210 Compiling in support for XPM images. | 223 Compiler: gcc -Wall -Wno-switch -Winline -Wmissing-prototypes -Wsign-compare -Wundef -Wstrict-prototypes -Wshadow -Wmissing-declarations -O1 -ggdb3 -Wall -Wchar-subscripts -Wunused -Wundef -Wshadow -Wsign-compare -Wmissing-declarations -march=k6 |
211 Compiling in support for X-Face message headers. | 224 Relocating allocator for buffers: no |
212 Compiling in support for GIF image conversion. | 225 GNU version of malloc: yes |
213 Compiling in support for JPEG image conversion. | 226 - Using Doug Lea's new malloc from the GNU C Library. |
214 Compiling in support for PNG image conversion. | 227 |
215 Compiling in support for TIFF image conversion. | 228 Window System: |
216 Compiling in native sound support. | 229 Compiling in support for the X window system: |
217 Compiling in support for Berkeley DB. | 230 - X Windows headers location: /usr/X11/include |
218 Compiling in support for GNU DBM. | 231 - X Windows libraries location: /usr/X11/lib |
232 - Handling WM_COMMAND properly. | |
233 Compiling in support for the Athena widget set: | |
234 - Athena headers location: X11/neXtaw | |
235 - Athena library to link: neXtaw | |
236 Using Lucid menubars. | |
237 Using Athena scrollbars. | |
238 Using Athena dialog boxes. | |
239 Using Athena native widgets. | |
240 | |
241 TTY: | |
219 Compiling in support for ncurses. | 242 Compiling in support for ncurses. |
220 Compiling in support for GPM (General Purpose Mouse). | 243 Compiling in support for GPM (General Purpose Mouse). |
221 Compiling in Mule (multi-lingual) support. | 244 |
222 Compiling in XIM (X11R5+ I18N input method) support. | 245 Images: |
223 Using raw Xlib to provide XIM support. | 246 Compiling in support for GIF images (builtin). |
224 Using XFontSet to provide bilingual menubar. | 247 Compiling in support for XPM images. |
225 Compiling in support for Canna on Mule. | 248 Compiling in support for PNG images. |
226 Compiling in support for the WNN input method on Mule. | 249 Compiling in support for JPEG images. |
227 Using WNN version 6. | 250 Compiling in support for TIFF images. |
228 Compiling in support for OffiX. | 251 Compiling in support for X-Face message headers. |
229 Compiling in support for proper session-management. | 252 |
230 Using Lucid menubars. | 253 Sound: |
231 Using Athena-3d scrollbars. | 254 Compiling in support for sound (native). |
232 Using Athena-3d dialog boxes. | 255 |
233 Compiling in DLL support. | 256 Databases: |
234 movemail will use "dot-locking" for locking mail spool files. | 257 Compiling in support for Berkeley database. |
235 Using Lisp_Objects with minimal tagbits. | 258 Compiling in support for PostgreSQL. |
236 Compiling in extra code for debugging. | 259 - Using PostgreSQL header file: libpq-fe.h |
237 Compiling in code for checking XEmacs memory usage. | 260 - Using PostgreSQL V7 bindings. |
261 | |
262 Internationalization: | |
263 Compiling in support for Mule (multi-lingual Emacs). | |
264 Compiling in support for XIM (X11R5+ I18N input method). | |
265 - Using raw Xlib to provide XIM support. | |
266 - Using XFontSet to provide bilingual menubar. | |
267 | |
268 Mail: | |
269 Compiling in support for "dot-locking" mail spool file locking method. | |
270 | |
271 Other Features: | |
272 Inhibiting IPv6 canonicalization at startup. | |
273 Compiling in support for dynamic shared object modules. | |
274 Using the new GC algorithms. | |
275 Using the new portable dumper. | |
276 Compiling in support for extra debugging code. | |
238 WARNING: --------------------------------------------------------- | 277 WARNING: --------------------------------------------------------- |
239 WARNING: Compiling in support for runtime error checking. | 278 WARNING: Compiling in support for runtime error checking. |
240 WARNING: XEmacs will run noticeably more slowly as a result. | 279 WARNING: XEmacs will run noticeably more slowly as a result. |
241 WARNING: Error checking is on by default for XEmacs beta releases. | 280 WARNING: Error checking is on by default for XEmacs beta releases. |
242 WARNING: --------------------------------------------------------- | 281 WARNING: --------------------------------------------------------- |
243 | 282 |
244 | 283 |
245 | 284 |
246 Then type `make' and you should have a working XEmacs. | 285 Then... |
286 | |
287 $ make > ./beta.err 2>&1 | |
288 $ make check > ./xemacs-make-check.err 2>&1 | |
289 | |
290 ...and you should have a working XEmacs. | |
247 | 291 |
248 After you have verified that you have a functional editor, fire up | 292 After you have verified that you have a functional editor, fire up |
249 your favorite mail program and send a build report to | 293 your favorite mail program and send a build report to |
250 xemacs-build-reports@xemacs.org. | 294 <xemacs-buildreports@xemacs.org>. |
251 | 295 |
252 Preferrably this is done from XEmacs, following these simple steps: | 296 Preferably this is best done from XEmacs, following these simple steps: |
253 | 297 |
254 M-x customize-group RET build-report RET | 298 M-x customize-group RET build-report RET |
255 M-x build-report RET | 299 M-x build-report RET |
256 | 300 |
257 See also | 301 See also |
258 http://www.xemacs.org/Releases/Public-21.2/tester.html#reporting | 302 <http://www.au.xemacs.org/Releases/Public-21.2/tester.html#reporting> |
259 | 303 |
260 If you create the report manually by other means, here is what the | 304 If you create the report manually by other means, here is what the |
261 build report should include: | 305 build report should include: |
262 | 306 |
263 1. Your hardware configuration (OS version, etc.) | 307 1. Your hardware configuration (OS version, etc.) |
290 package system, see the Info nodes on Packages (in the XEmacs User | 334 package system, see the Info nodes on Packages (in the XEmacs User |
291 Manual) and on Packaging (in the Lisp Reference). | 335 Manual) and on Packaging (in the Lisp Reference). |
292 | 336 |
293 When bootstrapping XEmacs, you may need to manually install some | 337 When bootstrapping XEmacs, you may need to manually install some |
294 packages (at least xemacs-base and efs). These packages are available | 338 packages (at least xemacs-base and efs). These packages are available |
295 by FTP at ftp://ftp.xemacs.org/pub/xemacs/packages/. | 339 by FTP at <ftp://ftp.xemacs.org/pub/xemacs/packages/>. |
296 | 340 |
297 ** Binary package installation | 341 ** Binary package installation |
298 ============================== | 342 ============================== |
299 | 343 |
300 Prerequisite: XEmacs 21.0-b1. | 344 Prerequisite: XEmacs 21.0-b1. |
313 auto-autoloads.el (global symbols) and custom-load.el (Customization | 357 auto-autoloads.el (global symbols) and custom-load.el (Customization |
314 groups) must be kept in synch. Assuming one is manipulating a | 358 groups) must be kept in synch. Assuming one is manipulating a |
315 directory called `lisp-utils', the command to rebuild the | 359 directory called `lisp-utils', the command to rebuild the |
316 auto-autoloads.el file is: | 360 auto-autoloads.el file is: |
317 | 361 |
318 xemacs -vanilla -batch -l autoload -f batch-update-directory lisp-utils | 362 xemacs -vanilla -batch \ |
363 -eval \("setq autoload-package-name \"lisp-utils\""\) \ | |
364 -f batch-update-directory lisp-utils | |
319 | 365 |
320 The command to rebuild the custom-load.el file is: | 366 The command to rebuild the custom-load.el file is: |
321 | 367 |
322 xemacs -vanilla -batch -l cus-dep -f Custom-make-dependencies lisp-utils | 368 xemacs -vanilla -batch -f Custom-make-dependencies lisp-utils |
323 | 369 |
324 To bytecompile both of these files the command is: | 370 To byte-compile both of these files the command is: |
325 | 371 |
326 xemacs -vanilla -batch -f batch-byte-compile \ | 372 xemacs -vanilla -batch -f batch-byte-compile \ |
327 lisp-utils/auto-autoloads.el lisp-utils/custom-load.el | 373 lisp-utils/auto-autoloads.el lisp-utils/custom-load.el |
328 | 374 |
375 Of course, being a beta tester, you'd be aware that it is much easier | |
376 to manage your XEmacs packages with PUI. | |
377 | |
329 ** Building XEmacs and XEmacs packages from scratch | 378 ** Building XEmacs and XEmacs packages from scratch |
330 =================================================== | 379 =================================================== |
331 | 380 |
332 To build everything completely from scratch (not a high priority as a | 381 To build everything completely from scratch isn't hard, just time |
333 design goal), the following procedure should work. (I don't recommend | 382 consuming. |
334 building this way). | 383 |
335 | 384 *** Step 1 - grab the sources (core and packages) |
336 *** Phase 1 -- Get a minimal XEmacs binary with mule to build the package | 385 |
337 lisp with. | 386 $ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs login |
338 | 387 [password: "cvs" (sans quotes)] |
339 **** Grab a mule-base tarball and install it into a newly created package | 388 |
340 directory. | 389 $ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvc co -d xemacs-21.5 xemacs |
341 | 390 |
342 **** Configure XEmacs with mule and a package-path including the | 391 $ cvs -d :pserver:cvs@cvs.xemacs.org:/pack/xemacscvs co packages |
343 directory created above. | 392 |
344 | 393 *** Step 2 - build XEmacs |
345 **** Do a `make dist' to build an XEmacs binary. | 394 |
346 | 395 $ cd xemacs-21.5 |
347 *** Phase 2 -- Build and install the package lisp. | 396 $ ./configure [options...] |
348 | 397 $ make > ./beta.err 2>&1 |
349 **** Modify XEmacs.rules for local paths and the XEmacs binary created in | 398 $ make check > ./xemacs-make-check.err 2>&1 |
350 Phase 1. | 399 |
351 | 400 And optionally: |
352 **** Do a make from the top level package lisp source directory.[1] | 401 |
353 | 402 $ make install > ./xemacs-make-install.err 2>&1 |
354 **** Do `make bindist's on all the packages you wish to install and | 403 |
355 remove the byproduct .tar.gz's. | 404 *** Step 3 - build and install the packages |
356 | 405 |
357 *** Phase 3 -- If necessary, redump XEmacs | 406 $ cd packages |
358 with the packages that require dump-time support and install it. | 407 $ cp Local.rules.template Local.rules |
359 | 408 |
360 **** Reconfigure without Mule if you don't wish a Mule-ish XEmacs, and | 409 Then edit Local.rules to suit your needs/environment |
361 rebuild XEmacs. | 410 see: (Info-goto-node "(xemacs)Local.rules file") for details about |
362 | 411 this file. |
363 - or - | 412 |
364 | 413 And then: |
365 **** rm lib-src/DOC src/xemacs; make | 414 |
366 | 415 $ make install |
367 **** Install or run in-place. | |
368 | |
369 Note that this is in essence what `make all-elc' has always done. | |
370 | |
371 | 416 |
372 * Improving XEmacs | 417 * Improving XEmacs |
373 ================= | 418 ================= |
374 | 419 |
375 ** Creating patches for submission | 420 ** Creating patches for submission |
380 patch will be reviewed by the patches review board, and will be | 425 patch will be reviewed by the patches review board, and will be |
381 acknowledged and added to the distribution, or rejected with an | 426 acknowledged and added to the distribution, or rejected with an |
382 explanation. Progress of the patch is tracked on the XEmacs Patches | 427 explanation. Progress of the patch is tracked on the XEmacs Patches |
383 mailing list, which is open subscription. (If a patch is simply | 428 mailing list, which is open subscription. (If a patch is simply |
384 intended to facilitate discussion, "I mean something that works like | 429 intended to facilitate discussion, "I mean something that works like |
385 this but this is really rough", a CC to XEmacs Patches is optional, | 430 this but this is really rough", a Cc to XEmacs Patches is optional, |
386 but doesn't hurt.) | 431 but doesn't hurt.) |
387 | 432 |
388 Patches to XEmacs Lisp packages should be sent to the maintainer of | 433 Patches to XEmacs Lisp packages should be sent to the maintainer of |
389 the package. If the maintainer is listed as `XEmacs Development Team' | 434 the package. If the maintainer is listed as `XEmacs Development Team' |
390 patches should be sent to <xemacs-patches@xemacs.org>. | 435 patches should be sent to <xemacs-patches@xemacs.org>. |
430 | 475 |
431 Patches should be as single-minded as possible. Mammoth patches can | 476 Patches should be as single-minded as possible. Mammoth patches can |
432 be very difficult to place into the right slot. They are much easier | 477 be very difficult to place into the right slot. They are much easier |
433 to deal with when broken down into functional or conceptual chunks. | 478 to deal with when broken down into functional or conceptual chunks. |
434 The patches submitted by Kyle Jones and Hrvoje Niksic are stellar | 479 The patches submitted by Kyle Jones and Hrvoje Niksic are stellar |
435 examples of how to Do The Right Thing. | 480 examples of how to "Do The Right Thing". |
436 | 481 |
437 Each patch should be accompanied by an update to the appropriate | 482 Each patch should be accompanied by an update to the appropriate |
438 ChangeLog file. Guidelines for writing ChangeLog entries is governed | 483 ChangeLog file. Guidelines for writing ChangeLog entries is governed |
439 by the GNU coding standards. Please see | 484 by the GNU coding standards. Please see |
440 http://www.gnu.org/prep/standards_toc.html [Change Logs section] | 485 <http://www.gnu.org/prep/standards_toc.html> [Change Logs section] |
441 for details. | 486 for details. |
442 | 487 |
443 Do not submit context diffs (either -c or -u) of ChangeLogs. Because | 488 Do not submit context diffs (either -c or -u) of ChangeLogs. Because |
444 of the "stack" nature of ChangeLogs (new entries are always pushed on | 489 of the "stack" nature of ChangeLogs (new entries are always pushed on |
445 the top), context diffs will fail to apply more often than they | 490 the top), context diffs will fail to apply more often than they |
446 succeed. Simply cutting and pasting the entry from an Emacs buffer to | 491 succeed. Simply cutting and pasting the entry from an Emacs buffer to |
447 the mail buffer (beware of tab expansion!) is probably easiest. The | 492 the mail buffer (beware of tab expansion!) is probably easiest. The |
448 Patcher library also will set up your ChangeLogs for you, and copy | 493 Patcher library also will set up your ChangeLogs for you, and copy |
449 them to the mail. Contextless unified diffs (-U 0) are also | 494 them to the mail. Context-less unified diffs (-U 0) are also |
450 acceptable but perhaps more trouble than they are worth. | 495 acceptable. |
451 | 496 |
452 *** Patch discussion etiquette | 497 *** Patch discussion etiquette |
453 ------------------------------- | 498 ------------------------------- |
454 | 499 |
455 If you intend a patch for _application_ to the sources as is, _always_ | 500 If you intend a patch for _application_ to the sources as is, _always_ |
456 post it to xemacs-patches, even if there are minor points you would | 501 post it to xemacs-patches, even if there are minor points you would |
457 like to have discussed by others. Not doing so will resulting in | 502 like to have discussed by others. Not doing so will resulting in |
458 patches getting "lost". If you expect that the patch will not be | 503 patches getting "lost". If you expect that the patch will not be |
459 acceptable, but are using it to stimulate discussion, then don't post | 504 acceptable, but are using it to stimulate discussion, then don't post |
460 to xemacs-patches. Intermediate cases are up to your judgement; | 505 to xemacs-patches. Intermediate cases are up to your judgment; |
461 unless you're sure you'll follow up with a "real" patch, better to err | 506 unless you're sure you'll follow up with a "real" patch, better to err |
462 on the side of posting to xemacs-patches. | 507 on the side of posting to xemacs-patches. |
463 | 508 |
464 Discussion of the _content_ of the patch (ie responses to reviewer | 509 Discussion of the _content_ of the patch (ie responses to reviewer |
465 comments beyond "that's right, ok, I'll do it your way") should _always_ | 510 comments beyond "that's right, ok, I'll do it your way") should _always_ |
534 You don't have to become the maintainer, but it virtually ensures | 579 You don't have to become the maintainer, but it virtually ensures |
535 rapid acceptance of the package. | 580 rapid acceptance of the package. |
536 | 581 |
537 For help in creating new packages, see the (rather sparse) discussions | 582 For help in creating new packages, see the (rather sparse) discussions |
538 in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs | 583 in the XEmacs User's Guide and the Lisp Reference Manual. The XEmacs |
539 Package Release Engineer (Ville Skyttä <ville.skytta@xemacs.org> is | 584 Package Release Engineer (Ville Skyttä <scop@xemacs.org> is |
540 currently serving with Peter Brown <rendhalver@users.sourceforge.net> | 585 currently serving with Peter Brown <rendhalver@xemacs.org> |
541 assisting; Steve Youngs <youngs@xemacs.org> and Stephen Turnbull | 586 assisting; Steve Youngs <youngs@xemacs.org> and Stephen Turnbull |
542 <stephen@xemacs.org> also can help) is the most likely source of advice. | 587 <stephen@xemacs.org> also can help) is the most likely source of advice. |
543 | 588 |
544 *** Syncing with GNU Emacs | 589 *** Syncing with GNU Emacs |
545 -------------------------- | 590 -------------------------- |