Major update to samba-4.14.4

Latest release.  Many bugs have been fixed, including possibly security
relevant ones.  This long overdue update has been postponed because of
binutils-2.17 ld(1) bugs in version scripts handling.  The issue is not
fixed but at least worked around.

The SHARED_LIBS handling is a bit ugly because of the .cpython-XY tag added
to some libraries names.

Tests by Ian (co-maintainer)
This commit is contained in:
jca 2021-05-12 23:33:24 +00:00
parent f3551346bf
commit 083f5a97f9
33 changed files with 1102 additions and 787 deletions

View File

@ -1,6 +1,6 @@
# $OpenBSD: Makefile,v 1.295 2021/04/25 12:09:46 jca Exp $
# $OpenBSD: Makefile,v 1.296 2021/05/12 23:33:24 jca Exp $
VERSION = 4.9.18
VERSION = 4.14.4
DISTNAME = samba-${VERSION}
EPOCH = 0
@ -18,50 +18,49 @@ PKGNAME-docs = samba-docs-${VERSION}
PKG_ARCH-docs = *
LDB_V = 1.4.8
TEVENT_V = 0.9.37
LDB_V = 2.3.0
TEVENT_V = 0.10.2
REVISION-ldb = 5
REVISION-main = 6
REVISION-tevent = 2
SHARED_LIBS = asn1-samba4 1.0 \
com_err-samba4 1.0 \
dcerpc 1.0 \
dcerpc-binding 3.0 \
dcerpc-samr 1.0 \
dcerpc-server-core 1.0 \
gssapi-samba4 1.0 \
hcrypto-samba4 1.0 \
hdb-samba4 1.0 \
heimbase-samba4 1.0 \
heimntlm-samba4 1.0 \
hx509-samba4 1.0 \
kdc-samba4 1.0 \
krb5-samba4 1.0 \
ldb 2.0 \
ndr 2.0 \
ndr-krb5pac 1.0 \
ndr-nbt 1.0 \
ndr-standard 4.0 \
netapi 3.0 \
roken-samba4 1.0 \
samba-credentials 1.0 \
samba-errors 2.0 \
samba-hostconfig 7.0 \
samba-passdb 3.0 \
samba-util 6.0 \
samdb 1.0 \
smbclient 6.0 \
smbconf 9.0 \
smbldap 1.0 \
tevent 1.0 \
tevent-util 2.0 \
wbclient 5.0 \
wind-samba4 1.0 \
replace 12.0 \
util-setid 12.0
SHARED_LIBS = asn1-samba4 0.0 \
com_err-samba4 0.0 \
dcerpc 0.0 \
dcerpc-binding 2.0 \
dcerpc-samr 0.0 \
gssapi-samba4 0.0 \
hcrypto-samba4 0.0 \
hdb-samba4 0.0 \
heimbase-samba4 0.0 \
heimntlm-samba4 0.0 \
hx509-samba4 0.0 \
kdc-samba4 0.0 \
krb5-samba4 0.1 \
ldb 1.0 \
ndr 1.0 \
ndr-krb5pac 0.1 \
ndr-nbt 0.1 \
ndr-standard 3.0 \
netapi 2.1 \
pyldb-util 0.5 \
roken-samba4 0.0 \
samba-credentials 0.2 \
samba-errors 1.0 \
samba-hostconfig 6.0 \
samba-passdb 2.1 \
samba-policy 0.0 \
samba-util 5.0 \
samdb 0.2 \
smbclient 5.0 \
smbconf 8.0 \
smbldap 0.1 \
tevent 0.5 \
tevent-util 1.1 \
wbclient 4.0 \
wind-samba4 0.0 \
replace 11.0 \
util-setid 11.0
# Those have to be handled specially, see "Python ABI" below.
SHARED_LIBS += pyldb-util.cpython-${MODPY_MAJORMINOR} 1.0
SHARED_LIBS += samba-policy.cpython-${MODPY_MAJORMINOR} 1.0
CATEGORIES = net sysutils security
@ -78,22 +77,20 @@ UTIL_LIBS = replace util-setid
# not "plugins" or such.
UTIL_WANTLIB = ${UTIL_LIBS:S@^@lib/samba/@}
WANTLIB-common = c pthread
WANTLIB-main = ${WANTLIB-common} ${MODPY_WANTLIB}
WANTLIB-main += z
WANTLIB-main += avahi-client avahi-common cups dbus-1 execinfo fam
WANTLIB-main += iconv intl jansson lber ldap pam popt gnutls
WANTLIB-main += ldb pyldb-util pytalloc-util readline tdb talloc tevent
WANTLIB-main = ${MODPY_WANTLIB}
WANTLIB-main += avahi-client avahi-common cups c execinfo fam
WANTLIB-main += iconv intl jansson lber ldap pam popt pthread gnutls
WANTLIB-main += ldb pyldb-util.cpython-${MODPY_MAJORMINOR}
WANTLIB-main += pytalloc-util.cpython-${MODPY_MAJORMINOR} readline
WANTLIB-main += talloc tasn1 tevent tdb z
WANTLIB-main += ${UTIL_WANTLIB}
WANTLIB-ldb = ${WANTLIB-common} ${MODPY_WANTLIB}
WANTLIB-ldb += lber ldap popt talloc tdb tevent
WANTLIB-ldb = ${MODPY_WANTLIB}
WANTLIB-ldb += c lber ldap popt replace talloc tdb tevent
WANTLIB-tevent = ${WANTLIB-common} ${MODPY_WANTLIB}
WANTLIB-tevent += talloc
WANTLIB-tevent = c replace talloc
WANTLIB-util = ${WANTLIB-common}
WANTLIB-util = c
WANTLIB-docs =
@ -104,17 +101,15 @@ MULTI_PACKAGES = -main -ldb -tevent -util -docs
DEBUG_PACKAGES = ${BUILD_PACKAGES}
MODULES = lang/python perl
MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2}
BUILD_DEPENDS = databases/tdb,-python \
devel/cmocka \
devel/p5-Parse-Yapp>=1.0.5 \
net/py2-dnspython \
textproc/docbook-xsl \
x11/dbus
net/py-dnspython${MODPY_FLAVOR} \
textproc/docbook-xsl
RUN_DEPENDS-main = databases/tdb,-python \
net/py2-dnspython
net/py-dnspython${MODPY_FLAVOR}
RUN_DEPENDS-docs =
@ -122,7 +117,7 @@ LIB_DEPENDS-main = ${BUILD_PKGPATH},-ldb>=${LDB_V} \
${BUILD_PKGPATH},-util>=${VERSION} \
converters/libiconv \
databases/openldap \
databases/tdb>=1.3.18 \
databases/tdb>=1.4.3 \
devel/gettext,-runtime \
devel/jansson \
devel/libexecinfo \
@ -136,12 +131,14 @@ LIB_DEPENDS-main = ${BUILD_PKGPATH},-ldb>=${LDB_V} \
sysutils/gamin
LIB_DEPENDS-ldb = ${BUILD_PKGPATH},-tevent>=${TEVENT_V} \
${BUILD_PKGPATH},-util>=${VERSION} \
devel/popt \
databases/openldap \
databases/tdb>=1.3.18 \
devel/libtalloc>=2.1.16
databases/tdb>=1.4.3 \
devel/libtalloc>=2.3.1
LIB_DEPENDS-tevent = devel/libtalloc>=2.1.16
LIB_DEPENDS-tevent = ${BUILD_PKGPATH},-util>=${VERSION} \
devel/libtalloc>=2.3.1
LIB_DEPENDS-docs =
@ -196,10 +193,34 @@ MAKE_ENV = LC_ALL=en_US.UTF-8 \
MAKE_ENV += LIB${_l:S/-/_/g}_VERSION=${_v}
.endfor
## Python ABI
# The samba project decided to also encode the python ABI name into shared
# libraries that link against libpython. Our ports infrastructure barely
# copes.
# 1. Those shared libraries names contain a variable whose value is not yet
# known by the time the .for loop runs
MAKE_ENV += LIBpyldb_util_cpython_${MODPY_MAJORMINOR}_VERSION=${LIBpyldb-util.cpython-${MODPY_MAJORMINOR}_VERSION}
MAKE_ENV += LIBsamba_policy_cpython_${MODPY_MAJORMINOR}_VERSION=${LIBsamba-policy.cpython-${MODPY_MAJORMINOR}_VERSION}
# 2. Said libraries end up as such in pkg/PLIST-foo:
# @lib lib/libbar.${MODPY_PYC_MAGIC_TAG}so.${LIBbar.cpython-XY_VERSION}
# We don't want to hardcode the XY version number in the PLIST.
PYLDB_UTIL_LIBSUFFIX = cpython-${MODPY_MAJORMINOR}.so.${LIBpyldb-util.cpython-${MODPY_MAJORMINOR}_VERSION}
SUBST_VARS += PYLDB_UTIL_LIBSUFFIX
SAMBA_POLICY_LIBSUFFIX= cpython-${MODPY_MAJORMINOR}.so.${LIBsamba-policy.cpython-${MODPY_MAJORMINOR}_VERSION}
SUBST_VARS += SAMBA_POLICY_LIBSUFFIX
# 3. Some samba python extension modules don't follow the same naming
# pattern as the usual python extension modules.
SAMBA_PYTHON_MAGIC_TAG= ${MODPY_PYC_MAGIC_TAG:S/./-samba4/}
SUBST_VARS += SAMBA_PYTHON_MAGIC_TAG
SAMBA_CONFIG = ${PREFIX}/share/examples/samba/smb.conf.default
SAMBA_LOGDIR = ${VARBASE}/log/samba
SUBST_VARS = SAMBA_LOGDIR
SUBST_VARS += SAMBA_LOGDIR
post-patch:
find ${WRKSRC} -type f -exec ${MODPY_BIN_ADJ} {} +
@ -211,8 +232,6 @@ post-install:
-name '*.beforesubst' -o \
-name '*.deconforig' \) \
-delete
# fix path to perl modules
mv ${PREFIX}/share/perl5/* ${PREFIX}/${P5SITE}
# precompiling Python modules
${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py ${WRKINST}${MODPY_SITEPKG}
${MODPY_BIN} -O ${MODPY_LIBDIR}/compileall.py ${WRKINST}${MODPY_SITEPKG}

View File

@ -1,2 +1,2 @@
SHA256 (samba-4.9.18.tar.gz) = xtI5grcjPOi8DIe4sDWF14Ld8718Y0wf+oU9fTl9h/c=
SIZE (samba-4.9.18.tar.gz) = 18103049
SHA256 (samba-4.14.4.tar.gz) = ia8JKgsA9TVO0ofwqje4ws+bos5n6mRkGS4sGFKPibk=
SIZE (samba-4.14.4.tar.gz) = 18645552

View File

@ -1,15 +1,18 @@
$OpenBSD: patch-Makefile,v 1.3 2019/12/19 02:57:28 jca Exp $
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9886
$OpenBSD: patch-Makefile,v 1.4 2021/05/12 23:33:24 jca Exp $
Add support for passing arguments to waf in Makefile
https://bugzilla.samba.org/show_bug.cgi?id=9886
Index: Makefile
--- Makefile.orig
+++ Makefile
@@ -2,7 +2,8 @@
@@ -1,7 +1,8 @@
# simple makefile wrapper to run waf
PYTHON?=python
WAF_BINARY=$(PYTHON) ./buildtools/bin/waf
-WAF=WAF_MAKE=1 $(WAF_BINARY)
-WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY)
+WAF_ARGS?=
+WAF=WAF_MAKE=1 $(WAF_BINARY) $(WAF_ARGS)
+WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY) $(WAF_ARGS)
all:
$(WAF) build

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-auth_auth_log_c,v 1.4 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-auth_auth_log_c,v 1.5 2021/05/12 23:33:24 jca Exp $
Avoid printf("%s", NULL);
Index: auth/auth_log.c
--- auth/auth_log.c.orig
+++ auth/auth_log.c
@@ -566,7 +566,8 @@ static void log_authentication_event_human_readable(
@@ -610,7 +610,8 @@ static void log_authentication_event_human_readable(
ui->netlogon_trust_account.account_name);
nl = talloc_asprintf(frame,
" NETLOGON computer [%s] trust account [%s]",
@ -15,7 +15,7 @@ Index: auth/auth_log.c
}
remote = tsocket_address_string(ui->remote_host, frame);
@@ -585,8 +586,10 @@ static void log_authentication_event_human_readable(
@@ -628,8 +629,10 @@ static void log_authentication_event_human_readable(
logon_line = talloc_asprintf(
frame,
" mapped to [%s]\\[%s].",
@ -28,7 +28,7 @@ Index: auth/auth_log.c
}
DEBUGC(DBGC_AUTH_AUDIT, debug_level,
@@ -596,13 +599,15 @@ static void log_authentication_event_human_readable(
@@ -639,13 +642,15 @@ static void log_authentication_event_human_readable(
"%s local host [%s]"
" %s\n",
ui->service_description,

View File

@ -0,0 +1,35 @@
$OpenBSD: patch-buildtools_wafsamba_samba_abi_py,v 1.1 2021/05/12 23:33:24 jca Exp $
Drop fully fledged version script support, only use simpler version
scripts to limit symbol visibility. Appending a version to all symbols
breaks binutils-2.17 ld(1).
Index: buildtools/wafsamba/samba_abi.py
--- buildtools/wafsamba/samba_abi.py.orig
+++ buildtools/wafsamba/samba_abi.py
@@ -170,24 +170,7 @@ def abi_write_vscript(f, libname, current_version, ver
version
"""
- invmap = {}
- for s in symmap:
- invmap.setdefault(symmap[s], []).append(s)
-
- last_key = ""
- versions = sorted(versions, key=version_key)
- for k in versions:
- symver = "%s_%s" % (libname, k)
- if symver == current_version:
- break
- f.write("%s {\n" % symver)
- if k in sorted(invmap.keys()):
- f.write("\tglobal:\n")
- for s in invmap.get(k, []):
- f.write("\t\t%s;\n" % s);
- f.write("}%s;\n\n" % last_key)
- last_key = " %s" % symver
- f.write("%s {\n" % current_version)
+ f.write("{\n")
local_abi = list(filter(lambda x: x[0] == '!', abi_match))
global_abi = list(filter(lambda x: x[0] != '!', abi_match))
f.write("\tglobal:\n")

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-buildtools_wafsamba_samba_autoconf_py,v 1.12 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_samba_autoconf_py,v 1.13 2021/05/12 23:33:24 jca Exp $
1. Sort -L flags to unbreak linking when any other version of Samba is installed.
@ -7,7 +7,7 @@ $OpenBSD: patch-buildtools_wafsamba_samba_autoconf_py,v 1.12 2019/12/19 02:57:28
Index: buildtools/wafsamba/samba_autoconf.py
--- buildtools/wafsamba/samba_autoconf.py.orig
+++ buildtools/wafsamba/samba_autoconf.py
@@ -848,6 +848,27 @@ def ADD_LDFLAGS(conf, flags, testflags=False):
@@ -893,6 +893,27 @@ def ADD_LDFLAGS(conf, flags, testflags=False):
if not 'EXTRA_LDFLAGS' in conf.env:
conf.env['EXTRA_LDFLAGS'] = []
conf.env['EXTRA_LDFLAGS'].extend(TO_LIST(flags))
@ -35,16 +35,12 @@ Index: buildtools/wafsamba/samba_autoconf.py
return flags
@@ -911,10 +932,9 @@ def SETUP_CONFIGURE_CACHE(conf, enable):
def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
# we don't want any libraries or modules to rely on runtime
# resolution of symbols
@@ -956,7 +977,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf):
# symbols used for fuzzers are only defined by compiler wrappers.
return
- if not sys.platform.startswith("openbsd"):
- conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
+ conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
- if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
+ if conf.env.undefined_ignore_ldflags == []:
if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
+ if True:
# we don't want any libraries or modules to rely on runtime
# resolution of symbols
conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)

View File

@ -1,10 +1,12 @@
$OpenBSD: patch-buildtools_wafsamba_samba_conftests_py,v 1.5 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_samba_conftests_py,v 1.6 2021/05/12 23:33:24 jca Exp $
Reverse order of paths added to get reliable builds.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9890
Index: buildtools/wafsamba/samba_conftests.py
--- buildtools/wafsamba/samba_conftests.py.orig
+++ buildtools/wafsamba/samba_conftests.py
@@ -39,9 +39,9 @@ def check(self, *k, **kw):
@@ -40,9 +40,9 @@ def check(self, *k, **kw):
def add_options_dir(dirs, env):
for x in dirs:
if not x in env.CPPPATH:

View File

@ -1,10 +1,12 @@
$OpenBSD: patch-buildtools_wafsamba_samba_install_py,v 1.5 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_samba_install_py,v 1.6 2021/05/12 23:33:24 jca Exp $
Make Samba4 WAF respect OpenBSD shared libraries versioning conventions.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9774
Index: buildtools/wafsamba/samba_install.py
--- buildtools/wafsamba/samba_install.py.orig
+++ buildtools/wafsamba/samba_install.py
@@ -117,11 +117,15 @@ def install_library(self):
@@ -114,11 +114,15 @@ def install_library(self):
else:
inst_name = bld.make_libname(t.target)
elif self.vnum:
@ -13,17 +15,17 @@ Index: buildtools/wafsamba/samba_install.py
install_name = bld.make_libname(target_name, version=self.vnum)
- install_link = bld.make_libname(target_name, version=vnum_base)
- inst_name = bld.make_libname(t.target)
- if not self.private_library:
- if not self.private_library or not t.env.SONAME_ST:
+ if sys.platform.startswith('openbsd'):
+ install_link = install_name
+ else:
+ install_link = bld.make_libname(target_name, version=vnum_base)
+ inst_name = bld.make_libname(t.target, version=self.vnum)
+ if not self.private_library and not sys.platform.startswith('openbsd'):
+ if not sys.platform.startswith("openbsd") and (not self.private_library or not t.env.SONAME_ST):
# only generate the dev link for non-bundled libs
dev_link = bld.make_libname(target_name)
elif getattr(self, 'soname', ''):
@@ -171,7 +175,7 @@ def apply_vscript(self):
@@ -169,7 +173,7 @@ def apply_vscript(self):
'''add version-script arguments to library build'''
if self.env.HAVE_LD_VERSION_SCRIPT and getattr(self, 'version_script', ''):

View File

@ -1,12 +1,15 @@
$OpenBSD: patch-buildtools_wafsamba_symbols_py,v 1.3 2016/04/22 11:48:36 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_symbols_py,v 1.4 2021/05/12 23:33:24 jca Exp $
Add a bunch of common symbols to allow tests to run. Those that added in
safe_symbols initially should probably go upstream, _Jv_RegisterClasses is
a strange one (weak symbol everywhere in the whole system) and others are
coming from libgcc.a.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9892
--- buildtools/wafsamba/symbols.py.orig Wed Apr 13 17:18:35 2016
+++ buildtools/wafsamba/symbols.py Wed Apr 13 17:18:35 2016
@@ -570,7 +570,14 @@ def symbols_whyneeded(task):
Index: buildtools/wafsamba/symbols.py
--- buildtools/wafsamba/symbols.py.orig
+++ buildtools/wafsamba/symbols.py
@@ -572,7 +572,14 @@ def symbols_whyneeded(task):
def report_duplicate(bld, binname, sym, libs, fail_on_error):
'''report duplicated symbols'''

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-buildtools_wafsamba_wafsamba_py,v 1.7 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_wafsamba_py,v 1.8 2021/05/12 23:33:24 jca Exp $
- allow the library version to be overriden
@ -9,25 +9,28 @@ $OpenBSD: patch-buildtools_wafsamba_wafsamba_py,v 1.7 2019/12/19 02:57:28 jca Ex
Index: buildtools/wafsamba/wafsamba.py
--- buildtools/wafsamba/wafsamba.py.orig
+++ buildtools/wafsamba/wafsamba.py
@@ -219,6 +219,14 @@ def SAMBA_LIBRARY(bld, libname, source,
@@ -208,6 +208,17 @@ def SAMBA_LIBRARY(bld, libname, source,
deps = TO_LIST(deps)
deps.append(obj_target)
+ saved_lib_version = vnum
+ osvnum = os.getenv('LIB' + libname.replace('-', '_') + '_VERSION')
+ osvnum = os.getenv('LIB' + libname.replace('-', '_').replace('.', '_') + '_VERSION')
+ if osvnum:
+ vnum = osvnum
+ if realname: realname = re.sub(r'(\.[0-9]+)+$', '.' + osvnum, realname)
+ if link_name: link_name = re.sub(r'(\.[0-9]+)+$', '.' + osvnum, link_name)
+ if soname: soname = re.sub(r'(\.[0-9]+)+$', '.' + osvnum, soname)
+ else:
+ if vnum is not None and "cpython" in libname:
+ raise Errors.WafError("No override for %s" % libname)
+
realname = bld.map_shlib_extension(realname, python=(target_type=='PYTHON'))
link_name = bld.map_shlib_extension(link_name, python=(target_type=='PYTHON'))
@@ -331,9 +339,9 @@ def SAMBA_LIBRARY(bld, libname, source,
@@ -322,9 +333,9 @@ def SAMBA_LIBRARY(bld, libname, source,
if pc_files is not None and not private_library:
if pyembed and bld.env['IS_EXTRA_PYTHON']:
if pyembed:
- bld.PKG_CONFIG_FILES(pc_files, vnum=vnum, extra_name=bld.env['PYTHON_SO_ABI_FLAG'])
+ bld.PKG_CONFIG_FILES(pc_files, vnum=saved_lib_version, extra_name=bld.env['PYTHON_SO_ABI_FLAG'])
else:

View File

@ -1,9 +1,11 @@
$OpenBSD: patch-buildtools_wafsamba_wscript,v 1.4 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-buildtools_wafsamba_wscript,v 1.5 2021/05/12 23:33:24 jca Exp $
Add a hack to force addition of -I/usr/include before any other include path discovered.
Index: buildtools/wafsamba/wscript
--- buildtools/wafsamba/wscript.orig
+++ buildtools/wafsamba/wscript
@@ -82,6 +82,11 @@ def set_options(opt):
@@ -88,6 +88,11 @@ def options(opt):
help=("Disable use of gettext"),
action="store_true", dest='disable_gettext', default=False)

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-lib_ldb_wscript,v 1.12 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-lib_ldb_wscript,v 1.13 2021/05/12 23:33:24 jca Exp $
1. Force building standalone library (e.g., put headers in appropriate place).
@ -7,7 +7,7 @@ $OpenBSD: patch-lib_ldb_wscript,v 1.12 2019/12/19 02:57:28 jca Exp $
Index: lib/ldb/wscript
--- lib/ldb/wscript.orig
+++ lib/ldb/wscript
@@ -67,6 +67,7 @@ def configure(conf):
@@ -68,6 +68,7 @@ def configure(conf):
conf.CONFIG_PATH('LDB_MODULESDIR', conf.SUBST_ENV_VAR('MODULESDIR') + '/ldb')
conf.env.standalone_ldb = conf.IN_LAUNCH_DIR()
@ -15,7 +15,7 @@ Index: lib/ldb/wscript
if not conf.env.standalone_ldb:
max_ldb_version = [int(x) for x in VERSION.split(".")]
@@ -160,8 +161,7 @@ def configure(conf):
@@ -151,8 +152,7 @@ def configure(conf):
# we don't want any libraries or modules to rely on runtime
# resolution of symbols

View File

@ -1,9 +1,11 @@
$OpenBSD: patch-lib_tevent_wscript,v 1.4 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-lib_tevent_wscript,v 1.5 2021/05/12 23:33:24 jca Exp $
Force building standalone library (e.g., put headers in appropriate place).
Index: lib/tevent/wscript
--- lib/tevent/wscript.orig
+++ lib/tevent/wscript
@@ -29,6 +29,7 @@ def configure(conf):
@@ -31,6 +31,7 @@ def configure(conf):
conf.RECURSE('lib/talloc')
conf.env.standalone_tevent = conf.IN_LAUNCH_DIR()

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-lib_util_charset_wscript_configure,v 1.1 2021/05/12 23:33:24 jca Exp $
Force-disable icu4c use for now. To be revisited if Spotlight support
is reenabled.
Index: lib/util/charset/wscript_configure
--- lib/util/charset/wscript_configure.orig
+++ lib/util/charset/wscript_configure
@@ -37,7 +37,7 @@ conf.CHECK_CODE('''
lib='iconv',
headers='errno.h iconv.h')
-if conf.CHECK_CFG(package='icu-i18n',
+if False and conf.CHECK_CFG(package='icu-i18n',
args='--cflags --libs',
msg='Checking for icu-i18n',
uselib_store='ICU_I18N'):

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-python_samba_provision___init___py,v 1.8 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-python_samba_provision___init___py,v 1.9 2021/05/12 23:33:24 jca Exp $
- net/isc-bind group name
Index: python/samba/provision/__init__.py
--- python/samba/provision/__init__.py.orig
+++ python/samba/provision/__init__.py
@@ -2138,7 +2138,7 @@ def provision(logger, session_info, smbconf=None,
@@ -2172,7 +2172,7 @@ def provision(logger, session_info, smbconf=None,
root_gid = pwd.getpwuid(root_uid).pw_gid
try:

View File

@ -1,12 +1,13 @@
$OpenBSD: patch-source3_lib_sysquotas_4B_c,v 1.1 2016/05/15 01:10:07 jca Exp $
$OpenBSD: patch-source3_lib_sysquotas_4B_c,v 1.2 2021/05/12 23:33:24 jca Exp $
Switch back to root to call quotactl(2), our kernel has too strict
permision checks.
--- source3/lib/sysquotas_4B.c.orig Fri May 13 21:11:44 2016
+++ source3/lib/sysquotas_4B.c Fri May 13 21:12:54 2016
@@ -47,7 +47,7 @@
#include <ufs/ufs/quota.h>
Index: source3/lib/sysquotas_4B.c
--- source3/lib/sysquotas_4B.c.orig
+++ source3/lib/sysquotas_4B.c
@@ -51,7 +51,7 @@
#include <jfs/quota.h>
#endif
-#if defined(DARWINOS)

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-source3_lib_sysquotas_c,v 1.1 2019/12/05 10:01:52 jca Exp $
$OpenBSD: patch-source3_lib_sysquotas_c,v 1.2 2021/05/12 23:33:24 jca Exp $
Avoid printf("%s", NULL);
Index: source3/lib/sysquotas.c
--- source3/lib/sysquotas.c.orig
+++ source3/lib/sysquotas.c
@@ -558,10 +558,10 @@ int sys_get_quota(const char *path, enum SMB_QUOTA_TYP
@@ -575,10 +575,10 @@ int sys_get_quota(const char *path, enum SMB_QUOTA_TYP
ret = sys_quota_backends[i].get_quota(mntpath, bdev, qtype, id, dp);
if (ret!=0) {
DEBUG(3,("sys_get_%s_quota() failed for mntpath[%s] bdev[%s] qtype[%d] id[%d]: %s.\n",
@ -18,7 +18,7 @@ Index: source3/lib/sysquotas.c
}
ready = True;
break;
@@ -573,10 +573,10 @@ int sys_get_quota(const char *path, enum SMB_QUOTA_TYP
@@ -590,10 +590,10 @@ int sys_get_quota(const char *path, enum SMB_QUOTA_TYP
ret=sys_get_vfs_quota(mntpath, bdev, qtype, id, dp);
if (ret!=0) {
DEBUG(3,("sys_get_%s_quota() failed for mntpath[%s] bdev[%s] qtype[%d] id[%d]: %s\n",

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-source3_modules_vfs_acl_tdb_c,v 1.3 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-source3_modules_vfs_acl_tdb_c,v 1.4 2021/05/12 23:33:24 jca Exp $
Workaround/fix for https://bugzilla.samba.org/show_bug.cgi?id=11761
Index: source3/modules/vfs_acl_tdb.c
--- source3/modules/vfs_acl_tdb.c.orig
+++ source3/modules/vfs_acl_tdb.c
@@ -59,7 +59,7 @@ static bool acl_tdb_init(void)
@@ -58,7 +58,7 @@ static bool acl_tdb_init(void)
become_root();
acl_db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600,

View File

@ -1,12 +1,21 @@
$OpenBSD: patch-source3_wscript,v 1.11 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-source3_wscript,v 1.12 2021/05/12 23:33:24 jca Exp $
- avoid using glib (only useful for spotlight?)
- use more generic check for OpenBSD.
- avoid nested function error with clang
Index: source3/wscript
--- source3/wscript.orig
+++ source3/wscript
@@ -90,7 +90,7 @@ def configure(conf):
@@ -102,6 +102,7 @@ def options(opt):
# default = None means autodetection
opt.samba_add_onoff_option('spotlight', with_name="enable", without_name="disable", default=None)
+ opt.samba_add_onoff_option('glib', default=False)
def configure(conf):
default_static_modules = []
@@ -114,7 +115,7 @@ def configure(conf):
conf.ADD_CFLAGS('-DDEVELOPER -DDEBUG_PASSWORD')
conf.env.developer = True
@ -15,7 +24,7 @@ Index: source3/wscript
conf.ADD_LDFLAGS("-Wl,--export-dynamic", testflags=True)
# We crash without vfs_default
@@ -1521,6 +1521,7 @@ main() {
@@ -1694,6 +1695,7 @@ main() {
conf.CHECK_CODE('void seekdir(DIR *d, long loc) { return; }',
'SEEKDIR_RETURNS_VOID',
@ -23,3 +32,12 @@ Index: source3/wscript
headers='sys/types.h dirent.h',
msg='Checking whether seekdir returns void')
@@ -1807,7 +1809,7 @@ main() {
else:
conf.fatal('AFS headers not available, but --with-fake-kaserver was specified')
- if conf.CHECK_CFG(package='glib-2.0',
+ if Options.options.with_glib and conf.CHECK_CFG(package='glib-2.0',
args='--cflags --libs',
msg='Checking for glib-2.0',
uselib_store="GLIB-2.0"):

View File

@ -1,15 +1,12 @@
$OpenBSD: patch-source3_wscript_build,v 1.4 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-source3_wscript_build,v 1.5 2021/05/12 23:33:24 jca Exp $
XXX is lld-7.0.1 being too picky here?
ld: error: duplicate symbol 'pdb_search_init' in version script
Work around by spelling out the affected symbols.
Hiding pdb_*_init would also hide pdb_search_init which is a public
interface used at least by pdbedit.
Index: source3/wscript_build
--- source3/wscript_build.orig
+++ source3/wscript_build
@@ -135,7 +135,9 @@ ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_doma
@@ -132,7 +132,9 @@ ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_doma
'!get_attr_list']
private_pdb_match.append('!pdb_nds_*')
private_pdb_match.append('!pdb_ldapsam_init*')

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-source4_dsdb_samdb_ldb_modules_acl_c,v 1.3 2019/12/05 10:01:52 jca Exp $
$OpenBSD: patch-source4_dsdb_samdb_ldb_modules_acl_c,v 1.4 2021/05/12 23:33:24 jca Exp $
Avoid printf("%s", NULL);
Index: source4/dsdb/samdb/ldb_modules/acl.c
--- source4/dsdb/samdb/ldb_modules/acl.c.orig
+++ source4/dsdb/samdb/ldb_modules/acl.c
@@ -643,7 +643,7 @@ fail:
@@ -646,7 +646,7 @@ fail:
"nbname[%s] ntds[%s] forest[%s] domain[%s]\n",
spn_value, (unsigned)userAccountControl,
samAccountName, dnsHostName,

View File

@ -1,10 +1,12 @@
$OpenBSD: patch-source4_heimdal_build_wscript_build,v 1.4 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-source4_heimdal_build_wscript_build,v 1.5 2021/05/12 23:33:24 jca Exp $
Make Samba4 WAF respect OpenBSD shared libraries versioning conventions.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9774
Index: source4/heimdal_build/wscript_build
--- source4/heimdal_build/wscript_build.orig
+++ source4/heimdal_build/wscript_build
@@ -243,6 +243,11 @@ def HEIMDAL_LIBRARY(libname, source, deps, vnum, versi
@@ -254,6 +254,11 @@ def HEIMDAL_LIBRARY(libname, source, deps, vnum, versi
features = 'c cshlib symlink_lib install_lib'

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-source4_heimdal_lib_asn1_version-script_map,v 1.1 2021/05/12 23:33:24 jca Exp $
Don't add a version to the symbols in this library, it breaks binutils-2.17 ld(1).
Index: source4/heimdal/lib/asn1/version-script.map
--- source4/heimdal/lib/asn1/version-script.map.orig
+++ source4/heimdal/lib/asn1/version-script.map
@@ -1,6 +1,6 @@
# Export everything, but put a tag on is so that we make ourself incompatible with older versions
-HEIMDAL_ASN1_1.0 {
+{
global:
*;
};

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-source4_heimdal_lib_com_err_version-script_map,v 1.1 2021/05/12 23:33:24 jca Exp $
Don't add a version to the symbols in this library, it breaks binutils-2.17 ld(1).
Index: source4/heimdal/lib/com_err/version-script.map
--- source4/heimdal/lib/com_err/version-script.map.orig
+++ source4/heimdal/lib/com_err/version-script.map
@@ -2,5 +2,5 @@
-HEIMDAL_COM_ERR_1.0 {
+{
global:
com_right;
com_right_r;

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-source4_heimdal_lib_gssapi_version-script_map,v 1.1 2021/05/12 23:33:24 jca Exp $
Don't add a version to the symbols in this library, it breaks binutils-2.17 ld(1).
Index: source4/heimdal/lib/gssapi/version-script.map
--- source4/heimdal/lib/gssapi/version-script.map.orig
+++ source4/heimdal/lib/gssapi/version-script.map
@@ -2,5 +2,5 @@
-HEIMDAL_GSS_2.0 {
+{
global:
# __gss_c_nt_anonymous;
__gss_c_nt_anonymous_oid_desc;

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-source4_heimdal_lib_krb5_version-script_map,v 1.1 2021/05/12 23:33:24 jca Exp $
Don't add a version to the symbols in this library, it breaks binutils-2.17 ld(1).
Index: source4/heimdal/lib/krb5/version-script.map
--- source4/heimdal/lib/krb5/version-script.map.orig
+++ source4/heimdal/lib/krb5/version-script.map
@@ -1,4 +1,4 @@
-HEIMDAL_KRB5_2.0 {
+{
global:
krb524_convert_creds_kdc;
krb524_convert_creds_kdc_ccache;

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-source4_heimdal_lib_roken_version-script_map,v 1.1 2021/05/12 23:33:24 jca Exp $
Don't add a version to the symbols in this library, it breaks binutils-2.17 ld(1).
Index: source4/heimdal/lib/roken/version-script.map
--- source4/heimdal/lib/roken/version-script.map.orig
+++ source4/heimdal/lib/roken/version-script.map
@@ -1,4 +1,4 @@
-HEIMDAL_ROKEN_1.0 {
+{
global:
arg_printusage;
arg_printusage_i18n;

View File

@ -1,11 +1,11 @@
$OpenBSD: patch-source4_scripting_bin_samba_upgradedns,v 1.5 2019/12/19 02:57:28 jca Exp $
$OpenBSD: patch-source4_scripting_bin_samba_upgradedns,v 1.6 2021/05/12 23:33:24 jca Exp $
- net/isc-bind group name
Index: source4/scripting/bin/samba_upgradedns
--- source4/scripting/bin/samba_upgradedns.orig
+++ source4/scripting/bin/samba_upgradedns
@@ -77,7 +77,7 @@ __docformat__ = 'restructuredText'
@@ -76,7 +76,7 @@ __docformat__ = 'restructuredText'
def find_bind_gid():
"""Find system group id for bind9
"""

View File

@ -1,20 +0,0 @@
$OpenBSD: patch-source4_torture_local_nss_tests_c,v 1.1 2016/04/12 17:42:09 jca Exp $
Workaround lack of getpwent_r(3)/getgrent_r(3).
--- source4/torture/local/nss_tests.c.orig Sun Apr 10 15:36:54 2016
+++ source4/torture/local/nss_tests.c Sun Apr 10 15:37:50 2016
@@ -25,6 +25,13 @@
#include "torture/local/proto.h"
#include "lib/replace/system/passwd.h"
+#ifndef HAVE_GETPWENT_R
+#define getpwent_r(pwdst, buf, buflen, pwdstp) ENOSYS
+#endif
+#ifndef HAVE_GETGRENT_R
+#define getgrent_r(grdst, buf, buflen, grdstp) ENOSYS
+#endif
+
static bool copy_passwd(struct torture_context *tctx,
const struct passwd *pwd,
struct passwd *p)

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST-docs,v 1.26 2018/06/11 11:59:51 jca Exp $
@comment $OpenBSD: PLIST-docs,v 1.27 2021/05/12 23:33:24 jca Exp $
@pkgpath net/samba,-docs
share/examples/samba/LDAP/
share/examples/samba/LDAP/README
@ -66,14 +66,11 @@ share/examples/samba/libsmbclient/testnotify.c
share/examples/samba/libsmbclient/testread.c
share/examples/samba/libsmbclient/testsmbc.c
share/examples/samba/libsmbclient/teststat.c
@comment share/examples/samba/libsmbclient/teststat.c.orig
share/examples/samba/libsmbclient/teststat2.c
@comment share/examples/samba/libsmbclient/teststat2.c.orig
share/examples/samba/libsmbclient/teststat3.c
share/examples/samba/libsmbclient/teststatvfs.c
share/examples/samba/libsmbclient/testtruncate.c
share/examples/samba/libsmbclient/testutime.c
@comment share/examples/samba/libsmbclient/testutime.c.orig
share/examples/samba/libsmbclient/testwrite.c
share/examples/samba/libsmbclient/tree.c
share/examples/samba/libsmbclient/wscript_build
@ -196,3 +193,10 @@ share/examples/samba/validchars/nwdos70.out
share/examples/samba/validchars/readme
share/examples/samba/validchars/validchr.c
share/examples/samba/validchars/validchr.com
share/examples/samba/winexe/
share/examples/samba/winexe/README
share/examples/samba/winexe/winexe.c
share/examples/samba/winexe/winexesvc.c
share/examples/samba/winexe/winexesvc.h
share/examples/samba/winexe/wscript
share/examples/samba/winexe/wscript_build

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST-ldb,v 1.10 2019/12/23 12:26:22 jca Exp $
@comment $OpenBSD: PLIST-ldb,v 1.11 2021/05/12 23:33:25 jca Exp $
@conflict samba-<4.9.17p0v0
@bin bin/ldbadd
@bin bin/ldbdel
@ -13,18 +13,18 @@ include/samba-4.0/ldb_module.h
include/samba-4.0/ldb_version.h
include/samba-4.0/pyldb.h
@lib lib/libldb.so.${LIBldb_VERSION}
@lib lib/libpyldb-util.so.${LIBpyldb-util_VERSION}
@comment @lib lib/libpyldb-util.${PYLDB_UTIL_LIBSUFFIX}
@lib lib/libpyldb-util.${PYLDB_UTIL_LIBSUFFIX}
lib/pkgconfig/ldb.pc
lib/pkgconfig/pyldb-util.pc
lib/pkgconfig/pyldb-util.${MODPY_PYC_MAGIC_TAG}pc
lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}_ldb_text.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}_ldb_text.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/_ldb_text.py
lib/python${MODPY_VERSION}/site-packages/_ldb_text.pyc
lib/python${MODPY_VERSION}/site-packages/_ldb_text.${MODPY_PYOEXTENSION}
@so lib/python${MODPY_VERSION}/site-packages/ldb.so
@so lib/python${MODPY_VERSION}/site-packages/ldb.${MODPY_PYC_MAGIC_TAG}so
lib/samba/ldb/
@so lib/samba/ldb/asq.so
@so lib/samba/ldb/ldap.so
@so lib/samba/ldb/ldb.so
@so lib/samba/ldb/paged_results.so
@so lib/samba/ldb/paged_searches.so
@so lib/samba/ldb/rdn_name.so
@so lib/samba/ldb/sample.so

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
@comment $OpenBSD: PLIST-tevent,v 1.4 2019/12/04 00:17:53 jca Exp $
@comment $OpenBSD: PLIST-tevent,v 1.5 2021/05/12 23:33:25 jca Exp $
include/samba-4.0/
include/samba-4.0/tevent.h
@lib lib/libtevent.so.${LIBtevent_VERSION}
lib/pkgconfig/tevent.pc
@so lib/python${MODPY_VERSION}/site-packages/_tevent.so
@so lib/python${MODPY_VERSION}/site-packages/_tevent.${MODPY_PYC_MAGIC_TAG}so
lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}tevent.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}tevent.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/tevent.py
lib/python${MODPY_VERSION}/site-packages/tevent.pyc
lib/python${MODPY_VERSION}/site-packages/tevent.${MODPY_PYOEXTENSION}