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