lib/util: change file_save_mode() to use O_EXCL
[samba.git] / WHATSNEW.txt
index 1eecc5c9019f7efc33b4202d2dcd0ab9ce2bcaac..376cd2862f132d4db277e7a765912549151b4864 100644 (file)
@@ -1,12 +1,12 @@
 Release Announcements
 =====================
 
-This is the first preview release of Samba 4.8.  This is *not*
+This is the first preview release of Samba 4.12.  This is *not*
 intended for production environments and is designed for testing
 purposes only.  Please report any defects via the Samba bug reporting
 system at https://bugzilla.samba.org/.
 
-Samba 4.8 will be the next version of the Samba suite.
+Samba 4.12 will be the next version of the Samba suite.
 
 
 UPGRADING
@@ -16,157 +16,97 @@ UPGRADING
 NEW FEATURES/CHANGES
 ====================
 
-KDC GPO application
+Python 3.5 Required
 -------------------
 
-Adds Group Policy support for the samba kdc. Applies password policies
-(minimum/maximum password age, minimum password length, and password
-complexity) and kerberos policies (user/service ticket lifetime and
-renew lifetime).
-
-Adds the samba_gpoupdate script for applying and unapplying
-policy. Can be applied automatically by setting
-
- 'server services = +gpoupdate'.
-
-Time Machine Support with vfs_fruit
-===================================
-Samba can be configured as a Time Machine target for Apple Mac devices
-through the vfs_fruit module. When enabling a share for Time Machine
-support the relevant Avahi records to support discovery will be published
-for installations that have been built against the Avahi client library.
-
-Shares can be designated as a Time Machine share with the following setting:
-
-  'fruit:time machine = yes'
-
-Support for lower casing the MDNS Name
-======================================
-Allows the server name that is advertised through MDNS to be set to the
-hostname rather than the Samba NETBIOS name. This allows an administrator
-to make Samba registered MDNS records match the case of the hostname
-rather than being in all capitals.
-
-This can be set with the following settings:
-
-  'mdns name = mdns'
-
-Encrypted secrets
-=================
-Attributes deemed to be sensitive are now encrypted on disk. The sensitive
-values are currently:
-       pekList
-       msDS-ExecuteScriptPassword
-       currentValue
-       dBCSPwd
-       initialAuthIncoming
-       initialAuthOutgoing
-       lmPwdHistory
-       ntPwdHistory
-       priorValue
-       supplementalCredentials
-       trustAuthIncoming
-       trustAuthOutgoing
-       unicodePwd
-       clearTextPassword
-
-This encryption is enabled by default on a new provision or join, it
-can be disabled at provision or join time with the new option
---plaintext-secrets.
-
-However, an in-place upgrade will not encrypt the database.
-
-Once encrypted, it is not possible to do an in-place downgrade (eg to
-4.7) of the database. To obtain an unencrypted copy of the database a
-new DC join should be performed, specifying the --plaintext-secrets
-option.
-
-The key file "encrypted_secrets.key" is created in the same directory
-as the database and should NEVER be disclosed.  It is included by the
-samba_backup script.
+Samba's minimum runtime requirement for python was raised to Python
+3.4 with samba 4.11.  Samba 4.12 raises this minimum version to Python
+3.5 both to access new features and because this is the oldest version
+we test with in our CI infrastructure.
 
-smb.conf changes
-================
+(Build time support for the file server with Python 2.6 has not
+changed)
 
-  Parameter Name                     Description             Default
-  --------------                     -----------             -------
-  auth methods                       Removed
-  binddns dir                        New
-  gpo update command                 New
-  map untrusted to domain            Removed
-  oplock contention limit            Removed
-  prefork children                  New                     1
-  mdns name                          Added                   netbios
-  fruit:time machine                 Added                   false
-  profile acls                       Removed
-  use spnego                         Removed
-  winbind trusted domains only       Removed
+GnuTLS 3.4.7 required
+---------------------
 
+Samba is making efforts to remove in-tree cryptographic functionality,
+and to instead rely on externally maintained libraries.  To this end,
+Samba has chosen GnuTLS as our standard cryptographic provider.
 
-NT4-style replication based net commands removed
-================================================
+Samba now requires GnuTLS 3.4.7 to be installed (including development
+headers at build time) for all configurations, not just the Samba AD
+DC.
 
-The following commands and sub-commands have been removed from the
-"net" utility:
+Using GnuTLS for SMB3 encryption you will notice huge performance and copy
+speed improvements. Tests with the CIFS Kernel client from Linux Kernel 5.3
+show a 3x speed improvement for writing and a 2.5x speed improvement for reads!
 
-net rpc samdump
-net rpc vampire ldif
+NOTE WELL: The use of GnuTLS means that Samba will honour the
+system-wide 'FIPS mode' (a reference to the US FIPS-140 cryptographic
+standard) and so will not operate in many still common situations if
+this system-wide parameter is in effect, as many of our protocols rely
+on outdated cryptography.
 
-Also, replicating from a real NT4 domain with "net rpc vampire" and
-"net rpc vampire keytab" has been removed.
+A future Samba version will mitigate this to some extent where good
+cryptography effectively wraps bad cryptography, but for now that above
+applies.
 
-The NT4-based commands were accidentially broken in 2013, and nobody
-noticed the breakage. So instead of fixing them including tests (which
-would have meant writing a server for the protocols, which we don't
-have) we decided to remove them.
 
-For the same reason, the "samsync", "samdeltas" and "database_redo"
-commands have been removed from rpcclient.
+"net ads kerberos pac save" and "net eventlog export"
+-----------------------------------------------------
 
-"net rpc vampire keytab" from Active Directory domains continues to be
-supported.
+The "net ads kerberos pac save" and "net eventlog export" tools will
+no longer silently overwrite an existing file during data export.  If
+the filename given exits, an error will be shown.
 
-vfs_aio_linux module removed
-============================
+REMOVED FEATURES
+================
 
-The current Linux kernel aio does not match what Samba would
-do. Shipping code that uses it leads people to false
-assumptions. Samba implements async I/O based on threads by default,
-there is no special module required to see benefits of read and write
-request being sent do the disk in parallel.
+The smb.conf parameter "write cache size" has been removed.
 
-smbclient reparse point symlink parameters reversed
-===================================================
+Since the in-memory write caching code was written, our write path has
+changed significantly. In particular we have gained very flexible
+support for async I/O, with the new linux io_uring interface in
+development.  The old write cache concept which cached data in main
+memory followed by a blocking pwrite no longer gives any improvement
+on modern systems, and may make performance worse on memory-contrained
+systems, so this functionality should not be enabled in core smbd
+code.
 
-A bug in smbclient caused the 'symlink' command to reverse the
-meaning of the new name and link target parameters when creating a
-reparse point symlink against a Windows server. As this is a
-little used feature the ordering of these parameters has been
-reversed to match the parameter ordering of the UNIX extensions
-'symlink' command. The usage message for this command has also
-been improved to remove confusion.
+In addition, it complicated the write code, which is a performance
+critical code path.
 
-REMOVED FEATURES
-================
+If required for specialist purposes, it can be recreated as a VFS
+module.
 
-The two commands "net serverid list" and "net serverid wipe" have been
-removed, because the file serverid.tdb is not used anymore.
+BIND9_FLATFILE deprecated
+-------------------------
+
+The BIND9_FLATFILE DNS backend is deprecated in this release and will
+be removed in the future.  This was only practically useful on a single
+domain controller or under expert care and supervision.
+
+This release removes the "rndc command" smb.conf parameter, which
+supported this configuration by writing out a list of DCs permitted to
+make changes to the DNS Zone and nudging the 'named' server if a new
+DC was added to the domain.  Administrators using BIND9_FLATFILE will
+need to maintain this manually from now on.
+
+smb.conf changes
+================
 
-"net serverid list" can be replaced by listing all files in the
-subdirectory "msg.lock" of Samba's "lock directory". The unique id
-listed by "net serverid list" is stored in every process' lockfile in
-"msg.lock".
+  Parameter Name                     Description                Default
+  --------------                     -----------                -------
 
-"net serverid wipe" is not necessary anymore. It was meant primarily
-for clustered environments, where the serverid.tdb file was not
-properly cleaned up after single node crashes. Nowadays smbd and
-winbind take care of cleaning up the msg.lock and msg.sock directories
-automatically.
+  nfs4:acedup                        Changed default            merge
+  rndc command                       Removed
+  write cache size                   Removed
 
 KNOWN ISSUES
 ============
 
-https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.8#Release_blocking_bugs
+https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.12#Release_blocking_bugs
 
 
 #######################################