X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/d558cce2164e78cae49f55a73c95fa4ce24df7c3..9646482db2f5429ce1bcbeaebeb85c9c1b9af87c:/README.developers diff --git a/README.developers b/README.developers index 9e73d01..9f5f724 100644 --- a/README.developers +++ b/README.developers @@ -14,6 +14,22 @@ Dependencies: libao-dev libmad0-dev libasound2-dev libdb4.3-dev \ libflac-dev + (Use the bzr from backports, the one in etch is obsolete.) + + * On FreeBSD you'll need at least these packages: + autotools + bash + flac + mad + boehm-gc + db43 + gmake + gsed + libao + libgcrypt + wget + vorbis-tools + * Please report unstated dependencies (here, README or debian/control). Building: @@ -65,10 +81,13 @@ APIs And Formats: The Server: * The server's command implementations must not block. Waiting for a little - disk IO is OK but blocking on long-lasting transactions or external - resources is not acceptable. Long-running subprocesses should use - subprograms (rather than forking but not execing) if reasonably possible; - see c_stats() for an example. c_reminder() is probably in the grey area. + disk IO is OK but blocking for extended periods on long-lasting + transactions or external resources is not acceptable; it will wedge the + server for all other users. + + Long-running subprocesses should use subprograms (rather than forking but + not execing) if reasonably possible; see c_stats() for an example. + c_reminder() is probably in the grey area. * The server process does not use threads and I would like to keep it that way. @@ -118,12 +137,10 @@ The Server: Web Interface: * The web interface does not use Javascript or Flash and I would like to - keep it that way. + keep it that way. Clever use of CSS is OK provided it works well on the + mainstream browsers. - * I know that the web template syntax is rather nasty. Perhaps it will be - improved in a future version. - - * Update templates/help.html for any changes you make. + * Update templates/help.tmpl for any changes you make. Disobedience: @@ -141,13 +158,24 @@ Disobedience: * Update doc/disobedience.1.in for any changes you make. +New Platforms: + + * It is not mandatory to have an entry in configure's 'case $host' section, + but may well be convenient. + + * Complete support for a new platform implies updating scripts/setup.in and + scripts/teardown.in as well as getting the software to build and work (but + this doesn't mean that patches that don't achieve this will be rejected). + Code And Patches: * Please follow the existing layout conventions. * Please try to write doc comments for new functions, types, etc using the same syntax as the existing ones. Doxygen can be used to turn this into - reference documentation. + reference documentation (see http://www.stack.nl/~dimitri/doxygen/) but + really the point is to have good inline code documentation, not the + Doxygen output as such. * More importantly, new configuration directives, protocol commands, interface features etc should be documented in the relevant places. @@ -159,11 +187,15 @@ Code And Patches: (But if your new feature only makes sense on a given platform then obviously its new dependencies don't need to be available elsewhere.) + * GCCisms such as typeof and C99isms such as mixed declarations and named + structure initializers are used; the configure script asks for -std=gnu99 + by default. Some supported platforms are still on GCC 4.0. + * Please submit patches either using 'diff -u', or by publishing a bzr branch somewhere I can get at it. * Please make it clear that your changes can be distributed under DisOrder's - licence (which is "GPL v2 or later"). + licence (which is "GPL v3 or later"). Local Variables: mode:text