1$Id: HISTORY 293 2013-10-07 17:58:33Z jon13 $
2
3Version 1.9.4 (stable) 10/07/2013
4
5  - auerswald
6
7    - Fix several potential security issues in the NAS server reported
8      by Hamid Zamani <me@hamidx9.ir> to the NAS mailing list.
9
10      See http://radscan.com/pipermail/nas/2013-August/001270.html for
11      a description. In addition, CVE numbers have been defined for
12      these issues:
13
14      CVE-2013-4256
15      CVE-2013-4257
16      CVE-2013-4258
17
18    - Fixed some warnings while building some of the clients.
19
20    - narrow a possible race condition in
21      auvoxware.c:disableProcessFlow() reported by Paul Fox.
22
23  - steve_mcintyre
24
25    - add a format string to aulog.c (found using -Wformat-security
26      warnings)
27
28    - Don't preprocess man pages
29
30  - Add proper includes in server/os/connection.c to prevent some
31    compile warnings and a possible server coredump under the right
32    conditions on x86_64 Linux systems.
33
34
35Version 1.9.3 (stable) 05/13/2011
36
37  - overdue 1.9.3 maint release
38
39  - Older X11 systems used to define SharedLibX and friends if the
40    installed X11 system was built with shared lib support.  Newer
41    X11's use SharedLibX11 instead.  Same for
42    {Normal|Debug|Profile}LibX.  So check for these and set
43    appropriately in NetAudio.tmpl.
44
45    Shared lib installations should deal with libXau dependancies
46    correctly now.
47
48  - auerswald:
49
50    Added MacOS X aka Darwin to list of systems that need to
51    explicitely link libaudio.so against libXau. This enables building
52    of the shared library libaudio.so on MacOS X.
53
54    There is currently no NAS server for MacOS X.
55
56Version 1.9.2 (stable) 03/07/2009
57
58  - overdue 1.9.2 release.
59
60  - patch from Aleksey Cheusov:
61
62    "fix for "libpthread: Unlocking unlocked mutex" seen on NetBSD-4"
63
64    libaudio: OpenSvr.c: The server mutex was being unlocked, even
65    though it was never locked in the first place.
66
67  - Hugo Vanwoerkom reported thousands of diagnostics in his syslog:
68    "doSetup: elementRate == 0! Forcing to 5000".  Fix doSetup to only
69    warn about this when the debug level is above 10.
70
71  - auerswald:
72
73    document syslog usage
74
75    use syslog if running as a daemon, stderr otherwise
76
77    add syslog-usage-change to HISTORY file
78
79  - steve_mcintyre:
80
81    Minor man page fix ported from the Debian packages.
82
83    Multiple minor portability changes ported over from the Debian
84    packages. Cope with Hurd and GNU/KFreeBSD and other systems using
85    glibc
86
87  - apply patch from sourceforge user moinakg:
88
89    Libaudio is built with missing linker flags on OpenSolaris like
90    missing lXt, so it results in symbol not found errors at runtime.
91    I am including an Imakefile patch below that fixed this.
92
93Version 1.9.1 (stable) 11/10/2007
94
95  - per a request from Frank B�ttner (fedora maintainer), and in the
96    interest of providing the 'least surprise' for a user, nasd will
97    no longer initialize the mixer settings at start up, by default.
98    The default value of 'InitMixer' is now set to 'NO' in the
99    /etc/nasd/conf file.
100
101    See https://bugzilla.redhat.com/show_bug.cgi?id=247468 for the
102    bug report.
103
104  - based on patch from Frank B�ttner, nasd will create it's local
105    socket, and libaudio will look for it, in /var/run/nasd/audio*.
106    on Linux systems.  In reality, this should probably apply to all
107    'modern' unix systems (Solaris, *BSD, etc), but only Linux is
108    affected by this change now.
109
110    See https://bugzilla.redhat.com/show_bug.cgi?id=250453 for the bug
111    report.
112
113    The downside is that /var/run is not writable by normal users, so
114    if a user is trying to run the nasd server, s/he will get an error
115    about being unable to bind to the socket, and nasd will not start.
116    The workaround is to run nasd with the '-pn' (partial network)
117    option.  This way, nasd will bind to a local TCP transport and
118    start successfully even if the local socket transport cannot be
119    initialized (though you will still see the error when nasd
120    starts).
121
122    Additionally, users on the local host trying to play sounds
123    through a server started this way may need to set their
124    AUDIOSERVER environment variable to 'localhost:0' for example,
125    rather than the default ':0' in order to play sounds.
126
127    Of course if nasd is started as root at system startup time, then
128    this is not a problem.
129
130  Version 1.9a (devel) 10/27/2007
131
132  - this is a possible 1.9.1 (stable) release in a couple weeks.
133
134  - modify intervalProc to stop/start the timer around AuProcessData()
135    calls, rather than simply disable the signal handler.  This should
136    ensure that we never lose a timer signal, and seems to fix the
137    reported nasd hangs under newer linux kernels (2.6.21+).
138
139    The *BSD folks should make sure everything still works, it
140    should...
141
142  - rework signal handling in the voxware (OSS) server.  This also
143    allows DIA to block/unblock interrupts at he appropriate times
144    now.
145
146  - apply patch from Yarda that corrects a problem with blocking and
147    unblocking signals in IntervalProc() (auvoxware). [jet - this
148    patch was removed in the patches further up]
149
150  - remove mention of the auvoxware manpage from the filelist (for src
151    packaging), and remove the doc/html/auvoxware.1.html file.
152
153  - Apply patches from Erik Auerswald:
154
155    - the recent bug report from a fedora 7 user showed a small bug
156      with the input mixer code: If the input mixer cannot control the
157      input channels a wrong error message is printed. The attached
158      patch fixes this.
159
160    - remove auvoxware.man from the voxware Imakefile
161
162    - aupanel: add option -interval to synopsis section of man page
163
164    - add automatic querying of device attributes to aupanel with a
165      default query interval of 10 seconds
166
167    - make the nasd.conf man page formatting more consistent
168
169  - more cleanup and removal of old/useless files.
170
171  - remove useless nas.lsm file.
172
173  - sync up for copying repository to sourceforge.
174
175  - Patch from Stefan Huehner:
176
177    - remove SleepQueue functionality which is apparently not being
178      used anywhere.
179
180  - remove useless 'register' declarations
181
182  - convert Swap32Write for K&R to ANSI.  Also, define it's buffer
183    pointer as AuUint32 rather than 'long', which was wrong, but
184    worked accidentally.
185
186
187Version 1.9 (stable) 04/07/2007
188
189    - stable 1.9 release.  No code changes (other than RELEASE) since
190      1.8b devel release.
191
192    - In short: Fixes to several DOS attacks that could be carried out
193      aginst a nasd server, ANSI'fication of most of the server and
194      client code, and significant rework of input and output mixer
195      handling in the voxware (OSS) server.
196
197      Read below for more detail on the changes since the last stable
198      release (1.8).
199
200
201    Version 1.8b (devel) 03/25/2007
202
203    - 1.8b devel release.  Final 1.9 in about 2 weeks, barring any
204      catastrophes.
205
206    - fix a variety of problems that could result in a denial of
207      service by crashing the nasd server.  These attacks were
208      researched by Luigi Auriemma, who also provided a description of
209      the attacks and an exploit program, 'nasbugs'.
210
211      I have added his emailed report and the test attack code to the
212      nas repository in contrib/nasbugs if you are interested.  Thanks
213      to Luigi for finding these problems.  It sucked fixing them :)
214
215      Here is a list of the bugs tested as output by the nasbugs
216      program:
217
218      1 = accept_att_local buffer overflow through USL connection
219      2 = server termination through unexistent ID in AddResource
220      3 = bcopy crash caused by integer overflow in ProcAuWriteElement
221      4 = invalid memory pointer caused by big num_actions in ProcAuSetElements
222      5 = another invalid memory pointer caused by big num_actions in
223          ProcAuSetElements
224      6 = invalid memory pointer in compileInputs
225      7 = exploits bug 3 in read mode (requires something playing on
226          the server)
227      8 = NULL pointer caused by too much connections
228
229      Note on bug #2, X11 display servers should be vulnerable to a
230      DOS of this type as well (causing fatal 'client not in use'
231      errors in AddResource()).
232
233      Note on bug #8, the nasd server will not be able to accept
234      further client connections when the client table is full, until
235      the rejected clients disconnect their end of the socket and the
236      neccessary fd's are freed up.  It's better than coring though.
237
238    - set the default open modes for the output audio device to
239      write-only, and for the input device, use read-only (already the
240      default).
241
242      These can still be changed in the nasd.conf file, if needed.
243
244      Previously, the default was to open the output device
245      read-write, causing various issues with different
246      hardware/driver configurations.  There is no need to open this
247      device read-write anyway.
248
249    - apply patch from Paul Fox, correcting a typo in auvoxware.c
250
251    - apply patch from Erik Auerswald
252
253      "With the attached patch the output and input device can be
254      disabled by specifying an empty string as device name. Yes, when
255      using an empty string for both devices there will be a NAS
256      server that can neither play nor record anything."
257
258
259    Version 1.8a (devel) 11/27/2006
260
261    - Updated the Amd.h (machine definition file) with modern X11
262      (X11R6.8) contents so it can build with Qt and other X11
263      software that makes use of X11's Xmd.h header file.  Problem
264      reported by Bernard Leak.
265
266    - ANSI'fication of DeleteTypes (dia/resource.c) and NoopDDA.
267      Add proper header #includes where needed.
268
269    - patch from Petr Salinge (via Steve McIntyre) adding GNU/kFreeBSD
270      support.
271
272    - Patches from Paul Fox:
273
274      - allow the specification of a scaling factor to apply to the
275        output gain
276
277      - add a proper return value in auvoxware.c:initMixer()
278
279      - mondo indentification of server/*
280
281    - Applied patches from Stefan Huehner:
282
283      - marks some read-only string and function parameters as 'const
284        char*' instead of 'char *'. In addition an unused buffer
285        'errfile' from aulog.c was removed.  As the two release.h
286        files are generated the NetAudio.tmpl was modified to emit the
287        'const char *' declaration.
288
289      - part two of the _.*Const removal patch. Some more defines of
290        _.*Const were removed which have been missed by the last patch
291        and the interval usage of _.*Const has been simplified to just
292        use const.
293
294      - removes more unused defines and functions in server/ .
295        Additionally a k&r style function was convertd to ansi c in
296        swaprep.c
297
298      - converts more function declarations and their prototypes
299        without parameters from () to the (void) form
300
301      - attached patch changes all of the conditional i.e. _AuConst
302        definitions to only list const in the externally visible
303        header files. This is to preserve compatibility if someone
304        uses these definitions while using the libaudio library.
305
306        [JET] The use of AuConst is deprecated (and is probably not
307              being used by anyone anyway).
308
309      - removes the defined VENDOR_STRING and VENDOR_RELEASE from
310        server/include/site.h as they aren't used in the 3 files
311        including site.h.  Additionally the inclusions of site.h was
312        removed from server/dia/main.c as none of its defines is used
313        in main.c
314
315      - removes the 2 unused functions:
316
317        - server/dia/dispatch.c: void UpdateCurrentTime()
318        - server/dia/dixutils.c: TimeStamp ClientTimeToServerTime
319
320          and it changes one more occurence of () to (void).
321
322      - corrects some function declarations by changing () to (void)
323
324      - removes some unsued variables in lib/audio/nameaddr.c and
325        and unused function in server/os/utils.c
326
327      - removed some old (and stupid) debug code for AIX: in
328        server/os/utils.c there is some code to redirect error logging
329        from stderr to and file in tmp on AIXV3. As OpenDebug isn't
330        called anywhere this is broken when AIXV3 is
331        defined. Additionally this logfile is fixed in /tmp which
332        permissions 00777
333
334      - removed the declaration of FreeResource from the opaque.h
335        header file. All files which include opaque.h don't use this
336        function and this declaration is copied from resource.h
337
338      - corrects several prototypes in resource.[ch] to match the
339        actual function definitions inside resource.c
340
341      - patch that modifies the two users of ostruct.h to directly
342        include os.h (which includes misc.h) and removes the
343        osstruct.h line in config/filelist. If an additional "svn
344        remove server/include/osstruct.h" is used we can get rid of
345        osstruct.h completely.
346
347      - removes servermd.h. removes the inclusion of servermd.h in 3
348        files and its reference in 'config/filelist'.
349
350      - clean up several of the client programs. Mostly adding const
351        to parameter/variable declarations. Additionally an unsused
352        variable was removed and some prototype in audemo.c were
353        fixed.
354
355      - remove some unused variables
356
357      - remove server/include/miscstruct.h
358
359      - various include file cleanups - removing unused
360        variables/structures, etc left over from X11.
361
362      - removing old 'const' determination, correcting some proper
363        uses of const.  'const' is expected to be supported by your
364        compiler.
365
366      - ANSIfication of various NAS components.
367
368      - remove unused portion of X11 server components (fonts, GC's,
369        etc).
370
371    - applied patches from Erik Auerswald:
372
373      - Add patch adding a proper 'reset' action to contrib/rc/nasd.
374
375      - a patch that:
376
377        Adds support for a different mixer for the input device to the
378        voxware server. Without this patch the mixer device specified
379        in the input section of the config file is not used.
380
381        To use the same mixer for input and output just specify the
382        same device in the input- and output-section of the config
383        file. The empty string "" can be used to specify no mixer
384        device for the input- or output-section.  This is documented
385        in the nasd.conf man page.
386
387        The outputsection keyword is added to the nasd.conf man page.
388
389        fixed a bug in the support of two devices: If two devices are
390        used, and the sample rate of the input device can be changed,
391        the wrong sample size would be set by openDevice().
392
393        remove the unused "stereodevs" variable.
394
395        NOTE: Prior to this patch, the mixer device parameter for the
396              input section was completely ignored.  The default value
397              for this ignored parameter was "/dev/mixer1".
398
399              With this patch, this parameter is honored.  If your
400              configuration depends on the input mixer being the same
401              as the output mixer, you will need to edit your
402              /etc/nas/nasd.conf and set the mixer parameter in the
403              inputsection to '/dev/mixer', or to whatever mixer
404              device your outputsection is using.
405
406              If your system contains a /dev/mixer1 device (the
407              default input mixer device), nasd will now use it.  This
408              is a good thing. :)
409
410      - preserve configuration of input device in the voxware server
411        when ReleaseDevice is on, and no flow is active.
412
413      - document nasd '-V' option in the man page
414
415      - opening the mixer device should be allowed to fail according
416        to http://radscan.com/nas/nas-ml/msg01121.html. But right now
417        it may only fail on startup, not when re-opening the audio
418        device. The attached patch corrects this issue.
419
420      - adding an option to aupanel to specify the initially
421        controlled device.
422
423      - keeping gain and input mode changes consistent between voxware
424        server and mixer if possible.
425
426      - changing recording level controls of the voxware server to use
427        IGain or RecLev when available and select only the specified
428        recording source.
429
430      - fixing MixerInit option of the voxware server.
431
432      - Adding a KeepMixer option (on by default) that causes NAS to
433        always keep the mixer device open so it can track external
434        changes to mixer settings.
435
436      - patch adding ReInitMixer option that init's the mixer to
437        defaults every time nasd re-opens the audio device.
438
439      - patches ANSI'fying the nas clients
440
441      - extending the gainScale functionality to apply to the input
442        gain as well.
443
444
445Version 1.8 (stable) 06/03/2006
446
447        - time for another stable release.
448
449        - Correct problem in auvoxware, where if MixerInit is set to
450          false, remote volume (mixer) requests are ignored.
451          Reported by Paul Fox, with a fix determined by Steve
452          McIntyre and Erik Auerswald.
453
454        - Applied patch from Nicolas Escuder correcting a Cygwin
455          issue in auvoxware.c
456
457        - applied patch from Erik Auerswald adding a Mute button and
458          functionality to aupanel.
459
460        - applied patch from Nicolas Franois  (via Steve McIntyre)
461          correcting some typos in the AuSetBucketAttributes and
462          AuSoundCreateFileFromBucket man pages.
463
464        - applied patch from 'Inma', correcting a connection hang in
465          Solaris 9.  This reworks some of the very old and primitive
466          fd_set stuff in Aulibint.c .
467
468        - updated config/config.sub and config.guess to properly
469          detect DragonFly systems.
470
471        - Applied patch from Mark Davies and Joerg Sonnenberger
472          correcting some BSD issues and adding DragonFly support.
473
474          The nasd.conf man page is always installed in
475          $FILEMANDIR for all systems.
476
477        - applied patch from Mark Davies correcting audio/Imakefile
478          to properly define BSD44SOCKETS on NetBSD systems.
479
480        - Applied patch from Steve McIntyre correcting CYWIN -> CYGWIN
481          typo in server/dda/voxware/auvoxware.c
482
483        - applied patch from Steve McIntyre Correcting some Gcc 4.0
484          and AMD64 issues.
485
486
487Version 1.7 (stable) 11/14/2004
488
489        - 1.7 release :)
490
491        - fixed config/Imakefile so 'configure' command would work
492          under cygwin.  Tested clients/server under cygwin.
493
494        10/06/2004
495
496        - 1.7 release candidate
497
498        - corrected a possible race condition in auvoxware that could
499          cause the server to hang under certain conditions.  I do not
500          know why I haven't seen this problem before, but I could
501          recreate it easily by killing auplay while playing a long
502          tune.
503
504          If the system restarts syscalls after a signal handler has
505          run, a situation could arise where the previous timer was
506          never disabled.  This could cause a previous ioctl(DSP_SYNC)
507          called from setSampleRate() to be constantly interrupted and
508          restarted, causing an apparent hang.
509
510          Now we just turn off the timer as the first thing in
511          setSampleRate() so DSP_SYNC can actually finish.
512
513          We also turn off the timer when openDevice is called, so the
514          'wait for device to become available' code can work too.
515
516        - Patch from Tobias Diedrich that allows mixer init to
517          fail in the voxware server.
518
519          Quote:
520
521          With this patch "aoss nasd" works, without it would fail
522          (aoss is the alsa oss wrapper script, which simply preloads
523          libaoss.so, a wrapper library similar to libaudiooss).
524
525          Combining this with the alsa dmix feature should allow nas
526          to coexist with other daemons like artsd.
527
528          See http://radscan.com/nas/nas-ml/msg01121.html for more
529          details.
530
531        - redid the FAQ in an attempt to make it more useful.  I'll
532          try to keep it up to date.
533
534        - updated libtool due to a problem(s) reported by Steve
535          McIntyre.
536
537        08/20/2004
538
539        - clear CFLAGS before building config/config.h
540
541        - emit the release string to the log and stdout when
542          verbose is enabled.
543
544        - if '-V' specified, emit release string and stdout and exit.
545
546        - add a limit of 5 retries on failure to open input device.
547
548        - barring major problems, this is a release candidate.
549
550        06/20/2004
551
552        - add autoconf/configure support for config/. Now, during the
553          'includes' phase of the nas build, configure will try to
554          figure out some things about your system and build a
555          config.h file that the rest of nas can use.   Prompted by
556          John Wehle's patch below.
557
558          NOTE: you still build nas like always with the imake
559          facility.  configure in this case is only concerned with
560          locating various header files, functions, and the like.
561
562        - added FreeBSD 5.x patches from John Wehle correcting
563          malloc.h/stdlib.h use and other issues.
564
565        - remove ioctl(devAudio, AUDIO_DRAIN, 0) call from
566          disableProcessFlow() in dda/sun/ausuni.c that seems to cause
567          problems (server hangs) with certain sun audio
568          hardware/kernel drivers.
569
570        - applied patch from James Lee correcting a coredump in
571          audemo.
572
573        - corrected problem with dia/auprocess.c that caused SIGFPE's
574          in nasd when an element with a samplerate of 0 was
575          processed. Thanks to Tobias Diedrich for a test case.
576
577        - removed some pre-R5 cruft from lib/audio/ConnSvr.c that
578          caused build problems on some solaris systems.
579
580        02/14/2004
581
582        - Fixed up some Cygwin issues... All of the clients and the
583          server seem to compile and work fine now.  I tested both
584          local and remote, to and from unix and cygwin.
585
586        - Added patch from Steve McIntyre, adding a new '-config'
587          option to nasd.  This allows you to start nasd with
588          alternate configuration files rather than the default of
589          /etc/nas/nasd.conf.  Useful if you have multiple sound
590          devices.
591
592        - Added 64bit fixes from Per Oyvind Karlsen
593
594        12/31/2003
595
596        - corrected a coredump with the clients in 1.6a when using a
597          non-zero display number. GetAuthorization() was a bit
598          confused about the order of it's arguements...
599
600        12/24/2003
601
602        - preparing a long overdue development release
603
604        - ANSI'ification of libaudio.
605
606          There seemed to be some confusion with the order of
607          arguments to the AuSoundRecordToFile*() functions.
608
609          The function declarations were made to match the prototype
610          definition and the man page.
611
612        - Modified Scott Presnell's patch to not enable BSD44SOCKETS
613          on Linux or SVR4 systems. There are some structure members
614          used that are not present on these (and perhaps other)
615          systems.
616
617          If you run into compilarion problems with ConnSvr.c relating
618          to invalid structure members, look at the define of
619          BSD44SOCKETS in Imakefile and correct for your system as
620          needed.  Oh, send me the patch as well? :)
621
622        - auvoxware
623
624          - added some more useful debugging info.  If you get the old
625            'cannot create audio block connection info" try running
626            nasd with '-v -d 99' and see what the real error is.
627
628          - certain ioctl() requests are no longer fatal (like
629            SOUND_MIXER_WRITE_RECSRC and SOUND_MIXER_READ_RECSRC).
630            Recording may not work properly if these fail though.
631
632        9/14/2003
633
634        - added patch from Marty Leisner cleaning up a couple of error
635          messages in server/os/connection.c
636
637        3/15/2003
638
639	- added a patch to the contrib section by Laurent Vivier - this
640          patch adds NAS support to the esound daemon on AIX systems.
641          Should be reasonably portable to other platforms as well.
642
643          Rumor has it that the Ximian folks are adding this support
644          officially into esound.
645
646        3/15/03
647
648	- set timer in auvoxware.c to trigger when 50% of the samples
649          are predicted to be consumed... This hopefully will help
650          with underruns on some systems/OS's...  I'm not sure why
651          this is happening on those systems (it's not happened on any
652          of the systems I've used NAS on), so this should probably
653          be considered a harmless workaround.
654
655        3/4/03
656
657	- Patch from Scott Presnell to set BSD44SOCKETS properly for
658          libaudio.
659
660        12/11/2002
661
662	- patch from Steve McIntyre correcting a typo in Xtutil.h
663
664
665Version 1.6 10/23/2002
666
667	- Release!
668
669	## 1.5h    10/12/2002
670
671	- Added SoundFileGetProc() to get access to the toSound and
672          fromSound procs in _SoundFileInfo[].  Needed for xemacs.
673
674	- Added AudioLibraryVersionMajor, AudioLibraryVersionMinor,
675          and AudioLibraryVersionTeeny to audiolib.h.  Somewhat more
676          informative than just the old AudioLibraryVersion which was
677          set at '2'.
678
679	  The old AudioLibraryVersion define is still there however,
680          and is defined to be equal to AudioLibraryVersionMajor.
681
682	## 1.5g    10/7/2002
683
684	- changed inputsection defaults in nasd.conf.eg to 44.1Khz, 2
685          channel 16b sound.
686
687	  outputsection also defaults to 44.1Khz now, instead of 33Khz.
688
689	- began some CC ANSI'fication of libaudio.  So far only a
690          couple of files have been 'upgraded' just to see what the
691          implications are.  It's going to be a bitch ;-) And there is
692          the likelyhood of introducing errors, so I'll get a stable
693          release out first before finishing this task.  The result
694          however should be worth it.  I've a feeling a few obscure
695          bugs will be found and fixed doing this.
696
697	- some cleanup in server/os/utils.c and server/include/os.h.
698          removing K&R style prototype decls, #including unistd.h, and
699          setting Xalloc() et. al. to use proper void * rather than
700          unsigned longs.
701
702	- changed hardcoded '-L/usr/X11R6/lib' for REQUIRED libs in
703	  lib/audio/Imakefile to '-L$(USRLIBDIR)'
704
705	- it doesn't have the HPUX 11 build fixes - I think I will
706          really need access to a machine, or someone who does have
707          access to one and wants to fix the build, in order to solve
708          this... The bcopy problem seems to be in the HPUX X11
709          config/ stuff.
710
711	- We really should release this one unless there are big
712          problems. ;-)
713
714	8/26/2002
715
716	- time for another development update.  Should probably go
717          final with a 1.5.1 version soon...
718
719        7/23/2002
720
721	- removed fdset.h stuff for cygwin - no longer needed.
722
723	- auvoxware - added __CYGWIN__ checks (equal to linux)
724
725	- added __CYGWIN__ to dia/auservertype.h
726
727	- changed server imake to build nasd.exe on cygwin rather than nasd.
728
729
730        7/20/2002
731
732	- added cygwinArchitecture to the server Imakefile so
733          auvoxware will be built on cygwin systems.
734
735	- Removed the SoundFileInfo[] array in sound.h so cygwin would
736          be happy.  Apps should not have been accessing that array
737          directly anyways.
738
739	  Added the following new functions to sound.c (that used to
740	  be macros in sound.h):
741
742	     SoundFileFormatString, SoundValidDataFormat,
743	     SoundFileFormatToString, SoundFileFormatToAbbrev,
744	     SoundFileFormatToSuffixes
745
746	  Assuming your code did not attempt to directly access
747	  SoundFileInfo[], no changes should be required.
748
749	  libaudio.so revision bumped to 2.3
750
751        7/15/2002
752
753	- patch from Nicholas Wourms.
754
755	  - fixed FIONREAD in Alibint.c for cygwin
756	  - fixed Imake for libaudio on cygwin
757
758        7/9/2002
759
760	- rename dia/nasconfig.* to dia/nasconf.* to avoid name
761          collision with NasConfig.h on windows systems.
762
763	## 1.5e    7/7/2002
764
765	- added patch from Nicolas Escuder that adds support for
766          Windows operating systems using Cygwin.  Even the NAS server
767          is now supported.  There are still issues with the clients.
768
769	  I will provide a link on the nas-links page to precompiled
770	  windows binaries for libaudio.dll, nasd, and some clients -
771	  provided by Nicolas.
772
773	- based on idea from Nicolas, added background (-b) mode to
774          nasd, to force it to run in the background.  Actually, he
775          supplied a patch, but I just redid it to work properly with unix
776          systems.
777
778	  If you want to see error messages from nasd while starting
779	  up, do not run it in daemon mode or you won't see the error
780	  messages as stdout/stderr are closed.  Someday, I'll track
781	  down all of these and have them use osLogMsg(), which would
782	  work regardless.
783
784	- added NAS_AUDIOMSGFILE in config/NasConfig.h to specify
785          where audio messages are stored (ADMPATH in os/osinit.c).
786
787	- Yes, we are at 1.5e now. Sorry I didn't release 1.5b-d.  Was
788          a little busy with the day job ;-)
789
790	## 1.5d    6/1/2002
791
792	- added .ps -> .pdf conversions in doc/pdf/
793
794	- added html versions of man pages in doc/html/
795
796	## 1.5b    3/16/2002
797
798        - added patch from Marco Molteni to add a '-local' option to
799	  nasd.  Specifying this option allows only local clients to
800	  connect.
801
802        - fix nasd.man to describe this and other supported options.
803
804        - moved allow_any_host into the NasConfig struct.  Along with
805          the new '-local' option.
806
807	## 1.5a    2/23/2002
808
809	- more STARTSERVER fixes - there was still one case where when
810          STARTSERVER was defined, nasd could be called with the wrong
811          display number due to a bug in _AuConnectServer.
812
813	- changed LEX/YACC DEBUG token to CDEBUG to avoid conflicts
814          when building nas with '-DDEBUG'
815
816	- DEFAULT_AUSERVER is now ":0" rather than
817          "tcp/localhost:8000".  A local socket connection will startup
818          faster than a tcp connection.
819
820	- mutex.h
821		- corrected unixware 7.x build problem
822                  (XMUTEX_INITIALIZER) in mutex.h
823		- added same check for sun/solaris boxes
824		- got rid of XUSE_MTSAFE_API - now controlled by
825                  NAS_USEMTSAFEAPI defined in config/NasConfig.h
826
827		  If you think you are having mutex problems, you can
828		  edit config/NasConfig.h and '#undef'
829		  NAS_USEMTSAFEAPI, then rebuild everthing.  This will
830		  turn off threadsafety in libaudio.
831
832	- added patch from Tobias Diedrich to fix deadlock in
833          AuNextEvent().
834
835	- added new mutex in audio/Alibint.c to protect
836          _AuReadEvents() since it can no longer rely on the server
837          lock as a result of Tobias's patch above.
838
839	- added new option, 'gain', to config file in the input/output
840          sections.  This sets the default gains when nasd starts up
841          (if MixerInit is enabled).  Only in voxware for now.
842
843        1/5/2002
844
845	added -lXt and -lXau to the lib dependancy for libaudio.so on
846	Linux systems per a request from Lorenzo Delana.
847
848        1/20/2002
849
850	- fixed bug in ConnSvr.c that could cause the wrong server
851          number to passed to nasd when STARTSERVER is defined.
852
853
854Version 1.5 12/26/2001
855
856	## 12/1/2001
857
858	- Corrected manpage html generation issue with the nasd.conf
859	  manpage via patch from Erik Inge Bolso
860
861
862	## 1.4.2d  11/25/2001
863
864	- implemented locking in libaudio via Xthread mutexes.
865
866	  This is kind of a big change, but the result should be a
867	  threadsafe libaudio.  I used Xthreads, because then
868	  theoretically I shouldn't have to care about the system's
869	  actual thread implementation. Right?? I've tested so far on
870	  Linux (uses pthread_*) and Unixware 2.03 (uses thr_*).  So
871	  far so good.
872
873	- bumped up the libaudio rev to 2.2
874
875	## 1.4.2c  11/4/2001
876
877	- turned off streams support on SVR4 systems for libaudio.
878	  UNIX and TCPCONN work just fine.  The nasd server hasn't
879	  used streams support since the 1.3 timeframe anyway.  This
880	  will work around local connection issues on UnixWare and
881	  probably Intel Solaris as well.
882
883	- added patches from Steve McIntyre to work around an XFree86
884	  issue, and prevent the HPUX server from being built on HPPA
885	  systems running Linux.
886
887	- add change to AuServerName() in libaudio to default to
888	  'tcp/localhost:8000' if neither AUDIOSERVER or DISPLAY are
889	  set as per a suggestion by Erik Inge Bolso.
890
891	## 1.4.2b  10/6/2001
892
893	- Added patches from Peter Berg Larsen to the Sun server that
894	  adds support for $AUDIODEV on Sun Ray platforms.
895
896	- Added patches from Peter Berg Larsen that corrects some
897	  issues dealing with dead clients, and improper server resets
898	  when persistent flows are still active.  Also, some
899	  uninitialized variables are now properly initialized.
900
901	## 1.4.2a  4/21/2001
902
903	- patch from Steve McIntyre to resolve man page issues, and
904	  add a libm dependancy to libaudio for linux platforms.
905
906	- patches from Philippe Jouguet
907
908		new options in nasd.conf for the voxware server:
909		- add 'mixer' device option to secify the mixer.
910		- add 'forcerate' option to force the sample rate
911		  to the current rate at all times
912		- add 'autoOpen' option to specify whether the audio
913		  devices are opened at init time.
914		- add 'readwrite' option to specify whether devices
915		  are opened read/write (default) or
916		  readonly/writeonly for the input and output devices,
917		  respectivly.
918
919
920	- added patch from Nick Ing-Simmons to pass the correct port
921	  offset when starting nasd within libaudio (if START_SERVER
922	  is defined at build time).
923
924	- always output verbose/debugging info to stderr if debugging
925          is enabled (even if you normally use syslog).  stderr is not
926          closed when debugging is turned on.
927
928
929Version 1.4.2 4/8/2001:
930
931        ## 1.4.1b 3/9/2001
932
933	- added patch from Paul Fox allowing auctl to set gains based
934		in an increment
935
936	- added a patch to lib/audio/wave.c from Philippe Jouguet that
937          corrects an infinite loop that can occur when auplay is fed
938          a corrupted wave file.
939
940	- added patches to auplay from Paul Fox.  auplay will now stop
941          the flow when a signal is caught.  Also a new option '-l'
942          allows auplay to play filenames specified on stdin.
943
944	- set libaudio's SO revision to 2.1 from 1.4 to avoid
945	  confusion with older apps built when the older libaudio
946          was at 2.0 (debian).
947
948	## 1.4.1a 12/10/2000
949
950	- autool - fixed -volume option
951
952	- added cast from a patch by Sun Ireland for their OpenOffice
953		(StarOffice) project.
954
955	- fixed libaudio to start up 'nasd' instead of 'au' when
956		START_SERVER is defined.
957
958	- applied Erik Inge Bolso's patch for properly opening 2
959          channels instead of 3 for stereo output devices.
960
961	- added HPUX 10.20.x patches from Klaus Dittrich
962
963	- fixed problem in lib/audio/Alibint.c regarding ambiguous
964          casts with void pointers in the buffer padding code, and to
965          make it more portable with other operating systems/compilers
966          (HPUX 10.20, UW7).
967
968	- lib/audio/soundlib.c - fixed cases where a client (like
969          auplay) would hang if the element Import size matched the
970          complete datasize of a flow.  An EOF would never be sent.
971          Thanks to Shigeharu Takeno for providing a reproducible test
972          case.
973
974	- added Unixware 7.1 patches from Robert Roselius.
975
976 	- added patch to sun/ausuni.c from John Wehle correcting a
977          problem on some solaris machines that don't allow sbpro
978          devices to be open for both reading and writing.
979
980	- add patches from Steve McIntyre for creating sticky socket
981          directories, and to close stdin, stdout, and stderr.
982
983
984
985Version 1.4.1 9/4/2000:
986
987	- this release is really only neccessary if you are using the
988          NAS server on a Sun, and have frequent dropouts.
989
990	- fix to the sun server from Charles Levert correcting a Sun
991          problem with 'late SIGPOLLS'.
992
993	- minor documentation fixes - new mailing list archive
994          location, etc.
995
996Version 1.4 2/27/2000:
997
998	- Release of 1.4
999
1000	- Removes USE_BSD* dependancies on Linux builds.
1001
1002	## 1.3e 02/12/2000:
1003
1004	- This is a pre-release 1.4 candidate.
1005
1006	- corrected a problem in the voxware server where when
1007		ReleaseDevice was enabled, the device would be held
1008		open when nasd was first started until the first
1009		connection was made.
1010
1011	- added config/NetAudio.def to set various configurables like
1012		NasConfigSearchPath.
1013
1014	- changed documentation regarding the new location of the web
1015		site (http://radscan.com/nas.html)
1016
1017	## 1.3d 01/05/2000:
1018
1019	- corrected some build problems on Sparc Solaris 2.6 with native
1020		compiler/X11 env
1021
1022	- corrected build problems on native Unixware compiler and X11R5
1023		Note, to get this to work, you need 3 corrected
1024		/usr/X/lib/config/ files from me...
1025
1026	- integrated config handling in all servers, based on a
1027		lex/yacc parser from Stephen Hocking that was in the
1028		voxware server.
1029
1030		- config file is /etc/nas/nasd.conf
1031			an example config file (/etc/nas/nasd.conf.eg)
1032				is installed.
1033		- parser errors are a bit more informative ;-)
1034		- no more parser in voxware server... moved into dia/
1035			for general purpose use.
1036		- each server now has a config.c and config.h file that
1037			provides the ddaSetConfig() functionality required
1038			of each server by dia/.  In the SGI case,
1039			it's just a stub. ddaSetConfig() ignores options
1040			it doesn't understand (required behavior).
1041		- server cmdline options '-v' (verbose) and '-d <num>'
1042			(debug messages) added.  These override
1043			nasd.conf settings.
1044		- hooks added to all servers in config.c - ddaProcessArg()
1045			and ddaUseMsg() for integrated arg handling.
1046
1047
1048	- voxware server:
1049		- release device functionality now controlled by
1050			nasd.conf
1051		- mixer init policy now controlled by nasd.conf
1052
1053	- sun server:
1054		- added integrated sun (ausuni) module (now built by
1055			default) into the distribution.
1056		- release device functionality now controlled by
1057			nasd.conf
1058
1059	- hpux server:
1060		- added device release (ReleaseDevice) capability to hpux
1061			server.  All servers except for sgi now
1062			support this functionality.
1063		- fixed sample rate change problem in hpux server
1064		- separated hardware init code for ReleaseDevice
1065			functionality
1066		- added new option in nasd.conf to select either the
1067			EXT (external - headphones/speakers) or INT
1068			(internal speaker) output device by default
1069
1070	- renamed generated server binary from au* to nasd for all
1071			servers
1072		- man pages updated (auserver.man and
1073				AUVoxConfig.man	respectively).
1074
1075	## 1.3c 10/24/99:
1076
1077	- Added patches from Mark Davies for NetBSD.
1078
1079	- changed BIG_ENDIAN ->NAS_BIG_ENDIAN and LITTLE_ENDIAN to
1080		NAS_LITTLE_ENDIAN per Mark's suggestion globally
1081
1082	- Added global NasConfig struct for configurables global to all
1083		servers.
1084
1085	- More prep work for unified arg/config handling
1086
1087	- Some bug fixed related to the 'mondo' patch.
1088
1089	- Replacement of PRMSG() macros with a varargs logging function:
1090		osLogMsg(...).  If your working on a server and want to
1091		use these, #include "aulog.h" (in 1.3c+) and go for it.
1092
1093	- I've added a NasConfig.h file to config/ that defines (or will)
1094		a few things (like whether you want to use syslog,
1095		etc).  Initially you will need to tweak this manually
1096		for your site...
1097
1098	- Changes made to the way various include files are generated
1099		during a build... Basically any module that contains
1100		header files needed by other modules have the
1101		appropriate header files exported into TOPLEV/include
1102		during the includes phase of the build using the imake
1103		BuildIncludes() macros.
1104
1105	## 1.3b 9/4/1999:
1106
1107	- Addition of Steve McIntyre's Mondo patch.
1108
1109	## 1.3a 8/1/1999:
1110
1111	- First test version incorporating many patches from around
1112		the planet, based on original 1.2p5 sources.
1113
1114#
1115#
1116############################################################################
1117# the following is included for historical reasons, and concerns
1118#  changes to 1.2p5 and earlier versions.
1119#
1120# $NCDId: @(#)HISTORY,v 1.27 1996/09/05 18:46:47 greg Exp $
1121#
1122
1123** 1.2 - PATCH 05 **
1124
1125Server
1126	o voxware bug fixes, configuration file, and man pages.
1127	  (Thanks to Stephen Hocking)
1128
1129	o fixed some HP server compilation problems.
1130
1131	o fix a potential problem when reading from a client.  under
1132	  some circumstances the read pointer could be left on
1133	  a non-sample size boundry resulting in white noise.
1134
1135	o add a bit to the component use field to indicate that using
1136	  that component will override the use of other components.  This
1137	  bit is used on input devices when the audio hardware does not	  support recording and playing simultaneously.
1138
1139	o fix a problem with limiting samples on waveform devices.  if you
1140	  used anything other than AuUnlimitedSamples, bad things would
1141	  happen.
1142
1143Library
1144	o fixed a problem reading some wave files.
1145
1146Clients
1147	o auphone - check for the exclusive use bit.
1148
1149	o auscope - display the exclusive use bit.
1150
1151Misc
1152	o support library and client compilation under Windows NT with
1153	  X11R6.1.
1154
1155** 1.2 - PATCH 04 **
1156
1157Server
1158	o fixed a bug in the Sun dbri driver that caused the speaker
1159	  to get turned off.  (Thanks to Charles Levert)
1160
1161	o fixed an ancient server bug that caused buffers to get
1162	  corrupted when a flow is stopped and restarted.
1163
1164Clients
1165	o some more minor bug fixes to auscope.
1166
1167** 1.2 - PATCH 03 **
1168
1169Server
1170	o HPUX server now functional.  (Thanks to Jay Brister)
1171
1172	o Fix non-rentrant malloc problem for SGI server under
1173	  IRIX (5.3).  (Thanks to Scott Byer)
1174
1175	o removed obsolete SVR4 voxware code.
1176
1177	o catch bad protocol requests.
1178
1179Library
1180	o prevent AuSoundPlayFromFile() and AuSoundPlayFromData() from
1181	  changing the line mode.  A bug introduced in patch 2.
1182
1183	o fixes for shared audio library under X11R6.  (Thanks to
1184	  Bill Sebok)
1185
1186	o clean up some defines in the STARTSERVER code. (Thanks to
1187	  Bill Sebok)
1188
1189	o added AuSoundRecordToDataLength() which can be used to find the
1190	  length of data recorded when recording to memory.
1191	  (Thanks to Jonathan Thompson)
1192
1193Clients
1194	o minor bug fix to auscope.
1195
1196	o audemo - cut off filename extensions from the right instead
1197	  of the left. (Thanks to Raymond Toy)
1198
1199Misc
1200	o Updated SunOS 4.1.3 OpenWindows notes in BUILDNOTES.
1201	  (Thanks to Curt Schroeder)
1202
1203	o Added notes and patch for running on a SS5 to BUILDNOTES.
1204	  (Thanks to Mikael Pettersson and Curt Schroeder)
1205
1206	o Added note for building clients under AIX to BUILDNOTES.
1207	  (Thanks to Harald Milz)
1208
1209	o Added note for building on DEC Alpha (OSF1 V3.2).
1210	  (Thanks to Andrew Daviel)
1211
1212** 1.2 - PATCH 02 **
1213
1214Server
1215	o caused the server to return to the lowest sampling rate when a
1216	  flow terminates while playing multiple flows simultaneously.
1217
1218	o improved voxware dda driver.
1219	  (Thanks to Stephen Hocking and Shawn M.)
1220
1221	o experimental HP dda driver.  (Thanks to William J. Hunter)
1222
1223	o add a -timeout option to the server to allow the server to
1224	  terminate after a period of time with no clients.
1225	  (Thanks to William L. Sebok)
1226	  To enable this, you must build the NAS tree using the following:
1227
1228	  make WORLDOPTS='-k CDEBUGFLAGS="$(CDEBUGFLAGS) -DSTARTSERVER"' World
1229
1230Library
1231	o fixed a bug in the wave file reader.
1232
1233	o fixed a bug in the aiff file reader.
1234
1235	o new soundlib/sound functions AuSoundPlay(), AuSoundRecord(),
1236	  and SoundTellFile() with man pages.  (Thanks to Yoav Eilat)
1237
1238	o attempt to launch an NAS server on the local host if client
1239          cannot initially connect to a local server.
1240          (Thanks to William L. Sebok)
1241	  To enable this, you must build the NAS tree using the following:
1242
1243	  make WORLDOPTS='-k CDEBUGFLAGS="$(CDEBUGFLAGS) -DSTARTSERVER"' World
1244
1245Clients
1246	o add *input resources to all X clients to correct a problem
1247	  with some window managers not giving focus.
1248
1249	o fixed bug in auscope when displaying actions or parameters.
1250
1251	o fixed typo in auscope that caused it not to work with Perl 5.
1252
1253	o added playRaw example client.
1254
1255
1256** 1.2 - PATCH 01 **
1257
1258Server
1259	o added output mode control (Speaker/Headphone/Line-Out) to the server
1260	  and the Sun dda drivers. (thanks to Ian Donaldson)
1261
1262	o fix for multiple bundle elements in a flow. (thanks to Steven King)
1263
1264	o improved voxware dda driver.
1265	  (thanks to Christian Schlichtherle and Stephen Hocking)
1266
1267	o the server now does a range check on the output data and
1268	  clips correctly.  Due to the possible performance impact,
1269	  this can be disabled by commenting out the #define
1270	  OUTPUT_RANGE_CHECK in server/dia/auprocess.c.  ** ATTENTION
1271	  DDA DEVELOPERS ** this fix required a change to all of the
1272	  dda drivers.  The output minibufs must be twice as large as
1273	  they were previously.  (thanks to Steven King)
1274
1275	o voxware dda driver - Fix problem (apparently from
1276	  SoundPlayFromBucket) where tail of data was not flushed
1277	  through card until start of next operation.  (Thanks to Paul
1278	  F. Werkowski)
1279
1280	o only call dda set sample rate callback if the rate has changed.
1281
1282Library
1283	o SVR3.2 with STREAMSCONN wouldn't work with XDMCP due to a
1284   	  bug in nameserver.c.  (required XDMCP to be disabled; this
1285   	  won't affect users of stock NAS 1.2 but would affect those
1286   	  audio servers that implement XDMCP authorization checking)
1287	  (thanks to Ian Donaldson)
1288
1289	o fatal errors now lookup AuErrorDB for more detail.
1290   	  (like Xlib does with XErrorDB) (thanks to Ian Donaldson)
1291
1292	o Implementation of user callable error catching functions:
1293		AuSetErrorHandler()
1294		AuSetIOErrorHandler()
1295	  (thanks to Ian Donaldson)
1296
1297	o added default error handler variables so you can catch errors
1298	  during the initial server open.  (Thanks to Richard Caley)
1299
1300	o added some setjmp gunkus to Xtutil.c for use by error handlers.
1301	  (Thanks to Richard Caley)
1302
1303	o C++ compatibility. (Thanks to Yoav Eilat)
1304
1305	o New SoundSeekFile() and SoundFlushFile() functions.
1306	  (Thanks to Yoav Eilat)
1307
1308	o SoundNumSamples() value is now updated in SoundWriteFile().
1309	  (Thanks to Yoav Eilat)
1310
1311Clients
1312	o added re-written auscope.
1313
1314	o modified aupanel to support output mode controls.
1315
1316General
1317	o made all the Imakefiles use an explicit path for NetAudio.tmpl
1318	  to fix possible includes of the wrong NetAudio.tmpl.
1319
1320	o some notes on building under SunOS 4.1.3 OpenWindows from
1321	  Ian Donaldson.
1322
1323	o new API man pages from Steven King.  (Thanks!)
1324
1325	o made man page installation use standard InstallManPage macro.
1326
1327	o use AuInstallScript macro to install scripts.
1328
1329	o fixed some build and install problems under FreeBSD 1.1.5.1.
1330	  (Thanks to Paul F. Werkowski)
1331
1332** Release 1.2 **
1333
1334General
1335	o A few cosmetic changes.
1336
1337** PATCH 02 **
1338
1339Server
1340	o fixed a bug with monitor elements not returning the correct
1341	  data.  This caused the meters in audemo to be broken.
1342
1343	o patches from Steven King
1344
1345	    - In server/os/connections.c, EstablishNewConnections
1346              probably ought to check that newconn is less than
1347              lastfdesc before it is used in the BITSET macro (this in
1348              the mit X11r5 source, havent looked at r6 yet), tho
1349              you'd need lots and lots of connections to tickle
1350              this. Also in connections.c, CheckConnections should
1351              probably check for EINTR if select returns an error, I
1352              dont know if any implementation of select would actually
1353              EINTR for if it got a SIGPOLL or SIGALRM if the timeout
1354              is zero, but better safe than sorry.
1355
1356            - FallbackDefineSelf exists and is only referenced in
1357              os/access.c. Its part of the localconn patch which
1358              obviously isnt handling non 386 svr4's correctly.
1359
1360Library
1361	o fixed a bug in AuSoundRecordToData().  The flow wasn't getting
1362	  stopped when the recording was finished.
1363
1364	o fixed compile problem in ConnSvr.c under Dell 2.2 Xfree86-2.1.1.
1365
1366	o fixed compile problems under some X11R4s that don't define _Xconst.
1367
1368Clients
1369	o fixed problem with audial -recognize messing with line mode and
1370	  gain attributes without checking to see if the device was capable.
1371
1372	o fixed range/clipping problem in effectsAmplitude in auedit.
1373
1374General
1375	o changed occurances of the name "NetAudio" to "Network Audio System"
1376          or "NAS" due to a name conflict.
1377
1378	o patches from Ian Donaldson
1379
1380	    - Solaris 2 server failed to link because of undefined
1381	      symbol FallbackDefineSelf().
1382
1383	    - Shared library compilation broke completely due to
1384	      changes in NetAudio.tmpl and because the include of
1385	      <Library.tmpl> was moved too high up in
1386	      lib/audio/Imakefile, and missed out on the
1387	      DoSharedLib/DoNormalLib flags etc.
1388
1389** PATCH 01 **
1390
1391Server
1392	o fixed a couple of problems with speed changes in the
1393	  SVR4 VOXware driver.
1394
1395** Release 1.2b BETA **
1396
1397Library
1398	o fixed possible bogus free in sound.c.
1399
1400Clients
1401	o fixed auwave dropping core (due to bugs in the slider widget).
1402
1403General
1404	o lots of stuff from Steven King.  See CHANGES.sk below for details.
1405
1406	o The file server/PATCHES.sk contains patches from Steven King to
1407	  improve the handling of audio clipping in the server. I've
1408	  not applied them to the standard distribution yet because
1409	  I'm concerned about their possible performance impact.
1410
1411	o added some documentation about actions.
1412
1413** PATCH 01 **
1414
1415Server
1416	o fixed a bug with looping flows.
1417
1418Library
1419	o fixed problem with X11R4 build.
1420
1421** Release 1.2a ALPHA **
1422
1423Server
1424	o fixed a bug in ReadElement that would occasionally cause
1425	  protocol errors during recording.
1426
1427	o wake up the server when there are events to send out.
1428
1429	o fixed a bug in readBucket() that caused noise at the end of
1430	  a bucket.
1431
1432	o get rid of minibuf padding to eliminate clicks.
1433
1434	o optimized sample rate conversion.
1435
1436	o added FreeBSD/Linux VOXware driver (thanks to Amancio Hasty).
1437
1438	o added SVR4 VOXware driver (thanks to Stephen Hocking).
1439
1440	o added line mode control to Sun dbri driver.
1441
1442Library
1443	o add AuXtAppRemoveAudioHandler().
1444
1445	o fixed memory leaks and other problems with the bucket attribute
1446	  cache.
1447
1448	o fix some nits with waveform durations.
1449
1450Clients
1451	o new auphone sample app.
1452
1453	o added some simple examples.
1454
1455General
1456	o much cleaning and various OS support fixes from
1457	  Ian M. Donaldson.  See CHANGES.labtam below for details.
1458
1459** Release ?.? ALPHA (Feburary 11, 1994) **
1460
1461Server
1462	o fixed a bug where the last little bit of audio data would be
1463	  lost.
1464
1465	o fixed a bug in readClient where the buffer was being incorrectly
1466	  padded, possibly resulting in static at the end of the audio data.
1467
1468	o fixed two track monitor elements.
1469
1470	o Sun driver
1471
1472		- fixed a bug that could cause the output to get jumbled.
1473
1474		- wait for audio to drain after flows finish.
1475
1476		- Sparc 10 dbri driver.
1477
1478Library
1479	o added API for set and get close down mode.
1480
1481	o added Amiga IFF/8SVX sound file support.
1482
1483	o close the sound file before the callback is called for
1484	  AuSoundRecordToFile().
1485
1486	o make ListBuckets add to the bucket cache.
1487
1488	o added file format suffixes to the SoundFileInfo structure.
1489
1490	o added AuSetString() macro.
1491
1492	o fixed "strdup" bug in SoundCreate.
1493
1494	o re-arranged some utility routines into separate modules.
1495	  (NOTE: possible incompatibility - AuMonitorRate and AuMonitorFormat
1496	         are no longer externed in audioutil.h)
1497
1498	o add AuWaveFormToString() and AuStringToWaveForm().
1499
1500	o add AuSoundRecordToData().
1501
1502	o add stereo support for voc files (thanks to Steven King).
1503
1504Clients
1505	o auedit
1506
1507		- deal with sound files with an unknown number of samples
1508		  (like those from stdin).
1509
1510		- add record capability.
1511
1512	o utilities
1513
1514		- various new utilities.
1515
1516	o new auwave sample app.
1517
1518	o new slider widget for volume/gain controls.
1519
1520General
1521	o re-worked the includes of NetAudio.tmpl so it will (hopefully)
1522	  work on most platforms.
1523
1524	o builds under SVR3.2 (thanks to Steven King).
1525
1526** Release 1.1 **
1527
1528Server
1529	o Protected malloc/free from audio signals.
1530
1531	o Fixed setting parameters of waveforms and buckets.
1532
1533	o New dia/dda interface.
1534
1535	o Fixed a bug where the flow was re-compiled after
1536	  an event was requested even if that event didn't change
1537	  the state of the flow.
1538
1539	o Fixed possible memory trashing in readClient.
1540
1541	o Sun driver
1542
1543		- Don't initialize output gain or internal/external speaker
1544		  mode.
1545
1546		- Get rid of some 'clicks'.
1547
1548		- Deal with the situation when there are no physical outputs
1549		  in a flow.  This fixes the core dumps when you record before
1550		  having played anything.
1551
1552		- Fixed erroneous calling of AuProcessData() after changing
1553		  gain values.
1554
1555		- Fixed various bugs in recording (how did it ever work?!)
1556
1557	o New SGI driver (thanks to Reiner Ernst)
1558
1559Library
1560	o Fixed a bug in AuConvertShortToData().
1561
1562	o Fixed function prototypes in Xtutil.h.
1563
1564	o Fixed a problem in Xtutil.c where events would not get processed
1565	  if they were enqueued while awaiting a reply.
1566
1567Clients
1568	o auedit
1569		Fixed a bug with temporary and backup file names.
1570
1571	o auconvert
1572		Fixed a bug with converting raw data.
1573
1574General
1575	o Solaris 2.2 support
1576
1577
1578********************************************************************************
1579			      CHANGES.labtam
1580********************************************************************************
1581
1582Many thanks to Ian M. Donaldson at Labtam for the following:
1583
1584- Now compiles cleanly on all these without any compiler warnings
1585  whatsoever (well the odd one or two under X11R4).
1586
1587	- Solaris 2.3 on SS1000 under Sun provided Open Windows 3.2
1588	  Server untested.
1589	      (We only have a SS1000 running 2.3 which has no audio device)
1590
1591	  Porting required because Sun changed the audio interface
1592	  slightly in Solaris 2 versus SunOS 4.
1593
1594	  Clients tested reasonably.
1595
1596	- AIX 3.2 on a RS6000/220 under IBM provided X11R4
1597	  No server port done.  Don't have access to any IBM audio hardware.
1598	  Clients tested reasonably.
1599
1600	- SunOS 4.1.2  on a Sun IPX under MIT provided X11R5.
1601	  (no porting required specific to this platform)
1602	  Both clients and server tested reasonably.
1603
1604	- SVR4.0/486  on one of our own computers under MIT provided X11R5.
1605	  (as a guess comparable to Dell SVR4.0 or ESIX SVR4.0)
1606	  We used native STREAMSCONN TLI TCP/IP transport.
1607	  No server port done.  This computer never had audio hardware.
1608	  Clients tested reasonably.
1609
1610	- SVR3.2/486  on one of our own computers under MIT provided X11R4.
1611	  This O/S uses Lachman provided TCP/IP, and we used
1612	  STREAMSCONN TLI TCP/IP transport.
1613	  No server port done.  This computer never had audio hardware.
1614	  Clients tested reasonably.
1615
1616	  Unfortuantely every SVR3.2 system has some different
1617	  quirk since TCP was non-standard then.   No guarantees
1618	  it will compile better on other types.
1619
1620- Bugfixes
1621	- server had byte swapping  error that crashed playbucket(1)
1622	  when client run from opposite endian host
1623
1624	- autool crashed on little endian host when volume slider was
1625	  used when stopped (hung on big endian host)
1626
1627	- various signal mis-use.  Background processes from non-job
1628	  control shells don't die when ^C hit anymore.
1629
1630	- "SVR4" is not a reliable symbol for use in Imakefiles; use SystemV4
1631	  instead.  (broke audial).
1632
1633	- in Netaudio.tmpl, don't redefine MKDIRHIER or BINDIR by
1634	  default as this breaks the bootstrap in subtle ways on
1635	  certain systems.  Audio clients now get installed in the
1636	  same directory that X clients do rather than /usr/local/bin.
1637
1638	  On Solaris 2.3 with OpenWindows, this means /usr/openwin/bin,
1639	  otherwise it usually means /usr/bin/X11.
1640	  Similarly for header files, app-defaults and libraries.
1641
1642	- build will not fail on systems that don't have servers ported
1643	  to them.  This allows the clients and libraries to be built
1644	  on all platforms and servers on a subset.
1645
1646- libaudio is built as a shared library (currently rev 2.0) on systems
1647  where libX11 is built shared.  In the list above that means
1648  Solaris 2.3, SunOS 4.1, SVR4.0.
1649  I used rev 1.0 for the September 93 netaudio release but changes
1650  between then and netaudio 1.1 looked somewhat incompatable so I bumped
1651  the revision number then.
1652
1653- X11R4 compatability re-added in so compiliation in those
1654  environments is now possible.
1655
1656- STREAMSCONN support for SVR3.2 and SVR4.0 for libaudio.
1657  This is a direct port from MIT X11R5 with the odd fix-tracker applied.
1658  NB: Not done for auscope(1).  sockets used in that case.
1659  (this is ok but if people want binary compatability from SVR3.2
1660  to SVR4 sockets won't work because SVR3.2 has no standard socket ABI)
1661
1662- Better System-V and SVR4 support
1663
1664	- Use System-V reliable signals.  (ie: sigset(2)).
1665	  signal(2) is unreliable on System-V systems.
1666	  Didn't bother with SVR4/POSIX signals; SVR3 signals work
1667	  fine on SVR4 and are easier to understand and code.
1668
1669	- don't use libucb at all on SVR4.  This library is bad news
1670	  on most SVR4 systems and should be avoided like the plague!
1671
1672- Better ANSI support (SVR4 + Solaris)
1673
1674	- use ANSI memcpy/memset exclusively on ANSI systems instead
1675	  of bcopy/bzero
1676
1677	- eliminated all SVR4.0/486 cc's reported warnings of callback
1678	  function type declaration mismatches.  (this is the bulk
1679	  of the changes).  Solaris 2 cc doesn't report half these things
1680	  unfortunately.
1681
1682- auscope(1) now has a '-n' flag so it can be run in background reliably.
1683
1684- 'make install' now fully installs correctly.  Even app-defaults!
1685
1686- 'make clean' now properly cleans
1687
1688********************************************************************************
1689			      CHANGES.sk
1690********************************************************************************
1691
1692Thanks to Steven King for the following:
1693
1694- building on ISC
1695
1696    I had a few problems building 1.2a on my system running ISC SVR3.2r4.0
1697    with the imake enviroment provided by XFree86 (It looks to be more
1698    work than its worth to get netaudio to build with the vendor supplied
1699    X11R4).
1700
1701    In server/dia/au.h, ISC doesnt have memmove, however bcopy and friends
1702    are in the normal library search path.
1703
1704    In lib/audio/Alibnet.h, the omission of the #define for _AuWriteV
1705    resulted in link errors for all clients.
1706
1707    In lib/audio/Imakefile, the SYSV_DEFINES macro causes major grief if
1708    one has installed XFree, I would expect this to be true for any SVR32
1709    that has XFree.  Also, I found it usefull to include NetAudio.tmpl
1710    after Library.tmp so that I could redefine things like CDEBUGFLAGS and
1711    such in NetAudio.tmpl
1712
1713    In clients/audio/audemo/audemo.c, ISC needed sys/time.h included, I
1714    suspect most SYSV's will as well.
1715
1716    In clients/audio/audial/audial.c, the compile breaks on the inclusion
1717    of sys/file.h, I think this is a ISC 4.0 specific problem.
1718
1719- localconn patches
1720
1721    These patches are derived from the XFree86 2.0 release.  I pretty much
1722    just merged the XFree patches into netaudio.  My principle interest
1723    was in the streams localconn code for ISC; besides greatly improving
1724    the performance for local clients, they allow the server to run with
1725    the system at run level 2, or on systems where full networking isnt
1726    availible (an extra $$$ option on ISC and lots of other PC sysVs).
1727     In addition to the ISC code, theres also support for other systems, SVR4,
1728    SCO, linux and net/free bsd, which may or may not be usefull depending
1729    on the system (ie, is anyone doing an independent SCO port?).  There
1730    is also alot of code for a minix and amoeba port.  I can pretty much
1731    guarantee that this will not work, but I left it in as it doesnt affect
1732    the other systems and might give a leg up to anyone attempting a minix
1733    or amoeba port.
1734
1735- NetAudio.tmpl
1736
1737    Make clients get rebuilt after libaudio.a changes.
1738