Compare commits

..

29 commits

Author SHA1 Message Date
Günther Deschner
620bccef18 Update to Samba 4.22.7
Guenther
2025-12-19 13:23:20 +01:00
Günther Deschner
209170dee7 Update to Samba 4.22.6
Guenther
2025-10-17 20:44:19 +02:00
Günther Deschner
75445746a3 Update to Samba 4.22.5
- resolves: rhbz#2391698 - Security fix for CVE-2025-9640
- resolves: rhbz#2394377 - Security fix for CVE-2025-10230

Guenther
2025-10-17 20:43:59 +02:00
Günther Deschner
af56354596 Update to Samba 4.22.4
Guenther
2025-08-21 18:39:36 +02:00
Günther Deschner
cc54c0c19d Fix get_kdc_ip_string handling for secondary KDCs
- resolves: bzso#15881

Guenther
2025-07-10 21:49:23 +02:00
Günther Deschner
8953edf2cd Update to Samba 4.22.3
- resolves: #2376873

Guenther
2025-07-08 01:10:39 +02:00
Günther Deschner
30237b1f01 Update to Samba 4.22.2
- resolves: rhbz#2370468
- resolves: rhbz#2370455 - Security fix for CVE-2025-0620

Guenther
2025-06-05 20:36:08 +02:00
Günther Deschner
6d3bdd4932 Update to Samba 4.22.1
- resolves: rhbz#2360776

Guenther
2025-04-18 02:27:47 +02:00
Günther Deschner
8e57b7ea4d Turn on SMB 3.1.1 Unix Extensions in vendor smb.conf as well...
Guenther
2025-04-10 09:54:40 +02:00
Andreas Schneider
1c18121620 Revert "Set samba-tools to noarch"
This reverts commit f00c21e2a8.

We can't set it to noarch as koji complains that "Requires: lmdb" is
present on some arches and not on others.
2025-03-07 12:55:51 +01:00
Günther Deschner
5cf235e092 Turn on SMB 3.1.1 Unix Extensions in default smb.conf
Guenther
2025-03-07 11:08:07 +01:00
Günther Deschner
39ad9b9ae4 Update to Samba 4.22.0
- resolves: rhbz#2350342

Guenther
2025-03-07 11:08:01 +01:00
Andreas Schneider
e630ce35b7 Use spaces instead of tabs for krb5-printing scripts
Removes rpmlint warnings
2025-03-04 11:24:39 +01:00
Andreas Schneider
09a1f226b4 Set ctdb-etcd-mutex to noarch
This only includes python scripts.
2025-03-04 11:24:38 +01:00
Andreas Schneider
cf446e51f0 Set samba-gpupdate to noarch
This only includes python scripts.
2025-03-04 11:24:36 +01:00
Andreas Schneider
d4d514afc4 Set samba-tools to noarch
This only include a python scripts.
2025-03-04 11:24:34 +01:00
Andreas Schneider
0355abfef0 Set samba-usershare to noarch
It only includes configuration files.
2025-03-04 11:24:32 +01:00
Andreas Schneider
3bb52a5a65 Add missing /run/ctdb dir to files list 2025-03-04 11:24:31 +01:00
Andreas Schneider
b8994ec49c Set version for bundled libreplace 2025-03-04 11:24:29 +01:00
Andrea Bolognani
460952917b Re-enable mold on riscv64
mold didn't build successfully on riscv64 back when riscv64
support was added to samba, but that has changed since and
today there is no longer any reason not to use it.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-03-04 11:24:27 +01:00
David Abdurachmanov
23147a5502 Enable lmdb on riscv64
Solves configuration error:

[..]
Checking for a 64-bit host to support lmdb          : ok
Checking for lmdb >= 0.9.16                         : not found
Checking for header lmdb.h                          : no
Checking for lmdb >= 0.9.16 via header check        : not found
Samba AD DC and --enable-selftest requires lmdb 0.9.16 or later
[..]

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2025-03-04 11:24:25 +01:00
Günther Deschner
34ae6832ad Update to Samba 4.22.0rc4
- resolves: rhbz#2348758

Guenther
2025-03-04 11:24:23 +01:00
Günther Deschner
8739ca29c5 Update to Samba 4.22.0rc3
- resolves: rhbz#2346803

Guenther
2025-03-04 11:24:20 +01:00
Andreas Schneider
926e2f0a28 Fix libldb built with '--with includelibs' 2025-02-18 14:45:19 +01:00
Andreas Schneider
e10ed71be7 Fix the '--with includelibs' build 2025-02-14 19:06:23 +01:00
Andreas Schneider
2bed3a0726 Add LICENSE file of libldb 2025-02-14 17:07:30 +01:00
Andreas Schneider
25ced12273 Make %bcond switches easier to understand
This also removes support for building on rhel8.
2025-02-14 12:02:43 +01:00
Günther Deschner
9547b08663 Update to Samba 4.22.0rc2
- resolves: rhbz#2345547

Guenther
2025-02-13 23:55:52 +01:00
Günther Deschner
1a9bba2498 Update to version 4.22.0rc1
- resolves: rhbz#2344189

Guenther
2025-02-09 01:00:24 +01:00
11 changed files with 137 additions and 583 deletions

View file

@ -1 +0,0 @@
1

2
.gitignore vendored
View file

@ -1,4 +1,2 @@
/samba-*.tar.xz
/samba-*.tar.asc
/*.rpm
/results_samba

View file

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View file

@ -1,4 +0,0 @@
discover:
how: fmf
execute:
how: tmt

View file

@ -4,7 +4,6 @@ inspections:
badfuncs:
ignore:
- /usr/bin/nmbd
- /usr/bin/nmblookup
- /usr/bin/smbtorture
- /usr/lib*/libndr.so.*
@ -26,10 +25,3 @@ abidiff:
debuginfo:
ignore:
- /usr/lib*/libdcerpc-samr.so.*
annocheck:
ignore:
- /usr/bin/gentest
- /usr/bin/locktest
- /usr/bin/masktest
- /usr/bin/smbtorture

View file

@ -1,38 +0,0 @@
From b1ec803f420b2c6d3c5c83d70c6875a7f36b15fc Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@samba.org>
Date: Fri, 21 Nov 2025 15:33:32 +0100
Subject: [PATCH] s4:dsdb: Do not declare cm_print_error()
This is part of the cmocka.h header file.
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Nov 24 11:28:08 UTC 2025 on atb-devel-224
(cherry picked from commit 5a981663e4f677042ba80191770100aecff2120a)
---
source4/dsdb/samdb/ldb_modules/tests/test_group_audit.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/source4/dsdb/samdb/ldb_modules/tests/test_group_audit.c b/source4/dsdb/samdb/ldb_modules/tests/test_group_audit.c
index f7075f3485e..12c464b49c7 100644
--- a/source4/dsdb/samdb/ldb_modules/tests/test_group_audit.c
+++ b/source4/dsdb/samdb/ldb_modules/tests/test_group_audit.c
@@ -103,11 +103,6 @@ void audit_message_send(
#define check_group_change_message(m, u, a, e) \
_check_group_change_message(m, u, a, e, __FILE__, __LINE__);
-/*
- * declare the internal cmocka cm_print_error so that we can output messages
- * in sub unit format
- */
-void cm_print_error(const char * const format, ...);
/*
* Validate a group change JSON audit message
--
2.52.0

View file

@ -6,17 +6,7 @@
# or
# rpmbuild --rebuild --with testsuite samba.src.rpm
#
# If you just want to run a single test, you can use:
# fedpkg mockbuild --with testsuite -- --define 'SAMBA_TESTS regex' samba.src.rpm
# or
# rpmbuild --rebuild --with testsuite --define='SAMBA_TESTS regex' samba.src.rpm
#
%bcond testsuite 0
%if %{with testsuite}
# As the file list is empty for running just the tests, we have empty debuginfo
# package. Disable it to avoid error reporting.
%global debug_package %{nil}
%endif
# Build with internal talloc, tevent, tdb
#
@ -112,32 +102,18 @@
# Build the etcd helpers by default on Fedora
%if 0%{?fedora}
# disable etcd mutex helper as etcd is orphaned in Fedora now
%bcond etcd_mutex 0
%bcond etcd_mutex 1
%else
%bcond etcd_mutex 0
%endif
# Build the prometheus exporter by default on Fedora
%if 0%{?fedora}
%bcond prometheus 1
%else
%bcond prometheus 0
%endif
%ifarch aarch64 ppc64le s390x x86_64 riscv64
%bcond lmdb 1
%else
%bcond lmdb 0
%endif
%if 0%{?fedora} >= 43
%bcond varlink 1
%else
%bcond varlink 0
%endif
%global samba_version 4.23.4
%global samba_version 4.22.7
# The release field is extended:
# <pkgrel>[.<extraver>][.<snapinfo>]%%{?dist}[.<minorbump>]
@ -183,8 +159,8 @@
%global libwbclient_so_version 0
%global talloc_version 2.4.3
%global tdb_version 1.4.14
%global tevent_version 0.17.1
%global tdb_version 1.4.13
%global tevent_version 0.16.2
%global required_mit_krb5 1.20.1
@ -239,11 +215,9 @@ Source18: samba-winbind-systemd-sysusers.conf
Source201: README.downgrade
Source202: samba.abignore
Patch0: samba-4.23-fix-cmocka.patch
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-common-tools = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
@ -340,17 +314,6 @@ BuildRequires: xz
BuildRequires: zlib-devel >= 1.2.3
BuildRequires: pkgconfig(libsystemd)
# TODO FIXME This is not in RHEL yet
%if 0%{?fedora} >= 43
BuildRequires: pkgconfig(libngtcp2)
BuildRequires: pkgconfig(libngtcp2_crypto_gnutls)
%else
Provides: bundled(ngtcp2)
%endif
%if %{with varlink}
BuildRequires: pkgconfig(libvarlink) >= 24
%endif
%ifnarch i686
%if 0%{?fedora} >= 37
@ -380,9 +343,6 @@ BuildRequires: librados-devel
%if %{with etcd_mutex}
BuildRequires: python3-etcd
%endif
%if %{with prometheus}
BuildRequires: libevent-devel
%endif
BuildRequires: cepces-certmonger >= 0.3.8
@ -465,7 +425,7 @@ Unix.
Summary: Samba client programs
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
%if %{with libsmbclient}
@ -488,62 +448,12 @@ The %{name}-client package provides some SMB/CIFS clients to complement
the built-in SMB/CIFS filesystem in Linux. These clients allow access
of SMB/CIFS shares and printing to SMB/CIFS printers.
### CORE-LIBS
%package core-libs
Summary: Samba core libraries
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Provides: bundled(libreplace) = %{samba_depver}
%description core-libs
The samba-core-libs package contains foundational libraries needed by
both Samba servers and clients. This includes error handling, utilities,
and basic support libraries.
### NDR-LIBS
%package ndr-libs
Summary: Samba NDR libraries
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-core-libs = %{samba_depver}
Provides: %{name}-common-libs = %{samba_depver}
Obsoletes: %{name}-common-libs < %{samba_depver}
%if %{without dc} && %{without testsuite}
Obsoletes: samba-dc < %{samba_depver}
Obsoletes: samba-dc-libs < %{samba_depver}
Obsoletes: samba-dc-bind-dlz < %{samba_depver}
%endif
# ctdb-tests package has been dropped if we do not build the testsuite
%if %{with clustering}
%if %{without testsuite}
Obsoletes: ctdb-tests < %{samba_depver}
Obsoletes: ctdb-tests-debuginfo < %{samba_depver}
# endif without testsuite
%endif
# endif with clustering
%endif
# We only build glusterfs for RHGS and Fedora, so obsolete it on other versions
# of the distro
%if %{without vfs_glusterfs}
Obsoletes: samba-vfs-glusterfs < %{samba_depver}
# endif without vfs_glusterfs
%endif
%description ndr-libs
The samba-ndr-libs package contains NDR (Network Data Representation)
encoding libraries used by both Samba servers and clients.
### CLIENT-LIBS
%package client-libs
Summary: Samba client libraries
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
%if %{with libwbclient}
Requires: libwbclient = %{samba_depver}
@ -573,10 +483,50 @@ Obsoletes: samba4-common < %{samba_depver}
samba-common provides files necessary for both the server and client
packages of Samba.
### COMMON-LIBS
%package common-libs
Summary: Libraries used by both Samba servers and clients
Requires(pre): samba-common = %{samba_depver}
Requires: samba-common = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
%if %{with libwbclient}
Requires: libwbclient = %{samba_depver}
%endif
Provides: bundled(libreplace) = %{samba_depver}
%if %{without dc} && %{without testsuite}
Obsoletes: samba-dc < %{samba_depver}
Obsoletes: samba-dc-libs < %{samba_depver}
Obsoletes: samba-dc-bind-dlz < %{samba_depver}
%endif
# ctdb-tests package has been dropped if we do not build the testsuite
%if %{with clustering}
%if %{without testsuite}
Obsoletes: ctdb-tests < %{samba_depver}
Obsoletes: ctdb-tests-debuginfo < %{samba_depver}
# endif without testsuite
%endif
# endif with clustering
%endif
# We only build glusterfs for RHGS and Fedora, so obsolete it on other versions
# of the distro
%if %{without vfs_glusterfs}
Obsoletes: samba-vfs-glusterfs < %{samba_depver}
# endif without vfs_glusterfs
%endif
%description common-libs
The samba-common-libs package contains internal libraries needed by the
SMB/CIFS clients.
### COMMON-TOOLS
%package common-tools
Summary: Tools for Samba clients
Requires: samba-ndr-libs = %{samba_depver}
Requires: samba-common-libs = %{samba_depver}
Requires: samba-client-libs = %{samba_depver}
Requires: samba-libs = %{samba_depver}
Requires: samba-ldb-ldap-modules = %{samba_depver}
@ -614,7 +564,7 @@ and for GPO management on domain members.
### RPC
%package dcerpc
Summary: DCE RPC binaries
Requires: samba-ndr-libs = %{samba_depver}
Requires: samba-common-libs = %{samba_depver}
Requires: samba-client-libs = %{samba_depver}
Requires: samba-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
@ -632,7 +582,7 @@ The samba-dcerpc package contains binaries that serve DCERPC over named pipes.
Summary: Samba AD Domain Controller
Requires: %{name} = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-common-tools = %{samba_depver}
Requires: %{name}-tools = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
@ -676,7 +626,7 @@ The samba-dc-provision package provides files to setup a domain controller
%package dc-libs
Summary: Samba AD Domain Controller Libraries
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
Requires: libwbclient = %{samba_depver}
@ -714,10 +664,8 @@ name server related details of Samba AD.
### DEVEL
%package devel
Summary: Developer tools for Samba libraries
Requires: %{name}-core-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-dc-libs = %{samba_depver}
Requires: libnetapi = %{samba_depver}
@ -772,7 +720,7 @@ Summary: Samba VFS module for GlusterFS
Requires: glusterfs-api >= 3.4.0.16
Requires: glusterfs >= 3.4.0.16
Requires: %{name} = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
@ -823,7 +771,7 @@ the Kerberos credentials cache of the user issuing the print job.
%package ldb-ldap-modules
Summary: Samba ldap modules for ldb
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
Requires: libwbclient = %{samba_depver}
@ -834,7 +782,7 @@ samba-gpupdate.
### LIBS
%package libs
Summary: Samba libraries
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
%if %{with libwbclient}
@ -855,7 +803,7 @@ against the SMB, RPC and other protocols provided by the Samba suite.
Summary: The NETAPI library
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
Requires: libwbclient = %{samba_depver}
@ -877,7 +825,7 @@ develop programs that link against the NETAPI library in the Samba suite.
Summary: The SMB client library
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
%if %{with libwbclient}
@ -902,7 +850,7 @@ suite.
%if %{with libwbclient}
%package -n libwbclient
Summary: The winbind client library
# libwbclient.so only links to libc - no samba library dependencies needed
Requires: %{name}-client-libs = %{samba_depver}
Conflicts: sssd-libwbclient
%description -n libwbclient
@ -927,7 +875,7 @@ library.
%package -n python3-%{name}
Summary: Samba Python3 libraries
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: %{name}-dc-libs = %{samba_depver}
Requires: python3-cryptography
@ -997,7 +945,7 @@ Requires: %{name} = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-winbind = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: %{name}-test-libs = %{samba_depver}
@ -1028,7 +976,7 @@ packages of Samba.
### TEST-LIBS
%package test-libs
Summary: Libraries need by the testing tools for Samba servers and clients
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
@ -1061,8 +1009,8 @@ as a user using the `net usershare` command.
Summary: Samba winbind
Requires(pre): %{name}-common = %{samba_depver}
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires(post): %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires(post): %{name}-common-libs = %{samba_depver}
Requires: %{name}-common-tools = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires(post): %{name}-client-libs = %{samba_depver}
@ -1095,7 +1043,7 @@ Windows user and group accounts on Linux.
%package winbind-clients
Summary: Samba winbind clients
Requires: %{name}-common = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-libs = %{samba_depver}
Requires: %{name}-winbind = %{samba_depver}
@ -1165,7 +1113,7 @@ necessary to communicate to the Winbind Daemon
Summary: Samba Winexe Windows Binary
License: GPL-3.0-only
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: libldb = %{samba_depver}
Requires: libwbclient = %{samba_depver}
@ -1180,7 +1128,7 @@ Winexe is a Remote Windows-command executor
%package -n ctdb
Summary: A Clustered Database based on Samba's Trivial Database (TDB)
Requires: %{name}-ndr-libs = %{samba_depver}
Requires: %{name}-common-libs = %{samba_depver}
Requires: %{name}-client-libs = %{samba_depver}
Requires: %{name}-winbind-clients = %{samba_depver}
@ -1256,18 +1204,6 @@ Support for using an existing CEPH cluster as a mutex helper for CTDB
#endif with clustering
%endif
%if %{with prometheus}
%package prometheus
Summary: SMB Prometheus exporter
Requires: samba = %{samba_depver}
%description prometheus
Support for exporting metrics via Prometheus
#endif with prometheus
%endif
### LIBLDB
%package -n libldb
Summary: A schema-less, ldap like, API and database
@ -1279,6 +1215,7 @@ Requires: libtevent%{?_isa} >= %{tevent_version}
# /endif without includelibs
%endif
Provides: bundled(libreplace) = %{samba_depver}
Obsoletes: libldb < 0:2.10
Provides: libldb = 0:2.10
Provides: libldb = %{samba_depver}
@ -1353,13 +1290,6 @@ xzcat %{SOURCE0} | gpgv2 --quiet --keyring %{SOURCE2} %{SOURCE1} -
# Make sure we do not build with heimdal code
rm -rfv third_party/heimdal
%if %{with testsuite}
# WARNING: Don't change that for production!
#
# Shorten the priviliged dir, as unix sockets only have 108 chars
sed -i 's/#define WINBINDD_PRIV_SOCKET_SUBDIR.*/#define WINBINDD_PRIV_SOCKET_SUBDIR "wb_priv"/' nsswitch/winbind_struct_protocol.h
%endif
%build
%if %{with includelibs}
%global _talloc_lib ,talloc,pytalloc,pytalloc-util
@ -1425,8 +1355,6 @@ if [ -n "${CCACHE}" ]; then
fi
%endif
# workaround https://gitlab.com/ita1024/waf/-/issues/2472
export PYTHONARCHDIR=%{python3_sitearch}
%configure \
--enable-fhs \
--with-piddir=/run \
@ -1466,12 +1394,6 @@ export PYTHONARCHDIR=%{python3_sitearch}
%endif
%if %{with etcd_mutex}
--enable-etcd-reclock \
%endif
%if %{with prometheus}
--with-prometheus-exporter \
%endif
%if %{with varlink}
--with-systemd-userdb \
%endif
--with-profiling-data \
--with-systemd \
@ -1517,7 +1439,6 @@ install -d -m 0755 %{buildroot}/var/lib/samba/sysvol
install -d -m 0755 %{buildroot}/var/lib/samba/usershares
install -d -m 0755 %{buildroot}/var/lib/samba/winbindd_privileged
install -d -m 0755 %{buildroot}/var/log/samba/old
install -d -m 0755 %{buildroot}/run/ctdb
install -d -m 0755 %{buildroot}/run/samba
install -d -m 0755 %{buildroot}/run/winbindd
install -d -m 0755 %{buildroot}/%{_libdir}/samba
@ -1651,37 +1572,20 @@ touch %{buildroot}%{_libexecdir}/ctdb/statd_callout
# in the timestamp so the year 2038 problem is deferred till 2446.
# https://bugzilla.samba.org/show_bug.cgi?id=14546
#
if [ "$(df --portability --print-type "$(pwd)" | grep -c ext4)" == "1" ]; then
cat > selftest/knownfail.d/fedora%{dist} << EOF
^samba3.smb2.timestamps.time_t_15032385535
^samba3.smb2.timestamps.time_t_10000000000
^samba3.smb2.timestamps.time_t_4294967295
EOF
fi
echo
echo "Content of selftest/knownfail.d/fedora%{dist}:"
cat selftest/knownfail.d/fedora%{dist} || true
cat >> selftest/skip << EOF
# FIXME: Investigate why it fails. Might be CUPS is not running?
^samba3.rpc.spoolss.printserver
EOF
echo
echo "Content of selftest/skip:"
cat selftest/skip
for t in samba3.smb2.timestamps.time_t_15032385535 \
samba3.smb2.timestamps.time_t_10000000000 \
samba3.smb2.timestamps.time_t_4294967295 \
; do
echo "^$t" >> selftest/knownfail.d/fedora.%{dist}
done
cat selftest/knownfail.d/fedora.%{dist}
export TDB_NO_FSYNC=1
export NMBD_DONT_LOG_STDOUT=1
export SMBD_DONT_LOG_STDOUT=1
export WINBINDD_DONT_LOG_STDOUT=1
export SAMBA_DCERPCD_DONT_LOG_STDOUT=1
%if "x%{?SAMBA_TESTS}" != "x"
%{__make} %{?_smp_mflags} test FAIL_IMMEDIATELY=1 TESTS="%{SAMBA_TESTS}"
%else
%{__make} %{?_smp_mflags} test FAIL_IMMEDIATELY=1
%endif
#endif with testsuite
%endif
@ -1727,7 +1631,7 @@ fi
%ldconfig_scriptlets client-libs
%ldconfig_scriptlets ndr-libs
%ldconfig_scriptlets common-libs
%if %{with dc}
%ldconfig_scriptlets dc-libs
@ -2021,104 +1925,33 @@ fi
#endif with includelibs
%endif
### CORE-LIBS
%files core-libs
%dir %{_libdir}/samba
#
# Tier 0: Private libraries - libc only dependencies
#
%{_libdir}/samba/libreplace-private-samba.so
%{_libdir}/samba/libsocket-blocking-private-samba.so
%{_libdir}/samba/libsys-rw-private-samba.so
%{_libdir}/samba/libtime-basic-private-samba.so
#
# Tier 1: Private libraries - system libs (libtalloc, libsystemd)
#
%{_libdir}/samba/libsamba-debug-private-samba.so
%{_libdir}/samba/libserver-role-private-samba.so
#
# Tier 1: Public libraries - system libs (libtalloc)
#
%{_libdir}/libsamba-errors.so.%{libsamba_errors_so_version}*
#
# Tier 2: Private libraries - adds gnutls
#
%{_libdir}/samba/libgenrand-private-samba.so
#
# Tier 2: Public libraries - adds gnutls, icu, tevent
#
%{_libdir}/libsamba-util.so.%{libsamba_util_so_version}*
%{_libdir}/libtevent-util.so.%{libtevent_util_so_version}*
### NDR-LIBS
%files ndr-libs
#
# Core NDR library
#
%{_libdir}/libndr.so.%{libndr_so_version}*
#
# Tier 0: libc only dependencies
#
%{_libdir}/samba/libutil-setid-private-samba.so
%{_libdir}/samba/libutil-tdb-private-samba.so
#
# Tier 1: system libs only (libtalloc)
#
%{_libdir}/samba/libiov-buf-private-samba.so
%{_libdir}/samba/libstable-sort-private-samba.so
%{_libdir}/samba/libtalloc-report-private-samba.so
%{_libdir}/samba/libtalloc-report-printf-private-samba.so
#
# Tier 2: depends on core-libs (debug, replace)
#
%{_libdir}/samba/libflag-mapping-private-samba.so
%{_libdir}/samba/libinterfaces-private-samba.so
%{_libdir}/samba/libtdb-wrap-private-samba.so
#
# Tier 3: depends on core-libs (util, errors, ndr)
#
%{_libdir}/samba/libdbwrap-private-samba.so
%{_libdir}/samba/libsamba3-util-private-samba.so
%{_libdir}/samba/libutil-reg-private-samba.so
#
# Tier 4: depends on core-libs + Tier 3 libs
#
%{_libdir}/samba/libsamba-security-private-samba.so
#
# NDR encoding libraries
#
%{_libdir}/libndr-nbt.so.%{libndr_nbt_so_version}*
%{_libdir}/libndr-standard.so.%{libndr_standard_so_version}*
%{_libdir}/libndr-krb5pac.so.%{libndr_krb5pac_so_version}*
### CLIENT-LIBS
%files client-libs
%{_libdir}/libdcerpc-binding.so.%{libdcerpc_binding_so_version}*
%{_libdir}/libdcerpc-server-core.so.%{libdcerpc_server_core_so_version}*
%{_libdir}/libdcerpc.so.%{libdcerpc_so_version}*
%{_libdir}/libndr-krb5pac.so.%{libndr_krb5pac_so_version}*
%{_libdir}/libndr-nbt.so.%{libndr_nbt_so_version}*
%{_libdir}/libndr-standard.so.%{libndr_standard_so_version}*
%{_libdir}/libndr.so.%{libndr_so_version}*
%{_libdir}/libsamba-credentials.so.%{libsamba_credentials_so_version}*
%{_libdir}/libsamba-errors.so.%{libsamba_errors_so_version}*
%{_libdir}/libsamba-hostconfig.so.%{libsamba_hostconfig_so_version}*
%{_libdir}/libsamba-passdb.so.%{libsamba_passdb_so_version}*
%{_libdir}/libsamba-util.so.%{libsamba_util_so_version}*
%{_libdir}/libsamdb.so.%{libsamdb_so_version}*
%{_libdir}/libsmbconf.so.%{libsmbconf_so_version}*
%{_libdir}/libsmbldap.so.%{libsmbldap_so_version}*
%{_libdir}/libtevent-util.so.%{libtevent_util_so_version}*
%dir %{_libdir}/samba
%{_libdir}/samba/libCHARSET3-private-samba.so
%{_libdir}/samba/libMESSAGING-SEND-private-samba.so
%{_libdir}/samba/libMESSAGING-private-samba.so
%{_libdir}/samba/libaddns-private-samba.so
%{_libdir}/samba/libads-private-samba.so
%{_libdir}/samba/libasn1util-private-samba.so
%{_libdir}/samba/libauth-private-samba.so
%{_libdir}/samba/libauthkrb5-private-samba.so
%{_libdir}/samba/libcli-cldap-private-samba.so
%{_libdir}/samba/libcli-ldap-common-private-samba.so
@ -2131,12 +1964,20 @@ fi
%{_libdir}/samba/libcluster-private-samba.so
%{_libdir}/samba/libcmdline-contexts-private-samba.so
%{_libdir}/samba/libcommon-auth-private-samba.so
%{_libdir}/samba/libctdb-event-client-private-samba.so
%{_libdir}/samba/libdbwrap-private-samba.so
%{_libdir}/samba/libdcerpc-pkt-auth-private-samba.so
%{_libdir}/samba/libdcerpc-samba-private-samba.so
%{_libdir}/samba/libevents-private-samba.so
%{_libdir}/samba/libflag-mapping-private-samba.so
%{_libdir}/samba/libgenrand-private-samba.so
%{_libdir}/samba/libgensec-private-samba.so
%{_libdir}/samba/libgpext-private-samba.so
%{_libdir}/samba/libgpo-private-samba.so
%{_libdir}/samba/libgse-private-samba.so
%{_libdir}/samba/libhttp-private-samba.so
%{_libdir}/samba/libinterfaces-private-samba.so
%{_libdir}/samba/libiov-buf-private-samba.so
%{_libdir}/samba/libkrb5samba-private-samba.so
%{_libdir}/samba/libldbsamba-private-samba.so
%{_libdir}/samba/liblibcli-lsa3-private-samba.so
@ -2149,36 +1990,41 @@ fi
%{_libdir}/samba/libmsrpc3-private-samba.so
%{_libdir}/samba/libndr-samba-private-samba.so
%{_libdir}/samba/libndr-samba4-private-samba.so
%{_libdir}/samba/libnet-keytab-private-samba.so
%{_libdir}/samba/libnetif-private-samba.so
%if 0%{?rhel}
%{_libdir}/samba/libngtcp2-crypto-gnutls-private-samba.so
%{_libdir}/samba/libngtcp2-private-samba.so
%endif
%{_libdir}/samba/libnpa-tstream-private-samba.so
%{_libdir}/samba/libquic-private-samba.so
%{_libdir}/samba/libposix-eadb-private-samba.so
%{_libdir}/samba/libprinter-driver-private-samba.so
%{_libdir}/samba/libprinting-migrate-private-samba.so
%{_libdir}/samba/libreplace-private-samba.so
%{_libdir}/samba/libregistry-private-samba.so
%{_libdir}/samba/libsamba-cluster-support-private-samba.so
%{_libdir}/samba/libsamba-debug-private-samba.so
%{_libdir}/samba/libsamba-modules-private-samba.so
%{_libdir}/samba/libsamba-security-trusts-private-samba.so
%{_libdir}/samba/libsamba-security-private-samba.so
%{_libdir}/samba/libsamba-sockets-private-samba.so
%{_libdir}/samba/libsamba3-util-private-samba.so
%{_libdir}/samba/libsamdb-common-private-samba.so
%{_libdir}/samba/libsecrets3-private-samba.so
%{_libdir}/samba/libserver-id-db-private-samba.so
%{_libdir}/samba/libserver-role-private-samba.so
%{_libdir}/samba/libsmb-transport-private-samba.so
%{_libdir}/samba/libsmbclient-raw-private-samba.so
%{_libdir}/samba/libsmbd-base-private-samba.so
%{_libdir}/samba/libsmbd-shim-private-samba.so
#
# Command line library
#
%{_libdir}/samba/libcmdline-private-samba.so
#
# Password database modules (depend on libsamba-passdb)
#
%dir %{_libdir}/samba/ldb
%dir %{_libdir}/samba/pdb
%{_libdir}/samba/pdb/smbpasswd.so
%{_libdir}/samba/pdb/tdbsam.so
%{_libdir}/samba/libsmbldaphelper-private-samba.so
%{_libdir}/samba/libstable-sort-private-samba.so
%{_libdir}/samba/libsys-rw-private-samba.so
%{_libdir}/samba/libsocket-blocking-private-samba.so
%{_libdir}/samba/libtalloc-report-printf-private-samba.so
%{_libdir}/samba/libtalloc-report-private-samba.so
%{_libdir}/samba/libtdb-wrap-private-samba.so
%{_libdir}/samba/libtime-basic-private-samba.so
%{_libdir}/samba/libtorture-private-samba.so
%{_libdir}/samba/libutil-crypt-private-samba.so
%{_libdir}/samba/libutil-reg-private-samba.so
%{_libdir}/samba/libutil-setid-private-samba.so
%{_libdir}/samba/libutil-tdb-private-samba.so
%if %{without libwbclient}
%{_libdir}/samba/libwbclient.so.*
@ -2229,6 +2075,18 @@ fi
%{_mandir}/man5/smbpasswd.5*
%{_mandir}/man7/samba.7*
### COMMON-LIBS
%files common-libs
# common libraries
%{_libdir}/samba/libcmdline-private-samba.so
%dir %{_libdir}/samba/ldb
%dir %{_libdir}/samba/pdb
%{_libdir}/samba/pdb/ldapsam.so
%{_libdir}/samba/pdb/smbpasswd.so
%{_libdir}/samba/pdb/tdbsam.so
### COMMON-TOOLS
%files common-tools
%{_bindir}/net
@ -2245,7 +2103,6 @@ fi
%{_mandir}/man8/net.8*
%{_mandir}/man8/pdbedit.8*
%{_mandir}/man8/smbpasswd.8*
%{_datadir}/locale/*/LC_MESSAGES/net.mo
### TOOLS
%files tools
@ -2323,7 +2180,6 @@ fi
%{_libdir}/samba/ldb/subtree_delete.so
%{_libdir}/samba/ldb/subtree_rename.so
%{_libdir}/samba/ldb/tombstone_reanimate.so
%{_libdir}/samba/ldb/trust_notify.so
%{_libdir}/samba/ldb/unique_object_sids.so
%{_libdir}/samba/ldb/update_keytab.so
%{_libdir}/samba/ldb/vlv.so
@ -2369,7 +2225,6 @@ fi
%{_libdir}/samba/service/dns.so
%{_libdir}/samba/service/dns_update.so
%{_libdir}/samba/service/drepl.so
%{_libdir}/samba/service/ft_scanner.so
%{_libdir}/samba/service/kcc.so
%{_libdir}/samba/service/kdc.so
%{_libdir}/samba/service/ldap.so
@ -2585,28 +2440,6 @@ fi
%{_libdir}/samba/libRPC-SERVER-LOOP-private-samba.so
%{_libdir}/samba/libRPC-WORKER-private-samba.so
#
# Server-side libraries (not used by libsmbclient)
#
%{_libdir}/samba/libauth-private-samba.so
%{_libdir}/samba/libctdb-event-client-private-samba.so
%{_libdir}/samba/libgpext-private-samba.so
%{_libdir}/samba/libgpo-private-samba.so
%{_libdir}/samba/libMESSAGING-private-samba.so
%{_libdir}/samba/libnet-keytab-private-samba.so
%{_libdir}/samba/libposix-eadb-private-samba.so
%{_libdir}/samba/libprinter-driver-private-samba.so
%{_libdir}/samba/libprinting-migrate-private-samba.so
%{_libdir}/samba/libsmbd-base-private-samba.so
%{_libdir}/samba/libsmbldaphelper-private-samba.so
%{_libdir}/samba/libtorture-private-samba.so
%{_libdir}/samba/libutil-crypt-private-samba.so
#
# Password database modules (server-side, links to libsmbldaphelper)
#
%{_libdir}/samba/pdb/ldapsam.so
### LIBNETAPI
%files -n libnetapi
%{_libdir}/libnetapi.so.%{libnetapi_so_version}*
@ -2744,7 +2577,6 @@ fi
%{python3_sitearch}/samba/dcerpc/atsvc.*.so
%{python3_sitearch}/samba/dcerpc/auth.*.so
%{python3_sitearch}/samba/dcerpc/base.*.so
%{python3_sitearch}/samba/dcerpc/bcrypt_rsakey_blob.*.so
%{python3_sitearch}/samba/dcerpc/claims.*.so
%{python3_sitearch}/samba/dcerpc/conditional_ace.*.so
%{python3_sitearch}/samba/dcerpc/dcerpc.*.so
@ -2760,7 +2592,6 @@ fi
%{python3_sitearch}/samba/dcerpc/idmap.*.so
%{python3_sitearch}/samba/dcerpc/initshutdown.*.so
%{python3_sitearch}/samba/dcerpc/irpc.*.so
%{python3_sitearch}/samba/dcerpc/keycredlink.*.so
%{python3_sitearch}/samba/dcerpc/krb5ccache.*.so
%{python3_sitearch}/samba/dcerpc/krb5pac.*.so
%{python3_sitearch}/samba/dcerpc/lsa.*.so
@ -2782,7 +2613,6 @@ fi
%{python3_sitearch}/samba/dcerpc/spoolss.*.so
%{python3_sitearch}/samba/dcerpc/srvsvc.*.so
%{python3_sitearch}/samba/dcerpc/svcctl.*.so
%{python3_sitearch}/samba/dcerpc/tpm20_rsakey_blob.*.so
%{python3_sitearch}/samba/dcerpc/unixinfo.*.so
%{python3_sitearch}/samba/dcerpc/winbind.*.so
%{python3_sitearch}/samba/dcerpc/windows_event_ids.*.so
@ -3286,7 +3116,6 @@ fi
%{python3_sitearch}/samba/tests/__pycache__/auth_log_netlogon_bad_creds.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/auth_log_samlogon.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/auth_log_winbind.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/bcrypt_rsakey_blob.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/common.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/complex_expressions.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/compression.*.pyc
@ -3328,7 +3157,6 @@ fi
%{python3_sitearch}/samba/tests/__pycache__/hostconfig.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/imports.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/join.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/key_credential_link.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/krb5_credentials.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/ldap_raw.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/ldap_referrals.*.pyc
@ -3406,7 +3234,6 @@ fi
%{python3_sitearch}/samba/tests/__pycache__/subunitrun.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/tdb_util.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/token_factory.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/tpm20_rsakey_blob.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/upgrade.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/upgradeprovision.*.pyc
%{python3_sitearch}/samba/tests/__pycache__/upgradeprovisionneeddc.*.pyc
@ -3424,7 +3251,6 @@ fi
%{python3_sitearch}/samba/tests/auth_log_pass_change.py
%{python3_sitearch}/samba/tests/auth_log_samlogon.py
%{python3_sitearch}/samba/tests/auth_log_winbind.py
%{python3_sitearch}/samba/tests/bcrypt_rsakey_blob.py
%dir %{python3_sitearch}/samba/tests/blackbox
%{python3_sitearch}/samba/tests/blackbox/__init__.py
%dir %{python3_sitearch}/samba/tests/blackbox/__pycache__
@ -3587,7 +3413,6 @@ fi
%{python3_sitearch}/samba/tests/kcc/graph_utils.py
%{python3_sitearch}/samba/tests/kcc/kcc_utils.py
%{python3_sitearch}/samba/tests/kcc/ldif_import_export.py
%{python3_sitearch}/samba/tests/key_credential_link.py
%dir %{python3_sitearch}/samba/tests/krb5
%dir %{python3_sitearch}/samba/tests/krb5/__pycache__
%{python3_sitearch}/samba/tests/krb5/__pycache__/alias_tests.*.pyc
@ -3703,12 +3528,6 @@ fi
%{python3_sitearch}/samba/tests/net_join_no_spnego.py
%{python3_sitearch}/samba/tests/net_join.py
%{python3_sitearch}/samba/tests/netlogonsvc.py
%dir %{python3_sitearch}/samba/tests/nss
%dir %{python3_sitearch}/samba/tests/nss/__pycache__
%{python3_sitearch}/samba/tests/nss/__pycache__/base.*.pyc
%{python3_sitearch}/samba/tests/nss/__pycache__/group.*.pyc
%{python3_sitearch}/samba/tests/nss/base.py
%{python3_sitearch}/samba/tests/nss/group.py
%{python3_sitearch}/samba/tests/ntacls.py
%{python3_sitearch}/samba/tests/ntacls_backup.py
%{python3_sitearch}/samba/tests/ntlmdisabled.py
@ -3869,21 +3688,10 @@ fi
%{python3_sitearch}/samba/tests/subunitrun.py
%{python3_sitearch}/samba/tests/tdb_util.py
%{python3_sitearch}/samba/tests/token_factory.py
%{python3_sitearch}/samba/tests/tpm20_rsakey_blob.py
%{python3_sitearch}/samba/tests/upgrade.py
%{python3_sitearch}/samba/tests/upgradeprovision.py
%{python3_sitearch}/samba/tests/upgradeprovisionneeddc.py
%{python3_sitearch}/samba/tests/usage.py
%dir %{python3_sitearch}/samba/tests/varlink
%dir %{python3_sitearch}/samba/tests/varlink/__pycache__
%{python3_sitearch}/samba/tests/varlink/__pycache__/base.*.pyc
%{python3_sitearch}/samba/tests/varlink/__pycache__/getgrouprecord.*.pyc
%{python3_sitearch}/samba/tests/varlink/__pycache__/getmemberships.*.pyc
%{python3_sitearch}/samba/tests/varlink/__pycache__/getuserrecord.*.pyc
%{python3_sitearch}/samba/tests/varlink/base.py
%{python3_sitearch}/samba/tests/varlink/getgrouprecord.py
%{python3_sitearch}/samba/tests/varlink/getmemberships.py
%{python3_sitearch}/samba/tests/varlink/getuserrecord.py
%{python3_sitearch}/samba/tests/xattr.py
### TEST
@ -3904,6 +3712,7 @@ fi
%if %{with dc}
%{_libdir}/samba/libdlz-bind9-for-torture-private-samba.so
%endif
%{_libdir}/samba/libdsdb-module-private-samba.so
### USERSHARES
%files usershares
@ -3951,7 +3760,6 @@ fi
%config(noreplace) %{_sysconfdir}/security/pam_winbind.conf
%{_mandir}/man5/pam_winbind.conf.5*
%{_mandir}/man8/pam_winbind.8*
%{_datadir}/locale/*/LC_MESSAGES/pam_winbind.mo
%if %{with clustering}
%files -n ctdb
@ -4101,13 +3909,6 @@ fi
%{_mandir}/man1/winexe.1.gz
%endif
%if %{with prometheus}
%files prometheus
%{_bindir}/smb_prometheus_endpoint
%{_mandir}/man8/smb_prometheus_endpoint.8.gz
#endif with prometheus
%endif
%files -n libldb
%license lib/ldb/LICENSE
%{_libdir}/libldb.so.*

View file

@ -18,6 +18,8 @@
load printers = yes
cups options = raw
smb3 unix extensions = yes
# Install samba-usershares package for support
include = /etc/samba/usershares.conf
@ -38,8 +40,7 @@
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
# printadmin is a local group
write list = printadmin root
force group = printadmin
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

View file

@ -1,2 +1,2 @@
SHA512 (samba-4.23.4.tar.xz) = 58979aa8a83e8210918f4f1adbcadff329e57a9cd25d7aba98d18f54a2e790a7ef3cc6b9fb3303d492d33d67f4a135849a419c95644d14e53a39654736d486ac
SHA512 (samba-4.23.4.tar.asc) = 0981ce6a43202953cdc7ceae77fa0e3b4ab853991430dde4df6daa163984de6c7ca3f3a3037376659d3bdaedcc108cdd7a77ce0ac24d0a1add56c7103fca7dce
SHA512 (samba-4.22.7.tar.xz) = b06ef2893d302e0bdb6b137f70e46ba35e2b7daf1ab7f97880fee430170ecad4c4faa188e6193ff39a4475143770bc37d9145935994fceb903f826442a92b6b5
SHA512 (samba-4.22.7.tar.asc) = 6fb05d0cc13ff0e82d9eda3ac94a34e7ac124fd9348e9462bf1662f37c58cd093aa91d3aed8e0ecbf76436a39f011b3b21162c03e6cb3a76fc7d79d244588fca

View file

@ -1,22 +0,0 @@
summary: Check samba package dependency structure
description: |
Verify that samba library packages maintain correct dependency hierarchy:
- samba-core-libs has no samba-*-libs dependencies
- samba-ndr-libs depends on samba-core-libs (not samba-client-libs or samba-libs)
- samba-client-libs depends on core-libs + ndr-libs (not samba-libs)
- samba-client depends on samba-client-libs (not samba-libs)
- samba-libs does not depend on samba-dc-libs
- libsmbclient depends on samba-client-libs (not samba-libs)
- libwbclient has no samba-*-libs dependencies
- libldb has no samba-*-libs dependencies
test: ./deps-check.sh
framework: shell
require:
- samba-core-libs
- samba-ndr-libs
- samba-client-libs
- samba-libs
- samba-client
- libwbclient
- libsmbclient
- libldb

View file

@ -1,167 +0,0 @@
#!/bin/bash
#
# Samba package dependency structure verification
#
# This test ensures that the samba library package dependencies don't regress.
# The expected hierarchy is:
#
# samba-core-libs (no samba-*-libs dependencies)
# ^
# |
# samba-ndr-libs (depends on samba-core-libs only)
# ^
# |
# samba-client-libs (depends on samba-core-libs + samba-ndr-libs)
#
# libwbclient (no samba-*-libs dependencies - only links to libc)
#
# samba-client (depends on samba-client-libs, NOT samba-libs)
# libsmbclient (depends on samba-client-libs, NOT samba-libs)
#
# NOTE: This test checks RESOLVED dependencies, not just explicit Requires.
# A library requirement like 'libfoo.so' is resolved to the package that
# provides it, ensuring we catch indirect dependencies.
#
set -e
ERRORS=0
# Get all packages that a package depends on (resolved)
# This resolves library deps like 'libfoo.so' to actual package names
get_resolved_deps() {
local pkg="$1"
rpm --query --requires "$pkg" 2>/dev/null | while read -r req; do
# Skip rpmlib and config requirements
[[ "$req" =~ ^rpmlib ]] && continue
[[ "$req" =~ ^config ]] && continue
[[ "$req" =~ ^/ ]] && continue
# Get the package that provides this requirement
provider=$(rpm --query --whatprovides "$req" 2>/dev/null | head -1)
if [ -n "$provider" ] && [ "$provider" != "no package provides $req" ]; then
# Extract just the package name (remove version-release.arch)
echo "${provider%%-[0-9]*}"
fi
done | sort -u
}
# Check that a package does NOT depend on packages matching a pattern
# This checks RESOLVED dependencies (what packages actually get pulled in)
check_no_resolved_dep() {
local pkg="$1"
local pattern="$2"
local description="$3"
if ! rpm --query "$pkg" &>/dev/null; then
echo "SKIP: $pkg not installed"
return 0
fi
local bad_deps
# Exclude the package itself from the check
bad_deps=$(get_resolved_deps "$pkg" | grep -v "^${pkg}$" | grep -E "$pattern" || true)
if [ -n "$bad_deps" ]; then
echo "FAIL: $pkg depends on $description"
echo " Found: $bad_deps"
ERRORS=$((ERRORS + 1))
return 1
fi
echo "PASS: $pkg does not depend on $description"
return 0
}
# Check that a package DOES depend on a specific package
check_has_resolved_dep() {
local pkg="$1"
local expected="$2"
if ! rpm --query "$pkg" &>/dev/null; then
echo "SKIP: $pkg not installed"
return 0
fi
if get_resolved_deps "$pkg" | grep -qF "$expected"; then
echo "PASS: $pkg depends on $expected"
return 0
fi
echo "FAIL: $pkg does not depend on $expected"
ERRORS=$((ERRORS + 1))
return 1
}
echo "=== Samba Package Dependency Checks ==="
echo ""
echo "Checking resolved dependencies (library deps resolved to packages)"
echo ""
# 1. samba-core-libs must NOT depend on any samba-*-libs packages
echo "--- samba-core-libs ---"
check_no_resolved_dep samba-core-libs "^samba-.*-libs$" "any samba*-libs package"
echo ""
# 2. samba-ndr-libs must depend on samba-core-libs
# but NOT samba-client-libs or samba-libs
echo "--- samba-ndr-libs ---"
check_has_resolved_dep samba-ndr-libs "samba-core-libs"
check_no_resolved_dep samba-ndr-libs "^samba-client-libs$" "samba-client-libs"
check_no_resolved_dep samba-ndr-libs "^samba-libs$" "samba-libs"
echo ""
# 3. samba-client-libs must depend on samba-core-libs and samba-ndr-libs
# but NOT samba-libs
echo "--- samba-client-libs ---"
check_has_resolved_dep samba-client-libs "samba-core-libs"
check_has_resolved_dep samba-client-libs "samba-ndr-libs"
check_no_resolved_dep samba-client-libs "^samba-libs$" "samba-libs"
echo ""
# 4. libwbclient must NOT depend on any samba-*-libs packages
echo "--- libwbclient ---"
check_no_resolved_dep libwbclient "^samba-.*-libs$" "any samba*-libs package"
echo ""
# 5. samba-client must depend on samba-client-libs but NOT samba-libs
# (client tools should not pull in server libraries)
echo "--- samba-client ---"
check_has_resolved_dep samba-client "samba-client-libs"
check_no_resolved_dep samba-client "^samba-libs$" "samba-libs"
echo ""
# 6. libsmbclient must depend on samba-client-libs but NOT samba-libs
# (SMB client library should not pull in server libraries)
echo "--- libsmbclient ---"
check_has_resolved_dep libsmbclient "samba-client-libs"
check_no_resolved_dep libsmbclient "^samba-libs$" "samba-libs"
echo ""
# 7. libldb must NOT depend on any samba-*-libs packages
# (libldb is a standalone database library)
echo "--- libldb ---"
check_no_resolved_dep libldb "^samba-.*-libs$" "any samba*-libs package"
echo ""
# 8. samba-libs must NOT depend on samba-dc-libs
# (server libraries should not pull in DC-specific libraries)
echo "--- samba-libs ---"
check_no_resolved_dep samba-libs "^samba-dc-libs$" "samba-dc-libs"
echo ""
echo "=== Summary ==="
if [ $ERRORS -gt 0 ]; then
echo "FAILED: $ERRORS dependency check(s) failed"
exit 1
fi
echo "All dependency checks passed"
exit 0