                   =============================
                   Release Notes for Samba 4.3.1
                         October 20, 2015
                   =============================


This is the latest stable release of Samba 4.3.


Changes since 4.3.0:
--------------------

o   Jeremy Allison <jra@samba.org>
    * BUG 10252: s3: smbd: Fix our access-based enumeration on "hide unreadable"
      to match Windows.
    * BUG 10634: smbd: Fix file name buflen and padding in notify repsonse.
    * BUG 11486: s3: smbd: Fix mkdir race condition.
    * BUG 11522: s3: smbd: Fix opening/creating :stream files on the root share
      directory.
    * BUG 11535: s3: smbd: Fix NULL pointer bug introduced by previous 'raw'
    * stream fix (bug #11522).
    * BUG 11555: s3: lsa: lookup_name() logic for unqualified (no DOMAIN\
      component) names is incorrect.

o   Ralph Boehme <slow@samba.org>
    * BUG 11535: s3: smbd: Fix a crash in unix_convert().
    * BUG 11543: vfs_fruit: Return value of ad_pack in vfs_fruit.c.
    * BUG 11549: s3:locking: Initialize lease pointer in
      share_mode_traverse_fn().
    * BUG 11550: s3:smbstatus: Add stream name to share_entry_forall().
    * BUG 11555: s3:lib: Validate domain name in lookup_wellknown_name().

o   Günther Deschner <gd@samba.org>
    * BUG 11038: kerberos: Make sure we only use prompter type when available.

o   Volker Lendecke <vl@samba.org>
    * BUG 11038: winbind: Fix 100% loop.
    * BUG 11053: source3/lib/msghdr.c: Fix compiling error on Solaris.

o   Stefan Metzmacher <metze@samba.org>
    * BUG 11316: s3:ctdbd_conn: make sure we destroy tevent_fd before closing
      the socket.
    * BUG 11515: s4:lib/messaging: Use 'msg.lock' and 'msg.sock' for messaging
      related subdirs.
    * BUG 11526: lib/param: Fix hiding of FLAG_SYNONYM values.

o   Björn Jacke <bj@sernet.de>
    * BUG 10365: nss_winbind: Fix hang on Solaris on big groups.
    * BUG 11355: build: Use as-needed linker flag also on OpenBSD.

o   Har Gagan Sahai <SHarGagan@novell.com>
    * BUG 11509: s3: dfs: Fix a crash when the dfs targets are disabled.

o   Andreas Schneider <asn@samba.org>
    * BUG 11502: pam_winbind: Fix a segfault if initialization fails.

o   Uri Simchoni <uri@samba.org>
    * BUG 11528: net: Fix a crash with 'net ads keytab create'.
    * BUG 11547: vfs_commit: set the fd on open before calling SMB_VFS_FSTAT.

#######################################
Reporting bugs & Development Discussion
#######################################

Please discuss this release on the samba-technical mailing list or by
joining the #samba-technical IRC channel on irc.freenode.net.

If you do report problems then please try to send high quality
feedback. If you don't provide vital information to help us track down
the problem then you will probably be ignored.  All bug reports should
be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
database (https://bugzilla.samba.org/).


======================================================================
== Our Code, Our Bugs, Our Responsibility.
== The Samba Team
======================================================================


Older release notes to follow:
------------------------------

                   =============================
                   Release Notes for Samba 4.3.0
                           September 8, 2015
                   =============================


This is the first stable release of Samba 4.3.


UPGRADING
=========

Read the "New FileChangeNotify subsystem" and "smb.conf changes" sections
(below).


NEW FEATURES
============

Logging
-------

The logging code now supports logging to multiple backends.  In
addition to the previously available syslog and file backends, the
backends for logging to the systemd-journal, lttng and gpfs have been
added. Please consult the section for the 'logging' parameter in the
smb.conf manpage for details.

Spotlight
---------

Support for Apple's Spotlight has been added by integrating with Gnome
Tracker.

For detailed instructions how to build and setup Samba for Spotlight,
please see the Samba wiki: <https://wiki.samba.org/index.php/Spotlight>

New FileChangeNotify subsystem
------------------------------

Samba now contains a new subsystem to do FileChangeNotify. The
previous system used a central database, notify_index.tdb, to store
all notification requests. In particular in a cluster this turned out
to be a major bottleneck, because some hot records need to be bounced
back and forth between nodes on every change event like a new created
file.

The new FileChangeNotify subsystem works with a central daemon per
node. Every FileChangeNotify request and every event are handled by an
asynchronous message from smbd to the notify daemon. The notify daemon
maintains a database of all FileChangeNotify requests in memory and
will distribute the notify events accordingly. This database is
asynchronously distributed in the cluster by the notify daemons.

The notify daemon is supposed to scale a lot better than the previous
implementation. The functional advantage is cross-node kernel change
notify: Files created via NFS will be seen by SMB clients on other
nodes per FileChangeNotify, despite the fact that popular cluster file
systems do not offer cross-node inotify.

Two changes to the configuration were required for this new subsystem:
The parameters "change notify" and "kernel change notify" are not
per-share anymore but must be set globally. So it is no longer
possible to enable or disable notify per share, the notify daemon has
no notion of a share, it only works on absolute paths.

New SMB profiling code
----------------------

The code for SMB (SMB1, SMB2 and SMB3) profiling uses a tdb instead
of sysv IPC shared memory. This avoids performance problems and NUMA
effects. The profile stats are a bit more detailed than before.

Improved DCERPC man in the middle detection for kerberos
--------------------------------------------------------

The gssapi based kerberos backends for gensec have support for
DCERPC header signing when using DCERPC_AUTH_LEVEL_PRIVACY.

SMB signing required in winbindd by default
-------------------------------------------

The effective value for "client signing" is required
by default for winbindd, if the primary domain uses active directory.

Experimental NTDB was removed
-----------------------------

The experimental NTDB library introduced in Samba 4.0 has been
removed again.

Improved support for trusted domains (as AD DC)
-----------------------------------------------

The support for trusted domains/forests has improved a lot.

samba-tool got "domain trust" subcommands to manage trusts:

  create      - Create a domain or forest trust.
  delete      - Delete a domain trust.
  list        - List domain trusts.
  namespaces  - Manage forest trust namespaces.
  show        - Show trusted domain details.
  validate    - Validate a domain trust.

External trusts between individual domains work in both ways
(inbound and outbound). The same applies to root domains of
a forest trust. The transitive routing into the other forest
is fully functional for kerberos, but not yet supported for NTLMSSP.

While a lot of things are working fine, there are currently a few limitations:

  - Both sides of the trust need to fully trust each other!
  - No SID filtering rules are applied at all!
  - This means DCs of domain A can grant domain admin rights
    in domain B.
  - It's not possible to add users/groups of a trusted domain
    into domain groups.

SMB 3.1.1 supported
-------------------

Both client and server have support for SMB 3.1.1 now.

This is the dialect introduced with Windows 10, it improves the secure
negotiation of SMB dialects and features.

There's also a new optinal encryption algorithm aes-gcm-128,
but for now this is only selected as fallback and aes-ccm-128
is preferred because of the better performance. This might change
in future versions when hardware encryption will be supported.
See https://bugzilla.samba.org/show_bug.cgi?id=11451.

New smbclient subcommands
-------------------------

  - Query a directory for change notifications: notify <dir name>
  - Server side copy: scopy <source filename> <destination filename>

New rpcclient subcommands
-------------------------

  netshareenumall 	- Enumerate all shares
  netsharegetinfo 	- Get Share Info
  netsharesetinfo 	- Set Share Info
  netsharesetdfsflags	- Set DFS flags
  netfileenum		- Enumerate open files
  netnamevalidate	- Validate sharename
  netfilegetsec		- Get File security
  netsessdel		- Delete Session
  netsessenum		- Enumerate Sessions
  netdiskenum		- Enumerate Disks
  netconnenum		- Enumerate Connections
  netshareadd		- Add share
  netsharedel		- Delete share

New modules
-----------

  idmap_script 		- see 'man 8 idmap_script'
  vfs_unityed_media	- see 'man 8 vfs_unityed_media'
  vfs_shell_snap	- see 'man 8 vfs_shell_snap'

New sparsely connected replia graph (Improved KCC)
--------------------------------------------------

The Knowledge Consistency Checker (KCC) maintains a replication graph
for DCs across an AD network. The existing Samba KCC uses a fully
connected graph, so that each DC replicates from all the others, which
does not scale well with large networks. In 4.3 there is an
experimental new KCC that creates a sparsely connected replication
graph and closely follows Microsoft's specification. It is turned off
by default. To use the new KCC, set "kccsrv:samba_kcc=true" in
smb.conf and let us know how it goes. You should consider doing this
if you are making a large new network. For small networks there is
little benefit and you can always switch over at a later date.

Configurable TLS protocol support, with better defaults
-------------------------------------------------------

The "tls priority" option can be used to change the supported TLS
protocols. The default is to disable SSLv3, which is no longer
considered secure.

Samba-tool now supports all 7 FSMO roles
-------------------------------------------------------

Previously "samba-tool fsmo" could only show, transfer or seize the
five well-known FSMO roles:

	Schema Master
	Domain Naming Master
	RID Master
	PDC Emulator
	Infrastructure Master

It can now also show, transfer or seize the DNS infrastructure roles:

	DomainDnsZones Infrastructure Master
	ForestDnsZones Infrastructure Master

CTDB logging changes
--------------------

The destination for CTDB logging is now set via a single new
configuration variable CTDB_LOGGING.  This replaces CTDB_LOGFILE and
CTDB_SYSLOG, which have both been removed.  See ctdbd.conf(5) for
details of CTDB_LOGGING.

CTDB no longer runs a separate logging daemon.

CTDB NFS support changes
------------------------

CTDB's NFS service management has been combined into a single 60.nfs
event script.  This updated 60.nfs script now uses a call-out to
interact with different NFS implementations.  See the CTDB_NFS_CALLOUT
option in the ctdbd.conf(5) manual page for details.  A default
call-out is provided to interact with the Linux kernel NFS
implementation.  The 60.ganesha event script has been removed - a
sample call-out is provided for NFS Ganesha, based on this script.

The method of configuring NFS RPC checks has been improved.  See
ctdb/config/nfs-checks.d/README for details.

Improved Cross-Compiling Support
--------------------------------

A new "hybrid" build configuration mode is added to improve
cross-compilation support.

A common challenge in cross-compilation is that of obtaining the results
of tests that have to run on the target, during the configuration
phase of the build. The Samba build system already supports the following
means to do so:

  - Executing configure tests using the --cross-execute parameter
  - Obtaining the results from an answers file using the --cross-answers
    parameter

The first method has the drawback of inaccurate results if the tests are
run using an emulator, or a need to be connected to a running target
while building, if the tests are to be run on an actual target. The
second method presents a challenge of figuring out the test results.

The new hybrid mode runs the tests and records the result in an answer file.
To activate this mode, use both --cross-execute and --cross-answers in the
same configure invocation. This mode can be activated once against a
running target, and then the generated answers file can be used in
subsequent builds.

Also supplied is an example script that can be used as the
cross-execute program. This script copies the test to a running target
and runs the test on the target, obtaining the result. The obtained
results are more accurate than running the test with an emulator, because
they reflect the exact kernel and system libraries that exist on the
target.

Improved Sparse File Support
----------------------------
Support for the FSCTL_SET_ZERO_DATA and FSCTL_QUERY_ALLOCATED_RANGES
SMB2 requests has been added to the smbd file server.
This allows for clients to deallocate (hole punch) regions within a
sparse file, and check which portions of a file are allocated.


######################################################################
Changes
#######

smb.conf changes
----------------

  Parameter Name		Description		Default
  --------------		-----------		-------
  logging			New			(empty)
  msdfs shuffle referrals	New			no
  smbd profiling level		New			off
  spotlight			New			no
  tls priority			New 			NORMAL:-VERS-SSL3.0
  use ntdb			Removed
  change notify			Changed to [global]
  kernel change notify		Changed to [global]
  client max protocol		Changed	default		SMB3_11
  server max protocol		Changed default		SMB3_11

Removed modules
---------------

vfs_notify_fam - see section 'New FileChangeNotify subsystem'.


KNOWN ISSUES
============

Currently none.


CHANGES SINCE 4.2.0rc4
======================

o   Andrew Bartlett <abartlet@samba.org>
    * Bug 10973: No objectClass found in replPropertyMetaData on ordinary
      objects (non-deleted)
    * Bug 11429: Python bindings don't check integer types
    * Bug 11430: Python bindings don't check array sizes

o   Ralph Boehme <slow@samba.org>
    * Bug 11467: Handling of 0 byte resource fork stream

o   Volker Lendecke <vl@samba.org>
    * Bug 11488: AD samr GetGroupsForUser fails for users with "()" in
      their name

o   Stefan Metzmacher <metze@samba.org>
    * Bug 11429: Python bindings don't check integer types

o   Matthieu Patou <mat@matws.net>
    * Bug 10973: No objectClass found in replPropertyMetaData on ordinary
      objects (non-deleted)


CHANGES SINCE 4.2.0rc3
======================

o   Ralph Boehme <slow@samba.org>
    * Bug 11444: Crash in notify_remove caused by change notify = no

o   Günther Deschner <gd@samba.org>
    * Bug 11411: smbtorture does not build when configured --with-system-mitkrb5

o   Volker Lendecke <vl@samba.org>
    * Bug 11455: fix recursion problem in rep_strtoll in lib/replace/replace.c
    * Bug 11464: xid2sid gives inconsistent results
    * Bug 11465: ctdb: Fix the build on FreeBSD 10.1

o   Roel van Meer <roel@1afa.com>
    * Bug 11427: nmbd incorrectly matches netbios names as own name

o   Stefan Metzmacher <metze@samba.org>
    * Bug 11451: Poor SMB3 encryption performance with AES-GCM
    * Bug 11458: --bundled-libraries=!ldb,!pyldb,!pyldb-util doesn't
      disable ldb build and install

o   Andreas Schneider <asn@samba.org>
    * Bug 9862: Samba "map to guest = Bad uid" doesn't work


CHANGES SINCE 4.3.0rc2
======================

o   Andrew Bartlett <abartlet@samba.org>
    * Bug 11436: samba-tool uncaught exception error
    * Bug 10493: revert LDAP extended rule 1.2.840.113556.1.4.1941
                 LDAP_MATCHING_RULE_IN_CHAIN changes

o   Ralph Boehme <slow@samba.org>
    * Bug 11278: Stream names with colon don't work with
                 fruit:encoding = native
    * Bug 11426: net share allowedusers crashes

o   Amitay Isaacs <amitay@gmail.com>
    * Bug 11432: Fix crash in nested ctdb banning
    * Bug 11434: Cannot build ctdbpmda
    * Bug 11431: CTDB's eventscript error handling is broken

o   Stefan Metzmacher <metze@samba.org>
    * Bug 11451: Poor SMB3 encryption performance with AES-GCM (part1)
    * Bug 11316: tevent_fd needs to be destroyed before closing the fd

o   Arvid Requate <requate@univention.de>
    * Bug 11291: NetApp joined to a Samba/ADDC cannot resolve SIDs

o   Martin Schwenke <martin@meltin.net>
    * Bug 11432: Fix crash in nested ctdb banning


CHANGES SINCE 4.3.0rc1
======================

o   Jeremy Allison <jra@samba.org>
    * BUG 11359: strsep is not available on Solaris

o   Björn Baumbach <bb@sernet.de>
    * BUG 11421: Build with GPFS support is broken

o   Justin Maggard <jmaggard@netgear.com>
    * BUG 11320: "force group" with local group not working

o   Martin Schwenke <martin@meltin.net>
    * BUG 11424: Build broken with --disable-python


#######################################
Reporting bugs & Development Discussion
#######################################

Please discuss this release on the samba-technical mailing list or by
joining the #samba-technical IRC channel on irc.freenode.net.

If you do report problems then please try to send high quality
feedback. If you don't provide vital information to help us track down
the problem then you will probably be ignored.  All bug reports should
be filed under the "Samba 4.1 and newer" product in the project's Bugzilla
database (https://bugzilla.samba.org/).


======================================================================
== Our Code, Our Bugs, Our Responsibility.
== The Samba Team
======================================================================

