Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Oct 2025 14:31:16 GMT
From:      Mateusz Piotrowski <0mp@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: bbae646f6b6d - main - net/samba422: Update to 4.22.3
Message-ID:  <202510221431.59MEVGXe081413@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by 0mp:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bbae646f6b6d0c9a8c25c8c7546336890f6db59b

commit bbae646f6b6d0c9a8c25c8c7546336890f6db59b
Author:     Mateusz Piotrowski <0mp@FreeBSD.org>
AuthorDate: 2025-10-22 14:20:07 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2025-10-22 14:24:37 +0000

    net/samba422: Update to 4.22.3
    
    Most of this patch is Andrej Ebert's work. I fixed some of the remaining
    issues and prepared it for landing in the ports tree under sponsorship
    from Klara, Inc.
    
    Changes in the port include:
    
    - There's an unconditional dependency on devel/icu now,
      since Samba pulls it in if it's in the build environment and
      complains afterwards if icu is bumped without a Samba rebuild.
    
    - Remove GSSAPI Builtin converters/p5-JSON build dependency,
      it's not needed since 4.20 as per upstream:
      https://www.samba.org/samba/history/samba-4.20.0.html
    
    - Change the LDAP_CONFIGURE option to --with-ldap/--without-ldap, the
      --with-openldap was patched in by the removed patch 0013.
    
    - Fix building with AD_DC disabled (by yasu@FreeBSD.org).
    
    The following paragraphs explain why certain files were added, modified, or
    deleted.
    
    0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.patch was removed.
    This patch did 3 things:
    - Introduce --with-openldap that we don't use anymore.
    - Increase verbosity of messages during buildtime, which we can drop.
    - Change the default of --with-libiconv, which we workaround now by passing
      ICONV_PREFIX explicitly.
    
    0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch was split into:
    - patch-source3_smbd_pysmbd.c
    - patch-python_samba_join.py
    - patch-python_samba_provision_____init____.py
    
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch was split into:
    - patch-source3_modules_vfs__freebsd.c
    - patch-docs-xml_manpages_vfs__freebsd.8.xml
    - patch-docs-xml_wscript__build
    - patch-source3_lib_sysacls.c
    - patch-source3_modules_wscript__build
    - patch-source3_param_loadparm.c
    
    0028-Fix-rl_completion_func_t.patch was removed. Those changes seem to already
    be present in this release of Samba.
    
    0099-s3-modules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch was removed as it is
    no longer necessary thanks to patch-source3_modules_vfs__zfsacl.c.
    
    0100-Fix-pathref-handling-for-FreeBSD-13plus_samba42x.patch was removed as it
    has been superseded by 0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch.
    This change integrates the fdescfs patch from bug #284623, comment #20.
    
    0102-FreeBSD-vfs_freebsd-fix-sys_proc_fd_path-args.patch was moved to
    patch-source3_modules_vfs__freebsd.c.
    
    patch-docs-xml_manpages_vfs__freebsd.8.xml contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    patch-docs-xml_wscript__build contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    patch-lib_ldb_wscript was removed as ldb is now bundled and private
    per default, as upstream recommends. Samba now conflicts with databases/ldb*.
    Subsequent commits to net/samba422 will make the bundled ldb public, so that
    other ports in the FreeBSD Ports Collection can satisfy their ldb dependency
    requirements with Samba 4.22.
    
    patch-lib_util_util_crypt_c was added to help Samba find the right headers.
    Obtained from:
    https://github.com/openbsd/ports/blob/master/net/samba/patches/patch-lib_util_util_crypt_c.
    
    patch-lib_util_wscript__build was removed as it no longer applied cleanly.
    
    patch-python_samba_join.py contains parts of
    0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch.
    
    patch-python_samba_provision_____init____.py contains parts of
    0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch.
    
    patch-python_samba_tdb__util.py was removed as those changes were upstreamed
    and are shipped in this version of Samba. Refer to
    https://bugzilla.samba.org/show_bug.cgi?id=15804 for more details.
    
    patch-source3_lib_sysacls.c contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    patch-source3_modules_vfs__freebsd.c contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch and
    0102-FreeBSD-vfs_freebsd-fix-sys_proc_fd_path-args.patch.
    
    patch-source3_modules_vfs__zfsacl.c was added. It is a patch by Peter Eriksson
    from https://bugzilla.samba.org/show_bug.cgi?id=15376.  This change fixes
    setting ACLs from Windows for us, which was broken since Samba 4.19.
    
    patch-source3_modules_wscript__build contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    patch-source3_param_loadparm.c contains parts of
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    patch-source3_smbd_pysmbd.c contains parts of
    0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch.
    
    patch-source3_wscript__build was removed as it no longer applied cleanly.
    
    In future updates we should probably bring back
    0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch and
    0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch.
    
    Changes:        https://wiki.samba.org/index.php/Samba_Features_added/changed#Samba_4.21
    Changes:        https://wiki.samba.org/index.php/Samba_Features_added/changed#Samba_4.22
    
    PR:             284623, 287985
    Reported by:    Andrej Ebert <andrej@ebert.su>
    Reviewed by:    Michael Zoon <zoon01@xigmanas.com>
    Tested by:      ghelmer@, kiwi@
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D52168
    Co-authored-by: Andrej Ebert <andrej@ebert.su>
    Co-authored-by: Yasuhiro Kimura <yasu@FreeBSD.org>
---
 net/Makefile                                       |   1 +
 net/samba422/Makefile                              |  58 +--
 net/samba422/distinfo                              |   6 +-
 ...onal-msg-parameter-to-CHECK_LIB-so-it-can.patch |  70 ---
 ...ck-ZFS-provisioning-code-by-iXsystems-Inc.patch | 367 ---------------
 .../files/0028-Fix-rl_completion_func_t.patch      |  32 --
 ...ules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch | 164 -------
 ...href-handling-for-FreeBSD-13plus_samba42x.patch | 515 ---------------------
 ...BSD-vfs_freebsd-fix-sys_proc_fd_path-args.patch |  53 ---
 net/samba422/files/README.FreeBSD.in               |   7 +-
 .../patch-docs-xml_manpages_vfs__freebsd.8.xml     | 172 +++++++
 net/samba422/files/patch-docs-xml_wscript__build   |  10 +
 net/samba422/files/patch-lib_ldb_wscript           |  61 ---
 net/samba422/files/patch-lib_util_util_crypt_c     |  15 +
 net/samba422/files/patch-lib_util_wscript__build   |  11 -
 net/samba422/files/patch-python_samba_join.py      |  11 +
 .../patch-python_samba_provision_____init____.py   |  71 +++
 net/samba422/files/patch-python_samba_tdb__util.py |  15 -
 net/samba422/files/patch-source3_lib_sysacls.c     |  19 +
 ....patch => patch-source3_modules_vfs__freebsd.c} | 233 +---------
 .../files/patch-source3_modules_vfs__zfsacl.c      | 182 ++++++++
 .../files/patch-source3_modules_wscript__build     |  16 +
 net/samba422/files/patch-source3_param_loadparm.c  |  32 ++
 net/samba422/files/patch-source3_smbd_pysmbd.c     | 230 +++++++++
 net/samba422/files/patch-source3_wscript__build    |  44 --
 net/samba422/pkg-plist                             | 118 +++--
 net/samba422/pkg-plist.ad_dc                       |   8 +-
 net/samba422/pkg-plist.python                      |  73 ++-
 28 files changed, 915 insertions(+), 1679 deletions(-)

diff --git a/net/Makefile b/net/Makefile
index 030e053eb1a9..6dd01d26c59b 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1489,6 +1489,7 @@
     SUBDIR += samba416
     SUBDIR += samba419
     SUBDIR += samba420
+    SUBDIR += samba422
     SUBDIR += samplicator
     SUBDIR += savvycan
     SUBDIR += sbm
diff --git a/net/samba422/Makefile b/net/samba422/Makefile
index 3696bb72befa..5451fc1ac479 100644
--- a/net/samba422/Makefile
+++ b/net/samba422/Makefile
@@ -1,6 +1,5 @@
-PORTNAME=			${SAMBA4_BASENAME}420
+PORTNAME=			${SAMBA4_BASENAME}422
 PORTVERSION=			${SAMBA4_VERSION}
-PORTREVISION=			10
 CATEGORIES?=			net
 MASTER_SITES=			SAMBA/samba/stable SAMBA/samba/rc
 DISTNAME=			${SAMBA4_DISTNAME}
@@ -29,7 +28,6 @@ EXTRA_PATCHES=			\
 				${PATCHDIR}/0010-Add-option-with-pkgconfigdir-to-specify-alternative-.patch:-p1 \
 				${PATCHDIR}/0011-Use-provided-by-port-location-of-the-XML-catalog.patch:-p1 \
 				${PATCHDIR}/0012-Create-shared-libraries-according-to-the-FreeBSD-spe.patch:-p1 \
-				${PATCHDIR}/0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.patch:-p1 \
 				${PATCHDIR}/0014-Add-option-to-disable-CTDB-tests-failing-on-FreeBSD-.patch:-p1 \
 				${PATCHDIR}/0015-Add-extra-debug-class-to-trck-down-DB-locking-code.patch:-p1 \
 				${PATCHDIR}/0016-Make-ldb_schema_attribute_compare-a-stable-comparisi.patch:-p1 \
@@ -40,18 +38,12 @@ EXTRA_PATCHES=			\
 				${PATCHDIR}/0021-Fix-casting-warnings-in-the-nfs_quota-debug-message.patch:-p1 \
 				${PATCHDIR}/0022-Clean-up-UTMP-handling-code-and-add-FreeBSD-support..patch:-p1 \
 				${PATCHDIR}/0023-Add-cmd_get_quota-test-function-into-vfstest-to-test.patch:-p1 \
-				${PATCHDIR}/0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch:-p1 \
 				${PATCHDIR}/0025-From-d9b748869a8f4018ebee302aae8246bf29f60309-Mon-Se.patch:-p1 \
-				${PATCHDIR}/0026-vfs-add-a-compatibility-option-to-the-vfs_streams_xa.patch:-p1 \
-				${PATCHDIR}/0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch:-p1 \
-				${PATCHDIR}/0028-Fix-rl_completion_func_t.patch:-p1 \
 				${PATCHDIR}/0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch \
-				${PATCHDIR}/0100-Fix-pathref-handling-for-FreeBSD-13plus_samba42x.patch:-p1 \
-				${PATCHDIR}/0102-FreeBSD-vfs_freebsd-fix-sys_proc_fd_path-args.patch:-p1
 
 SAMBA4_BASENAME=		samba
 SAMBA4_PORTNAME=		${SAMBA4_BASENAME}4
-SAMBA4_VERSION=			4.20.7
+SAMBA4_VERSION=			4.22.3
 SAMBA4_DISTNAME=		${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|}
 
 WRKSRC?=			${WRKDIR}/${DISTNAME}
@@ -98,7 +90,7 @@ CONFIGURE_ENV=			PTHREAD_LDFLAGS="-lpthread" \
 				PYTHONHASHSEED=1
 MAKE_ENV=			PYTHONHASHSEED=1
 
-USES=				bison compiler:c++11-lang iconv localbase:ldflags \
+USES=				compiler:c++11-lang iconv localbase:ldflags \
 				perl5 pkgconfig shebangfix waf gettext-runtime
 USE_PERL5=			build
 USE_LDCONFIG=			${SAMBA4_LIBDIR}
@@ -116,8 +108,8 @@ SUB_LIST=			PKGCONFIGDIR=${PKGCONFIGDIR_REL}
 ##############################################################################
 OPTIONS_SUB=			yes
 
-OPTIONS_DEFINE=			AD_DC ADS CLUSTER CUPS DOCS FAM GPGME \
-				LDAP MANPAGES PROFILE PYTHON3 QUOTAS \
+OPTIONS_DEFINE=			AD_DC ADS CLUSTER CUPS DOCS FAM LDAP GPGME \
+				MANPAGES PROFILE PYTHON3 QUOTAS \
 				SYSLOG UTMP
 #OPTIONS_DEFINE+=		DEVELOPER MEMORY_DEBUG
 
@@ -135,7 +127,7 @@ OPTIONS_DEFAULT=		AD_DC ADS DOCS FAM LDAP MANPAGES \
 				PROFILE PYTHON3 QUOTAS SYSLOG UTMP \
 				FRUIT GSSAPI_BUILTIN AVAHI
 ##############################################################################
-ADS_DESC=			Active Directory client(implies LDAP)
+ADS_DESC=			Active Directory client
 AD_DC_DESC=			Active Directory Domain Controller(implies PYTHON3)
 CLUSTER_DESC=			Clustering support
 DEVELOPER_DESC=			With developer framework
@@ -177,6 +169,9 @@ LIB_DEPENDS+=			libgnutls.so:security/gnutls
 LIB_DEPENDS+=			libgcrypt.so:security/libgcrypt
 # NFSv4 ACL glue
 LIB_DEPENDS+=			libsunacl.so:sysutils/libsunacl
+# libicu
+LIB_DEPENDS+=			libicui18n.so:devel/icu
+LIB_DEPENDS+=			libicuuc.so:devel/icu
 # Jansson
 BUILD_DEPENDS+=			jansson>=2.10:devel/jansson
 RUN_DEPENDS+=			jansson>=2.10:devel/jansson
@@ -197,7 +192,7 @@ SAMBA4_BUNDLED_CMOCKA?=		no
 SAMBA4_BUNDLED_TALLOC?=		no
 SAMBA4_BUNDLED_TEVENT?=		no
 SAMBA4_BUNDLED_TDB?=		no
-SAMBA4_BUNDLED_LDB?=		no
+SAMBA4_BUNDLED_LDB?=		yes
 # cmocka
 .if defined(SAMBA4_BUNDLED_CMOCKA) && ${SAMBA4_BUNDLED_CMOCKA} == yes
 SAMBA4_BUNDLED_LIBS+=		cmocka
@@ -218,8 +213,8 @@ PLIST_SUB+=			SAMBA4_BUNDLED_TALLOC=""
 SUB_LIST+=			SAMBA4_BUNDLED_TALLOC=""
 .else
 SAMBA4_BUNDLED_LIBS+=		!talloc
-BUILD_DEPENDS+=			talloc242>=2.4.2:devel/talloc242
-RUN_DEPENDS+=			talloc242>=2.4.2:devel/talloc242
+BUILD_DEPENDS+=			talloc243>=2.4.3:devel/talloc243
+RUN_DEPENDS+=			talloc243>=2.4.3:devel/talloc243
 PLIST_SUB+=			SAMBA4_BUNDLED_TALLOC="@comment "
 SUB_LIST+=			SAMBA4_BUNDLED_TALLOC="@comment "
 .endif
@@ -231,8 +226,8 @@ PLIST_SUB+=			SAMBA4_BUNDLED_TEVENT=""
 SUB_LIST+=			SAMBA4_BUNDLED_TEVENT=""
 .else
 SAMBA4_BUNDLED_LIBS+=		!tevent
-BUILD_DEPENDS+=			tevent016>=0.16.1:devel/tevent016
-RUN_DEPENDS+=			tevent016>=0.16.1:devel/tevent016
+BUILD_DEPENDS+=			tevent017>=0.17:devel/tevent017
+RUN_DEPENDS+=			tevent017>=0.17:devel/tevent017
 PLIST_SUB+=			SAMBA4_BUNDLED_TEVENT="@comment "
 SUB_LIST+=			SAMBA4_BUNDLED_TEVENT="@comment "
 .endif
@@ -244,8 +239,8 @@ PLIST_SUB+=			SAMBA4_BUNDLED_TDB=""
 SUB_LIST+=			SAMBA4_BUNDLED_TDB=""
 .else
 SAMBA4_BUNDLED_LIBS+=		!tdb
-BUILD_DEPENDS+=			tdb1410>=1.4.10:databases/tdb1410
-RUN_DEPENDS+=			tdb1410>=1.4.10:databases/tdb1410
+BUILD_DEPENDS+=			tdb1413>=1.4.13:databases/tdb1413
+RUN_DEPENDS+=			tdb1413>=1.4.13:databases/tdb1413
 PLIST_SUB+=			SAMBA4_BUNDLED_TDB="@comment "
 SUB_LIST+=			SAMBA4_BUNDLED_TDB="@comment "
 .endif
@@ -253,6 +248,7 @@ SUB_LIST+=			SAMBA4_BUNDLED_TDB="@comment "
 .if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes
 SAMBA4_BUNDLED_LDB=		yes
 SAMBA4_BUNDLED_LIBS+=		ldb
+CONFLICTS_INSTALL+=		ldb-* ldb2-*
 PLIST_SUB+=			SAMBA4_BUNDLED_LDB=""
 SUB_LIST+=			SAMBA4_BUNDLED_LDB=""
 SAMBA4_MODULEDIR=		${SAMBA4_LIBDIR}/modules
@@ -290,6 +286,7 @@ TEST_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_
 CONFIGURE_ARGS+=		\
 				--with-pam \
 				--with-iconv \
+				--with-libiconv="${ICONV_PREFIX}" \
 				--with-winbind \
 				--with-regedit \
 				--disable-rpath \
@@ -341,7 +338,7 @@ DEVELOPER_TEST_DEPENDS=		${GDB_CMD}:devel/gdb
 DEVELOPER_VARS_OFF=		GDB_CMD=true
 ##############################################################################
 AD_DC_IMPLIES=			PYTHON3
-AD_DC_CONFIGURE_OFF=		--without-ad-dc
+AD_DC_CONFIGURE_OFF=		--without-ad-dc --without-ldb-lmdb
 AD_DC_BUILD_DEPENDS=		${SAMBA4_LMDB_DEPENDS}
 AD_DC_RUN_DEPENDS=		${SAMBA4_LMDB_DEPENDS}
 AD_DC_VARS=			PLIST+=${PKGDIR}/pkg-plist.ad_dc
@@ -351,7 +348,6 @@ AD_DC_BUILD_DEPENDS+=		${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdo
 AD_DC_RUN_DEPENDS+=		${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown@${PY_FLAVOR} \
 				${PYTHON_PKGNAMEPREFIX}dnspython>=2.2.1:dns/py-dnspython@${PY_FLAVOR}
 
-ADS_IMPLIES=			LDAP
 ADS_CONFIGURE_WITH=		ads
 
 CLUSTER_CONFIGURE_WITH=		cluster-support
@@ -367,13 +363,7 @@ GPGME_CONFIGURE_WITH=		gpgme
 GPGME_LIB_DEPENDS=		libgpgme.so:security/gpgme
 GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
 
-.if exists(/usr/libexec/krb5kdc)
-GSSAPI_BUILTIN_USES=		gssapi
-GSSAPI_MIT_CONFIGURE_ON=	--with-system-mitkrb5 ${GSSAPIBASEDIR} \
-				--with-system-mitkdc=${GSSAPIBASEDIR}/libexec/krb5kdc
-.endif
-
-GSSAPI_BUILTIN_BUILD_DEPENDS=	p5-JSON>=4.0:converters/p5-JSON
+GSSAPI_BUILTIN_USES=		bison
 
 GSSAPI_MIT_CONFIGURE_ON=	--with-system-mitkrb5 ${GSSAPIBASEDIR} \
 				--with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \
@@ -386,7 +376,8 @@ GSSAPI_HEIMDAL_PREVENTS=	AD_DC
 GSSAPI_HEIMDAL_PREVENTS_MSG=	GSSAPI_HEIMDAL and AD_DC enable conflicting options
 
 LDAP_CONFIGURE_WITH=		ldap
-LDAP_CONFIGURE_ON=		--with-openldap=${LOCALBASE}
+LDAP_CONFIGURE_ON=		--with-ldap
+LDAP_CONFIGURE_OFF=		--without-ldap
 LDAP_USES=			ldap
 LDAP_VARS=			SAMBA4_MODULES+=idmap_ldap
 
@@ -617,11 +608,6 @@ post-install-fix-manpages:
 .for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8
 				${RM} ${STAGEDIR}${PREFIX}/share/man/man8/${f}
 .endfor
-.if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes
-.	for f in ldbadd.1 ldbdel.1 ldbedit.1 ldbmodify.1 ldbrename.1 ldbsearch.1
-				${MV} ${STAGEDIR}${PREFIX}/share/man/man1/${f} ${STAGEDIR}${PREFIX}/share/man/man1/samba-${f}
-.	endfor
-.endif
 
 .if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes
 .	for f in talloc.3
diff --git a/net/samba422/distinfo b/net/samba422/distinfo
index e6dc8bc2d49f..270840dcc448 100644
--- a/net/samba422/distinfo
+++ b/net/samba422/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1737565689
-SHA256 (samba-4.20.7.tar.gz) = 5afe8b66e612ab1c7e57c6146adfe98ec3ea9d40dee2962a2076a3d6d6973b78
-SIZE (samba-4.20.7.tar.gz) = 42523056
+TIMESTAMP = 1752217501
+SHA256 (samba-4.22.3.tar.gz) = 8fd7092629a3596d935cd7567d934979f94272918ec3affd0cc807934ecf22ba
+SIZE (samba-4.22.3.tar.gz) = 42869744
diff --git a/net/samba422/files/0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.patch b/net/samba422/files/0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.patch
deleted file mode 100644
index 0508ba5113dd..000000000000
--- a/net/samba422/files/0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 6be12b41eb0f71cfc25b5df6659dd176bd681621 Mon Sep 17 00:00:00 2001
-From: "Timur I. Bakeyev" <timur@FreeBSD.org>
-Date: Thu, 8 Sep 2022 00:25:05 +0200
-Subject: [PATCH 13/28] Pass additional msg parameter to CHECK_LIB(), so it can
- be transited to the conf.check(), which allows us to specify `match`
- parameter to opt.add_option().
-
-Signed-off-by: Timur I. Bakeyev <timur@FreeBSD.org>
----
- buildtools/wafsamba/samba_autoconf.py | 9 ++++++---
- buildtools/wafsamba/wscript           | 9 +++++++--
- 2 files changed, 13 insertions(+), 5 deletions(-)
-
-diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
-index cf87c8bb9ff..f6c72d99125 100644
---- a/buildtools/wafsamba/samba_autoconf.py
-+++ b/buildtools/wafsamba/samba_autoconf.py
-@@ -593,7 +593,7 @@ def library_flags(self, libs):
- 
- 
- @conf
--def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False):
-+def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False, msg=None):
-     '''check if a set of libraries exist as system libraries
- 
-     returns the sublist of libs that do exist as a syslib or []
-@@ -613,11 +613,14 @@ int foo()
-             ret.append(lib)
-             continue
- 
-+        if msg is None:
-+            msg = 'Checking for library %s' % lib
-+
-         (ccflags, ldflags, cpppath) = library_flags(conf, lib)
-         if shlib:
--            res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False)
-+            res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg)
-         else:
--            res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False)
-+            res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg)
- 
-         if not res:
-             if mandatory:
-diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
-index a4d6f3e5c49..c047e1e8b5a 100644
---- a/buildtools/wafsamba/wscript
-+++ b/buildtools/wafsamba/wscript
-@@ -133,12 +133,17 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''),
-                    help=("private library directory [PREFIX/lib/%s]" % Context.g_module.APPNAME),
-                    action="store", dest='PRIVATELIBDIR', default=None)
- 
-+    opt.add_option('--with-openldap',
-+                   help='additional directory to search for OpenLDAP libs',
-+                   action='store', dest='ldap_open', default=None,
-+                   match = ['Checking for library lber', 'Checking for library ldap'])
-+
-     opt.add_option('--with-libiconv',
-                    help='additional directory to search for libiconv',
--                   action='store', dest='iconv_open', default='/usr/local',
-+                   action='store', dest='iconv_open', default=None,
-                    match = ['Checking for library iconv', 'Checking for iconv_open', 'Checking for header iconv.h'])
-     opt.add_option('--without-gettext',
--                   help=("Disable use of gettext"),
-+                   help=("disable use of gettext"),
-                    action="store_true", dest='disable_gettext', default=False)
- 
-     gr = opt.option_group('developer options')
--- 
-2.37.1
-
diff --git a/net/samba422/files/0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch b/net/samba422/files/0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch
deleted file mode 100644
index 3746f0e479f6..000000000000
--- a/net/samba422/files/0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch
+++ /dev/null
@@ -1,367 +0,0 @@
-From d3024a4a2ff8015932a26a9df08e8ea5ff12a959 Mon Sep 17 00:00:00 2001
-From: "Timur I. Bakeyev" <timur@FreeBSD.org>
-Date: Thu, 4 Aug 2022 05:15:33 +0200
-Subject: [PATCH 24/28] Cherry-pick ZFS provisioning code by iXsystems Inc.
-
-* Check if sysvol is on filesystem with NFSv4 ACL's
-(cherry picked from commit ca86f52b78a7b6e7537454a69cf93e7b96210cba)
-
-* Only check targetdir if it is defined (I had assumed it was)
-(cherry picked from commit a29050cb2978ce23e3c04a859340dc2664c77a8a)
-
-* Kick samba a little bit into understanding NFSv4 ACL's
-(cherry picked from commit 1c7542ff4904b729e311e17464ee76582760c219)
-
-Signed-off-by: Timur I. Bakeyev <timur@FreeBSD.org>
----
- python/samba/provision/__init__.py |  22 +++-
- source3/lib/sysacls.c              |  10 ++
- source3/param/loadparm.c           |  20 +++
- source3/smbd/pysmbd.c              | 189 ++++++++++++++++++++++++++++-
- 4 files changed, 235 insertions(+), 6 deletions(-)
-
-diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
-index ff9b8fac916..20e41a9ad3e 100644
---- a/python/samba/provision/__init__.py
-+++ b/python/samba/provision/__init__.py
-@@ -1662,19 +1662,25 @@ def setsysvolacl(samdb, netlogon, sysvol, uid, gid, domainsid, dnsdomain,
-         s3conf = s3param.get_context()
-         s3conf.load(lp.configfile)
- 
--        file = tempfile.NamedTemporaryFile(dir=os.path.abspath(sysvol))
-+        sysvol_dir = os.path.abspath(sysvol)
-+
-+        set_simple_acl = smbd.set_simple_acl
-+        if smbd.has_nfsv4_acls(sysvol_dir):
-+            set_simple_acl = smbd.set_simple_nfsv4_acl
-+
-+        file = tempfile.NamedTemporaryFile(dir=sysvol_dir)
-         try:
-             try:
--                smbd.set_simple_acl(file.name, 0o755, system_session_unix(), gid)
-+                set_simple_acl(file.name, 0o755, system_session_unix(), gid)
-             except OSError:
--                if not smbd.have_posix_acls():
-+                if not smbd.have_posix_acls() and not smbd.have_nfsv4_acls():
-                     # This clue is only strictly correct for RPM and
-                     # Debian-like Linux systems, but hopefully other users
-                     # will get enough clue from it.
--                    raise ProvisioningError("Samba was compiled without the posix ACL support that s3fs requires.  "
-+                    raise ProvisioningError("Samba was compiled without the ACL support that s3fs requires.  "
-                                             "Try installing libacl1-dev or libacl-devel, then re-run configure and make.")
- 
--                raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires.  "
-+                raise ProvisioningError("Your filesystem or build does not support ACLs, which s3fs requires.  "
-                                         "Try the mounting the filesystem with the 'acl' option.")
-             try:
-                 smbd.chown(file.name, uid, gid, system_session_unix())
-@@ -1959,6 +1965,9 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths,
-         samdb.transaction_commit()
- 
-     if serverrole == "active directory domain controller":
-+        if targetdir and smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(targetdir):
-+            smbd.set_nfsv4_defaults()
-+
-         # Continue setting up sysvol for GPO. This appears to require being
-         # outside a transaction.
-         if not skip_sysvolacl:
-@@ -2313,6 +2322,9 @@ def provision(logger, session_info, smbconf=None,
-             if not os.path.isdir(paths.netlogon):
-                 os.makedirs(paths.netlogon, 0o755)
- 
-+            if smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(paths.sysvol):
-+                smbd.set_nfsv4_defaults()
-+
-         if adminpass is None:
-             adminpass = samba.generate_random_password(12, 32)
-             adminpass_generated = True
-diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c
-index 891fabea21e..d1357a47bd0 100644
---- a/source3/lib/sysacls.c
-+++ b/source3/lib/sysacls.c
-@@ -38,6 +38,16 @@
- #include "modules/vfs_aixacl.h"
- #endif
- 
-+/*
-+ * NFSv4 ACL's should be understood and a first class citizen. Work
-+ * needs to be done in librpc/idl/smb_acl.idl for this to occur.
-+ */
-+#if defined(HAVE_LIBSUNACL) && defined(FREEBSD)
-+#if 0
-+#include "modules/nfs4_acls.h"
-+#endif
-+#endif
-+
- #undef  DBGC_CLASS
- #define DBGC_CLASS DBGC_ACLS
- 
-diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
-index 21e061939e3..4e23fdaaf6d 100644
---- a/source3/param/loadparm.c
-+++ b/source3/param/loadparm.c
-@@ -2830,9 +2830,29 @@ static void init_locals(void)
- 		} else {
- 			if (lp_parm_const_string(-1, "xattr_tdb", "file", NULL)) {
- 				lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr xattr_tdb");
-+			/*
-+			 * By default, the samba sysvol is located in the statedir. Provisioning will fail in setntacl
-+			 * unless we have zfacl enabled. Unfortunately, at this point the smb.conf has not been generated.
-+			 * This workaround is freebsd-specific.
-+			 */
-+#if defined(_PC_ACL_EXTENDED)
-+			} else if (pathconf(lp_state_directory(), _PC_ACL_EXTENDED) == 1) {
-+				lp_do_parameter(-1, "vfs objects", "dfs_samba4 freebsd");
-+#endif
-+#if defined(_PC_ACL_NFS4)
-+			} else if (pathconf(lp_state_directory(), _PC_ACL_NFS4) == 1) {
-+				lp_do_parameter(-1, "vfs objects", "dfs_samba4 zfsacl");
-+#endif
- 			} else if (lp_parm_const_string(-1, "posix", "eadb", NULL)) {
- 				lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr posix_eadb");
- 			} else {
-+				/*
-+				 * This should only set dfs_samba4 and leave acl_xattr
-+				 * to be set later (or zfsacl). The only reason the decision
-+				 * can't be made here to load acl_xattr or zfsacl is
-+				 * that we don't have access to what the target
-+				 * directory is.
-+				 */
- 				lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr");
- 			}
- 		}
-diff --git a/source3/smbd/pysmbd.c b/source3/smbd/pysmbd.c
-index 88cbf62a680..867010ea6cd 100644
---- a/source3/smbd/pysmbd.c
-+++ b/source3/smbd/pysmbd.c
-@@ -485,6 +485,20 @@ static SMB_ACL_T make_simple_acl(TALLOC_CTX *mem_ctx,
- 	return acl;
- }
- 
-+static SMB_ACL_T make_simple_nfsv4_acl(TALLOC_CTX *mem_ctx,
-+					gid_t gid,
-+					mode_t chmod_mode)
-+{
-+	/*
-+	 * This function needs to create an NFSv4 ACL. Currently, the only way
-+	 * to do so is to use the operating system interface, or to use the
-+	 * functions in source3/modules/nfs4_acls.c. These seems ugly and
-+	 * hacky. NFSv4 ACL's should be a first class citizen and
-+	 * librpc/idl/smb_acl.idl should be modified accordingly.
-+	 */
-+	return NULL;
-+}
-+
- /*
-   set a simple ACL on a file, as a test
-  */
-@@ -557,6 +571,84 @@ static PyObject *py_smbd_set_simple_acl(PyObject *self, PyObject *args, PyObject
- 	Py_RETURN_NONE;
- }
- 
-+
-+/*
-+  set a simple NFSv4 ACL on a file, as a test
-+ */
-+static PyObject *py_smbd_set_simple_nfsv4_acl(PyObject *self, PyObject *args, PyObject *kwargs)
-+{
-+	const char * const kwnames[] = {
-+		"fname",
-+		"mode",
-+		"session_info",
-+		"gid",
-+		"service",
-+		NULL
-+	};
-+	char *fname, *service = NULL;
-+	PyObject *py_session = Py_None;
-+	struct auth_session_info *session_info = NULL;
-+	int ret;
-+	int mode, gid = -1;
-+	SMB_ACL_T acl;
-+	TALLOC_CTX *frame;
-+	connection_struct *conn;
-+
-+	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "siO|iz",
-+					 discard_const_p(char *, kwnames),
-+					 &fname,
-+					 &mode,
-+					 &py_session,
-+					 &gid,
-+					 &service))
-+		return NULL;
-+
-+	if (!py_check_dcerpc_type(py_session,
-+				  "samba.dcerpc.auth",
-+				  "session_info")) {
-+		return NULL;
-+	}
-+	session_info = pytalloc_get_type(py_session,
-+					 struct auth_session_info);
-+	if (session_info == NULL) {
-+		PyErr_Format(PyExc_TypeError,
-+			     "Expected auth_session_info for session_info argument got %s",
-+			     pytalloc_get_name(py_session));
-+		return NULL;
-+	}
-+
-+	frame = talloc_stackframe();
-+
-+	acl = make_simple_nfsv4_acl(frame, gid, mode);
-+	if (acl == NULL) {
-+		TALLOC_FREE(frame);
-+		Py_RETURN_NONE;
-+	}
-+
-+	conn = get_conn_tos(service, session_info);
-+	if (!conn) {
-+		TALLOC_FREE(frame);
-+		Py_RETURN_NONE;
-+	}
-+
-+	/*
-+	 * SMB_ACL_TYPE_ACCESS -> ACL_TYPE_ACCESS -> Not valid for NFSv4 ACL
-+	 */
-+	ret = 0;
-+
-+	/* ret = set_sys_acl_conn(fname, SMB_ACL_TYPE_ACCESS, acl, conn); */
-+
-+	if (ret != 0) {
-+		TALLOC_FREE(frame);
-+		errno = ret;
-+		return PyErr_SetFromErrno(PyExc_OSError);
-+	}
-+
-+	TALLOC_FREE(frame);
-+
-+	Py_RETURN_NONE;
-+}
-+
- /*
-   chown a file
-  */
-@@ -744,7 +836,7 @@ static PyObject *py_smbd_unlink(PyObject *self, PyObject *args, PyObject *kwargs
- }
- 
- /*
--  check if we have ACL support
-+  check if we have POSIX.1e ACL support
-  */
- static PyObject *py_smbd_have_posix_acls(PyObject *self,
- 		PyObject *Py_UNUSED(ignored))
-@@ -756,6 +848,83 @@ static PyObject *py_smbd_have_posix_acls(PyObject *self,
- #endif
- }
- 
-+static PyObject *py_smbd_has_posix_acls(PyObject *self, PyObject *args, PyObject *kwargs)
-+{
-+	const char * const kwnames[] = { "path", NULL };
-+	char *path = NULL;
-+	TALLOC_CTX *frame;
-+	struct statfs fs;
-+	int ret = false;
-+
-+	frame = talloc_stackframe();
-+
-+	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z",
-+					 discard_const_p(char *, kwnames), &path)) {
-+		TALLOC_FREE(frame);
-+		return NULL;
-+	}
-+
-+	if (statfs(path, &fs) != 0) {
-+		TALLOC_FREE(frame);
-+		return NULL;
-+	}
-+
-+	if (fs.f_flags & MNT_ACLS)
-+		ret = true;
-+
-+	TALLOC_FREE(frame);
-+	return PyBool_FromLong(ret);
-+}
-+
-+/*
-+  check if we have NFSv4 ACL support
-+ */
-+static PyObject *py_smbd_have_nfsv4_acls(PyObject *self)
-+{
-+#ifdef HAVE_LIBSUNACL
-+	return PyBool_FromLong(true);
-+#else
-+	return PyBool_FromLong(false);
-+#endif
-+}
-+
-+static PyObject *py_smbd_has_nfsv4_acls(PyObject *self, PyObject *args, PyObject *kwargs)
-+{
-+	const char * const kwnames[] = { "path", NULL };
-+	char *path = NULL;
-+	TALLOC_CTX *frame;
-+	struct statfs fs;
-+	int ret = false;
-+
-+	frame = talloc_stackframe();
-+
-+	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z",
-+					 discard_const_p(char *, kwnames), &path)) {
-+		TALLOC_FREE(frame);
-+		return NULL;
-+	}
-+
-+	if (statfs(path, &fs) != 0) {
-+		TALLOC_FREE(frame);
-+		return NULL;
-+	}
-+
-+	if (fs.f_flags & MNT_NFS4ACLS)
-+		ret = true;
-+
-+	TALLOC_FREE(frame);
-+	return PyBool_FromLong(ret);
-+}
-+
-+
-+static PyObject *py_smbd_set_nfsv4_defaults(PyObject *self)
-+{
-+	/*
-+	 * It is really be done in source3/param/loadparm.c
-+	 */
-+	Py_RETURN_NONE;
-+}
-+
- /*
-   set the NT ACL on a file
-  */
-@@ -1242,10 +1411,28 @@ static PyMethodDef py_smbd_methods[] = {
- 	{ "have_posix_acls",
- 		(PyCFunction)py_smbd_have_posix_acls, METH_NOARGS,
- 		NULL },
-+	{ "has_posix_acls",
-+		PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_posix_acls),
-+		METH_VARARGS|METH_KEYWORDS,
-+		NULL },
-+	{ "have_nfsv4_acls",
-+		(PyCFunction)py_smbd_have_nfsv4_acls, METH_NOARGS,
-+		NULL },
-+	{ "has_nfsv4_acls",
-+		PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_nfsv4_acls),
-+		METH_VARARGS|METH_KEYWORDS,
-+		NULL },
-+	{ "set_nfsv4_defaults",
-+		(PyCFunction)py_smbd_set_nfsv4_defaults, METH_NOARGS,
-+		NULL },
- 	{ "set_simple_acl",
- 		PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_acl),
- 		METH_VARARGS|METH_KEYWORDS,
- 		NULL },
-+	{ "set_simple_nfsv4_acl",
-+		PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_nfsv4_acl),
-+		METH_VARARGS|METH_KEYWORDS,
-+		NULL },
- 	{ "set_nt_acl",
- 		PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_nt_acl),
- 		METH_VARARGS|METH_KEYWORDS,
--- 
-2.37.1
-
diff --git a/net/samba422/files/0028-Fix-rl_completion_func_t.patch b/net/samba422/files/0028-Fix-rl_completion_func_t.patch
deleted file mode 100644
index 33debfab76bc..000000000000
--- a/net/samba422/files/0028-Fix-rl_completion_func_t.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/samba-4.19.8/lib/replace/system/readline.h        2023-07-18 10:14:54.478091000 +0200
-+++ b/lib/replace/system/readline.h     2024-10-02 13:47:48.773606000 +0200
-@@ -46,10 +46,10 @@
- #endif
-
- #ifdef HAVE_NEW_LIBREADLINE
--#ifdef HAVE_CPPFUNCTION
-+#if defined(HAVE_RL_COMPLETION_FUNC_T)
-+#  define RL_COMPLETION_CAST (rl_completion_func_t *)
-+#elif defined(HAVE_CPPFUNCTION)
- #  define RL_COMPLETION_CAST (CPPFunction *)
--#elif defined(HAVE_RL_COMPLETION_T)
--#  define RL_COMPLETION_CAST (rl_completion_t *)
- #else
- #  define RL_COMPLETION_CAST
- #endif
-diff -upr a/samba-4.19.8/libcli/smbreadline/wscript_configure b/libcli/smbreadline/wscript_configure
---- a/samba-4.19.8/libcli/smbreadline/wscript_configure 2023-07-18 10:14:54.558091600 +0200
-+++ b/libcli/smbreadline/wscript_configure      2024-10-02 13:47:48.774008000 +0200
-@@ -51,10 +51,10 @@ conf.CHECK_CODE('''
- #    endif
- #  endif
- #endif
--int main(void) {rl_completion_t f; return 0;}
-+int main(void) {rl_completion_func_t f; return 0;}
- ''',
- 'HAVE_RL_COMPLETION_FUNC_T', execute=False, addmain=False,
--msg='Checking for rl_completion_t')
-+msg='Checking for rl_completion_func_t')
-
- conf.CHECK_CODE('''
- #ifdef HAVE_READLINE_READLINE_H
diff --git a/net/samba422/files/0099-s3-modules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch b/net/samba422/files/0099-s3-modules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch
deleted file mode 100644
index 275e7e464456..000000000000
--- a/net/samba422/files/0099-s3-modules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From ff8b27f6f0c67cbb0fb37f80f3336c1bd0f28430 Mon Sep 17 00:00:00 2001
-From: Andrew Walker <awalker@ixsystems.com>
-Date: Thu, 16 Mar 2023 09:05:45 -0700
-Subject: [PATCH] Fixups for VFS changes in 4.18
-
----
- debian/changelog                      | 24 ++++++------------
- lib/audit_logging/audit_logging.c     |  4 +--
- source3/modules/vfs_shadow_copy_zfs.c | 24 ++++++++----------
- source3/modules/vfs_tmprotect.c       |  2 +-
- source3/modules/vfs_zfsacl.c          | 35 +++++++++++++++++++++++++++
- source3/utils/net_groupmap.c          |  6 ++---
- 6 files changed, 58 insertions(+), 37 deletions(-)
-
-diff --git a/source3/modules/vfs_zfsacl.c b/source3/modules/vfs_zfsacl.c
-index e24cb683d2..18f8dcb4b2 100644
---- a/source3/modules/vfs_zfsacl.c
-+++ b/source3/modules/vfs_zfsacl.c
-@@ -307,6 +307,41 @@ static NTSTATUS zfs_set_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
- 				zfs_process_smbacl);
- }
- 
-+static int get_zfsacl(TALLOC_CTX *mem_ctx,
-+		      const struct smb_filename *smb_fname,
-+		      ace_t **outbuf)
-+{
-+	int naces, rv;
-+	ace_t *acebuf = NULL;
-+
-+	naces = acl(smb_fname->base_name, ACE_GETACLCNT, 0, NULL);
-+	if (naces == -1) {
-+		int dbg_level = 10;
-+
-+		if (errno == ENOSYS) {
-+			dbg_level = 1;
-+		}
-+		DEBUG(dbg_level, ("acl(ACE_GETACLCNT, %s): %s ",
-+		      smb_fname->base_name, strerror(errno)));
-+		return naces;
-+	}
-+	acebuf = talloc_size(mem_ctx, sizeof(ace_t)*naces);
-+	if (acebuf == NULL) {
-+		errno = ENOMEM;
-+		return -1;
-+	}
-+
-+	rv = acl(smb_fname->base_name, ACE_GETACL, naces, acebuf);
-+	if (rv == -1) {
-+		DBG_DEBUG("acl(ACE_GETACL, %s) failed: %s ",
-+			  smb_fname->base_name, strerror(errno));
-+		return -1;
-+	}
-+
-+	*outbuf = acebuf;
-+	return naces;
-+}
-+
- static int fget_zfsacl(TALLOC_CTX *mem_ctx,
- 		       struct files_struct *fsp,
- 		       ace_t **outbuf)
-From 0c2c9f21cf01983d9001edef4983bc15b79a31ad Mon Sep 17 00:00:00 2001
-From: Andrew <awalker@ixsystems.com>
-Date: Mon, 29 Nov 2021 12:33:15 -0500
-Subject: [PATCH] NAS-113538 / Fix procfd handling for xattr-based alternate
- datastreams (#54)
-
-vfs_streams_xattr openat() does not set fsp.flags.have_proc_fds. In open_streams_for_delete() the fsp is not allocated via talloc_zero() and so this may be unitialized memory.
-
-This particular fix ensures vfs_streams_xattr sets the fsp have_proc_fds flag to the one defined in the associated tree connect for the fsp. In the case of vfs_ixnas, ensure that we read the NT ACL from fsp->base_fsp (file) rather than the fsp associated with the xattr.
-
-This PR also fixes vfs_zfsacl for FreeBSD 13 (adding handling for procfd paths)
----
- source3/modules/vfs_ixnas.c  |  4 ++-
- source3/modules/vfs_zfsacl.c | 62 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 65 insertions(+), 1 deletion(-)
-
---- a/source3/modules/vfs_zfsacl.c
-+++ b/source3/modules/vfs_zfsacl.c
-@@ -235,12 +235,43 @@ static bool zfs_process_smbacl(vfs_handle_struct *handle, files_struct *fsp,
- 	SMB_ASSERT(i == naces);
- 
- 	/* store acl */
-+#ifdef O_PATH
-+	if (fsp->fsp_flags.is_pathref) {
-+		const char *proc_fd_path = NULL;
-+		char buf[PATH_MAX];
-+
-+		if (!fsp->fsp_flags.have_proc_fds) {
-+			DBG_ERR("fdescfs filesystem must be mounted with 'nodup' "
-+				"option \n");
-+			errno = EBADF;
-+			return -1;
-+		}
-+
-+		fd = fsp_get_pathref_fd(fsp);
-+		proc_fd_path = sys_proc_fd_path(fd, buf, sizeof(buf));
-+		if (proc_fd_path == NULL) {
-+			DBG_ERR("%s: failed to generate pathref fd for %d\n",
-+				fsp_str_dbg(fsp), fd);
-+			errno = EBADF;
-+			return -1;
-+		}
-+		rv = acl(proc_fd_path, ACE_SETACL, naces, acebuf);
-+	} else {
-+		fd = fsp_get_io_fd(fsp);
-+		if (fd == -1) {
-+			errno = EBADF;
-+			return false;
-+		}
-+		rv = facl(fd, ACE_SETACL, naces, acebuf);
-+	}
-+#else
- 	fd = fsp_get_pathref_fd(fsp);
- 	if (fd == -1) {
- 		errno = EBADF;
- 		return false;
- 	}
*** 2411 LINES SKIPPED ***


help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510221431.59MEVGXe081413>