update to 4.9.4 (alpha build)

This commit is contained in:
Mikhail Novosyolov 2019-01-24 20:16:15 +03:00
parent 9e0e0c0a0f
commit 74184adaa9
12 changed files with 355 additions and 58 deletions

View file

@ -1,4 +1,4 @@
sources:
samba-pubkey.asc: 7a27a6974cc0ec939d50fcb1591aa754c4b4b0bf
samba-4.6.14.tar.gz: 08fc851957e18428a0fc76f0e4aa7044b509aa0a
samba-4.6.14.tar.asc: ded9eaa8924fa30838e869d21e8e44b31be7f68b
samba-4.9.4.tar.gz: 7f8e15709e03e52d14bd9c85dd717366c106993f
samba-4.9.4.tar.asc: e2562084ae84516a91c5f1477085d80e21d275a4

View file

@ -0,0 +1,52 @@
From cbdbf5e6e26017084fab0a6f6bd5ad495775fc31 Mon Sep 17 00:00:00 2001
From: Stefan Metzmacher <metze@samba.org>
Date: Wed, 19 Dec 2018 09:38:33 +0100
Subject: [PATCH] s3:auth: ignore create_builtin_guests() failing without a
valid idmap configuration
This happens on standalone servers, where winbindd is automatically
started by init scripts if it's installed. But it's not really
used and may not have a valid idmap configuration (
"idmap config * : range" has no default!)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13697
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
(cherry picked from commit 865538fabaea33741f5fa542dbc3f2e08308c2c1)
---
source3/auth/token_util.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/source3/auth/token_util.c b/source3/auth/token_util.c
index f5b0e694433..ee38d6c9645 100644
--- a/source3/auth/token_util.c
+++ b/source3/auth/token_util.c
@@ -745,7 +745,23 @@ NTSTATUS finalize_local_nt_token(struct security_token *result,
status = create_builtin_guests(domain_sid);
unbecome_root();
- if (NT_STATUS_EQUAL(status, NT_STATUS_PROTOCOL_UNREACHABLE)) {
+ /*
+ * NT_STATUS_PROTOCOL_UNREACHABLE:
+ * => winbindd is not running.
+ *
+ * NT_STATUS_ACCESS_DENIED:
+ * => no idmap config at all
+ * and wbint_AllocateGid()/winbind_allocate_gid()
+ * failed.
+ *
+ * NT_STATUS_NO_SUCH_GROUP:
+ * => no idmap config at all and
+ * "tdbsam:map builtin = no" means
+ * wbint_Sids2UnixIDs() fails.
+ */
+ if (NT_STATUS_EQUAL(status, NT_STATUS_PROTOCOL_UNREACHABLE) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
+ NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_GROUP)) {
/*
* Add BUILTIN\Guests directly to token.
* But only if the token already indicates
--
2.19.2

View file

@ -1,5 +1,5 @@
--- third_party/aesni-intel/wscript.orig 2017-09-17 19:15:34 UTC
+++ third_party/aesni-intel/wscript
--- a/third_party/aesni-intel/wscript.orig 2017-09-17 19:15:34 UTC
+++ b/third_party/aesni-intel/wscript
@@ -4,14 +4,19 @@ import Utils
def configure(conf):

View file

@ -0,0 +1,83 @@
From 43b6d6207d68aa8f884d551324554d05281dbde6 Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Thu, 24 Jan 2019 02:25:23 +0300
Subject: [PATCH] Follow shared libs policy
Based on https://bugzilla.samba.org/show_bug.cgi?id=9774
"On OpenBSD, shared libraries (not "plugins", but those who get linked in) should have the following name scheme:
libNAME.so.MAJOR.MINOR
It's also permitted, but highly discouraged to have libNAME.so links pointing to the "versioned" file.
There was done a lot of work on autotools to fix this. And now Samba4 is using WAF, which does not respect those requirements. Also, new build system does not allow for packager to control shared object's version. Yes, WAF tries to do it's best to control ABI... but it is a must to have such control anyway. On OpenBSD the convention is to use environment variables like LIBfoo_VERSION=MAJOR.MINOR to set SO version to 0.0 for library "foo", and therefore result in libfoo.so.0.0.
Of course, I do not want to force Samba project doing that work, but I'm just asking, what could be tuned to change the scheme? I grepped different things in buildtools/ directory for a few hours but still did not get where does versioning happen."
---
buildtools/wafsamba/samba_install.py | 6 +++---
buildtools/wafsamba/wafsamba.py | 12 ++++++++++--
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/buildtools/wafsamba/samba_install.py b/buildtools/wafsamba/samba_install.py
index 21035bf29db..45a73fa525c 100644
--- a/buildtools/wafsamba/samba_install.py
+++ b/buildtools/wafsamba/samba_install.py
@@ -117,11 +117,15 @@ def install_library(self):
else:
inst_name = bld.make_libname(t.target)
elif self.vnum:
+ import sys
vnum_base = self.vnum.split('.')[0]
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 sys.platform.startswith('linux'):
+ 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('linux'):
# 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):
'''add version-script arguments to library build'''
if self.env.HAVE_LD_VERSION_SCRIPT and getattr(self, 'version_script', ''):
- self.env.append_value('LINKFLAGS', "-Wl,--version-script=%s" %
+ self.env.append_unique('LINKFLAGS', "-Wl,--version-script=%s" %
self.version_script)
self.version_script = None
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 12d5421c4a6..56b7e2aace7 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -219,6 +219,14 @@ 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')
+ 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)
+
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,
if pc_files is not None and not private_library:
if pyembed and bld.env['IS_EXTRA_PYTHON']:
- 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:
- bld.PKG_CONFIG_FILES(pc_files, vnum=vnum)
+ bld.PKG_CONFIG_FILES(pc_files, vnum=saved_lib_version)
if (manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and
bld.env['XSLTPROC_MANPAGES']):
--
2.17.1

View file

@ -0,0 +1,26 @@
From 3749e2253f5eec9adc61aadb48ae7ddb4be43d3a Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Thu, 24 Jan 2019 01:29:06 +0300
Subject: [PATCH] Lock order violation
Workaround/fix for https://bugzilla.samba.org/show_bug.cgi?id=11761
---
source3/modules/vfs_acl_tdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index bb69170c910..5ff26692328 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -59,7 +59,7 @@ static bool acl_tdb_init(void)
become_root();
acl_db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600,
- DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE);
+ DBWRAP_LOCK_ORDER_2, DBWRAP_FLAG_NONE);
unbecome_root();
if (acl_db == NULL) {
--
2.17.1

View file

@ -0,0 +1,30 @@
From 500239325088b475dd52cf40cfe9ded242f759ac Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Thu, 24 Jan 2019 00:53:54 +0300
Subject: [PATCH] Make arguements to WAF
With this patch, it becomes easy to call WAF with additional arguments. This ability is quiet handy in automated environments that are already oriented on Makefile framework.
Author: Vadim Zhukov, OpenBSD
https://bugzilla.samba.org/show_bug.cgi?id=9886
---
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 5cc90771000..a91be074e5e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,8 @@
PYTHON?=python
WAF_BINARY=$(PYTHON) ./buildtools/bin/waf
-WAF=WAF_MAKE=1 $(WAF_BINARY)
+WAF_ARGS?=
+WAF=WAF_MAKE=1 $(WAF_BINARY) $(WAF_ARGS)
all:
$(WAF) build
--
2.17.1

View file

@ -0,0 +1,33 @@
From 66fa8e15ab47a6569e639f6c1e8d46f0cfa465c8 Mon Sep 17 00:00:00 2001
From: Vadim Zhukov <persgray@gmail.com>
Date: Fri, 17 May 2013 12:51:03 +0400
Subject: [PATCH] Reverse order of paths added to get more reliable builds
When processing configure time checks, there is a Samba-specific hook activated for each check being made. This hooks looks into CPPPATH and LIBPATH, and, if the default path supplied by configure option does not present there, adds those to respective lists in those variables. I do not know, why, but new paths are prepended to this list instead of being appended to it. As a result, the results of previous configure checks are not reliable anymore, because they were made in a different environment, not looking at the directories added later. This could (and break) some setups, especially on *BSD, when base system and additional packages install headers and/or libraries with the same name.
The patch below reverses the order of paths being appended. I suspect this could be wrong, because this seems an obvious decision for initial implementation, but there are no comments in the code describing the reasons to do this either way.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=9890
---
buildtools/wafsamba/samba_conftests.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/buildtools/wafsamba/samba_conftests.py b/buildtools/wafsamba/samba_conftests.py
index ec98ba0..560d939 100644
--- a/buildtools/wafsamba/samba_conftests.py
+++ b/buildtools/wafsamba/samba_conftests.py
@@ -39,9 +39,9 @@ def check(self, *k, **kw):
def add_options_dir(dirs, env):
for x in dirs:
if not x in env.CPPPATH:
- env.CPPPATH = [os.path.join(x, 'include')] + env.CPPPATH
+ env.CPPPATH = env.CPPPATH + [os.path.join(x, 'include')]
if not x in env.LIBPATH:
- env.LIBPATH = [os.path.join(x, 'lib')] + env.LIBPATH
+ env.LIBPATH = env.LIBPATH + [os.path.join(x, 'lib')]
add_options_dir(additional_dirs, kw['env'])
--
1.8.2.2

37
ROSA-bind-GID.patch Normal file
View file

@ -0,0 +1,37 @@
From 371e987689d16074e43fb9f23e775120513f1d7c Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Thu, 24 Jan 2019 01:21:29 +0300
Subject: [PATCH] ROSA bind GID
ROSA's bind package must have user group 'named' by default
(package bind-9.11.4-P1-1 does not have it, but I'll make it have it)
diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index 066411ab8d7..1820d460360 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -2128,7 +2128,8 @@ def provision(logger, session_info, smbconf=None,
root_gid = pwd.getpwuid(root_uid).pw_gid
try:
- bind_gid = findnss_gid(["bind", "named"])
+ # ROSA's bind package must have user group 'named' by default (package 9.11.4-P1-1 does not have it, but I'll make it have it)
+ bind_gid = findnss_gid(["named", "bind"])
except KeyError:
bind_gid = None
--- a/source4/scripting/bin/samba_upgradedns
+++ b/source4/scripting/bin/samba_upgradedns
@@ -77,7 +77,7 @@ __docformat__ = 'restructuredText'
def find_bind_gid():
"""Find system group id for bind9
"""
- for name in ["bind", "named"]:
+ for name in ["named", "bind"]:
try:
return grp.getgrnam(name)[2]
except KeyError:
--
2.17.1

27
ROSA-vendor-version.patch Normal file
View file

@ -0,0 +1,27 @@
From dfac5d88745bd89884dc5b2f2dccceb2f73392fb Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Thu, 24 Jan 2019 02:21:58 +0300
Subject: [PATCH] ROSA vendor version
---
VERSION | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/VERSION b/VERSION
index 7efe718ebbf..fd582b9fc18 100644
--- a/VERSION
+++ b/VERSION
@@ -123,5 +123,8 @@ SAMBA_VERSION_RELEASE_NICKNAME=
# -> "3.0.0rc2-VendorVersion" #
# #
########################################################
-SAMBA_VERSION_VENDOR_SUFFIX=
-SAMBA_VERSION_VENDOR_PATCH=
+# Examples:
+# SAMBA_VERSION_VENDOR_SUFFIX=ROSA
+# SAMBA_VERSION_VENDOR_PATCH=rosa2016.1_4.9.4_1 (distro_packageVersion_packageRelease)
+SAMBA_VERSION_VENDOR_SUFFIX=ROSA
+SAMBA_VERSION_VENDOR_PATCH=@ROSA_VENDOR_PATCH@
--
2.17.1

View file

@ -1,11 +1,11 @@
diff -urN samba-4.3.11/packaging/systemd/winbind.service samba-4.3.11-patched/packaging/systemd/winbind.service
--- samba-4.3.11/packaging/systemd/winbind.service 2016-06-14 17:37:36.000000000 +1000
+++ samba-4.3.11-patched/packaging/systemd/winbind.service 2016-07-24 17:09:25.124316862 +1000
@@ -1,6 +1,7 @@
--- a/packaging/systemd/winbind.service.in.orig 2019-01-14 22:21:05.446405666 +0300
+++ b/packaging/systemd/winbind.service.in 2019-01-14 22:22:12.208373529 +0300
@@ -1,7 +1,8 @@
[Unit]
Description=Samba Winbind Daemon
-After=syslog.target network.target nmb.service
+After=syslog.target network-online.target time-sync.target nmb.service
Documentation=man:winbindd(8) man:samba(7) man:smb.conf(5)
-After=network.target nmb.service
+After=network-online.target time-sync.target nmb.service
+Before=systemd-user-sessions.service
[Service]

View file

@ -1,22 +0,0 @@
diff -Naur samba-4.6.1.orig/ctdb/wscript samba-4.6.1/ctdb/wscript
--- samba-4.6.1.orig/ctdb/wscript 2017-03-30 12:54:50.646453287 +0300
+++ samba-4.6.1/ctdb/wscript 2017-03-30 12:54:51.348454582 +0300
@@ -546,6 +546,7 @@
source=bld.SUBDIR('utils/smnotify',
'smnotify.c gen_smnotify.c gen_xdr.c'),
deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt',
+ ldflags='-ltirpc',
includes='utils utils/smnotify',
install_path='${CTDB_HELPER_BINDIR}')
diff -Naur samba-4.6.1.orig/source3/wscript_build samba-4.6.1/source3/wscript_build
--- samba-4.6.1.orig/source3/wscript_build 2017-03-30 12:54:51.098454121 +0300
+++ samba-4.6.1/source3/wscript_build 2017-03-30 12:54:51.349454583 +0300
@@ -758,6 +758,7 @@
bld.env['dmapi_lib'] +
bld.env['legacy_quota_libs'] +
NOTIFY_DEPS,
+ ldflags='-ltirpc',
private_library=True)
bld.SAMBA3_SUBSYSTEM('LOCKING',

View file

@ -20,7 +20,7 @@
%define passdbmajor 0
%define credentialsmajor 0
%define smbconfmajor 0
%define smbldapmajor 0
%define smbldapmajor 2
%define tevent_utilmajor 0
%define nsswinsmajor 2
%define winbindmajor 2
@ -88,7 +88,7 @@
Summary: Samba SMB server
Name: samba
Version: 4.6.14
Version: 4.9.4
Release: 1
Epoch: 1
License: GPLv3+
@ -111,10 +111,18 @@ Source28: samba.pamd
Source29: system-auth-winbind.pamd
Source41: openldap-samba.conf
Source100: %{name}.rpmlintrc
# xdr_* functions have moved from glibc into libtirpc
Patch0: samba-4.3.9-tirpc.patch
# OpenBSD-* patches are based on patches in OpenBSD net/samba;
# in some cases conditions like 'if platform=OpenBSD' are removed;
# in some cases patches are just rediffed.
Patch2: samba-4.3.11-winbind-service.patch
Patch3: FreeBSD-third__party_aesni-intel_wscript.patch
Patch4: OpenBSD-Reverse-order-of-paths-added.patch
Patch5: OpenBSD-Make-arguements-to-WAF.patch
#Patch6: OpenBSD-Follow-shared-libs-policy.patch
Patch7: OpenBSD-Lock-order-violation.patch
Patch8: ROSA-bind-GID.patch
Patch9: DEBIAN-s3-auth-ignore-create_builtin_guests-failing-without.patch
Patch10: ROSA-vendor-version.patch
# Required for ldb docs
BuildRequires: docbook-style-xsl
@ -158,6 +166,9 @@ BuildRequires: pkgconfig(pytalloc-util)
BuildRequires: pkgconfig(talloc)
BuildRequires: pkgconfig(tdb)
BuildRequires: pkgconfig(tevent)
BuildRequires: pkgconfig(jansson)
BuildRequires: pkgconfig(libarchive)
BuildRequires: gpgme-devel
Requires(pre): chkconfig mktemp psmisc
Requires(pre): coreutils sed grep
@ -246,6 +257,7 @@ implementation details.
%{_sbindir}/samba_dnsupdate
%{_sbindir}/samba_spnupdate
%{_sbindir}/samba_upgradedns
%{_sbindir}/samba-gpupdate
%{_sbindir}/smbd
%{_sbindir}/nmbd
%attr(-,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-server
@ -260,8 +272,8 @@ implementation details.
%dir %{_datadir}/%{name}/scripts
%{_datadir}/samba/setup
%attr(0755,root,root) %{_datadir}/%{name}/scripts/print-pdf
%{_mandir}/man8/idmap_*.8*
%{_mandir}/man8/samba.8*
%{_mandir}/man8/samba-gpupdate.8*
%{_unitdir}/samba.service
%{_unitdir}/smb.service
%{_unitdir}/nmb.service
@ -313,6 +325,7 @@ Provides libraries for samba-server
%{_libdir}/samba/gensec
%{_libdir}/samba/auth
%{_libdir}/samba/libCHARSET3-samba4.so
%{_libdir}/samba/libMESSAGING-SEND-samba4.so
%{_libdir}/samba/libHDB-SAMBA4-samba4.so
%{_libdir}/samba/libLIBWBCLIENT-OLD-samba4.so
%{_libdir}/samba/libMESSAGING-samba4.so
@ -325,7 +338,6 @@ Provides libraries for samba-server
%{_libdir}/samba/libasn1-samba4.so.8.0.0
%{_libdir}/samba/libasn1util-samba4.so
%{_libdir}/samba/libauth-samba4.so
%{_libdir}/samba/libauth-sam-reply-samba4.so
%{_libdir}/samba/libauth-unix-token-samba4.so
%{_libdir}/samba/libauth4-samba4.so
%{_libdir}/samba/libauthkrb5-samba4.so
@ -338,6 +350,9 @@ Provides libraries for samba-server
%{_libdir}/samba/libcliauth-samba4.so
%{_libdir}/samba/libcluster-samba4.so
%{_libdir}/samba/libcmdline-credentials-samba4.so
%{_libdir}/samba/libcmdline-contexts-samba4.so
%{_libdir}/samba/libgpext-samba4.so
%{_libdir}/samba/libcommon-auth-samba4.so
%{_libdir}/samba/libcom_err-samba4.so.0
%{_libdir}/samba/libcom_err-samba4.so.0.25
%{_libdir}/samba/libdb-glue-samba4.so
@ -348,12 +363,12 @@ Provides libraries for samba-server
%{_libdir}/samba/libdlz-bind9-for-torture-samba4.so
%{_libdir}/samba/libdnsserver-common-samba4.so
%{_libdir}/samba/libdsdb-garbage-collect-tombstones-samba4.so
%{_libdir}/samba/libscavenge-dns-records-samba4.so
%{_libdir}/samba/libdsdb-module-samba4.so
%{_libdir}/samba/libevents-samba4.so
%{_libdir}/samba/libflag-mapping-samba4.so
%{_libdir}/samba/libgenrand-samba4.so
%{_libdir}/samba/libgensec-samba4.so
%{_libdir}/samba/libgpo-samba4.so
%{_libdir}/samba/libgse-samba4.so
%{_libdir}/samba/libgssapi-samba4.so.2
%{_libdir}/samba/libgssapi-samba4.so.2.0.0
@ -393,6 +408,7 @@ Provides libraries for samba-server
%{_libdir}/samba/libnss-info-samba4.so
%{_libdir}/samba/libpac-samba4.so
%{_libdir}/samba/libpopt-samba3-samba4.so
%{_libdir}/samba/libpopt-samba3-cmdline-samba4.so
%{_libdir}/samba/libposix-eadb-samba4.so
%{_libdir}/samba/libprinting-migrate-samba4.so
%{_libdir}/samba/libprocess-model-samba4.so
@ -433,6 +449,8 @@ Provides libraries for samba-server
%{_libdir}/samba/libutil-setid-samba4.so
%{_libdir}/samba/libutil-tdb-samba4.so
%{_libdir}/samba/libwinbind-client-samba4.so
%{_libdir}/samba/libcmocka-samba4.so
%{_libdir}/samba/libnon-posix-acls-samba4.so
%ifarch x86_64
%{_libdir}/samba/libaesni-intel-samba4.so
%endif
@ -466,7 +484,6 @@ printing to SMB printers.
%files client
%{_bindir}/cifsdd
%{_bindir}/dbwrap_tool
%{_bindir}/eventlogadm
%{_bindir}/findsmb
%{_bindir}/mvxattr
%{_bindir}/net
@ -475,6 +492,7 @@ printing to SMB printers.
%{_bindir}/profiles
%{_bindir}/rpcclient
%{_sbindir}/samba_kcc
%{_sbindir}/eventlogadm
%{_bindir}/samba-tool
%{_bindir}/sharesec
%{_bindir}/smbcacls
@ -543,8 +561,6 @@ packages of Samba.
%dir /var/lib/%{name}/private
%(for i in %{_bindir}/{%{commonbin}};do echo $i;done)
%(for i in %{_mandir}/man?/{%{commonbin}}\.[0-9]*;do echo $i|grep -v testparm;done)
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/libnon-posix-acls-samba4.so
%dir %{_datadir}/%{name}
%dir %{_sysconfdir}/%{name}
%attr(-,root,root) %config(noreplace) %{_sysconfdir}/%{name}/smb.conf
@ -575,7 +591,8 @@ packages of Samba.
%{_mandir}/man5/smbgetrc.5*
%{_mandir}/man5/smbpasswd.5*
%{_mandir}/man7/samba.7*
%{_mandir}/man7/winbind_krb5_locator.7*
%{_mandir}/man7/traffic_learner.7*
%{_mandir}/man7/traffic_replay.7*
%{_mandir}/man8/cifsdd.8*
%{_mandir}/man8/eventlogadm.8*
%{_mandir}/man8/net.8*
@ -589,7 +606,6 @@ packages of Samba.
%{_mandir}/man8/vfs_acl_tdb.8*
%{_mandir}/man8/vfs_acl_xattr.8*
%{_mandir}/man8/vfs_aio_fork.8*
%{_mandir}/man8/vfs_aio_linux.8*
%{_mandir}/man8/vfs_aio_pthread.8*
%{_mandir}/man8/vfs_audit.8*
%{_mandir}/man8/vfs_cacheprime.8*
@ -629,7 +645,8 @@ packages of Samba.
%{_mandir}/man8/vfs_btrfs.8*
%{_mandir}/man8/vfs_linux_xfs_sgid.8*
%{_mandir}/man8/vfs_syncops.8*
%{_mandir}/man8/winbindd.8*
%{_mandir}/man8/vfs_nfs4acl_xattr.8*
%{_mandir}/man8/vfs_virusfilter.8*
%post common
systemd-tmpfiles --create %{_prefix}/lib/tmpfiles.d/samba.conf
@ -672,7 +689,9 @@ Provides libraries for winbind daemon and testing tools
%files -n %{libwinbind}
%attr(755,root,root) /%{_lib}/security/pam_winbind*
%attr(755,root,root) /%{_lib}/libnss_winbind*
%{_libdir}/winbind_krb5_locator.so
%{_libdir}/samba/krb5/winbind_krb5_locator.so
%{_mandir}/man8/winbind_krb5_locator.8*
%ghost %{_libdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
#----------------------------------------------------------------------------
@ -692,6 +711,9 @@ and group/user enumeration from a Windows or Samba domain controller.
%{_bindir}/wbinfo
%attr(-,root,root) %config(noreplace) %{_sysconfdir}/pam.d/system-auth-winbind*
%{_unitdir}/winbind.service
%{_sysconfdir}/NetworkManager/dispatcher.d/30-winbind
%{_mandir}/man8/winbindd.8*
%{_mandir}/man8/idmap_*.8*
%post winbind
# winbind service must not be auto-enabled e.g. because it will break Samba as a Domain Controller
@ -1353,14 +1375,16 @@ else
fi
%setup -q
%patch0 -p1 -b .tirpc~
%patch2 -p1 -b .winbind~
# FreeBSD-third__party_aesni-intel_wscript.patch
%patch3 -p0
%apply_patches
grep -q '@ROSA_VENDOR_PATCH@' VERSION # validate
# SAMBA_VERSION_VENDOR_PATCH is a floating constant
sed -e 's/@ROSA_VENDOR_PATCH@/%{release}/g' -i VERSION
%build
install -d -m 0755 %{buildroot}/%{_libdir}/samba
CFLAGS=-g buildtools/bin/waf configure --enable-fhs \
--with-privatelibdir=%{_libdir}/%{name} \
--with-modulesdir=%{_libdir}/samba \
--bundled-libraries=heimdal,!zlib,!popt,!talloc,!tevent,!tdb,!ldb \
--enable-gnutls \
--enable-cups \
@ -1398,10 +1422,10 @@ CFLAGS=-g buildtools/bin/waf configure --enable-fhs \
--sysconfdir=%{_sysconfdir} \
--datadir=%{_datadir} \
--localstatedir=%{_localstatedir} \
--with-modulesdir=%{_libdir}/%{name} \
-v -v -p \
%{?_smp_mflags}
# --with-privatelibdir=%{_libdir}/%{name} \
# --with-system-mitkrb5 <--- probably a good idea, but causes
# samba_upgradeprovision and friends not to be built
@ -1496,9 +1520,7 @@ install -m644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}-server
mkdir -p %{buildroot}%{_sysconfdir}/security
# Some inline fixes for smb.conf for non-winbind use
install -m644 packaging/LSB/smb.conf %{buildroot}/%{_sysconfdir}/%{name}/smb.conf
cat packaging/LSB/smb.conf | \
touch %{buildroot}/%{_sysconfdir}/%{name}/smb.conf
install -m644 examples/smb.conf.default %{buildroot}/%{_sysconfdir}/%{name}/smb.conf
#sed -e 's/^; printer admin = @adm/ printer admin = @adm/g' >%{buildroot}/%{_sysconfdir}/%{name}/smb.conf
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" "%{buildroot}/%{_sysconfdir}/%{name}/smb.conf"
python %{SOURCE81} "%{buildroot}/%{_sysconfdir}/%{name}/smb.conf"
@ -1528,13 +1550,22 @@ mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
install -m644 packaging/systemd/samba.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/samba
# NetworkManager online/offline script
install -d -m 0755 %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/
install -m 0755 packaging/NetworkManager/30-winbind-systemd %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/30-winbind
# winbind krb5 plugins
install -d -m 0755 %{buildroot}%{_libdir}/krb5/plugins/libkrb5
touch %{buildroot}%{_libdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
install -d -m 0755 %{buildroot}%{_prefix}/lib/tmpfiles.d/
install -m644 packaging/systemd/samba.conf.tmp %{buildroot}%{_prefix}/lib/tmpfiles.d/samba.conf
install -m644 packaging/systemd/*.service %{buildroot}%{_unitdir}/
sed -i 's|/usr/bin/kill|/bin/kill|g' %{buildroot}%{_unitdir}/*.service
for i in $(ls ./packaging/systemd/*.service.in); do
install -m 0644 "$i" "%{buildroot}%{_unitdir}/$(echo "$i" | awk -F '/' '{print $NF}' | sed -e 's/.in$//g')" ; done
sed -i "s|/usr/bin/kill|$(which kill)|g" %{buildroot}%{_unitdir}/*.service
# create /run/samba too.
echo "d /run/samba 755 root root" >> %{buildroot}%{_prefix}/lib/tmpfiles.d/samba.conf
echo "d /run/samba 755 root root" >> %{buildroot}%{_prefix}/lib/tmpfiles.d/samba.conf
# Prepare schema files to be included into OpenLDAP configuration
mkdir -p %{buildroot}%{_sysconfdir}/openldap/{schema,slapd.d}