The branch, v4-22-stable has been updated via 7b3228b88ee VERSION: Disable GIT_SNAPSHOT for the 4.22.0 release. via 35707224751 WHATSNEW: Add release notes for Samba 4.22.0. via 36e71a04144 WHATSNEW: mention schema upgrade speed improvements via 0d4a204cdb1 vfs_shadow_copy2: Use VFS interface to derive mount point via ca2add8c968 s3:smbd: disable "vfs mkdir use tmp name = auto" on OpenBSD via 1fab55c3be1 ctdb-utils: Fix incorrect FSF address via a210c2b2bc5 python:tdb_util: "samba-tool domain backup offline" hangs via 4d44f8c9ecd VERSION: Bump version up to Samba 4.22.0rc5... from 70cb2fe5fb5 VERSION: Disable GIT_SNAPSHOT for the 4.22.0rc4 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-22-stable - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: VERSION | 2 +- WHATSNEW.txt | 47 +++++++++++++++++++------- ctdb/utils/pmda/Install | 3 +- ctdb/utils/pmda/Remove | 3 +- ctdb/utils/pmda/domain.h | 3 +- ctdb/utils/pmda/help | 3 +- ctdb/utils/pmda/pmda_ctdb.c | 3 +- ctdb/utils/pmda/pmns | 3 +- docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml | 2 ++ python/samba/tdb_util.py | 5 +-- source3/modules/vfs_shadow_copy2.c | 31 +++++++++++------ source3/smbd/open.c | 13 +++++++ source3/wscript | 3 ++ 13 files changed, 84 insertions(+), 37 deletions(-) Changeset truncated at 500 lines: diff --git a/VERSION b/VERSION index 3527d601e67..cf70dc38672 100644 --- a/VERSION +++ b/VERSION @@ -89,7 +89,7 @@ SAMBA_VERSION_PRE_RELEASE= # e.g. SAMBA_VERSION_RC_RELEASE=1 # # -> "3.0.0rc1" # ######################################################## -SAMBA_VERSION_RC_RELEASE=4 +SAMBA_VERSION_RC_RELEASE= ######################################################## # To mark SVN snapshots this should be set to 'yes' # diff --git a/WHATSNEW.txt b/WHATSNEW.txt index ccb811920bb..90f5334d2a7 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,16 +1,11 @@ -Release Announcements -===================== + ============================== + Release Notes for Samba 4.22.0 + March 06, 2025 + ============================== -This is the fourth release candidate of Samba 4.22. 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.22 will be the next version of the Samba suite. - - -UPGRADING -========= +This is the first stable release of the Samba 4.22 release series. +Please read the release notes carefully before upgrading. NEW FEATURES/CHANGES @@ -50,6 +45,14 @@ parameters include `himmelblaud_sfa_fallback`, `himmelblaud_hello_enabled`, and `himmelblaud_hsm_pin_path`. To enable, configure Samba with `--enable-rust --with-himmelblau`. +AD DC schema upgrade and provision performance improvements +----------------------------------------------------------- + +By increasing the LDB index cache size for certain offline operations +that are likely to require large transactions, these are now several +times faster. + + REMOVED FEATURES ================ @@ -96,6 +99,26 @@ smb.conf changes cldap port Removed +CHANGES SINCE 4.22.0rc4 +======================= + +o Ralph Boehme <s...@samba.org> + * BUG 15801: `NT_STATUS_ACCESS_DENIED making remote directory` on OpenBSD. + +o Anoop C S <anoo...@samba.org> + * BUG 15797: Unable to connect to CephFS subvolume shares with + vfs_shadow_copy2. + +o Stefan Metzmacher <me...@samba.org> + * BUG 15801: `NT_STATUS_ACCESS_DENIED making remote directory` on OpenBSD. + +o Martin Schwenke <mschwe...@ddn.com> + * BUG 15820: Incorrect FSF address in ctdb pcp scripts. + +o Andrea Venturoli <m...@netfence.it> + * BUG 15804: "samba-tool domain backup offline" hangs. + + CHANGES SINCE 4.22.0rc3 ======================= @@ -136,7 +159,7 @@ o Shweta Sodani <ssod...@redhat.com> * BUG 15703: General improvements for vfs_ceph_new module. -CHANGES SINCE 4.21.0rc1 +CHANGES SINCE 4.22.0rc1 ======================= o Björn Baumbach <b...@sernet.de> diff --git a/ctdb/utils/pmda/Install b/ctdb/utils/pmda/Install index a56a63506a8..bd12b7486cf 100644 --- a/ctdb/utils/pmda/Install +++ b/ctdb/utils/pmda/Install @@ -13,8 +13,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # Install the ctdb PMDA and/or PMNS # diff --git a/ctdb/utils/pmda/Remove b/ctdb/utils/pmda/Remove index 7d1c509e50e..8bf0fe76e15 100644 --- a/ctdb/utils/pmda/Remove +++ b/ctdb/utils/pmda/Remove @@ -13,8 +13,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # Remove the ctdb PMDA # diff --git a/ctdb/utils/pmda/domain.h b/ctdb/utils/pmda/domain.h index 0bed7fef599..b00d32d90dc 100644 --- a/ctdb/utils/pmda/domain.h +++ b/ctdb/utils/pmda/domain.h @@ -13,7 +13,6 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see <https://www.gnu.org/licenses/>. */ #define CTDB 110 diff --git a/ctdb/utils/pmda/help b/ctdb/utils/pmda/help index 0e9984eab3a..26b5385b0da 100644 --- a/ctdb/utils/pmda/help +++ b/ctdb/utils/pmda/help @@ -12,8 +12,7 @@ # for more details. # # You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# with this program; if not, see <https://www.gnu.org/licenses/>. # # ctdb PMDA help file in the ASCII format # diff --git a/ctdb/utils/pmda/pmda_ctdb.c b/ctdb/utils/pmda/pmda_ctdb.c index 4f7933de9c5..7ac8a3b38d1 100644 --- a/ctdb/utils/pmda/pmda_ctdb.c +++ b/ctdb/utils/pmda/pmda_ctdb.c @@ -15,8 +15,7 @@ * for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * with this program; if not, see <https://www.gnu.org/licenses/>. */ #include "replace.h" diff --git a/ctdb/utils/pmda/pmns b/ctdb/utils/pmda/pmns index dc7e3ac2bfa..c9f6644d52f 100644 --- a/ctdb/utils/pmda/pmns +++ b/ctdb/utils/pmda/pmns @@ -15,8 +15,7 @@ * for more details. * * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * with this program; if not, see <https://www.gnu.org/licenses/>. */ ctdb { diff --git a/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml b/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml index 92a39f8f541..a0d733c47f8 100644 --- a/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml +++ b/docs-xml/smbdotconf/vfs/vfsmkdirusetmpname.xml @@ -31,6 +31,8 @@ <smbconfoption name="inherit permissions"/>, <smbconfoption name="nt acl support"/> or <smbconfoption name="store dos attributes"/>. + Note on OpenBSD Auto (the default) is mapped to <constant>no</constant>, + see <ulink url="https://bugzilla.samba.org/show_bug.cgi?id=15801">https://bugzilla.samba.org/show_bug.cgi?id=15801</ulink>. </para> <para> diff --git a/python/samba/tdb_util.py b/python/samba/tdb_util.py index 99b6e02e03f..202fbdb3f8b 100644 --- a/python/samba/tdb_util.py +++ b/python/samba/tdb_util.py @@ -37,9 +37,10 @@ def tdb_copy(file1, file2, readonly=False): raise FileNotFoundError(2, "could not find tdbbackup tool: " "is tdb-tools installed?") - tdbbackup_cmd = [toolpath, "-s", ".copy.tdb", file1] if readonly: - tdbbackup_cmd.append("-r") + tdbbackup_cmd = [toolpath, "-r", "-s", ".copy.tdb", file1] + else: + tdbbackup_cmd = [toolpath, "-s", ".copy.tdb", file1] status = subprocess.check_call(tdbbackup_cmd, close_fds=True, shell=False) diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c index 8db3e664f19..42626653e0f 100644 --- a/source3/modules/vfs_shadow_copy2.c +++ b/source3/modules/vfs_shadow_copy2.c @@ -726,31 +726,42 @@ static bool _shadow_copy2_strip_snapshot_converted(TALLOC_CTX *mem_ctx, static char *shadow_copy2_find_mount_point(TALLOC_CTX *mem_ctx, vfs_handle_struct *handle) { - char *path = talloc_strdup(mem_ctx, handle->conn->connectpath); + struct smb_filename *smb_fname_cpath = NULL; dev_t dev; - struct stat st; char *p; - if (stat(path, &st) != 0) { - talloc_free(path); + smb_fname_cpath = synthetic_smb_fname(mem_ctx, + handle->conn->connectpath, + NULL, + NULL, + 0, + 0); + if (smb_fname_cpath == NULL) { + errno = ENOMEM; + return NULL; + } + + if (SMB_VFS_NEXT_STAT(handle, smb_fname_cpath) != 0) { + TALLOC_FREE(smb_fname_cpath); return NULL; } - dev = st.st_dev; + dev = smb_fname_cpath->st.st_ex_dev; - while ((p = strrchr(path, '/')) && p > path) { + while ((p = strrchr(smb_fname_cpath->base_name, '/')) && + p > smb_fname_cpath->base_name) { *p = 0; - if (stat(path, &st) != 0) { - talloc_free(path); + if (SMB_VFS_NEXT_STAT(handle, smb_fname_cpath) != 0) { + TALLOC_FREE(smb_fname_cpath); return NULL; } - if (st.st_dev != dev) { + if (smb_fname_cpath->st.st_ex_dev != dev) { *p = '/'; break; } } - return path; + return smb_fname_cpath->base_name; } /** diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 3982c39ed47..771734f6203 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -4564,6 +4564,19 @@ static NTSTATUS mkdir_internal(connection_struct *conn, need_tmpname = true; } +#ifdef OPENBSD + /* + * OpenBSD requires to have write permissions + * on both source and destimation of renameat(), + * see https://bugzilla.samba.org/show_bug.cgi?id=15801 + * + * For now just disable the new code by default. + */ + if (vfs_use_tmp == Auto) { + vfs_use_tmp = false; + } +#endif + if (vfs_use_tmp != Auto) { need_tmpname = vfs_use_tmp; } diff --git a/source3/wscript b/source3/wscript index 26327cba32f..64ce229d030 100644 --- a/source3/wscript +++ b/source3/wscript @@ -457,6 +457,9 @@ vsyslog conf.DEFINE('HAVE_FREEBSD_SUNACL_H', '1') conf.CHECK_FUNCS_IN(['acl'], 'sunacl') conf.DEFINE('STAT_ST_BLOCKSIZE', '512') + elif (host_os.rfind('openbsd') > -1): + conf.DEFINE('OPENBSD', 1) + conf.DEFINE('STAT_ST_BLOCKSIZE', '512') elif (host_os.rfind('irix') > -1): conf.DEFINE('IRIX', 1) conf.DEFINE('STAT_ST_BLOCKSIZE', '512') -- Samba Shared Repository