public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Adolf Belka <adolf.belka@ipfire.org>
To: development@lists.ipfire.org
Cc: Adolf Belka <adolf.belka@ipfire.org>
Subject: [PATCH] samba: Update to version 4.25.0
Date: Wed, 30 Sep 2026 10:28:24 +0200	[thread overview]
Message-ID: <20260930082824.61797-1-adolf.belka@ipfire.org> (raw)

- Update from version 4.24.7 to 4.25.0
- Update of all three rootfiles
- 1 CVE fix
- Changelog
4.25.0
SMB3 Persistent Handles (Experimental)
	Samba now includes experimental support for SMB3 Persistent Handles,
	a fundamental building block for Transparent Failover.
	Persistent Handles allow SMB clients to reconnect after a server
	restart or outage while retaining valid file handles. Samba persists
	all necessary handle state to durable on-disk storage so that open
	files can be reconstructed when clients reconnect. This enables
	applications that depend on uninterrupted file access, such as virtual
	machine storage and clustered database workloads, to tolerate
	temporary server failures without having to reopen files.
	Persistent Handles are advertised through the SMB3 protocol capability
	SMB2_CAP_PERSISTENT_HANDLES. To make use of them on a share, both the
	global "persistent handles" option and the per-share
	"continuous availability" option must be enabled.
	Because Persistent Handles require Samba to maintain SMB state, they
	are only available on shares configured for SMB-exclusive
	access. Specifically, they require:
	kernel oplocks = no
	kernel share modes = no
	posix locking = no
	These settings disable interoperability with local POSIX file access
	and NFS clients on the affected share.
	Administrators should be aware that Persistent Handles incur a
	significant performance cost. File handle metadata is synchronously
	persisted to durable storage for every open, update, lease, and close
	operation, increasing latency compared to traditional SMB file
	serving. For this reason, the feature is intended only for workloads
	that require Continuous Availability semantics and is not recommended
	for general-purpose file servers.
	On a cluster the handle state is kept in a volatile ctdb database that
	is replicated to every node, and additionally in a backup copy in a
	persistent ctdb database. Only that backup copy makes handles survive
	an outage of every node at the same time, for example a maintenance
	window in which the whole cluster is shut down and restarted, because
	that loses the volatile databases. Maintaining the backup is expensive:
	every change to the state of a persistent handle costs an additional
	cluster wide transaction, and that transaction is written to stable
	storage on every node.
	The new global option "persistent handles durability" to choose to
	which side of the tradeof, performance or durability, they want to
	lean on:
	persistent handles durability = full_outage
	  The default. The backup copy is maintained and handles survive an
	  outage of the whole cluster.
	persistent handles durability = partial_outage
	  The backup copy is not maintained. Handles survive any outage that
	  leaves at least one node running, which covers a node crash, a
	  rolling restart and the loss of all but one node, because the handle
	  state is still kept on every node of the cluster. Handles are lost if
	  every node is down at the same time. In exchange, every open, update,
	  lease and close operation becomes noticeably cheaper.
	This feature is currently considered experimental.
Cluster-wide rate limiting in vfs_aio_ratelimit
	The vfs_aio_ratelimit VFS module has been extended with cluster-wide
	coordination. When Samba clustering is enabled, the configured per-share rate
	limits are now enforced as a global ceiling across the entire cluster rather than
	per-node. Each share's limits are tracked and enforced independently.
	Coordination is handled by a new per-node daemon, ratelimitd, which aggregates
	activity from all smbd processes on the node and broadcasts node-level summaries
	to the rest of the cluster via Samba's messaging layer.
	To enable this feature, Samba must be built with --with-ratelimitd.
New Ceph RGW VFS module
	Introduced a new VFS module, vfs_ceph_rgw, which uses the librgw APIs to
	export Ceph Object Gateway buckets as SMB shares. It provides a hierarchical
	view of the objects stored in a bucket, allowing them to be accessed as files
	and folders. The module supports standard POSIX uids and gids, as well as most
	basic file operations.
JSON Audit logging
	The two leading spaces before the opening '{' on JSON audit log lines have been
	removed. And any embedded new line characters '\n' are converted to spaces.
Domain encryption types changed to AES by default
	The default value of the smb.conf option ‘kdc default domain supported
	enctypes’ now corresponds to ‘aes128-cts-hmac-sha1-96
	aes256-cts-hmac-sha1-96’ (both AES encryption types) if the domain
	functional level is 2008 or higher. This addresses CVE-2026-20833.
CTDB changes
	* CTDB's locations for locks, PID files and sockets now use ctdb/
	  subdirectories of the Samba locations configured at build time.
	  This means that the relevant top-level Samba configure options
	  (--with-lockdir, --with-piddir, --with-sockets-dir) are now also
	  used by CTDB.
	  The standalone CTDB build does not support these options.  However,
	  it is generally only used for developer/standalone testing.
	* The CTDB initscript (ctdb.init) has been moved to ctdb/doc/examples.
	  This recognises that it isn't installed by default so it is
	  basically unmaintained and untested.
	* Monitoring of (infrastructure) hosts is now supported.  A good use
	  of this is to monitor DNS servers.  See the NETWORK MONITORING
	  section in ctdb-script.options(5) for more details.
	* The detect_init_style() script function and associated
	  CTDB_INIT_STYLE variable are deprecated, so will be removed in a
	  future release.  Use the new, more general CTDB_PLATFORM_STYLE
	  variable instead.  This may affect site-local CTDB (event) scripts.
	  See ctdb.sysconfig(5) for more details.
Cluster functional level
	Samba now maintains a cluster functional level, a cluster wide value
	 that is kept as persistent global state and shared by all nodes. It
	 is similar in spirit to the domain and forest functional levels known
	 from Active Directory.
	The purpose of the functional level is to allow controlled upgrades
	 of a cluster. New database formats, new internal messages and other
	 changes that affect the communication between nodes are gated behind
	 an explicit raise of the cluster functional level. As long as the
	 level has not been raised, all nodes keep writing and sending the old
	 formats, so that nodes running different Samba versions can
	 interoperate during a rolling upgrade.
	A level consists of a major and a minor number, e.g. "1.0". Samba
	 4.25 implements the initial level 1.0, which is currently also the
	 only defined level.
	On a non-clustered server the highest supported level is always
	 activated automatically, there is nothing to configure or maintain.
	On a cluster the currently active level is stored persistently in
	 cluster_level.tdb. On a fresh cluster it is initialized with the
	 highest level supported by the second node that starts up. From then
	 on the level never changes on its own, it is only raised when an
	 administrator explicitly asks for it. A node that does not support
	 the currently active level refuses to start, which keeps a node
	 running an incompatible Samba version from joining the cluster.
	Once all nodes of a cluster have been upgraded to a new Samba
	 version, the administrator can raise the cluster functional level.
	The new 'net clusterlevel' subcommands are available for this:
	  net clusterlevel features
	        List the cluster functional levels supported by the
	        installed binaries.
	  net clusterlevel show
	        Show the currently active cluster functional level.
	  net clusterlevel showall
	        Show the levels supported by each node of the cluster,
	        together with the currently active level and the highest
	        level that could be activated.
	  net clusterlevel upgrade [--test] [--apply]
	        Raise the active cluster functional level to the highest
	        level supported by all nodes. With --test (the default) only
	        checks and reports whether the upgrade would be possible,
	        --apply performs the actual upgrade.
	Note that raising the cluster functional level is a one way
	 operation, there is no way to lower it again. It should only be done
	 once all nodes have been upgraded and the new version has proven to
	 work.
	The current implementation is deliberately strict: an upgrade is only
	 possible if all nodes announce the exact same set of supported
	 levels, which in practice means that all nodes run the same Samba
	 version.
	Also note that this change only prepares for the future. It
	 is not designed help with upgrades from older versions before
	 4.25 to 4.25 as a target. However vendors are free to use their
	 own backports and use custom levels >= 0.1 and < 1.0.
smb.conf changes
  Parameter Name                          Description     Default
  --------------                          -----------     -------
  allow dcerpc auth level connect         deprecated
  kdc default domain supported enctypes   New default     AES encryption types (if supported by domain)
  getwd cache                             Removed
  persistent handles                      New             no
  persistent handles durability           New             full_outage
  continuous availability                 New             no
bug fixes
   * BUG 16234: persistent handles options in WHATSNEW need fixups
   * BUG 16237: Bugs in Persistent Handles database layer code
   * BUG 16253: smbstatus byte-range locks broken by Persistent Handle changes
   * BUG 16233: "getwd cache" removal needs more work
   * BUG 15962: SMB3 SESSION SETUP responses must always be signed
   * BUG 16081: winbindd_child_msg_filter: talloc_get_type_abort crashes when
     winbind max domain connections > 1
   * BUG 16239: Fix parsing of uppercase "0X" hex values in the "kdc default
     domain      supported enctypes" smb.conf parameter.
   * BUG 16240: smbd temporary mkdir name can exceed NAME_MAX for otherwise
     valid client names
   * BUG 15988: Samba internal DNS service doesn't handle switch from UDP to TCP
     when packet is larger than 4k
   * BUG 16194: autobuild failures need to be reported in a more verbose way
   * BUG 16219: samba-cluster-support should depend on ndr-samba
   * BUG 16223: DNS scavenging happens even if fAging is FALSE
   * BUG 16226: samba-tool dns zoneoptions $DC_SERVER_IP
     _msdcs.addom.samba.example.com -P --aging=1 gives
     WERR_INTERNAL_DB_ERROR
   * BUG 16225: dns client problems related to EDNS usage

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/packages/aarch64/samba | 4 ++++
 config/rootfiles/packages/riscv64/samba | 4 ++++
 config/rootfiles/packages/x86_64/samba  | 4 ++++
 lfs/samba                               | 6 +++---
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/config/rootfiles/packages/aarch64/samba b/config/rootfiles/packages/aarch64/samba
index 53f1263b1..007224d0a 100644
--- a/config/rootfiles/packages/aarch64/samba
+++ b/config/rootfiles/packages/aarch64/samba
@@ -215,10 +215,12 @@ usr/lib/python3.10/site-packages/samba/dcerpc/drsblobs.cpython-310-aarch64-linux
 usr/lib/python3.10/site-packages/samba/dcerpc/drsuapi.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/echo.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/epmapper.cpython-310-aarch64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/file_id.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gkdi.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gmsa.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/idmap.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/initshutdown.cpython-310-aarch64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/ioctl.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/irpc.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/keycredlink.cpython-310-aarch64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/krb5ccache.cpython-310-aarch64-linux-gnu.so
@@ -687,9 +689,11 @@ usr/lib/python3.10/site-packages/samba/tdb_util.py
 #usr/lib/python3.10/site-packages/samba/tests/netbios.py
 #usr/lib/python3.10/site-packages/samba/tests/netcmd.py
 #usr/lib/python3.10/site-packages/samba/tests/netlogonsvc.py
+#usr/lib/python3.10/site-packages/samba/tests/nps_echo_test.py
 #usr/lib/python3.10/site-packages/samba/tests/nss
 #usr/lib/python3.10/site-packages/samba/tests/nss/base.py
 #usr/lib/python3.10/site-packages/samba/tests/nss/group.py
+#usr/lib/python3.10/site-packages/samba/tests/ntacl_resource_attr_ace.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls_backup.py
 #usr/lib/python3.10/site-packages/samba/tests/ntlm_auth.py
diff --git a/config/rootfiles/packages/riscv64/samba b/config/rootfiles/packages/riscv64/samba
index 8fe9cdeff..ee2d520ce 100644
--- a/config/rootfiles/packages/riscv64/samba
+++ b/config/rootfiles/packages/riscv64/samba
@@ -215,10 +215,12 @@ usr/lib/python3.10/site-packages/samba/dcerpc/drsblobs.cpython-310-riscv64-linux
 usr/lib/python3.10/site-packages/samba/dcerpc/drsuapi.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/echo.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/epmapper.cpython-310-riscv64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/file_id.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gkdi.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gmsa.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/idmap.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/initshutdown.cpython-310-riscv64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/ioctl.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/irpc.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/keycredlink.cpython-310-riscv64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/krb5ccache.cpython-310-riscv64-linux-gnu.so
@@ -687,9 +689,11 @@ usr/lib/python3.10/site-packages/samba/tdb_util.py
 #usr/lib/python3.10/site-packages/samba/tests/netbios.py
 #usr/lib/python3.10/site-packages/samba/tests/netcmd.py
 #usr/lib/python3.10/site-packages/samba/tests/netlogonsvc.py
+#usr/lib/python3.10/site-packages/samba/tests/nps_echo_test.py
 #usr/lib/python3.10/site-packages/samba/tests/nss
 #usr/lib/python3.10/site-packages/samba/tests/nss/base.py
 #usr/lib/python3.10/site-packages/samba/tests/nss/group.py
+#usr/lib/python3.10/site-packages/samba/tests/ntacl_resource_attr_ace.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls_backup.py
 #usr/lib/python3.10/site-packages/samba/tests/ntlm_auth.py
diff --git a/config/rootfiles/packages/x86_64/samba b/config/rootfiles/packages/x86_64/samba
index 31677eb84..937d1ec54 100644
--- a/config/rootfiles/packages/x86_64/samba
+++ b/config/rootfiles/packages/x86_64/samba
@@ -215,10 +215,12 @@ usr/lib/python3.10/site-packages/samba/dcerpc/drsblobs.cpython-310-x86_64-linux-
 usr/lib/python3.10/site-packages/samba/dcerpc/drsuapi.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/echo.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/epmapper.cpython-310-x86_64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/file_id.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gkdi.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/gmsa.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/idmap.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/initshutdown.cpython-310-x86_64-linux-gnu.so
+usr/lib/python3.10/site-packages/samba/dcerpc/ioctl.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/irpc.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/keycredlink.cpython-310-x86_64-linux-gnu.so
 usr/lib/python3.10/site-packages/samba/dcerpc/krb5ccache.cpython-310-x86_64-linux-gnu.so
@@ -687,9 +689,11 @@ usr/lib/python3.10/site-packages/samba/tdb_util.py
 #usr/lib/python3.10/site-packages/samba/tests/netbios.py
 #usr/lib/python3.10/site-packages/samba/tests/netcmd.py
 #usr/lib/python3.10/site-packages/samba/tests/netlogonsvc.py
+#usr/lib/python3.10/site-packages/samba/tests/nps_echo_test.py
 #usr/lib/python3.10/site-packages/samba/tests/nss
 #usr/lib/python3.10/site-packages/samba/tests/nss/base.py
 #usr/lib/python3.10/site-packages/samba/tests/nss/group.py
+#usr/lib/python3.10/site-packages/samba/tests/ntacl_resource_attr_ace.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls.py
 #usr/lib/python3.10/site-packages/samba/tests/ntacls_backup.py
 #usr/lib/python3.10/site-packages/samba/tests/ntlm_auth.py
diff --git a/lfs/samba b/lfs/samba
index c5220fc11..34d665914 100644
--- a/lfs/samba
+++ b/lfs/samba
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.24.7
+VER        = 4.25.0
 SUMMARY    = A SMB/CIFS File, Print, and Authentication Server
 
 THISAPP    = samba-$(VER)
@@ -33,7 +33,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = samba
-PAK_VER    = 124
+PAK_VER    = 125
 
 DEPS       = avahi libtalloc perl-Parse-Yapp wsdd
 
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 79f5093db219798081eddadf1c81c0337d97563bbd3f9047f14538c557c61b6d58dd57d97bde957a7d84f61f1fbe547cd85a4f6f1e4bff6fe4b86d0772223501
+$(DL_FILE)_BLAKE2 = 556455a628732a084826f2cf180c75071ad5f89f0bf8a0e728d79a450e0c1cbab6ba5869ec48816b2a886ad5b6d4db1a18a31d80ba7dc2f7972f4f0e470f67fb
 
 install : $(TARGET)
 
-- 
2.55.0



                 reply	other threads:[~2026-09-30  8:28 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260930082824.61797-1-adolf.belka@ipfire.org \
    --to=adolf.belka@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox