#
# Conditional build:
%bcond_without ads # ActiveDirectory support
+%bcond_without ceph # Ceph (RADOS) storage support
%bcond_without cups # CUPS support
%bcond_without ldap # LDAP support
%bcond_without avahi # Avahi support
+%bcond_without dmapi # DMAPI support
%bcond_without systemd # systemd integration
-%bcond_with system_heimdal # Use system Heimdal libraries (broken in samba 4.4.x)
-%bcond_without system_libs # system libraries (talloc,tdb,tevent,ldb,ntdb)
+%bcond_with system_heimdal # Use system Heimdal libraries [since samba 4.4.x build fails with heimdal 1.5.x/7.x]
+%bcond_without system_libs # system libraries (talloc,tdb,tevent,ldb)
%bcond_without ctdb_pcp # Performance Co-Pilot support for CTDB
# turn on when https://bugzilla.samba.org/show_bug.cgi?id=11764 is fixed
%bcond_with replace
%if %{with system_libs}
-%define ldb_ver 1.1.26
-%define ntdb_ver 1.0
-%define talloc_ver 2:2.1.6
-%define tdb_ver 2:1.3.9
-%define tevent_ver 0.9.28
+%define ldb_ver 1.2.3
+%define talloc_ver 2:2.1.9
+%define tdb_ver 2:1.3.14
+%define tevent_ver 0.9.34
+%endif
+
+# dmapi-devel with xfsprogs-devel >= 4.11(?) needs largefile (64bit off_t) that isn't detected properly
+%ifarch %{ix86}
+%undefine with_dmapi
%endif
%include /usr/lib/rpm/macros.perl
Summary: Samba Active Directory and SMB server
Summary(pl.UTF-8): Serwer Samba Active Directory i SMB
Name: samba
-Version: 4.5.1
-Release: 2
+Version: 4.7.4
+Release: 1
Epoch: 1
License: GPL v3
Group: Networking/Daemons
Source0: https://www.samba.org/ftp/samba/samba-%{version}.tar.gz
-# Source0-md5: f7a246f9deeaaf8e827d584e1924916d
+# Source0-md5: 427e7feb988603c51f01c97803305fed
Source1: smb.init
Source2: samba.pamd
Source4: samba.sysconfig
URL: https://www.samba.org/
BuildRequires: acl-devel
%{?with_avahi:BuildRequires: avahi-devel}
-BuildRequires: ceph-devel >= 0.73
+%{?with_ceph:BuildRequires: ceph-devel >= 0.73}
+BuildRequires: cmocka-devel >= 1.0.0
%{?with_cups:BuildRequires: cups-devel >= 1:1.2.0}
BuildRequires: cyrus-sasl-devel >= 2
BuildRequires: dbus-devel
-BuildRequires: dmapi-devel
-BuildRequires: docbook-style-xsl
+%{?with_dmapi:BuildRequires: dmapi-devel}
+BuildRequires: docbook-style-xsl-nons
# just FAM API
BuildRequires: gamin-devel
BuildRequires: gdbm-devel
BuildRequires: zlib-devel >= 1.2.3
%if %{with system_libs}
BuildRequires: ldb-devel >= %{ldb_ver}
-BuildRequires: ntdb-devel >= %{ntdb_ver}
+BuildRequires: ldb-devel < 1.3
BuildRequires: python-ldb-devel >= %{ldb_ver}
-BuildRequires: python-ntdb >= %{ntdb_ver}
BuildRequires: python-talloc-devel >= %{talloc_ver}
BuildRequires: python-tevent >= %{tevent_ver}
BuildRequires: talloc-devel >= %{talloc_ver}
Requires: systemd-units >= 38
Obsoletes: samba3-winbind
Obsoletes: samba4-winbind
+# pam_winbind is not complete replacement, but pam_smbpass has been removed (in samba 4.4)
+#Obsoletes: pam-pam_smbpass
%description winbind
Provides the winbind daemon and testing tools to allow authentication
Requires: gnutls >= 3.0.0
%if %{with system_libs}
Requires: ldb >= %{ldb_ver}
-Requires: ntdb >= %{ntdb_ver}
Requires: talloc >= %{talloc_ver}
Requires: tdb >= %{tdb_ver}
Requires: tevent >= %{tevent_ver}
Requires: python-modules
%if %{with system_libs}
Requires: python-ldb >= %{ldb_ver}
-Requires: python-ntdb >= %{ntdb_ver}
Requires: python-talloc >= %{talloc_ver}
Requires: python-tevent >= %{tevent_ver}
%endif
%package -n ctdb
Summary: A Clustered Database based on Samba's Trivial Database (TDB)
+Summary(pl.UTF-8): Klastrowa baza danych oparta na bazie danych Trivial Database z Samby (TDB)
Group: Daemons
+URL: http://ctdb.samba.org/
+Requires(post,preun,postun): systemd-units
+Requires(post): /bin/systemd-tmpfiles
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: coreutils
Requires: fileutils
Requires: iptables
# for flock, getopt, kill:
Requires: util-linux
-Requires(post): systemd-units
-Requires(preun): systemd-units
-Requires(postun): systemd-units
%description -n ctdb
CTDB is a cluster implementation of the TDB database used by Samba and
using TDB for temporary data it is very easy to convert that
application to be cluster aware and use CTDB instead.
+%description -l pl.UTF-8
+CTDB to klastrowa implementacja bazy danych TDB używanej w Sambie oraz
+innych projektach do przechowywania danych tymczasowych. Jeśli jakaś
+aplikacja już wykorzystuje TDB do trzymania danych tymczasowych,
+bardzo przerobić ją na klastrowalną, wykorzystującą CTDB.
+
%package -n pcp-ctdb
Summary: CTDB PMDA
Summary(pl.UTF-8): PMDA CTDB
%{__sed} -i -e 's|#!/usr/bin/env python|#!/usr/bin/python|' source4/scripting/bin/samba*
%{__sed} -i -e 's|#!/usr/bin/env perl|#!/usr/bin/perl|' pidl/pidl
+%if %{with system_heimdal}
+%{__mv} source4/heimdal_build/krb5-types{,-smb}.h
+%endif
+
%build
LDFLAGS="${LDFLAGS:-%rpmldflags}" \
CFLAGS="${CFLAGS:-%rpmcflags}" \
--disable-rpath \
--disable-rpath-install \
--builtin-libraries=%{?with_replace:replace,}ccan,samba-cluster-support \
- --bundled-libraries=NONE,iniparser,%{!?with_system_libs:talloc,tdb,ldb,ntdb,tevent,pytalloc,pytalloc-util,pytdb,pytevent,pyldb,pyldb-util},%{!?with_system_heimdal:roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,com_err,compile_et,asn1_compile} \
+ --bundled-libraries=NONE,iniparser,%{!?with_system_libs:talloc,tdb,ldb,tevent,pytalloc,pytalloc-util,pytdb,pytevent,pyldb,pyldb-util},%{!?with_system_heimdal:roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,com_err,compile_et,asn1_compile} \
--with-shared-modules=idmap_ad,idmap_adex,idmap_hash,idmap_ldap,idmap_rid,idmap_tdb2,auth_samba4,vfs_dfs_samba4 \
--with-cluster-support \
--with-acl-support \
--with%{!?with_ads:out}-ads \
%{?with_ctdb_pcp:--enable-pmda} \
--with-automount \
- --with-dmapi \
+ --with%{!?with_dmapi:out}-dmapi \
--with-dnsupdate \
--with-iconv \
--with%{!?with_ldap:out}-ldap \
# remove tests
%{__rm} $RPM_BUILD_ROOT%{_bindir}/ctdb*_tests
%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/ctdb/tests
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ctdb-tests
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ctdb/tests
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%service -q ldap restart
%post -n ctdb
-/usr/bin/systemd-tmpfiles --create %{systemdtmpfilesdir}/ctdb.conf
+/bin/systemd-tmpfiles --create %{systemdtmpfilesdir}/ctdb.conf
%systemd_post ctdb.service
%preun -n ctdb
%attr(755,root,root) %{_libdir}/samba/bind9/dlz_bind9.so
%attr(755,root,root) %{_libdir}/samba/bind9/dlz_bind9_9.so
%attr(755,root,root) %{_libdir}/samba/bind9/dlz_bind9_10.so
+%attr(755,root,root) %{_libdir}/samba/bind9/dlz_bind9_11.so
%dir %{_libdir}/samba/gensec
%attr(755,root,root) %{_libdir}/samba/gensec/krb5.so
+%if %{with system_heimdal}
+%dir %{_libdir}/samba/hdb
+%attr(755,root,root) %{_libdir}/samba/hdb/hdb_samba4.so
+%endif
%dir %{_libdir}/samba/ldb
%attr(755,root,root) %{_libdir}/samba/ldb/aclread.so
%attr(755,root,root) %{_libdir}/samba/ldb/acl.so
%attr(750,root,root) %dir /var/log/archive/samba
%attr(1777,root,root) %dir /var/spool/samba
+%if %{with ceph}
%files vfs-ceph
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/samba/vfs/ceph.so
%{_mandir}/man8/vfs_ceph.8*
+%endif
%files vfs-glusterfs
%defattr(644,root,root,755)
%files common
%defattr(644,root,root,755)
-%doc README WHATSNEW.txt Roadmap
+%doc README WHATSNEW.txt
%dir %{_sysconfdir}/samba
%attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/samba/smb.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/samba/lmhosts
%{_mandir}/man8/samba-tool.8*
%if %{without system_libs}
-%attr(755,root,root) %{_bindir}/ntdbbackup
-%attr(755,root,root) %{_bindir}/ntdbdump
-%attr(755,root,root) %{_bindir}/ntdbrestore
-%attr(755,root,root) %{_bindir}/ntdbtool
%attr(755,root,root) %{_bindir}/tdbbackup
%attr(755,root,root) %{_bindir}/tdbdump
%attr(755,root,root) %{_bindir}/tdbtool
-%attr(755,root,root) %{_libdir}/samba/libntdb.so.*
%attr(755,root,root) %{_libdir}/samba/libtalloc.so.*
%attr(755,root,root) %{_libdir}/samba/libtdb.so.*
-%{_mandir}/man8/ntdbbackup.8*
-%{_mandir}/man8/ntdbdump.8*
-%{_mandir}/man8/ntdbrestore.8*
-%{_mandir}/man8/ntdbtool.8*
%{_mandir}/man8/tdbbackup.8*
%{_mandir}/man8/tdbdump.8*
%{_mandir}/man8/tdbtool.8*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cifsdd
%attr(755,root,root) %{_bindir}/findsmb
+%attr(755,root,root) %{_bindir}/mvxattr
%attr(755,root,root) %{_bindir}/rpcclient
%attr(755,root,root) %{_bindir}/smbcacls
%attr(755,root,root) %{_bindir}/smbclient
%attr(755,root,root) %{_bindir}/smbtar
%attr(755,root,root) %{_bindir}/smbtree
%{_mandir}/man1/findsmb.1*
+%{_mandir}/man1/mvxattr.1*
%{_mandir}/man1/rpcclient.1*
%{_mandir}/man1/smbcacls.1*
%{_mandir}/man1/smbclient.1*
%attr(755,root,root) %ghost %{_libdir}/libtevent-util.so.0
%attr(755,root,root) %{_libdir}/libnetapi.so.0
%attr(755,root,root) %{_libdir}/libsmbconf.so.0
-%attr(755,root,root) %{_libdir}/libsmbldap.so.0
+%attr(755,root,root) %{_libdir}/libsmbldap.so.2
%dir %{_libdir}/samba
%if %{without replace}
%attr(755,root,root) %{_libdir}/samba/libauth4-samba4.so
%attr(755,root,root) %{_libdir}/samba/libauthkrb5-samba4.so
%attr(755,root,root) %{_libdir}/samba/libauth-samba4.so
-%attr(755,root,root) %{_libdir}/samba/libauth-sam-reply-samba4.so
%attr(755,root,root) %{_libdir}/samba/libauth-unix-token-samba4.so
%attr(755,root,root) %{_libdir}/samba/libCHARSET3-samba4.so
%attr(755,root,root) %{_libdir}/samba/libcliauth-samba4.so
%attr(755,root,root) %{_libdir}/samba/libcli-spoolss-samba4.so
%attr(755,root,root) %{_libdir}/samba/libcluster-samba4.so
%attr(755,root,root) %{_libdir}/samba/libcmdline-credentials-samba4.so
+%attr(755,root,root) %{_libdir}/samba/libcommon-auth-samba4.so
%attr(755,root,root) %{_libdir}/samba/libdb-glue-samba4.so
%attr(755,root,root) %{_libdir}/samba/libdbwrap-samba4.so
%attr(755,root,root) %{_libdir}/samba/libdcerpc-samba4.so
%attr(755,root,root) %{_libdir}/samba/libmessages-dgm-samba4.so
%attr(755,root,root) %{_libdir}/samba/libmessages-util-samba4.so
%attr(755,root,root) %{_libdir}/samba/libMESSAGING-samba4.so
+%attr(755,root,root) %{_libdir}/samba/libMESSAGING-SEND-samba4.so
%attr(755,root,root) %{_libdir}/samba/libmsghdr-samba4.so
%attr(755,root,root) %{_libdir}/samba/libmsrpc3-samba4.so
%attr(755,root,root) %{_libdir}/samba/libndr-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsmbd-shim-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsmbldaphelper-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsmbpasswdparser-samba4.so
-%attr(755,root,root) %{_libdir}/samba/libsmbregistry-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsmb-transport-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsocket-blocking-samba4.so
%attr(755,root,root) %{_libdir}/samba/libsys-rw-samba4.so
%{_includedir}/samba-4.0/core/error.h
%{_includedir}/samba-4.0/core/hresult.h
%{_includedir}/samba-4.0/core/ntstatus.h
+%{_includedir}/samba-4.0/core/ntstatus_gen.h
%{_includedir}/samba-4.0/core/werror.h
+%{_includedir}/samba-4.0/core/werror_gen.h
%{_includedir}/samba-4.0/credentials.h
%{_includedir}/samba-4.0/dcerpc.h
%{_includedir}/samba-4.0/dcerpc_server.h
%{_includedir}/samba-4.0/util/tevent_ntstatus.h
%{_includedir}/samba-4.0/util/tevent_unix.h
%{_includedir}/samba-4.0/util/tevent_werror.h
+%{_includedir}/samba-4.0/util/tfork.h
%{_includedir}/samba-4.0/util/time.h
-%{_includedir}/samba-4.0/util/xfile.h
%{_includedir}/samba-4.0/util_ldb.h
%{_includedir}/samba-4.0/lookup_sid.h
%{_includedir}/samba-4.0/machine_sid.h
%{_pkgconfigdir}/samba-policy.pc
%{_pkgconfigdir}/samba-util.pc
%{_pkgconfigdir}/samdb.pc
-%if %{without system_libs}
-%{_mandir}/man3/ntdb.3*
-%endif
%files pidl
%defattr(644,root,root,755)
%{py_sitedir}/samba/web_server/*.py[co]
%if %{without system_libs}
%attr(755,root,root) %{py_sitedir}/ldb.so
-%attr(755,root,root) %{py_sitedir}/ntdb.so
%attr(755,root,root) %{py_sitedir}/talloc.so
%attr(755,root,root) %{py_sitedir}/tdb.so
%attr(755,root,root) %{py_sitedir}/_tevent.so
%{_sysconfdir}/ctdb/gcore_trace.sh
%{_sysconfdir}/ctdb/functions
%{_sysconfdir}/ctdb/debug_locks.sh
-%dir %{_localstatedir}/lib/ctdb/
+%dir %{_localstatedir}/lib/ctdb
%{systemdunitdir}/ctdb.service
%{_libdir}/ctdb/ctdb_natgw
%{_libdir}/ctdb/ctdb_recovery_helper
%{_libdir}/ctdb/smnotify
-%attr(755,root,root) %{_libdir}/ctdb/ctdb_event_helper
+%attr(755,root,root) %{_libdir}/ctdb/ctdb_event
+%attr(755,root,root) %{_libdir}/ctdb/ctdb_eventd
%attr(755,root,root) %{_libdir}/ctdb/ctdb_killtcp
%attr(755,root,root) %{_libdir}/ctdb/ctdb_lock_helper
%attr(755,root,root) %{_libdir}/ctdb/ctdb_lvs
%attr(755,root,root) %{_libdir}/ctdb/ctdb_mutex_fcntl_helper
+%attr(755,root,root) %{_libdir}/ctdb/ctdb_takeover_helper
%{_mandir}/man1/ctdb.1*
%{_mandir}/man1/ctdb_diagnostics.1*