Compare commits
2 Commits
afc6047814
...
fb9bdce10a
| Author | SHA1 | Date | |
|---|---|---|---|
| fb9bdce10a | |||
| ba38a2457f |
@ -192,7 +192,6 @@ SAMBA4_BUNDLED_CMOCKA?= no
|
|||||||
SAMBA4_BUNDLED_TALLOC?= no
|
SAMBA4_BUNDLED_TALLOC?= no
|
||||||
SAMBA4_BUNDLED_TEVENT?= no
|
SAMBA4_BUNDLED_TEVENT?= no
|
||||||
SAMBA4_BUNDLED_TDB?= no
|
SAMBA4_BUNDLED_TDB?= no
|
||||||
SAMBA4_BUNDLED_LDB?= yes
|
|
||||||
# cmocka
|
# cmocka
|
||||||
.if defined(SAMBA4_BUNDLED_CMOCKA) && ${SAMBA4_BUNDLED_CMOCKA} == yes
|
.if defined(SAMBA4_BUNDLED_CMOCKA) && ${SAMBA4_BUNDLED_CMOCKA} == yes
|
||||||
SAMBA4_BUNDLED_LIBS+= cmocka
|
SAMBA4_BUNDLED_LIBS+= cmocka
|
||||||
@ -244,31 +243,21 @@ RUN_DEPENDS+= tdb1413>=1.4.13:databases/tdb1413
|
|||||||
PLIST_SUB+= SAMBA4_BUNDLED_TDB="@comment "
|
PLIST_SUB+= SAMBA4_BUNDLED_TDB="@comment "
|
||||||
SUB_LIST+= SAMBA4_BUNDLED_TDB="@comment "
|
SUB_LIST+= SAMBA4_BUNDLED_TDB="@comment "
|
||||||
.endif
|
.endif
|
||||||
# ldb
|
|
||||||
.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
|
|
||||||
.else
|
|
||||||
SAMBA4_BUNDLED_LIBS+= !ldb
|
|
||||||
BUILD_DEPENDS+= ldb29>=2.9.1:databases/ldb29
|
|
||||||
RUN_DEPENDS+= ldb29>=2.9.1:databases/ldb29
|
|
||||||
PLIST_SUB+= SAMBA4_BUNDLED_LDB="@comment "
|
|
||||||
SUB_LIST+= SAMBA4_BUNDLED_LDB="@comment "
|
|
||||||
SAMBA4_MODULEDIR= ${PREFIX}/lib/shared-modules
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if (defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes) \
|
.if (defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes) \
|
||||||
|| (defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes) \
|
|| (defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes) \
|
||||||
|| (defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes) \
|
|
||||||
|| (defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes)
|
|| (defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes)
|
||||||
SAMBA4_BUNDLED_LIBS+= replace
|
SAMBA4_BUNDLED_LIBS+= replace
|
||||||
.endif
|
.endif
|
||||||
# Don't use external libcom_err
|
# Don't use external libcom_err
|
||||||
SAMBA4_BUNDLED_LIBS+= com_err
|
SAMBA4_BUNDLED_LIBS+= com_err
|
||||||
|
|
||||||
|
### Public libraries
|
||||||
|
# ldb
|
||||||
|
SAMBA4_PRIVATE_LIBS+= !ldb
|
||||||
|
CONFLICTS_INSTALL+= ldb-* ldb2[0-9]-*
|
||||||
|
SAMBA4_MODULEDIR= ${SAMBA4_LIBDIR}/modules
|
||||||
|
|
||||||
# Set the test environment variables
|
# Set the test environment variables
|
||||||
TEST_USES= python
|
TEST_USES= python
|
||||||
TEST_ENV= PYTHON="${PYTHON_CMD}" \
|
TEST_ENV= PYTHON="${PYTHON_CMD}" \
|
||||||
@ -471,17 +460,17 @@ SAMBA4_BUNDLED_LIBS+= pytdb
|
|||||||
SAMBA4_BUNDLED_LIBS+= !pytdb
|
SAMBA4_BUNDLED_LIBS+= !pytdb
|
||||||
. endif
|
. endif
|
||||||
|
|
||||||
. if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes
|
|
||||||
SAMBA4_BUNDLED_LIBS+= pyldb pyldb-util
|
SAMBA4_BUNDLED_LIBS+= pyldb pyldb-util
|
||||||
. else
|
|
||||||
SAMBA4_BUNDLED_LIBS+= !pyldb !pyldb-util
|
|
||||||
. endif
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if defined(WANT_EXP_MODULES) && !empty(WANT_EXP_MODULES)
|
.if defined(WANT_EXP_MODULES) && !empty(WANT_EXP_MODULES)
|
||||||
SAMBA4_MODULES+= ${WANT_EXP_MODULES}
|
SAMBA4_MODULES+= ${WANT_EXP_MODULES}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.if defined(SAMBA4_PRIVATE_LIBS) && !empty(SAMBA4_PRIVATE_LIBS)
|
||||||
|
CONFIGURE_ARGS+= --private-libraries="${SAMBA4_PRIVATE_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"
|
||||||
|
.endif
|
||||||
|
|
||||||
.if defined(SAMBA4_BUNDLED_LIBS) && !empty(SAMBA4_BUNDLED_LIBS)
|
.if defined(SAMBA4_BUNDLED_LIBS) && !empty(SAMBA4_BUNDLED_LIBS)
|
||||||
CONFIGURE_ARGS+= --bundled-libraries="${SAMBA4_BUNDLED_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"
|
CONFIGURE_ARGS+= --bundled-libraries="${SAMBA4_BUNDLED_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"
|
||||||
.endif
|
.endif
|
||||||
@ -511,7 +500,7 @@ DEBUG_FLAGS?= -g -ggdb3 -O0
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
# Only for 64-bit architectures
|
# Only for 64-bit architectures
|
||||||
.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe
|
.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe
|
||||||
. if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes && (${PORT_OPTIONS:MAD_DC} || ${PORT_OPTIONS:MDEVELOPER})
|
. if (${PORT_OPTIONS:MAD_DC} || ${PORT_OPTIONS:MDEVELOPER})
|
||||||
# LMDB
|
# LMDB
|
||||||
SAMBA4_LMDB_DEPENDS= lmdb>=0.9.16:databases/lmdb
|
SAMBA4_LMDB_DEPENDS= lmdb>=0.9.16:databases/lmdb
|
||||||
PLIST_FILES+= ${SAMBA4_LIBDIR}/private/libldb-mdb-int-private-samba.so \
|
PLIST_FILES+= ${SAMBA4_LIBDIR}/private/libldb-mdb-int-private-samba.so \
|
||||||
|
|||||||
@ -1,207 +1,5 @@
|
|||||||
From f07e384150e53b18c3ea298f9a1ea588fb89e19b Mon Sep 17 00:00:00 2001
|
--- source3/modules/vfs_freebsd.c.orig 2025-07-11 10:55:17 UTC
|
||||||
From: "Timur I. Bakeyev" <timur@FreeBSD.org>
|
+++ source3/modules/vfs_freebsd.c
|
||||||
Date: Sat, 29 May 2021 03:58:01 +0200
|
|
||||||
Subject: [PATCH 27/28] Add VFS module vfs_freebsd that implements FreeBSD
|
|
||||||
specific wrappers to some VFS functions.
|
|
||||||
|
|
||||||
At the moment that is configurable mapping between Linux xattrs and
|
|
||||||
FreeBSD extended attributes.
|
|
||||||
|
|
||||||
Signed-off-by: Timur I. Bakeyev <timur@FreeBSD.org>
|
|
||||||
---
|
|
||||||
docs-xml/manpages/vfs_freebsd.8.xml | 169 ++++++
|
|
||||||
docs-xml/wscript_build | 1
|
|
||||||
source3/modules/vfs_freebsd.c | 699 ++++++++++++++++++++++++++
|
|
||||||
source3/modules/wscript_build | 7
|
|
||||||
4 files changed, 876 insertions(+)
|
|
||||||
|
|
||||||
diff -Naurp a/docs-xml/manpages/vfs_freebsd.8.xml b/docs-xml/manpages/vfs_freebsd.8.xml
|
|
||||||
--- a/docs-xml/manpages/vfs_freebsd.8.xml 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ b/docs-xml/manpages/vfs_freebsd.8.xml 2024-08-05 13:57:36.246690000 -0400
|
|
||||||
@@ -0,0 +1,169 @@
|
|
||||||
+<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
+<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
|
|
||||||
+<refentry id="vfs_freebsd.8">
|
|
||||||
+
|
|
||||||
+<refmeta>
|
|
||||||
+ <refentrytitle>vfs_freebsd</refentrytitle>
|
|
||||||
+ <manvolnum>8</manvolnum>
|
|
||||||
+ <refmiscinfo class="source">Samba</refmiscinfo>
|
|
||||||
+ <refmiscinfo class="manual">System Administration tools</refmiscinfo>
|
|
||||||
+ <refmiscinfo class="version">&doc.version;</refmiscinfo>
|
|
||||||
+</refmeta>
|
|
||||||
+
|
|
||||||
+<refnamediv>
|
|
||||||
+ <refname>vfs_freebsd</refname>
|
|
||||||
+ <refpurpose>FreeBSD-specific VFS functions</refpurpose>
|
|
||||||
+</refnamediv>
|
|
||||||
+
|
|
||||||
+<refsynopsisdiv>
|
|
||||||
+ <cmdsynopsis>
|
|
||||||
+ <command>vfs objects = freebsd</command>
|
|
||||||
+ </cmdsynopsis>
|
|
||||||
+</refsynopsisdiv>
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <title>DESCRIPTION</title>
|
|
||||||
+
|
|
||||||
+ <para>This VFS module is part of the <citerefentry><refentrytitle>samba</refentrytitle>
|
|
||||||
+ <manvolnum>7</manvolnum></citerefentry> suite.</para>
|
|
||||||
+
|
|
||||||
+ <para>The <command>vfs_freebsd</command> module implements some of the FreeBSD-specific VFS functions.</para>
|
|
||||||
+
|
|
||||||
+ <para>This module is stackable.</para>
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <title>OPTIONS</title>
|
|
||||||
+
|
|
||||||
+ <variablelist>
|
|
||||||
+
|
|
||||||
+ <varlistentry>
|
|
||||||
+ <term>freebsd:extattr mode=[legacy|compat|secure]</term>
|
|
||||||
+ <listitem>
|
|
||||||
+ <para>This parameter defines how the emulation of the Linux attr(5) extended attributes
|
|
||||||
+ is performed through the FreeBSD native extattr(9) system calls.</para>
|
|
||||||
+
|
|
||||||
+ <para>Currently the <emphasis>security</emphasis>, <emphasis>system</emphasis>,
|
|
||||||
+ <emphasis>trusted</emphasis> and <emphasis>user</emphasis> extended attribute(xattr)
|
|
||||||
+ classes are defined in Linux. Contrary FreeBSD has only <emphasis>USER</emphasis>
|
|
||||||
+ and <emphasis>SYSTEM</emphasis> extended attribute(extattr) namespaces, so mapping
|
|
||||||
+ of one set into another isn't straightforward and can be done in different ways.</para>
|
|
||||||
+
|
|
||||||
+ <para>Historically the Samba(7) built-in xattr mapping implementation simply converted
|
|
||||||
+ <emphasis>system</emphasis> and <emphasis>user</emphasis> xattr into corresponding
|
|
||||||
+ <emphasis>SYSTEM</emphasis> and <emphasis>USER</emphasis> extattr namespaces, dropping
|
|
||||||
+ the class prefix name with the separating dot and using attribute name only within the
|
|
||||||
+ mapped namespace. It also rejected any other xattr classes, like <emphasis>security</emphasis>
|
|
||||||
+ and <emphasis>trusted</emphasis> as invalid. Such behavior in particular broke AD
|
|
||||||
+ provisioning on UFS2 file systems as essential <emphasis>security.NTACL</emphasis>
|
|
||||||
+ xattr was rejected as invalid.</para>
|
|
||||||
+
|
|
||||||
+ <para>This module tries to address this problem and provide secure, where it's possible,
|
|
||||||
+ way to map Linux xattr into FreeBSD's extattr.</para>
|
|
||||||
+
|
|
||||||
+ <para>When <emphasis>mode</emphasis> is set to the <emphasis>legacy (default)</emphasis>
|
|
||||||
+ then modified version of built-in mapping is used, where <emphasis>system</emphasis> xattr
|
|
||||||
+ is mapped into SYSTEM namespace, while <emphasis>secure</emphasis>, <emphasis>trusted</emphasis>
|
|
||||||
+ and <emphasis>user</emphasis> xattr are all mapped into the USER namespace, dropping class
|
|
||||||
+ prefixes and mix them all together. This is the way how Samba FreeBSD ports were patched
|
|
||||||
+ up to the 4.9 version and that created multiple potential security issues. This mode is aimed for
|
|
||||||
+ the compatibility with the legacy installations only and should be avoided in new setups.</para>
|
|
||||||
+
|
|
||||||
+ <para>The <emphasis>compat</emphasis> mode is mostly designed for the jailed environments,
|
|
||||||
+ where it's not possible to write extattrs into the secure SYSTEM namespace, so all four
|
|
||||||
+ classes are mapped into the USER namespace. To preserve information about origin of the
|
|
||||||
+ extended attribute it is stored together with the class preffix in the <emphasis>class.attribute</emphasis>
|
|
||||||
+ format.</para>
|
|
||||||
+
|
|
||||||
+ <para>The <emphasis>secure</emphasis> mode is meant for storing extended attributes in a secure
|
|
||||||
+ manner, so that <emphasis>security</emphasis>, <emphasis>system</emphasis> and <emphasis>trusted</emphasis>
|
|
||||||
+ are stored in the SYSTEM namespace, which can be modified only by root.
|
|
||||||
+ </para>
|
|
||||||
+ </listitem>
|
|
||||||
+ </varlistentry>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ </variablelist>
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <table frame="all" rowheader="firstcol">
|
|
||||||
+ <title>Attributes mapping</title>
|
|
||||||
+ <tgroup cols='5' align='left' colsep='1' rowsep='1'>
|
|
||||||
+ <thead>
|
|
||||||
+ <row>
|
|
||||||
+ <entry> </entry>
|
|
||||||
+ <entry>built-in</entry>
|
|
||||||
+ <entry>legacy</entry>
|
|
||||||
+ <entry>compat/jail</entry>
|
|
||||||
+ <entry>secure</entry>
|
|
||||||
+ </row>
|
|
||||||
+ </thead>
|
|
||||||
+ <tbody>
|
|
||||||
+ <row>
|
|
||||||
+ <entry>user</entry>
|
|
||||||
+ <entry>USER; attribute</entry>
|
|
||||||
+ <entry>USER; attribute</entry>
|
|
||||||
+ <entry>USER; user.attribute</entry>
|
|
||||||
+ <entry>USER; user.attribute</entry>
|
|
||||||
+ </row>
|
|
||||||
+ <row>
|
|
||||||
+ <entry>system</entry>
|
|
||||||
+ <entry>SYSTEM; attribute</entry>
|
|
||||||
+ <entry>SYSTEM; attribute</entry>
|
|
||||||
+ <entry>USER; system.attribute</entry>
|
|
||||||
+ <entry>SYSTEM; system.attribute</entry>
|
|
||||||
+ </row>
|
|
||||||
+ <row>
|
|
||||||
+ <entry>trusted</entry>
|
|
||||||
+ <entry>FAIL</entry>
|
|
||||||
+ <entry>USER; attribute</entry>
|
|
||||||
+ <entry>USER; trusted.attribute</entry>
|
|
||||||
+ <entry>SYSTEM; trusted.attribute</entry>
|
|
||||||
+ </row>
|
|
||||||
+ <row>
|
|
||||||
+ <entry>security</entry>
|
|
||||||
+ <entry>FAIL</entry>
|
|
||||||
+ <entry>USER; attribute</entry>
|
|
||||||
+ <entry>USER; security.attribute</entry>
|
|
||||||
+ <entry>SYSTEM; security.attribute</entry>
|
|
||||||
+ </row>
|
|
||||||
+ </tbody>
|
|
||||||
+ </tgroup>
|
|
||||||
+ </table>
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <title>EXAMPLES</title>
|
|
||||||
+
|
|
||||||
+ <para>Use secure method of setting extended attributes on the share:</para>
|
|
||||||
+
|
|
||||||
+<programlisting>
|
|
||||||
+ <smbconfsection name="[sysvol]"/>
|
|
||||||
+ <smbconfoption name="vfs objects">freebsd</smbconfoption>
|
|
||||||
+ <smbconfoption name="freebsd:extattr mode">secure</smbconfoption>
|
|
||||||
+</programlisting>
|
|
||||||
+
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <title>VERSION</title>
|
|
||||||
+
|
|
||||||
+ <para>This man page is part of version &doc.version; of the Samba suite.
|
|
||||||
+ </para>
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+<refsect1>
|
|
||||||
+ <title>AUTHOR</title>
|
|
||||||
+
|
|
||||||
+ <para>The original Samba software and related utilities
|
|
||||||
+ were created by Andrew Tridgell. Samba is now developed
|
|
||||||
+ by the Samba Team as an Open Source project similar
|
|
||||||
+ to the way the Linux kernel is developed.</para>
|
|
||||||
+
|
|
||||||
+ <para>This module was written by Timur I. Bakeyev</para>
|
|
||||||
+
|
|
||||||
+</refsect1>
|
|
||||||
+
|
|
||||||
+</refentry>
|
|
||||||
diff -Naurp a/docs-xml/wscript_build b/docs-xml/wscript_build
|
|
||||||
--- a/docs-xml/wscript_build 2024-08-02 07:54:09.597892000 -0400
|
|
||||||
+++ b/docs-xml/wscript_build 2024-08-05 13:57:36.246975000 -0400
|
|
||||||
@@ -87,6 +87,7 @@ vfs_module_manpages = ['vfs_acl_tdb',
|
|
||||||
'vfs_extd_audit',
|
|
||||||
'vfs_fake_perms',
|
|
||||||
'vfs_fileid',
|
|
||||||
+ 'vfs_freebsd',
|
|
||||||
'vfs_fruit',
|
|
||||||
'vfs_full_audit',
|
|
||||||
'vfs_glusterfs',
|
|
||||||
diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|
||||||
--- a/source3/modules/vfs_freebsd.c 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ b/source3/modules/vfs_freebsd.c 2024-08-05 13:57:36.247358000 -0400
|
|
||||||
@@ -0,0 +1,699 @@
|
@@ -0,0 +1,699 @@
|
||||||
+/*
|
+/*
|
||||||
+ * This module implements VFS calls specific to FreeBSD
|
+ * This module implements VFS calls specific to FreeBSD
|
||||||
@ -402,7 +200,7 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+ const char *path = fsp->fsp_name->base_name;
|
+ const char *path = fsp->fsp_name->base_name;
|
||||||
+ if (fsp->fsp_flags.have_proc_fds) {
|
+ if (fsp->fsp_flags.have_proc_fds) {
|
||||||
+ char buf[PATH_MAX];
|
+ char buf[PATH_MAX];
|
||||||
+ path = sys_proc_fd_path(fd, buf, sizeof(buf));
|
+ path = sys_proc_fd_path(fd, &buf);
|
||||||
+ if (path == NULL) {
|
+ if (path == NULL) {
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -456,7 +254,7 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+ const char *path = fsp->fsp_name->base_name;
|
+ const char *path = fsp->fsp_name->base_name;
|
||||||
+ if (fsp->fsp_flags.have_proc_fds) {
|
+ if (fsp->fsp_flags.have_proc_fds) {
|
||||||
+ char buf[PATH_MAX];
|
+ char buf[PATH_MAX];
|
||||||
+ path = sys_proc_fd_path(fd, buf, sizeof(buf));
|
+ path = sys_proc_fd_path(fd, &buf);
|
||||||
+ if (path == NULL) {
|
+ if (path == NULL) {
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -636,7 +434,7 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+ const char *path = fsp->fsp_name->base_name;
|
+ const char *path = fsp->fsp_name->base_name;
|
||||||
+ if (fsp->fsp_flags.have_proc_fds) {
|
+ if (fsp->fsp_flags.have_proc_fds) {
|
||||||
+ char buf[PATH_MAX];
|
+ char buf[PATH_MAX];
|
||||||
+ path = sys_proc_fd_path(fd, buf, sizeof(buf));
|
+ path = sys_proc_fd_path(fd, &buf);
|
||||||
+ if (path == NULL) {
|
+ if (path == NULL) {
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -711,7 +509,7 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+ const char *path = fsp->fsp_name->base_name;
|
+ const char *path = fsp->fsp_name->base_name;
|
||||||
+ if (fsp->fsp_flags.have_proc_fds) {
|
+ if (fsp->fsp_flags.have_proc_fds) {
|
||||||
+ char buf[PATH_MAX];
|
+ char buf[PATH_MAX];
|
||||||
+ path = sys_proc_fd_path(fd, buf, sizeof(buf));
|
+ path = sys_proc_fd_path(fd, &buf);
|
||||||
+ if (path == NULL) {
|
+ if (path == NULL) {
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -788,7 +586,7 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+ const char *path = fsp->fsp_name->base_name;
|
+ const char *path = fsp->fsp_name->base_name;
|
||||||
+ if (fsp->fsp_flags.have_proc_fds) {
|
+ if (fsp->fsp_flags.have_proc_fds) {
|
||||||
+ char buf[PATH_MAX];
|
+ char buf[PATH_MAX];
|
||||||
+ path = sys_proc_fd_path(fd, buf, sizeof(buf));
|
+ path = sys_proc_fd_path(fd, &buf);
|
||||||
+ if (path == NULL) {
|
+ if (path == NULL) {
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -902,20 +700,3 @@ diff -Naurp a/source3/modules/vfs_freebsd.c b/source3/modules/vfs_freebsd.c
|
|||||||
+
|
+
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
diff -Naurp a/source3/modules/wscript_build b/source3/modules/wscript_build
|
|
||||||
--- a/source3/modules/wscript_build 2024-02-02 04:33:51.236489800 -0500
|
|
||||||
+++ b/source3/modules/wscript_build 2024-08-05 13:57:36.247658000 -0400
|
|
||||||
@@ -631,6 +631,13 @@ bld.SAMBA3_MODULE('vfs_delay_inject',
|
|
||||||
enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_delay_inject'),
|
|
||||||
install=False)
|
|
||||||
|
|
||||||
+bld.SAMBA3_MODULE('vfs_freebsd',
|
|
||||||
+ subsystem='vfs',
|
|
||||||
+ source='vfs_freebsd.c',
|
|
||||||
+ init_function='',
|
|
||||||
+ internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_freebsd'),
|
|
||||||
+ enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_freebsd'))
|
|
||||||
+
|
|
||||||
bld.SAMBA3_MODULE('vfs_widelinks',
|
|
||||||
subsystem='vfs',
|
|
||||||
source='vfs_widelinks.c',
|
|
||||||
@ -40,6 +40,20 @@ sbin/eventlogadm
|
|||||||
sbin/nmbd
|
sbin/nmbd
|
||||||
sbin/smbd
|
sbin/smbd
|
||||||
sbin/winbindd
|
sbin/winbindd
|
||||||
|
include/samba4/credentials.h
|
||||||
|
include/samba4/dcerpc.h
|
||||||
|
include/samba4/dcerpc_server.h
|
||||||
|
include/samba4/gen_ndr/ndr_samr_c.h
|
||||||
|
include/samba4/ldb.h
|
||||||
|
include/samba4/ldb_errors.h
|
||||||
|
include/samba4/ldb_handlers.h
|
||||||
|
include/samba4/ldb_module.h
|
||||||
|
include/samba4/ldb_version.h
|
||||||
|
include/samba4/param.h
|
||||||
|
include/samba4/policy.h
|
||||||
|
include/samba4/util/tevent_ntstatus.h
|
||||||
|
include/samba4/util/tevent_unix.h
|
||||||
|
include/samba4/util/tevent_werror.h
|
||||||
include/samba4/charset.h
|
include/samba4/charset.h
|
||||||
include/samba4/core/doserr.h
|
include/samba4/core/doserr.h
|
||||||
include/samba4/core/error.h
|
include/samba4/core/error.h
|
||||||
@ -121,6 +135,24 @@ include/samba4/wbclient.h
|
|||||||
@dir include/samba4/gen_ndr
|
@dir include/samba4/gen_ndr
|
||||||
@dir include/samba4/core
|
@dir include/samba4/core
|
||||||
@dir include/samba4
|
@dir include/samba4
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc-samr.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc-samr.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc-server.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc-server.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libdcerpc.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libldb.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libldb.so.2
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-credentials.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-credentials.so.1
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-hostconfig.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-hostconfig.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-policy.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamba-policy.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamdb.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libsamdb.so.0
|
||||||
|
%%SAMBA4_LIBDIR%%/libtevent-util.so
|
||||||
|
%%SAMBA4_LIBDIR%%/libtevent-util.so.0
|
||||||
%%SAMBA4_LIBDIR%%/libdcerpc-binding.so
|
%%SAMBA4_LIBDIR%%/libdcerpc-binding.so
|
||||||
%%SAMBA4_LIBDIR%%/libdcerpc-binding.so.0
|
%%SAMBA4_LIBDIR%%/libdcerpc-binding.so.0
|
||||||
%%SAMBA4_LIBDIR%%/libdcerpc-server-core.so
|
%%SAMBA4_LIBDIR%%/libdcerpc-server-core.so
|
||||||
@ -188,11 +220,8 @@ libexec/samba/samba-dcerpcd
|
|||||||
%%SAMBA4_LIBDIR%%/private/libdbwrap-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdbwrap-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libutil-crypt-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libutil-crypt-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-pkt-auth-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdcerpc-pkt-auth-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-samba-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdcerpc-samba-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-samba4-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdcerpc-samba4-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-samr-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libdcerpc-server-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libdnsserver-common-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdnsserver-common-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libdsdb-module-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libdsdb-module-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libevents-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libevents-private-samba.so
|
||||||
@ -243,19 +272,7 @@ libexec/samba/samba-dcerpcd
|
|||||||
%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libroken-private-samba.so
|
%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libroken-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libRPC-SERVER-LOOP-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libRPC-SERVER-LOOP-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libRPC-WORKER-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libRPC-WORKER-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-credentials-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-cluster-support-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-debug-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-hostconfig-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-modules-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-net-join%%PYTHON_TAG%%-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-net-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-policy-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-security-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba-sockets-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamba3-util-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamdb-common-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libsamdb-common-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libsamdb-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libsecrets3-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libsecrets3-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libserver-id-db-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libserver-id-db-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libserver-role-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libserver-role-private-samba.so
|
||||||
@ -270,7 +287,6 @@ libexec/samba/samba-dcerpcd
|
|||||||
%%SAMBA4_LIBDIR%%/private/libsys-rw-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libsys-rw-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libtalloc-report-printf-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libtalloc-report-printf-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libtalloc-report-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libtalloc-report-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libtevent-util-private-samba.so
|
|
||||||
%%SAMBA4_LIBDIR%%/private/libtdb-wrap-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libtdb-wrap-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libtime-basic-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libtime-basic-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libtorture-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libtorture-private-samba.so
|
||||||
@ -279,6 +295,14 @@ libexec/samba/samba-dcerpcd
|
|||||||
%%SAMBA4_LIBDIR%%/private/libutil-tdb-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libutil-tdb-private-samba.so
|
||||||
%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libwind-private-samba.so
|
%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libwind-private-samba.so
|
||||||
%%SAMBA4_LIBDIR%%/private/libxattr-tdb-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libxattr-tdb-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-cluster-support-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-debug-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-modules-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-net-join%%PYTHON_TAG%%-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-net-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-security-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba-sockets-private-samba.so
|
||||||
|
%%SAMBA4_LIBDIR%%/private/libsamba3-util-private-samba.so
|
||||||
@dir %%SAMBA4_LIBDIR%%/private
|
@dir %%SAMBA4_LIBDIR%%/private
|
||||||
@dir %%SAMBA4_LIBDIR%%
|
@dir %%SAMBA4_LIBDIR%%
|
||||||
%%PKGCONFIGDIR%%/ndr.pc
|
%%PKGCONFIGDIR%%/ndr.pc
|
||||||
@ -289,6 +313,14 @@ libexec/samba/samba-dcerpcd
|
|||||||
%%PKGCONFIGDIR%%/samba-util.pc
|
%%PKGCONFIGDIR%%/samba-util.pc
|
||||||
%%PKGCONFIGDIR%%/smbclient.pc
|
%%PKGCONFIGDIR%%/smbclient.pc
|
||||||
%%PKGCONFIGDIR%%/wbclient.pc
|
%%PKGCONFIGDIR%%/wbclient.pc
|
||||||
|
%%PKGCONFIGDIR%%/dcerpc.pc
|
||||||
|
%%PKGCONFIGDIR%%/dcerpc_samr.pc
|
||||||
|
%%PKGCONFIGDIR%%/dcerpc_server.pc
|
||||||
|
%%PKGCONFIGDIR%%/ldb.pc
|
||||||
|
%%PKGCONFIGDIR%%/samba-credentials.pc
|
||||||
|
%%PKGCONFIGDIR%%/samba-hostconfig.pc
|
||||||
|
%%PKGCONFIGDIR%%/samba-policy.pc
|
||||||
|
%%PKGCONFIGDIR%%/samdb.pc
|
||||||
@comment Setup files
|
@comment Setup files
|
||||||
@comment Man pages
|
@comment Man pages
|
||||||
%%MANPAGES%%share/man/man1/dbwrap_tool.1.gz
|
%%MANPAGES%%share/man/man1/dbwrap_tool.1.gz
|
||||||
@ -402,38 +434,37 @@ libexec/samba/samba-dcerpcd
|
|||||||
@dir %%SAMBA4_BINDDNSDIR%%
|
@dir %%SAMBA4_BINDDNSDIR%%
|
||||||
@comment Use bundled libraries
|
@comment Use bundled libraries
|
||||||
%%SAMBA4_BUNDLED_CMOCKA%%%%SAMBA4_LIBDIR%%/private/libcmocka-private-samba.so
|
%%SAMBA4_BUNDLED_CMOCKA%%%%SAMBA4_LIBDIR%%/private/libcmocka-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/_ldb_text.py
|
%%PYTHON3%%%%PYTHON_SITELIBDIR%%/_ldb_text.py
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/ldb%%PYTHON_TAG%%.so
|
%%PYTHON3%%%%PYTHON_SITELIBDIR%%/ldb%%PYTHON_TAG%%.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%PYTHON3%%%%SAMBA4_LIBDIR%%/private/libpyldb-util%%PYTHON_TAG%%-private-samba.so
|
%%PYTHON3%%%%SAMBA4_LIBDIR%%/private/libpyldb-util%%PYTHON_TAG%%-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbadd
|
bin/ldbadd
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbdel
|
bin/ldbdel
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbedit
|
bin/ldbedit
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbmodify
|
bin/ldbmodify
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbrename
|
bin/ldbrename
|
||||||
%%SAMBA4_BUNDLED_LDB%%bin/ldbsearch
|
bin/ldbsearch
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_LIBDIR%%/private/libldb-cmdline-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libldb-cmdline-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_LIBDIR%%/private/libldb-key-value-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libldb-key-value-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_LIBDIR%%/private/libldb-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libldb-tdb-err-map-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_LIBDIR%%/private/libldb-tdb-err-map-private-samba.so
|
%%SAMBA4_LIBDIR%%/private/libldb-tdb-int-private-samba.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_LIBDIR%%/private/libldb-tdb-int-private-samba.so
|
%%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/count_attrs.so
|
||||||
%%AD_DC%%%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/count_attrs.so
|
%%SAMBA4_MODULEDIR%%/ldb/asq.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/asq.so
|
%%SAMBA4_MODULEDIR%%/ldb/ildap.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/ildap.so
|
%%SAMBA4_MODULEDIR%%/ldb/ldb.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/ldb.so
|
%%SAMBA4_MODULEDIR%%/ldb/ldbsamba_extensions.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/ldbsamba_extensions.so
|
%%SAMBA4_MODULEDIR%%/ldb/paged_searches.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/paged_searches.so
|
%%SAMBA4_MODULEDIR%%/ldb/rdn_name.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/rdn_name.so
|
%%SAMBA4_MODULEDIR%%/ldb/sample.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/sample.so
|
%%SAMBA4_MODULEDIR%%/ldb/server_sort.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/server_sort.so
|
%%SAMBA4_MODULEDIR%%/ldb/skel.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/skel.so
|
%%SAMBA4_MODULEDIR%%/ldb/tdb.so
|
||||||
%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/tdb.so
|
%%MANPAGES%%share/man/man3/ldb.3.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man3/ldb.3.gz
|
%%MANPAGES%%share/man/man1/ldbadd.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbadd.1.gz
|
%%MANPAGES%%share/man/man1/ldbdel.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbdel.1.gz
|
%%MANPAGES%%share/man/man1/ldbedit.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbedit.1.gz
|
%%MANPAGES%%share/man/man1/ldbmodify.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbmodify.1.gz
|
%%MANPAGES%%share/man/man1/ldbrename.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbrename.1.gz
|
%%MANPAGES%%share/man/man1/ldbsearch.1.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_LDB%%share/man/man1/ldbsearch.1.gz
|
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbbackup.8.gz
|
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbbackup.8.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbdump.8.gz
|
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbdump.8.gz
|
||||||
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbrestore.8.gz
|
%%MANPAGES%%%%SAMBA4_BUNDLED_TDB%%share/man/man8/tdbrestore.8.gz
|
||||||
|
|||||||
Reference in New Issue
Block a user