---- Start of Samba 2.0.0 port release notes ----


Amiga_Samba_2.0.0 1.2 (20.2.99)

- Added setvbuf() and rewind() emulation code.

- The smbclient would invoke the "ls" or "find" programs to collect
  the names of files to be transferred in the "mput" command. The
  Amiga emulation code now notices these two special cases and
  supplies the requested data. Please note that due to how the
  pattern matching code works, you need to use AmigaDOS style
  wildcard patterns to select the files to transfer. Thus,
  "mput *.c" won't work but "mput #?.c" would.

- Added a missing UnLock() in the unlink() emulation code.

- Finally found out why the smbclient program would not print
  floating point numbers properly: the snprintf() code included
  with Samba did not support the required output format. I
  have added the missing code.


Amiga_Samba_2.0.0 1.3 (20.2.99)

- Replaced the AmigaDOS wild card pattern matching code with
  the "simple" Unix style version. This allows you to use
  the mput/mget smbclient commands without having to worry
  about the wild card syntax. For both commands the syntax
  is now the same.


Amiga_Samba_2.0.0 1.4 (21.2.99)

- Added putc/fputc/putchar emulation code.

- Added setbuf emulation code.


Amiga_Samba_2.0.0 1.5 (22.2.99)

- Replaced the AmigaDOS record locking code with a custom
  implementation that does not rely upon LockRecord() or
  UnlockRecord(). Since the Samba tools depend upon a working
  file locking mechanism and a number of 3rd party filing
  systems do not implement rarely used packet types such as
  used by LockRecord() or UnlockRecord() this is probably the
  safest alternative.

  Please note that the new locking code is not as efficient
  as the old implementation and that it requires that all
  Amiga Samba tools running in the system bear the version number
  1.5. If the version numbers don't match, you will crash
  the system.


---- Start of Samba 2.0.3 port release notes ----


Amiga_Samba 1.3 (27.4.99)

- The rename() wrapper code now performs similar to how BSD
  implements it. That is, if there already is a file by the
  destination name, that destination file is removed before the
  source file is renamed.

- The getcwd() wrapper code now properly returns the current
  working directory if the previous chdir() call had set it to
  an absolute path.

- No longer returns an error if the file modification date of
  a file currently in use cannot be changed in the utime()
  wrapper code.

- The stat() wrapper code no longer gives up when the object
  to be examined is currently in use. Instead, the code now
  scans that object's parent directory, if there is one, and
  gets its information that way.

- The file name mangler which converts between the Amiga
  and the Unix style file names did a bit too much when
  fixing up file names with trailing dot characters. It
  no longer removes those dots.

- The lseek() wrapper code now knows how to extend files.


Amiga_Samba 1.4 (2.5.99)

- Notification requesters now have a timeout of 30 seconds.
  This helps if smbd somehow gets stuck in an error condition
  that can be fixed later by having it restarted. With the
  new code, the necessary error requester won't block forever
  but close 30 seconds after it has opened (or when the user
  clicks on the "Ok" button).

- No longer returns an error if the file attributes of
  a file currently in use cannot be changed in the chmod()
  wrapper code. This helps the SAM SID file creation
  code.


Amiga_Samba 1.6 (13.5.99)

- Bumped to 1.6 for proper RCS checkin; no functional changes.


Amiga_Samba 1.7 (21.5.99)

- Removing a disk could cause Samba to lose track of the
  volumes currently available for reading. Fixed.

- Added a missing #include <exec/memory.h> to the amiga.c
  emulation module.


Amiga_Samba 1.8 (9.8.99)

- Added recv() and send() wrapper code.


Amiga_Samba 1.9 (15.10.1999)

- Disabled the file extension code in the lseek() implementation.
  ftruncate() now does this job.

- The "find" command emulated by the system() code now prints its
  file name list prefixed with the name of the directory the
  search started in, if this is necessary.

- Fixed the snprintf() code again.

- Added a wrapper for ObtainSemaphoreShared() which avoids a
  deadlock situation with Kickstart V37. It may not be necessary,
  but I'd like to play it safe.


Amiga_Samba 1.10 (3.11.1999)

- Created a wrapper for the smbrun utility. That is, Samba no longer
  invokes it but resorts to running the program smbrun was supposed
  to run directly. Note that the name of the program to run must follow
  the Unix naming conventions, i.e. "Work:program_name" will not
  work, but "/Work/program_name" should.

- Samba no longer forces file names to be a maximum of 30 characters
  in size. It now verifies that the name is compatible with the
  underlying file system. This is done by trying to ask the file
  system about its idea how long the name of the given file or
  drawer would be. If the names disagree, e.g. the name reported
  by the file system is shorter than the one queried, Samba will
  consider the name too long and will complain.

- The "ls" and "find" program emulation code found inside the Amiga
  system() function wrapper now properly lists files *and* drawers
  instead of listing only files. The code also tries to be smarter
  when listing the contents of the "fake root" directory.


Amiga_Samba 1.11 (1.12.1999)

- Added automatic interface detection code, as required by Samba 2.0.6.
  The code follows examples provided by Holger Kruse. Note that only
  interfaces which are currently "up" are detected. If you make an
  interface online later, you should use an "interfaces" line in the
  smb.conf file to specify its address and net mask. The code has
  been tested with AmiTCP Genesis but not with AmiTCP V4 yet.


Amiga_Samba 1.12 (25.12.1999)

- Verified that the interfaces detection code works with AmiTCP V4
  and AmiTCP Genesis. Well, at least it works for one single
  interface. I don't know yet whether it works for more than one.
  We'll have to see.
