-#
+#
# TODO:
# - review python-samba
-# - drop tdb.spec and build tdb,tdb-devel,tdb-static package from samba
# - look into other distro specs for valid %descriptions for samba 3
# - unpackaged man pages for modules that are not built by default,
# maybe we should build them?
# /usr/share/man/man8/vfs_gpfs.8*
# /usr/share/man/man8/vfs_notify_fam.8*
# /usr/share/man/man8/vfs_prealloc.8*
-# - libmsrpc.so is broken (references smbc_attr_server() which is no longer exported from libsmbclient)
# - package libs:
# libnetapi
# libsmbsharemodes
# - MERGE vfs modules into main package, what was the point of splitting these?
+# - remove vscan - project is dead - samba 3.5 will have vfs_scannedonly
+#
#
# Conditional build:
%bcond_without kerberos5 # without Kerberos V support
%bcond_without ldap # without LDAP support
%bcond_without avahi
+%bcond_with merged_build # without samba3+samba4 merge
+%bcond_without system_libtalloc
+ # http://wiki.samba.org/index.php/Franky
%bcond_with mks # with vfs-mks (mksd dependency not distributale)
%bcond_with vscan
# ADS requires kerberos5 and LDAP
-%if !%{with kerberos5} || !%{with ldap}
+%if %{without kerberos5} || %{without ldap}
%undefine with_ads
%endif
+
+%define libtalloc_ver 2:2.0.1
+
%define vscan_version 0.3.6c-beta5
Summary: SMB server
Summary(cs.UTF-8): Server SMB
Summary(uk.UTF-8): SMB клієнт та сервер
Summary(zh_CN.UTF-8): Samba 客户端和服务器
Name: samba
-Version: 3.4.3
+Version: 3.5.6
Release: 1
Epoch: 1
License: GPL v3
Group: Networking/Daemons
Source0: http://www.samba.org/samba/ftp/stable/%{name}-%{version}.tar.gz
-# Source0-md5: 322379680c12057f57685652a35a6b05
+# Source0-md5: bf6c09ea497a166df8bd672db1d8da8f
Source1: smb.init
Source2: %{name}.pamd
Source3: swat.inetd
Patch2: %{name}-pthread.patch
Patch3: %{name}-nscd.patch
Patch4: %{name}-lprng-no-dot-printers.patch
-Patch5: %{name}-python.patch
-Patch6: %{name}-client-upcall-buildfix.patch
+Patch5: %{name}-passdb-smbpasswd.patch
URL: http://www.samba.org/
BuildRequires: acl-devel
BuildRequires: autoconf
BuildRequires: automake
%{?with_avahi:BuildRequires: avahi-devel}
+BuildRequires: ctdb-devel
%{?with_cups:BuildRequires: cups-devel >= 1:1.2.0}
BuildRequires: dmapi-devel
BuildRequires: fam-devel
-BuildRequires: iconv
+BuildRequires: gdbm-devel
+BuildRequires: gettext-devel
%{?with_kerberos5:BuildRequires: heimdal-devel}
+BuildRequires: iconv
BuildRequires: keyutils-devel
BuildRequires: libmagic-devel
BuildRequires: libnscd-devel
+%{?with_system_libtalloc:BuildRequires: libtalloc-devel >= %{libtalloc_ver}}
BuildRequires: libtool >= 2:1.4d
BuildRequires: make >= 3.81
BuildRequires: ncurses-devel >= 5.2
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: pam-devel >= 0.99.8.1
+BuildRequires: pkgconfig
BuildRequires: popt-devel
%{?with_pgsql:BuildRequires: postgresql-devel}
BuildRequires: python-devel
Requires: setup >= 2.4.6-7
# smbd links with libcups
%{?with_cups:Requires: cups-lib >= 1:1.2.0}
+Obsoletes: python-samba
Obsoletes: samba-pdb-xml
Obsoletes: samba-vfs-block
-Obsoletes: python-samba
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _vfsdir %{_libdir}/%{name}/vfs
Summary(uk.UTF-8): Клієнтські програми Samba (SMB)
Group: Applications/Networking
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: libsmbclient = %{epoch}:%{version}-%{release}
%{?with_kerberos5:Requires: heimdal-libs}
+Requires: libsmbclient = %{epoch}:%{version}-%{release}
Obsoletes: mount-cifs
Obsoletes: smbfs
SMB filesystem in Linux. These allow accessing of SMB shares and
printing to SMB printers.
-%description client -l pt_BR.UTF-8
-O pacote samba-clientes prove alguns clientes SMB, que complementam o
-sistema de arquivos SMB do Linux. Eles permitem o acesso a shares SMB,
-e também, à impressoras SMB.
-
%description client -l es.UTF-8
Cliente SMB de Samba.
Summary(ru.UTF-8): Файлы, используемые как сервером, так и клиентом Samba
Summary(uk.UTF-8): Файли, що використовуються як сервером, так і клієнтом Samba
Group: Networking/Daemons
-Requires: tdb >= 1.1.3
-Requires: libtalloc >= %{version}-%{release}
+%if %{without system_libtalloc}
+Requires: libtalloc >= %{epoch}:%{version}-%{release}
+%else
+Requires: libtalloc >= %{libtalloc_ver}
+%endif
+Requires: tdb >= %{epoch}:%{version}-%{release}
%description common
Samba-common provides files necessary for both the server and client
Requires: libtalloc = %{epoch}:%{version}-%{release}
%description -n libtalloc-devel
-The libtalloc-devel package contains the header files and libraries needed to
-develop programs that link against the talloc library in the Samba suite.
+The libtalloc-devel package contains the header files and libraries
+needed to develop programs that link against the talloc library in the
+Samba suite.
+
+%package -n tdb
+Summary: TDB - Trivial Database
+Summary(pl.UTF-8): TDB - prosta baza danych
+Group: Libraries
+Obsoletes: tdb-extras
+
+%description -n tdb
+TDB is a Trivial Database. In concept, it is very much like GDBM, and
+BSD's DB except that it allows multiple simultaneous writers and uses
+locking internally to keep writers from trampling on each other. TDB
+is also extremely small.
+
+%description -n tdb -l pl.UTF-8
+TDB to Trivial Database, czyli prosta baza danych. W założeniach jest
+bardzo podobna do GDBM lub DB z BSD z wyjątkiem tego, że pozwala na
+zapis wielu procesom jednocześnie i używa wewnętrznie blokowania, aby
+nie pozwolić piszącym na zadeptanie się nawzajem. TDB jest ponadto
+ekstremalnie mała.
+
+%package -n tdb-devel
+Summary: Header files for TDB library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki TDB
+Group: Development/Libraries
+Requires: tdb = %{epoch}:%{version}-%{release}
+
+%description -n tdb-devel
+Header files for TDB library.
+
+%description -n tdb-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki TDB.
%package devel
Summary: Header files for Samba
lub wylogowywaniu klienta.
%package vfs-notify_fam
-Summary: VFS module to implement file change notifications
+Summary: VFS module to implement file change notifications
Summary(pl.UTF-8): Moduł VFS implementujący informowanie o zmianach w plikach
Group: Networking/Daemons
Requires: %{name} = %{epoch}:%{version}-%{release}
dostępu do plików korzystając z oprogramowania antywirusowego Trend
(które musi być zainstalowane, aby wykorzystać ten moduł).
+%package vfs-catia
+Summary: VFS module to fix Catia CAD filenames
+Group: Networking/Daemons
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description vfs-catia
+The Catia CAD package commonly creates filenames that use characters
+that are illegal in CIFS filenames. The vfs_catia VFS module
+implements a fixed character mapping so that these files can be shared
+with CIFS clients.
+
+%package vfs-scannedonly
+Summary: Anti-virus solution as VFS module
+Group: Networking/Daemons
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description vfs-scannedonly
+The vfs_scannedonly VFS module ensures that only files that have been
+scanned for viruses are visible and accessible to the end user. If
+non-scanned files are found an anti-virus scanning daemon is notified.
+
%package -n openldap-schema-samba
Summary: Samba LDAP schema
Summary(pl.UTF-8): Schemat LDAP dla samby
Documentacja samby w formacie PDF.
%package -n python-samba
-Summary: Samba Module for Python
-Group: Development/Languages/Python
-%pyrequires_eq python
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Summary: Samba Module for Python
+Group: Development/Languages/Python
+%pyrequires_eq python
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
%description -n python-samba
Samba Module for Python.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%if "%{pld_release}" == "ti"
%patch5 -p1
-%patch6 -p1
+%endif
%{__sed} -i 's#%SAMBAVERSION%#%{version}#' docs/htmldocs/index.html
--with-acl-support \
--with-aio-support \
--with-automount \
+ --with-cifsmount \
+ --with-cifsumount \
+ --with-cifsupcall \
--with-libsmbclient \
--with-lockdir=/var/lib/samba \
--with-pam \
--with-syslog \
--with-utmp \
--with-fhs \
+%if %{with system_libtalloc}
+ --with-libtalloc=no \
+ --enable-external-libtalloc=yes \
+%endif
--without-included-popt \
- --enable-merged-build \
+ --%{?with_merged_build:en}%{!?with_merged_build:dis}able-merged-build \
--enable-automatic-dependencies \
--enable-dso \
- --enable-avahi \
+ --%{?with_avahi:en}%{!?with_avahi:dis}able-avahi \
--disable-dnssd \
--with%{!?with_ldap:out}-ldap \
--with%{!?with_kerberos5:out}-krb5
-%{__make} -j1 everything pam_smbpass bin/smbget bin/mount.cifs bin/vfstest
+%{__make} -j1 everything pam_smbpass bin/smbget bin/mount.cifs bin/vfstest \
+ LD=ld
cd ../examples
%{__make} -C libsmbclient/smbwrapper \
> $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
> $RPM_BUILD_ROOT/etc/security/blacklist.samba
-# we have this utility in tdb package
-rm -f $RPM_BUILD_ROOT{%{_bindir}/tdb{backup,dump}*,%{_mandir}/man8/tdb{backup,dump}.8*}
-
# unneeded
-rm -r $RPM_BUILD_ROOT%{_datadir}/swat/using_samba
+#rm -r $RPM_BUILD_ROOT%{_datadir}/swat/using_samba
# tests
+%if %{with merged_build}
rm -r $RPM_BUILD_ROOT%{_bindir}/{gentest4,locktest4,masktest4,nsstest4}
-
-mv $RPM_BUILD_ROOT%{_bindir}/tdbtool $RPM_BUILD_ROOT%{_bindir}/tdbtool_samba
-mv $RPM_BUILD_ROOT%{_bindir}/tdbtool4 $RPM_BUILD_ROOT%{_bindir}/tdbtool4_samba
+%endif
%if %{with ldap}
install examples/LDAP/samba.schema $RPM_BUILD_ROOT%{schemadir}
/sbin/chkconfig --add smb
fi
+%if "%{pld_release}" != "ti"
%triggerpostun -- samba < 3.4.0
%banner %{name} << EOF
!!! WARNING !!! The default passdb backend has been changed to 'tdbsam'!
Please use 'passdb backend = smbpasswd' if you would like to stick to the 'smbpasswd'
backend or convert your smbpasswd entries using e.g. 'pdbedit -i smbpasswd -e tdbsam'.
EOF
+%endif
%files
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/nmbd
%attr(755,root,root) %{_sbindir}/smbd
%attr(755,root,root) %{_sbindir}/mksmbpasswd.sh
-%attr(755,root,root) %{_bindir}/ad2oLschema4
+%if %{with merged_build}
+#%attr(755,root,root) %{_bindir}/ad2oLschema4
%attr(755,root,root) %{_bindir}/oLschema2ldif4
-%attr(755,root,root) %{_bindir}/ldb*
%attr(755,root,root) %{_bindir}/reg*
# "This utility disabled until rewritten"
#%attr(755,root,root) %{_bindir}/setnttoken4
+%endif
+%attr(755,root,root) %{_bindir}/ldb*
%attr(755,root,root) %{_bindir}/smbstatus
%attr(755,root,root) %{_bindir}/smbpasswd
%attr(755,root,root) %{_bindir}/smbcontrol
-%attr(755,root,root) %{_bindir}/tdbtool_samba
%dir %{_libdir}/%{name}/pdb
%dir %{_vfsdir}
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/winbindd
%attr(755,root,root) %{_bindir}/wbinfo
-%attr(755,root,root) %{_bindir}/wbinfo4
+#%if %{with merged_build}
+#%attr(755,root,root) %{_bindir}/wbinfo4
+#%endif
%attr(755,root,root) /%{_lib}/security/pam_winbind*
%attr(755,root,root) /%{_lib}/libnss_winbind*
%attr(754,root,root) /etc/rc.d/init.d/winbind
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/winbind
%{_mandir}/man1/wbinfo*.1*
+%{_mandir}/man5/pam_winbind.conf.5*
%{_mandir}/man8/pam_winbind.8*
%{_mandir}/man8/winbindd*.8*
%files client
%defattr(644,root,root,755)
+%if %{with merged_build}
+%attr(755,root,root) %{_bindir}/cifsdd4
+%attr(755,root,root) %{_bindir}/net4
+%attr(755,root,root) %{_bindir}/nmblookup4
+%attr(755,root,root) %{_bindir}/smbclient4
+%attr(755,root,root) %{_bindir}/mount.cifs4
+%attr(755,root,root) %{_bindir}/umount.cifs4
+%attr(755,root,root) %{_bindir}/setnttoken4
+%attr(755,root,root) %{_bindir}/smbtorture4
+%endif
%attr(755,root,root) /sbin/mount.cifs
%attr(755,root,root) /sbin/umount.cifs
-%attr(755,root,root) %{_bindir}/cifsdd4
%attr(755,root,root) %{_bindir}/findsmb
%attr(755,root,root) %{_bindir}/net
-%attr(755,root,root) %{_bindir}/net4
%attr(755,root,root) %{_bindir}/nmblookup
-%attr(755,root,root) %{_bindir}/nmblookup4
%attr(755,root,root) %{_bindir}/rpcclient
%attr(755,root,root) %{_bindir}/sharesec
%attr(755,root,root) %{_bindir}/smbcacls
%attr(755,root,root) %{_bindir}/smbclient
-%attr(755,root,root) %{_bindir}/smbclient4
%attr(755,root,root) %{_bindir}/smbsh
%attr(755,root,root) %{_bindir}/smbtar
%attr(755,root,root) %{_bindir}/smbtree
%{_mandir}/man1/smbsh.1*
%{_mandir}/man1/smbtar.1*
%{_mandir}/man1/smbtree.1*
-%{_mandir}/man8/cifs.upcall.8*
%{_mandir}/man8/net.8*
%{_mandir}/man8/*mount.cifs.8*
+%{_mandir}/man8/cifs.upcall.8*
%files common
%defattr(644,root,root,755)
+%if %{with merged_build}
+%attr(755,root,root) %{_bindir}/getntacl4
+%attr(755,root,root) %{_bindir}/ndrdump4
+%attr(755,root,root) %{_bindir}/ntlm_auth4
+%attr(755,root,root) %{_bindir}/testparm4
+%endif
%doc README Manifest WHATSNEW.txt
%doc Roadmap docs/registry/*
%doc docs/{history,THANKS}
%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
%attr(755,root,root) %{_bindir}/eventlogadm
-%attr(755,root,root) %{_bindir}/getntacl4
-%attr(755,root,root) %{_bindir}/ndrdump4
%attr(755,root,root) %{_bindir}/ntlm_auth
-%attr(755,root,root) %{_bindir}/ntlm_auth4
%attr(755,root,root) %{_bindir}/pdbedit
%attr(755,root,root) %{_bindir}/profiles
%attr(755,root,root) %{_bindir}/smbcquotas
%attr(755,root,root) %{_bindir}/testparm
-%attr(755,root,root) %{_bindir}/testparm4
%attr(755,root,root) %{_bindir}/vfstest
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/*.dat
%{_mandir}/man8/idmap_rid.8*
%{_mandir}/man8/idmap_tdb.8*
%{_mandir}/man8/idmap_tdb2.8*
-%{_mandir}/man8/tdbtool.8*
%files swat
%defattr(644,root,root,755)
%{_includedir}/libsmbclient.h
%{_includedir}/wbclient.h
+%if %{without system_libtalloc}
%files -n libtalloc
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libtalloc.so.*
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libtalloc.so
%{_includedir}/talloc.h
+%endif
+
+%files -n tdb
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/tdbbackup
+%attr(755,root,root) %{_bindir}/tdbdump
+%attr(755,root,root) %{_bindir}/tdbtool
+%if %{with merged_build}
+%attr(755,root,root) %{_bindir}/tdbbackup4
+%attr(755,root,root) %{_bindir}/tdbdump4
+%attr(755,root,root) %{_bindir}/tdbtool4
+%attr(755,root,root) %{_bindir}/tdbtorture4
+%endif
+%attr(755,root,root) %{_libdir}/libtdb.so.*
+%{_mandir}/man8/tdbbackup.8*
+%{_mandir}/man8/tdbdump.8*
+%{_mandir}/man8/tdbtool.8*
+
+%files -n tdb-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libtdb.so
+%{_includedir}/tdb.h
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_vfsdir}/vscan-trend.so
%endif
+%files vfs-catia
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_vfsdir}/catia.so
+%{_mandir}/man8/vfs_catia.8*
+
+%files vfs-scannedonly
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_vfsdir}/scannedonly.so
+%{_mandir}/man8/vfs_scannedonly.8*
+
%if %{with ldap}
%files -n openldap-schema-samba
%defattr(644,root,root,755)