#
# spec file for package samba
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

Name:           samba
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
BuildRequires:  autoconf
%endif
BuildRequires:  gcc
BuildRequires:  make
BuildRequires:  patch
BuildRequires:  cups-devel
BuildRequires:  e2fsprogs-devel
BuildRequires:  fam-devel
BuildRequires:  libacl-devel
%if 0%{?centos_version} > 599 ||0%{?fedora_version} > 11 || 0%{?mandriva_version} > 2009 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 1100
BuildRequires:  libuuid-devel
%endif
BuildRequires:  pam-devel
BuildRequires:  popt-devel
BuildRequires:  readline-devel
%if 0%{?suse_version}
BuildRequires:  cracklib-devel
BuildRequires:  openldap2-devel
%endif
%if 0%{?suse_version} > 1030
BuildRequires:  gdbm-devel
BuildRequires:  pwdutils
%endif
%if 0%{?suse_version} > 930
BuildRequires:  krb5-devel
BuildRequires:  libiniparser-devel
BuildRequires:  libnscd-devel
BuildRequires:  python-devel
%endif
%if 0%{?suse_version} > 930 && 0%{?suse_version} < 1031
BuildRequires:  dmapi-devel
BuildRequires:  libxml2-devel
BuildRequires:  mysql-devel
BuildRequires:  postgresql-devel
BuildRequires:  xfsprogs-devel
%endif
%if 0%{?fedora_version}
BuildRequires:  cracklib-devel
%endif
%if 0%{?centos_version} || 0%{?fedora_version} || 0%{?rhel_version} || 0%{?mandriva_version}
BuildRequires:  krb5-devel
BuildRequires:  openldap-devel
BuildRequires:  python-devel
%endif
%if 0%{?suse_version} > 1000
BuildRequires:  keyutils-devel
%endif
%if 0%{?fedora_version} || 0%{?rhel_version} > 500
BuildRequires:  keyutils-libs-devel
%endif
%if 0%{?suse_version} > 1000 || 0%{?fedora_version} || 0%{?rhel_version} || 0%{?mandriva_version}
BuildRequires:  ctdb-devel > 1.0.105
%endif
%if 0%{?suse_version} > 1110
BuildRequires:  fdupes
%endif
%if 0%{?suse_version} > 1020
%define pkgconfig_req pkg-config
%else
%define pkgconfig_req pkgconfig
%endif
BuildRequires:  %{pkgconfig_req}
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1210
BuildRequires:  libldb-devel
#!BuildIgnore: libtalloc
BuildRequires:  libtalloc-devel
#!BuildIgnore: libtdb
BuildRequires:  libtdb-devel
BuildRequires:  libtevent-devel
%endif
%define	samba_ver 3.6.15
%define	samba_ver_suffix %nil
%define	samba_ver_full %{samba_ver}%{samba_ver_suffix}
%if 0%{?suse_version} && 0%{?suse_version} < 1111
%define	guards_symbols pre_1111
%endif
%if 0%{?suse_version} && 0%{?suse_version} < 1031
%define libsmbclient_name libsmbclient
%define libsmbsharemodes_name libsmbsharemodes
%else
%define libsmbclient_name libsmbclient0
%define libsmbsharemodes_name libsmbsharemodes0
%endif
%define libldb_name libldb1
%define libnetapi_name libnetapi0
%define libwbclient_name libwbclient0
%define libtalloc_name libtalloc2
%define libtdb_name libtdb1
%define libtevent_name libtevent0
%if 0%{?suse_version} > 1130 && 0%{?suse_version} < 1211
%define	libldb_ver 1.0.2
%define	libtalloc_ver 2.0.5
%define	libtdb_ver 1.2.9
%define	libtevent_ver 0.9.11
%else
%if 0%{?suse_version} > 0 && 0%{?suse_version} < 1131
%define	libldb_ver %{version}
%define	libtalloc_ver %{version}
%define	libtdb_ver %{version}
%define	libtevent_ver %{version}
%endif
%endif
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
%define	build_make_smp_mflags %{?_smp_mflags}
%else
%define	build_make_smp_mflags %{?jobs:-j%jobs}
%endif
%define SOURCE_TIMESTAMP 3017
%define BRANCH %{version}
Version:        3.6.15
Release:        0
%define	ldapsmb_ver 1.34b
License:        GPL-3.0+
Url:            http://www.samba.org/
Group:          Productivity/Networking/Samba
Provides:       samba-gplv3 = %{version}
Obsoletes:      samba-gplv3 < %{version}
%ifarch ppc64
Obsoletes:      samba-64bit
%endif
Requires:       samba-client >= %{version}
%if 0%{?suse_version} > 1030
Recommends:     cron
Recommends:     logrotate
%endif
Summary:        A SMB/CIFS File, Print, and Authentication Server
Source:         http://samba.org/samba/ftp/samba-%{version}%{samba_ver_suffix}.tar.bz2
Source1:        vendor-files.tar.bz2
Source2:        patches.tar.bz2
Source4:        baselibs.conf
Source11:       http://www.samba.org/~gd/ldapsmb/ldapsmb-%{ldapsmb_ver}.tar.bz2
PreReq:         /usr/bin/getent
PreReq:         /usr/sbin/groupadd
PreReq:         coreutils
PreReq:         grep
# Choose some features / extra packages here
############################################
%define	make_devel 0
%define	use_ccache 0
%if 0%{?use_ccache} > 0
BuildRequires:  ccache
%endif
# requires: docbook-utils docbook-xsl-stylesheets docbook_4 freetype2 ghostscript-fonts-std ghostscript-library ghostscript-x11 libxslt sgml-skel te_etex te_latex te_pdf tetex xmlcharent
%define	make_doc 0
%define	make_utils 0
%define	make_ldapsmb 1
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1120
%define cifs_init_script cifs
%else
%define cifs_init_script smbfs
%endif
%if 0%{?suse_version} && 0%{?suse_version} < 1111
# pre-11.2 doesn't know the python_* macros
%define python_sitelib %py_sitedir
%define python_sitearch %py_sitedir
%else (%if 0%{?centos_version} && 0%{?centos_version} < 600) || (0%{rhel_version} && 0%{rhel_version} < 600)
# CentOS and RHEL pre-6 don't know them either
%define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())")
%define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
%endif
# Define some global directories
################################
%define	DOCDIR %{_defaultdocdir}/samba
%define	DOCBOOKDIR %{_defaultdocdir}/%{name}/docbook
%define	LOGDIR %{_localstatedir}/log/samba
%define	LOCKDIR %{_localstatedir}/lib/samba
%define	CONFIGDIR %{_sysconfdir}/samba
%define	INITDIR %{_sysconfdir}/init.d
%define	PIDDIR %{_localstatedir}/run/samba
%if "%{_vendor}" == "suse"
%define	NET_CFGDIR network
%else
%define	NET_CFGDIR network-scripts
%endif
%define	idmap_modules idmap_ad,idmap_adex,idmap_hash,idmap_ldap,idmap_rid,idmap_tdb2
%define	vfs_modules vfs_cacheprime,vfs_readahead
%if 0%{?ul_version} >= 1
%define	VENDOR UL
%else
%if "%{_vendor}" == "suse" || "%{_vendor}" == "redhat"
%define	VENDOR SUSE
%else
%define	VENDOR %_vendor
%endif
%endif
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1120
%define cups_lib_dir %{_prefix}/lib/cups
%else
%define cups_lib_dir %{_libdir}/cups
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Samba is a suite of programs that allows SMB/CIFS clients to use the
Unix file space, printers, and authentication subsystem.

The package named samba contains all programs that are needed to act as
a server.  The binaries expect the configuration file to be found in
/etc/samba/smb.conf

For a more detailed description of Samba, check the samba-doc package
or the Samba.org Web page at http://www.Samba.org/

Please check http://en.openSUSE.org/Samba for general information on
Samba as part of SUSE Linux Enterprise or openSUSE products, links to
binary packages of the most current Samba version, and a bug reporting
how to.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package client
License:        GPL-3.0+
Summary:        Samba Client Utilities
Group:          Productivity/Networking/Samba
Provides:       samba-gplv3-client = %{version}
Provides:       smbfs
Obsoletes:      samba-gplv3-client < %{version}
Provides:       samba-client-gplv2 = %{version}
Obsoletes:      samba-client-gplv2 < %{version}
%ifarch ppc64
Obsoletes:      samba-client-64bit
%endif
%if 0%{?suse_version} > 0
PreReq:         %{?fillup_prereq}
PreReq:         %{?insserv_prereq}
%endif
PreReq:         /sbin/chkconfig
PreReq:         /sbin/ldconfig
PreReq:         coreutils
Requires:       cifs-utils

%description client
Samba is a suite of programs that allows SMB/CIFS clients to use the
Unix file space, printers, and authentication subsystem.

The package named samba-client contains all programs that are needed to
act as a Samba client. The binaries expect the configuration file to
be found in /etc/samba/smb.conf

For a more detailed description of Samba, check the samba-doc package
or the Samba.org Web page at http://www.Samba.org/

Please check http://en.openSUSE.org/Samba for general information on
Samba as part of SUSE Linux Enterprise or openSUSE products, links to
binary packages of the most current Samba version, and a bug reporting
how to.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1020
%package devel
License:        GPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with Samba Support
Group:          Development/Libraries/C and C++
Provides:       samba-gplv3-devel = %{version}
Obsoletes:      samba-gplv3-devel < %{version}
%ifarch ppc64
Obsoletes:      samba-devel-64bit
%endif

%description devel
This package contains the static libraries and header files needed to
develop programs which make use of Samba.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%endif
%if 0%{?suse_version} && 0%{?suse_version} < 1001 || 0%{?suse_version} > 1110

%package doc
License:        GPL-3.0+
Summary:        Samba Documentation
Group:          Documentation/Other
PreReq:         coreutils
PreReq:         findutils
Provides:       samba-gplv3-doc = %{version}
Obsoletes:      samba-gplv3-doc < %{version}
Provides:       samba-doc-gplv2 = %{version}
Obsoletes:      samba-doc-gplv2 < %{version}
%if 0%{?suse_version} > 1110
BuildArch:      noarch
%endif

%description doc
This package contains all the Samba documentation as it is not part of
the man pages.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%endif

%package krb-printing
License:        GPL-3.0+
Summary:        Wrapper binary for kerberized printing
Group:          Productivity/Networking/Samba
PreReq:         coreutils
Provides:       samba-gplv3-krb-printing = %{version}
Obsoletes:      samba-gplv3-krb-printing < %{version}
%if 0%{?suse_version} > 1000
PreReq:         permissions
%endif
Requires:       samba-client >= %{version}

%description krb-printing
A wrapper binary to run smbspool with the original calling UID.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%if %{make_utils}

%package utils
Summary:        debug tools
Group:          Productivity/Networking/Samba
Provides:       samba-gplv3-utils = %{version}
Obsoletes:      samba-gplv3-utils < %{version}

%description utils
Some of the debug-tools for developpers.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%endif

%package winbind
License:        GPL-3.0+
Summary:        Winbind Daemon and Tool
Group:          Productivity/Networking/Samba
Provides:       samba-gplv3-winbind = %{version}
Obsoletes:      samba-gplv3-winbind < %{version}
Provides:       samba-client:/usr/sbin/winbindd
%ifarch ppc64
Obsoletes:      samba-winbind-64bit
%endif
Requires:       samba-client >= %{version}
%if 0%{?suse_version}
Requires:       pam-config
%endif
%if 0%{?suse_version} > 1030
Recommends:     cron
Recommends:     logrotate
Recommends:     samba-krb-printing
Recommends:     /usr/sbin/nscd
%endif
%if 0%{?suse_version} > 0
PreReq:         %{?insserv_prereq}
%endif
PreReq:         /sbin/ldconfig
PreReq:         /usr/sbin/groupadd
PreReq:         coreutils

%description winbind
This is the winbind-daemon and the wbinfo-tool.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libsmbclient_name}
License:        GPL-3.0+
%if 0%{?suse_version} > 1030
Provides:       libsmbclient = %{version}
Obsoletes:      libsmbclient
%endif
%ifarch ppc64
Obsoletes:      libsmbclient-64bit
%endif
Summary:        Samba Client Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libsmbclient_name}
This package includes the libsmbclient library.

libsmbclient is provided by the libsmbclient0 package.

This entry is required to allow a samba.spec file providing
libsmbclient for SUSE version < 11.0 while versions > 10.0 will have
libsmbclient0.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libsmbclient-devel
License:        GPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with smbclient Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       krb5-devel
Requires:       %{libsmbclient_name} = %{version}

%description -n libsmbclient-devel
This package contains the static libraries and header files needed to
develop programs which make use of the smbclient programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libnetapi_name}
License:        GPL-3.0+
Summary:        Samba netapi Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libnetapi_name}
This package includes the netapi library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libnetapi-devel
License:        GPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with netapi Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       %{libnetapi_name} = %{version}

%description -n libnetapi-devel
This package contains the static libraries and header files needed to
develop programs which make use of the netapi programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libsmbsharemodes_name}
License:        GPL-3.0+
%if 0%{?suse_version} > 1030
Provides:       libsmbsharemodes = %{version}
Obsoletes:      libsmbsharemodes
%endif
Summary:        Samba smbsharemodes Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libsmbsharemodes_name}
This package includes the smbsharemodes library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libsmbsharemodes-devel
License:        GPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with smbsharemodes Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       %{libsmbsharemodes_name} = %{version}

%description -n libsmbsharemodes-devel
This package contains the static libraries and header files needed to
develop programs which make use of the smbsharemodes programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libwbclient_name}
License:        LGPL-3.0+
Summary:        Samba libwbclient Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libwbclient_name}
This package includes the wbclient library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libwbclient-devel
License:        LGPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with wbclient Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       %{libwbclient_name} = %{version}

%description -n libwbclient-devel
This package contains the static libraries and header files needed to
develop programs which make use of the wbclient programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%if 0%{?suse_version} && 0%{?suse_version} < 1211

%package -n %{libtalloc_name}
Version:        %{libtalloc_ver}
License:        LGPL-3.0+
Summary:        Samba talloc Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libtalloc_name}
This package includes the talloc library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libtalloc-devel
Version:        %{libtalloc_ver}
License:        LGPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with talloc Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       %{libtalloc_name} = %{libtalloc_ver}

%description -n libtalloc-devel
This package contains the static libraries and header files needed to
develop programs which make use of the talloc programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libtdb_name}
Version:        %{libtdb_ver}
License:        LGPL-3.0+
Summary:        Samba tdb Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libtdb_name}
This package includes the tdb library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libtdb-devel
Version:        %{libtdb_ver}
License:        LGPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with tdb Support
Group:          Development/Libraries/C and C++
#BuildRequires:  %{pkgconfig_req}
Requires:       %{libtdb_name} = %{libtdb_ver}

%description -n libtdb-devel
This package contains the static libraries and header files needed to
develop programs which make use of the tdb programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libtevent_name}
Version:        %{libtevent_ver}
License:        LGPL-3.0+
Summary:        Samba tevent Library
Group:          System/Libraries
PreReq:         /sbin/ldconfig

%description -n %{libtevent_name}
This package includes the tevent library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libtevent-devel
Version:        %{libtevent_ver}
License:        LGPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with tevent Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       libtalloc-devel
Requires:       %{libtevent_name} = %{libtevent_ver}

%description -n libtevent-devel
This package contains the static libraries and header files needed to
develop programs which make use of the tevent programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n %{libldb_name}
Version:        %{libldb_ver}
License:        LGPL-3.0+
Summary:        Samba ldb Library
Group:          System/Libraries
BuildRequires:  popt-devel
PreReq:         /sbin/ldconfig

%description -n %{libldb_name}
This package includes the ldb library.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%package -n libldb-devel
Version:        %{libldb_ver}
License:        LGPL-3.0+
Summary:        Libraries and Header Files to Develop Programs with ldb Support
Group:          Development/Libraries/C and C++
BuildRequires:  %{pkgconfig_req}
Requires:       %{libldb_name} = %{libldb_ver}
Requires:       libtalloc-devel

%description -n libldb-devel
This package contains the static libraries and header files needed to
develop programs which make use of the tevent programming interface.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}

%endif

%if %{make_ldapsmb}

%package -n ldapsmb
Version:        1.34b
Release:        0
License:        GPL-2.0+
Summary:        Tool to administer Samba's LDAP backend
Group:          Productivity/Networking/Samba
Requires:       perl-ldap

%description -n ldapsmb
This tool aims to simplify the administration of a Samba Domain
Controller that uses the ldapsam passdb backend.

Source Timestamp: %{SOURCE_TIMESTAMP}
Branch:         %{BRANCH}


%endif

%prep
%setup -n samba-%{samba_ver_full} -q
# check if our library versions from the spec are still current
%if 0%{?suse_version} > 1130 && 0%{?suse_version} < 1211
grep "^VERSION = '%{libldb_ver}'$" source4/lib/ldb/wscript || \
	exit 1
grep "^VERSION = '%{libtalloc_ver}'$" lib/talloc/wscript || \
	exit 1
grep "^VERSION = '%{libtdb_ver}'$" lib/tdb/wscript || \
	exit 1
grep "^VERSION = '%{libtevent_ver}'$" lib/tevent/wscript || \
	exit 1
%endif
# ldapsmb
%if %{make_ldapsmb}
%setup -T -D -a 11 -n samba-%{samba_ver_full} -q
%endif
# patches
%setup -T -D -a 2 -n samba-%{samba_ver_full} -q
for patch in $( patches/tools/guards %{guards_symbols} <patches/series); do
	if ! patch -s -E -p0 --no-backup-if-mismatch -i patches/$patch; then
		echo "*** Patch $patch failed ***"
		exit 1
	fi
done
# vendor-files (config, scripts, tools)
%setup -T -D -a 1 -n samba-%{samba_ver_full} -q
for file in docs/htmldocs/index.html vendor-files/docu/README.vendor; do
	sed -e "s/VENDOR/%{VENDOR}/g" "${file}" >"${file}.new" && \
		mv "${file}.new" "${file}"
done
install -m 0644 vendor-files/tools/get_printing_ticket.c source3/client/get_printing_ticket.c
install -m 0644 -p vendor-files/docu/rfc3454.txt source4/heimdal/lib/wind/
# Create and add vendor suffix
test -f vendor-files/tools/package-data && \
	. vendor-files/tools/package-data
pushd source3
if test "%{_project}" != "openSUSE:Factory"; then
	vendor_tag_release=$( grep -m 1 ^Release: ${RPM_SOURCE_DIR}/samba.spec | \
		while read tag release; do \
			echo -n "${release:+${release}-}"; \
		done)
else
	vendor_tag_release=""
fi
vendor_tag=$( echo -n "${vendor_tag_release}"; \
	echo -n "${SAMBA_PACKAGE_SVN_VERSION:+${SAMBA_PACKAGE_SVN_VERSION}-}"; \
	test %{make_devel} -eq 1 && echo -n "devel-" || :)
# Create product suffix
test 0%{?centos_version} -gt 0 && product_version=%{?centos_version}
test 0%{?fedora_version} -gt 0 && product_version=%{?fedora_version}
test 0%{?mandriva_version} -gt 0 && product_version=%{?mandriva_version}
test 0%{?rhel_version} -gt 0 && product_version=%{?rhel_version}
test 0%{?suse_version} -gt 0 && product_version=%{?suse_version}
major_version=$((${product_version}/100))
minor_version=$((${product_version}/10))
minor_version="${minor_version#$major_version}"
product_version="${major_version}.${minor_version}"
product_suffix=""
if test "%{VENDOR}" != "UL"; then
	if test 0%{?sles_version} -gt 0; then
		product_suffix="-SLES%{sles_version}"
	elif test 0%{?suse_version} -gt 0; then
		product_suffix="-SL${product_version}"
	else
		product_suffix="-OBS"
	fi
	case "%{?suse_version}" in
		1010|1110) product_suffix="-CODE${major_version}" ;;
	esac
fi
# Add the build architecture
test "%{_build_arch}" != "" && \
	product_suffix="${product_suffix}-%{_build_arch}"
# Set SAMBA_VERSION_VENDOR_SUFFIX in the VERSION file
mv VERSION VERSION.orig
sed -e "s/^SAMBA_VERSION_VENDOR_SUFFIX=$/SAMBA_VERSION_VENDOR_SUFFIX=\"${vendor_tag}%{VENDOR}${product_suffix}\"/" VERSION.orig >VERSION

%build
%if 0%{?suse_version} && 0%{?suse_version} < 911
	OPTIMIZATION="-O"
%else
	# use the default optimization
	unset OPTIMIZATION
%endif
%if 0%{?suse_version} > 1110
	export SUSE_ASNEEDED=0
%endif
export CFLAGS="%{optflags} -D_GNU_SOURCE ${OPTIMIZATION} -D_LARGEFILE64_SOURCE -DIDMAP_RID_SUPPORT_TRUSTED_DOMAINS"
%if %{use_ccache}
export CC="ccache gcc"
%endif
pushd source3
%if 0%{?suse_version} && 0%{?suse_version} < 1141
%{?suse_update_config:%{suse_update_config -f}}
%endif
# Ensure all idl is recompiled, in case we are carrying pidl changes locally.
rm -f librpc/gen_ndr/*.[cho] ../librpc/gen_ndr/*.[cho]
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 11 && 0%{?fedora_version} < 15 || 0%{?mandriva_version} > 2009 || 0%{?rhel_version} > 599 || 0%{?suse_version} > 0
./autogen.sh
%endif
CONFIGURE_OPTIONS="\
	--prefix=%{_prefix} \
	--localstatedir=%{LOCKDIR} \
	--sysconfdir=%{CONFIGDIR} \
	--with-configdir=%{CONFIGDIR} \
	--libdir=%{_libdir} \
	--with-lockdir=%{LOCKDIR} \
	--with-logfilebase=%{LOGDIR} \
	--with-mandir=%{_mandir} \
	--with-modulesdir=%{_libdir}/samba \
	--with-rootsbindir=/sbin \
	--with-nmbdsocketdir=%{LOCKDIR} \
	--enable-cups \
	--enable-debug \
	--disable-static \
	--with-acl-support \
	--with-automount \
	--with-dnsupdate \
	--with-pam \
	--with-pammodulesdir=%{_lib}/security \
	--with-pam_smbpass \
	--with-piddir=%{PIDDIR} \
	--with-privatedir=%{CONFIGDIR} \
%if %{make_devel}
	--with-profiling-data \
%endif
	--with-quotas \
	--with-syslog \
	--with-utmp \
	--with-winbind \
	--with-shared-modules=%{vfs_modules},%{idmap_modules} \
%if %{make_devel}
	--enable-developer \
	--enable-krb5developer \
%endif
	 --disable-swat \
"
unset CONFIGURE_OPTIONS_DEVEL
%if %{make_devel}
CONFIGURE_OPTIONS_DEVEL="--enable-debug --enable-developer"
%endif
./configure ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEVEL}
./script/mkversion.sh
make samba3-idl
make %{build_make_smp_mflags} \
	all bin/smbfilter
%if %{make_ldapsmb}
pushd ../ldapsmb-%{ldapsmb_ver}
./autogen.sh
rm ldapsmb
make %{build_make_smp_mflags} all doc
popd
%endif
popd

%if 0%{?suse_version} && 0%{?suse_version} < 1211

for lib_dir in tdb talloc; do
pushd lib/${lib_dir}
./configure \
	--disable-symbol-versions \
	--prefix=%{_prefix} \
	--libdir=%{_libdir}
make
popd
done

pushd lib/tevent
TALLOC_LIBS=../../source3/bin/libtalloc.so.2 TALLOC_CFLAGS=-I../talloc/ ./configure \
	--disable-symbol-versions \
	--bundled-libraries=!talloc,ALL \
	--prefix=%{_prefix} \
	--localstatedir=%{LOCKDIR} \
	--sysconfdir=%{CONFIGDIR} \
	--libdir=%{_libdir} \
	--mandir=%{_mandir}
make
popd

pushd source4/lib/ldb
TALLOC_LIBS=../../../source3/bin/libtalloc.so.2 TALLOC_CFLAGS=-I../../../lib/talloc/ \
TEVENT_LIBS=../../../lib/tevent/bin/default/lib/tevent/libtevent.so TEVENT_CFLAGS=-I../../../lib/tevent/ \
TDB_LIBS=../../../source3/bin/libtdb.so.1 TDB_CFLAGS=-I../../../lib/tdb/include \
    ./configure \
	--disable-symbol-versions \
	--bundled-libraries=!popt \
	--prefix=%{_prefix} \
	--localstatedir=%{LOCKDIR} \
	--sysconfdir=%{CONFIGDIR} \
	--libdir=%{_libdir} \
	--mandir=%{_mandir} \
	--with-modulesdir=%{_libdir}
make
popd

%endif

%check
%if 0%{?suse_version} && 0%{?suse_version} < 1211
for lib_dir in tdb talloc tevent; do
pushd lib/${lib_dir}
make test
popd
done
%endif
pushd source3
make test_shlibs
make test_nss_modules
make test_pam_modules
popd
pushd testsuite/libsmbclient/src
make
popd

%install
%if %{make_devel}
	export NO_BRP_STRIP_DEBUG="true"
%endif
install -d -m 0755 -p \
	%{buildroot}/%{_sysconfdir}/{pam.d,xinetd.d,logrotate.d} \
	%{buildroot}/%{_sysconfdir}/openldap/schema \
	%{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/{if-{down,up}.d,scripts} \
%if 0%{?suse_version} && 0%{?suse_version} > 1020
	%{buildroot}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services \
%endif
	%{buildroot}/%{_sysconfdir}/permissions.d \
	%{buildroot}/%{_sysconfdir}/security \
	%{buildroot}/%{_sysconfdir}/slp.reg.d \
	%{buildroot}/%{CONFIGDIR} \
	%{buildroot}/%{INITDIR} \
	%{buildroot}/%{_lib}/security \
	%{buildroot}/sbin \
	%{buildroot}/%{_includedir} \
	%{buildroot}/%{_libdir}/pkgconfig \
	%{buildroot}/%{_libdir}/python/lib-dynload \
	%{buildroot}/%{_libdir}/samba/{config,vfs,rpc,auth,charset,idmap} \
	%{buildroot}/%{_datadir}/omc/svcinfo.d \
	%{buildroot}/%{_datadir}/samba/{LDAP,templates} \
	%{buildroot}/%{_localstatedir}/adm \
	%{buildroot}/%{LOCKDIR}/{netlogon,drivers/{WIN40,W32X86,W32MIPS,W32ALPHA,W32PPC,IA64,x64},printing,profiles,winbindd_privileged} \
	%{buildroot}/%{LOGDIR} \
	%{buildroot}/%{PIDDIR} \
	%{buildroot}/%{_var}/adm/fillup-templates \
	%{buildroot}/%{_var}/run \
	%{buildroot}/%{DOCDIR} \
	%{buildroot}/%{DOCBOOKDIR} \
	%{buildroot}/%{_datadir}/susehelp/meta/Administration/System

%if 0%{?suse_version} && 0%{?suse_version} < 1211

for lib_dir in tdb talloc tevent; do
pushd lib/${lib_dir}
make install \
	DESTDIR=%{buildroot}
popd
done
# libldb
make -C source4/lib/ldb/ install \
	DESTDIR=%{buildroot} \
	CONFIGDIR=%{CONFIGDIR} 
# we prefer the s3 binaries of the tdbtools
rm %{buildroot}/%{_bindir}/tdb{backup,dump,restore,tool}

%else
rm docs/manpages/tdb*.8
%endif

make -C source3/ install \
	DESTDIR=%{buildroot} \
	CONFIGDIR=%{CONFIGDIR}

%if 0%{?suse_version} && 0%{?suse_version} < 1211

# libtalloc
#rm %{buildroot}/%{_libdir}/*talloc*
make -C lib/talloc/ install \
	DESTDIR=%{buildroot} \
	CONFIGDIR=%{CONFIGDIR}
install -m 0644 source3/pkgconfig/talloc.pc %{buildroot}/%{_libdir}/pkgconfig
# libtevent
make -C lib/talloc/ install \
	DESTDIR=%{buildroot} \
	CONFIGDIR=%{CONFIGDIR}
rm -r %{buildroot}/%{python_sitearch} \
	%{buildroot}/%{_libdir}/ldb/lib{t*,p*} \
	%{buildroot}/%{_libdir}/tevent

%endif

for file in source3/pkgconfig/{netapi,smbclient,smbsharemodes,wbclient}.pc; do
	install -m 0644 "${file}" %{buildroot}/%{_libdir}/pkgconfig
done
# utility scripts
scripts="creategroup mksmbpasswd.sh"
install -d -m 0755 examples/scripts
for i in $scripts; do
	install -m 0755 "source3/script/${i}" examples/scripts/${i}
done
# configuration files
pushd vendor-files
echo "# smb.conf is the main Samba configuration file. You find a full commented" >config/smb.conf
echo "# version at %{DOCDIR}/examples/smb.conf.%{VENDOR} if the" >>config/smb.conf
echo "# samba-doc package is installed." >>config/smb.conf
grep -v "\(^#\|^;\|^$\)" config/smb.conf.vendor >>config/smb.conf
install -p -m 0644 config/smb.conf.vendor ../examples/smb.conf.%{VENDOR}
for file in smb.conf lmhosts smbusers smbpasswd smbusers; do
	install -m 0644 "config/${file}" %{buildroot}/%{CONFIGDIR}/${file}
done
%if 0%{?suse_version} && 0%{?suse_version} < 1221
	install -m 0644 -p config/cifstab %{buildroot}/%{CONFIGDIR}/%{cifs_init_script}tab
%endif
section_names=$( sed -ne 's/^\[\(.*\)\]$/\1/p' config/smb.conf)
for section in $section_names; do
%if 0%{?suse_version} > 0 && 0%{?suse_version} < 1211
	LD_LIBRARY_PATH=../source3/bin/ \
%endif
	../source3/bin/testparm -s --section-name "${section}" config/smb.conf >"%{buildroot}/%{_datadir}/samba/templates/default-${section}" || :
done
for file in config/templates/*; do
	cp -a "${file}" "%{buildroot}/%{_datadir}/samba/templates/"
done
# start scripts
scriptSuffix=""
%if 0%{?suse_version}
if test 0%{?suse_version} -lt 901; then
	scriptSuffix="-900"
elif test 0%{?suse_version} -lt 1011; then
	scriptSuffix="-1010"
elif test 0%{?suse_version} -lt 1111; then
	scriptSuffix="-1110"
elif test 0%{?suse_version} -lt 1131; then
	scriptSuffix="-1130"
fi
%endif
startScripts="smb nmb winbind"
%if 0%{?suse_version} && 0%{?suse_version} < 1221
	startScripts="${startScripts} %{cifs_init_script}"
%endif
for script in ${startScripts}; do
	install -m 0755 "init/${script}${scriptSuffix}" \
		"%{buildroot}/%{INITDIR}/${script}"
	ln -s "%{INITDIR}/${script}" "%{buildroot}/%{_sbindir}/rc${script}"
done
for script in ${startScripts}; do
	SERVICE_NAME=$( echo "${script}" | tr [:lower:] [:upper:])
	sed \
		-e "s#__SERVICE_NAME#${SERVICE_NAME}#g" \
		-e "s#__SERVICE_SCRIPT_NAME#${script}#g" \
			init/template.xml \
			>"%{buildroot}/%{_datadir}/omc/svcinfo.d/${script}.xml"
done
install -m 0755 tools/nmbstatus %{buildroot}/%{_bindir}/nmbstatus
pod2man tools/nmbstatus >%{buildroot}/%{_mandir}/man1/nmbstatus.1
install -m 0755 tools/update-apparmor-samba-profile \
	%{buildroot}/%{_datadir}/samba/
# PDF generator
install -p -m 0755 tools/smbprngenpdf %{buildroot}/%{_bindir}/smbprngenpdf
install -m 0644 config/samba.reg %{buildroot}/%{_sysconfdir}/slp.reg.d/samba.reg
install -m 0644 config/samba.pamd-common %{buildroot}/%{_sysconfdir}/pam.d/samba
install -m 0644 config/dhcp.conf %{buildroot}/%{_var}/adm/fillup-templates/samba-client-dhcp.conf
install -m 0644 config/sysconfig.dhcp-samba-client %{buildroot}/%{_var}/adm/fillup-templates/sysconfig.dhcp-samba-client
for script in dhcpcd-hook-samba dhcpcd-hook-samba-functions samba-winbindd; do
	install -m 0755 "tools/${script}" "%{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/${script}"
done
%if 0%{?suse_version} && 0%{?suse_version} < 1221
	touch %{buildroot}/var/run/%{cifs_init_script}
%if 0%{?suse_version} < 1121
	sed -e 's/cifs/smbfs/g' tools/cifs >%{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script}
	touch --reference=tools/cifs %{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script}
%else
	install -m 0755 -p tools/cifs %{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script}
%endif
%endif
# Create ghosts for the symlinks
for script in 21-dhcpcd-hook-samba 55-samba-winbindd; do
	touch %{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-{down,up}.d/${script}
done
%if 0%{?suse_version} && 0%{?suse_version} < 1221
	touch %{buildroot}/%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-{down,up}.d/21-%{cifs_init_script}
%endif
# Install SuSEfirewall2 config files
%if 0%{?suse_version} && 0%{?suse_version} > 1020
install -m 0644 config/sysconfig.firewall.netbios-server \
	%{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/netbios-server
install -m 0644 config/sysconfig.firewall.samba-server \
	%{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/samba-server
%endif
%if 0%{?suse_version} && 0%{?suse_version} > 1100
install -m 0644 config/sysconfig.firewall.samba-client \
	%{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/samba-client
%endif
# Add logrotate settings for nmbd and smbd only on systems newer than 8.1.
%if 0%{?suse_version} && 0%{?suse_version} < 811
	LOGROTATE_FILES="samba-winbind"
	rm -f "${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba"
	touch "${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba"
%else
	LOGROTATE_FILES="samba samba-winbind"
%endif
for file in ${LOGROTATE_FILES}; do
	install -m 0644 logrotate/${file} %{buildroot}/%{_sysconfdir}/logrotate.d/${file}
	rm -f "${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-${file}"
	touch "${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-${file}"
	echo "%config(noreplace) %{_sysconfdir}/logrotate.d/${file}" >>${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-${file}
done
install -m 0644 docu/README.vendor %{buildroot}/%{DOCDIR}/README.%{VENDOR}
# SuSEhelp files
install -m 0644 docu/Samba.desktop %{buildroot}/%{_datadir}/susehelp/meta/Administration/System/Samba.desktop
install -m 0644 docu/manpages.html ../docs/htmldocs/manpages.html
popd
# libnss_wins.so
install -m 0755 nsswitch/libnss_wins.so %{buildroot}/%{_lib}/libnss_wins.so.2
# winbind stuff
install -m 0644 examples/pam_winbind/pam_winbind.conf %{buildroot}/%{_sysconfdir}/security/pam_winbind.conf
install -m 0755 nsswitch/libnss_winbind.so %{buildroot}/%{_lib}/libnss_winbind.so.2
# smbfilter
install -m 0755 source3/bin/smbfilter %{buildroot}/%{_bindir}/smbfilter
# smbget
install -m 0755 source3/bin/smbget %{buildroot}/%{_bindir}/smbget
# install nsswitch-headers (for squid, etc. #FIXME)
install -d -m 0755 \
	%{buildroot}/%{_includedir}/samba/nsswitch \
	%{buildroot}/%{_includedir}/samba/winbindd
for file in winbind_client.h winbind_nss_config.h winbind_nss_linux.h; do
	install -m 0644 "nsswitch/${file}" %{buildroot}/%{_includedir}/samba/nsswitch/${file}
done
for file in winbindd.h winbindd_proto.h; do
	install -m 0644 "source3/winbindd/${file}" %{buildroot}/%{_includedir}/samba/winbindd/${file}
done
# install smbtorture and other test-programs
%if %{make_utils}
install -m 0755 source3/bin/debug2html %{buildroot}/%{_bindir}/debug2html
install -m 0755 source3/bin/log2pcap %{buildroot}/%{_bindir}/log2pcap
install -m 0755 source3/bin/smbtorture %{buildroot}/%{_bindir}/smbtorture
install -m 0755 source3/bin/talloctort %{buildroot}/%{_bindir}/talloctort
install -m 0755 source3/bin/msgtest %{buildroot}/%{_bindir}/msgtest
install -m 0755 source3/bin/maketest %{buildroot}/%{_bindir}/maketest
install -m 0755 source3/bin/locktest %{buildroot}/%{_bindir}/locktest
install -m 0755 source3/bin/nsstest %{buildroot}/%{_bindir}/nsstest
install -m 0755 source3/bin/vfstest %{buildroot}/%{_bindir}/vfstest
%endif
%if %{make_ldapsmb}
install -m 0700 ldapsmb-%{ldapsmb_ver}/ldapsmb %{buildroot}/%{_sbindir}/
cp -a ldapsmb-%{ldapsmb_ver}/ldapsmb.5 %{buildroot}/%{_mandir}/man5
%endif
# cups SMB support
mkdir	-p %{buildroot}/%{cups_lib_dir}/backend/
touch %{buildroot}/%{cups_lib_dir}/backend/smb
# pam_smbpass is missing
cp -a source3/pam_smbpass/samples examples/pam_smbpass
install -m 0644 source3/pam_smbpass/CHANGELOG examples/pam_smbpass/CHANGELOG
install -m 0644 source3/pam_smbpass/INSTALL examples/pam_smbpass/INSTALL
install -m 0644 source3/pam_smbpass/README examples/pam_smbpass/README
install -m 0644 source3/pam_smbpass/TODO examples/pam_smbpass/TODO
mv COPYING Manifest README Roadmap WHATSNEW.txt %{buildroot}/%{DOCDIR}/
# this is empty
rm -rf docs/yodldocs
rm -rf docs/manpages
cp -a docs/* %{buildroot}/%{DOCDIR}
rm -rf "%{buildroot}/%{DOCBOOKDIR}"
rm -f examples/VFS/*~
cp -a examples/ %{buildroot}/%{DOCDIR}
# finally build filelist-samba-doc
for file in $( find %{buildroot}%{DOCDIR} -maxdepth 1); do
	# exclude %{DOCDIR}, README, and docbook
	case "${file#%{buildroot}}" in
		%{DOCDIR}|%{DOCDIR}/README.%{VENDOR}|%{DOCDIR}/docbook) continue ;;
	esac
	echo "%doc ${file#%{buildroot}}" >>"${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba-doc"
done
%if ! %{make_utils}
# delete manpages if not packaged in utils-package
rm -f \
	%{buildroot}/%{_mandir}/man1/log2pcap.1* \
	%{buildroot}/%{_mandir}/man1/vfstest.1*
%endif
# find pam_winbind language files
%find_lang pam_winbind
cat pam_winbind.lang >> ${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba-winbind
%find_lang net
for file in $( find %{buildroot}%{_libdir}/samba/vfs/ -mindepth 1 ); do
	echo "${file#%{buildroot}}" >>${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba
done
# copy the schema
install -m 0644 examples/LDAP/samba.schema %{buildroot}/%{_sysconfdir}/openldap/schema/samba3.schema
install -m 0644 examples/LDAP/samba-nds.schema %{buildroot}/%{_datadir}/samba/LDAP/samba-nds.schema
# Clean up installed doc if we have a noarch doc package
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1000 && 0%{?suse_version} < 1120
while read file; do
	rm -r "%{buildroot}/${file#%* }"
done <"${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-samba-doc"
for file in %{_datadir}/susehelp; do
	rm -r "%{buildroot}/${file}"
done
pushd "%{buildroot}/%{DOCDIR}"
for file in $( find . -mindepth 1 -maxdepth 1);do
	test "${file}" = "./README.%{VENDOR}" && continue
	rm -r "${file}"
done
popd
%endif
# Hardlink duplicate files
%if 0%{?suse_version} > 1110
%fdupes %{buildroot}
%endif

%pre
getent group ntadmin >/dev/null || groupadd -g 71 -o -r ntadmin || :

%preun
%{?stop_on_removal:%{stop_on_removal smb nmb}}

%postun
%{?restart_on_update:%{restart_on_update nmb smb}}
%{?insserv_cleanup:%{insserv_cleanup}}

%pre client
%if 0%{?suse_version} && 0%{?suse_version} < 1221
# non SUSE + 11.3 an newer, update, no cifstab, but smbfstab
if [ ! 0%{?suse_version} -lt 1121 -a \
	${1:-0} -gt 1 -a \
	! -e /etc/samba/cifstab -a \
	-f /etc/samba/smbfstab ]; then
	cp -a /etc/samba/smbfstab /var/adm/backup/etc_samba_smbfstab-move
	chkconfig -c smbfs && >/var/adm/backup/etc_samba_smbfs-enabled || :
fi
%endif

%preun client
%{?stop_on_removal:%{stop_on_removal %cifs_init_script}}

%post client
/sbin/ldconfig
if [ ${1:-0} -eq 1 ]; then
# Only insserv cifs if we're not in update mode.
%if 0%{?suse_version} > 0 && 0%{?suse_version} < 1131
%{?insserv_force_if_yast:%{insserv_force_if_yast %{cifs_init_script}}}
%endif
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/dhcpcd-hook-samba %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/21-dhcpcd-hook-samba
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/dhcpcd-hook-samba %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/21-dhcpcd-hook-samba
%if 0%{?suse_version} && 0%{?suse_version} < 1221
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script} %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/21-%{cifs_init_script}
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script} %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/21-%{cifs_init_script}
%endif
else
	for if_case in if-down.d if-up.d; do
		test -h %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/dhcpcd-hook-samba || \
			continue
		rm -f %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/dhcpcd-hook-samba
		ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/dhcpcd-hook-samba %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/21-dhcpcd-hook-samba
%if 0%{?suse_version} && 0%{?suse_version} < 1221
		test -h %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/%{cifs_init_script} || \
			continue
		rm -f %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/%{cifs_init_script}
		ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script} %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/21-%{cifs_init_script}
%endif
	done
fi
%if 0%{?suse_version} && 0%{?suse_version} < 1221
if [ ${1:-0} -gt 1 -a -f /var/adm/backup/etc_samba_smbfstab-move ]; then
	test -f /etc/samba/cifstab && \
		mv /etc/samba/cifstab /etc/samba/cifstab.rpmnew
	mv /var/adm/backup/etc_samba_smbfstab-move /etc/samba/cifstab
	if [ -f /var/adm/backup/etc_samba_smbfs-enabled ]; then
		chkconfig -a cifs >/dev/null
		rm /var/adm/backup/etc_samba_smbfs-enabled
	fi
fi
%endif
if ! test -e %{_bindir}/get_printing_ticket; then
	ln -fs %{_bindir}/smbspool %{cups_lib_dir}/backend/smb
fi
%{?fillup_only:%{fillup_only -nsd dhcp samba-client network}}

%postun client
/sbin/ldconfig
%{?insserv_cleanup:%{insserv_cleanup}}

%post -n %{libnetapi_name} -p /sbin/ldconfig

%postun -n %{libnetapi_name} -p /sbin/ldconfig

%post -n %{libwbclient_name} -p /sbin/ldconfig

%postun -n %{libwbclient_name} -p /sbin/ldconfig

%if 0%{?suse_version} && 0%{?suse_version} < 1211

%post -n %{libtalloc_name} -p /sbin/ldconfig

%postun -n %{libtalloc_name} -p /sbin/ldconfig

%post -n %{libtdb_name} -p /sbin/ldconfig

%postun -n %{libtdb_name} -p /sbin/ldconfig

%post -n %{libtevent_name} -p /sbin/ldconfig

%postun -n %{libtevent_name} -p /sbin/ldconfig

%post -n %{libldb_name} -p /sbin/ldconfig

%postun -n %{libldb_name} -p /sbin/ldconfig

%endif

%post krb-printing
if test ${1:-0} -eq 1 -a -d %{cups_lib_dir}/backend; then
	ln -fs %{_bindir}/get_printing_ticket %{cups_lib_dir}/backend/smb
fi
%if 0%{?suse_version} > 0
%if 0%{?suse_version} < 1131
%{run_permissions}
%else
%{set_permissions} %{_bindir}/get_printing_ticket
%endif
%endif

%postun krb-printing
if test ${1:-0} -eq 0 -a -e %{_bindir}/smbspool -a -d %{cups_lib_dir}/backend; then
	ln -fs %{_bindir}/smbspool %{cups_lib_dir}/backend/smb
fi
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1000
%verifyscript krb-printing
%verify_permissions -e %{_bindir}/get_printing_ticket
%endif

%pre winbind
# we need this group for squid (ntlmauth)
# read access to /var/lib/samba/winbindd_privileged
getent group winbind >/dev/null || groupadd -r winbind || :

%post winbind
/sbin/ldconfig
if test ${1:-0} -eq 1; then
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/samba-winbindd %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/55-samba-winbindd
	ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/samba-winbindd %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/55-samba-winbindd
else
	for if_case in if-down.d if-up.d; do
		test -h %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/samba-winbindd || \
			continue
		rm -f %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/samba-winbindd
		ln -fs %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/samba-winbindd %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/${if_case}/55-samba-winbindd
	done
fi

%preun winbind
%{?stop_on_removal:%{stop_on_removal winbind}}

%postun winbind
/sbin/ldconfig
%if 0%{?suse_version}
if [ $1 -eq 0 ]; then
%{_sbindir}/pam-config --delete --winbind
if [ -x %{_sbindir}/nscd ]; then
	%{_sbindir}/nscd -i passwd
	%{_sbindir}/nscd -i group
fi
fi
%endif
%{?restart_on_update:%{restart_on_update winbind}}
%{?insserv_cleanup:%{insserv_cleanup}}

%post -n %{libsmbclient_name} -p /sbin/ldconfig

%postun -n %{libsmbclient_name} -p /sbin/ldconfig

%post -n %{libsmbsharemodes_name} -p /sbin/ldconfig

%postun -n %{libsmbsharemodes_name} -p /sbin/ldconfig

%clean
[ x"%{buildroot}" = x"/" ] && ( echo "your buildroot is /" && exit 0) || rm -rf "%{buildroot}"
if [ -e ${RPM_SOURCE_DIR}/baselibs.conf -a 0%{?suse_version} -gt 0 -a 0%{?suse_version} -lt 1110 ]; then
sed -i -e 's, supplements .*,,' ${RPM_SOURCE_DIR}/baselibs.conf
fi

%files -f filelist-samba
%defattr(-,root,root)
%attr(0754,root,root) %config %{INITDIR}/nmb
%attr(0754,root,root) %config %{INITDIR}/smb
%if 0%{?suse_version} && 0%{?suse_version} < 1111
%attr(0600,root,root) %config(noreplace) %{CONFIGDIR}/smbpasswd
%else
%ghost %{CONFIGDIR}/smbpasswd
%endif
%config(noreplace) %{CONFIGDIR}/smbusers
%config %{_sysconfdir}/pam.d/samba
%{_sysconfdir}/slp.reg.d
%if 0%{?suse_version} && 0%{?suse_version} > 1020
%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/netbios-server
%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/samba-server
%endif
/%{_lib}/security/pam_smbpass.so
%dir %{_libdir}/samba
%dir %{_libdir}/samba/vfs
%{_libdir}/samba/auth
%{_libdir}/samba/config
%{_libdir}/samba/rpc
%attr(0775,root,ntadmin) %{LOCKDIR}/drivers
%{LOCKDIR}/netlogon
%attr(0770,root,users) %dir %{LOCKDIR}/profiles
%{_bindir}/smbstatus
%{_sbindir}/nmbd
%{_sbindir}/rcnmb
%{_sbindir}/rcsmb
%{_sbindir}/smbd
%{_bindir}/smbta-util
%if 0%{?suse_version} && 0%{?suse_version} < 1100
%dir %{_datadir}/omc
%dir %{_datadir}/omc/svcinfo.d
%endif
%attr(0644,root,root) %{_datadir}/omc/svcinfo.d/nmb.xml
%attr(0644,root,root) %{_datadir}/omc/svcinfo.d/smb.xml
%dir %{_datadir}/samba
%{_datadir}/samba/update-apparmor-samba-profile
%doc %{_mandir}/man1/smbstatus.1.*
%doc %{_mandir}/man5/smbpasswd.5.*
%doc %{_mandir}/man8/nmbd.8.*
%doc %{_mandir}/man8/smbd.8.*
%exclude %{_mandir}/man8/swat.8.*
%doc %{_mandir}/man8/vfs_aio_fork.8.*
%doc %{_mandir}/man8/vfs_aio_pthread.8.*
%doc %{_mandir}/man8/vfs_acl_tdb.8.*
%doc %{_mandir}/man8/vfs_acl_xattr.8.*
%doc %{_mandir}/man8/vfs_audit.8.*
%doc %{_mandir}/man8/vfs_cacheprime.8.*
%doc %{_mandir}/man8/vfs_cap.8.*
%doc %{_mandir}/man8/vfs_catia.8.*
%doc %{_mandir}/man8/vfs_commit.8.*
%doc %{_mandir}/man8/vfs_crossrename.8.*
%doc %{_mandir}/man8/vfs_default_quota.8.*
%doc %{_mandir}/man8/vfs_dirsort.8.*
%doc %{_mandir}/man8/vfs_scannedonly.8.*
%doc %{_mandir}/man8/vfs_streams_depot.8.*
%doc %{_mandir}/man8/vfs_extd_audit.8.*
%doc %{_mandir}/man8/vfs_fake_perms.8.*
%doc %{_mandir}/man8/vfs_fileid.8.*
%doc %{_mandir}/man8/vfs_full_audit.8.*
%doc %{_mandir}/man8/vfs_gpfs.8.*
%doc %{_mandir}/man8/vfs_netatalk.8.*
%doc %{_mandir}/man8/vfs_notify_fam.8.*
%doc %{_mandir}/man8/vfs_prealloc.8.*
%doc %{_mandir}/man8/vfs_preopen.8.*
%doc %{_mandir}/man8/vfs_readahead.8.*
%doc %{_mandir}/man8/vfs_readonly.8.*
%doc %{_mandir}/man8/vfs_recycle.8.*
%doc %{_mandir}/man8/vfs_shadow_copy.8.*
%doc %{_mandir}/man8/vfs_shadow_copy2.8.*
%doc %{_mandir}/man8/vfs_smb_traffic_analyzer.8.*
%doc %{_mandir}/man8/vfs_streams_xattr.8.*
%doc %{_mandir}/man8/vfs_time_audit.8.*
%doc %{_mandir}/man8/vfs_xattr_tdb.8.*
%doc %{_mandir}/man8/smbta-util.8.*
%if 0%{?suse_version} && 0%{?suse_version} < 1021
%{_includedir}/samba
%endif
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1020

%files devel
%defattr(-,root,root)
%{_includedir}/samba
%endif

%files client -f net.lang
%defattr(-,root,root)
%if 0%{?suse_version} && 0%{?suse_version} < 1221
%attr(0754,root,root) %config %{INITDIR}/%{cifs_init_script}
%attr(0600,root,root) %config(noreplace) %{CONFIGDIR}/%{cifs_init_script}tab
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/21-%{cifs_init_script}
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/21-%{cifs_init_script}
%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/%{cifs_init_script}
%{_sbindir}/rc%{cifs_init_script}
%if 0%{?suse_version} && 0%{?suse_version} < 1100
%dir %{_datadir}/omc
%dir %{_datadir}/omc/svcinfo.d
%endif
%attr(0644,root,root) %{_datadir}/omc/svcinfo.d/%{cifs_init_script}.xml
%ghost %{_localstatedir}/run/%{cifs_init_script}
%endif
%dir %{CONFIGDIR}
%config(noreplace) %{CONFIGDIR}/lmhosts
%config(noreplace) %{CONFIGDIR}/smb.conf
%dir %{_sysconfdir}/openldap
%dir %{_sysconfdir}/openldap/schema
%attr(0444,root,root) %config %{_sysconfdir}/openldap/schema/samba3.schema
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/21-dhcpcd-hook-samba
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/21-dhcpcd-hook-samba
%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/dhcpcd-hook-samba
%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/dhcpcd-hook-samba-functions
%if 0%{?suse_version} && 0%{?suse_version} > 1100
%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/samba-client
%endif
%{_bindir}/eventlogadm
%{_bindir}/findsmb
%{_bindir}/net
%{_bindir}/nmblookup
%{_bindir}/nmbstatus
%{_bindir}/pdbedit
%{_bindir}/profiles
%{_bindir}/rpcclient
%{_bindir}/sharesec
%{_bindir}/smbcacls
%{_bindir}/smbclient
%{_bindir}/smbcontrol
%{_bindir}/smbcquotas
%{_bindir}/smbfilter
%{_bindir}/smbget
%{_bindir}/smbpasswd
%{_bindir}/smbprngenpdf
%{_bindir}/smbspool
%{_bindir}/smbtar
%{_bindir}/smbtree
%{_bindir}/testparm
%if 0%{?suse_version} > 0 && 0%{?suse_version} < 1211
%{_bindir}/ldbadd
%{_bindir}/ldbdel
%{_bindir}/ldbedit
%{_bindir}/ldbmodify
%{_bindir}/ldbrename
%{_bindir}/ldbsearch
%{_bindir}/tdbbackup
%{_bindir}/tdbdump
%{_bindir}/tdbrestore
%{_bindir}/tdbtool
%doc %{_mandir}/man8/tdbbackup.8.*
%doc %{_mandir}/man8/tdbdump.8.*
%doc %{_mandir}/man8/tdbtool.8.*
%endif
/%{_lib}/libnss_wins.so.2
%dir %{cups_lib_dir}
%dir %{cups_lib_dir}/backend
%ghost %{cups_lib_dir}/backend/smb
%dir %{_libdir}/samba
%{_libdir}/samba/charset
%{_libdir}/samba/lowcase.dat
%{_libdir}/samba/upcase.dat
%{_libdir}/samba/valid.dat
%exclude %{_mandir}/man1/dbwrap_tool.1.*
%doc %{_mandir}/man1/findsmb.1.*
%doc %{_mandir}/man1/nmblookup.1.*
%doc %{_mandir}/man1/nmbstatus.1.*
%doc %{_mandir}/man1/profiles.1.*
%doc %{_mandir}/man1/rpcclient.1.*
%doc %{_mandir}/man1/sharesec.1.*
%doc %{_mandir}/man1/smbcacls.1.*
%doc %{_mandir}/man1/smbcontrol.1.*
%doc %{_mandir}/man1/smbclient.1.*
%doc %{_mandir}/man1/smbcquotas.1.*
%doc %{_mandir}/man1/smbget.1.*
%doc %{_mandir}/man1/smbtar.1.*
%doc %{_mandir}/man1/smbtree.1.*
%doc %{_mandir}/man1/testparm.1.*
%doc %{_mandir}/man5/lmhosts.5.*
%doc %{_mandir}/man5/smb.conf.5.*
%doc %{_mandir}/man5/smbgetrc.5.*
%doc %{_mandir}/man7/samba.7.*
%doc %{_mandir}/man8/eventlogadm.8.*
%doc %{_mandir}/man8/net.8.*
%doc %{_mandir}/man8/pdbedit.8.*
%doc %{_mandir}/man8/smbpasswd.8.*
%doc %{_mandir}/man8/smbspool.8.*
%dir %{_datadir}/samba
%dir %{_datadir}/samba/LDAP
%config %{_datadir}/samba/LDAP/samba-nds.schema
%{_datadir}/samba/templates
%dir %{DOCDIR}
%doc %{DOCDIR}/README.%{VENDOR}
%{_localstatedir}/adm/fillup-templates/samba-client-dhcp.conf
%{_localstatedir}/adm/fillup-templates/sysconfig.dhcp-samba-client
%dir %{LOCKDIR}
%attr(0750,root,root) %dir %{LOGDIR}
%ghost %dir %{PIDDIR}

%files winbind -f filelist-samba-winbind
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/security/pam_winbind.conf
%attr(0754,root,root) %config %{INITDIR}/winbind
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-down.d/55-samba-winbindd
%ghost %{_sysconfdir}/sysconfig/%{NET_CFGDIR}/if-up.d/55-samba-winbindd
%{_sysconfdir}/sysconfig/%{NET_CFGDIR}/scripts/samba-winbindd
%doc %{_mandir}/man1/ntlm_auth.1.*
%doc %{_mandir}/man1/wbinfo.1.*
%doc %{_mandir}/man5/pam_winbind.conf.5.*
%doc %{_mandir}/man8/winbindd.8.*
%{_bindir}/ntlm_auth
%{_bindir}/wbinfo
%{_sbindir}/rcwinbind
%{_sbindir}/winbindd
/%{_lib}/libnss_winbind.so.2
/%{_lib}/security/pam_winbind.so
%{_libdir}/samba/idmap
%{_libdir}/samba/nss_info
%doc %{_mandir}/man7/winbind_krb5_locator.7.*
%doc %{_mandir}/man8/idmap_ad.8.*
%doc %{_mandir}/man8/idmap_adex.8.*
%doc %{_mandir}/man8/idmap_autorid.8.*
%doc %{_mandir}/man8/idmap_hash.8.*
%doc %{_mandir}/man8/idmap_ldap.8.*
%doc %{_mandir}/man8/idmap_nss.8.*
%doc %{_mandir}/man8/idmap_rid.8.*
%doc %{_mandir}/man8/idmap_tdb.8.*
%doc %{_mandir}/man8/idmap_tdb2.8.*
%doc %{_mandir}/man8/pam_winbind.8.*
%if 0%{?suse_version} && 0%{?suse_version} < 1100
%dir %{_datadir}/omc
%dir %{_datadir}/omc/svcinfo.d
%endif
%attr(0644,root,root) %{_datadir}/omc/svcinfo.d/winbind.xml
%attr(0750,root,winbind) %dir %{LOCKDIR}/winbindd_privileged
%if %{make_utils}

%files utils
%defattr(-,root,root)
%{_bindir}/debug2html
%{_bindir}/log2pcap
%{_bindir}/locktest
%{_bindir}/locktest2
%{_bindir}/masktest
%{_bindir}/msgtest
%{_bindir}/nsstest
%{_bindir}/smbtorture
%{_bindir}/talloctort
%{_bindir}/vfstest
%doc %{_mandir}/man1/log2pcap.1.*
%doc %{_mandir}/man1/vfstest.1.*
%endif
%if 0%{?suse_version} && 0%{?suse_version} < 1001 || 0%{?suse_version} > 1110

%files doc -f filelist-samba-doc
%defattr(-,root,root)
%dir %{DOCDIR}
%dir %{_datadir}/samba
%doc %{_datadir}/susehelp
%endif

%files krb-printing
%defattr(-,root,root)
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1000
%verify(not mode) %attr(4750,root,lp) %{_bindir}/get_printing_ticket
%else
%attr(0750,root,lp) %{_bindir}/get_printing_ticket
%endif
%dir %{cups_lib_dir}
%dir %{cups_lib_dir}/backend
%ghost %{cups_lib_dir}/backend/smb

%files -n %{libnetapi_name}
%defattr(-,root,root)
%{_libdir}/libnetapi.so.*

%files -n libnetapi-devel
%defattr(-,root,root)
%{_includedir}/netapi.h
%{_libdir}/libnetapi.so
%{_libdir}/pkgconfig/netapi.pc

%files -n %{libsmbclient_name}
%defattr(-,root,root)
%{_libdir}/libsmbclient.so.*
%doc %{_mandir}/man7/libsmbclient.7.*

%files -n libsmbclient-devel
%defattr(-,root,root)
%{_includedir}/libsmbclient.h
%{_libdir}/libsmbclient.so
%{_libdir}/pkgconfig/smbclient.pc

%files -n %{libsmbsharemodes_name}
%defattr(-,root,root)
%{_libdir}/libsmbsharemodes.so.*

%files -n libsmbsharemodes-devel
%defattr(-,root,root)
%{_includedir}/smb_share_modes.h
%{_libdir}/libsmbsharemodes.so
%{_libdir}/pkgconfig/smbsharemodes.pc

%if 0%{?suse_version} && 0%{?suse_version} < 1211

%files -n %{libtalloc_name}
%defattr(-,root,root)
%{_libdir}/libpytalloc-util.so.*
%{_libdir}/libtalloc.so.*

%files -n libtalloc-devel
%defattr(-,root,root)
%{_includedir}/pytalloc.h
%{_includedir}/talloc.h
%{_libdir}/libpytalloc-util.so
%{_libdir}/libtalloc.so
%{_libdir}/pkgconfig/pytalloc-util.pc
%{_libdir}/pkgconfig/talloc.pc

%files -n %{libtdb_name}
%defattr(-,root,root)
%{_libdir}/libtdb.so.*

%files -n libtdb-devel
%defattr(-,root,root)
%{_includedir}/tdb.h
%{_libdir}/libtdb.so
%{_libdir}/pkgconfig/tdb.pc

%endif

%files -n %{libwbclient_name}
%defattr(-,root,root)
%{_libdir}/libwbclient.so.*

%files -n libwbclient-devel
%defattr(-,root,root)
%{_includedir}/wbclient.h
%{_libdir}/libwbclient.so
%{_libdir}/pkgconfig/wbclient.pc

%if 0%{?suse_version} && 0%{?suse_version} < 1211

%files -n %{libtevent_name}
%defattr(-,root,root)
%{_libdir}/libtevent.so.*

%files -n libtevent-devel
%defattr(-,root,root)
%{_includedir}/tevent.h
%{_libdir}/libtevent.so
%{_libdir}/pkgconfig/tevent.pc

%files -n %{libldb_name}
%defattr(-,root,root)
%{_libdir}/libldb.so.*
%dir %{_libdir}/ldb
%{_libdir}/ldb/*.so
%{_libdir}/libpyldb-util.so.*

%files -n libldb-devel
%defattr(-,root,root)
%{_includedir}/ldb*.h
%{_includedir}/pyldb.h
%{_libdir}/libldb.so
%{_libdir}/libpyldb-util.so
%{_libdir}/pkgconfig/ldb.pc
%{_libdir}/pkgconfig/pyldb-util.pc

%endif

%if %{make_ldapsmb}

%files -n ldapsmb
%defattr(-,root,root)
%{_sbindir}/ldapsmb
%{_mandir}/man5/ldapsmb.5.*
%endif

%changelog